<?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>213903</bug_id>
          
          <creation_ts>2020-07-02 15:33:12 -0700</creation_ts>
          <short_desc>[WebAuthn]  authenticators supporting internal uv and pinToken defaulting to client pin</short_desc>
          <delta_ts>2021-10-04 14:47:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari Technology Preview</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="login Llama">loginllama</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>loginllama</cc>
    
    <cc>nuno.sung</cc>
    
    <cc>pascoe</cc>
    
    <cc>pvanstaden</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1668389</commentid>
    <comment_count>0</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2020-07-02 15:33:12 -0700</bug_when>
    <thetext>In CTAP2 the pinToken is required for doing credential management and bio enrollment.
It also provides a fallback if fingerprint or face is not matching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668406</commentid>
    <comment_count>1</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2020-07-02 15:58:12 -0700</bug_when>
    <thetext>iOS 14 performs client PIN authentication with any authenticator advertising clientPin= True in authenticatorGetInfo.  Most authentication that support internal uv also support pinToken.

For authentication that have both clientPin=True and uv=true in CTAP2.0 (Logic changes in CTAP2.1) if uv is required, the platform should first do authenticatorGetCredential with the uv option set to 1.

The authenticator will return an assertion or an error.
CTAP2_ERR_OPERATION_DENIED 0x27  returned if the authenticator doesn&apos;t want pin fallback.
CTAP2_ERR_PIN_REQUIRED 0x35 returned if uv mismatch wanting a fallback to clientPin

If the error is CTAP2_ERR_PIN_REQUIRED then the platform should then do:
authenticatorClientPIN (0x06) getKeyAgreement
authenticatorClientPIN (0x06) getPINToken

Then retry authenticatorGetCredential with pinAuth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675538</commentid>
    <comment_count>2</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-28 01:03:53 -0700</bug_when>
    <thetext>Will be a nice improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675541</commentid>
    <comment_count>3</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-28 01:07:46 -0700</bug_when>
    <thetext>*** Bug 214076 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675542</commentid>
    <comment_count>4</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-07-28 01:10:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/65359269&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682886</commentid>
    <comment_count>5</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2020-08-25 19:38:29 -0700</bug_when>
    <thetext>This is still a problem in Developer preview 5 and STP 112.

Bio authenticators are working but with pin. 

Sending a uv option to the authenticator along with pinToken in CTAP2.0 and if internal uv is supported may cause unpredictable results.  Some authenticators will attempt to do fingerprint as well as pin in this case.  It is at best confusing to users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689997</commentid>
    <comment_count>6</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-09-18 17:11:19 -0700</bug_when>
    <thetext>(In reply to login Llama from comment #1)
&gt; iOS 14 performs client PIN authentication with any authenticator advertising
&gt; clientPin= True in authenticatorGetInfo.  Most authentication that support
&gt; internal uv also support pinToken.
&gt; 
&gt; For authentication that have both clientPin=True and uv=true in CTAP2.0
&gt; (Logic changes in CTAP2.1) if uv is required, the platform should first do
&gt; authenticatorGetCredential with the uv option set to 1.
&gt; 
&gt; The authenticator will return an assertion or an error.
&gt; CTAP2_ERR_OPERATION_DENIED 0x27  returned if the authenticator doesn&apos;t want
&gt; pin fallback.
&gt; CTAP2_ERR_PIN_REQUIRED 0x35 returned if uv mismatch wanting a fallback to
&gt; clientPin
&gt; 
&gt; If the error is CTAP2_ERR_PIN_REQUIRED then the platform should then do:
&gt; authenticatorClientPIN (0x06) getKeyAgreement
&gt; authenticatorClientPIN (0x06) getPINToken
&gt; 
&gt; Then retry authenticatorGetCredential with pinAuth.

Couldn&apos;t find the exact text corresponding to the description here in the current CTAP 2.1 spec. @John, could you point me to it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717934</commentid>
    <comment_count>7</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2021-01-07 05:56:56 -0800</bug_when>
    <thetext>https://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-getAssert-platf-actions

A non normative platform actions section has been added to CTAP2.1 

Specifically see 6.2.1. Platform Actions for authenticatorGetAssertion step 1.1.2

Covering everything the platform needs to do requires a book.  I hope this section covers the major flow issues. It covers the main platform logic implemented in Chrome and Windows.

Any mistakes or questions should go to the Fido2 TWG during the current public review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792500</commentid>
    <comment_count>8</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2021-09-10 13:02:04 -0700</bug_when>
    <thetext>This bug is still present in the latest STP.

I just has a conversation with a major authenticator vendor who told me they are violating the CTAP specifications and dynamically hiding the availability of pinToken support to trick Safari into supporting biometrics on there devices.

Having to implement workarounds like that to support Safari is disappointing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796717</commentid>
    <comment_count>9</comment_count>
      <attachid>439105</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-09-23 16:28:47 -0700</bug_when>
    <thetext>Created attachment 439105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797925</commentid>
    <comment_count>10</comment_count>
      <attachid>439105</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-09-28 09:43:36 -0700</bug_when>
    <thetext>Comment on attachment 439105
Patch

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

r=me, but please include the radar in your changeling.

&gt; Source/WebCore/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=213903

Please always include the radar: &lt;rdar://problem/65359269&gt;

&gt; Source/WebKit/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=213903

Ditto.

&gt; Tools/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=213903

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797984</commentid>
    <comment_count>11</comment_count>
      <attachid>439503</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-09-28 12:04:02 -0700</bug_when>
    <thetext>Created attachment 439503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798976</commentid>
    <comment_count>12</comment_count>
      <attachid>439768</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-09-30 12:15:37 -0700</bug_when>
    <thetext>Created attachment 439768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800096</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-04 10:04:23 -0700</bug_when>
    <thetext>j_pascoe@apple.com does not have committer permissions according to https://raw.githubusercontent.com/WebKit/WebKit/main/metadata/contributors.json.

Rejecting attachment 439768 from commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800192</commentid>
    <comment_count>14</comment_count>
      <attachid>440093</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-10-04 13:07:31 -0700</bug_when>
    <thetext>Created attachment 440093
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800194</commentid>
    <comment_count>15</comment_count>
      <attachid>440095</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-10-04 13:11:20 -0700</bug_when>
    <thetext>Created attachment 440095
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800231</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-04 14:47:49 -0700</bug_when>
    <thetext>Committed r283515 (242483@main): &lt;https://commits.webkit.org/242483@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440095.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439105</attachid>
            <date>2021-09-23 16:28:47 -0700</date>
            <delta_ts>2021-09-28 12:03:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213903-20210923162846.patch</filename>
            <type>text/plain</type>
            <size>24819</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyYTk1NTUwOTE5OTEy
MTk3NDgyZDQ4YzBkZGNkZDFlZTgyNGI0OS4uZWM5MmYwODllOTM2Nzk2YTAzNDg0ZGI3YWE1OGEw
MjNjMDM1M2VjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTIzICBKb2hu
IFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByZWZl
ciBpbnRlcm5hbCB1c2VyIHZlcmlmaWNhdGlvbiBpZiBhdmFpbGFibGUgb3ZlciBwaW4gZW50cnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGFk
ZHMgYW4gb3B0aW9uIHRvIG1vY2sgaW50ZXJuYWwgdXNlciB2ZXJpZmljYXRpb24gaW4gdGVzdHMu
CisKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246
OkhpZENvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpIaWRDb25maWd1cmF0aW9uOjpkZWNvZGUp
OgorICAgICAgICAqIHRlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5p
ZGw6CisKIDIwMjEtMDktMjEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBFbmFibGUgbWFya2VycyBhbmQgaGlnaGxpZ2h0cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBhYjg5OGZkNzQxZmFkMGZkODcyMTBkMTRkNjM3ZmVhNDcyZjkwZTAwLi5kMDUw
NjViNGE3NTIxYmNjNThjZmQ2YmM2ZDQwMTZjNzFkY2U1MTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDIxLTA5LTIzICBKb2huIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViQXV0aG5dIFByZWZlciBpbnRlcm5hbCB1c2VyIHZlcmlmaWNhdGlvbiBpZiBh
dmFpbGFibGUgb3ZlciBwaW4gZW50cnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTM5MDMKKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01v
Y2svTW9ja0hpZENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpNb2NrSGlkQ29ubmVj
dGlvbjo6ZmVlZFJlcG9ydHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhl
bnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRp
Y2F0b3I6OmdldEFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OmZpZG86OnRvU3RhdHVzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6Zmlkbzo6aXNQaW5FcnJvcik6IERlbGV0ZWQuCisK
IDIwMjEtMDktMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IEVuc3VyZSB0aGF0IGNhcHR1cmUgYXR0cmlidXRpb24gd29ya3MgZXZlbiBmb3IgVVJMUyB3aXRo
b3V0IGhvc3RuYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaAppbmRleCA1MDU1MWY5NjQwZGM2ZDg1
MWJhNjczM2M2ODM5ZWRjNDM3NjE3ODU4Li5jMmFhODNkY2ZjNDQ0NDkwZWJmM2U2NWI5ZTQ1YWE5
ZjY1Nzk3Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRo
ZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaApAQCAtOTIsNiArOTIsNyBAQCBzdHJ1
Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiB7CiAgICAgICAgIGJvb2wgY2Fu
RG93bmdyYWRlIHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBleHBlY3RDYW5jZWwgeyBmYWxzZSB9
OwogICAgICAgICBib29sIHN1cHBvcnRDbGllbnRQaW4geyBmYWxzZSB9OworICAgICAgICBib29s
IHN1cHBvcnRJbnRlcm5hbFVWIHsgZmFsc2UgfTsKIAogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEhpZENvbmZpZ3VyYXRpb24+IGRlY29k
ZShEZWNvZGVyJik7CkBAIC0xNjksNyArMTcwLDcgQEAgc3RkOjpvcHRpb25hbDxNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpMb2NhbENvbmZpZ3VyYXRpb24+IE1vY2tXZWJBdXQK
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZp
Z3VyYXRpb246OkhpZENvbmZpZ3VyYXRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogewotICAgIGVuY29kZXIgPDwgcGF5bG9hZEJhc2U2NCA8PCBzdGFnZSA8PCBzdWJTdGFnZSA8
PCBlcnJvciA8PCBpc1UyZiA8PCBrZWVwQWxpdmUgPDwgZmFzdERhdGFBcnJpdmFsIDw8IGNvbnRp
bnVlQWZ0ZXJFcnJvckRhdGEgPDwgY2FuRG93bmdyYWRlIDw8IGV4cGVjdENhbmNlbCA8PCBzdXBw
b3J0Q2xpZW50UGluOworICAgIGVuY29kZXIgPDwgcGF5bG9hZEJhc2U2NCA8PCBzdGFnZSA8PCBz
dWJTdGFnZSA8PCBlcnJvciA8PCBpc1UyZiA8PCBrZWVwQWxpdmUgPDwgZmFzdERhdGFBcnJpdmFs
IDw8IGNvbnRpbnVlQWZ0ZXJFcnJvckRhdGEgPDwgY2FuRG93bmdyYWRlIDw8IGV4cGVjdENhbmNl
bCA8PCBzdXBwb3J0Q2xpZW50UGluIDw8IHN1cHBvcnRJbnRlcm5hbFVWOwogfQogCiB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTk4LDYgKzE5OSw4IEBAIHN0ZDo6b3B0aW9uYWw8TW9ja1dl
YkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbj4gTW9ja1dlYkF1
dGhlCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQuc3VwcG9ydENsaWVudFBpbikpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc3VwcG9ydEludGVybmFsVVYpKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlv
bkNvbmZpZ3VyYXRpb24uaWRsCmluZGV4IGQ5ZjJhMDM4ODFjYzI3YWU1OGUxYmNiMWI4OTBjYTQy
NWUwYzg3OWMuLmM5OGJjYWM5YzJhN2QzZjAwYWQ3YjcxNzMwOTAwNWJmMzEyZWZjMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uLmlkbApAQCAtMTAyLDYgKzEwMiw3IEBACiAgICAgYm9vbGVhbiBj
YW5Eb3duZ3JhZGUgPSBmYWxzZTsKICAgICBib29sZWFuIGV4cGVjdENhbmNlbCA9IGZhbHNlOwog
ICAgIGJvb2xlYW4gc3VwcG9ydENsaWVudFBpbiA9IGZhbHNlOworICAgIGJvb2xlYW4gc3VwcG9y
dEludGVybmFsVVYgPSBmYWxzZTsKIH07CiAKIFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlkQ29u
bmVjdGlvbi5jcHAKaW5kZXggMDA2NTRlNDI1ZWI5M2Y0NGE1YjEzNjYxZjgxOGM0MTJlNWM5YmUy
Ny4uZTkxMDVkMWM0MGM4OTMwMDE3NTlmNTVkOTY0NjZmODgzNjIzNGUxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlkQ29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vTW9jay9Nb2NrSGlkQ29ubmVjdGlvbi5jcHAKQEAgLTIyOCwxNSArMjI4LDE4IEBAIHZvaWQg
TW9ja0hpZENvbm5lY3Rpb246OmZlZWRSZXBvcnRzKCkKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+
IGluZm9EYXRhOwogICAgICAgICBpZiAobV9jb25maWd1cmF0aW9uLmhpZC0+Y2FuRG93bmdyYWRl
KQogICAgICAgICAgICAgaW5mb0RhdGEgPSBlbmNvZGVBc0NCT1IoQXV0aGVudGljYXRvckdldElu
Zm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lvbjo6a0N0YXAsIFByb3RvY29sVmVyc2lvbjo6a1Uy
ZiB9LCBWZWN0b3I8dWludDhfdD4oYWFndWlkTGVuZ3RoLCAwdSkpKTsKLSAgICAgICAgZWxzZSBp
ZiAobV9jb25maWd1cmF0aW9uLmhpZC0+c3VwcG9ydENsaWVudFBpbikgeworICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UgaW5mb1Jlc3BvbnNl
KHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCB9LCBWZWN0b3I8dWludDhfdD4oYWFndWlkTGVuZ3Ro
LCAwdSkpOwotICAgICAgICAgICAgaW5mb1Jlc3BvbnNlLnNldFBpblByb3RvY29scyh7IHBpbjo6
a1Byb3RvY29sVmVyc2lvbiB9KTsKICAgICAgICAgICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRP
cHRpb25zIG9wdGlvbnM7Ci0gICAgICAgICAgICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJp
bGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5
OjprU3VwcG9ydGVkQW5kUGluU2V0KTsKKyAgICAgICAgICAgIGlmIChtX2NvbmZpZ3VyYXRpb24u
aGlkLT5zdXBwb3J0Q2xpZW50UGluKSB7CisgICAgICAgICAgICAgICAgaW5mb1Jlc3BvbnNlLnNl
dFBpblByb3RvY29scyh7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiB9KTsKKyAgICAgICAgICAgICAg
ICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVk
T3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGluU2V0KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX2NvbmZpZ3VyYXRpb24uaGlkLT5zdXBwb3J0
SW50ZXJuYWxVVikKKyAgICAgICAgICAgICAgICBvcHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25B
dmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkKTsKICAgICAgICAgICAgIGlu
Zm9SZXNwb25zZS5zZXRPcHRpb25zKFdURk1vdmUob3B0aW9ucykpOwogICAgICAgICAgICAgaW5m
b0RhdGEgPSBlbmNvZGVBc0NCT1IoaW5mb1Jlc3BvbnNlKTsKLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBpbmZvRGF0YSA9IGVuY29kZUFzQ0JPUihBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3Bv
bnNlKHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCB9LCBWZWN0b3I8dWludDhfdD4oYWFndWlkTGVu
Z3RoLCAwdSkpKTsKKyAgICAgICAgfQogICAgICAgICBpbmZvRGF0YS5pbnNlcnQoMCwgc3RhdGlj
X2Nhc3Q8dWludDhfdD4oQ3RhcERldmljZVJlc3BvbnNlQ29kZTo6a1N1Y2Nlc3MpKTsgLy8gUHJl
cGVuZCBzdGF0dXMgY29kZS4KICAgICAgICAgaWYgKHN0YWdlc01hdGNoKCkgJiYgbV9jb25maWd1
cmF0aW9uLmhpZC0+ZXJyb3IgPT0gTW9jazo6SGlkRXJyb3I6Oldyb25nQ2hhbm5lbElkKQogICAg
ICAgICAgICAgbWVzc2FnZSA9IEZpZG9IaWRNZXNzYWdlOjpjcmVhdGUobV9jdXJyZW50Q2hhbm5l
bCAtIDEsIEZpZG9IaWREZXZpY2VDb21tYW5kOjprQ2JvciwgaW5mb0RhdGEpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0
aGVudGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcAppbmRleCBlMDYzMmUwYjU3MjQ5MTBlYzkzYWY1
NTNiMTM4ODQyY2YxNDRhY2NiLi5iNjQxZGQ5NDcwOTk5YTc5NWUxYzZjMDI0YmNhYjE5NWZjMjI5
NzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcApAQCAtNDcsNiAr
NDcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIGZpZG87CiAKK3VzaW5nIFVWQXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRv
clN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk7CisKIG5hbWVz
cGFjZSB7CiBXZWJBdXRoZW50aWNhdGlvblN0YXR1cyB0b1N0YXR1cyhjb25zdCBDdGFwRGV2aWNl
UmVzcG9uc2VDb2RlJiBlcnJvcikKIHsKQEAgLTkyLDEwICs5NCwxNCBAQCB2b2lkIEN0YXBBdXRo
ZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCgpCiAgICAgICAgIHJldHVybjsKICAgICBWZWN0b3I8
dWludDhfdD4gY2JvckNtZDsKICAgICBhdXRvJiBvcHRpb25zID0gV1RGOjpnZXQ8UHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKTsKLSAgICBp
ZiAobV9pbmZvLm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5k
UGluU2V0KQotICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXND
Qk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgbV9pbmZvLm9wdGlvbnMoKS51c2VyVmVy
aWZpY2F0aW9uQXZhaWxhYmlsaXR5KCksIFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZl
cnNpb24sIG1fcGluQXV0aCB9KTsKKyAgICBhdXRvIGludGVybmFsVVZBdmFpbGFiaWxpdHkgPSBt
X2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKTsKKyAgICAvLyBJ
ZiBVViBpcyByZXF1aXJlZCwgdGhlbiBlaXRoZXIgYnVpbHQtaW4gdXYgb3IgYSBwaW4gd2lsbCB3
b3JrLgorICAgIGlmIChpbnRlcm5hbFVWQXZhaWxhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5Ojpr
U3VwcG9ydGVkQW5kQ29uZmlndXJlZCAmJiAoIW9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlv
biB8fCBvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnVzZXJWZXJpZmljYXRpb24gIT0g
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZCkpCisgICAgICAgIGNib3JD
bWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNo
LCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5KTsKKyAgICBlbHNlIGlmIChtX2luZm8u
b3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0
ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpCisg
ICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVz
dERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5LCBQaW5QYXJhbWV0
ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9uLCBtX3BpbkF1dGggfSk7CiAgICAgZWxzZQotICAg
ICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3RE
YXRhKCkuaGFzaCwgb3B0aW9ucywgbV9pbmZvLm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZh
aWxhYmlsaXR5KCkpOworICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1
ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJp
bGl0eSk7CiAgICAgZHJpdmVyKCkudHJhbnNhY3QoV1RGTW92ZShjYm9yQ21kKSwgW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpXShWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCkBAIC0x
MzMsMTAgKzEzOSwxNCBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpnZXRBc3NlcnRpb24oKQog
ICAgIEFTU0VSVCghbV9pc0Rvd25ncmFkZWQpOwogICAgIFZlY3Rvcjx1aW50OF90PiBjYm9yQ21k
OwogICAgIGF1dG8mIG9wdGlvbnMgPSBXVEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyk7Ci0gICAgaWYgKG1faW5mby5vcHRpb25z
KCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldCAmJiBvcHRpb25z
LnVzZXJWZXJpZmljYXRpb24gIT0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3Vy
YWdlZCkKLSAgICAgICAgY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1Io
cmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBtX2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHkoKSwgUGluUGFyYW1ldGVycyB7IHBpbjo6a1Byb3RvY29sVmVyc2lv
biwgbV9waW5BdXRoIH0pOworICAgIGF1dG8gaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSA9IG1faW5m
by5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpOworICAgIC8vIElmIFVW
IGlzIHJlcXVpcmVkLCB0aGVuIGVpdGhlciBidWlsdC1pbiB1diBvciBhIHBpbiB3aWxsIHdvcmsu
CisgICAgaWYgKGludGVybmFsVVZBdmFpbGFiaWxpdHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtTdXBw
b3J0ZWRBbmRDb25maWd1cmVkICYmIG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbiAhPSBVc2VyVmVy
aWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkKQorICAgICAgICBjYm9yQ21kID0gZW5j
b2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMs
IGludGVybmFsVVZBdmFpbGFiaWxpdHkpOworICAgIGVsc2UgaWYgKG1faW5mby5vcHRpb25zKCku
Y2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6
OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldCAmJiBvcHRpb25zLnVz
ZXJWZXJpZmljYXRpb24gIT0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdl
ZCkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVx
dWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5LCBQaW5QYXJh
bWV0ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9uLCBtX3BpbkF1dGggfSk7CiAgICAgZWxzZQot
ICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1ZXN0
RGF0YSgpLmhhc2gsIG9wdGlvbnMsIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSgpKTsKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVl
c3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmls
aXR5KTsKICAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNib3JDbWQpLCBbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyldKFZlY3Rvcjx1aW50OF90PiYmIGRhdGEpIHsKICAgICAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2NzVmNmNkZjM1
YTY1NTk3NTJiMWFhMDNmOGIyYWNlZDM3NWNkYTlkLi4wODJiY2FjNTI1NDlhNjM5ZGMzOTBkZmQ3
ZWU2YWUzZmU1MzFiZGI1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDktMjMgIEpvaG4gUGFzY29lICA8al9w
YXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gUHJlZmVyIGludGVybmFsIHVz
ZXIgdmVyaWZpY2F0aW9uIGlmIGF2YWlsYWJsZSBvdmVyIHBpbiBlbnRyeS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzkwMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtaW50ZXJu
YWwtdXYuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5o
dG1sOiBBZGRlZC4KKwogMjAyMS0wOS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlZHVjZSB1c2Ugb2YgbWFrZVJlZlB0cigpIGFuZCB1c2UgUmVmUHRyIHsg
fSBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOGY2ODIyODlhYTgxZjY5OTY3
MjdhYTBkNTkyMjg5YWUwNGRlYWFlLi45ZTU2MDk1ZWJmN2JhYTI2ZTgzNWRiYzRmZjVhNTZmZWQ1
N2FhZTczIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzkwLDYgKzM5MCw4IEBACiAJCTUy
NDUxNzg3MjFCOUY1N0IwMDgyQ0IzNCAvKiBSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVENkJFMjFCOUYx
QjIwMDQ2QUJBNiAvKiBSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSAqLzsgfTsKIAkJNTI0QkJD
OUUxOURGNzJDMDAwMkYxQUYxIC8qIGZpbGUtd2l0aC12aWRlby5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNEJCQzlCMTlERjM3MTQw
MDJGMUFGMSAvKiBmaWxlLXdpdGgtdmlkZW8uaHRtbCAqLzsgfTsKIAkJNTI0QkJDQTExOUUzMEM3
NzAwMkYxQUYxIC8qIHRlc3QubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyNEJCQ0EwMTlFMzBDNjMwMDJGMUFGMSAvKiB0ZXN0Lm1wNCAq
LzsgfTsKKwkJNTI5QjhFMEYyNkZEMkUyMjAwRjk4QUREIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI5QjhFMEUyNkZEMkUyMjAwRjk4QURE
IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2Lmh0
bWwgKi87IH07CisJCTUyOUI4RTExMjZGRDJGMkUwMEY5OEFERCAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtaW50ZXJuYWwtdXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjlCOEUxMDI2RkQyRjJFMDBGOThB
REQgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWludGVybmFsLXV2Lmh0
bWwgKi87IH07CiAJCTUyQjhDRjk4MTU4NjhEOTEwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUyQjhDRjk0MTU4NjhDRjAwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5odG1sICovOyB9Owog
CQk1MkQ1RDZDMDIxQjlGMUIzMDA0NkFCQTYgLyogUmVuZGVyaW5nUHJvZ3Jlc3MubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1RDZCRDIxQjlGMUIy
MDA0NkFCQTYgLyogUmVuZGVyaW5nUHJvZ3Jlc3MubW0gKi87IH07CiAJCTUyRDY3M0VFMUFGQjEy
NzMwMEZBMTlGRSAvKiBXS1BhZ2VDb3B5U2Vzc2lvblN0YXRlV2l0aEZpbHRlcmluZy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ2NzNFQzFBRkIx
MjY4MDBGQTE5RkUgLyogV0tQYWdlQ29weVNlc3Npb25TdGF0ZVdpdGhGaWx0ZXJpbmcuY3BwICov
OyB9OwpAQCAtMTc0Nyw2ICsxNzQ5LDcgQEAKIAkJCQkyRUJEOUQwQTIxMzQ3MzBEMDAyREE3NTgg
LyogdmlkZW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRDU3Nzc5OTIxMUNFMEU0
MDAxQjM3MUUgLyogd2ViLWF1ZGlvLW9ubHkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQk1NzY2M0RGMzIzNTdFNDg5MDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24taGlkLWNhbmNlbC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTUyOUI4RTEx
MjZGRDJGMkUwMEY5OEFERCAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQt
aW50ZXJuYWwtdXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzlGMUMwMTIzQzkz
QUY1MDBDN0Q0QjQgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW11bHRp
cGxlLWFjY291bnRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDAyMzU5
QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1j
cmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3OERBNDRDMjNFQ0Qy
MzAwMDI0NjAxMCAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLWF1
dGgtYmxvY2tlZC1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTc2MCw2ICsx
NzYzLDcgQEAKIAkJCQk1NzY2M0RFQTIzNEVBNjZEMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc3
NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
LXUyZi1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3QzYy
NDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTUyOUI4RTBGMjZGRDJFMjIwMEY5OEFERCAv
KiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3OERBNDQ4MjNFQ0QwOUIwMDI0NjAxMCAvKiB3
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tYXV0aC1ibG9ja2VkLWVy
cm9yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTcwRDI2RjQyM0MzQ0E2QTAwRDVD
RjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5
LWFncmVlbWVudC1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NTFCMjhB
MjQ5RDVCQzUwMDY2NEMyQSAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhp
ZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCkBAIC0yMjQ1LDYgKzIyNDksOCBAQAogCQk1MjRCQkM5QjE5REYz
NzE0MDAyRjFBRjEgLyogZmlsZS13aXRoLXZpZGVvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAiZmlsZS13aXRoLXZpZGVvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MjRCQkM5QzE5REYzNzdBMDAyRjFBRjEgLyogV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tQYWdlSXNQbGF5aW5nQXVk
aW8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjRCQkNBMDE5RTMwQzYzMDAy
RjFBRjEgLyogdGVzdC5tcDQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gdGVzdC5tcDQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUyOUI4RTBFMjZGRDJFMjIwMEY5OEFERCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBuYW1lID0gIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2Lmh0bWwiOyBwYXRoID0gIlRl
c3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWlu
dGVybmFsLXV2Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MjlCOEUxMDI2
RkQyRjJFMDBGOThBREQgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWlu
dGVybmFsLXV2Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IG5hbWUgPSAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24taGlkLWludGVybmFsLXV2Lmh0bWwiOyBwYXRoID0gIlRlc3RzL1dlYktpdENvY29hL3dlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJCOENGOTQxNTg2OENGMDAwMjgxMDUzIC8qIFNldERv
Y3VtZW50VVJJLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBTZXREb2N1bWVudFVS
SS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkI4Q0Y5NTE1ODY4Q0YwMDAy
ODEwNTMgLyogU2V0RG9jdW1lbnRVUkkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTZXREb2N1bWVudFVSSS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTJDQjQ3NDAxNDQ4RkI5MzAwODczOTk1IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0
aE5vbkRpcmVjdG9yeVVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI0Niw2ICszMjUyLDggQEAKIAkJMDhGQjc3OTRGRTg0
MTU1REMwMkFBQzA3IC8qIFRlc3RXZWJLaXRBUEkgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTUyOUI4RTEwMjZGRDJGMkUwMEY5OEFERCAvKiB3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtaW50ZXJuYWwtdXYuaHRtbCAqLywKKwkJCQk1
MjlCOEUwRTI2RkQyRTIyMDBGOThBREQgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVu
dGlhbC1oaWQtaW50ZXJuYWwtdXYuaHRtbCAqLywKIAkJCQk0OUFFRUY2ODI0MDcyNzZGMDBDODdF
NEMgLyogSW5mby5wbGlzdCAqLywKIAkJCQk1QzlEOTIyNjIyRDdERDdCMDA4RTkyNjYgLyogRGVy
aXZlZCBTb3VyY2VzICovLAogCQkJCTVDOUQ5MjFEMjJEN0RCRjcwMDhFOTI2NiAvKiBTb3VyY2Vz
LnR4dCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBhYmE0ZmI5
MDdmYjIyN2MzNzQwZGFmMDlhZjExYzcxNDgwNjk3ZTI0Li4wMWEyOTgwM2NmOWQxYjk1ZTg0M2Yx
NjY2YTdhM2I3ODY2NDcwMzMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
CkBAIC0xMTMxLDYgKzExMzEsMjQgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5H
ZXRQaW5Ub2tlblBpbkF1dGhJbnZhbGlkRXJyb3JBbmRSZXRyeSkKICAgICBFWFBFQ1RfVFJVRSh3
ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlUElOSW52YWxpZCk7CiB9CiAKK1RFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxJbnRlcm5hbFVWKQoreworICAgIHJlc2V0
KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
LWludGVybmFsLXV2IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVT
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0
dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxl
Z2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgZm9jdXNdOworCisgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgp
XV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJTdWNjZWVkZWQhIl07Cit9CisKIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW4pCiB7CiAgICAgcmVz
ZXQoKTsKQEAgLTEyMTAsNiArMTIyOCwyNCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IEdldEFzc2VydGlvblBpbikKICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRl
ZCEiXTsKIH0KIAorVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25JbnRl
cm5hbFVWKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11diIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAg
IFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGZv
Y3VzXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiU3Vj
Y2VlZGVkISJdOworfQorCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlv
blBpbkF1dGhCbG9ja2VkRXJyb3IpCiB7CiAgICAgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24taGlkLWludGVybmFsLXV2Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5h
bC11di5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwMDgwN2I1MjY3N2Y2ZjMxMzYxMjVjNzBjM2RjYzczNGU3
M2UzMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5o
dG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNj
cmlwdD4KKyAgICBjb25zdCB0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NCA9CisgICAgICAgICJB
S01Cb21KcFpGaEFLQWl0enVqK1RzbHplbGYzL3Zad0lHdERRTmdvS2VGZDVvRWllWXpoeXpBNjVz
YWYwdEsyIiArCisgICAgICAgICJ3L21vb2E3dFF0R2dEZHdaSWpPaGpjdVowcFExYWpvRTRHUjBl
WEJsYW5CMVlteHBZeTFyWlhrQ1dDVkd6SCs1IiArCisgICAgICAgICJaNTFWc3R1UWt1SEkyZVho
MEN0MWdQQzBnU3gzQ1dMaDVJOWEyQUVBQUFCUUExaEhNRVVDSVFDU0ZUdXVCV2dCIiArCisgICAg
ICAgICI0L0YwVkI3RGxVVk0wOUlIUG14ZTFNekhVd1JvQ1JaYkNBSWdHS292NnhvQXgyTUVmNi82
cU5zOE91dHpoUDJDIiArCisgICAgICAgICJRb0oxTDdGZTY0Rzl1QmM9IjsKKworICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHN1cHBv
cnRJbnRlcm5hbFVWOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEFzc2VydGlvbk1lc3NhZ2VC
YXNlNjRdIH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBp
bnB1dC5mb2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAg
ICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYp
LAorICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAgICAgIH0sCisgICAgICAgIGF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb246IHsgdXNlclZlcmlmaWNhdGlvbjogInJlcXVpcmVkIiB9LAorICAgIH07
CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlh
bCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNj
ZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJv
ci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhl
bnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwtdXYuaHRtbCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3Jl
ZGVudGlhbC1oaWQtaW50ZXJuYWwtdXYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTAyNjJhNjNiMjVkYmRi
NWMzNGY1NzQ0MTlhMmFjODA0ZmE2N2I3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1pbnRlcm5hbC11di5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3JlYXRpb25NZXNzYWdl
QmFzZTY0ID0KKyAgICAgICAgIkFLTUJabkJoWTJ0bFpBSll4RWJNZjdsbm5WV3kyNUNTNGNqWjVl
SFFLM1dBOExTQkxIY0pZdUhrajFyWVFRQUEiICsKKyAgICAgICAgIkFFNzRvQkh6akFwTkZZQUdG
eEVmbnR4OUFFQW9DSzNPNlA1T3lYTjZWL2YrOW5BZ2EwTkEyQ2dwNFYzbWdTSjUiICsKKyAgICAg
ICAgImpPSExNRHJteHAvUzByYkQrYWlocnUxQzBhQU4zQmtpTTZHTnk1blNsRFZxT2dUZ3BRRUNB
eVlnQVNGWUlFRmIiICsKKyAgICAgICAgImhlM1JrTnVkNnNneXJhQkdqbGgxcHpUbENaZWhRbEwv
YjE4SFo2V0dJbGdnSmdmVWQvZW45cDVBSXFNUWJVbmkiICsKKyAgICAgICAgIm5FZVhkRkxrdlcw
L3pWNUJwRWpqTnhBRG8yTmhiR2NtWTNOcFoxaEhNRVVDSVFES2crWkJtRUJ0ZjBsV3E0UmUiICsK
KyAgICAgICAgImRINC9pL0xPWXFPUjR1UjJOQWoyelFtdzlRSWdiVFhiNGh2RmJqNFQyN2J2L3JH
cmMreSswcHVvWU9Ca0JrOVAiICsKKyAgICAgICAgIm1DZXdXbE5qZURWamdWa0N3akNDQXI0d2dn
R21vQU1DQVFJQ0JIU0cvY0l3RFFZSktvWklodmNOQVFFTEJRQXciICsKKyAgICAgICAgIkxqRXNN
Q29HQTFVRUF4TWpXWFZpYVdOdklGVXlSaUJTYjI5MElFTkJJRk5sY21saGJDQTBOVGN5TURBMk16
RXciICsKKyAgICAgICAgIklCY05NVFF3T0RBeE1EQXdNREF3V2hnUE1qQTFNREE1TURRd01EQXdN
REJhTUc4eEN6QUpCZ05WQkFZVEFsTkYiICsKKyAgICAgICAgIk1SSXdFQVlEVlFRS0RBbFpkV0pw
WTI4Z1FVSXhJakFnQmdOVkJBc01HVUYxZEdobGJuUnBZMkYwYjNJZ1FYUjAiICsKKyAgICAgICAg
IlpYTjBZWFJwYjI0eEtEQW1CZ05WQkFNTUgxbDFZbWxqYnlCVk1rWWdSVVVnVTJWeWFXRnNJREU1
TlRVd01ETTQiICsKKyAgICAgICAgIk5ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndO
Q0FBU1ZYZk90OXlSOU1YWHYvWnpFOHhwT2g0NjYiICsKKyAgICAgICAgIjRZRUpWbUZRK3ppTExs
OWxKNzlYUUpxbGdhVU5Dc1V2R0VSY0NoTlVpaE5UeUtUbG1uQk9VanZBVGV2dG8yd3ciICsKKyAg
ICAgICAgImFqQWlCZ2tyQmdFRUFZTEVDZ0lFRlRFdU15NDJMakV1TkM0eExqUXhORGd5TGpFdU1U
QVRCZ3NyQmdFRUFZTGwiICsKKyAgICAgICAgIkhBSUJBUVFFQXdJRklEQWhCZ3NyQmdFRUFZTGxI
QUVCQkFRU0JCRDRvQkh6akFwTkZZQUdGeEVmbnR4OU1Bd0ciICsKKyAgICAgICAgIkExVWRFd0VC
L3dRQ01BQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBREZjU0lEbW1sSitPR2FKdlduOUNxaHYi
ICsKKyAgICAgICAgIlNldWVUb1ZGUVZWdnF0QUxPZ0NLSGR3QitXeDI5bWcyR3BIaU1zZ1FwNXhq
QjB5YmJucEc2eDIxMkZ4RVNKK0ciICsKKyAgICAgICAgImluWkQwaXBjaGk3QVB3UGxoSXZqZ0gx
NnpWWDQ0YTRlNGhPc2M2dExJT1A3MVNhTXNIdUhnQ2NkSDB2ZzVkMnMiICsKKyAgICAgICAgImMw
MDZXSmU5VFhPNmZ6VitvZ2pKbllwTktRTG1DWG9BWEUzSkJOd0tHQklPQ3ZmUURQeVdtaWlHNWJH
eFlmUHQiICsKKyAgICAgICAgInk4WjNwbmpYKzFNRG5NMmhocjQwdWxNeGxTTkRuWC9aU25EeU1H
SWJrOFRPUW1qVEYwMlVPOGF1UDhrM3d0NUQiICsKKyAgICAgICAgIjFyUk9JUlU5K0ZDU1g1V1FZ
aTY4UnVEckdNWkI4UDUrYnlvSnFiS1FkeG4yTG1FMW9aQXlvaFBBbUxjb1BPND0iOworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRJbnRlcm5hbFVWOiB0cnVlLCBw
YXlsb2FkQmFzZTY0OiBbdGVzdENyZWF0aW9uTWVzc2FnZUJhc2U2NF0gfSB9KTsKKyAgICAgICAg
aW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAg
IH0KKworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAg
ICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4g
QXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAg
ICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHB1
YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAg
ICAgICAgIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHt1c2VyVmVyaWZpY2F0aW9uOiAicmVxdWly
ZWQifSwKKyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3Jl
YXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9n
KCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4gewor
ICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2Fn
ZSk7CisgICAgfSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439503</attachid>
            <date>2021-09-28 12:04:02 -0700</date>
            <delta_ts>2021-09-30 12:15:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213903-20210928120401.patch</filename>
            <type>text/plain</type>
            <size>29829</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkZTFjYTM1ZWNiNmZk
YWIxZTBmNWYzMWM1NTdiMWEyY2QzY2E3NC4uZGNhYjBhZjg5MzkyMDE2ODg4YmUxMWFiMGY4YjZk
NmZmOWY5ZWZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA5LTI4ICBKb2hu
IFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByZWZl
ciBpbnRlcm5hbCB1c2VyIHZlcmlmaWNhdGlvbiBpZiBhdmFpbGFibGUgb3ZlciBwaW4gZW50cnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1MzU5MjY5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgVGhpcyBhZGRzIGFuIG9wdGlvbiB0byBtb2NrIGlu
dGVybmFsIHVzZXIgdmVyaWZpY2F0aW9uIGluIHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9N
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpIaWRDb25maWd1cmF0aW9uOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiB0ZXN0aW5nL01v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsOgorCiAyMDIxLTA5LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgU3RvcmFnZU1hbmFn
ZXIgYXZhaWxhYmxlIGluIFdvcmtlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlZmQzMjlkNjk2M2JjYzdjZjI1OTAy
MTM2MjIxODhiZjkxZDIxNjc1Li5kNzkxODVmMmU4NmJjZGQ1ZWFiYWU1MDIyMWFkOTM1MTI4OWRh
YzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA5LTI4ICBKb2huIFBhc2NvZSAg
PGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByZWZlciBpbnRlcm5h
bCB1c2VyIHZlcmlmaWNhdGlvbiBpZiBhdmFpbGFibGUgb3ZlciBwaW4gZW50cnkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzY1MzU5MjY5PgorICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9N
b2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TW9ja0hpZENvbm5l
Y3Rpb246OmZlZWRSZXBvcnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRo
ZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkN0YXBBdXRoZW50
aWNhdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpmaWRvOjp0b1N0YXR1cyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmZpZG86OmlzUGluRXJyb3IpOiBEZWxldGVkLgor
CiAyMDIxLTA5LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAg
IE1ha2UgU3RvcmFnZU1hbmFnZXIgYXZhaWxhYmxlIGluIFdvcmtlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRp
b24uaAppbmRleCA1MDU1MWY5NjQwZGM2ZDg1MWJhNjczM2M2ODM5ZWRjNDM3NjE3ODU4Li5jMmFh
ODNkY2ZjNDQ0NDkwZWJmM2U2NWI5ZTQ1YWE5ZjY1Nzk3Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRp
b24uaApAQCAtOTIsNiArOTIsNyBAQCBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbiB7CiAgICAgICAgIGJvb2wgY2FuRG93bmdyYWRlIHsgZmFsc2UgfTsKICAgICAgICAg
Ym9vbCBleHBlY3RDYW5jZWwgeyBmYWxzZSB9OwogICAgICAgICBib29sIHN1cHBvcnRDbGllbnRQ
aW4geyBmYWxzZSB9OworICAgICAgICBib29sIHN1cHBvcnRJbnRlcm5hbFVWIHsgZmFsc2UgfTsK
IAogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CiAgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEhpZENvbmZpZ3VyYXRpb24+IGRlY29kZShEZWNvZGVyJik7CkBAIC0xNjksNyArMTcwLDcg
QEAgc3RkOjpvcHRpb25hbDxNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpMb2Nh
bENvbmZpZ3VyYXRpb24+IE1vY2tXZWJBdXQKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lk
IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246OkhpZENvbmZpZ3VyYXRpb246OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgcGF5bG9hZEJh
c2U2NCA8PCBzdGFnZSA8PCBzdWJTdGFnZSA8PCBlcnJvciA8PCBpc1UyZiA8PCBrZWVwQWxpdmUg
PDwgZmFzdERhdGFBcnJpdmFsIDw8IGNvbnRpbnVlQWZ0ZXJFcnJvckRhdGEgPDwgY2FuRG93bmdy
YWRlIDw8IGV4cGVjdENhbmNlbCA8PCBzdXBwb3J0Q2xpZW50UGluOworICAgIGVuY29kZXIgPDwg
cGF5bG9hZEJhc2U2NCA8PCBzdGFnZSA8PCBzdWJTdGFnZSA8PCBlcnJvciA8PCBpc1UyZiA8PCBr
ZWVwQWxpdmUgPDwgZmFzdERhdGFBcnJpdmFsIDw8IGNvbnRpbnVlQWZ0ZXJFcnJvckRhdGEgPDwg
Y2FuRG93bmdyYWRlIDw8IGV4cGVjdENhbmNlbCA8PCBzdXBwb3J0Q2xpZW50UGluIDw8IHN1cHBv
cnRJbnRlcm5hbFVWOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMTk4LDYgKzE5
OSw4IEBAIHN0ZDo6b3B0aW9uYWw8TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6
SGlkQ29uZmlndXJhdGlvbj4gTW9ja1dlYkF1dGhlCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc3VwcG9ydENsaWVudFBpbikpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQuc3VwcG9ydEludGVybmFsVVYpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsCmluZGV4IGQ5ZjJh
MDM4ODFjYzI3YWU1OGUxYmNiMWI4OTBjYTQyNWUwYzg3OWMuLmM5OGJjYWM5YzJhN2QzZjAwYWQ3
YjcxNzMwOTAwNWJmMzEyZWZjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbApAQCAtMTAy
LDYgKzEwMiw3IEBACiAgICAgYm9vbGVhbiBjYW5Eb3duZ3JhZGUgPSBmYWxzZTsKICAgICBib29s
ZWFuIGV4cGVjdENhbmNlbCA9IGZhbHNlOwogICAgIGJvb2xlYW4gc3VwcG9ydENsaWVudFBpbiA9
IGZhbHNlOworICAgIGJvb2xlYW4gc3VwcG9ydEludGVybmFsVVYgPSBmYWxzZTsKIH07CiAKIFsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01v
Y2svTW9ja0hpZENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vTW9jay9Nb2NrSGlkQ29ubmVjdGlvbi5jcHAKaW5kZXggMDA2NTRlNDI1ZWI5
M2Y0NGE1YjEzNjYxZjgxOGM0MTJlNWM5YmUyNy4uZTkxMDVkMWM0MGM4OTMwMDE3NTlmNTVkOTY0
NjZmODgzNjIzNGUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vTW9jay9Nb2NrSGlkQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlkQ29ubmVjdGlvbi5jcHAK
QEAgLTIyOCwxNSArMjI4LDE4IEBAIHZvaWQgTW9ja0hpZENvbm5lY3Rpb246OmZlZWRSZXBvcnRz
KCkKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGluZm9EYXRhOwogICAgICAgICBpZiAobV9jb25m
aWd1cmF0aW9uLmhpZC0+Y2FuRG93bmdyYWRlKQogICAgICAgICAgICAgaW5mb0RhdGEgPSBlbmNv
ZGVBc0NCT1IoQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lvbjo6
a0N0YXAsIFByb3RvY29sVmVyc2lvbjo6a1UyZiB9LCBWZWN0b3I8dWludDhfdD4oYWFndWlkTGVu
Z3RoLCAwdSkpKTsKLSAgICAgICAgZWxzZSBpZiAobV9jb25maWd1cmF0aW9uLmhpZC0+c3VwcG9y
dENsaWVudFBpbikgeworICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEF1dGhlbnRpY2F0b3JH
ZXRJbmZvUmVzcG9uc2UgaW5mb1Jlc3BvbnNlKHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCB9LCBW
ZWN0b3I8dWludDhfdD4oYWFndWlkTGVuZ3RoLCAwdSkpOwotICAgICAgICAgICAgaW5mb1Jlc3Bv
bnNlLnNldFBpblByb3RvY29scyh7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiB9KTsKICAgICAgICAg
ICAgIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zIG9wdGlvbnM7Ci0gICAgICAgICAgICBv
cHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0
aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGluU2V0KTsKKyAgICAg
ICAgICAgIGlmIChtX2NvbmZpZ3VyYXRpb24uaGlkLT5zdXBwb3J0Q2xpZW50UGluKSB7CisgICAg
ICAgICAgICAgICAgaW5mb1Jlc3BvbnNlLnNldFBpblByb3RvY29scyh7IHBpbjo6a1Byb3RvY29s
VmVyc2lvbiB9KTsKKyAgICAgICAgICAgICAgICBvcHRpb25zLnNldENsaWVudFBpbkF2YWlsYWJp
bGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5
OjprU3VwcG9ydGVkQW5kUGluU2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICht
X2NvbmZpZ3VyYXRpb24uaGlkLT5zdXBwb3J0SW50ZXJuYWxVVikKKyAgICAgICAgICAgICAgICBv
cHRpb25zLnNldFVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBv
cnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRD
b25maWd1cmVkKTsKICAgICAgICAgICAgIGluZm9SZXNwb25zZS5zZXRPcHRpb25zKFdURk1vdmUo
b3B0aW9ucykpOwogICAgICAgICAgICAgaW5mb0RhdGEgPSBlbmNvZGVBc0NCT1IoaW5mb1Jlc3Bv
bnNlKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBpbmZvRGF0YSA9IGVuY29kZUFzQ0JP
UihBdXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCB9
LCBWZWN0b3I8dWludDhfdD4oYWFndWlkTGVuZ3RoLCAwdSkpKTsKKyAgICAgICAgfQogICAgICAg
ICBpbmZvRGF0YS5pbnNlcnQoMCwgc3RhdGljX2Nhc3Q8dWludDhfdD4oQ3RhcERldmljZVJlc3Bv
bnNlQ29kZTo6a1N1Y2Nlc3MpKTsgLy8gUHJlcGVuZCBzdGF0dXMgY29kZS4KICAgICAgICAgaWYg
KHN0YWdlc01hdGNoKCkgJiYgbV9jb25maWd1cmF0aW9uLmhpZC0+ZXJyb3IgPT0gTW9jazo6SGlk
RXJyb3I6Oldyb25nQ2hhbm5lbElkKQogICAgICAgICAgICAgbWVzc2FnZSA9IEZpZG9IaWRNZXNz
YWdlOjpjcmVhdGUobV9jdXJyZW50Q2hhbm5lbCAtIDEsIEZpZG9IaWREZXZpY2VDb21tYW5kOjpr
Q2JvciwgaW5mb0RhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcApp
bmRleCBlMDYzMmUwYjU3MjQ5MTBlYzkzYWY1NTNiMTM4ODQyY2YxNDRhY2NiLi5iNjQxZGQ5NDcw
OTk5YTc5NWUxYzZjMDI0YmNhYjE5NWZjMjI5NzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBB
dXRoZW50aWNhdG9yLmNwcApAQCAtNDcsNiArNDcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIGZpZG87CiAKK3VzaW5nIFVW
QXZhaWxhYmlsaXR5ID0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmlj
YXRpb25BdmFpbGFiaWxpdHk7CisKIG5hbWVzcGFjZSB7CiBXZWJBdXRoZW50aWNhdGlvblN0YXR1
cyB0b1N0YXR1cyhjb25zdCBDdGFwRGV2aWNlUmVzcG9uc2VDb2RlJiBlcnJvcikKIHsKQEAgLTky
LDEwICs5NCwxNCBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCgpCiAg
ICAgICAgIHJldHVybjsKICAgICBWZWN0b3I8dWludDhfdD4gY2JvckNtZDsKICAgICBhdXRvJiBv
cHRpb25zID0gV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4ocmVx
dWVzdERhdGEoKS5vcHRpb25zKTsKLSAgICBpZiAobV9pbmZvLm9wdGlvbnMoKS5jbGllbnRQaW5B
dmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGlu
QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGluU2V0KQotICAgICAgICBjYm9yQ21kID0gZW5j
b2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9u
cywgbV9pbmZvLm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCksIFBpblBh
cmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZlcnNpb24sIG1fcGluQXV0aCB9KTsKKyAgICBhdXRv
IGludGVybmFsVVZBdmFpbGFiaWxpdHkgPSBtX2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHkoKTsKKyAgICAvLyBJZiBVViBpcyByZXF1aXJlZCwgdGhlbiBlaXRoZXIg
YnVpbHQtaW4gdXYgb3IgYSBwaW4gd2lsbCB3b3JrLgorICAgIGlmIChpbnRlcm5hbFVWQXZhaWxh
YmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCAmJiAoIW9w
dGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbiB8fCBvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxl
Y3Rpb24tPnVzZXJWZXJpZmljYXRpb24gIT0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpE
aXNjb3VyYWdlZCkpCisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVl
c3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmls
aXR5KTsKKyAgICBlbHNlIGlmIChtX2luZm8ub3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0
eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpCisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3Jl
ZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5h
bFVWQXZhaWxhYmlsaXR5LCBQaW5QYXJhbWV0ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9uLCBt
X3BpbkF1dGggfSk7CiAgICAgZWxzZQotICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRl
bml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgbV9pbmZvLm9w
dGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOworICAgICAgICBjYm9yQ21k
ID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwg
b3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSk7CiAgICAgZHJpdmVyKCkudHJhbnNhY3Qo
V1RGTW92ZShjYm9yQ21kKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXShWZWN0b3I8
dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAg
ICAgICAgIGlmICghd2Vha1RoaXMpCkBAIC0xMzMsMTAgKzEzOSwxNCBAQCB2b2lkIEN0YXBBdXRo
ZW50aWNhdG9yOjpnZXRBc3NlcnRpb24oKQogICAgIEFTU0VSVCghbV9pc0Rvd25ncmFkZWQpOwog
ICAgIFZlY3Rvcjx1aW50OF90PiBjYm9yQ21kOwogICAgIGF1dG8mIG9wdGlvbnMgPSBXVEY6Omdl
dDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9u
cyk7Ci0gICAgaWYgKG1faW5mby5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0g
QXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1
cHBvcnRlZEFuZFBpblNldCAmJiBvcHRpb25zLnVzZXJWZXJpZmljYXRpb24gIT0gVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZCkKLSAgICAgICAgY2JvckNtZCA9IGVuY29k
ZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBt
X2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSwgUGluUGFyYW1l
dGVycyB7IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9waW5BdXRoIH0pOworICAgIGF1dG8gaW50
ZXJuYWxVVkF2YWlsYWJpbGl0eSA9IG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSgpOworICAgIC8vIElmIFVWIGlzIHJlcXVpcmVkLCB0aGVuIGVpdGhlciBidWls
dC1pbiB1diBvciBhIHBpbiB3aWxsIHdvcmsuCisgICAgaWYgKGludGVybmFsVVZBdmFpbGFiaWxp
dHkgPT0gVVZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkICYmIG9wdGlvbnMu
dXNlclZlcmlmaWNhdGlvbiAhPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJh
Z2VkKQorICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihy
ZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFpbGFiaWxpdHkpOworICAg
IGVsc2UgaWYgKG1faW5mby5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEFuZFBpblNldCAmJiBvcHRpb25zLnVzZXJWZXJpZmljYXRpb24gIT0gVXNlclZlcmlmaWNh
dGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZCkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZUdl
dEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRl
cm5hbFVWQXZhaWxhYmlsaXR5LCBQaW5QYXJhbWV0ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9u
LCBtX3BpbkF1dGggfSk7CiAgICAgZWxzZQotICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNz
ZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIG1faW5mby5v
cHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpKTsKKyAgICAgICAgY2JvckNt
ZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBv
cHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5KTsKICAgICBkcml2ZXIoKS50cmFuc2FjdChX
VEZNb3ZlKGNib3JDbWQpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKFZlY3Rvcjx1
aW50OF90PiYmIGRhdGEpIHsKICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBhZWUxYmNiZjZjZDJiNWIzNDBkOGIwNTJhZjdlYjIyYWIyMjk3ODY1
Li5hMjBmMDAxMDA4ZWIzMjdlNmIxYjY4YjJhNmUwNWU1YjAxZWNjNzEzIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjEtMDktMjggIEpvaG4gUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtX
ZWJBdXRobl0gUHJlZmVyIGludGVybmFsIHVzZXIgdmVyaWZpY2F0aW9uIGlmIGF2YWlsYWJsZSBv
dmVyIHBpbiBlbnRyeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMzkwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUzNTkyNjk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWlu
dGVybmFsLXV2Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwt
dXYuaHRtbDogQWRkZWQuCisKIDIwMjEtMDktMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIFZhbGlkYXRlIERldmljZUlkSGFzaFNhbHRTdG9yYWdlIHBlcnNp
c3RlbnQgZGF0YQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmY2RhMjVkYmQ1MDc5YWJkN2Ux
YmIzMjRiY2ZkZWMzODNmNTE4NzhhLi4xOGVlMGUzNDNmZjJlZDI4MDgwZDhlOGFiMzE3NmFjMDBk
NWNmMWM2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzkyLDYgKzM5Miw4IEBACiAJCTUy
NDUxNzg3MjFCOUY1N0IwMDgyQ0IzNCAvKiBSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVENkJFMjFCOUYx
QjIwMDQ2QUJBNiAvKiBSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSAqLzsgfTsKIAkJNTI0QkJD
OUUxOURGNzJDMDAwMkYxQUYxIC8qIGZpbGUtd2l0aC12aWRlby5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNEJCQzlCMTlERjM3MTQw
MDJGMUFGMSAvKiBmaWxlLXdpdGgtdmlkZW8uaHRtbCAqLzsgfTsKIAkJNTI0QkJDQTExOUUzMEM3
NzAwMkYxQUYxIC8qIHRlc3QubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyNEJCQ0EwMTlFMzBDNjMwMDJGMUFGMSAvKiB0ZXN0Lm1wNCAq
LzsgfTsKKwkJNTI5QjhFMEYyNkZEMkUyMjAwRjk4QUREIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI5QjhFMEUyNkZEMkUyMjAwRjk4QURE
IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2Lmh0
bWwgKi87IH07CisJCTUyOUI4RTExMjZGRDJGMkUwMEY5OEFERCAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtaW50ZXJuYWwtdXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjlCOEUxMDI2RkQyRjJFMDBGOThB
REQgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWludGVybmFsLXV2Lmh0
bWwgKi87IH07CiAJCTUyQjhDRjk4MTU4NjhEOTEwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUyQjhDRjk0MTU4NjhDRjAwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5odG1sICovOyB9Owog
CQk1MkQ1RDZDMDIxQjlGMUIzMDA0NkFCQTYgLyogUmVuZGVyaW5nUHJvZ3Jlc3MubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1RDZCRDIxQjlGMUIy
MDA0NkFCQTYgLyogUmVuZGVyaW5nUHJvZ3Jlc3MubW0gKi87IH07CiAJCTUyRDY3M0VFMUFGQjEy
NzMwMEZBMTlGRSAvKiBXS1BhZ2VDb3B5U2Vzc2lvblN0YXRlV2l0aEZpbHRlcmluZy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ2NzNFQzFBRkIx
MjY4MDBGQTE5RkUgLyogV0tQYWdlQ29weVNlc3Npb25TdGF0ZVdpdGhGaWx0ZXJpbmcuY3BwICov
OyB9OwpAQCAtMTUxNiw3ICsxNTE4LDYgQEAKIAkJCQkwN0UxRjZBMjFGRkM0NEZBMDA5NkM3RUMg
LyogZ2V0RGlzcGxheU1lZGlhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNDY3QzU2
NTMyMUI1RUQxMzAwNTc1MTZEIC8qIEdldFNlc3Npb25Db29raWUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk0MTY2MUM2NjIzNTVFODVFMDBEMzNDMjcgLyogZ2V0VXNlck1lZGlhLXdl
YmF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCi0JCQkJMDc0OTk0NDIxRUE1MDM0QjAw
MERBNDREIC8qIGludmFsaWREZXZpY2VJREhhc2hTYWx0cyBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQkwNzQ5OTQ0MjFFQTUwMzRCMDAwREE0NEUgLyogZ2V0VXNlck1lZGlhLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJMDc0OTk0NTIxRUE1MDM0QjAwMERBNDRFIC8qIGdldFVzZXJN
ZWRpYTIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkwNzQ5OTQ0MjFFQTUwMzRCMDAw
REE0NUUgLyogZ2V0VXNlck1lZGlhQXVkaW9WaWRlb0NhcHR1cmUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKQEAgLTE1NzMsNiArMTU3NCw3IEBACiAJCQkJMkVGRjA2Q0QxRDhBNDI5QTAwMDRC
QjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlDRTM1MjRGQTFCMTQ0Mzg5MDAyOEE3QzUgLyogaW5wdXQtZm9jdXMt
Ymx1ci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNFNkQwRUUzMjQyNkI5MzIwMDJB
RDkwMSAvKiBpbnNlcnQtdGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTA3NDk5
NDQyMUVBNTAzNEIwMDBEQTQ0RCAvKiBpbnZhbGlkRGV2aWNlSURIYXNoU2FsdHMgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTdGNTZBNUMxQzdGOENDMTAwRjMxRDdFIC8qIElzTmF2aWdhdGlv
bkFjdGlvblRydXN0ZWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDOUI0QUQyQzFF
Q0E2RjdGMDBGNUZFQTAgLyoganMtYXV0b3BsYXktYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQlDOTlCNjc1RDFFMzk3MjIwMDBGQzZDODAgLyoganMtcGxheS13aXRoLWNvbnRy
b2xzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xNzQ0LDYgKzE3NDYsNyBAQAogCQkJ
CTJFQkQ5RDBBMjEzNDczMEQwMDJEQTc1OCAvKiB2aWRlby5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCUNENTc3Nzk5MjExQ0UwRTQwMDFCMzcxRSAvKiB3ZWItYXVkaW8tb25seS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3NjYzREYzMjM1N0U0ODkwMEU4NUUwOSAvKiB3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCisJCQkJNTI5QjhFMTEyNkZEMkYyRTAwRjk4QUREIC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTU3OUYxQzAxMjNDOTNBRjUwMEM3RDRCNCAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtbXVsdGlwbGUtYWNjb3VudHMuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk1Nzc0NTREMDIzNTlCMzc4MDA4RTFFRDcgLyogd2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJNTc4REE0NEMyM0VDRDIzMDAwMjQ2MDEwIC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4tYXV0aC1ibG9ja2VkLWVycm9yLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCkBAIC0xNzU3LDYgKzE3NjAsNyBAQAogCQkJCTU3NjYzREVBMjM0RUE2NkQw
MEU4NUUwOSAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQk1Nzc0NTREMjIzNTlCQjAxMDA4RTFFRDcgLyogd2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRpYWxzLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJNTdDNjI0NTAyMzQ2QzIxRTAwMzgzRkU3IC8qIHdlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJ
NTI5QjhFMEYyNkZEMkUyMjAwRjk4QUREIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLWludGVybmFsLXV2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc4
REE0NDgyM0VDRDA5QjAwMjQ2MDEwIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRp
YWwtaGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQk1NzBEMjZGNDIzQzNDQTZBMDBENUNGNjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2Ut
Y3JlZGVudGlhbC1oaWQtcGluLWdldC1rZXktYWdyZWVtZW50LWVycm9yLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTc1MUIyOEEyNDlENUJDNTAwNjY0QzJBIC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGluLWlu
dmFsaWQtZXJyb3ItcmV0cnkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTIyNDUsNiAr
MjI0OSw4IEBACiAJCTUyNEJCQzlCMTlERjM3MTQwMDJGMUFGMSAvKiBmaWxlLXdpdGgtdmlkZW8u
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJmaWxlLXdpdGgtdmlkZW8uaHRtbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNEJCQzlDMTlERjM3N0EwMDJGMUFGMSAv
KiBXS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUyNEJCQ0EwMTlFMzBDNjMwMDJGMUFGMSAvKiB0ZXN0Lm1wNCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSB0ZXN0Lm1w
NDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI5QjhFMEUyNkZEMkUyMjAwRjk4QURE
IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2Lmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IG5hbWUgPSAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50
ZXJuYWwtdXYuaHRtbCI7IHBhdGggPSAiVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwtdXYuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUyOUI4RTEwMjZGRDJGMkUwMEY5OEFERCAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtaW50ZXJuYWwtdXYuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJ3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtaW50ZXJuYWwtdXYuaHRtbCI7IHBhdGgg
PSAiVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
LWludGVybmFsLXV2Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkI4Q0Y5
NDE1ODY4Q0YwMDAyODEwNTMgLyogU2V0RG9jdW1lbnRVUkkuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9IFNldERvY3VtZW50VVJJLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUyQjhDRjk1MTU4NjhDRjAwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNldERvY3VtZW50VVJJLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkNCNDc0MDE0NDhGQjkzMDA4NzM5OTUgLyog
TG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5v
bkRpcmVjdG9yeVVSTC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjM4LDYg
KzMyNDQsOCBAQAogCQkwOEZCNzc5NEZFODQxNTVEQzAyQUFDMDcgLyogVGVzdFdlYktpdEFQSSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTI5QjhFMTAy
NkZEMkYyRTAwRjk4QUREIC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1p
bnRlcm5hbC11di5odG1sICovLAorCQkJCTUyOUI4RTBFMjZGRDJFMjIwMEY5OEFERCAvKiB3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1sICovLAog
CQkJCTQ5QUVFRjY4MjQwNzI3NkYwMEM4N0U0QyAvKiBJbmZvLnBsaXN0ICovLAogCQkJCTVDOUQ5
MjI2MjJEN0REN0IwMDhFOTI2NiAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJNUM5RDkyMUQy
MkQ3REJGNzAwOEU5MjY2IC8qIFNvdXJjZXMudHh0ICovLApAQCAtMzQ3Myw3ICszNDgxLDYgQEAK
IAkJCQk2QjI1QTc1MTI1REM4RDRFMDA3MDc0NEYgLyogRXZlbnRBdHRyaWJ1dGlvbi5tbSAqLywK
IAkJCQlDREEyOUIyODIwRkQyQTk5MDBGMTVDRUQgLyogRXhpdEZ1bGxzY3JlZW5PbkVudGVyUGlQ
Lm1tICovLAogCQkJCTFEMTJCRUJGMjQ1QkVGODUwMDRDMEI3QSAvKiBFeGl0UGlQT25TdXNwZW5k
VmlkZW9FbGVtZW50Lm1tICovLAotCQkJCTUxODE5RjI5MjZFQUM5ODIwMEU0NzM3NSAvKiBGVFAu
bW0gKi8sCiAJCQkJMkQ4MTA0Q0IxQkVDMTNFNzAwMjBEQTQ2IC8qIEZpbmRJblBhZ2UubW0gKi8s
CiAJCQkJNTEyNDJDRDQyMzc0RTYxRTAwRUVEOUMxIC8qIEZpbmRJblBhZ2VBUEkubW0gKi8sCiAJ
CQkJMTE4MTUzNDcyMjA4QkFERjAwQjJDQ0QyIC8qIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVz
dG9uZS5tbSAqLywKQEAgLTM0ODEsNiArMzQ4OCw3IEBACiAJCQkJMkU5MkI4RjgyMTY0OTBFQTAw
NUI2NEYwIC8qIEZvbnRBdHRyaWJ1dGVzLm1tICovLAogCQkJCUY0RkEyODI5MjRDRDAxMjcwMDYx
OEE0NiAvKiBGb3JtVmFsaWRhdGlvbi5tbSAqLywKIAkJCQk1Q0I1QjNCRDFGRkM1MTdFMDBDMjdC
QjAgLyogRnJhbWVIYW5kbGVTZXJpYWxpemF0aW9uLm1tICovLAorCQkJCTUxODE5RjI5MjZFQUM5
ODIwMEU0NzM3NSAvKiBGVFAubW0gKi8sCiAJCQkJQ0RDRjc4QTcyNDRBMkVEQjAwNDgwMzExIC8q
IEZ1bGxzY3JlZW5BbGVydC5tbSAqLywKIAkJCQlDRDc4RTExQTFEQjdFQTM2MDAxNEEyREUgLyog
RnVsbHNjcmVlbkRlbGVnYXRlLm1tICovLAogCQkJCTNGMUI1MjY4MUQzRDcxMjkwMDhENjBDNCAv
KiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMubW0gKi8sCkBAIC00NTcwLDYgKzQ1NzgsNyBA
QAogCQlCQzkwOTc3QjEyNTU3MUFFMDAwODM3NTYgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0QTQxMEY0RDE5QUY3QkVGMDAyRUJB
QjQgLyogaW52YWxpZERldmljZUlESGFzaFNhbHRzICovLAogCQkJCUMwNDVGOTQ2MTM4NUMyRjgw
MEMwRjNDRCAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgKi8sCiAJCQkJMUMyQjgxODUxQzg5MjUyMzAw
QTU1MjlGIC8qIEFoZW0udHRmICovLAogCQkJCTkzRDNEMTlCMTdCMUE3QjAwMEM3QzQxNSAvKiBh
bGwtY29udGVudC1pbi1vbmUtaWZyYW1lLmh0bWwgKi8sCkBAIC00NjE4LDcgKzQ2MjcsNiBAQAog
CQkJCUJDQkQzNzJFMTI1QUJCRTYwMEQyQzI5RiAvKiBpY29uLnBuZyAqLywKIAkJCQkxQ0M4MENF
OTI0NzRGMUY3MDA0REM0ODkgLyogaWRlbXBvdGVudC1tb2RlLWF1dG9zaXppbmctb25seS1ob25v
cnMtcGVyY2VudGFnZXMuaHRtbCAqLywKIAkJCQlDRTM1MjRGNTFCMTQyQkJCMDAyOEE3QzUgLyog
aW5wdXQtZm9jdXMtYmx1ci5odG1sICovLAotCQkJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNCAv
KiBpbnZhbGlkRGV2aWNlSURIYXNoU2FsdHMgKi8sCiAJCQkJQzlCNEFEMkIxRUNBNkY3NjAwRjVG
RUEwIC8qIGpzLWF1dG9wbGF5LWF1ZGlvLmh0bWwgKi8sCiAJCQkJQzk5QjY3NUIxRTM5NzFGQzAw
RkM2QzgwIC8qIGpzLXBsYXktd2l0aC1jb250cm9scy5odG1sICovLAogCQkJCTU1MjI2QTJFMUVC
OTY5QjYwMEMzNkFEMCAvKiBsYXJnZS1yZWQtc3F1YXJlLWltYWdlLmh0bWwgKi8sCkBAIC01NTQx
LDYgKzU1NDksNyBAQAogCQkJCTdDQ0U3RUMwMUE0MTFBN0UwMDQ0N0M0QyAvKiBGcmFnbWVudE5h
dmlnYXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGNjFBNDExQUU2MDA0NDdDNEMg
LyogRnJhbWVNSU1FVHlwZUhUTUwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRjcxQTQx
MUFFNjAwNDQ3QzRDIC8qIEZyYW1lTUlNRVR5cGVQTkcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTE4MTlGMkEyNkVBQzk4MzAwRTQ3Mzc1IC8qIEZUUC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNE
Q0Y3OEE4MjQ0QTMyRjcwMDQ4MDMxMSAvKiBGdWxsc2NyZWVuQWxlcnQubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDRDc4RTExRDFEQjdFQTY2MDAxNEEyREUgLyogRnVsbHNjcmVlbkRlbGVnYXRlLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCMjEzQkQyNEVGNTIyODAwRkRFMzAxIC8qIEZ1bGxzY3Jl
ZW5Gb2N1cy5tbSBpbiBTb3VyY2VzICovLApAQCAtNTc5OCw3ICs1ODA3LDYgQEAKIAkJCQk3Q0NF
N0YxNDFBNDExQUU2MDA0NDdDNEMgLyogU2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJ
dGVtSW5MaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3QkNBNjFDMUI1OTZCQTkwMDIwMTJD
QSAvKiBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M4M0UwQzUxRDBBNjU0NjAwRkVCQ0YzIC8qIFNocmlua1RvRml0Lm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNTE4MTlGMkEyNkVBQzk4MzAwRTQ3Mzc1IC8qIEZUUC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RUNEMUE0MTFBN0UwMDQ0N0M0QyAvKiBTaW1wbGlmeU1hcmt1
cC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMxNDlENTUwMjQyRTk4REYwMDNFQkIxMiAvKiBTbGVl
cERpc2FibGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRGRjdCNkQxREE0ODdBRjAwODE0NjE0
IC8qIFNuYXBzaG90U3RvcmUubW0gaW4gU291cmNlcyAqLywKQEAgLTYwMTgsNiArNjAyNiw3IEBA
CiAJCQkJNUM0MjU5NDYyMjY2QTY4QTAwMzlBQTdBIC8qIEJhc2ljUHJvcG9zZWRDcmVkZW50aWFs
UGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0QjdBNjExREYzNzFDRjAwQUNDQjZDIC8q
IEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBODlC
QjY4MjMzMTY0M0EwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0gaW4gU291
cmNlcyAqLywKKwkJCQk1MTc1QzdBMjI2Rjg3NjIzMDAwM0FGNUMgLyogQnVuZGxlUGFnZUNvbnNv
bGVNZXNzYWdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQjAxQjg3NDM2RjAwMDk3MTEw
IC8qIEJ1bmRsZVBhcmFtZXRlcnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0E3MDlB
RjFFM0VBOTdFMDBDQTU5NjkgLyogQnVuZGxlUmFuZ2VIYW5kbGVQbHVnSW4ubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1Qzc1NzE2MTIyMTI0QzUyMDBCOUU1QUMgLyogQnVuZGxlUmV0YWluUGFnZVBs
dWdJbi5tbSBpbiBTb3VyY2VzICovLApAQCAtNjAzNSw3ICs2MDQ0LDYgQEAKIAkJCQkyRDNDQTNB
ODIyMURGNEI0MDA4OEU4MDMgLyogUGFnZU92ZXJsYXlQbHVnaW4ubW0gaW4gU291cmNlcyAqLywK
IAkJCQlGNDRDN0EwMDIwRjlFRUJGMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblBsdWdJbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUExM0VCQkFCMUI4NzQzNDYwMDA5NzExMCAvKiBQbGF0Zm9y
bVV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE3NUM3QTIyNkY4NzYyMzAw
MDNBRjVDIC8qIEJ1bmRsZVBhZ2VDb25zb2xlTWVzc2FnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTFBNEY4MUNGMUJERkZENTMwMDRFNjcyRSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeVBsdWdJbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUExMkREQzAyMUU4MzdDMjQwMENGNkNBRSAvKiBSZW5kZXJl
ZEltYWdlV2l0aE9wdGlvbnNQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MjQ1MTc4NzIx
QjlGNTdCMDA4MkNCMzQgLyogUmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4ubW0gaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBhYmE0ZmI5MDdmYjIy
N2MzNzQwZGFmMDlhZjExYzcxNDgwNjk3ZTI0Li4wMWEyOTgwM2NmOWQxYjk1ZTg0M2YxNjY2YTdh
M2I3ODY2NDcwMzMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0x
MTMxLDYgKzExMzEsMjQgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5U
b2tlblBpbkF1dGhJbnZhbGlkRXJyb3JBbmRSZXRyeSkKICAgICBFWFBFQ1RfVFJVRSh3ZWJBdXRo
ZW50aWNhdGlvblBhbmVsVXBkYXRlUElOSW52YWxpZCk7CiB9CiAKK1RFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxJbnRlcm5hbFVWKQoreworICAgIHJlc2V0KCk7Cisg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWludGVy
bmFsLXV2IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJX
ZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNd
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCld
OworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpk
ZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgZm9jdXNdOworCisgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07Cisg
ICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJTdWNjZWVkZWQhIl07Cit9CisKIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW4pCiB7CiAgICAgcmVzZXQoKTsK
QEAgLTEyMTAsNiArMTIyOCwyNCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFz
c2VydGlvblBpbikKICAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRlZCEiXTsK
IH0KIAorVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25JbnRlcm5hbFVW
KQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11diIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJW
aWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGZvY3VzXTsK
KworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
dGVzdFVSTC5nZXQoKV1dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiU3VjY2VlZGVk
ISJdOworfQorCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbkF1
dGhCbG9ja2VkRXJyb3IpCiB7CiAgICAgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24taGlkLWludGVybmFsLXV2Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMwMDgwN2I1MjY3N2Y2ZjMxMzYxMjVjNzBjM2RjYzczNGU3M2UzMGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5odG1sCkBA
IC0wLDAgKzEsMzAgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4K
KyAgICBjb25zdCB0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NCA9CisgICAgICAgICJBS01Cb21K
cFpGaEFLQWl0enVqK1RzbHplbGYzL3Zad0lHdERRTmdvS2VGZDVvRWllWXpoeXpBNjVzYWYwdEsy
IiArCisgICAgICAgICJ3L21vb2E3dFF0R2dEZHdaSWpPaGpjdVowcFExYWpvRTRHUjBlWEJsYW5C
MVlteHBZeTFyWlhrQ1dDVkd6SCs1IiArCisgICAgICAgICJaNTFWc3R1UWt1SEkyZVhoMEN0MWdQ
QzBnU3gzQ1dMaDVJOWEyQUVBQUFCUUExaEhNRVVDSVFDU0ZUdXVCV2dCIiArCisgICAgICAgICI0
L0YwVkI3RGxVVk0wOUlIUG14ZTFNekhVd1JvQ1JaYkNBSWdHS292NnhvQXgyTUVmNi82cU5zOE91
dHpoUDJDIiArCisgICAgICAgICJRb0oxTDdGZTY0Rzl1QmM9IjsKKworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHN1cHBvcnRJbnRl
cm5hbFVWOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdEFzc2VydGlvbk1lc3NhZ2VCYXNlNjRd
IH0gfSk7CisgICAgICAgIGludGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5m
b2N1cygpOyB9KTsKKyAgICB9CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAg
ICAgICAgICAgdGltZW91dDogMTAwCisgICAgICAgIH0sCisgICAgICAgIGF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb246IHsgdXNlclZlcmlmaWNhdGlvbjogInJlcXVpcmVkIiB9LAorICAgIH07CisKKyAg
ICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7
CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQh
Iik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNz
YWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIu
cG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0
aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwtdXYuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtaW50ZXJuYWwtdXYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTAyNjJhNjNiMjVkYmRiNWMzNGY1
NzQ0MTlhMmFjODA0ZmE2N2I3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhp
ZC1pbnRlcm5hbC11di5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0Q3JlYXRpb25NZXNzYWdlQmFzZTY0
ID0KKyAgICAgICAgIkFLTUJabkJoWTJ0bFpBSll4RWJNZjdsbm5WV3kyNUNTNGNqWjVlSFFLM1dB
OExTQkxIY0pZdUhrajFyWVFRQUEiICsKKyAgICAgICAgIkFFNzRvQkh6akFwTkZZQUdGeEVmbnR4
OUFFQW9DSzNPNlA1T3lYTjZWL2YrOW5BZ2EwTkEyQ2dwNFYzbWdTSjUiICsKKyAgICAgICAgImpP
SExNRHJteHAvUzByYkQrYWlocnUxQzBhQU4zQmtpTTZHTnk1blNsRFZxT2dUZ3BRRUNBeVlnQVNG
WUlFRmIiICsKKyAgICAgICAgImhlM1JrTnVkNnNneXJhQkdqbGgxcHpUbENaZWhRbEwvYjE4SFo2
V0dJbGdnSmdmVWQvZW45cDVBSXFNUWJVbmkiICsKKyAgICAgICAgIm5FZVhkRkxrdlcwL3pWNUJw
RWpqTnhBRG8yTmhiR2NtWTNOcFoxaEhNRVVDSVFES2crWkJtRUJ0ZjBsV3E0UmUiICsKKyAgICAg
ICAgImRINC9pL0xPWXFPUjR1UjJOQWoyelFtdzlRSWdiVFhiNGh2RmJqNFQyN2J2L3JHcmMreSsw
cHVvWU9Ca0JrOVAiICsKKyAgICAgICAgIm1DZXdXbE5qZURWamdWa0N3akNDQXI0d2dnR21vQU1D
QVFJQ0JIU0cvY0l3RFFZSktvWklodmNOQVFFTEJRQXciICsKKyAgICAgICAgIkxqRXNNQ29HQTFV
RUF4TWpXWFZpYVdOdklGVXlSaUJTYjI5MElFTkJJRk5sY21saGJDQTBOVGN5TURBMk16RXciICsK
KyAgICAgICAgIklCY05NVFF3T0RBeE1EQXdNREF3V2hnUE1qQTFNREE1TURRd01EQXdNREJhTUc4
eEN6QUpCZ05WQkFZVEFsTkYiICsKKyAgICAgICAgIk1SSXdFQVlEVlFRS0RBbFpkV0pwWTI4Z1FV
SXhJakFnQmdOVkJBc01HVUYxZEdobGJuUnBZMkYwYjNJZ1FYUjAiICsKKyAgICAgICAgIlpYTjBZ
WFJwYjI0eEtEQW1CZ05WQkFNTUgxbDFZbWxqYnlCVk1rWWdSVVVnVTJWeWFXRnNJREU1TlRVd01E
TTQiICsKKyAgICAgICAgIk5ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU1ZY
Zk90OXlSOU1YWHYvWnpFOHhwT2g0NjYiICsKKyAgICAgICAgIjRZRUpWbUZRK3ppTExsOWxKNzlY
UUpxbGdhVU5Dc1V2R0VSY0NoTlVpaE5UeUtUbG1uQk9VanZBVGV2dG8yd3ciICsKKyAgICAgICAg
ImFqQWlCZ2tyQmdFRUFZTEVDZ0lFRlRFdU15NDJMakV1TkM0eExqUXhORGd5TGpFdU1UQVRCZ3Ny
QmdFRUFZTGwiICsKKyAgICAgICAgIkhBSUJBUVFFQXdJRklEQWhCZ3NyQmdFRUFZTGxIQUVCQkFR
U0JCRDRvQkh6akFwTkZZQUdGeEVmbnR4OU1Bd0ciICsKKyAgICAgICAgIkExVWRFd0VCL3dRQ01B
QXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBREZjU0lEbW1sSitPR2FKdlduOUNxaHYiICsKKyAg
ICAgICAgIlNldWVUb1ZGUVZWdnF0QUxPZ0NLSGR3QitXeDI5bWcyR3BIaU1zZ1FwNXhqQjB5YmJu
cEc2eDIxMkZ4RVNKK0ciICsKKyAgICAgICAgImluWkQwaXBjaGk3QVB3UGxoSXZqZ0gxNnpWWDQ0
YTRlNGhPc2M2dExJT1A3MVNhTXNIdUhnQ2NkSDB2ZzVkMnMiICsKKyAgICAgICAgImMwMDZXSmU5
VFhPNmZ6VitvZ2pKbllwTktRTG1DWG9BWEUzSkJOd0tHQklPQ3ZmUURQeVdtaWlHNWJHeFlmUHQi
ICsKKyAgICAgICAgInk4WjNwbmpYKzFNRG5NMmhocjQwdWxNeGxTTkRuWC9aU25EeU1HSWJrOFRP
UW1qVEYwMlVPOGF1UDhrM3d0NUQiICsKKyAgICAgICAgIjFyUk9JUlU5K0ZDU1g1V1FZaTY4UnVE
ckdNWkI4UDUrYnlvSnFiS1FkeG4yTG1FMW9aQXlvaFBBbUxjb1BPND0iOworICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uKHsgaGlkOiB7IHN1cHBvcnRJbnRlcm5hbFVWOiB0cnVlLCBwYXlsb2Fk
QmFzZTY0OiBbdGVzdENyZWF0aW9uTWVzc2FnZUJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50ZXJu
YWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAgIH0KKwor
ICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAg
cnA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVz
ZWVkIiwKKyAgICAgICAgICAgICAgICBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAg
ICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICBjaGFsbGVuZ2U6IG5ldyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHB1YktleUNy
ZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAg
IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHt1c2VyVmVyaWZpY2F0aW9uOiAicmVxdWlyZWQifSwK
KyAgICAgICAgfQorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9w
dGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNj
ZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAg
ICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7Cisg
ICAgfSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439768</attachid>
            <date>2021-09-30 12:15:37 -0700</date>
            <delta_ts>2021-10-04 13:07:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213903-20210930121536.patch</filename>
            <type>text/plain</type>
            <size>25037</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY0ZTIyOGZiMjk0ZGU4
YTE1YzNkNWVhYWViMzBkMWRkNzU4MThjMS4uOWRkNjhmYWE5MWMyMTEwNTg0ODUzMTM1MTU0YzZm
MDJmMzJjMzg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA5LTMwICBKb2hu
IFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByZWZl
ciBpbnRlcm5hbCB1c2VyIHZlcmlmaWNhdGlvbiBpZiBhdmFpbGFibGUgb3ZlciBwaW4gZW50cnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1MzU5MjY5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgVGhpcyBhZGRzIGFuIG9wdGlvbiB0byBtb2NrIGlu
dGVybmFsIHVzZXIgdmVyaWZpY2F0aW9uIGluIHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9N
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpIaWRDb25maWd1cmF0aW9uOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiB0ZXN0aW5nL01v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsOgorCiAyMDIxLTA5LTMwICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBDTTogVGFrZSBhcHAg
YnVuZGxlIElEIGludG8gY29uc2lkZXJhdGlvbiB3aGVuIG1hdGNoaW5nIHRyaWdnZXJpbmcgZXZl
bnRzIHdpdGggcGVuZGluZyBjbGlja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWVjNDVkZjJhOGY2NzQ5MGMzMTQ0
ZDc0YjdjYjcwMjFkYzJlODUxNS4uNmE0NDM1MGQ3NzM3N2M1ZThhNWIzNDc1YWI0MDA0MTg0MjM2
NGVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wOS0zMCAgSm9obiBQYXNjb2Ug
IDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBQcmVmZXIgaW50ZXJu
YWwgdXNlciB2ZXJpZmljYXRpb24gaWYgYXZhaWxhYmxlIG92ZXIgcGluIGVudHJ5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTAzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NTM1OTI2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBG
dWxnaGFtLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9j
a0hpZENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpNb2NrSGlkQ29ubmVjdGlvbjo6
ZmVlZFJlcG9ydHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRv
L0N0YXBBdXRoZW50aWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0
b3I6Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6
OmdldEFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OmZpZG86OnRvU3RhdHVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6Zmlkbzo6aXNQaW5FcnJvcik6IERlbGV0ZWQuCisKIDIwMjEt
MDktMzAgIEVkZHkgV29uZyAgPGVkZHlfd29uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQg
cHJlc2VudGF0aW9uU2NlbmVJZGVudGlmaWVyRm9yUGF5bWVudEF1dGhvcml6YXRpb25Db250cm9s
bGVyIGRlbGVnYXRlIGNhbGwgZnJvbSBQYXNzS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCmluZGV4
IDUwNTUxZjk2NDBkYzZkODUxYmE2NzMzYzY4MzllZGM0Mzc2MTc4NTguLmMyYWE4M2RjZmM0NDQ0
OTBlYmYzZTY1YjllNDVhYTlmNjU3OTc3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oCkBAIC05
Miw2ICs5Miw3IEBAIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIHsK
ICAgICAgICAgYm9vbCBjYW5Eb3duZ3JhZGUgeyBmYWxzZSB9OwogICAgICAgICBib29sIGV4cGVj
dENhbmNlbCB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgc3VwcG9ydENsaWVudFBpbiB7IGZhbHNl
IH07CisgICAgICAgIGJvb2wgc3VwcG9ydEludGVybmFsVVYgeyBmYWxzZSB9OwogCiAgICAgICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAg
ICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SGlkQ29u
ZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTE2OSw3ICsxNzAsNyBAQCBzdGQ6Om9w
dGlvbmFsPE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb246OkxvY2FsQ29uZmlndXJh
dGlvbj4gTW9ja1dlYkF1dAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgTW9ja1dlYkF1
dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBwYXlsb2FkQmFzZTY0IDw8IHN0
YWdlIDw8IHN1YlN0YWdlIDw8IGVycm9yIDw8IGlzVTJmIDw8IGtlZXBBbGl2ZSA8PCBmYXN0RGF0
YUFycml2YWwgPDwgY29udGludWVBZnRlckVycm9yRGF0YSA8PCBjYW5Eb3duZ3JhZGUgPDwgZXhw
ZWN0Q2FuY2VsIDw8IHN1cHBvcnRDbGllbnRQaW47CisgICAgZW5jb2RlciA8PCBwYXlsb2FkQmFz
ZTY0IDw8IHN0YWdlIDw8IHN1YlN0YWdlIDw8IGVycm9yIDw8IGlzVTJmIDw8IGtlZXBBbGl2ZSA8
PCBmYXN0RGF0YUFycml2YWwgPDwgY29udGludWVBZnRlckVycm9yRGF0YSA8PCBjYW5Eb3duZ3Jh
ZGUgPDwgZXhwZWN0Q2FuY2VsIDw8IHN1cHBvcnRDbGllbnRQaW4gPDwgc3VwcG9ydEludGVybmFs
VVY7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC0xOTgsNiArMTk5LDggQEAgc3Rk
OjpvcHRpb25hbDxNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpIaWRDb25maWd1
cmF0aW9uPiBNb2NrV2ViQXV0aGUKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zdXBwb3J0Q2xpZW50UGluKSkKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zdXBwb3J0
SW50ZXJuYWxVVikpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5pZGwKaW5kZXggZDlmMmEwMzg4MWNjMjdh
ZTU4ZTFiY2IxYjg5MGNhNDI1ZTBjODc5Yy4uYzk4YmNhYzljMmE3ZDNmMDBhZDdiNzE3MzA5MDA1
YmYzMTJlZmMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsCkBAIC0xMDIsNiArMTAyLDcg
QEAKICAgICBib29sZWFuIGNhbkRvd25ncmFkZSA9IGZhbHNlOwogICAgIGJvb2xlYW4gZXhwZWN0
Q2FuY2VsID0gZmFsc2U7CiAgICAgYm9vbGVhbiBzdXBwb3J0Q2xpZW50UGluID0gZmFsc2U7Cisg
ICAgYm9vbGVhbiBzdXBwb3J0SW50ZXJuYWxVViA9IGZhbHNlOwogfTsKIAogWwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrSGlk
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Nb2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcAppbmRleCAwMDY1NGU0MjVlYjkzZjQ0YTViMTM2
NjFmODE4YzQxMmU1YzliZTI3Li5lOTEwNWQxYzQwYzg5MzAwMTc1OWY1NWQ5NjQ2NmY4ODM2MjM0
ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Nb2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcApAQCAtMjI4LDE1
ICsyMjgsMTggQEAgdm9pZCBNb2NrSGlkQ29ubmVjdGlvbjo6ZmVlZFJlcG9ydHMoKQogICAgICAg
ICBWZWN0b3I8dWludDhfdD4gaW5mb0RhdGE7CiAgICAgICAgIGlmIChtX2NvbmZpZ3VyYXRpb24u
aGlkLT5jYW5Eb3duZ3JhZGUpCiAgICAgICAgICAgICBpbmZvRGF0YSA9IGVuY29kZUFzQ0JPUihB
dXRoZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlKHsgUHJvdG9jb2xWZXJzaW9uOjprQ3RhcCwgUHJv
dG9jb2xWZXJzaW9uOjprVTJmIH0sIFZlY3Rvcjx1aW50OF90PihhYWd1aWRMZW5ndGgsIDB1KSkp
OwotICAgICAgICBlbHNlIGlmIChtX2NvbmZpZ3VyYXRpb24uaGlkLT5zdXBwb3J0Q2xpZW50UGlu
KSB7CisgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQXV0aGVudGljYXRvckdldEluZm9SZXNw
b25zZSBpbmZvUmVzcG9uc2UoeyBQcm90b2NvbFZlcnNpb246OmtDdGFwIH0sIFZlY3Rvcjx1aW50
OF90PihhYWd1aWRMZW5ndGgsIDB1KSk7Ci0gICAgICAgICAgICBpbmZvUmVzcG9uc2Uuc2V0UGlu
UHJvdG9jb2xzKHsgcGluOjprUHJvdG9jb2xWZXJzaW9uIH0pOwogICAgICAgICAgICAgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnMgb3B0aW9uczsKLSAgICAgICAgICAgIG9wdGlvbnMuc2V0
Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGll
bnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpOworICAgICAgICAgICAgaWYg
KG1fY29uZmlndXJhdGlvbi5oaWQtPnN1cHBvcnRDbGllbnRQaW4pIHsKKyAgICAgICAgICAgICAg
ICBpbmZvUmVzcG9uc2Uuc2V0UGluUHJvdG9jb2xzKHsgcGluOjprUHJvdG9jb2xWZXJzaW9uIH0p
OworICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0Q2xpZW50UGluQXZhaWxhYmlsaXR5KEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWRBbmRQaW5TZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fY29uZmlndXJh
dGlvbi5oaWQtPnN1cHBvcnRJbnRlcm5hbFVWKQorICAgICAgICAgICAgICAgIG9wdGlvbnMuc2V0
VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eShBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9u
czo6VXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQp
OwogICAgICAgICAgICAgaW5mb1Jlc3BvbnNlLnNldE9wdGlvbnMoV1RGTW92ZShvcHRpb25zKSk7
CiAgICAgICAgICAgICBpbmZvRGF0YSA9IGVuY29kZUFzQ0JPUihpbmZvUmVzcG9uc2UpOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIGluZm9EYXRhID0gZW5jb2RlQXNDQk9SKEF1dGhlbnRp
Y2F0b3JHZXRJbmZvUmVzcG9uc2UoeyBQcm90b2NvbFZlcnNpb246OmtDdGFwIH0sIFZlY3Rvcjx1
aW50OF90PihhYWd1aWRMZW5ndGgsIDB1KSkpOworICAgICAgICB9CiAgICAgICAgIGluZm9EYXRh
Lmluc2VydCgwLCBzdGF0aWNfY2FzdDx1aW50OF90PihDdGFwRGV2aWNlUmVzcG9uc2VDb2RlOjpr
U3VjY2VzcykpOyAvLyBQcmVwZW5kIHN0YXR1cyBjb2RlLgogICAgICAgICBpZiAoc3RhZ2VzTWF0
Y2goKSAmJiBtX2NvbmZpZ3VyYXRpb24uaGlkLT5lcnJvciA9PSBNb2NrOjpIaWRFcnJvcjo6V3Jv
bmdDaGFubmVsSWQpCiAgICAgICAgICAgICBtZXNzYWdlID0gRmlkb0hpZE1lc3NhZ2U6OmNyZWF0
ZShtX2N1cnJlbnRDaGFubmVsIC0gMSwgRmlkb0hpZERldmljZUNvbW1hbmQ6OmtDYm9yLCBpbmZv
RGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9maWRvL0N0YXBBdXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCmluZGV4IGUwNjMy
ZTBiNTcyNDkxMGVjOTNhZjU1M2IxMzg4NDJjZjE0NGFjY2IuLmI2NDFkZDk0NzA5OTlhNzk1ZTFj
NmMwMjRiY2FiMTk1ZmMyMjk3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0
b3IuY3BwCkBAIC00Nyw2ICs0Nyw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgZmlkbzsKIAordXNpbmcgVVZBdmFpbGFiaWxp
dHkgPSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlvbkF2YWls
YWJpbGl0eTsKKwogbmFtZXNwYWNlIHsKIFdlYkF1dGhlbnRpY2F0aW9uU3RhdHVzIHRvU3RhdHVz
KGNvbnN0IEN0YXBEZXZpY2VSZXNwb25zZUNvZGUmIGVycm9yKQogewpAQCAtOTIsMTAgKzk0LDE0
IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICAgICAgcmV0
dXJuOwogICAgIFZlY3Rvcjx1aW50OF90PiBjYm9yQ21kOwogICAgIGF1dG8mIG9wdGlvbnMgPSBX
VEY6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1ZXN0RGF0YSgp
Lm9wdGlvbnMpOwotICAgIGlmIChtX2luZm8ub3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0
eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQpCi0gICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3Jl
ZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBtX2luZm8u
b3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSwgUGluUGFyYW1ldGVycyB7
IHBpbjo6a1Byb3RvY29sVmVyc2lvbiwgbV9waW5BdXRoIH0pOworICAgIGF1dG8gaW50ZXJuYWxV
VkF2YWlsYWJpbGl0eSA9IG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJp
bGl0eSgpOworICAgIC8vIElmIFVWIGlzIHJlcXVpcmVkLCB0aGVuIGVpdGhlciBidWlsdC1pbiB1
diBvciBhIHBpbiB3aWxsIHdvcmsuCisgICAgaWYgKGludGVybmFsVVZBdmFpbGFiaWxpdHkgPT0g
VVZBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkICYmICghb3B0aW9ucy5hdXRo
ZW50aWNhdG9yU2VsZWN0aW9uIHx8IG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+dXNl
clZlcmlmaWNhdGlvbiAhPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2Vk
KSkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihy
ZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFpbGFiaWxpdHkpOworICAg
IGVsc2UgaWYgKG1faW5mby5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0
aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEFuZFBpblNldCkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVx
dWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFpbGFi
aWxpdHksIFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZlcnNpb24sIG1fcGluQXV0aCB9
KTsKICAgICBlbHNlCi0gICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVl
c3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBtX2luZm8ub3B0aW9ucygpLnVz
ZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7CisgICAgICAgIGNib3JDbWQgPSBlbmNvZGVN
YWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBp
bnRlcm5hbFVWQXZhaWxhYmlsaXR5KTsKICAgICBkcml2ZXIoKS50cmFuc2FjdChXVEZNb3ZlKGNi
b3JDbWQpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKFZlY3Rvcjx1aW50OF90PiYm
IGRhdGEpIHsKICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKQEAgLTEzMywxMCArMTM5LDE0IEBAIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6
OmdldEFzc2VydGlvbigpCiAgICAgQVNTRVJUKCFtX2lzRG93bmdyYWRlZCk7CiAgICAgVmVjdG9y
PHVpbnQ4X3Q+IGNib3JDbWQ7CiAgICAgYXV0byYgb3B0aW9ucyA9IFdURjo6Z2V0PFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKTsKLSAgICBp
ZiAobV9pbmZvLm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5k
UGluU2V0ICYmIG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbiAhPSBVc2VyVmVyaWZpY2F0aW9uUmVx
dWlyZW1lbnQ6OkRpc2NvdXJhZ2VkKQotICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNzZXJ0
aW9uUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIG1faW5mby5vcHRp
b25zKCkudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpLCBQaW5QYXJhbWV0ZXJzIHsgcGlu
OjprUHJvdG9jb2xWZXJzaW9uLCBtX3BpbkF1dGggfSk7CisgICAgYXV0byBpbnRlcm5hbFVWQXZh
aWxhYmlsaXR5ID0gbV9pbmZvLm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5
KCk7CisgICAgLy8gSWYgVVYgaXMgcmVxdWlyZWQsIHRoZW4gZWl0aGVyIGJ1aWx0LWluIHV2IG9y
IGEgcGluIHdpbGwgd29yay4KKyAgICBpZiAoaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSA9PSBVVkF2
YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQgJiYgb3B0aW9ucy51c2VyVmVyaWZp
Y2F0aW9uICE9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQpCisgICAg
ICAgIGNib3JDbWQgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRh
KCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSk7CisgICAgZWxzZSBpZiAo
bV9pbmZvLm9wdGlvbnMoKS5jbGllbnRQaW5BdmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNhdG9y
U3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGlu
U2V0ICYmIG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbiAhPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ6OkRpc2NvdXJhZ2VkKQorICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNzZXJ0aW9u
UmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFp
bGFiaWxpdHksIFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZlcnNpb24sIG1fcGluQXV0
aCB9KTsKICAgICBlbHNlCi0gICAgICAgIGNib3JDbWQgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1
ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgbV9pbmZvLm9wdGlvbnMoKS51
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCkpOworICAgICAgICBjYm9yQ21kID0gZW5jb2Rl
R2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGlu
dGVybmFsVVZBdmFpbGFiaWxpdHkpOwogICAgIGRyaXZlcigpLnRyYW5zYWN0KFdURk1vdmUoY2Jv
ckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oVmVjdG9yPHVpbnQ4X3Q+JiYg
ZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICBpZiAo
IXdlYWtUaGlzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDAxNTIxOTgwZTQwNDNiMzEyY2YxYTA5NmExM2EwNTg3NDhkODA5ZTYuLjI2N2UzNTMy
MjU3NzE0MWJiMTM1NDk5ZGVkMmZjYzgwOGZiMDJjNjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wOS0zMCAg
Sm9obiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBQ
cmVmZXIgaW50ZXJuYWwgdXNlciB2ZXJpZmljYXRpb24gaWYgYXZhaWxhYmxlIG92ZXIgcGluIGVu
dHJ5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
OTAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NTM1OTI2OT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtaW50ZXJuYWwtdXYu
aHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1sOiBB
ZGRlZC4KKwogMjAyMS0wOS0zMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBQQ006IFRha2UgYXBwIGJ1bmRsZSBJRCBpbnRvIGNvbnNpZGVyYXRpb24gd2hl
biBtYXRjaGluZyB0cmlnZ2VyaW5nIGV2ZW50cyB3aXRoIHBlbmRpbmcgY2xpY2tzCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGVlMTYwYTE3OWJiZjQ2Y2ExZjhjYzZmYzc2MmQ0N2ZiOWI0Zjg1
ZTcuLjhlY2ViMGNmMjgzNTljNjgxNWEwOWNkODIwNzM5Y2RkMzE1NTMwNmMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zOTMsNiArMzkzLDggQEAKIAkJNTI0QkJDOUUxOURGNzJDMDAwMkYx
QUYxIC8qIGZpbGUtd2l0aC12aWRlby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNEJCQzlCMTlERjM3MTQwMDJGMUFGMSAvKiBmaWxl
LXdpdGgtdmlkZW8uaHRtbCAqLzsgfTsKIAkJNTI0QkJDQTExOUUzMEM3NzAwMkYxQUYxIC8qIHRl
c3QubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyNEJCQ0EwMTlFMzBDNjMwMDJGMUFGMSAvKiB0ZXN0Lm1wNCAqLzsgfTsKIAkJNTJCOENG
OTgxNTg2OEQ5MTAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCOENGOTQxNTg2OENGMDAw
MjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgKi87IH07CisJCTUyQzhDMTM4MjcwNjQzN0Mw
MEJERjNCNyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5h
bC11di5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQzhDMTM3MjcwNjQzN0MwMEJERjNCNyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1sICovOyB9OworCQk1MkM4QzEzQTI3MDY0
MzkwMDBCREYzQjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWludGVy
bmFsLXV2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJDOEMxMzkyNzA2NDM5MDAwQkRGM0I3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5odG1sICovOyB9OwogCQk1MkQ1RDZDMDIxQjlG
MUIzMDA0NkFCQTYgLyogUmVuZGVyaW5nUHJvZ3Jlc3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1RDZCRDIxQjlGMUIyMDA0NkFCQTYgLyogUmVu
ZGVyaW5nUHJvZ3Jlc3MubW0gKi87IH07CiAJCTUyRDY3M0VFMUFGQjEyNzMwMEZBMTlGRSAvKiBX
S1BhZ2VDb3B5U2Vzc2lvblN0YXRlV2l0aEZpbHRlcmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ2NzNFQzFBRkIxMjY4MDBGQTE5RkUgLyog
V0tQYWdlQ29weVNlc3Npb25TdGF0ZVdpdGhGaWx0ZXJpbmcuY3BwICovOyB9OwogCQk1MkU1Q0U0
OTE0RDIxRUFCMDAzQjJCRDggLyogUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTVDRTQ4MTREMjFFQUIwMDNCMkJE
OCAvKiBQYXJlbnRGcmFtZV9CdW5kbGUuY3BwICovOyB9OwpAQCAtMTc1MCw2ICsxNzUyLDcgQEAK
IAkJCQkyRUJEOUQwQTIxMzQ3MzBEMDAyREE3NTggLyogdmlkZW8uaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQlDRDU3Nzc5OTIxMUNFMEU0MDAxQjM3MUUgLyogd2ViLWF1ZGlvLW9ubHku
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzY2M0RGMzIzNTdFNDg5MDBFODVFMDkg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAorCQkJCTUyQzhDMTNBMjcwNjQzOTAwMEJERjNCNyAvKiB3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtaW50ZXJuYWwtdXYuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQk1NzlGMUMwMTIzQzkzQUY1MDBDN0Q0QjQgLyogd2ViLWF1dGhlbnRp
Y2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW11bHRpcGxlLWFjY291bnRzLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDAyMzU5QjM3ODAwOEUxRUQ3IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTU3OERBNDRDMjNFQ0QyMzAwMDI0NjAxMCAvKiB3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLWF1dGgtYmxvY2tlZC1lcnJvci5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMTc2Myw2ICsxNzY2LDcgQEAKIAkJCQk1NzY2M0RFQTIzNEVB
NjZEMDBFODVFMDkgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTc3NDU0RDIyMzU5QkIwMTAwOEUxRUQ3IC8qIHdl
Yi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3QzYyNDUwMjM0NkMyMUUwMDM4M0ZFNyAvKiB3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAor
CQkJCTUyQzhDMTM4MjcwNjQzN0MwMEJERjNCNyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTU3OERBNDQ4MjNFQ0QwOUIwMDI0NjAxMCAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4tYXV0aC1ibG9ja2VkLWVycm9yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJNTcwRDI2RjQyM0MzQ0E2QTAwRDVDRjY3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1t
YWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJvci5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCTU3NTFCMjhBMjQ5RDVCQzUwMDY2NEMyQSAvKiB3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtlLXBp
bi1pbnZhbGlkLWVycm9yLXJldHJ5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yMjUz
LDYgKzIyNTcsOCBAQAogCQk1MjRCQkNBMDE5RTMwQzYzMDAyRjFBRjEgLyogdGVzdC5tcDQgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRo
ID0gdGVzdC5tcDQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQjhDRjk0MTU4NjhD
RjAwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gU2V0RG9jdW1lbnRVUkkuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTJCOENGOTUxNTg2OENGMDAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2V0RG9jdW1lbnRVUkkubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQzhDMTM3MjcwNjQzN0MwMEJERjNCNyAvKiB3ZWItYXV0
aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBuYW1l
ID0gIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2Lmh0
bWwiOyBwYXRoID0gIlRlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkLWludGVybmFsLXV2Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MkM4QzEzOTI3MDY0MzkwMDBCREYzQjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1h
c3NlcnRpb24taGlkLWludGVybmFsLXV2Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IG5hbWUgPSAid2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24taGlkLWludGVybmFsLXV2Lmh0bWwiOyBwYXRoID0gIlRlc3RzL1dl
YktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11
di5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjQ3NDAxNDQ4RkI5MzAw
ODczOTk1IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkQWx0ZXJuYXRlSFRNTFN0
cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MkQ1RDZCRDIxQjlGMUIyMDA0NkFCQTYgLyogUmVuZGVyaW5nUHJvZ3Jlc3MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW5kZXJpbmdQcm9ncmVzcy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUQ2QkUyMUI5RjFCMjAwNDZBQkE2IC8q
IFJlbmRlcmluZ1Byb2dyZXNzUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0zMjUwLDYgKzMyNTYsOCBAQAogCQkwOEZCNzc5NEZFODQxNTVEQzAyQUFD
MDcgLyogVGVzdFdlYktpdEFQSSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNTJDOEMxMzkyNzA2NDM5MDAwQkRGM0I3IC8qIHdlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5odG1sICovLAorCQkJCTUyQzhDMTM3Mjcw
NjQzN0MwMEJERjNCNyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1p
bnRlcm5hbC11di5odG1sICovLAogCQkJCTQ5QUVFRjY4MjQwNzI3NkYwMEM4N0U0QyAvKiBJbmZv
LnBsaXN0ICovLAogCQkJCTVDOUQ5MjI2MjJEN0REN0IwMDhFOTI2NiAvKiBEZXJpdmVkIFNvdXJj
ZXMgKi8sCiAJCQkJNUM5RDkyMUQyMkQ3REJGNzAwOEU5MjY2IC8qIFNvdXJjZXMudHh0ICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IGFiYTRmYjkwN2ZiMjI3YzM3
NDBkYWYwOWFmMTFjNzE0ODA2OTdlMjQuLjAxYTI5ODAzY2Y5ZDFiOTVlODQzZjE2NjZhN2EzYjc4
NjY0NzAzMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTExMzEs
NiArMTEzMSwyNCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBpblRva2Vu
UGluQXV0aEludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIEVYUEVDVF9UUlVFKHdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVcGRhdGVQSU5JbnZhbGlkKTsKIH0KIAorVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBNYWtlQ3JlZGVudGlhbEludGVybmFsVVYpCit7CisgICAgcmVzZXQoKTsKKyAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwt
dXYiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOworCisgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Cisg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7Cisg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBmb2N1c107CisKKyAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKKyAgICBb
d2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRlZCEiXTsKK30KKwogVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbFBpbikKIHsKICAgICByZXNldCgpOwpAQCAt
MTIxMCw2ICsxMjI4LDI0IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0
aW9uUGluKQogICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiU3VjY2VlZGVkISJdOwogfQog
CitURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvbkludGVybmFsVVYpCit7
CisgICAgcmVzZXQoKTsKKyAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24taGlkLWludGVybmFsLXV2IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKworICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24g
PSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlND
Rm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcg
c2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgZm9jdXNdOworCisg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0
VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJTdWNjZWVkZWQhIl07
Cit9CisKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uUGluQXV0aEJs
b2NrZWRFcnJvcikKIHsKICAgICByZXNldCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1o
aWQtaW50ZXJuYWwtdXYuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWludGVybmFsLXV2Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzAwODA3YjUyNjc3ZjZmMzEzNjEyNWM3MGMzZGNjNzM0ZTczZTMwYwotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWludGVybmFsLXV2Lmh0bWwKQEAgLTAs
MCArMSwzMCBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+Cis8c2NyaXB0PgorICAg
IGNvbnN0IHRlc3RBc3NlcnRpb25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFLTUJvbUpwWkZo
QUtBaXR6dWorVHNsemVsZjMvdlp3SUd0RFFOZ29LZUZkNW9FaWVZemh5ekE2NXNhZjB0SzIiICsK
KyAgICAgICAgIncvbW9vYTd0UXRHZ0Rkd1pJak9oamN1WjBwUTFham9FNEdSMGVYQmxhbkIxWW14
cFl5MXJaWGtDV0NWR3pIKzUiICsKKyAgICAgICAgIlo1MVZzdHVRa3VISTJlWGgwQ3QxZ1BDMGdT
eDNDV0xoNUk5YTJBRUFBQUJRQTFoSE1FVUNJUUNTRlR1dUJXZ0IiICsKKyAgICAgICAgIjQvRjBW
QjdEbFVWTTA5SUhQbXhlMU16SFV3Um9DUlpiQ0FJZ0dLb3Y2eG9BeDJNRWY2LzZxTnM4T3V0emhQ
MkMiICsKKyAgICAgICAgIlFvSjFMN0ZlNjRHOXVCYz0iOworCisgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZp
Z3VyYXRpb24oeyBoaWQ6IHsgc3VwcG9ydENsaWVudFBpbjogdHJ1ZSwgc3VwcG9ydEludGVybmFs
VVY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0QXNzZXJ0aW9uTWVzc2FnZUJhc2U2NF0gfSB9
KTsKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVyZSgoKSA9PiB7IGlucHV0LmZvY3Vz
KCk7IH0pOworICAgIH0KKworICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgIHB1YmxpY0tl
eTogeworICAgICAgICAgICAgY2hhbGxlbmdlOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAg
ICAgICB0aW1lb3V0OiAxMDAKKyAgICAgICAgfSwKKyAgICAgICAgYXV0aGVudGljYXRvclNlbGVj
dGlvbjogeyB1c2VyVmVyaWZpY2F0aW9uOiAicmVxdWlyZWQiIH0sCisgICAgfTsKKworICAgIG5h
dmlnYXRvci5jcmVkZW50aWFscy5nZXQob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAg
ICAgICAgLy8gY29uc29sZS5sb2coIlN1Y2NlZWRlZCEiKTsKKyAgICAgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIlN1Y2NlZWRlZCEiKTsK
KyAgICB9LCBlcnJvciA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2Up
OworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZShlcnJvci5tZXNzYWdlKTsKKyAgICB9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhp
ZC1pbnRlcm5hbC11di5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhMDI2MmE2M2IyNWRiZGI1YzM0ZjU3NDQx
OWEyYWM4MDRmYTY3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWlu
dGVybmFsLXV2Lmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPGlucHV0IHR5cGU9InRleHQiIGlkPSJp
bnB1dCI+Cis8c2NyaXB0PgorICAgIGNvbnN0IHRlc3RDcmVhdGlvbk1lc3NhZ2VCYXNlNjQgPQor
ICAgICAgICAiQUtNQlpuQmhZMnRsWkFKWXhFYk1mN2xublZXeTI1Q1M0Y2paNWVIUUszV0E4TFNC
TEhjSll1SGtqMXJZUVFBQSIgKworICAgICAgICAiQUU3NG9CSHpqQXBORllBR0Z4RWZudHg5QUVB
b0NLM082UDVPeVhONlYvZis5bkFnYTBOQTJDZ3A0VjNtZ1NKNSIgKworICAgICAgICAiak9ITE1E
cm14cC9TMHJiRCthaWhydTFDMGFBTjNCa2lNNkdOeTVuU2xEVnFPZ1RncFFFQ0F5WWdBU0ZZSUVG
YiIgKworICAgICAgICAiaGUzUmtOdWQ2c2d5cmFCR2psaDFwelRsQ1plaFFsTC9iMThIWjZXR0ls
Z2dKZ2ZVZC9lbjlwNUFJcU1RYlVuaSIgKworICAgICAgICAibkVlWGRGTGt2VzAvelY1QnBFampO
eEFEbzJOaGJHY21ZM05wWjFoSE1FVUNJUURLZytaQm1FQnRmMGxXcTRSZSIgKworICAgICAgICAi
ZEg0L2kvTE9ZcU9SNHVSMk5BajJ6UW13OVFJZ2JUWGI0aHZGYmo0VDI3YnYvckdyYyt5KzBwdW9Z
T0JrQms5UCIgKworICAgICAgICAibUNld1dsTmplRFZqZ1ZrQ3dqQ0NBcjR3Z2dHbW9BTUNBUUlD
QkhTRy9jSXdEUVlKS29aSWh2Y05BUUVMQlFBdyIgKworICAgICAgICAiTGpFc01Db0dBMVVFQXhN
aldYVmlhV052SUZVeVJpQlNiMjkwSUVOQklGTmxjbWxoYkNBME5UY3lNREEyTXpFdyIgKworICAg
ICAgICAiSUJjTk1UUXdPREF4TURBd01EQXdXaGdQTWpBMU1EQTVNRFF3TURBd01EQmFNRzh4Q3pB
SkJnTlZCQVlUQWxORiIgKworICAgICAgICAiTVJJd0VBWURWUVFLREFsWmRXSnBZMjhnUVVJeElq
QWdCZ05WQkFzTUdVRjFkR2hsYm5ScFkyRjBiM0lnUVhSMCIgKworICAgICAgICAiWlhOMFlYUnBi
MjR4S0RBbUJnTlZCQU1NSDFsMVltbGpieUJWTWtZZ1JVVWdVMlZ5YVdGc0lERTVOVFV3TURNNCIg
KworICAgICAgICAiTkRJd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTVlhmT3Q5
eVI5TVhYdi9aekU4eHBPaDQ2NiIgKworICAgICAgICAiNFlFSlZtRlEremlMTGw5bEo3OVhRSnFs
Z2FVTkNzVXZHRVJjQ2hOVWloTlR5S1RsbW5CT1VqdkFUZXZ0bzJ3dyIgKworICAgICAgICAiYWpB
aUJna3JCZ0VFQVlMRUNnSUVGVEV1TXk0MkxqRXVOQzR4TGpReE5EZ3lMakV1TVRBVEJnc3JCZ0VF
QVlMbCIgKworICAgICAgICAiSEFJQkFRUUVBd0lGSURBaEJnc3JCZ0VFQVlMbEhBRUJCQVFTQkJE
NG9CSHpqQXBORllBR0Z4RWZudHg5TUF3RyIgKworICAgICAgICAiQTFVZEV3RUIvd1FDTUFBd0RR
WUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFERmNTSURtbWxKK09HYUp2V245Q3FodiIgKworICAgICAg
ICAiU2V1ZVRvVkZRVlZ2cXRBTE9nQ0tIZHdCK1d4MjltZzJHcEhpTXNnUXA1eGpCMHliYm5wRzZ4
MjEyRnhFU0orRyIgKworICAgICAgICAiaW5aRDBpcGNoaTdBUHdQbGhJdmpnSDE2elZYNDRhNGU0
aE9zYzZ0TElPUDcxU2FNc0h1SGdDY2RIMHZnNWQycyIgKworICAgICAgICAiYzAwNldKZTlUWE82
ZnpWK29nakpuWXBOS1FMbUNYb0FYRTNKQk53S0dCSU9DdmZRRFB5V21paUc1Ykd4WWZQdCIgKwor
ICAgICAgICAieThaM3BualgrMU1Ebk0yaGhyNDB1bE14bFNORG5YL1pTbkR5TUdJYms4VE9RbWpU
RjAyVU84YXVQOGszd3Q1RCIgKworICAgICAgICAiMXJST0lSVTkrRkNTWDVXUVlpNjhSdURyR01a
QjhQNStieW9KcWJLUWR4bjJMbUUxb1pBeW9oUEFtTGNvUE80PSI7CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3VwcG9ydEludGVybmFsVVY6IHRydWUsIHBheWxvYWRCYXNl
NjQ6IFt0ZXN0Q3JlYXRpb25NZXNzYWdlQmFzZTY0XSB9IH0pOworICAgICAgICBpbnRlcm5hbHMu
d2l0aFVzZXJHZXN0dXJlKCgpID0+IHsgaW5wdXQuZm9jdXMoKTsgfSk7CisgICAgfQorCisgICAg
Y29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICBycDog
eworICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQi
LAorICAgICAgICAgICAgICAgIGlkOiBuZXcgVWludDhBcnJheSgxNiksCisgICAgICAgICAgICAg
ICAgZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgcHViS2V5Q3JlZFBh
cmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1dLAorICAgICAgICAgICAgYXV0
aGVudGljYXRvclNlbGVjdGlvbjoge3VzZXJWZXJpZmljYXRpb246ICJyZXF1aXJlZCJ9LAorICAg
ICAgICB9CisgICAgfTsKKworICAgIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9u
cykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgLy8gY29uc29sZS5sb2coIlN1Y2NlZWRl
ZCEiKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIu
cG9zdE1lc3NhZ2UoIlN1Y2NlZWRlZCEiKTsKKyAgICB9LCBlcnJvciA9PiB7CisgICAgICAgIC8v
IGNvbnNvbGUubG9nKGVycm9yLm1lc3NhZ2UpOworICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShlcnJvci5tZXNzYWdlKTsKKyAgICB9
KTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440093</attachid>
            <date>2021-10-04 13:07:31 -0700</date>
            <delta_ts>2021-10-04 13:11:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213903-20211004130730.patch</filename>
            <type>text/plain</type>
            <size>28</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTEyCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440095</attachid>
            <date>2021-10-04 13:11:20 -0700</date>
            <delta_ts>2021-10-04 14:47:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213903-20211004131119.patch</filename>
            <type>text/plain</type>
            <size>24966</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5NjYyOGE1MzIxNWFl
YTE0ZGY1YzhiZDFlY2FjNjcwOTViYjBjZC4uNTM0YmI4OWVmOTQ3Njk1ZjkzYzMxNjBhYTQ5Mzkx
YzU1NzkwODBkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTEwLTA0ICBKb2hu
IFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByZWZl
ciBpbnRlcm5hbCB1c2VyIHZlcmlmaWNhdGlvbiBpZiBhdmFpbGFibGUgb3ZlciBwaW4gZW50cnku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5MDMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1MzU5MjY5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgVGhpcyBhZGRzIGFuIG9wdGlvbiB0byBtb2NrIGlu
dGVybmFsIHVzZXIgdmVyaWZpY2F0aW9uIGluIHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9N
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpIaWRDb25maWd1cmF0aW9uOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbjo6SGlkQ29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiB0ZXN0aW5nL01v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsOgorCiAyMDIxLTEwLTA0ICBTYW0g
V2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBTcGxpdCBXZWJYUiBleHRlbnNp
b24gbW9kdWxlIElETHMgaW50byB0aGVpciBvd24gZmlsZXMgYW5kIHNldHRpbmdzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDNkZTlkYjAyMThiMDA3ZDlmMDc5MmQxMTZkZGM4MzgxM2M0NjM5OGMuLmU1NmE1YmY1NTFh
ZWQ5MzJlMzQzNTAyOWZmMDE4MmE1MTJkZmFmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMjEtMTAtMDQgIEpvaG4gUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAg
IFtXZWJBdXRobl0gUHJlZmVyIGludGVybmFsIHVzZXIgdmVyaWZpY2F0aW9uIGlmIGF2YWlsYWJs
ZSBvdmVyIHBpbiBlbnRyeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMzkwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjUzNTkyNjk+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TW9ja0hpZENvbm5lY3Rpb246OmZlZWRSZXBvcnRzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChX
ZWJLaXQ6OkN0YXBBdXRoZW50aWNhdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0
OjpmaWRvOjp0b1N0YXR1cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmZpZG86OmlzUGlu
RXJyb3IpOiBEZWxldGVkLgorCiAyMDIxLTEwLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBTZW5kIG5lY2Vzc2FyeSBzYW5kYm94IGV4dGVuc2lvbnMgdG8g
V2ViUHJvY2VzcyBpbiBjYXNlIFdlYlJUQyBjb2RlY3MgcnVuIGluIFdlYlByb2Nlc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uLmgKaW5kZXggNTA1NTFmOTY0MGRjNmQ4NTFiYTY3MzNjNjgzOWVkYzQzNzYx
Nzg1OC4uYzJhYTgzZGNmYzQ0NDQ5MGViZjNlNjViOWU0NWFhOWY2NTc5Nzc5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25D
b25maWd1cmF0aW9uLmgKQEAgLTkyLDYgKzkyLDcgQEAgc3RydWN0IE1vY2tXZWJBdXRoZW50aWNh
dGlvbkNvbmZpZ3VyYXRpb24gewogICAgICAgICBib29sIGNhbkRvd25ncmFkZSB7IGZhbHNlIH07
CiAgICAgICAgIGJvb2wgZXhwZWN0Q2FuY2VsIHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBzdXBw
b3J0Q2xpZW50UGluIHsgZmFsc2UgfTsKKyAgICAgICAgYm9vbCBzdXBwb3J0SW50ZXJuYWxVViB7
IGZhbHNlIH07CiAKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OwogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxIaWRDb25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtMTY5
LDcgKzE3MCw3IEBAIHN0ZDo6b3B0aW9uYWw8TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbjo6TG9jYWxDb25maWd1cmF0aW9uPiBNb2NrV2ViQXV0CiB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgogdm9pZCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOjpIaWRDb25maWd1
cmF0aW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8
IHBheWxvYWRCYXNlNjQgPDwgc3RhZ2UgPDwgc3ViU3RhZ2UgPDwgZXJyb3IgPDwgaXNVMmYgPDwg
a2VlcEFsaXZlIDw8IGZhc3REYXRhQXJyaXZhbCA8PCBjb250aW51ZUFmdGVyRXJyb3JEYXRhIDw8
IGNhbkRvd25ncmFkZSA8PCBleHBlY3RDYW5jZWwgPDwgc3VwcG9ydENsaWVudFBpbjsKKyAgICBl
bmNvZGVyIDw8IHBheWxvYWRCYXNlNjQgPDwgc3RhZ2UgPDwgc3ViU3RhZ2UgPDwgZXJyb3IgPDwg
aXNVMmYgPDwga2VlcEFsaXZlIDw8IGZhc3REYXRhQXJyaXZhbCA8PCBjb250aW51ZUFmdGVyRXJy
b3JEYXRhIDw8IGNhbkRvd25ncmFkZSA8PCBleHBlY3RDYW5jZWwgPDwgc3VwcG9ydENsaWVudFBp
biA8PCBzdXBwb3J0SW50ZXJuYWxVVjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAg
LTE5OCw2ICsxOTksOCBAQCBzdGQ6Om9wdGlvbmFsPE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZp
Z3VyYXRpb246OkhpZENvbmZpZ3VyYXRpb24+IE1vY2tXZWJBdXRoZQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnN1cHBvcnRDbGll
bnRQaW4pKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LnN1cHBvcnRJbnRlcm5hbFVWKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbApp
bmRleCBkOWYyYTAzODgxY2MyN2FlNThlMWJjYjFiODkwY2E0MjVlMGM4NzljLi5jOThiY2FjOWMy
YTdkM2YwMGFkN2I3MTczMDkwMDViZjMxMmVmYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5p
ZGwKQEAgLTEwMiw2ICsxMDIsNyBAQAogICAgIGJvb2xlYW4gY2FuRG93bmdyYWRlID0gZmFsc2U7
CiAgICAgYm9vbGVhbiBleHBlY3RDYW5jZWwgPSBmYWxzZTsKICAgICBib29sZWFuIHN1cHBvcnRD
bGllbnRQaW4gPSBmYWxzZTsKKyAgICBib29sZWFuIHN1cHBvcnRJbnRlcm5hbFVWID0gZmFsc2U7
CiB9OwogCiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Nb2NrL01vY2tIaWRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwCmluZGV4IDAw
NjU0ZTQyNWViOTNmNDRhNWIxMzY2MWY4MThjNDEyZTVjOWJlMjcuLmU5MTA1ZDFjNDBjODkzMDAx
NzU5ZjU1ZDk2NDY2Zjg4MzYyMzRlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0hpZENvbm5l
Y3Rpb24uY3BwCkBAIC0yMjgsMTUgKzIyOCwxOCBAQCB2b2lkIE1vY2tIaWRDb25uZWN0aW9uOjpm
ZWVkUmVwb3J0cygpCiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBpbmZvRGF0YTsKICAgICAgICAg
aWYgKG1fY29uZmlndXJhdGlvbi5oaWQtPmNhbkRvd25ncmFkZSkKICAgICAgICAgICAgIGluZm9E
YXRhID0gZW5jb2RlQXNDQk9SKEF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UoeyBQcm90b2Nv
bFZlcnNpb246OmtDdGFwLCBQcm90b2NvbFZlcnNpb246OmtVMmYgfSwgVmVjdG9yPHVpbnQ4X3Q+
KGFhZ3VpZExlbmd0aCwgMHUpKSk7Ci0gICAgICAgIGVsc2UgaWYgKG1fY29uZmlndXJhdGlvbi5o
aWQtPnN1cHBvcnRDbGllbnRQaW4pIHsKKyAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBBdXRo
ZW50aWNhdG9yR2V0SW5mb1Jlc3BvbnNlIGluZm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lvbjo6
a0N0YXAgfSwgVmVjdG9yPHVpbnQ4X3Q+KGFhZ3VpZExlbmd0aCwgMHUpKTsKLSAgICAgICAgICAg
IGluZm9SZXNwb25zZS5zZXRQaW5Qcm90b2NvbHMoeyBwaW46OmtQcm90b2NvbFZlcnNpb24gfSk7
CiAgICAgICAgICAgICBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9ucyBvcHRpb25zOwotICAg
ICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQaW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1
cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNl
dCk7CisgICAgICAgICAgICBpZiAobV9jb25maWd1cmF0aW9uLmhpZC0+c3VwcG9ydENsaWVudFBp
bikgeworICAgICAgICAgICAgICAgIGluZm9SZXNwb25zZS5zZXRQaW5Qcm90b2NvbHMoeyBwaW46
OmtQcm90b2NvbFZlcnNpb24gfSk7CisgICAgICAgICAgICAgICAgb3B0aW9ucy5zZXRDbGllbnRQ
aW5BdmFpbGFiaWxpdHkoQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2
YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAobV9jb25maWd1cmF0aW9uLmhpZC0+c3VwcG9ydEludGVybmFsVVYpCisgICAgICAg
ICAgICAgICAgb3B0aW9ucy5zZXRVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQW5kQ29uZmlndXJlZCk7CiAgICAgICAgICAgICBpbmZvUmVzcG9uc2Uuc2V0T3B0aW9u
cyhXVEZNb3ZlKG9wdGlvbnMpKTsKICAgICAgICAgICAgIGluZm9EYXRhID0gZW5jb2RlQXNDQk9S
KGluZm9SZXNwb25zZSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgaW5mb0RhdGEgPSBl
bmNvZGVBc0NCT1IoQXV0aGVudGljYXRvckdldEluZm9SZXNwb25zZSh7IFByb3RvY29sVmVyc2lv
bjo6a0N0YXAgfSwgVmVjdG9yPHVpbnQ4X3Q+KGFhZ3VpZExlbmd0aCwgMHUpKSk7CisgICAgICAg
IH0KICAgICAgICAgaW5mb0RhdGEuaW5zZXJ0KDAsIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KEN0YXBE
ZXZpY2VSZXNwb25zZUNvZGU6OmtTdWNjZXNzKSk7IC8vIFByZXBlbmQgc3RhdHVzIGNvZGUuCiAg
ICAgICAgIGlmIChzdGFnZXNNYXRjaCgpICYmIG1fY29uZmlndXJhdGlvbi5oaWQtPmVycm9yID09
IE1vY2s6OkhpZEVycm9yOjpXcm9uZ0NoYW5uZWxJZCkKICAgICAgICAgICAgIG1lc3NhZ2UgPSBG
aWRvSGlkTWVzc2FnZTo6Y3JlYXRlKG1fY3VycmVudENoYW5uZWwgLSAxLCBGaWRvSGlkRGV2aWNl
Q29tbWFuZDo6a0Nib3IsIGluZm9EYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGlj
YXRvci5jcHAKaW5kZXggZTA2MzJlMGI1NzI0OTEwZWM5M2FmNTUzYjEzODg0MmNmMTQ0YWNjYi4u
YjY0MWRkOTQ3MDk5OWE3OTVlMWM2YzAyNGJjYWIxOTVmYzIyOTcyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGlj
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Zmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKQEAgLTQ3LDYgKzQ3LDggQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBmaWRvOwog
Cit1c2luZyBVVkF2YWlsYWJpbGl0eSA9IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpV
c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OworCiBuYW1lc3BhY2UgewogV2ViQXV0aGVudGlj
YXRpb25TdGF0dXMgdG9TdGF0dXMoY29uc3QgQ3RhcERldmljZVJlc3BvbnNlQ29kZSYgZXJyb3Ip
CiB7CkBAIC05MiwxMCArOTQsMTQgQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6bWFrZUNyZWRl
bnRpYWwoKQogICAgICAgICByZXR1cm47CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNib3JDbWQ7CiAg
ICAgYXV0byYgb3B0aW9ucyA9IFdURjo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyk7Ci0gICAgaWYgKG1faW5mby5vcHRpb25zKCku
Y2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6
OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldCkKLSAgICAgICAgY2Jv
ckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhh
c2gsIG9wdGlvbnMsIG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0
eSgpLCBQaW5QYXJhbWV0ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9uLCBtX3BpbkF1dGggfSk7
CisgICAgYXV0byBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5ID0gbV9pbmZvLm9wdGlvbnMoKS51c2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCk7CisgICAgLy8gSWYgVVYgaXMgcmVxdWlyZWQsIHRo
ZW4gZWl0aGVyIGJ1aWx0LWluIHV2IG9yIGEgcGluIHdpbGwgd29yay4KKyAgICBpZiAoaW50ZXJu
YWxVVkF2YWlsYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3Vy
ZWQgJiYgKCFvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24gfHwgb3B0aW9ucy5hdXRoZW50
aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVyaWZpY2F0aW9uICE9IFVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudDo6RGlzY291cmFnZWQpKQorICAgICAgICBjYm9yQ21kID0gZW5jb2RlTWFrZUNyZWRl
bml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxV
VkF2YWlsYWJpbGl0eSk7CisgICAgZWxzZSBpZiAobV9pbmZvLm9wdGlvbnMoKS5jbGllbnRQaW5B
dmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xpZW50UGlu
QXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGluU2V0KQorICAgICAgICBjYm9yQ21kID0gZW5j
b2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0aW9u
cywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSwgUGluUGFyYW1ldGVycyB7IHBpbjo6a1Byb3RvY29s
VmVyc2lvbiwgbV9waW5BdXRoIH0pOwogICAgIGVsc2UKLSAgICAgICAgY2JvckNtZCA9IGVuY29k
ZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMs
IG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2YWlsYWJpbGl0eSgpKTsKKyAgICAg
ICAgY2JvckNtZCA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihyZXF1ZXN0RGF0
YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFpbGFiaWxpdHkpOwogICAgIGRyaXZlcigp
LnRyYW5zYWN0KFdURk1vdmUoY2JvckNtZCksIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlz
KV0oVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgewogICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtMTMzLDEwICsxMzksMTQgQEAgdm9p
ZCBDdGFwQXV0aGVudGljYXRvcjo6Z2V0QXNzZXJ0aW9uKCkKICAgICBBU1NFUlQoIW1faXNEb3du
Z3JhZGVkKTsKICAgICBWZWN0b3I8dWludDhfdD4gY2JvckNtZDsKICAgICBhdXRvJiBvcHRpb25z
ID0gV1RGOjpnZXQ8UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihyZXF1ZXN0RGF0
YSgpLm9wdGlvbnMpOwotICAgIGlmIChtX2luZm8ub3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJp
bGl0eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFi
aWxpdHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQgJiYgb3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uICE9
IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQpCi0gICAgICAgIGNib3JD
bWQgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwg
b3B0aW9ucywgbV9pbmZvLm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCks
IFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZlcnNpb24sIG1fcGluQXV0aCB9KTsKKyAg
ICBhdXRvIGludGVybmFsVVZBdmFpbGFiaWxpdHkgPSBtX2luZm8ub3B0aW9ucygpLnVzZXJWZXJp
ZmljYXRpb25BdmFpbGFiaWxpdHkoKTsKKyAgICAvLyBJZiBVViBpcyByZXF1aXJlZCwgdGhlbiBl
aXRoZXIgYnVpbHQtaW4gdXYgb3IgYSBwaW4gd2lsbCB3b3JrLgorICAgIGlmIChpbnRlcm5hbFVW
QXZhaWxhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCAm
JiBvcHRpb25zLnVzZXJWZXJpZmljYXRpb24gIT0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
OjpEaXNjb3VyYWdlZCkKKyAgICAgICAgY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVl
c3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmls
aXR5KTsKKyAgICBlbHNlIGlmIChtX2luZm8ub3B0aW9ucygpLmNsaWVudFBpbkF2YWlsYWJpbGl0
eSgpID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpDbGllbnRQaW5BdmFpbGFiaWxp
dHk6OmtTdXBwb3J0ZWRBbmRQaW5TZXQgJiYgb3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uICE9IFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQpCisgICAgICAgIGNib3JDbWQg
PSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwgb3B0
aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSwgUGluUGFyYW1ldGVycyB7IHBpbjo6a1Byb3Rv
Y29sVmVyc2lvbiwgbV9waW5BdXRoIH0pOwogICAgIGVsc2UKLSAgICAgICAgY2JvckNtZCA9IGVu
Y29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1IocmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25z
LCBtX2luZm8ub3B0aW9ucygpLnVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHkoKSk7CisgICAg
ICAgIGNib3JDbWQgPSBlbmNvZGVHZXRBc3NlcnRpb25SZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRh
KCkuaGFzaCwgb3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSk7CiAgICAgZHJpdmVyKCku
dHJhbnNhY3QoV1RGTW92ZShjYm9yQ21kKSwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMp
XShWZWN0b3I8dWludDhfdD4mJiBkYXRhKSB7CiAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2M1NDg1MzlhMWMwZDhmZjAyYTMwMGFjMDg5ZGJh
MzU0OTVmZTk0Ni4uMDIyNTAzMzNiMjMxNzc1NmI2NzNjMTMxMGQyN2MyOTM0YmVmMzhjNiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDIxLTEwLTA0ICBKb2huIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViQXV0aG5dIFByZWZlciBpbnRlcm5hbCB1c2VyIHZlcmlmaWNhdGlvbiBpZiBh
dmFpbGFibGUgb3ZlciBwaW4gZW50cnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTM5MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1MzU5MjY5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWhpZC1pbnRlcm5hbC11di5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
LWludGVybmFsLXV2Lmh0bWw6IEFkZGVkLgorCiAyMDIxLTEwLTA0ICBBYWthc2ggSmFpbiAgPGFh
a2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBTZW5kIEVXUyBleGNlcHRpb24gZW1haWxz
IHRvIGJvdCB3YXRjaGVycyBpbnN0ZWFkIG9mIEFha2FzaApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAxNDM3NGNlNjUxOWI1ZTA5MGNjMDk4NDg2MzNhOGYyZDE4NmNiZTMxLi45MWM4ZjIzNDU0
MGI0ZTBkNmNmMjY3YjIwYTYyZGYxYTFmY2IwODAwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMzk1LDYgKzM5NSw4IEBACiAJCTUyNEJCQzlFMTlERjcyQzAwMDJGMUFGMSAvKiBmaWxlLXdp
dGgtdmlkZW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MjRCQkM5QjE5REYzNzE0MDAyRjFBRjEgLyogZmlsZS13aXRoLXZpZGVvLmh0
bWwgKi87IH07CiAJCTUyNEJCQ0ExMTlFMzBDNzcwMDJGMUFGMSAvKiB0ZXN0Lm1wNCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjRCQkNBMDE5
RTMwQzYzMDAyRjFBRjEgLyogdGVzdC5tcDQgKi87IH07CiAJCTUyQjhDRjk4MTU4NjhEOTEwMDI4
MTA1MyAvKiBTZXREb2N1bWVudFVSSS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQjhDRjk0MTU4NjhDRjAwMDI4MTA1MyAvKiBTZXRE
b2N1bWVudFVSSS5odG1sICovOyB9OworCQk1MkM4QzEzODI3MDY0MzdDMDBCREYzQjcgLyogd2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwtdXYuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkM4QzEz
NzI3MDY0MzdDMDBCREYzQjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1o
aWQtaW50ZXJuYWwtdXYuaHRtbCAqLzsgfTsKKwkJNTJDOEMxM0EyNzA2NDM5MDAwQkRGM0I3IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQzhD
MTM5MjcwNjQzOTAwMEJERjNCNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1o
aWQtaW50ZXJuYWwtdXYuaHRtbCAqLzsgfTsKIAkJNTJENUQ2QzAyMUI5RjFCMzAwNDZBQkE2IC8q
IFJlbmRlcmluZ1Byb2dyZXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTJENUQ2QkQyMUI5RjFCMjAwNDZBQkE2IC8qIFJlbmRlcmluZ1Byb2dyZXNz
Lm1tICovOyB9OwogCQk1MkQ2NzNFRTFBRkIxMjczMDBGQTE5RkUgLyogV0tQYWdlQ29weVNlc3Np
b25TdGF0ZVdpdGhGaWx0ZXJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTJENjczRUMxQUZCMTI2ODAwRkExOUZFIC8qIFdLUGFnZUNvcHlTZXNz
aW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcCAqLzsgfTsKIAkJNTJFNUNFNDkxNEQyMUVBQjAwM0Iy
QkQ4IC8qIFBhcmVudEZyYW1lX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkU1Q0U0ODE0RDIxRUFCMDAzQjJCRDggLyogUGFyZW50RnJh
bWVfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTE3NTIsNiArMTc1NCw3IEBACiAJCQkJMkVCRDlEMEEy
MTM0NzMwRDAwMkRBNzU4IC8qIHZpZGVvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
Q0Q1Nzc3OTkyMTFDRTBFNDAwMUIzNzFFIC8qIHdlYi1hdWRpby1vbmx5Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNTc2NjNERjMyMzU3RTQ4OTAwRTg1RTA5IC8qIHdlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKKwkJCQk1MkM4QzEzQTI3MDY0MzkwMDBCREYzQjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkLWludGVybmFsLXV2Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJNTc5RjFDMDEyM0M5M0FGNTAwQzdENEI0IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNz
ZXJ0aW9uLWhpZC1tdWx0aXBsZS1hY2NvdW50cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTU3NzQ1NEQwMjM1OUIzNzgwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQk1NzhEQTQ0QzIzRUNEMjMwMDAyNDYwMTAgLyogd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24taGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKQEAgLTE3NjUsNiArMTc2OCw3IEBACiAJCQkJNTc2NjNERUEyMzRFQTY2RDAwRTg1RTA5IC8q
IHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTU3NzQ1NEQyMjM1OUJCMDEwMDhFMUVENyAvKiB3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk1N0M2MjQ1MDIzNDZDMjFFMDAzODNGRTcgLyogd2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1MkM4QzEzODI3
MDY0MzdDMDBCREYzQjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQt
aW50ZXJuYWwtdXYuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1NzhEQTQ0ODIzRUNE
MDlCMDAyNDYwMTAgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
LWF1dGgtYmxvY2tlZC1lcnJvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3MEQy
NkY0MjNDM0NBNkEwMEQ1Q0Y2NyAvKiB3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFs
LWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1NzUxQjI4QTI0OUQ1QkM1MDA2NjRDMkEgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFrZS1waW4taW52YWxpZC1lcnJv
ci1yZXRyeS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjI1Nyw2ICsyMjYxLDggQEAK
IAkJNTI0QkJDQTAxOUUzMEM2MzAwMkYxQUYxIC8qIHRlc3QubXA0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IHRlc3QubXA0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkI4Q0Y5NDE1ODY4Q0YwMDAyODEwNTMgLyog
U2V0RG9jdW1lbnRVUkkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IFNldERvY3Vt
ZW50VVJJLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQjhDRjk1MTU4NjhD
RjAwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFNldERvY3VtZW50VVJJLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MkM4QzEzNzI3MDY0MzdDMDBCREYzQjcgLyogd2ViLWF1dGhlbnRpY2F0aW9uLW1h
a2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwtdXYuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJ3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1sIjsgcGF0aCA9ICJU
ZXN0cy9XZWJLaXRDb2NvYS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1p
bnRlcm5hbC11di5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJDOEMxMzky
NzA2NDM5MDAwQkRGM0I3IC8qIHdlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1p
bnRlcm5hbC11di5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBuYW1lID0gIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWhpZC1pbnRlcm5hbC11di5odG1sIjsgcGF0aCA9ICJUZXN0cy9XZWJLaXRDb2NvYS93ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtaW50ZXJuYWwtdXYuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQ0I0NzQwMTQ0OEZCOTMwMDg3Mzk5NSAvKiBMb2Fk
QWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGly
ZWN0b3J5VVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUQ2QkQyMUI5
RjFCMjAwNDZBQkE2IC8qIFJlbmRlcmluZ1Byb2dyZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gUmVuZGVyaW5nUHJvZ3Jlc3MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUyRDVENkJFMjFCOUYxQjIwMDQ2QUJBNiAvKiBSZW5kZXJpbmdQcm9n
cmVzc1BsdWdJbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJl
bmRlcmluZ1Byb2dyZXNzUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzI1NCw2ICszMjYwLDggQEAKIAkJMDhGQjc3OTRGRTg0MTU1REMwMkFBQzA3IC8qIFRlc3RXZWJL
aXRBUEkgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTUy
QzhDMTM5MjcwNjQzOTAwMEJERjNCNyAvKiB3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQtaW50ZXJuYWwtdXYuaHRtbCAqLywKKwkJCQk1MkM4QzEzNzI3MDY0MzdDMDBCREYzQjcg
Lyogd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwtdXYuaHRt
bCAqLywKIAkJCQk0OUFFRUY2ODI0MDcyNzZGMDBDODdFNEMgLyogSW5mby5wbGlzdCAqLywKIAkJ
CQk1QzlEOTIyNjIyRDdERDdCMDA4RTkyNjYgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTVD
OUQ5MjFEMjJEN0RCRjcwMDhFOTI2NiAvKiBTb3VyY2VzLnR4dCAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBkNjJlMjkyMzI2NWEzNTlkMDFlYTZhMWIxMDUzMTM5
MjI4YzkwOTY3Li42NjBkMWVjM2U0YjNkNDJjNDllOWNkYjAxMmQyYzgxOWIzYmY3ZTQ4IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0xMTIzLDYgKzExMjMsMjQgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkF1dGhJbnZhbGlk
RXJyb3JBbmRSZXRyeSkKICAgICBFWFBFQ1RfVFJVRSh3ZWJBdXRoZW50aWNhdGlvblBhbmVsVXBk
YXRlUElOSW52YWxpZCk7CiB9CiAKK1RFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNy
ZWRlbnRpYWxJbnRlcm5hbFVWKQoreworICAgIHJlc2V0KCk7CisgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2IiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKwor
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25FeHBlcmltZW50YWxGZWF0dXJlKCldOworICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CisKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07Cisg
ICAgW3dlYlZpZXcgZm9jdXNdOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CisgICAgW3dlYlZpZXcgd2FpdEZv
ck1lc3NhZ2U6QCJTdWNjZWVkZWQhIl07Cit9CisKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgTWFrZUNyZWRlbnRpYWxQaW4pCiB7CiAgICAgcmVzZXQoKTsKQEAgLTEyMDIsNiArMTIyMCwy
NCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbikKICAgICBb
d2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlN1Y2NlZWRlZCEiXTsKIH0KIAorVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25JbnRlcm5hbFVWKQoreworICAgIHJlc2V0KCk7
CisgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRl
cm5hbC11diIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CisKKyAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
V2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVT
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6
ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGZvY3VzXTsKKworICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwor
ICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiU3VjY2VlZGVkISJdOworfQorCiBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbkF1dGhCbG9ja2VkRXJyb3IpCiB7
CiAgICAgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWludGVybmFsLXV2
Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMw
MDgwN2I1MjY3N2Y2ZjMxMzYxMjVjNzBjM2RjYzczNGU3M2UzMGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3dlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4KKyAgICBjb25zdCB0ZXN0QXNz
ZXJ0aW9uTWVzc2FnZUJhc2U2NCA9CisgICAgICAgICJBS01Cb21KcFpGaEFLQWl0enVqK1RzbHpl
bGYzL3Zad0lHdERRTmdvS2VGZDVvRWllWXpoeXpBNjVzYWYwdEsyIiArCisgICAgICAgICJ3L21v
b2E3dFF0R2dEZHdaSWpPaGpjdVowcFExYWpvRTRHUjBlWEJsYW5CMVlteHBZeTFyWlhrQ1dDVkd6
SCs1IiArCisgICAgICAgICJaNTFWc3R1UWt1SEkyZVhoMEN0MWdQQzBnU3gzQ1dMaDVJOWEyQUVB
QUFCUUExaEhNRVVDSVFDU0ZUdXVCV2dCIiArCisgICAgICAgICI0L0YwVkI3RGxVVk0wOUlIUG14
ZTFNekhVd1JvQ1JaYkNBSWdHS292NnhvQXgyTUVmNi82cU5zOE91dHpoUDJDIiArCisgICAgICAg
ICJRb0oxTDdGZTY0Rzl1QmM9IjsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsgaGlk
OiB7IHN1cHBvcnRDbGllbnRQaW46IHRydWUsIHN1cHBvcnRJbnRlcm5hbFVWOiB0cnVlLCBwYXls
b2FkQmFzZTY0OiBbdGVzdEFzc2VydGlvbk1lc3NhZ2VCYXNlNjRdIH0gfSk7CisgICAgICAgIGlu
dGVybmFscy53aXRoVXNlckdlc3R1cmUoKCkgPT4geyBpbnB1dC5mb2N1cygpOyB9KTsKKyAgICB9
CisKKyAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAg
ICAgIGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgdGltZW91dDog
MTAwCisgICAgICAgIH0sCisgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb246IHsgdXNlclZl
cmlmaWNhdGlvbjogInJlcXVpcmVkIiB9LAorICAgIH07CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuZ2V0KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNv
bGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJTdWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3Ig
PT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3Iu
bWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1oaWQtaW50ZXJuYWwtdXYuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2Evd2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwtdXYu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYTAyNjJhNjNiMjVkYmRiNWMzNGY1NzQ0MTlhMmFjODA0ZmE2N2I3
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS93ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1pbnRlcm5hbC11di5odG1s
CkBAIC0wLDAgKzEsNTMgQEAKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlw
dD4KKyAgICBjb25zdCB0ZXN0Q3JlYXRpb25NZXNzYWdlQmFzZTY0ID0KKyAgICAgICAgIkFLTUJa
bkJoWTJ0bFpBSll4RWJNZjdsbm5WV3kyNUNTNGNqWjVlSFFLM1dBOExTQkxIY0pZdUhrajFyWVFR
QUEiICsKKyAgICAgICAgIkFFNzRvQkh6akFwTkZZQUdGeEVmbnR4OUFFQW9DSzNPNlA1T3lYTjZW
L2YrOW5BZ2EwTkEyQ2dwNFYzbWdTSjUiICsKKyAgICAgICAgImpPSExNRHJteHAvUzByYkQrYWlo
cnUxQzBhQU4zQmtpTTZHTnk1blNsRFZxT2dUZ3BRRUNBeVlnQVNGWUlFRmIiICsKKyAgICAgICAg
ImhlM1JrTnVkNnNneXJhQkdqbGgxcHpUbENaZWhRbEwvYjE4SFo2V0dJbGdnSmdmVWQvZW45cDVB
SXFNUWJVbmkiICsKKyAgICAgICAgIm5FZVhkRkxrdlcwL3pWNUJwRWpqTnhBRG8yTmhiR2NtWTNO
cFoxaEhNRVVDSVFES2crWkJtRUJ0ZjBsV3E0UmUiICsKKyAgICAgICAgImRINC9pL0xPWXFPUjR1
UjJOQWoyelFtdzlRSWdiVFhiNGh2RmJqNFQyN2J2L3JHcmMreSswcHVvWU9Ca0JrOVAiICsKKyAg
ICAgICAgIm1DZXdXbE5qZURWamdWa0N3akNDQXI0d2dnR21vQU1DQVFJQ0JIU0cvY0l3RFFZSktv
WklodmNOQVFFTEJRQXciICsKKyAgICAgICAgIkxqRXNNQ29HQTFVRUF4TWpXWFZpYVdOdklGVXlS
aUJTYjI5MElFTkJJRk5sY21saGJDQTBOVGN5TURBMk16RXciICsKKyAgICAgICAgIklCY05NVFF3
T0RBeE1EQXdNREF3V2hnUE1qQTFNREE1TURRd01EQXdNREJhTUc4eEN6QUpCZ05WQkFZVEFsTkYi
ICsKKyAgICAgICAgIk1SSXdFQVlEVlFRS0RBbFpkV0pwWTI4Z1FVSXhJakFnQmdOVkJBc01HVUYx
ZEdobGJuUnBZMkYwYjNJZ1FYUjAiICsKKyAgICAgICAgIlpYTjBZWFJwYjI0eEtEQW1CZ05WQkFN
TUgxbDFZbWxqYnlCVk1rWWdSVVVnVTJWeWFXRnNJREU1TlRVd01ETTQiICsKKyAgICAgICAgIk5E
SXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU1ZYZk90OXlSOU1YWHYvWnpFOHhw
T2g0NjYiICsKKyAgICAgICAgIjRZRUpWbUZRK3ppTExsOWxKNzlYUUpxbGdhVU5Dc1V2R0VSY0No
TlVpaE5UeUtUbG1uQk9VanZBVGV2dG8yd3ciICsKKyAgICAgICAgImFqQWlCZ2tyQmdFRUFZTEVD
Z0lFRlRFdU15NDJMakV1TkM0eExqUXhORGd5TGpFdU1UQVRCZ3NyQmdFRUFZTGwiICsKKyAgICAg
ICAgIkhBSUJBUVFFQXdJRklEQWhCZ3NyQmdFRUFZTGxIQUVCQkFRU0JCRDRvQkh6akFwTkZZQUdG
eEVmbnR4OU1Bd0ciICsKKyAgICAgICAgIkExVWRFd0VCL3dRQ01BQXdEUVlKS29aSWh2Y05BUUVM
QlFBRGdnRUJBREZjU0lEbW1sSitPR2FKdlduOUNxaHYiICsKKyAgICAgICAgIlNldWVUb1ZGUVZW
dnF0QUxPZ0NLSGR3QitXeDI5bWcyR3BIaU1zZ1FwNXhqQjB5YmJucEc2eDIxMkZ4RVNKK0ciICsK
KyAgICAgICAgImluWkQwaXBjaGk3QVB3UGxoSXZqZ0gxNnpWWDQ0YTRlNGhPc2M2dExJT1A3MVNh
TXNIdUhnQ2NkSDB2ZzVkMnMiICsKKyAgICAgICAgImMwMDZXSmU5VFhPNmZ6VitvZ2pKbllwTktR
TG1DWG9BWEUzSkJOd0tHQklPQ3ZmUURQeVdtaWlHNWJHeFlmUHQiICsKKyAgICAgICAgInk4WjNw
bmpYKzFNRG5NMmhocjQwdWxNeGxTTkRuWC9aU25EeU1HSWJrOFRPUW1qVEYwMlVPOGF1UDhrM3d0
NUQiICsKKyAgICAgICAgIjFyUk9JUlU5K0ZDU1g1V1FZaTY4UnVEckdNWkI4UDUrYnlvSnFiS1Fk
eG4yTG1FMW9aQXlvaFBBbUxjb1BPND0iOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgICAgIGludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHsg
aGlkOiB7IHN1cHBvcnRJbnRlcm5hbFVWOiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdENyZWF0
aW9uTWVzc2FnZUJhc2U2NF0gfSB9KTsKKyAgICAgICAgaW50ZXJuYWxzLndpdGhVc2VyR2VzdHVy
ZSgoKSA9PiB7IGlucHV0LmZvY3VzKCk7IH0pOworICAgIH0KKworICAgIGNvbnN0IG9wdGlvbnMg
PSB7CisgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAg
ICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB1c2Vy
OiB7CisgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAgICAg
ICAgICBpZDogbmV3IFVpbnQ4QXJyYXkoMTYpLAorICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1l
OiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjaGFsbGVuZ2U6IG5l
dyBVaW50OEFycmF5KDE2KSwKKyAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6
ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JTZWxl
Y3Rpb246IHt1c2VyVmVyaWZpY2F0aW9uOiAicmVxdWlyZWQifSwKKyAgICAgICAgfQorICAgIH07
CisKKyAgICBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4oY3JlZGVu
dGlhbCA9PiB7CisgICAgICAgIC8vIGNvbnNvbGUubG9nKCJTdWNjZWVkZWQhIik7CisgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJT
dWNjZWVkZWQhIik7CisgICAgfSwgZXJyb3IgPT4geworICAgICAgICAvLyBjb25zb2xlLmxvZyhl
cnJvci5tZXNzYWdlKTsKKyAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoZXJyb3IubWVzc2FnZSk7CisgICAgfSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>