<?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>237951</bug_id>
          
          <creation_ts>2022-03-16 02:47:21 -0700</creation_ts>
          <short_desc>[selection] Change form&apos;s selection attribute to unsigned long</short_desc>
          <delta_ts>2022-03-23 09:18:12 -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>Forms</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>zsun</reporter>
          <assigned_to>zsun</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1851697</commentid>
    <comment_count>0</comment_count>
    <who name="">zsun</who>
    <bug_when>2022-03-16 02:47:21 -0700</bug_when>
    <thetext>We should use unsigned long for the type of selectionStart and selectionEnd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851747</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-16 05:40:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/90364891&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851787</commentid>
    <comment_count>2</comment_count>
      <attachid>454832</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-16 07:35:44 -0700</bug_when>
    <thetext>Created attachment 454832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852227</commentid>
    <comment_count>3</comment_count>
      <attachid>454954</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-17 04:01:43 -0700</bug_when>
    <thetext>Created attachment 454954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852228</commentid>
    <comment_count>4</comment_count>
      <attachid>454955</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-17 04:20:29 -0700</bug_when>
    <thetext>Created attachment 454955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852230</commentid>
    <comment_count>5</comment_count>
      <attachid>454957</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-17 04:30:39 -0700</bug_when>
    <thetext>Created attachment 454957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852234</commentid>
    <comment_count>6</comment_count>
      <attachid>454960</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-17 04:55:45 -0700</bug_when>
    <thetext>Created attachment 454960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852247</commentid>
    <comment_count>7</comment_count>
      <attachid>454963</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-17 06:00:16 -0700</bug_when>
    <thetext>Created attachment 454963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852265</commentid>
    <comment_count>8</comment_count>
      <attachid>454968</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-17 07:12:00 -0700</bug_when>
    <thetext>Created attachment 454968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853272</commentid>
    <comment_count>9</comment_count>
    <who name="">zsun</who>
    <bug_when>2022-03-21 11:56:49 -0700</bug_when>
    <thetext>Any chance for a review? Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853286</commentid>
    <comment_count>10</comment_count>
      <attachid>454968</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-21 12:15:37 -0700</bug_when>
    <thetext>Comment on attachment 454968
Patch

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

r=me

&gt; Source/WebCore/html/HTMLTextFormControlElement.h:183
&gt; +    bool m_hasCachedSelection { false };

I think personally I would have gone with a `std::optional&lt;std::pair&lt;unsigned, unsigned&gt;&gt;` but this is fine too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853587</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-22 02:44:37 -0700</bug_when>
    <thetext>Committed r291609 (248702@main): &lt;https://commits.webkit.org/248702@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454968.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854172</commentid>
    <comment_count>12</comment_count>
    <who name="">zsun</who>
    <bug_when>2022-03-23 08:09:45 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854173</commentid>
    <comment_count>13</comment_count>
      <attachid>455500</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-23 08:09:49 -0700</bug_when>
    <thetext>Created attachment 455500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854186</commentid>
    <comment_count>14</comment_count>
      <attachid>455500</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-23 08:44:17 -0700</bug_when>
    <thetext>Comment on attachment 455500
Patch

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

Looks pretty good. One question.

&gt; Source/WebCore/html/HTMLTextFormControlElement.cpp:327
&gt;          if (!isTextField())
&gt; -            return;
&gt; +            return false;

Is it OK here that we already did the cacheSelection operation? The old code would not have done that. What tests cover this change in behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854187</commentid>
    <comment_count>15</comment_count>
      <attachid>455500</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-23 08:45:11 -0700</bug_when>
    <thetext>Comment on attachment 455500
Patch

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

&gt; Source/WebCore/ChangeLog:986
&gt; +        [selection] Fire Select event when selection extent or direction changes
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=238142

Looks like this new patch to review got attached to the wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854197</commentid>
    <comment_count>16</comment_count>
    <who name="">zsun</who>
    <bug_when>2022-03-23 09:06:23 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #15)
&gt; Comment on attachment 455500 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=455500&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:986
&gt; &gt; +        [selection] Fire Select event when selection extent or direction changes
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=238142
&gt; 
&gt; Looks like this new patch to review got attached to the wrong bug.

Ah...I was careless. Just changed the status of the patch to obsolete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854198</commentid>
    <comment_count>17</comment_count>
    <who name="">zsun</who>
    <bug_when>2022-03-23 09:07:39 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #14)
&gt; Comment on attachment 455500 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=455500&amp;action=review
&gt; 
&gt; Looks pretty good. One question.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLTextFormControlElement.cpp:327
&gt; &gt;          if (!isTextField())
&gt; &gt; -            return;
&gt; &gt; +            return false;
&gt; 
&gt; Is it OK here that we already did the cacheSelection operation? The old code
&gt; would not have done that. What tests cover this change in behavior?

Let me check on this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454832</attachid>
            <date>2022-03-16 07:35:44 -0700</date>
            <delta_ts>2022-03-17 04:01:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237951-20220316143543.patch</filename>
            <type>text/plain</type>
            <size>29614</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI2NDJlMWFiZjhiYmZk
NDUzYTNmZTk2ODIzNjM4NjY5NDVmMGFjNy4uNjY3Mjg5YmZjZmEyNjc4OWZhZGMyZTM2ZDk1YTY0
N2E3NzFkODEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAzLTE2ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gQ2hhbmdlIGZv
cm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBjaGFuZ2UgdGhlIHR5
cGUgb2YgYXR0cmlidXRlICJzZWxlY3Rpb25TdGFydCIgYW5kICJzZWxlY3Rpb25FbmQiCisgICAg
ICAgIGZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLiBBbHNvICJzdGFydCIgYW5kICJlbmQiIHBh
cmFtZXRlcnMgaW4gZnVuY3Rpb24KKyAgICAgICAgc2VsZWN0aW9uUmFuZ2UoKSBuZWVkIHRvIGJl
IGNoYW5nZWQgY29ycmVzcG9uZGluZ2x5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
aXMgaW4gbGluZSB3aXRoIENocm9taXVtIENMIGF0CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS9jaHJvbWl1bS9jaHJvbWl1bS9jb21taXQvYjZmZjZkYjFjNTY4M2I1ZTU2NGE3MmIwOTQxYWQ1
MDRiNDEwZDFhZgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldERlZmF1bHRTZWxlY3Rpb25BZnRlckZv
Y3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0U2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2Vs
ZWN0aW9uU3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNhY2hlU2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpoYXNDYWNoZWRTZWxlY3Rpb24gY29u
c3QpOgorCiAyMDIyLTAzLTAxICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0gSW5saW5lSXRlcmF0b3I6OkJveDo6cmVjdCgpIHJldHVy
bnMgdGhlIHVuZmxpcHBlZCB2aXN1YWwgcmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKaW5kZXggYmNkNmM4YTBlYjcwOTkyMjY5NTRhYmQ3ZDllMGQ1NGJlYjU3ZGVl
YS4uODQ5YzU0ZDQwZTZiMmM1ZmI5MjZhYjUwYTc2MTg0ODU0NGU4NDkzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00OTIsMTQgKzQ5MiwxNCBAQCB2b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZUZvY3VzQXBwZWFyYW5jZShTZWxlY3Rpb25SZXN0b3Jh
dGlvbk1vZGUgcmVzdG9yYXRpbwogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXREZWZhdWx0U2Vs
ZWN0aW9uQWZ0ZXJGb2N1cyhTZWxlY3Rpb25SZXN0b3JhdGlvbk1vZGUgcmVzdG9yYXRpb25Nb2Rl
LCBTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUpCiB7CiAgICAgQVNTRVJUKGlzVGV4dEZp
ZWxkKCkpOwotICAgIGludCBzdGFydCA9IDA7CisgICAgdW5zaWduZWQgc3RhcnQgPSAwOwogICAg
IGF1dG8gZGlyZWN0aW9uID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb247CiAgICAgYXV0byogZnJh
bWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5lZGl0b3Io
KS5iZWhhdmlvcigpLnNob3VsZE1vdmVTZWxlY3Rpb25Ub0VuZFdoZW5Gb2N1c2luZ1RleHRJbnB1
dCgpKSB7Ci0gICAgICAgIHN0YXJ0ID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsK
KyAgICAgICAgc3RhcnQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7CiAg
ICAgICAgIGRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc0ZvcndhcmREaXJlY3Rpb247CiAgICAgfQot
ICAgIGludCBlbmQgPSByZXN0b3JhdGlvbk1vZGUgPT0gU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2Rl
OjpQbGFjZUNhcmV0QXRTdGFydCA/IHN0YXJ0IDogc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+Ojpt
YXgoKTsKKyAgICB1bnNpZ25lZCBlbmQgPSByZXN0b3JhdGlvbk1vZGUgPT0gU2VsZWN0aW9uUmVz
dG9yYXRpb25Nb2RlOjpQbGFjZUNhcmV0QXRTdGFydCA/IHN0YXJ0IDogc3RkOjpudW1lcmljX2xp
bWl0czx1bnNpZ25lZD46Om1heCgpOwogICAgIHNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBlbmQs
IGRpcmVjdGlvbiwgcmV2ZWFsTW9kZSwgRWxlbWVudDo6ZGVmYXVsdEZvY3VzVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCkpOwogfQogCkBAIC0yMDY5LDcgKzIwNjksNyBAQCB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OmludmFsaWRhdGVTdHlsZU9uRm9jdXNDaGFuZ2VJZk5lZWRlZCgpCiAgICAgICAgIGlu
dmFsaWRhdGVTdHlsZUZvclN1YnRyZWVJbnRlcm5hbCgpOwogfQogCi1zdGQ6Om9wdGlvbmFsPGlu
dD4gSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0Citz
dGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25TdGFydEZv
ckJpbmRpbmdzKCkgY29uc3QKIHsKICAgICBpZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9p
bnB1dFR5cGUtPnN1cHBvcnRzU2VsZWN0aW9uQVBJKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CkBAIC0yMDc3LDcgKzIwNzcsNyBAQCBzdGQ6Om9wdGlvbmFsPGludD4gSFRNTElucHV0
RWxlbWVudDo6c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0CiAgICAgcmV0dXJuIHNl
bGVjdGlvblN0YXJ0KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDxpbnQ+IHN0YXJ0KQor
RXhjZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnRGb3JC
aW5kaW5ncyhzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzdGFydCkKIHsKICAgICBpZiAoIWNhbkhh
dmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRzU2VsZWN0aW9uQVBJKCkpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSBpbnB1dCBl
bGVtZW50J3MgdHlwZSAoJyIgKyBtX2lucHV0VHlwZS0+Zm9ybUNvbnRyb2xUeXBlKCkgKyAiJykg
ZG9lcyBub3Qgc3VwcG9ydCBzZWxlY3Rpb24uIiB9OwpAQCAtMjA4Niw3ICsyMDg2LDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnRGb3JCaW5k
aW5ncyhzdGQ6Om9wdGlvbmFsPGkKICAgICByZXR1cm4geyB9OwogfQogCi1zdGQ6Om9wdGlvbmFs
PGludD4gSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kRm9yQmluZGluZ3MoKSBjb25zdAor
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kRm9y
QmluZGluZ3MoKSBjb25zdAogewogICAgIGlmICghY2FuSGF2ZVNlbGVjdGlvbigpIHx8ICFtX2lu
cHV0VHlwZS0+c3VwcG9ydHNTZWxlY3Rpb25BUEkoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKQEAgLTIwOTQsNyArMjA5NCw3IEBAIHN0ZDo6b3B0aW9uYWw8aW50PiBIVE1MSW5wdXRF
bGVtZW50OjpzZWxlY3Rpb25FbmRGb3JCaW5kaW5ncygpIGNvbnN0CiAgICAgcmV0dXJuIHNlbGVj
dGlvbkVuZCgpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRT
ZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyhzdGQ6Om9wdGlvbmFsPGludD4gZW5kKQorRXhjZXB0aW9u
T3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kRm9yQmluZGluZ3Moc3Rk
OjpvcHRpb25hbDx1bnNpZ25lZD4gZW5kKQogewogICAgIGlmICghY2FuSGF2ZVNlbGVjdGlvbigp
IHx8ICFtX2lucHV0VHlwZS0+c3VwcG9ydHNTZWxlY3Rpb25BUEkoKSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIGlucHV0IGVsZW1lbnQncyB0eXBl
ICgnIiArIG1faW5wdXRUeXBlLT5mb3JtQ29udHJvbFR5cGUoKSArICInKSBkb2VzIG5vdCBzdXBw
b3J0IHNlbGVjdGlvbi4iIH07CkBAIC0yMTIwLDcgKzIxMjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25EaXJlY3Rpb25Gb3JCaW5kaW5ncyhjb25z
dCBTdHJpbgogICAgIHJldHVybiB7IH07CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1
dEVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlRm9yQmluZGluZ3MoaW50IHN0YXJ0LCBpbnQgZW5k
LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbikKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlRm9yQmluZGluZ3ModW5zaWduZWQgc3RhcnQsIHVuc2ln
bmVkIGVuZCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24pCiB7CiAgICAgaWYgKCFjYW5IYXZlU2Vs
ZWN0aW9uKCkgfHwgIW1faW5wdXRUeXBlLT5zdXBwb3J0c1NlbGVjdGlvbkFQSSgpKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgaW5wdXQgZWxlbWVu
dCdzIHR5cGUgKCciICsgbV9pbnB1dFR5cGUtPmZvcm1Db250cm9sVHlwZSgpICsgIicpIGRvZXMg
bm90IHN1cHBvcnQgc2VsZWN0aW9uLiIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmgKaW5kZXggY2M1MGZlZTMzYzk4ZDFmODkyYTQ3ZTRjMDUxNDEyOTNmZjEzMWFhMC4uMzFj
YTlmZjY4Y2VmZTViYTU3YWI0MjM0MTg3NjQxYTIwYzM5ZTRhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTM0NCwxNiArMzQ0LDE2IEBAIHB1YmxpYzoKICAgICBi
b29sIHNob3VsZFRydW5jYXRlVGV4dChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0OwogICAgIHZv
aWQgaW52YWxpZGF0ZVN0eWxlT25Gb2N1c0NoYW5nZUlmTmVlZGVkKCk7CiAKLSAgICBzdGQ6Om9w
dGlvbmFsPGludD4gc2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0OwotICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDxp
bnQ+KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzZWxlY3Rpb25TdGFydEZvckJpbmRp
bmdzKCkgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uU3RhcnRGb3JC
aW5kaW5ncyhzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPik7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPGlu
dD4gc2VsZWN0aW9uRW5kRm9yQmluZGluZ3MoKSBjb25zdDsKLSAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRTZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyhzdGQ6Om9wdGlvbmFsPGludD4pOworICAgIHN0
ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3Q7Cisg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uRW5kRm9yQmluZGluZ3Moc3RkOjpvcHRp
b25hbDx1bnNpZ25lZD4pOwogCiAgICAgRXhjZXB0aW9uT3I8U3RyaW5nPiBzZWxlY3Rpb25EaXJl
Y3Rpb25Gb3JCaW5kaW5ncygpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVj
dGlvbkRpcmVjdGlvbkZvckJpbmRpbmdzKGNvbnN0IFN0cmluZyYpOwogCi0gICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0U2VsZWN0aW9uUmFuZ2VGb3JCaW5kaW5ncyhpbnQgc3RhcnQsIGludCBlbmQs
IGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxl
Y3Rpb25SYW5nZUZvckJpbmRpbmdzKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0
IFN0cmluZyYgZGlyZWN0aW9uKTsKIAogICAgIFN0cmluZyByZXN1bHRGb3JEaWFsb2dTdWJtaXQo
KSBjb25zdCBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwK
aW5kZXggMzNlYjU3MWNlZDY2YjQ5YWFiOGIzNmFkNDNmYjZmMTcxYWFlZWViNS4uODY1ZTM3OWY0
YTdjNTBkNGZlNzRiNTE0YWRiZTEzZWM0M2U0OGNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsCkBAIC03NywxNCArNzcsMTQgQEAKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogCiAgICAgdW5kZWZpbmVkIHNlbGVjdCgpOwotICAgIFtJ
bXBsZW1lbnRlZEFzPXNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBsb25nPyBz
ZWxlY3Rpb25TdGFydDsKLSAgICBbSW1wbGVtZW50ZWRBcz1zZWxlY3Rpb25FbmRGb3JCaW5kaW5n
c10gYXR0cmlidXRlIGxvbmc/IHNlbGVjdGlvbkVuZDsKKyAgICBbSW1wbGVtZW50ZWRBcz1zZWxl
Y3Rpb25TdGFydEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZz8gc2VsZWN0aW9u
U3RhcnQ7CisgICAgW0ltcGxlbWVudGVkQXM9c2VsZWN0aW9uRW5kRm9yQmluZGluZ3NdIGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nPyBzZWxlY3Rpb25FbmQ7CiAgICAgW0ltcGxlbWVudGVkQXM9c2Vs
ZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBET01TdHJpbmc/IHNlbGVjdGlv
bkRpcmVjdGlvbjsKIAogICAgIHVuZGVmaW5lZCBzZXRSYW5nZVRleHQoRE9NU3RyaW5nIHJlcGxh
Y2VtZW50KTsKICAgICB1bmRlZmluZWQgc2V0UmFuZ2VUZXh0KERPTVN0cmluZyByZXBsYWNlbWVu
dCwgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsIG9wdGlvbmFsIERPTVN0
cmluZyBzZWxlY3Rpb25Nb2RlKTsKIAotICAgIFtJbXBsZW1lbnRlZEFzPXNldFNlbGVjdGlvblJh
bmdlRm9yQmluZGluZ3NdIHVuZGVmaW5lZCBzZXRTZWxlY3Rpb25SYW5nZShsb25nIHN0YXJ0LCBs
b25nIGVuZCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CisgICAgW0ltcGxlbWVudGVk
QXM9c2V0U2VsZWN0aW9uUmFuZ2VGb3JCaW5kaW5nc10gdW5kZWZpbmVkIHNldFNlbGVjdGlvblJh
bmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLCBvcHRpb25hbCBET01T
dHJpbmcgZGlyZWN0aW9uKTsKIAogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIFJlZmxlY3Rd
IGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZCwg
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB1c2VNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAppbmRleCBmMjg3ZjQ3MjE5NDI4OGQ5YmViMjgyMjI4
NWRlZGUxZmNkYjA2M2JjLi5jNDYwZWQ1ZjA0MmJlZDYzNDhiZDg3ZDViNTlhYWYwMzYxYzkxNGZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKQEAgLTUw
LDE0ICs1MCwxNCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJlbHM7CiAK
ICAgICB1bmRlZmluZWQgc2VsZWN0KCk7Ci0gICAgYXR0cmlidXRlIGxvbmcgc2VsZWN0aW9uU3Rh
cnQ7Ci0gICAgYXR0cmlidXRlIGxvbmcgc2VsZWN0aW9uRW5kOworICAgIGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIHNlbGVjdGlvblN0YXJ0OworICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHNl
bGVjdGlvbkVuZDsKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlbGVjdGlvbkRpcmVjdGlvbjsK
IAogICAgIHVuZGVmaW5lZCBzZXRSYW5nZVRleHQoRE9NU3RyaW5nIHJlcGxhY2VtZW50KTsKICAg
ICB1bmRlZmluZWQgc2V0UmFuZ2VUZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCwgdW5zaWduZWQg
bG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsIG9wdGlvbmFsIERPTVN0cmluZyBzZWxlY3Rp
b25Nb2RlKTsKIAotICAgIHVuZGVmaW5lZCBzZXRTZWxlY3Rpb25SYW5nZShvcHRpb25hbCBsb25n
IHN0YXJ0ID0gMCwgb3B0aW9uYWwgbG9uZyBlbmQgPSAwLCBvcHRpb25hbCBET01TdHJpbmcgZGly
ZWN0aW9uKTsKKyAgICB1bmRlZmluZWQgc2V0U2VsZWN0aW9uUmFuZ2Uob3B0aW9uYWwgdW5zaWdu
ZWQgbG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgZW5kID0gMCwgb3B0aW9u
YWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CiAKICAgICBbQ0VSZWFjdGlvbnM9Tm90TmVlZGVkXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGF1dG9jb21wbGV0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDliZDVlZGI0MzQx
ZDA5NzQ4YjU2YWNiYWM5MDljNGQwYTUyYmQ1NzYuLjc3MjMwNTNlYWVkNGZjMTQyODFjMmY2ODFl
MWJiN2YxODE2YTM1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC04Nyw4ICs4Nyw4IEBAIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50OjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOCiAgICAgLCBtX2xhc3RDaGFuZ2VXYXNVc2VyRWRpdChmYWxzZSkKICAgICAsIG1faXNQ
bGFjZWhvbGRlclZpc2libGUoZmFsc2UpCiAgICAgLCBtX2NhblNob3dQbGFjZWhvbGRlcih0cnVl
KQotICAgICwgbV9jYWNoZWRTZWxlY3Rpb25TdGFydCgtMSkKLSAgICAsIG1fY2FjaGVkU2VsZWN0
aW9uRW5kKC0xKQorICAgICwgbV9jYWNoZWRTZWxlY3Rpb25TdGFydCgwKQorICAgICwgbV9jYWNo
ZWRTZWxlY3Rpb25FbmQoMCkKIHsKIH0KIApAQCAtMTk0LDEyICsxOTQsMTIgQEAgdm9pZCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0Q2FuU2hvd1BsYWNlaG9sZGVyKGJvb2wgY2FuU2hv
d1BsYWNlaG9sZGVyKQogICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eSgpOwogfQogCi12
b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydChpbnQgc3Rh
cnQpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydCh1
bnNpZ25lZCBzdGFydCkKIHsKICAgICBzZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgc3RkOjptYXgo
c3RhcnQsIHNlbGVjdGlvbkVuZCgpKSwgc2VsZWN0aW9uRGlyZWN0aW9uKCkpOwogfQogCi12b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmQoaW50IGVuZCkKK3Zv
aWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldFNlbGVjdGlvbkVuZCh1bnNpZ25lZCBl
bmQpCiB7CiAgICAgc2V0U2VsZWN0aW9uUmFuZ2Uoc3RkOjptaW4oZW5kLCBzZWxlY3Rpb25TdGFy
dCgpKSwgZW5kLCBzZWxlY3Rpb25EaXJlY3Rpb24oKSk7CiB9CkBAIC0yMTEsNyArMjExLDcgQEAg
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uRGlyZWN0aW9uKGNv
bnN0IFN0cmluZyYgZGlyZWN0aW9uKQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3QoU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCYgaW50ZW50KQogewotICAgIHNldFNlbGVjdGlvblJhbmdlKDAsIHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCksIFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCByZXZl
YWxNb2RlLCBpbnRlbnQpOworICAgIHNldFNlbGVjdGlvblJhbmdlKDAsIHN0ZDo6bnVtZXJpY19s
aW1pdHM8dW5zaWduZWQ+OjptYXgoKSwgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24sIHJldmVhbE1v
ZGUsIGludGVudCk7CiB9CiAKIFN0cmluZyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2Vs
ZWN0ZWRUZXh0KCkgY29uc3QKQEAgLTI5Miw3ICsyOTIsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0UmFuZ2VUZXh0KGNvbnN0IFN0cmluZyYgcmVw
bGFjZQogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnNldFNlbGVjdGlvblJhbmdlKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBk
aXJlY3Rpb25TdHJpbmcsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQpCit2
b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZywgY29u
c3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsKICAgICBUZXh0RmllbGRTZWxl
Y3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb247CiAgICAg
aWYgKGRpcmVjdGlvblN0cmluZyA9PSAiZm9yd2FyZCIpCkBAIC0zMDMsMTQgKzMwMywxNSBAQCB2
b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3Rh
cnQsIGludCBlbmQsIGNvbnN0IFN0cgogICAgIHJldHVybiBzZXRTZWxlY3Rpb25SYW5nZShzdGFy
dCwgZW5kLCBkaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsLCBpbnRl
bnQpOwogfQogCi12b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25S
YW5nZShpbnQgc3RhcnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJl
Y3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmIGludGVudCkKK3ZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dFNlbGVjdGlvblJhbmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFRleHRGaWVsZFNl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9k
ZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsKICAgICBpZiAoIWlz
VGV4dEZpZWxkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIENsYW1wcyB0byB0aGUgY3Vy
cmVudCB2YWx1ZSBsZW5ndGguCi0gICAgZW5kID0gc3RkOjpjbGFtcChlbmQsIDAsIGNsYW1wVG88
aW50Pihpbm5lclRleHRWYWx1ZSgpLmxlbmd0aCgpKSk7Ci0gICAgc3RhcnQgPSBzdGQ6OmNsYW1w
KHN0YXJ0LCAwLCBlbmQpOworICAgIHVuc2lnbmVkIGlubmVyVGV4dFZhbHVlTGVuZ3RoID0gaW5u
ZXJUZXh0VmFsdWUoKS5sZW5ndGgoKTsKKyAgICBlbmQgPSBzdGQ6Om1pbihlbmQsIGlubmVyVGV4
dFZhbHVlTGVuZ3RoKTsKKyAgICBzdGFydCA9IHN0ZDo6bWluKHN0YXJ0LCBlbmQpOwogCiAgICAg
YXV0byBpbm5lclRleHQgPSBpbm5lclRleHRFbGVtZW50Q3JlYXRpbmdTaGFkb3dTdWJ0cmVlSWZO
ZWVkZWQoKTsKICAgICBib29sIGhhc0ZvY3VzID0gZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgp
ID09IHRoaXM7CkBAIC0zNzgsNyArMzc5LDcgQEAgVmlzaWJsZVBvc2l0aW9uIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50Ojp2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQgaW5kZXgpIGMKICAg
ICByZXR1cm4gcG9zaXRpb247CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
c2VsZWN0aW9uU3RhcnQoKSBjb25zdAordW5zaWduZWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnNlbGVjdGlvblN0YXJ0KCkgY29uc3QKIHsKICAgICBpZiAoIWlzVGV4dEZpZWxkKCkpCiAg
ICAgICAgIHJldHVybiAwOwpAQCAtMzg4LDcgKzM4OSw3IEBAIGludCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2VsZWN0aW9uU3RhcnQoKSBjb25zdAogICAgIHJldHVybiBjb21wdXRlU2Vs
ZWN0aW9uU3RhcnQoKTsKIH0KIAotaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21w
dXRlU2VsZWN0aW9uU3RhcnQoKSBjb25zdAordW5zaWduZWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OmNvbXB1dGVTZWxlY3Rpb25TdGFydCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVGV4
dEZpZWxkKCkpOwogICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7
CkBAIC0zOTgsNyArMzk5LDcgQEAgaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21w
dXRlU2VsZWN0aW9uU3RhcnQoKSBjb25zdAogICAgIHJldHVybiBpbmRleEZvclBvc2l0aW9uKGZy
YW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKTsKIH0KIAotaW50IEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb25FbmQoKSBjb25zdAordW5zaWduZWQgSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFp
c1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTQwNyw3ICs0MDgsNyBAQCBpbnQg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCgpIGNvbnN0CiAgICAgcmV0
dXJuIGNvbXB1dGVTZWxlY3Rpb25FbmQoKTsKIH0KIAotaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uRW5kKCkgY29uc3QKK3Vuc2lnbmVkIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uRW5kKCkgY29uc3QKIHsKICAgICBBU1NF
UlQoaXNUZXh0RmllbGQoKSk7CiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGRvY3VtZW50KCku
ZnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuaAppbmRleCBhYjNhYjZhYmJlYWUwMzgzNDQ2YjkyNzgzNTk5ZmJkY2ZlMmMzNDI1Li42
Njg2YzQ0M2U0M2YwNjBiMzdhOGZkZjNiZTgwNTZmZjliYjE5MzkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC02OSwxNyArNjks
MTcgQEAgcHVibGljOgogCiAgICAgaW50IGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFZpc2libGVQb3NpdGlv
biB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbnQgaW5kZXgpIGNvbnN0OwotICAgIFdFQkNPUkVf
RVhQT1JUIGludCBzZWxlY3Rpb25TdGFydCgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIGlu
dCBzZWxlY3Rpb25FbmQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBzZWxl
Y3Rpb25TdGFydCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIHNlbGVjdGlv
bkVuZCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IEF0b21TdHJpbmcmIHNlbGVj
dGlvbkRpcmVjdGlvbigpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0
aW9uU3RhcnQoaW50KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbkVuZChp
bnQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uU3RhcnQodW5zaWduZWQp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uRW5kKHVuc2lnbmVkKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvbkRpcmVjdGlvbihjb25zdCBTdHJpbmcm
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbGVjdChTZWxlY3Rpb25SZXZlYWxNb2RlID0g
U2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UmFuZ2VUZXh0KGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0UmFuZ2VUZXh0KGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBlbmQsIGNvbnN0IFN0cmluZyYgc2VsZWN0aW9uTW9kZSk7Ci0gICAgdm9pZCBzZXRT
ZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9u
LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCBzdGFy
dCwgaW50IGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uID0gU2VsZWN0aW9uSGFzTm9E
aXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgPSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05v
dFJldmVhbCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSk7CisgICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5k
LCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gPSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwg
U2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsLCBj
b25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgp
KTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHNlbGVjdGlvbigpIGNvbnN0Owog
ICAgIFN0cmluZyBzZWxlY3RlZFRleHQoKSBjb25zdDsKQEAgLTEyMCwxMCArMTIwLDExIEBAIHBy
b3RlY3RlZDoKICAgICAgICAgbV9jYWNoZWRTZWxlY3Rpb25TdGFydCA9IHN0YXJ0OwogICAgICAg
ICBtX2NhY2hlZFNlbGVjdGlvbkVuZCA9IGVuZDsKICAgICAgICAgbV9jYWNoZWRTZWxlY3Rpb25E
aXJlY3Rpb24gPSBkaXJlY3Rpb247CisgICAgICAgIG1faGFzQ2FjaGVkU2VsZWN0aW9uID0gdHJ1
ZTsKICAgICB9CiAKICAgICB2b2lkIHJlc3RvcmVDYWNoZWRTZWxlY3Rpb24oU2VsZWN0aW9uUmV2
ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFu
Z2VJbnRlbnQoKSk7Ci0gICAgYm9vbCBoYXNDYWNoZWRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVy
biBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0ID49IDA7IH0KKyAgICBib29sIGhhc0NhY2hlZFNlbGVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ2FjaGVkU2VsZWN0aW9uOyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgc3VidHJlZUhhc0NoYW5nZWQoKSA9IDA7CiAKQEAgLTE0MSw4ICsxNDIsOCBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBpc1RleHRGb3JtQ29udHJvbEVsZW1lbnQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBpbnQgY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29u
c3Q7Ci0gICAgaW50IGNvbXB1dGVTZWxlY3Rpb25FbmQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBj
b21wdXRlU2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBjb21wdXRlU2VsZWN0
aW9uRW5kKCkgY29uc3Q7CiAgICAgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGNvbXB1dGVT
ZWxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50
KFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LCBjb25zdCBGb2N1c09wdGlvbnMm
KSBmaW5hbDsKQEAgLTE3MSwxMSArMTcyLDEzIEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgbV90
ZXh0QXNPZkxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50OwogCi0gICAgaW50IG1fY2FjaGVkU2Vs
ZWN0aW9uU3RhcnQ7Ci0gICAgaW50IG1fY2FjaGVkU2VsZWN0aW9uRW5kOworICAgIHVuc2lnbmVk
IG1fY2FjaGVkU2VsZWN0aW9uU3RhcnQ7CisgICAgdW5zaWduZWQgbV9jYWNoZWRTZWxlY3Rpb25F
bmQ7CiAKICAgICBpbnQgbV9tYXhMZW5ndGggeyAtMSB9OwogICAgIGludCBtX21pbkxlbmd0aCB7
IC0xIH07CisKKyAgICBib29sIG1faGFzQ2FjaGVkU2VsZWN0aW9uIHsgZmFsc2UgfTsKIH07CiAK
IFdFQkNPUkVfRVhQT1JUIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KiBlbmNsb3NpbmdUZXh0
Rm9ybUNvbnRyb2woY29uc3QgUG9zaXRpb24mKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzM2YxNDA2MjQxNzJjMjBlMzQz
M2FmMDVhYmZjOGRkZjRhYmYxZDQ0Li42MjkxNzQ4MTBmNWM0MDVjZjBkZjBlY2E0ODlhOTJhZWYx
ODg3NWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDMtMTYgIFppcmFuIFN1biAgPHpz
dW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbc2VsZWN0aW9uXSBDaGFuZ2UgZm9ybSdzIHNlbGVj
dGlvbiBhdHRyaWJ1dGUgdG8gdW5zaWduZWQgbG9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3QgYWNjb3JkaW5nbHkuIFRoaXMgaXMg
aW5saW5lIHdpdGggQ2hyb21pdW0uIAorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtYXBwZWFy
YW5jZS1zZWxlY3Rpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5j
dGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0
LWVuZC1yZWFkb25seS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mb3Jtcy9zZWxlY3Rp
b24tc3RhcnQtZW5kLXJlYWRvbmx5Lmh0bWw6CisKIDIwMjItMDMtMDEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbRGVidWddIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdXJsL3RvYXNjaWkud2luZG93Lmh0bWwgaXMgY3Jhc2hpbmcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDM4ODNhOTA2YTA2ZDE4ZjY1ZGU4ODk3YTYzNzU2MWU4
YmEwOTJhNGYuLjZiNzA1MzA4NmE2ZTNmMTQ1ZGQxNDk0OTVjMzcwMDE2OGY1YTgxZDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAzLTE2ICBa
aXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gQ2hhbmdl
IGZvcm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0
aW9ucyBhcyBtb3JlIHN1Yi10ZXN0cyBhcmUgbm93IHBhc3NpbmcuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxl
Y3Rpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zv
cm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0U2VsZWN0aW9uUmFu
Z2UtZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAzLTAxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3
ZWJraXQub3JnPgogCiAgICAgICAgIFt3ZWItYW5pbWF0aW9uc10gd2ViLWFuaW1hdGlvbnMvaW50
ZXJmYWNlcy9BbmltYXRhYmxlL2dldEFuaW1hdGlvbnMtaWZyYW1lLmh0bWwgaXMgYSB1bmlxdWUg
ZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJh
bmNlLXNlbGVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJh
bmNlLXNlbGVjdGlvbi5odG1sCmluZGV4IGVlZWU3MDU1NDMwOWJjZWJhNmMwMWExYzk5ZTk2Zjlj
YTJlNmI3YjIuLjdiZmRhMWVhNGJlOGMzNDViNjc5NTFlZWIxOWFmODlhMGVmMWM2MjIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1zZWxlY3Rpb24u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0
aW9uLmh0bWwKQEAgLTExLDggKzExLDggQEAgZnVuY3Rpb24gdGVzdCAoKSB7CiAgICAgdGVzdFNl
bGVjdGlvblJhbmdlKDQsIDEwLCAzLCAzLCAzLCB0ZXN0RmllbGQsIHJlc3VsdHMpOwogICAgIHRl
c3RTZWxlY3Rpb25FbmQoNSwgMiwgMiwgMiwgdGVzdEZpZWxkLCByZXN1bHRzKTsKICAgICB0ZXN0
U2VsZWN0aW9uUmFuZ2UoNiwgNSwgNCwgNCwgNCwgdGVzdEZpZWxkLCByZXN1bHRzKTsKLSAgICB0
ZXN0U2VsZWN0aW9uUmFuZ2UoNywgLTUsIC00LCAwLCAwLCB0ZXN0RmllbGQsIHJlc3VsdHMpOwot
ICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg4LCAtNSwgODAsIDAsIDIwLCB0ZXN0RmllbGQsIHJlc3Vs
dHMpOworICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg3LCAtNSwgLTQsIDIwLCAyMCwgdGVzdEZpZWxk
LCByZXN1bHRzKTsKKyAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoOCwgLTUsIDgwLCAyMCwgMjAsIHRl
c3RGaWVsZCwgcmVzdWx0cyk7CiAgICAgdGVzdFNlbGVjdGlvblJhbmdlKDksIDMsIDEyLCAzLCAx
MiwgdGVzdEZpZWxkLCByZXN1bHRzKTsKIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2VsZWN0aW9uLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggZTk2ZDIyZmI3
MmM1MmFkYWNmMzZkZmMzNjY3ZmI2N2QxZTBhYzAxYy4uOTYzZGZkYTVjNWYzYTQyYmUyNmVhMzBj
M2VjNTU0NzZhZGU1ZTMyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxl
Y3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC02LDQzICs2LDQzIEBAIElmIHRo
aXMgdGVzdCBwYXNzZWQgeW91J2xsIHNlZSBhIGJ1bmNoIG9mIGNvcnJlY3Qgc2VsZWN0aW9uIHJh
bmdlcyBiZWxvdy4gQ2hlY2sKID09PXRleHRhcmVhPT09CiBzZXRTZWxlY3Rpb25SYW5nZSgpOgog
MywgNwotMCwgNQorNSwgNQogNDIsIDQ4CiAyLCAyCiAKIHNlbGVjdGlvblN0YXJ0OgogMywgMwog
NywgNwotMCwgNworNDgsIDQ4CiA0OCwgNDgKIDMsIDQ4CiAKIHNlbGVjdGlvbkVuZDoKIDMsIDUK
IDIsIDIKLTAsIDAKLTAsIDQ4CisyLCA0OAorMiwgNDgKIDcsIDcKIAogPT09aW5wdXQ9PT0KIHNl
dFNlbGVjdGlvblJhbmdlKCk6CiAzLCA3Ci0wLCA1Cis1LCA1CiA0MiwgNDgKIDIsIDIKIAogc2Vs
ZWN0aW9uU3RhcnQ6CiAzLCAzCiA3LCA3Ci0wLCA3Cis0OCwgNDgKIDQ4LCA0OAogMywgNDgKIAog
c2VsZWN0aW9uRW5kOgogMywgNQogMiwgMgotMCwgMAotMCwgNDgKKzIsIDQ4CisyLCA0OAogNywg
NwogCiA9PT1idXR0b249PT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Vs
ZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0CmluZGV4IDM4
ZmEwMThiYTI3NDYwZmE5OTdmZGJhOTdhOWExNjY5ZTNlY2NiNzQuLmU1MjE3MWRlOWQwNmVhMmUz
OGE3ZTMwNDYxODViOGEyMjdkN2RhNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4
dApAQCAtMTgsNyArMTgsNyBAQCBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgNQogUEFT
UyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyA1CiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQg
aXMgMAogUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAwCi1QQVNTIGVsZW1lbnQuc2VsZWN0
aW9uU3RhcnQgaXMgMAorUEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IGlzIDEwCiBQQVNTIGVs
ZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDEwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMg
MAogUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAxMApAQCAtMzIsNyArMzIsNyBAQCBQQVNT
IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgNQogUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBp
cyA1CiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMAogUEFTUyBlbGVtZW50LnNlbGVj
dGlvbkVuZCBpcyAwCi1QQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMAorUEFTUyBlbGVt
ZW50LnNlbGVjdGlvblN0YXJ0IGlzIDEwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDEw
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5Lmh0bWwKaW5kZXgg
MjkyNTA1MTFmNWMxZmMxNmFiMzBkOWI3MWZhNTUxYWM3MzA1MDBmYi4uMmMyNmFjZjM4MDc2MGY5
YThiZTczOWEwY2IwMjAyODg3OWM4YzVlZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5Lmh0bWwKQEAgLTEzLDEzICsx
MywxOSBAQAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KIGRlc2NyaXB0aW9uKCdU
ZXN0cyBmb3Igc2VsZWN0aW9uU3RhcnQgYW5kIHNlbGVjdGlvbkVuZCBvbiByZWFkLW9ubHkgSU5Q
VVQgYW5kIFRFWFRBUkVBLiA8YnIvPiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjU0NDQiPmJ1ZyAyNTQ0NDwvYT46IFNlbGVjdGlvblN0YXJ0LCBzZWxl
Y3Rpb25FbmQgcHJvcGVydGllcyByZXR1cm4gd3JvbmcgdmFsdWVzIHdoZW4gdGhlIHNlbGVjdGlv
biBpcyBpbiBhIGZvcm0gaW5wdXQuJyk7DQogDQorLy8gU2VlIGh0dHBzOi8vaGV5Y2FtLmdpdGh1
Yi5pby93ZWJpZGwvI2Fic3RyYWN0LW9wZGVmLWNvbnZlcnR0b2ludA0KK2Z1bmN0aW9uIHRvVUlu
dDMyKHgpIHsNCisgICAgdmFyIHkgPSBNYXRoLnBvdygyLCAzMik7DQorICAgIHJldHVybiB4IC0g
TWF0aC5mbG9vcih4IC8geSkgKiB5Ow0KK30NCisNCiBmdW5jdGlvbiBzdGFydFRlc3QoZWxlbWVu
dCwgc3RhcnQsIGVuZCkgew0KICAgICBlbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBl
bmQpOw0KIA0KLSAgICBzdGFydCA9IHN0YXJ0IDwgMCA/IDAgOiBzdGFydDsNCisgICAgc3RhcnQg
PSB0b1VJbnQzMihzdGFydCk7DQogICAgIGVuZCA9IGVuZCA+IDEwID8gMTAgOiBlbmQ7DQogICAg
IHN0YXJ0ID0gc3RhcnQgPiBlbmQgPyBlbmQgOiBzdGFydDsNCi0KKw0KICAgICBpZiAoZWxlbWVu
dC5zZWxlY3Rpb25TdGFydCAhPSBzdGFydCkNCiAgICAgICAgIHRlc3RGYWlsZWQoJ2VsZW1lbnQu
c2VsZWN0aW9uU3RhcnQnICsgJyBzaG91bGQgYmUgJyArIHN0YXJ0ICsgJyBidXQgaXQgaXMgJyAr
IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQpOw0KICAgICBlbHNlDQpAQCAtNDQsNCArNTAsNCBAQCB0
ZXN0SGFuZGxlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJlYScpKTsKICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQogIDwvYm9keT4N
CiA8L2h0bWw+DQotCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9z
ZWxlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0
aW9uLWV4cGVjdGVkLnR4dAppbmRleCBhM2VmZDcwNjE1Y2RiY2RkZjMyODZiNmMxZjRkZDZiZGIz
ZjY3ZWZmLi5iZTM4YmYzODRlYzUwODM0MDI3MTc0ZmViNTc2NTYzOTU3YmIwYzQ3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQKQEAg
LTEzLDQgKzEzLDggQEAgRkFJTCB0ZXN0IFNlbGVjdGlvbkVuZCBvZmZzZXQgZm9yIHRleHRhcmVh
IHRoYXQgaXMgYXBwZW5kZWQgYXNzZXJ0X2VxdWFsczogU2VsZWMKIEZBSUwgdGVzdCBTZWxlY3Rp
b25FbmQgb2Zmc2V0IGZvciB0ZXh0YXJlYSB0aGF0IGlzICBub3QgYXBwZW5kZWQgYXNzZXJ0X2Vx
dWFsczogU2VsZWN0aW9uRW5kIG9mZnNldCB3aXRob3V0IHNlbGVjdGlvbiBpbiB0ZXh0YXJlYS1u
b3QtYXBwZW5kZWQgZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCiBQQVNTIHRlc3QgU2VsZWN0aW9uRGly
ZWN0aW9uIGZvciBpbnB1dAogUEFTUyB0ZXN0IFNlbGVjdGlvbkRpcmVjdGlvbiBmb3IgdGV4dGFy
ZWEKK1BBU1MgdGVzdCBzY3JvbGxMZWZ0IGZvciBpbnB1dAorUEFTUyB0ZXN0IHNjcm9sbExlZnQg
cHJlc2VydmF0aW9uIGZvciBpbnB1dAorUEFTUyB0ZXN0IGNvbnRhaW5lci5zY3JvbGxUb3AgZm9y
IGlucHV0CitQQVNTIHRlc3QgY29udGFpbmVyLnNjcm9sbFRvcCBmb3IgdGV4dGFyZWEKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQt
ZW5kLWV4cGVjdGVkLnR4dAppbmRleCA2OGRmYzc1M2I1YjJlMGQ5MDY4OTM2NGNkYzM1MWMzODFh
ZjA1YWRiLi44Zjc3M2VhODhiYjY1NmY0OTFkZDZmYTU5NDhkNTllN2QwYzQ1YTM2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQt
ZW5kLWV4cGVjdGVkLnR4dApAQCAtNDAsOCArNDAsOCBAQCBOT1RSVU4gb25zZWxlY3Qgc2hvdWxk
IGZpcmUgd2hlbiBzZWxlY3Rpb25FbmQgaXMgY2hhbmdlZCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5k
ZQogTk9UUlVOIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlzIGNoYW5n
ZWQgb24KIFBBU1MgU2V0dGluZyBzZWxlY3Rpb25TdGFydCB0byBhIHZhbHVlIGxhcmdlciB0aGFu
IHNlbGVjdGlvbkVuZCBzaG91bGQgaW5jcmVhc2Ugc2VsZWN0aW9uRW5kCiBQQVNTIFNldHRpbmcg
c2VsZWN0aW9uRW5kIHRvIGEgdmFsdWUgc21hbGxlciB0aGFuIHNlbGVjdGlvblN0YXJ0IHNob3Vs
ZCBkZWNyZWFzZSBzZWxlY3Rpb25TdGFydAotRkFJTCBzZWxlY3Rpb25TdGFydCBlZGdlLWNhc2Ug
dmFsdWVzIGFzc2VydF9lcXVhbHM6IHNlbGVjdGlvblN0YXJ0IHNldHRlciBvbiBpbnB1dC1hcHBl
bmRlZCBzaG91bGQgY29udmVydCAtMSB0byAyXjMyLTEgZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCi1G
QUlMIHNlbGVjdGlvbkVuZCBlZGdlLWNhc2UgdmFsdWVzIGFzc2VydF9lcXVhbHM6IHNlbGVjdGlv
bkVuZCBzZXR0ZXIgb24gaW5wdXQtYXBwZW5kZWQgc2hvdWxkIGNvbnZlcnQgLTEgdG8gMl4zMi0x
IGV4cGVjdGVkIDEwIGJ1dCBnb3QgMAorUEFTUyBzZWxlY3Rpb25TdGFydCBlZGdlLWNhc2UgdmFs
dWVzCitQQVNTIHNlbGVjdGlvbkVuZCBlZGdlLWNhc2UgdmFsdWVzCiBQQVNTIHNlbGVjdGlvblN0
YXJ0IHNob3VsZCBiZSBjbGFtcGVkIGJ5IHRoZSBjdXJyZW50IHZhbHVlIGxlbmd0aAogUEFTUyBz
ZWxlY3Rpb25FbmQgc2hvdWxkIGJlIGNsYW1wZWQgYnkgdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3Ro
CiBQQVNTIHNldFNlbGVjdGlvblJhbmdlIHNob3VsZCBiZSBjbGFtcGVkIGJ5IHRoZSBjdXJyZW50
IHZhbHVlIGxlbmd0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4
dGZpZWxkc2VsZWN0aW9uLXNldFNlbGVjdGlvblJhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxlY3Rpb25SYW5nZS1l
eHBlY3RlZC50eHQKaW5kZXggMmI3NjJkMDU0ODg3ZjI5MzFhNWQzYTRkMjViMDI2ZmNjZDVmNDEy
Ni4uYjIyOGRjYjkxNjk5ZmRmYTliMGNiYTQyMWM0Yjg2ZGFmYWM4NTMxOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4dGZpZWxkc2VsZWN0aW9uLXNldFNlbGVjdGlv
blJhbmdlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0
ZmllbGRzZWxlY3Rpb24tc2V0U2VsZWN0aW9uUmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0xNiw4ICsx
Niw4IEBAIFBBU1MgaW5wdXQgZGlyZWN0aW9uIG9mIHNldFNlbGVjdGlvblJhbmdlKDAsMSwibm9u
ZSIpCiBQQVNTIGlucHV0IGRpcmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25SYW5nZSgwLDEsImhvZ2Ui
KQogUEFTUyBpbnB1dCBkaXJlY3Rpb24gb2Ygc2V0U2VsZWN0aW9uUmFuZ2UoMCwxLCJCQUNLV0FS
RCIpCiBQQVNTIGlucHV0IGRpcmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25SYW5nZSgwLDEpCi1GQUlM
IGlucHV0IHNldFNlbGVjdGlvblJhbmdlKDEsLTEpIGFzc2VydF9lcXVhbHM6IGVsZW1lbnQuc2Vs
ZWN0aW9uU3RhcnQgc2hvdWxkIGJlIDEgZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgaW5wdXQg
c2V0U2VsZWN0aW9uUmFuZ2UoLTEsMSkgYXNzZXJ0X2VxdWFsczogRUNNQVNjcmlwdCBjb252ZXJz
aW9uIHRvIHVuc2lnbmVkIGxvbmcgKyBpZiBlbmQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHN0
YXJ0IHRoZW4gdGhlIHN0YXJ0IG9mIHRoZSBzZWxlY3Rpb24gYW5kIHRoZSBlbmQgb2YgdGhlIHNl
bGVjdGlvbiBtdXN0IGJvdGggYmUgcGxhY2VkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgY2hhcmFj
dGVyIHdpdGggb2Zmc2V0IGVuZCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBpbnB1dCBzZXRT
ZWxlY3Rpb25SYW5nZSgxLC0xKQorUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgtMSwxKQog
UEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgic3RyaW5nIiwxKQogUEFTUyBpbnB1dCBzZXRT
ZWxlY3Rpb25SYW5nZSh0cnVlLDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKFtdLDEp
CkBAIC0yNSw4ICsyNSw4IEBAIFBBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2Uoe30sMSkKIFBB
U1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoTmFOLDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlv
blJhbmdlKG51bGwsMSkKIFBBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UodW5kZWZpbmVkLDEp
Ci1GQUlMIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzIpIC0gMiwgTWF0aC5w
b3coMiwzMikgLSAxKSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3Vs
ZCBiZSB2YWx1ZS5sZW5ndGggZXhwZWN0ZWQgNSBidXQgZ290IDAKLUZBSUwgaW5wdXQgc2V0U2Vs
ZWN0aW9uUmFuZ2UoTWF0aC5wb3coMiwzMSksIE1hdGgucG93KDIsMzIpIC0gMSkgYXNzZXJ0X2Vx
dWFsczogZWxlbWVudC5zZWxlY3Rpb25TdGFydCBzaG91bGQgYmUgdmFsdWUubGVuZ3RoIGV4cGVj
dGVkIDUgYnV0IGdvdCAwCitQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIs
MzIpIC0gMiwgTWF0aC5wb3coMiwzMikgLSAxKQorUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5n
ZShNYXRoLnBvdygyLDMxKSwgTWF0aC5wb3coMiwzMikgLSAxKQogVElNRU9VVCBpbnB1dCBzZXRT
ZWxlY3Rpb25SYW5nZSBmaXJlcyBhIHNlbGVjdCBldmVudCBUZXN0IHRpbWVkIG91dAogUEFTUyB0
ZXN0IG9mIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlCiBQQVNTIHRleHRhcmVhIHR5cGVvZihp
bnB1dC5zZXRTZWxlY3Rpb25SYW5nZSknCkBAIC00OCw2ICs0OCw2IEBAIFBBU1MgdGV4dGFyZWEg
c2V0U2VsZWN0aW9uUmFuZ2Uoe30sMSkKIFBBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2Uo
TmFOLDEpCiBQQVNTIHRleHRhcmVhIHNldFNlbGVjdGlvblJhbmdlKG51bGwsMSkKIFBBU1MgdGV4
dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UodW5kZWZpbmVkLDEpCi1GQUlMIHRleHRhcmVhIHNldFNl
bGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzIpIC0gMiwgTWF0aC5wb3coMiwzMikgLSAxKSBhc3Nl
cnRfZXF1YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSB2YWx1ZS5sZW5ndGgg
ZXhwZWN0ZWQgNSBidXQgZ290IDAKLUZBSUwgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0
aC5wb3coMiwzMSksIE1hdGgucG93KDIsMzIpIC0gMSkgYXNzZXJ0X2VxdWFsczogZWxlbWVudC5z
ZWxlY3Rpb25TdGFydCBzaG91bGQgYmUgdmFsdWUubGVuZ3RoIGV4cGVjdGVkIDUgYnV0IGdvdCAw
CitQQVNTIHRleHRhcmVhIHNldFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzIpIC0gMiwgTWF0
aC5wb3coMiwzMikgLSAxKQorUEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBv
dygyLDMxKSwgTWF0aC5wb3coMiwzMikgLSAxKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454954</attachid>
            <date>2022-03-17 04:01:43 -0700</date>
            <delta_ts>2022-03-17 04:20:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237951-20220317110141.patch</filename>
            <type>text/plain</type>
            <size>29514</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNiNGQ3ZmRjMWE1MDRm
ODM1YWQzMmM2ZGExYzYxNmY1N2IxNTBlOC4uZWY4MDJlYzRjMzFlZjZlNDliM2RhZjNhMzdiNzlk
ODk1ZDRlOWU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAzLTE3ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gQ2hhbmdlIGZv
cm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBjaGFuZ2UgdGhlIHR5
cGUgb2YgYXR0cmlidXRlICJzZWxlY3Rpb25TdGFydCIgYW5kICJzZWxlY3Rpb25FbmQiCisgICAg
ICAgIGZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLiBBbHNvICJzdGFydCIgYW5kICJlbmQiIHBh
cmFtZXRlcnMgaW4gZnVuY3Rpb24KKyAgICAgICAgc2VsZWN0aW9uUmFuZ2UoKSBuZWVkIHRvIGJl
IGNoYW5nZWQgY29ycmVzcG9uZGluZ2x5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
aXMgaW4gbGluZSB3aXRoIENocm9taXVtIENMIGF0CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS9jaHJvbWl1bS9jaHJvbWl1bS9jb21taXQvYjZmZjZkYjFjNTY4M2I1ZTU2NGE3MmIwOTQxYWQ1
MDRiNDEwZDFhZgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldERlZmF1bHRTZWxlY3Rpb25BZnRlckZv
Y3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0U2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2Vs
ZWN0aW9uU3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNhY2hlU2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpoYXNDYWNoZWRTZWxlY3Rpb24gY29u
c3QpOgorCiAyMDIyLTAzLTE3ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4IGFmdGVyIHIyOTEz
OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDcwMGQ1ZTUz
MTRiMWY5OTc0YTAzMjFmMjVlMTJkNTFkYTI4YmRhMGUuLmU4NDcwMGYxNTA1MTBmNGYwY2Y3NjI3
Y2IzZDM2ZGM3MmM2MmYyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcApAQCAtNDkyLDE0ICs0OTIsMTQgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVG
b2N1c0FwcGVhcmFuY2UoU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW8KIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGlvbkFmdGVyRm9jdXMoU2VsZWN0aW9u
UmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW9uTW9kZSwgU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZl
YWxNb2RlKQogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKLSAgICBpbnQgc3RhcnQgPSAw
OworICAgIHVuc2lnbmVkIHN0YXJ0ID0gMDsKICAgICBhdXRvIGRpcmVjdGlvbiA9IFNlbGVjdGlv
bkhhc05vRGlyZWN0aW9uOwogICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwog
ICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+ZWRpdG9yKCkuYmVoYXZpb3IoKS5zaG91bGRNb3ZlU2Vs
ZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSkgewotICAgICAgICBzdGFydCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgICAgIHN0YXJ0ID0gc3RkOjpudW1l
cmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogICAgICAgICBkaXJlY3Rpb24gPSBTZWxlY3Rp
b25IYXNGb3J3YXJkRGlyZWN0aW9uOwogICAgIH0KLSAgICBpbnQgZW5kID0gcmVzdG9yYXRpb25N
b2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0U3RhcnQgPyBzdGFy
dCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgdW5zaWduZWQgZW5kID0g
cmVzdG9yYXRpb25Nb2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0
U3RhcnQgPyBzdGFydCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKICAg
ICBzZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kLCBkaXJlY3Rpb24sIHJldmVhbE1vZGUsIEVs
ZW1lbnQ6OmRlZmF1bHRGb2N1c1RleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIH0KIApAQCAtMjA2
OSw3ICsyMDY5LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVPbkZv
Y3VzQ2hhbmdlSWZOZWVkZWQoKQogICAgICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50
ZXJuYWwoKTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVj
dGlvblN0YXJ0Rm9yQmluZGluZ3MoKSBjb25zdAorc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gSFRN
TElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAg
aWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRUeXBlLT5zdXBwb3J0c1NlbGVjdGlv
bkFQSSgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtMjA3Nyw3ICsyMDc3LDcg
QEAgc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0Rm9y
QmluZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25TdGFydCgpOwogfQogCi1FeGNl
cHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydEZvckJpbmRp
bmdzKHN0ZDo6b3B0aW9uYWw8aW50PiBzdGFydCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1
dEVsZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4gc3RhcnQpCiB7CiAgICAgaWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRU
eXBlLT5zdXBwb3J0c1NlbGVjdGlvbkFQSSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJUaGUgaW5wdXQgZWxlbWVudCdzIHR5cGUgKCciICsgbV9pbnB1
dFR5cGUtPmZvcm1Db250cm9sVHlwZSgpICsgIicpIGRvZXMgbm90IHN1cHBvcnQgc2VsZWN0aW9u
LiIgfTsKQEAgLTIwODYsNyArMjA4Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDxpCiAgICAg
cmV0dXJuIHsgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IEhU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKIHsKICAgICBp
ZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRzU2VsZWN0aW9u
QVBJKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC0yMDk0LDcgKzIwOTQsNyBA
QCBzdGQ6Om9wdGlvbmFsPGludD4gSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kRm9yQmlu
ZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25FbmQoKTsKIH0KIAotRXhjZXB0aW9u
T3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kRm9yQmluZGluZ3Moc3Rk
OjpvcHRpb25hbDxpbnQ+IGVuZCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGVuZCkK
IHsKICAgICBpZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRz
U2VsZWN0aW9uQVBJKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIlRoZSBpbnB1dCBlbGVtZW50J3MgdHlwZSAoJyIgKyBtX2lucHV0VHlwZS0+Zm9ybUNv
bnRyb2xUeXBlKCkgKyAiJykgZG9lcyBub3Qgc3VwcG9ydCBzZWxlY3Rpb24uIiB9OwpAQCAtMjEy
MCw3ICsyMTIwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2Vs
ZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoY29uc3QgU3RyaW4KICAgICByZXR1cm4geyB9Owog
fQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5n
ZUZvckJpbmRpbmdzKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24p
CitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZv
ckJpbmRpbmdzKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IFN0cmluZyYgZGly
ZWN0aW9uKQogewogICAgIGlmICghY2FuSGF2ZVNlbGVjdGlvbigpIHx8ICFtX2lucHV0VHlwZS0+
c3VwcG9ydHNTZWxlY3Rpb25BUEkoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiVGhlIGlucHV0IGVsZW1lbnQncyB0eXBlICgnIiArIG1faW5wdXRUeXBl
LT5mb3JtQ29udHJvbFR5cGUoKSArICInKSBkb2VzIG5vdCBzdXBwb3J0IHNlbGVjdGlvbi4iIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDg1MDRmYjYyNjk2Yzdm
MDFlMTg5YjJkNzMxOWY3ODAwYzU5Yzg1NzcuLjM2NWUyNWUzYmUwNzVmYzA5MTU4NjJiNWQ0Mjgx
N2RjZWU1YjY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0z
NDQsMTYgKzM0NCwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRUcnVuY2F0ZVRleHQoY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVTdHlsZU9uRm9jdXND
aGFuZ2VJZk5lZWRlZCgpOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MoKSBjb25zdDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25T
dGFydEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8aW50Pik7CisgICAgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gc2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4pOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvbkVuZEZvckJpbmRpbmdz
KCkgY29uc3Q7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uRW5kRm9yQmluZGlu
Z3Moc3RkOjpvcHRpb25hbDxpbnQ+KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzZWxl
Y3Rpb25FbmRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+KTsKIAogICAgIEV4
Y2VwdGlvbk9yPFN0cmluZz4gc2VsZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoKSBjb25zdDsK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25EaXJlY3Rpb25Gb3JCaW5kaW5ncyhj
b25zdCBTdHJpbmcmKTsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVjdGlvblJhbmdl
Rm9yQmluZGluZ3MoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uUmFuZ2VGb3JCaW5kaW5ncyh1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7CiAKICAg
ICBTdHJpbmcgcmVzdWx0Rm9yRGlhbG9nU3VibWl0KCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDMzZWI1NzFjZWQ2NmI0OWFhYjhi
MzZhZDQzZmI2ZjE3MWFhZWVlYjUuLjg2NWUzNzlmNGE3YzUwZDRmZTc0YjUxNGFkYmUxM2VjNDNl
NDhjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNzcs
MTQgKzc3LDE0IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKIAog
ICAgIHVuZGVmaW5lZCBzZWxlY3QoKTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zZWxlY3Rpb25TdGFy
dEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgbG9uZz8gc2VsZWN0aW9uU3RhcnQ7Ci0gICAgW0ltcGxl
bWVudGVkQXM9c2VsZWN0aW9uRW5kRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBsb25nPyBzZWxlY3Rp
b25FbmQ7CisgICAgW0ltcGxlbWVudGVkQXM9c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5nc10gYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmc/IHNlbGVjdGlvblN0YXJ0OworICAgIFtJbXBsZW1lbnRlZEFz
PXNlbGVjdGlvbkVuZEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZz8gc2VsZWN0
aW9uRW5kOwogICAgIFtJbXBsZW1lbnRlZEFzPXNlbGVjdGlvbkRpcmVjdGlvbkZvckJpbmRpbmdz
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmlu
ZWQgc2V0UmFuZ2VUZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNl
dFJhbmdlVGV4dChET01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVu
c2lnbmVkIGxvbmcgZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAg
ICBbSW1wbGVtZW50ZWRBcz1zZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRpbmdzXSB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2UobG9uZyBzdGFydCwgbG9uZyBlbmQsIG9wdGlvbmFsIERPTVN0cmlu
ZyBkaXJlY3Rpb24pOworICAgIFtJbXBsZW1lbnRlZEFzPXNldFNlbGVjdGlvblJhbmdlRm9yQmlu
ZGluZ3NdIHVuZGVmaW5lZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1
bnNpZ25lZCBsb25nIGVuZCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CiAKICAgICBb
Q0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWdu
OwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgdXNlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwK
aW5kZXggZjI4N2Y0NzIxOTQyODhkOWJlYjI4MjIyODVkZWRlMWZjZGIwNjNiYy4uYzQ2MGVkNWYw
NDJiZWQ2MzQ4YmQ4N2Q1YjU5YWFmMDM2MWM5MTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC01MCwxNCArNTAsMTQgQEAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogCiAgICAgdW5kZWZpbmVkIHNlbGVjdCgpOwot
ICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlvblN0YXJ0OwotICAgIGF0dHJpYnV0ZSBsb25nIHNl
bGVjdGlvbkVuZDsKKyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25TdGFydDsK
KyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25FbmQ7CiAgICAgYXR0cmlidXRl
IERPTVN0cmluZyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmluZWQgc2V0UmFuZ2VU
ZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNldFJhbmdlVGV4dChE
T01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcg
ZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAgICB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2Uob3B0aW9uYWwgbG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIGxvbmcg
ZW5kID0gMCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CisgICAgdW5kZWZpbmVkIHNl
dFNlbGVjdGlvblJhbmdlKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgc3RhcnQgPSAwLCBvcHRpb25h
bCB1bnNpZ25lZCBsb25nIGVuZCA9IDAsIG9wdGlvbmFsIERPTVN0cmluZyBkaXJlY3Rpb24pOwog
CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIERPTVN0cmluZyBhdXRvY29t
cGxldGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCAzZGM5OGQ2MDMwODBkOGE0ZmMzNjBmMjU4NGMwMmM3NjMyZGQy
MGFkLi5kMmM5OTgzODNjZGQ3ZjRiMjlhNzA4YjYyYzVmMmI5ZDI3MWY4ZDIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
ODcsOCArODcsOCBAQCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTgogICAgICwgbV9sYXN0Q2hhbmdl
V2FzVXNlckVkaXQoZmFsc2UpCiAgICAgLCBtX2lzUGxhY2Vob2xkZXJWaXNpYmxlKGZhbHNlKQog
ICAgICwgbV9jYW5TaG93UGxhY2Vob2xkZXIodHJ1ZSkKLSAgICAsIG1fY2FjaGVkU2VsZWN0aW9u
U3RhcnQoLTEpCi0gICAgLCBtX2NhY2hlZFNlbGVjdGlvbkVuZCgtMSkKKyAgICAsIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQoMCkKKyAgICAsIG1fY2FjaGVkU2VsZWN0aW9uRW5kKDApCiB7CiB9CiAK
QEAgLTE5NCwxMiArMTk0LDEyIEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dENhblNob3dQbGFjZWhvbGRlcihib29sIGNhblNob3dQbGFjZWhvbGRlcikKICAgICB1cGRhdGVQ
bGFjZWhvbGRlclZpc2liaWxpdHkoKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0KQordm9pZCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQodW5zaWduZWQgc3RhcnQpCiB7CiAgICAgc2V0
U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIHN0ZDo6bWF4KHN0YXJ0LCBzZWxlY3Rpb25FbmQoKSksIHNl
bGVjdGlvbkRpcmVjdGlvbigpKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0U2VsZWN0aW9uRW5kKGludCBlbmQpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRTZWxlY3Rpb25FbmQodW5zaWduZWQgZW5kKQogewogICAgIHNldFNlbGVjdGlvblJh
bmdlKHN0ZDo6bWluKGVuZCwgc2VsZWN0aW9uU3RhcnQoKSksIGVuZCwgc2VsZWN0aW9uRGlyZWN0
aW9uKCkpOwogfQpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvbkRpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvbikKIAog
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0KFNlbGVjdGlvblJldmVhbE1v
ZGUgcmV2ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsK
LSAgICBzZXRTZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgp
LCBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgcmV2ZWFsTW9kZSwgaW50ZW50KTsKKyAgICBzZXRT
ZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIFNl
bGVjdGlvbkhhc05vRGlyZWN0aW9uLCByZXZlYWxNb2RlLCBpbnRlbnQpOwogfQogCiBTdHJpbmcg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CkBAIC0yOTAs
NyArMjkwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2UKICAgICByZXR1cm4geyB9OwogfQog
Ci12b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZShpbnQg
c3RhcnQsIGludCBlbmQsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50KQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29u
c3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiBpbnRlbnQpCiB7CiAgICAgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9
IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uOwogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImZv
cndhcmQiKQpAQCAtMzAxLDE0ICszMDEsMTUgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHIKICAg
ICByZXR1cm4gc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCwgZGlyZWN0aW9uLCBTZWxlY3Rp
b25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgaW50ZW50KTsKIH0KIAotdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBU
ZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxNb2Rl
IHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQpCit2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQpCiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICAvLyBDbGFtcHMgdG8gdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3RoLgotICAgIGVu
ZCA9IHN0ZDo6Y2xhbXAoZW5kLCAwLCBjbGFtcFRvPGludD4oaW5uZXJUZXh0VmFsdWUoKS5sZW5n
dGgoKSkpOwotICAgIHN0YXJ0ID0gc3RkOjpjbGFtcChzdGFydCwgMCwgZW5kKTsKKyAgICB1bnNp
Z25lZCBpbm5lclRleHRWYWx1ZUxlbmd0aCA9IGlubmVyVGV4dFZhbHVlKCkubGVuZ3RoKCk7Cisg
ICAgZW5kID0gc3RkOjptaW4oZW5kLCBpbm5lclRleHRWYWx1ZUxlbmd0aCk7CisgICAgc3RhcnQg
PSBzdGQ6Om1pbihzdGFydCwgZW5kKTsKIAogICAgIGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0
RWxlbWVudENyZWF0aW5nU2hhZG93U3VidHJlZUlmTmVlZGVkKCk7CiAgICAgYm9vbCBoYXNGb2N1
cyA9IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlzOwpAQCAtMzgwLDcgKzM4MSw3
IEBAIFZpc2libGVQb3NpdGlvbiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmlzaWJsZVBv
c2l0aW9uRm9ySW5kZXgoaW50IGluZGV4KSBjCiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1p
bnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KCkgY29uc3QKK3Vu
c2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb25TdGFydCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTM5MCw3
ICszOTEsNyBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
KCkgY29uc3QKICAgICByZXR1cm4gY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCk7CiB9CiAKLWludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
K3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uU3Rh
cnQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKICAgICBSZWZQdHI8RnJh
bWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwpAQCAtNDAwLDcgKzQwMSw3IEBAIGludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
ICAgICByZXR1cm4gaW5kZXhGb3JQb3NpdGlvbihmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCkuc3RhcnQoKSk7CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0
aW9uRW5kKCkgY29uc3QKK3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxl
Y3Rpb25FbmQoKSBjb25zdAogewogICAgIGlmICghaXNUZXh0RmllbGQoKSkKICAgICAgICAgcmV0
dXJuIDA7CkBAIC00MDksNyArNDEwLDcgQEAgaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3Rpb25FbmQoKSBjb25zdAogICAgIHJldHVybiBjb21wdXRlU2VsZWN0aW9uRW5kKCk7
CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVu
ZCgpIGNvbnN0Cit1bnNpZ25lZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNl
bGVjdGlvbkVuZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVGV4dEZpZWxkKCkpOwogICAgIFJl
ZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNTNiZmQ3MzlhOGY0
NmM0NWRlN2ZjODdhNzNiMTY0NTFkOWNmMjk4Ny4uYWE2MzI4OWQxZTNhOTdjYWY2Y2Y0MDM1MzY5
ODQ4MjRhMDEwOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuaApAQCAtNzAsMTcgKzcwLDE3IEBAIHB1YmxpYzoKIAogICAgIGludCBp
bmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgo
aW50IGluZGV4KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uU3RhcnQo
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgc2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBzZWxlY3Rpb25FbmQoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBjb25zdCBBdG9tU3RyaW5nJiBzZWxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25FbmQoaW50KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNlbGVjdGlvblN0YXJ0KHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNlbGVjdGlvbkVuZCh1bnNpZ25lZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb25EaXJlY3Rpb24oY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZWxlY3QoU2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90
UmV2ZWFsLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50KTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcm
IHNlbGVjdGlvbk1vZGUpOwotICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBp
bnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVj
dGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxN
b2RlID0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworICAgIHZvaWQgc2V0
U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5n
JiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFu
Z2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0
aW9uID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgPSBTZWxl
Y3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNp
bXBsZVJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkg
Y29uc3Q7CkBAIC0xMjIsMTAgKzEyMiwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQgPSBzdGFydDsKICAgICAgICAgbV9jYWNoZWRTZWxlY3Rpb25FbmQgPSBl
bmQ7CiAgICAgICAgIG1fY2FjaGVkU2VsZWN0aW9uRGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAg
ICAgICBtX2hhc0NhY2hlZFNlbGVjdGlvbiA9IHRydWU7CiAgICAgfQogCiAgICAgdm9pZCByZXN0
b3JlQ2FjaGVkU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwotICAgIGJvb2wgaGFz
Q2FjaGVkU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25TdGFydCA+
PSAwOyB9CisgICAgYm9vbCBoYXNDYWNoZWRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2hh
c0NhY2hlZFNlbGVjdGlvbjsgfQogCiAgICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2Vk
KCkgPSAwOwogCkBAIC0xNDMsOCArMTQ0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
aW50IGNvbXB1dGVTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwotICAgIGludCBjb21wdXRlU2VsZWN0
aW9uRW5kKCkgY29uc3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29u
c3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0OwogICAgIFRleHRG
aWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBjb21wdXRlU2VsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3Q7
CiAKICAgICB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1
c2VkRWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJikgZmluYWw7CkBAIC0xNzMsMTEgKzE3NCwx
MyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fdGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFu
Z2VFdmVudDsKIAotICAgIGludCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0OwotICAgIGludCBtX2Nh
Y2hlZFNlbGVjdGlvbkVuZDsKKyAgICB1bnNpZ25lZCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0Owor
ICAgIHVuc2lnbmVkIG1fY2FjaGVkU2VsZWN0aW9uRW5kOwogCiAgICAgaW50IG1fbWF4TGVuZ3Ro
IHsgLTEgfTsKICAgICBpbnQgbV9taW5MZW5ndGggeyAtMSB9OworCisgICAgYm9vbCBtX2hhc0Nh
Y2hlZFNlbGVjdGlvbiB7IGZhbHNlIH07CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudCogZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGNvbnN0IFBvc2l0aW9u
Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMDIyNDUzNDRlZGFiNjI4ZDQ2MmEwNTQ0NjczYTg4NWRhMjJlYTFlNi4uYTBh
YzA4YmUxZmZkOTQxMDBkOTE0ZDNiZTIyZDg1OWNjNGZjOWY3OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W3NlbGVjdGlvbl0gQ2hhbmdlIGZvcm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVk
IGxvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Nzk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSB0ZXN0IGFjY29yZGluZ2x5LiBUaGlzIGlzIGlubGluZSB3aXRoIENocm9taXVtLiAKKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS5odG1s
OgorCiAyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1NlbGVjdGlvbl0gRml4ZXMgc2VsZWN0aW9uIHJhbmdlIHNldHRpbmdzIGZvciBURVhUQVJFQQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZjdmNzU5NzhiYjRlZjc2ODY1ZmM3ODUy
OTg1ZGIwNTE4Nzg2MjhmMi4uNTg3MjE2ODM3N2Q4ZWEzOWFiNWQ1YzBkYjQxNjY4NjA2MDFkZjM2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjIt
MDMtMTYgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbc2VsZWN0aW9u
XSBDaGFuZ2UgZm9ybSdzIHNlbGVjdGlvbiBhdHRyaWJ1dGUgdG8gdW5zaWduZWQgbG9uZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3Qg
ZXhwZWN0YXRpb25zIGFzIG1vcmUgc3ViLXRlc3RzIGFyZSBub3cgcGFzc2luZy4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0
aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQt
ZW5kLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxl
Y3Rpb25SYW5nZS1leHBlY3RlZC50eHQ6CisKIDIwMjItMDMtMTcgIFppcmFuIFN1biAgPHpzdW5A
aWdhbGlhLmNvbT4KIAogICAgICAgICBbU2VsZWN0aW9uXSBGaXhlcyBzZWxlY3Rpb24gcmFuZ2Ug
c2V0dGluZ3MgZm9yIFRFWFRBUkVBCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwKaW5kZXggZWVlZTcwNTU0MzA5YmNlYmE2
YzAxYTFjOTllOTZmOWNhMmU2YjdiMi4uN2JmZGExZWE0YmU4YzM0NWI2Nzk1MWVlYjE5YWY4OWEw
ZWYxYzYyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJh
bmNlLXNlbGVjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXBw
ZWFyYW5jZS1zZWxlY3Rpb24uaHRtbApAQCAtMTEsOCArMTEsOCBAQCBmdW5jdGlvbiB0ZXN0ICgp
IHsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoNCwgMTAsIDMsIDMsIDMsIHRlc3RGaWVsZCwgcmVz
dWx0cyk7CiAgICAgdGVzdFNlbGVjdGlvbkVuZCg1LCAyLCAyLCAyLCB0ZXN0RmllbGQsIHJlc3Vs
dHMpOwogICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg2LCA1LCA0LCA0LCA0LCB0ZXN0RmllbGQsIHJl
c3VsdHMpOwotICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg3LCAtNSwgLTQsIDAsIDAsIHRlc3RGaWVs
ZCwgcmVzdWx0cyk7Ci0gICAgdGVzdFNlbGVjdGlvblJhbmdlKDgsIC01LCA4MCwgMCwgMjAsIHRl
c3RGaWVsZCwgcmVzdWx0cyk7CisgICAgdGVzdFNlbGVjdGlvblJhbmdlKDcsIC01LCAtNCwgMjAs
IDIwLCB0ZXN0RmllbGQsIHJlc3VsdHMpOworICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg4LCAtNSwg
ODAsIDIwLCAyMCwgdGVzdEZpZWxkLCByZXN1bHRzKTsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2Uo
OSwgMywgMTIsIDMsIDEyLCB0ZXN0RmllbGQsIHJlc3VsdHMpOwogCiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApp
bmRleCBlOTZkMjJmYjcyYzUyYWRhY2YzNmRmYzM2NjdmYjY3ZDFlMGFjMDFjLi45NjNkZmRhNWM1
ZjNhNDJiZTI2ZWEzMGMzZWM1NTQ3NmFkZTVlMzI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTYsNDMg
KzYsNDMgQEAgSWYgdGhpcyB0ZXN0IHBhc3NlZCB5b3UnbGwgc2VlIGEgYnVuY2ggb2YgY29ycmVj
dCBzZWxlY3Rpb24gcmFuZ2VzIGJlbG93LiBDaGVjawogPT09dGV4dGFyZWE9PT0KIHNldFNlbGVj
dGlvblJhbmdlKCk6CiAzLCA3Ci0wLCA1Cis1LCA1CiA0MiwgNDgKIDIsIDIKIAogc2VsZWN0aW9u
U3RhcnQ6CiAzLCAzCiA3LCA3Ci0wLCA3Cis0OCwgNDgKIDQ4LCA0OAogMywgNDgKIAogc2VsZWN0
aW9uRW5kOgogMywgNQogMiwgMgotMCwgMAotMCwgNDgKKzIsIDQ4CisyLCA0OAogNywgNwogCiA9
PT1pbnB1dD09PQogc2V0U2VsZWN0aW9uUmFuZ2UoKToKIDMsIDcKLTAsIDUKKzUsIDUKIDQyLCA0
OAogMiwgMgogCiBzZWxlY3Rpb25TdGFydDoKIDMsIDMKIDcsIDcKLTAsIDcKKzQ4LCA0OAogNDgs
IDQ4CiAzLCA0OAogCiBzZWxlY3Rpb25FbmQ6CiAzLCA1CiAyLCAyCi0wLCAwCi0wLCA0OAorMiwg
NDgKKzIsIDQ4CiA3LCA3CiAKID09PWJ1dHRvbj09PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3Rl
ZC50eHQKaW5kZXggMzhmYTAxOGJhMjc0NjBmYTk5N2ZkYmE5N2E5YTE2NjllM2VjY2I3NC4uZTUy
MTcxZGU5ZDA2ZWEyZTM4YTdlMzA0NjE4NWI4YTIyN2Q3ZGE1NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHktZXhwZWN0ZWQudHh0CkBAIC0xOCw3ICsxOCw3IEBAIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25T
dGFydCBpcyA1CiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDUKIFBBU1MgZWxlbWVudC5z
ZWxlY3Rpb25TdGFydCBpcyAwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDAKLVBBU1Mg
ZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQg
aXMgMTAKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMTAKIFBBU1MgZWxlbWVudC5zZWxl
Y3Rpb25TdGFydCBpcyAwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDEwCkBAIC0zMiw3
ICszMiw3IEBAIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyA1CiBQQVNTIGVsZW1lbnQu
c2VsZWN0aW9uRW5kIGlzIDUKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCiBQQVNT
IGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDAKLVBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBp
cyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMTAKIFBBU1MgZWxlbWVudC5zZWxl
Y3Rpb25FbmQgaXMgMTAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHkuaHRtbAppbmRleCAyOTI1MDUxMWY1YzFmYzE2YWIzMGQ5YjcxZmE1NTFhYzczMDUwMGZiLi4y
YzI2YWNmMzgwNzYwZjlhOGJlNzM5YTBjYjAyMDI4ODc5YzhjNWVlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRt
bApAQCAtMTMsMTMgKzEzLDE5IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQog
ZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uRW5kIG9u
IHJlYWQtb25seSBJTlBVVCBhbmQgVEVYVEFSRUEuIDxici8+IDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ0NCI+YnVnIDI1NDQ0PC9hPjogU2VsZWN0
aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCBwcm9wZXJ0aWVzIHJldHVybiB3cm9uZyB2YWx1ZXMgd2hl
biB0aGUgc2VsZWN0aW9uIGlzIGluIGEgZm9ybSBpbnB1dC4nKTsNCiANCisvLyBTZWUgaHR0cHM6
Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jYWJzdHJhY3Qtb3BkZWYtY29udmVydHRvaW50DQor
ZnVuY3Rpb24gdG9VSW50MzIoeCkgew0KKyAgICB2YXIgeSA9IE1hdGgucG93KDIsIDMyKTsNCisg
ICAgcmV0dXJuIHggLSBNYXRoLmZsb29yKHggLyB5KSAqIHk7DQorfQ0KKw0KIGZ1bmN0aW9uIHN0
YXJ0VGVzdChlbGVtZW50LCBzdGFydCwgZW5kKSB7DQogICAgIGVsZW1lbnQuc2V0U2VsZWN0aW9u
UmFuZ2Uoc3RhcnQsIGVuZCk7DQogDQotICAgIHN0YXJ0ID0gc3RhcnQgPCAwID8gMCA6IHN0YXJ0
Ow0KKyAgICBzdGFydCA9IHRvVUludDMyKHN0YXJ0KTsNCiAgICAgZW5kID0gZW5kID4gMTAgPyAx
MCA6IGVuZDsNCiAgICAgc3RhcnQgPSBzdGFydCA+IGVuZCA/IGVuZCA6IHN0YXJ0Ow0KLQorDQog
ICAgIGlmIChlbGVtZW50LnNlbGVjdGlvblN0YXJ0ICE9IHN0YXJ0KQ0KICAgICAgICAgdGVzdEZh
aWxlZCgnZWxlbWVudC5zZWxlY3Rpb25TdGFydCcgKyAnIHNob3VsZCBiZSAnICsgc3RhcnQgKyAn
IGJ1dCBpdCBpcyAnICsgZWxlbWVudC5zZWxlY3Rpb25TdGFydCk7DQogICAgIGVsc2UNCkBAIC00
NCw0ICs1MCw0IEBAIHRlc3RIYW5kbGVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcmVhJykp
OwogIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4NCiAgPC9ib2R5Pg0KIDwvaHRtbD4NCi0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZp
ZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNl
bGVjdGlvbi9zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CmluZGV4IGEzZWZkNzA2MTVjZGJjZGRmMzI4
NmI2YzFmNGRkNmJkYjNmNjdlZmYuLmJlMzhiZjM4NGVjNTA4MzQwMjcxNzRmZWI1NzY1NjM5NTdi
YjBjNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMTMsNCArMTMsOCBAQCBGQUlMIHRlc3QgU2VsZWN0aW9uRW5kIG9mZnNl
dCBmb3IgdGV4dGFyZWEgdGhhdCBpcyBhcHBlbmRlZCBhc3NlcnRfZXF1YWxzOiBTZWxlYwogRkFJ
TCB0ZXN0IFNlbGVjdGlvbkVuZCBvZmZzZXQgZm9yIHRleHRhcmVhIHRoYXQgaXMgIG5vdCBhcHBl
bmRlZCBhc3NlcnRfZXF1YWxzOiBTZWxlY3Rpb25FbmQgb2Zmc2V0IHdpdGhvdXQgc2VsZWN0aW9u
IGluIHRleHRhcmVhLW5vdC1hcHBlbmRlZCBleHBlY3RlZCAxMCBidXQgZ290IDAKIFBBU1MgdGVz
dCBTZWxlY3Rpb25EaXJlY3Rpb24gZm9yIGlucHV0CiBQQVNTIHRlc3QgU2VsZWN0aW9uRGlyZWN0
aW9uIGZvciB0ZXh0YXJlYQorUEFTUyB0ZXN0IHNjcm9sbExlZnQgZm9yIGlucHV0CitQQVNTIHRl
c3Qgc2Nyb2xsTGVmdCBwcmVzZXJ2YXRpb24gZm9yIGlucHV0CitQQVNTIHRlc3QgY29udGFpbmVy
LnNjcm9sbFRvcCBmb3IgaW5wdXQKK1BBU1MgdGVzdCBjb250YWluZXIuc2Nyb2xsVG9wIGZvciB0
ZXh0YXJlYQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rp
b24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3Nl
bGVjdGlvbi1zdGFydC1lbmQtZXhwZWN0ZWQudHh0CmluZGV4IGYxZmI1YTAxYjg3MTZhNDAyMzUx
YjFlNDRmNTBlYjIxOTUzZTVlNjguLjQwZjZkYjY1OTNiNjBiMDBmODM1NWE0ZGVjZDJlNjMwMGNi
OTk2YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1z
dGFydC1lbmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3Nl
bGVjdGlvbi1zdGFydC1lbmQtZXhwZWN0ZWQudHh0CkBAIC00MCw4ICs0MCw4IEBAIE5PVFJVTiBv
bnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlvbkVuZCBpcyBjaGFuZ2VkIG9uIHRleHRh
cmVhLW5vdC1hcHBlbmRlCiBOT1RSVU4gb25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rp
b25FbmQgaXMgY2hhbmdlZCBvbgogUEFTUyBTZXR0aW5nIHNlbGVjdGlvblN0YXJ0IHRvIGEgdmFs
dWUgbGFyZ2VyIHRoYW4gc2VsZWN0aW9uRW5kIHNob3VsZCBpbmNyZWFzZSBzZWxlY3Rpb25FbmQK
IFBBU1MgU2V0dGluZyBzZWxlY3Rpb25FbmQgdG8gYSB2YWx1ZSBzbWFsbGVyIHRoYW4gc2VsZWN0
aW9uU3RhcnQgc2hvdWxkIGRlY3JlYXNlIHNlbGVjdGlvblN0YXJ0Ci1GQUlMIHNlbGVjdGlvblN0
YXJ0IGVkZ2UtY2FzZSB2YWx1ZXMgYXNzZXJ0X2VxdWFsczogc2VsZWN0aW9uU3RhcnQgc2V0dGVy
IG9uIGlucHV0LWFwcGVuZGVkIHNob3VsZCBjb252ZXJ0IC0xIHRvIDJeMzItMSBleHBlY3RlZCAx
MCBidXQgZ290IDAKLUZBSUwgc2VsZWN0aW9uRW5kIGVkZ2UtY2FzZSB2YWx1ZXMgYXNzZXJ0X2Vx
dWFsczogc2VsZWN0aW9uRW5kIHNldHRlciBvbiBpbnB1dC1hcHBlbmRlZCBzaG91bGQgY29udmVy
dCAtMSB0byAyXjMyLTEgZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCitQQVNTIHNlbGVjdGlvblN0YXJ0
IGVkZ2UtY2FzZSB2YWx1ZXMKK1BBU1Mgc2VsZWN0aW9uRW5kIGVkZ2UtY2FzZSB2YWx1ZXMKIFBB
U1Mgc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJlIGNsYW1wZWQgYnkgdGhlIGN1cnJlbnQgdmFsdWUg
bGVuZ3RoCiBQQVNTIHNlbGVjdGlvbkVuZCBzaG91bGQgYmUgY2xhbXBlZCBieSB0aGUgY3VycmVu
dCB2YWx1ZSBsZW5ndGgKIFBBU1Mgc2V0U2VsZWN0aW9uUmFuZ2Ugc2hvdWxkIGJlIGNsYW1wZWQg
YnkgdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3RoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVs
ZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0U2VsZWN0aW9uUmFuZ2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4dGZpZWxkc2VsZWN0aW9uLXNldFNl
bGVjdGlvblJhbmdlLWV4cGVjdGVkLnR4dAppbmRleCAyYjc2MmQwNTQ4ODdmMjkzMWE1ZDNhNGQy
NWIwMjZmY2NkNWY0MTI2Li5iMjI4ZGNiOTE2OTlmZGZhOWIwY2JhNDIxYzRiODZkYWZhYzg1MzE5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rp
b24tc2V0U2VsZWN0aW9uUmFuZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxk
c2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxlY3Rpb25SYW5nZS1leHBlY3RlZC50
eHQKQEAgLTE2LDggKzE2LDggQEAgUEFTUyBpbnB1dCBkaXJlY3Rpb24gb2Ygc2V0U2VsZWN0aW9u
UmFuZ2UoMCwxLCJub25lIikKIFBBU1MgaW5wdXQgZGlyZWN0aW9uIG9mIHNldFNlbGVjdGlvblJh
bmdlKDAsMSwiaG9nZSIpCiBQQVNTIGlucHV0IGRpcmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25SYW5n
ZSgwLDEsIkJBQ0tXQVJEIikKIFBBU1MgaW5wdXQgZGlyZWN0aW9uIG9mIHNldFNlbGVjdGlvblJh
bmdlKDAsMSkKLUZBSUwgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoMSwtMSkgYXNzZXJ0X2VxdWFs
czogZWxlbWVudC5zZWxlY3Rpb25TdGFydCBzaG91bGQgYmUgMSBleHBlY3RlZCAxIGJ1dCBnb3Qg
MAotRkFJTCBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgtMSwxKSBhc3NlcnRfZXF1YWxzOiBFQ01B
U2NyaXB0IGNvbnZlcnNpb24gdG8gdW5zaWduZWQgbG9uZyArIGlmIGVuZCBpcyBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gc3RhcnQgdGhlbiB0aGUgc3RhcnQgb2YgdGhlIHNlbGVjdGlvbiBhbmQgdGhl
IGVuZCBvZiB0aGUgc2VsZWN0aW9uIG11c3QgYm90aCBiZSBwbGFjZWQgaW1tZWRpYXRlbHkgYmVm
b3JlIHRoZSBjaGFyYWN0ZXIgd2l0aCBvZmZzZXQgZW5kIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQ
QVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKDEsLTEpCitQQVNTIGlucHV0IHNldFNlbGVjdGlv
blJhbmdlKC0xLDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKCJzdHJpbmciLDEpCiBQ
QVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKHRydWUsMSkKIFBBU1MgaW5wdXQgc2V0U2VsZWN0
aW9uUmFuZ2UoW10sMSkKQEAgLTI1LDggKzI1LDggQEAgUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25S
YW5nZSh7fSwxKQogUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShOYU4sMSkKIFBBU1MgaW5w
dXQgc2V0U2VsZWN0aW9uUmFuZ2UobnVsbCwxKQogUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5n
ZSh1bmRlZmluZWQsMSkKLUZBSUwgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0aC5wb3coMiwz
MikgLSAyLCBNYXRoLnBvdygyLDMyKSAtIDEpIGFzc2VydF9lcXVhbHM6IGVsZW1lbnQuc2VsZWN0
aW9uU3RhcnQgc2hvdWxkIGJlIHZhbHVlLmxlbmd0aCBleHBlY3RlZCA1IGJ1dCBnb3QgMAotRkFJ
TCBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMxKSwgTWF0aC5wb3coMiwzMikg
LSAxKSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSB2YWx1
ZS5sZW5ndGggZXhwZWN0ZWQgNSBidXQgZ290IDAKK1BBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFu
Z2UoTWF0aC5wb3coMiwzMikgLSAyLCBNYXRoLnBvdygyLDMyKSAtIDEpCitQQVNTIGlucHV0IHNl
dFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzEpLCBNYXRoLnBvdygyLDMyKSAtIDEpCiBUSU1F
T1VUIGlucHV0IHNldFNlbGVjdGlvblJhbmdlIGZpcmVzIGEgc2VsZWN0IGV2ZW50IFRlc3QgdGlt
ZWQgb3V0CiBQQVNTIHRlc3Qgb2YgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UKIFBBU1MgdGV4
dGFyZWEgdHlwZW9mKGlucHV0LnNldFNlbGVjdGlvblJhbmdlKScKQEAgLTQ4LDYgKzQ4LDYgQEAg
UEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZSh7fSwxKQogUEFTUyB0ZXh0YXJlYSBzZXRT
ZWxlY3Rpb25SYW5nZShOYU4sMSkKIFBBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UobnVs
bCwxKQogUEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZSh1bmRlZmluZWQsMSkKLUZBSUwg
dGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0aC5wb3coMiwzMikgLSAyLCBNYXRoLnBvdygy
LDMyKSAtIDEpIGFzc2VydF9lcXVhbHM6IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJl
IHZhbHVlLmxlbmd0aCBleHBlY3RlZCA1IGJ1dCBnb3QgMAotRkFJTCB0ZXh0YXJlYSBzZXRTZWxl
Y3Rpb25SYW5nZShNYXRoLnBvdygyLDMxKSwgTWF0aC5wb3coMiwzMikgLSAxKSBhc3NlcnRfZXF1
YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSB2YWx1ZS5sZW5ndGggZXhwZWN0
ZWQgNSBidXQgZ290IDAKK1BBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0aC5wb3co
MiwzMikgLSAyLCBNYXRoLnBvdygyLDMyKSAtIDEpCitQQVNTIHRleHRhcmVhIHNldFNlbGVjdGlv
blJhbmdlKE1hdGgucG93KDIsMzEpLCBNYXRoLnBvdygyLDMyKSAtIDEpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454955</attachid>
            <date>2022-03-17 04:20:29 -0700</date>
            <delta_ts>2022-03-17 04:30:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237951-20220317112028.patch</filename>
            <type>text/plain</type>
            <size>29514</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNiNGQ3ZmRjMWE1MDRm
ODM1YWQzMmM2ZGExYzYxNmY1N2IxNTBlOC4uZWY4MDJlYzRjMzFlZjZlNDliM2RhZjNhMzdiNzlk
ODk1ZDRlOWU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAzLTE3ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gQ2hhbmdlIGZv
cm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBjaGFuZ2UgdGhlIHR5
cGUgb2YgYXR0cmlidXRlICJzZWxlY3Rpb25TdGFydCIgYW5kICJzZWxlY3Rpb25FbmQiCisgICAg
ICAgIGZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLiBBbHNvICJzdGFydCIgYW5kICJlbmQiIHBh
cmFtZXRlcnMgaW4gZnVuY3Rpb24KKyAgICAgICAgc2VsZWN0aW9uUmFuZ2UoKSBuZWVkIHRvIGJl
IGNoYW5nZWQgY29ycmVzcG9uZGluZ2x5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
aXMgaW4gbGluZSB3aXRoIENocm9taXVtIENMIGF0CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS9jaHJvbWl1bS9jaHJvbWl1bS9jb21taXQvYjZmZjZkYjFjNTY4M2I1ZTU2NGE3MmIwOTQxYWQ1
MDRiNDEwZDFhZgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldERlZmF1bHRTZWxlY3Rpb25BZnRlckZv
Y3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0U2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2Vs
ZWN0aW9uU3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNhY2hlU2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpoYXNDYWNoZWRTZWxlY3Rpb24gY29u
c3QpOgorCiAyMDIyLTAzLTE3ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4IGFmdGVyIHIyOTEz
OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDcwMGQ1ZTUz
MTRiMWY5OTc0YTAzMjFmMjVlMTJkNTFkYTI4YmRhMGUuLmU4NDcwMGYxNTA1MTBmNGYwY2Y3NjI3
Y2IzZDM2ZGM3MmM2MmYyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcApAQCAtNDkyLDE0ICs0OTIsMTQgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVG
b2N1c0FwcGVhcmFuY2UoU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW8KIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGlvbkFmdGVyRm9jdXMoU2VsZWN0aW9u
UmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW9uTW9kZSwgU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZl
YWxNb2RlKQogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKLSAgICBpbnQgc3RhcnQgPSAw
OworICAgIHVuc2lnbmVkIHN0YXJ0ID0gMDsKICAgICBhdXRvIGRpcmVjdGlvbiA9IFNlbGVjdGlv
bkhhc05vRGlyZWN0aW9uOwogICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwog
ICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+ZWRpdG9yKCkuYmVoYXZpb3IoKS5zaG91bGRNb3ZlU2Vs
ZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSkgewotICAgICAgICBzdGFydCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgICAgIHN0YXJ0ID0gc3RkOjpudW1l
cmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogICAgICAgICBkaXJlY3Rpb24gPSBTZWxlY3Rp
b25IYXNGb3J3YXJkRGlyZWN0aW9uOwogICAgIH0KLSAgICBpbnQgZW5kID0gcmVzdG9yYXRpb25N
b2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0U3RhcnQgPyBzdGFy
dCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgdW5zaWduZWQgZW5kID0g
cmVzdG9yYXRpb25Nb2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0
U3RhcnQgPyBzdGFydCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKICAg
ICBzZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kLCBkaXJlY3Rpb24sIHJldmVhbE1vZGUsIEVs
ZW1lbnQ6OmRlZmF1bHRGb2N1c1RleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIH0KIApAQCAtMjA2
OSw3ICsyMDY5LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVPbkZv
Y3VzQ2hhbmdlSWZOZWVkZWQoKQogICAgICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50
ZXJuYWwoKTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVj
dGlvblN0YXJ0Rm9yQmluZGluZ3MoKSBjb25zdAorc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gSFRN
TElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAg
aWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRUeXBlLT5zdXBwb3J0c1NlbGVjdGlv
bkFQSSgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtMjA3Nyw3ICsyMDc3LDcg
QEAgc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0Rm9y
QmluZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25TdGFydCgpOwogfQogCi1FeGNl
cHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydEZvckJpbmRp
bmdzKHN0ZDo6b3B0aW9uYWw8aW50PiBzdGFydCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1
dEVsZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4gc3RhcnQpCiB7CiAgICAgaWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRU
eXBlLT5zdXBwb3J0c1NlbGVjdGlvbkFQSSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJUaGUgaW5wdXQgZWxlbWVudCdzIHR5cGUgKCciICsgbV9pbnB1
dFR5cGUtPmZvcm1Db250cm9sVHlwZSgpICsgIicpIGRvZXMgbm90IHN1cHBvcnQgc2VsZWN0aW9u
LiIgfTsKQEAgLTIwODYsNyArMjA4Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDxpCiAgICAg
cmV0dXJuIHsgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IEhU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKIHsKICAgICBp
ZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRzU2VsZWN0aW9u
QVBJKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC0yMDk0LDcgKzIwOTQsNyBA
QCBzdGQ6Om9wdGlvbmFsPGludD4gSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kRm9yQmlu
ZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25FbmQoKTsKIH0KIAotRXhjZXB0aW9u
T3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kRm9yQmluZGluZ3Moc3Rk
OjpvcHRpb25hbDxpbnQ+IGVuZCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGVuZCkK
IHsKICAgICBpZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRz
U2VsZWN0aW9uQVBJKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIlRoZSBpbnB1dCBlbGVtZW50J3MgdHlwZSAoJyIgKyBtX2lucHV0VHlwZS0+Zm9ybUNv
bnRyb2xUeXBlKCkgKyAiJykgZG9lcyBub3Qgc3VwcG9ydCBzZWxlY3Rpb24uIiB9OwpAQCAtMjEy
MCw3ICsyMTIwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2Vs
ZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoY29uc3QgU3RyaW4KICAgICByZXR1cm4geyB9Owog
fQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5n
ZUZvckJpbmRpbmdzKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24p
CitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZv
ckJpbmRpbmdzKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IFN0cmluZyYgZGly
ZWN0aW9uKQogewogICAgIGlmICghY2FuSGF2ZVNlbGVjdGlvbigpIHx8ICFtX2lucHV0VHlwZS0+
c3VwcG9ydHNTZWxlY3Rpb25BUEkoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiVGhlIGlucHV0IGVsZW1lbnQncyB0eXBlICgnIiArIG1faW5wdXRUeXBl
LT5mb3JtQ29udHJvbFR5cGUoKSArICInKSBkb2VzIG5vdCBzdXBwb3J0IHNlbGVjdGlvbi4iIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDg1MDRmYjYyNjk2Yzdm
MDFlMTg5YjJkNzMxOWY3ODAwYzU5Yzg1NzcuLjM2NWUyNWUzYmUwNzVmYzA5MTU4NjJiNWQ0Mjgx
N2RjZWU1YjY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0z
NDQsMTYgKzM0NCwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRUcnVuY2F0ZVRleHQoY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVTdHlsZU9uRm9jdXND
aGFuZ2VJZk5lZWRlZCgpOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MoKSBjb25zdDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25T
dGFydEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8aW50Pik7CisgICAgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gc2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4pOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvbkVuZEZvckJpbmRpbmdz
KCkgY29uc3Q7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uRW5kRm9yQmluZGlu
Z3Moc3RkOjpvcHRpb25hbDxpbnQ+KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzZWxl
Y3Rpb25FbmRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+KTsKIAogICAgIEV4
Y2VwdGlvbk9yPFN0cmluZz4gc2VsZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoKSBjb25zdDsK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25EaXJlY3Rpb25Gb3JCaW5kaW5ncyhj
b25zdCBTdHJpbmcmKTsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVjdGlvblJhbmdl
Rm9yQmluZGluZ3MoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uUmFuZ2VGb3JCaW5kaW5ncyh1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7CiAKICAg
ICBTdHJpbmcgcmVzdWx0Rm9yRGlhbG9nU3VibWl0KCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDMzZWI1NzFjZWQ2NmI0OWFhYjhi
MzZhZDQzZmI2ZjE3MWFhZWVlYjUuLjg2NWUzNzlmNGE3YzUwZDRmZTc0YjUxNGFkYmUxM2VjNDNl
NDhjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNzcs
MTQgKzc3LDE0IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKIAog
ICAgIHVuZGVmaW5lZCBzZWxlY3QoKTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zZWxlY3Rpb25TdGFy
dEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgbG9uZz8gc2VsZWN0aW9uU3RhcnQ7Ci0gICAgW0ltcGxl
bWVudGVkQXM9c2VsZWN0aW9uRW5kRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBsb25nPyBzZWxlY3Rp
b25FbmQ7CisgICAgW0ltcGxlbWVudGVkQXM9c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5nc10gYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmc/IHNlbGVjdGlvblN0YXJ0OworICAgIFtJbXBsZW1lbnRlZEFz
PXNlbGVjdGlvbkVuZEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZz8gc2VsZWN0
aW9uRW5kOwogICAgIFtJbXBsZW1lbnRlZEFzPXNlbGVjdGlvbkRpcmVjdGlvbkZvckJpbmRpbmdz
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmlu
ZWQgc2V0UmFuZ2VUZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNl
dFJhbmdlVGV4dChET01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVu
c2lnbmVkIGxvbmcgZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAg
ICBbSW1wbGVtZW50ZWRBcz1zZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRpbmdzXSB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2UobG9uZyBzdGFydCwgbG9uZyBlbmQsIG9wdGlvbmFsIERPTVN0cmlu
ZyBkaXJlY3Rpb24pOworICAgIFtJbXBsZW1lbnRlZEFzPXNldFNlbGVjdGlvblJhbmdlRm9yQmlu
ZGluZ3NdIHVuZGVmaW5lZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1
bnNpZ25lZCBsb25nIGVuZCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CiAKICAgICBb
Q0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWdu
OwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgdXNlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwK
aW5kZXggZjI4N2Y0NzIxOTQyODhkOWJlYjI4MjIyODVkZWRlMWZjZGIwNjNiYy4uYzQ2MGVkNWYw
NDJiZWQ2MzQ4YmQ4N2Q1YjU5YWFmMDM2MWM5MTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC01MCwxNCArNTAsMTQgQEAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogCiAgICAgdW5kZWZpbmVkIHNlbGVjdCgpOwot
ICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlvblN0YXJ0OwotICAgIGF0dHJpYnV0ZSBsb25nIHNl
bGVjdGlvbkVuZDsKKyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25TdGFydDsK
KyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25FbmQ7CiAgICAgYXR0cmlidXRl
IERPTVN0cmluZyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmluZWQgc2V0UmFuZ2VU
ZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNldFJhbmdlVGV4dChE
T01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcg
ZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAgICB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2Uob3B0aW9uYWwgbG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIGxvbmcg
ZW5kID0gMCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CisgICAgdW5kZWZpbmVkIHNl
dFNlbGVjdGlvblJhbmdlKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgc3RhcnQgPSAwLCBvcHRpb25h
bCB1bnNpZ25lZCBsb25nIGVuZCA9IDAsIG9wdGlvbmFsIERPTVN0cmluZyBkaXJlY3Rpb24pOwog
CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIERPTVN0cmluZyBhdXRvY29t
cGxldGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCAzZGM5OGQ2MDMwODBkOGE0ZmMzNjBmMjU4NGMwMmM3NjMyZGQy
MGFkLi5kMmM5OTgzODNjZGQ3ZjRiMjlhNzA4YjYyYzVmMmI5ZDI3MWY4ZDIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
ODcsOCArODcsOCBAQCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTgogICAgICwgbV9sYXN0Q2hhbmdl
V2FzVXNlckVkaXQoZmFsc2UpCiAgICAgLCBtX2lzUGxhY2Vob2xkZXJWaXNpYmxlKGZhbHNlKQog
ICAgICwgbV9jYW5TaG93UGxhY2Vob2xkZXIodHJ1ZSkKLSAgICAsIG1fY2FjaGVkU2VsZWN0aW9u
U3RhcnQoLTEpCi0gICAgLCBtX2NhY2hlZFNlbGVjdGlvbkVuZCgtMSkKKyAgICAsIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQoMCkKKyAgICAsIG1fY2FjaGVkU2VsZWN0aW9uRW5kKDApCiB7CiB9CiAK
QEAgLTE5NCwxMiArMTk0LDEyIEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dENhblNob3dQbGFjZWhvbGRlcihib29sIGNhblNob3dQbGFjZWhvbGRlcikKICAgICB1cGRhdGVQ
bGFjZWhvbGRlclZpc2liaWxpdHkoKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0KQordm9pZCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQodW5zaWduZWQgc3RhcnQpCiB7CiAgICAgc2V0
U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIHN0ZDo6bWF4KHN0YXJ0LCBzZWxlY3Rpb25FbmQoKSksIHNl
bGVjdGlvbkRpcmVjdGlvbigpKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0U2VsZWN0aW9uRW5kKGludCBlbmQpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRTZWxlY3Rpb25FbmQodW5zaWduZWQgZW5kKQogewogICAgIHNldFNlbGVjdGlvblJh
bmdlKHN0ZDo6bWluKGVuZCwgc2VsZWN0aW9uU3RhcnQoKSksIGVuZCwgc2VsZWN0aW9uRGlyZWN0
aW9uKCkpOwogfQpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvbkRpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvbikKIAog
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0KFNlbGVjdGlvblJldmVhbE1v
ZGUgcmV2ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsK
LSAgICBzZXRTZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgp
LCBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgcmV2ZWFsTW9kZSwgaW50ZW50KTsKKyAgICBzZXRT
ZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIFNl
bGVjdGlvbkhhc05vRGlyZWN0aW9uLCByZXZlYWxNb2RlLCBpbnRlbnQpOwogfQogCiBTdHJpbmcg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CkBAIC0yOTAs
NyArMjkwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2UKICAgICByZXR1cm4geyB9OwogfQog
Ci12b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZShpbnQg
c3RhcnQsIGludCBlbmQsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50KQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29u
c3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiBpbnRlbnQpCiB7CiAgICAgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9
IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uOwogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImZv
cndhcmQiKQpAQCAtMzAxLDE0ICszMDEsMTUgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHIKICAg
ICByZXR1cm4gc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCwgZGlyZWN0aW9uLCBTZWxlY3Rp
b25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgaW50ZW50KTsKIH0KIAotdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBU
ZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxNb2Rl
IHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQpCit2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQpCiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICAvLyBDbGFtcHMgdG8gdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3RoLgotICAgIGVu
ZCA9IHN0ZDo6Y2xhbXAoZW5kLCAwLCBjbGFtcFRvPGludD4oaW5uZXJUZXh0VmFsdWUoKS5sZW5n
dGgoKSkpOwotICAgIHN0YXJ0ID0gc3RkOjpjbGFtcChzdGFydCwgMCwgZW5kKTsKKyAgICB1bnNp
Z25lZCBpbm5lclRleHRWYWx1ZUxlbmd0aCA9IGlubmVyVGV4dFZhbHVlKCkubGVuZ3RoKCk7Cisg
ICAgZW5kID0gc3RkOjptaW4oZW5kLCBpbm5lclRleHRWYWx1ZUxlbmd0aCk7CisgICAgc3RhcnQg
PSBzdGQ6Om1pbihzdGFydCwgZW5kKTsKIAogICAgIGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0
RWxlbWVudENyZWF0aW5nU2hhZG93U3VidHJlZUlmTmVlZGVkKCk7CiAgICAgYm9vbCBoYXNGb2N1
cyA9IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlzOwpAQCAtMzgwLDcgKzM4MSw3
IEBAIFZpc2libGVQb3NpdGlvbiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmlzaWJsZVBv
c2l0aW9uRm9ySW5kZXgoaW50IGluZGV4KSBjCiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1p
bnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KCkgY29uc3QKK3Vu
c2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb25TdGFydCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTM5MCw3
ICszOTEsNyBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
KCkgY29uc3QKICAgICByZXR1cm4gY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCk7CiB9CiAKLWludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
K3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uU3Rh
cnQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKICAgICBSZWZQdHI8RnJh
bWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwpAQCAtNDAwLDcgKzQwMSw3IEBAIGludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
ICAgICByZXR1cm4gaW5kZXhGb3JQb3NpdGlvbihmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCkuc3RhcnQoKSk7CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0
aW9uRW5kKCkgY29uc3QKK3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxl
Y3Rpb25FbmQoKSBjb25zdAogewogICAgIGlmICghaXNUZXh0RmllbGQoKSkKICAgICAgICAgcmV0
dXJuIDA7CkBAIC00MDksNyArNDEwLDcgQEAgaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3Rpb25FbmQoKSBjb25zdAogICAgIHJldHVybiBjb21wdXRlU2VsZWN0aW9uRW5kKCk7
CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVu
ZCgpIGNvbnN0Cit1bnNpZ25lZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNl
bGVjdGlvbkVuZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVGV4dEZpZWxkKCkpOwogICAgIFJl
ZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNTNiZmQ3MzlhOGY0
NmM0NWRlN2ZjODdhNzNiMTY0NTFkOWNmMjk4Ny4uYWE2MzI4OWQxZTNhOTdjYWY2Y2Y0MDM1MzY5
ODQ4MjRhMDEwOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuaApAQCAtNzAsMTcgKzcwLDE3IEBAIHB1YmxpYzoKIAogICAgIGludCBp
bmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgo
aW50IGluZGV4KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uU3RhcnQo
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgc2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBzZWxlY3Rpb25FbmQoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBjb25zdCBBdG9tU3RyaW5nJiBzZWxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25FbmQoaW50KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNlbGVjdGlvblN0YXJ0KHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNlbGVjdGlvbkVuZCh1bnNpZ25lZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb25EaXJlY3Rpb24oY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZWxlY3QoU2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90
UmV2ZWFsLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50KTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcm
IHNlbGVjdGlvbk1vZGUpOwotICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBp
bnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVj
dGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxN
b2RlID0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworICAgIHZvaWQgc2V0
U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5n
JiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFu
Z2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0
aW9uID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgPSBTZWxl
Y3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNp
bXBsZVJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkg
Y29uc3Q7CkBAIC0xMjIsMTAgKzEyMiwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQgPSBzdGFydDsKICAgICAgICAgbV9jYWNoZWRTZWxlY3Rpb25FbmQgPSBl
bmQ7CiAgICAgICAgIG1fY2FjaGVkU2VsZWN0aW9uRGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAg
ICAgICBtX2hhc0NhY2hlZFNlbGVjdGlvbiA9IHRydWU7CiAgICAgfQogCiAgICAgdm9pZCByZXN0
b3JlQ2FjaGVkU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwotICAgIGJvb2wgaGFz
Q2FjaGVkU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25TdGFydCA+
PSAwOyB9CisgICAgYm9vbCBoYXNDYWNoZWRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2hh
c0NhY2hlZFNlbGVjdGlvbjsgfQogCiAgICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2Vk
KCkgPSAwOwogCkBAIC0xNDMsOCArMTQ0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
aW50IGNvbXB1dGVTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwotICAgIGludCBjb21wdXRlU2VsZWN0
aW9uRW5kKCkgY29uc3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29u
c3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0OwogICAgIFRleHRG
aWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBjb21wdXRlU2VsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3Q7
CiAKICAgICB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1
c2VkRWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJikgZmluYWw7CkBAIC0xNzMsMTEgKzE3NCwx
MyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fdGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFu
Z2VFdmVudDsKIAotICAgIGludCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0OwotICAgIGludCBtX2Nh
Y2hlZFNlbGVjdGlvbkVuZDsKKyAgICB1bnNpZ25lZCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0Owor
ICAgIHVuc2lnbmVkIG1fY2FjaGVkU2VsZWN0aW9uRW5kOwogCiAgICAgaW50IG1fbWF4TGVuZ3Ro
IHsgLTEgfTsKICAgICBpbnQgbV9taW5MZW5ndGggeyAtMSB9OworCisgICAgYm9vbCBtX2hhc0Nh
Y2hlZFNlbGVjdGlvbiB7IGZhbHNlIH07CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudCogZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGNvbnN0IFBvc2l0aW9u
Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMDIyNDUzNDRlZGFiNjI4ZDQ2MmEwNTQ0NjczYTg4NWRhMjJlYTFlNi4uYTBh
YzA4YmUxZmZkOTQxMDBkOTE0ZDNiZTIyZDg1OWNjNGZjOWY3OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W3NlbGVjdGlvbl0gQ2hhbmdlIGZvcm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVk
IGxvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Nzk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSB0ZXN0IGFjY29yZGluZ2x5LiBUaGlzIGlzIGlubGluZSB3aXRoIENocm9taXVtLiAKKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS5odG1s
OgorCiAyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1NlbGVjdGlvbl0gRml4ZXMgc2VsZWN0aW9uIHJhbmdlIHNldHRpbmdzIGZvciBURVhUQVJFQQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZjdmNzU5NzhiYjRlZjc2ODY1ZmM3ODUy
OTg1ZGIwNTE4Nzg2MjhmMi4uNTg3MjE2ODM3N2Q4ZWEzOWFiNWQ1YzBkYjQxNjY4NjA2MDFkZjM2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjIt
MDMtMTYgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbc2VsZWN0aW9u
XSBDaGFuZ2UgZm9ybSdzIHNlbGVjdGlvbiBhdHRyaWJ1dGUgdG8gdW5zaWduZWQgbG9uZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3Qg
ZXhwZWN0YXRpb25zIGFzIG1vcmUgc3ViLXRlc3RzIGFyZSBub3cgcGFzc2luZy4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0
aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQt
ZW5kLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxl
Y3Rpb25SYW5nZS1leHBlY3RlZC50eHQ6CisKIDIwMjItMDMtMTcgIFppcmFuIFN1biAgPHpzdW5A
aWdhbGlhLmNvbT4KIAogICAgICAgICBbU2VsZWN0aW9uXSBGaXhlcyBzZWxlY3Rpb24gcmFuZ2Ug
c2V0dGluZ3MgZm9yIFRFWFRBUkVBCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwKaW5kZXggZWVlZTcwNTU0MzA5YmNlYmE2
YzAxYTFjOTllOTZmOWNhMmU2YjdiMi4uN2JmZGExZWE0YmU4YzM0NWI2Nzk1MWVlYjE5YWY4OWEw
ZWYxYzYyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJh
bmNlLXNlbGVjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXBw
ZWFyYW5jZS1zZWxlY3Rpb24uaHRtbApAQCAtMTEsOCArMTEsOCBAQCBmdW5jdGlvbiB0ZXN0ICgp
IHsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoNCwgMTAsIDMsIDMsIDMsIHRlc3RGaWVsZCwgcmVz
dWx0cyk7CiAgICAgdGVzdFNlbGVjdGlvbkVuZCg1LCAyLCAyLCAyLCB0ZXN0RmllbGQsIHJlc3Vs
dHMpOwogICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg2LCA1LCA0LCA0LCA0LCB0ZXN0RmllbGQsIHJl
c3VsdHMpOwotICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg3LCAtNSwgLTQsIDAsIDAsIHRlc3RGaWVs
ZCwgcmVzdWx0cyk7Ci0gICAgdGVzdFNlbGVjdGlvblJhbmdlKDgsIC01LCA4MCwgMCwgMjAsIHRl
c3RGaWVsZCwgcmVzdWx0cyk7CisgICAgdGVzdFNlbGVjdGlvblJhbmdlKDcsIC01LCAtNCwgMjAs
IDIwLCB0ZXN0RmllbGQsIHJlc3VsdHMpOworICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg4LCAtNSwg
ODAsIDIwLCAyMCwgdGVzdEZpZWxkLCByZXN1bHRzKTsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2Uo
OSwgMywgMTIsIDMsIDEyLCB0ZXN0RmllbGQsIHJlc3VsdHMpOwogCiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApp
bmRleCBlOTZkMjJmYjcyYzUyYWRhY2YzNmRmYzM2NjdmYjY3ZDFlMGFjMDFjLi45NjNkZmRhNWM1
ZjNhNDJiZTI2ZWEzMGMzZWM1NTQ3NmFkZTVlMzI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTYsNDMg
KzYsNDMgQEAgSWYgdGhpcyB0ZXN0IHBhc3NlZCB5b3UnbGwgc2VlIGEgYnVuY2ggb2YgY29ycmVj
dCBzZWxlY3Rpb24gcmFuZ2VzIGJlbG93LiBDaGVjawogPT09dGV4dGFyZWE9PT0KIHNldFNlbGVj
dGlvblJhbmdlKCk6CiAzLCA3Ci0wLCA1Cis1LCA1CiA0MiwgNDgKIDIsIDIKIAogc2VsZWN0aW9u
U3RhcnQ6CiAzLCAzCiA3LCA3Ci0wLCA3Cis0OCwgNDgKIDQ4LCA0OAogMywgNDgKIAogc2VsZWN0
aW9uRW5kOgogMywgNQogMiwgMgotMCwgMAotMCwgNDgKKzIsIDQ4CisyLCA0OAogNywgNwogCiA9
PT1pbnB1dD09PQogc2V0U2VsZWN0aW9uUmFuZ2UoKToKIDMsIDcKLTAsIDUKKzUsIDUKIDQyLCA0
OAogMiwgMgogCiBzZWxlY3Rpb25TdGFydDoKIDMsIDMKIDcsIDcKLTAsIDcKKzQ4LCA0OAogNDgs
IDQ4CiAzLCA0OAogCiBzZWxlY3Rpb25FbmQ6CiAzLCA1CiAyLCAyCi0wLCAwCi0wLCA0OAorMiwg
NDgKKzIsIDQ4CiA3LCA3CiAKID09PWJ1dHRvbj09PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3Rl
ZC50eHQKaW5kZXggMzhmYTAxOGJhMjc0NjBmYTk5N2ZkYmE5N2E5YTE2NjllM2VjY2I3NC4uZTUy
MTcxZGU5ZDA2ZWEyZTM4YTdlMzA0NjE4NWI4YTIyN2Q3ZGE1NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHktZXhwZWN0ZWQudHh0CkBAIC0xOCw3ICsxOCw3IEBAIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25T
dGFydCBpcyA1CiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDUKIFBBU1MgZWxlbWVudC5z
ZWxlY3Rpb25TdGFydCBpcyAwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDAKLVBBU1Mg
ZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQg
aXMgMTAKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMTAKIFBBU1MgZWxlbWVudC5zZWxl
Y3Rpb25TdGFydCBpcyAwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDEwCkBAIC0zMiw3
ICszMiw3IEBAIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyA1CiBQQVNTIGVsZW1lbnQu
c2VsZWN0aW9uRW5kIGlzIDUKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCiBQQVNT
IGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDAKLVBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBp
cyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMTAKIFBBU1MgZWxlbWVudC5zZWxl
Y3Rpb25FbmQgaXMgMTAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHkuaHRtbAppbmRleCAyOTI1MDUxMWY1YzFmYzE2YWIzMGQ5YjcxZmE1NTFhYzczMDUwMGZiLi4y
YzI2YWNmMzgwNzYwZjlhOGJlNzM5YTBjYjAyMDI4ODc5YzhjNWVlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRt
bApAQCAtMTMsMTMgKzEzLDE5IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQog
ZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uRW5kIG9u
IHJlYWQtb25seSBJTlBVVCBhbmQgVEVYVEFSRUEuIDxici8+IDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ0NCI+YnVnIDI1NDQ0PC9hPjogU2VsZWN0
aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCBwcm9wZXJ0aWVzIHJldHVybiB3cm9uZyB2YWx1ZXMgd2hl
biB0aGUgc2VsZWN0aW9uIGlzIGluIGEgZm9ybSBpbnB1dC4nKTsNCiANCisvLyBTZWUgaHR0cHM6
Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jYWJzdHJhY3Qtb3BkZWYtY29udmVydHRvaW50DQor
ZnVuY3Rpb24gdG9VSW50MzIoeCkgew0KKyAgICB2YXIgeSA9IE1hdGgucG93KDIsIDMyKTsNCisg
ICAgcmV0dXJuIHggLSBNYXRoLmZsb29yKHggLyB5KSAqIHk7DQorfQ0KKw0KIGZ1bmN0aW9uIHN0
YXJ0VGVzdChlbGVtZW50LCBzdGFydCwgZW5kKSB7DQogICAgIGVsZW1lbnQuc2V0U2VsZWN0aW9u
UmFuZ2Uoc3RhcnQsIGVuZCk7DQogDQotICAgIHN0YXJ0ID0gc3RhcnQgPCAwID8gMCA6IHN0YXJ0
Ow0KKyAgICBzdGFydCA9IHRvVUludDMyKHN0YXJ0KTsNCiAgICAgZW5kID0gZW5kID4gMTAgPyAx
MCA6IGVuZDsNCiAgICAgc3RhcnQgPSBzdGFydCA+IGVuZCA/IGVuZCA6IHN0YXJ0Ow0KLQorDQog
ICAgIGlmIChlbGVtZW50LnNlbGVjdGlvblN0YXJ0ICE9IHN0YXJ0KQ0KICAgICAgICAgdGVzdEZh
aWxlZCgnZWxlbWVudC5zZWxlY3Rpb25TdGFydCcgKyAnIHNob3VsZCBiZSAnICsgc3RhcnQgKyAn
IGJ1dCBpdCBpcyAnICsgZWxlbWVudC5zZWxlY3Rpb25TdGFydCk7DQogICAgIGVsc2UNCkBAIC00
NCw0ICs1MCw0IEBAIHRlc3RIYW5kbGVyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcmVhJykp
OwogIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4NCiAgPC9ib2R5Pg0KIDwvaHRtbD4NCi0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZp
ZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNl
bGVjdGlvbi9zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CmluZGV4IGEzZWZkNzA2MTVjZGJjZGRmMzI4
NmI2YzFmNGRkNmJkYjNmNjdlZmYuLmJlMzhiZjM4NGVjNTA4MzQwMjcxNzRmZWI1NzY1NjM5NTdi
YjBjNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMTMsNCArMTMsOCBAQCBGQUlMIHRlc3QgU2VsZWN0aW9uRW5kIG9mZnNl
dCBmb3IgdGV4dGFyZWEgdGhhdCBpcyBhcHBlbmRlZCBhc3NlcnRfZXF1YWxzOiBTZWxlYwogRkFJ
TCB0ZXN0IFNlbGVjdGlvbkVuZCBvZmZzZXQgZm9yIHRleHRhcmVhIHRoYXQgaXMgIG5vdCBhcHBl
bmRlZCBhc3NlcnRfZXF1YWxzOiBTZWxlY3Rpb25FbmQgb2Zmc2V0IHdpdGhvdXQgc2VsZWN0aW9u
IGluIHRleHRhcmVhLW5vdC1hcHBlbmRlZCBleHBlY3RlZCAxMCBidXQgZ290IDAKIFBBU1MgdGVz
dCBTZWxlY3Rpb25EaXJlY3Rpb24gZm9yIGlucHV0CiBQQVNTIHRlc3QgU2VsZWN0aW9uRGlyZWN0
aW9uIGZvciB0ZXh0YXJlYQorUEFTUyB0ZXN0IHNjcm9sbExlZnQgZm9yIGlucHV0CitQQVNTIHRl
c3Qgc2Nyb2xsTGVmdCBwcmVzZXJ2YXRpb24gZm9yIGlucHV0CitQQVNTIHRlc3QgY29udGFpbmVy
LnNjcm9sbFRvcCBmb3IgaW5wdXQKK1BBU1MgdGVzdCBjb250YWluZXIuc2Nyb2xsVG9wIGZvciB0
ZXh0YXJlYQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rp
b24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3Nl
bGVjdGlvbi1zdGFydC1lbmQtZXhwZWN0ZWQudHh0CmluZGV4IGYxZmI1YTAxYjg3MTZhNDAyMzUx
YjFlNDRmNTBlYjIxOTUzZTVlNjguLjQwZjZkYjY1OTNiNjBiMDBmODM1NWE0ZGVjZDJlNjMwMGNi
OTk2YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1z
dGFydC1lbmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3Nl
bGVjdGlvbi1zdGFydC1lbmQtZXhwZWN0ZWQudHh0CkBAIC00MCw4ICs0MCw4IEBAIE5PVFJVTiBv
bnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlvbkVuZCBpcyBjaGFuZ2VkIG9uIHRleHRh
cmVhLW5vdC1hcHBlbmRlCiBOT1RSVU4gb25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rp
b25FbmQgaXMgY2hhbmdlZCBvbgogUEFTUyBTZXR0aW5nIHNlbGVjdGlvblN0YXJ0IHRvIGEgdmFs
dWUgbGFyZ2VyIHRoYW4gc2VsZWN0aW9uRW5kIHNob3VsZCBpbmNyZWFzZSBzZWxlY3Rpb25FbmQK
IFBBU1MgU2V0dGluZyBzZWxlY3Rpb25FbmQgdG8gYSB2YWx1ZSBzbWFsbGVyIHRoYW4gc2VsZWN0
aW9uU3RhcnQgc2hvdWxkIGRlY3JlYXNlIHNlbGVjdGlvblN0YXJ0Ci1GQUlMIHNlbGVjdGlvblN0
YXJ0IGVkZ2UtY2FzZSB2YWx1ZXMgYXNzZXJ0X2VxdWFsczogc2VsZWN0aW9uU3RhcnQgc2V0dGVy
IG9uIGlucHV0LWFwcGVuZGVkIHNob3VsZCBjb252ZXJ0IC0xIHRvIDJeMzItMSBleHBlY3RlZCAx
MCBidXQgZ290IDAKLUZBSUwgc2VsZWN0aW9uRW5kIGVkZ2UtY2FzZSB2YWx1ZXMgYXNzZXJ0X2Vx
dWFsczogc2VsZWN0aW9uRW5kIHNldHRlciBvbiBpbnB1dC1hcHBlbmRlZCBzaG91bGQgY29udmVy
dCAtMSB0byAyXjMyLTEgZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCitQQVNTIHNlbGVjdGlvblN0YXJ0
IGVkZ2UtY2FzZSB2YWx1ZXMKK1BBU1Mgc2VsZWN0aW9uRW5kIGVkZ2UtY2FzZSB2YWx1ZXMKIFBB
U1Mgc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJlIGNsYW1wZWQgYnkgdGhlIGN1cnJlbnQgdmFsdWUg
bGVuZ3RoCiBQQVNTIHNlbGVjdGlvbkVuZCBzaG91bGQgYmUgY2xhbXBlZCBieSB0aGUgY3VycmVu
dCB2YWx1ZSBsZW5ndGgKIFBBU1Mgc2V0U2VsZWN0aW9uUmFuZ2Ugc2hvdWxkIGJlIGNsYW1wZWQg
YnkgdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3RoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVs
ZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0U2VsZWN0aW9uUmFuZ2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4dGZpZWxkc2VsZWN0aW9uLXNldFNl
bGVjdGlvblJhbmdlLWV4cGVjdGVkLnR4dAppbmRleCAyYjc2MmQwNTQ4ODdmMjkzMWE1ZDNhNGQy
NWIwMjZmY2NkNWY0MTI2Li5iMjI4ZGNiOTE2OTlmZGZhOWIwY2JhNDIxYzRiODZkYWZhYzg1MzE5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rp
b24tc2V0U2VsZWN0aW9uUmFuZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxk
c2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxlY3Rpb25SYW5nZS1leHBlY3RlZC50
eHQKQEAgLTE2LDggKzE2LDggQEAgUEFTUyBpbnB1dCBkaXJlY3Rpb24gb2Ygc2V0U2VsZWN0aW9u
UmFuZ2UoMCwxLCJub25lIikKIFBBU1MgaW5wdXQgZGlyZWN0aW9uIG9mIHNldFNlbGVjdGlvblJh
bmdlKDAsMSwiaG9nZSIpCiBQQVNTIGlucHV0IGRpcmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25SYW5n
ZSgwLDEsIkJBQ0tXQVJEIikKIFBBU1MgaW5wdXQgZGlyZWN0aW9uIG9mIHNldFNlbGVjdGlvblJh
bmdlKDAsMSkKLUZBSUwgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoMSwtMSkgYXNzZXJ0X2VxdWFs
czogZWxlbWVudC5zZWxlY3Rpb25TdGFydCBzaG91bGQgYmUgMSBleHBlY3RlZCAxIGJ1dCBnb3Qg
MAotRkFJTCBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgtMSwxKSBhc3NlcnRfZXF1YWxzOiBFQ01B
U2NyaXB0IGNvbnZlcnNpb24gdG8gdW5zaWduZWQgbG9uZyArIGlmIGVuZCBpcyBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gc3RhcnQgdGhlbiB0aGUgc3RhcnQgb2YgdGhlIHNlbGVjdGlvbiBhbmQgdGhl
IGVuZCBvZiB0aGUgc2VsZWN0aW9uIG11c3QgYm90aCBiZSBwbGFjZWQgaW1tZWRpYXRlbHkgYmVm
b3JlIHRoZSBjaGFyYWN0ZXIgd2l0aCBvZmZzZXQgZW5kIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQ
QVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKDEsLTEpCitQQVNTIGlucHV0IHNldFNlbGVjdGlv
blJhbmdlKC0xLDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKCJzdHJpbmciLDEpCiBQ
QVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKHRydWUsMSkKIFBBU1MgaW5wdXQgc2V0U2VsZWN0
aW9uUmFuZ2UoW10sMSkKQEAgLTI1LDggKzI1LDggQEAgUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25S
YW5nZSh7fSwxKQogUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShOYU4sMSkKIFBBU1MgaW5w
dXQgc2V0U2VsZWN0aW9uUmFuZ2UobnVsbCwxKQogUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5n
ZSh1bmRlZmluZWQsMSkKLUZBSUwgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0aC5wb3coMiwz
MikgLSAyLCBNYXRoLnBvdygyLDMyKSAtIDEpIGFzc2VydF9lcXVhbHM6IGVsZW1lbnQuc2VsZWN0
aW9uU3RhcnQgc2hvdWxkIGJlIHZhbHVlLmxlbmd0aCBleHBlY3RlZCA1IGJ1dCBnb3QgMAotRkFJ
TCBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMxKSwgTWF0aC5wb3coMiwzMikg
LSAxKSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSB2YWx1
ZS5sZW5ndGggZXhwZWN0ZWQgNSBidXQgZ290IDAKK1BBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFu
Z2UoTWF0aC5wb3coMiwzMikgLSAyLCBNYXRoLnBvdygyLDMyKSAtIDEpCitQQVNTIGlucHV0IHNl
dFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzEpLCBNYXRoLnBvdygyLDMyKSAtIDEpCiBUSU1F
T1VUIGlucHV0IHNldFNlbGVjdGlvblJhbmdlIGZpcmVzIGEgc2VsZWN0IGV2ZW50IFRlc3QgdGlt
ZWQgb3V0CiBQQVNTIHRlc3Qgb2YgdGV4dGFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UKIFBBU1MgdGV4
dGFyZWEgdHlwZW9mKGlucHV0LnNldFNlbGVjdGlvblJhbmdlKScKQEAgLTQ4LDYgKzQ4LDYgQEAg
UEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZSh7fSwxKQogUEFTUyB0ZXh0YXJlYSBzZXRT
ZWxlY3Rpb25SYW5nZShOYU4sMSkKIFBBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UobnVs
bCwxKQogUEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZSh1bmRlZmluZWQsMSkKLUZBSUwg
dGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0aC5wb3coMiwzMikgLSAyLCBNYXRoLnBvdygy
LDMyKSAtIDEpIGFzc2VydF9lcXVhbHM6IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJl
IHZhbHVlLmxlbmd0aCBleHBlY3RlZCA1IGJ1dCBnb3QgMAotRkFJTCB0ZXh0YXJlYSBzZXRTZWxl
Y3Rpb25SYW5nZShNYXRoLnBvdygyLDMxKSwgTWF0aC5wb3coMiwzMikgLSAxKSBhc3NlcnRfZXF1
YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSB2YWx1ZS5sZW5ndGggZXhwZWN0
ZWQgNSBidXQgZ290IDAKK1BBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0aC5wb3co
MiwzMikgLSAyLCBNYXRoLnBvdygyLDMyKSAtIDEpCitQQVNTIHRleHRhcmVhIHNldFNlbGVjdGlv
blJhbmdlKE1hdGgucG93KDIsMzEpLCBNYXRoLnBvdygyLDMyKSAtIDEpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454957</attachid>
            <date>2022-03-17 04:30:39 -0700</date>
            <delta_ts>2022-03-17 04:55:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237951-20220317113038.patch</filename>
            <type>text/plain</type>
            <size>29443</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNiNGQ3ZmRjMWE1MDRm
ODM1YWQzMmM2ZGExYzYxNmY1N2IxNTBlOC4uZWY4MDJlYzRjMzFlZjZlNDliM2RhZjNhMzdiNzlk
ODk1ZDRlOWU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAzLTE3ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gQ2hhbmdlIGZv
cm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBjaGFuZ2UgdGhlIHR5
cGUgb2YgYXR0cmlidXRlICJzZWxlY3Rpb25TdGFydCIgYW5kICJzZWxlY3Rpb25FbmQiCisgICAg
ICAgIGZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLiBBbHNvICJzdGFydCIgYW5kICJlbmQiIHBh
cmFtZXRlcnMgaW4gZnVuY3Rpb24KKyAgICAgICAgc2VsZWN0aW9uUmFuZ2UoKSBuZWVkIHRvIGJl
IGNoYW5nZWQgY29ycmVzcG9uZGluZ2x5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
aXMgaW4gbGluZSB3aXRoIENocm9taXVtIENMIGF0CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS9jaHJvbWl1bS9jaHJvbWl1bS9jb21taXQvYjZmZjZkYjFjNTY4M2I1ZTU2NGE3MmIwOTQxYWQ1
MDRiNDEwZDFhZgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldERlZmF1bHRTZWxlY3Rpb25BZnRlckZv
Y3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0U2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2Vs
ZWN0aW9uU3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNhY2hlU2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpoYXNDYWNoZWRTZWxlY3Rpb24gY29u
c3QpOgorCiAyMDIyLTAzLTE3ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4IGFmdGVyIHIyOTEz
OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDcwMGQ1ZTUz
MTRiMWY5OTc0YTAzMjFmMjVlMTJkNTFkYTI4YmRhMGUuLmU4NDcwMGYxNTA1MTBmNGYwY2Y3NjI3
Y2IzZDM2ZGM3MmM2MmYyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcApAQCAtNDkyLDE0ICs0OTIsMTQgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVG
b2N1c0FwcGVhcmFuY2UoU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW8KIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGlvbkFmdGVyRm9jdXMoU2VsZWN0aW9u
UmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW9uTW9kZSwgU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZl
YWxNb2RlKQogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKLSAgICBpbnQgc3RhcnQgPSAw
OworICAgIHVuc2lnbmVkIHN0YXJ0ID0gMDsKICAgICBhdXRvIGRpcmVjdGlvbiA9IFNlbGVjdGlv
bkhhc05vRGlyZWN0aW9uOwogICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwog
ICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+ZWRpdG9yKCkuYmVoYXZpb3IoKS5zaG91bGRNb3ZlU2Vs
ZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSkgewotICAgICAgICBzdGFydCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgICAgIHN0YXJ0ID0gc3RkOjpudW1l
cmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogICAgICAgICBkaXJlY3Rpb24gPSBTZWxlY3Rp
b25IYXNGb3J3YXJkRGlyZWN0aW9uOwogICAgIH0KLSAgICBpbnQgZW5kID0gcmVzdG9yYXRpb25N
b2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0U3RhcnQgPyBzdGFy
dCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgdW5zaWduZWQgZW5kID0g
cmVzdG9yYXRpb25Nb2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0
U3RhcnQgPyBzdGFydCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKICAg
ICBzZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kLCBkaXJlY3Rpb24sIHJldmVhbE1vZGUsIEVs
ZW1lbnQ6OmRlZmF1bHRGb2N1c1RleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIH0KIApAQCAtMjA2
OSw3ICsyMDY5LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVPbkZv
Y3VzQ2hhbmdlSWZOZWVkZWQoKQogICAgICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50
ZXJuYWwoKTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVj
dGlvblN0YXJ0Rm9yQmluZGluZ3MoKSBjb25zdAorc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gSFRN
TElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAg
aWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRUeXBlLT5zdXBwb3J0c1NlbGVjdGlv
bkFQSSgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtMjA3Nyw3ICsyMDc3LDcg
QEAgc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0Rm9y
QmluZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25TdGFydCgpOwogfQogCi1FeGNl
cHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydEZvckJpbmRp
bmdzKHN0ZDo6b3B0aW9uYWw8aW50PiBzdGFydCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1
dEVsZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4gc3RhcnQpCiB7CiAgICAgaWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRU
eXBlLT5zdXBwb3J0c1NlbGVjdGlvbkFQSSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJUaGUgaW5wdXQgZWxlbWVudCdzIHR5cGUgKCciICsgbV9pbnB1
dFR5cGUtPmZvcm1Db250cm9sVHlwZSgpICsgIicpIGRvZXMgbm90IHN1cHBvcnQgc2VsZWN0aW9u
LiIgfTsKQEAgLTIwODYsNyArMjA4Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDxpCiAgICAg
cmV0dXJuIHsgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IEhU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKIHsKICAgICBp
ZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRzU2VsZWN0aW9u
QVBJKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC0yMDk0LDcgKzIwOTQsNyBA
QCBzdGQ6Om9wdGlvbmFsPGludD4gSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kRm9yQmlu
ZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25FbmQoKTsKIH0KIAotRXhjZXB0aW9u
T3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kRm9yQmluZGluZ3Moc3Rk
OjpvcHRpb25hbDxpbnQ+IGVuZCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGVuZCkK
IHsKICAgICBpZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRz
U2VsZWN0aW9uQVBJKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIlRoZSBpbnB1dCBlbGVtZW50J3MgdHlwZSAoJyIgKyBtX2lucHV0VHlwZS0+Zm9ybUNv
bnRyb2xUeXBlKCkgKyAiJykgZG9lcyBub3Qgc3VwcG9ydCBzZWxlY3Rpb24uIiB9OwpAQCAtMjEy
MCw3ICsyMTIwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2Vs
ZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoY29uc3QgU3RyaW4KICAgICByZXR1cm4geyB9Owog
fQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5n
ZUZvckJpbmRpbmdzKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24p
CitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZv
ckJpbmRpbmdzKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IFN0cmluZyYgZGly
ZWN0aW9uKQogewogICAgIGlmICghY2FuSGF2ZVNlbGVjdGlvbigpIHx8ICFtX2lucHV0VHlwZS0+
c3VwcG9ydHNTZWxlY3Rpb25BUEkoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiVGhlIGlucHV0IGVsZW1lbnQncyB0eXBlICgnIiArIG1faW5wdXRUeXBl
LT5mb3JtQ29udHJvbFR5cGUoKSArICInKSBkb2VzIG5vdCBzdXBwb3J0IHNlbGVjdGlvbi4iIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDg1MDRmYjYyNjk2Yzdm
MDFlMTg5YjJkNzMxOWY3ODAwYzU5Yzg1NzcuLjM2NWUyNWUzYmUwNzVmYzA5MTU4NjJiNWQ0Mjgx
N2RjZWU1YjY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0z
NDQsMTYgKzM0NCwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRUcnVuY2F0ZVRleHQoY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVTdHlsZU9uRm9jdXND
aGFuZ2VJZk5lZWRlZCgpOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MoKSBjb25zdDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25T
dGFydEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8aW50Pik7CisgICAgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gc2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4pOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvbkVuZEZvckJpbmRpbmdz
KCkgY29uc3Q7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uRW5kRm9yQmluZGlu
Z3Moc3RkOjpvcHRpb25hbDxpbnQ+KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzZWxl
Y3Rpb25FbmRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+KTsKIAogICAgIEV4
Y2VwdGlvbk9yPFN0cmluZz4gc2VsZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoKSBjb25zdDsK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25EaXJlY3Rpb25Gb3JCaW5kaW5ncyhj
b25zdCBTdHJpbmcmKTsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVjdGlvblJhbmdl
Rm9yQmluZGluZ3MoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uUmFuZ2VGb3JCaW5kaW5ncyh1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7CiAKICAg
ICBTdHJpbmcgcmVzdWx0Rm9yRGlhbG9nU3VibWl0KCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDMzZWI1NzFjZWQ2NmI0OWFhYjhi
MzZhZDQzZmI2ZjE3MWFhZWVlYjUuLjg2NWUzNzlmNGE3YzUwZDRmZTc0YjUxNGFkYmUxM2VjNDNl
NDhjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNzcs
MTQgKzc3LDE0IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKIAog
ICAgIHVuZGVmaW5lZCBzZWxlY3QoKTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zZWxlY3Rpb25TdGFy
dEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgbG9uZz8gc2VsZWN0aW9uU3RhcnQ7Ci0gICAgW0ltcGxl
bWVudGVkQXM9c2VsZWN0aW9uRW5kRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBsb25nPyBzZWxlY3Rp
b25FbmQ7CisgICAgW0ltcGxlbWVudGVkQXM9c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5nc10gYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmc/IHNlbGVjdGlvblN0YXJ0OworICAgIFtJbXBsZW1lbnRlZEFz
PXNlbGVjdGlvbkVuZEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZz8gc2VsZWN0
aW9uRW5kOwogICAgIFtJbXBsZW1lbnRlZEFzPXNlbGVjdGlvbkRpcmVjdGlvbkZvckJpbmRpbmdz
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmlu
ZWQgc2V0UmFuZ2VUZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNl
dFJhbmdlVGV4dChET01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVu
c2lnbmVkIGxvbmcgZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAg
ICBbSW1wbGVtZW50ZWRBcz1zZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRpbmdzXSB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2UobG9uZyBzdGFydCwgbG9uZyBlbmQsIG9wdGlvbmFsIERPTVN0cmlu
ZyBkaXJlY3Rpb24pOworICAgIFtJbXBsZW1lbnRlZEFzPXNldFNlbGVjdGlvblJhbmdlRm9yQmlu
ZGluZ3NdIHVuZGVmaW5lZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1
bnNpZ25lZCBsb25nIGVuZCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CiAKICAgICBb
Q0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWdu
OwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgdXNlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwK
aW5kZXggZjI4N2Y0NzIxOTQyODhkOWJlYjI4MjIyODVkZWRlMWZjZGIwNjNiYy4uYzQ2MGVkNWYw
NDJiZWQ2MzQ4YmQ4N2Q1YjU5YWFmMDM2MWM5MTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC01MCwxNCArNTAsMTQgQEAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogCiAgICAgdW5kZWZpbmVkIHNlbGVjdCgpOwot
ICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlvblN0YXJ0OwotICAgIGF0dHJpYnV0ZSBsb25nIHNl
bGVjdGlvbkVuZDsKKyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25TdGFydDsK
KyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25FbmQ7CiAgICAgYXR0cmlidXRl
IERPTVN0cmluZyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmluZWQgc2V0UmFuZ2VU
ZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNldFJhbmdlVGV4dChE
T01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcg
ZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAgICB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2Uob3B0aW9uYWwgbG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIGxvbmcg
ZW5kID0gMCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CisgICAgdW5kZWZpbmVkIHNl
dFNlbGVjdGlvblJhbmdlKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgc3RhcnQgPSAwLCBvcHRpb25h
bCB1bnNpZ25lZCBsb25nIGVuZCA9IDAsIG9wdGlvbmFsIERPTVN0cmluZyBkaXJlY3Rpb24pOwog
CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIERPTVN0cmluZyBhdXRvY29t
cGxldGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCAzZGM5OGQ2MDMwODBkOGE0ZmMzNjBmMjU4NGMwMmM3NjMyZGQy
MGFkLi5kMmM5OTgzODNjZGQ3ZjRiMjlhNzA4YjYyYzVmMmI5ZDI3MWY4ZDIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
ODcsOCArODcsOCBAQCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTgogICAgICwgbV9sYXN0Q2hhbmdl
V2FzVXNlckVkaXQoZmFsc2UpCiAgICAgLCBtX2lzUGxhY2Vob2xkZXJWaXNpYmxlKGZhbHNlKQog
ICAgICwgbV9jYW5TaG93UGxhY2Vob2xkZXIodHJ1ZSkKLSAgICAsIG1fY2FjaGVkU2VsZWN0aW9u
U3RhcnQoLTEpCi0gICAgLCBtX2NhY2hlZFNlbGVjdGlvbkVuZCgtMSkKKyAgICAsIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQoMCkKKyAgICAsIG1fY2FjaGVkU2VsZWN0aW9uRW5kKDApCiB7CiB9CiAK
QEAgLTE5NCwxMiArMTk0LDEyIEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dENhblNob3dQbGFjZWhvbGRlcihib29sIGNhblNob3dQbGFjZWhvbGRlcikKICAgICB1cGRhdGVQ
bGFjZWhvbGRlclZpc2liaWxpdHkoKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0KQordm9pZCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQodW5zaWduZWQgc3RhcnQpCiB7CiAgICAgc2V0
U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIHN0ZDo6bWF4KHN0YXJ0LCBzZWxlY3Rpb25FbmQoKSksIHNl
bGVjdGlvbkRpcmVjdGlvbigpKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0U2VsZWN0aW9uRW5kKGludCBlbmQpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRTZWxlY3Rpb25FbmQodW5zaWduZWQgZW5kKQogewogICAgIHNldFNlbGVjdGlvblJh
bmdlKHN0ZDo6bWluKGVuZCwgc2VsZWN0aW9uU3RhcnQoKSksIGVuZCwgc2VsZWN0aW9uRGlyZWN0
aW9uKCkpOwogfQpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvbkRpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvbikKIAog
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0KFNlbGVjdGlvblJldmVhbE1v
ZGUgcmV2ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsK
LSAgICBzZXRTZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgp
LCBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgcmV2ZWFsTW9kZSwgaW50ZW50KTsKKyAgICBzZXRT
ZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIFNl
bGVjdGlvbkhhc05vRGlyZWN0aW9uLCByZXZlYWxNb2RlLCBpbnRlbnQpOwogfQogCiBTdHJpbmcg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CkBAIC0yOTAs
NyArMjkwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2UKICAgICByZXR1cm4geyB9OwogfQog
Ci12b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZShpbnQg
c3RhcnQsIGludCBlbmQsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50KQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29u
c3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiBpbnRlbnQpCiB7CiAgICAgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9
IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uOwogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImZv
cndhcmQiKQpAQCAtMzAxLDE0ICszMDEsMTUgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHIKICAg
ICByZXR1cm4gc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCwgZGlyZWN0aW9uLCBTZWxlY3Rp
b25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgaW50ZW50KTsKIH0KIAotdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBU
ZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxNb2Rl
IHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQpCit2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQpCiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICAvLyBDbGFtcHMgdG8gdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3RoLgotICAgIGVu
ZCA9IHN0ZDo6Y2xhbXAoZW5kLCAwLCBjbGFtcFRvPGludD4oaW5uZXJUZXh0VmFsdWUoKS5sZW5n
dGgoKSkpOwotICAgIHN0YXJ0ID0gc3RkOjpjbGFtcChzdGFydCwgMCwgZW5kKTsKKyAgICB1bnNp
Z25lZCBpbm5lclRleHRWYWx1ZUxlbmd0aCA9IGlubmVyVGV4dFZhbHVlKCkubGVuZ3RoKCk7Cisg
ICAgZW5kID0gc3RkOjptaW4oZW5kLCBpbm5lclRleHRWYWx1ZUxlbmd0aCk7CisgICAgc3RhcnQg
PSBzdGQ6Om1pbihzdGFydCwgZW5kKTsKIAogICAgIGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0
RWxlbWVudENyZWF0aW5nU2hhZG93U3VidHJlZUlmTmVlZGVkKCk7CiAgICAgYm9vbCBoYXNGb2N1
cyA9IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlzOwpAQCAtMzgwLDcgKzM4MSw3
IEBAIFZpc2libGVQb3NpdGlvbiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmlzaWJsZVBv
c2l0aW9uRm9ySW5kZXgoaW50IGluZGV4KSBjCiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1p
bnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KCkgY29uc3QKK3Vu
c2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb25TdGFydCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTM5MCw3
ICszOTEsNyBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
KCkgY29uc3QKICAgICByZXR1cm4gY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCk7CiB9CiAKLWludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
K3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uU3Rh
cnQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKICAgICBSZWZQdHI8RnJh
bWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwpAQCAtNDAwLDcgKzQwMSw3IEBAIGludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
ICAgICByZXR1cm4gaW5kZXhGb3JQb3NpdGlvbihmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCkuc3RhcnQoKSk7CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0
aW9uRW5kKCkgY29uc3QKK3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxl
Y3Rpb25FbmQoKSBjb25zdAogewogICAgIGlmICghaXNUZXh0RmllbGQoKSkKICAgICAgICAgcmV0
dXJuIDA7CkBAIC00MDksNyArNDEwLDcgQEAgaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3Rpb25FbmQoKSBjb25zdAogICAgIHJldHVybiBjb21wdXRlU2VsZWN0aW9uRW5kKCk7
CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVu
ZCgpIGNvbnN0Cit1bnNpZ25lZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNl
bGVjdGlvbkVuZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVGV4dEZpZWxkKCkpOwogICAgIFJl
ZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNTNiZmQ3MzlhOGY0
NmM0NWRlN2ZjODdhNzNiMTY0NTFkOWNmMjk4Ny4uYWE2MzI4OWQxZTNhOTdjYWY2Y2Y0MDM1MzY5
ODQ4MjRhMDEwOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuaApAQCAtNzAsMTcgKzcwLDE3IEBAIHB1YmxpYzoKIAogICAgIGludCBp
bmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgo
aW50IGluZGV4KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uU3RhcnQo
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgc2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBzZWxlY3Rpb25FbmQoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBjb25zdCBBdG9tU3RyaW5nJiBzZWxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25FbmQoaW50KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNlbGVjdGlvblN0YXJ0KHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNlbGVjdGlvbkVuZCh1bnNpZ25lZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb25EaXJlY3Rpb24oY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZWxlY3QoU2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90
UmV2ZWFsLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50KTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcm
IHNlbGVjdGlvbk1vZGUpOwotICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBp
bnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVj
dGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxN
b2RlID0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworICAgIHZvaWQgc2V0
U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5n
JiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFu
Z2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0
aW9uID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgPSBTZWxl
Y3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNp
bXBsZVJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkg
Y29uc3Q7CkBAIC0xMjIsMTAgKzEyMiwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQgPSBzdGFydDsKICAgICAgICAgbV9jYWNoZWRTZWxlY3Rpb25FbmQgPSBl
bmQ7CiAgICAgICAgIG1fY2FjaGVkU2VsZWN0aW9uRGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAg
ICAgICBtX2hhc0NhY2hlZFNlbGVjdGlvbiA9IHRydWU7CiAgICAgfQogCiAgICAgdm9pZCByZXN0
b3JlQ2FjaGVkU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwotICAgIGJvb2wgaGFz
Q2FjaGVkU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25TdGFydCA+
PSAwOyB9CisgICAgYm9vbCBoYXNDYWNoZWRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2hh
c0NhY2hlZFNlbGVjdGlvbjsgfQogCiAgICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2Vk
KCkgPSAwOwogCkBAIC0xNDMsOCArMTQ0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
aW50IGNvbXB1dGVTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwotICAgIGludCBjb21wdXRlU2VsZWN0
aW9uRW5kKCkgY29uc3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29u
c3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0OwogICAgIFRleHRG
aWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBjb21wdXRlU2VsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3Q7
CiAKICAgICB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1
c2VkRWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJikgZmluYWw7CkBAIC0xNzMsMTEgKzE3NCwx
MyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fdGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFu
Z2VFdmVudDsKIAotICAgIGludCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0OwotICAgIGludCBtX2Nh
Y2hlZFNlbGVjdGlvbkVuZDsKKyAgICB1bnNpZ25lZCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0Owor
ICAgIHVuc2lnbmVkIG1fY2FjaGVkU2VsZWN0aW9uRW5kOwogCiAgICAgaW50IG1fbWF4TGVuZ3Ro
IHsgLTEgfTsKICAgICBpbnQgbV9taW5MZW5ndGggeyAtMSB9OworCisgICAgYm9vbCBtX2hhc0Nh
Y2hlZFNlbGVjdGlvbiB7IGZhbHNlIH07CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudCogZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGNvbnN0IFBvc2l0aW9u
Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMDIyNDUzNDRlZGFiNjI4ZDQ2MmEwNTQ0NjczYTg4NWRhMjJlYTFlNi4uYTBh
YzA4YmUxZmZkOTQxMDBkOTE0ZDNiZTIyZDg1OWNjNGZjOWY3OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W3NlbGVjdGlvbl0gQ2hhbmdlIGZvcm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVk
IGxvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Nzk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSB0ZXN0IGFjY29yZGluZ2x5LiBUaGlzIGlzIGlubGluZSB3aXRoIENocm9taXVtLiAKKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS5odG1s
OgorCiAyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1NlbGVjdGlvbl0gRml4ZXMgc2VsZWN0aW9uIHJhbmdlIHNldHRpbmdzIGZvciBURVhUQVJFQQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZjdmNzU5NzhiYjRlZjc2ODY1ZmM3ODUy
OTg1ZGIwNTE4Nzg2MjhmMi4uNTg3MjE2ODM3N2Q4ZWEzOWFiNWQ1YzBkYjQxNjY4NjA2MDFkZjM2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjIt
MDMtMTYgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbc2VsZWN0aW9u
XSBDaGFuZ2UgZm9ybSdzIHNlbGVjdGlvbiBhdHRyaWJ1dGUgdG8gdW5zaWduZWQgbG9uZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3Qg
ZXhwZWN0YXRpb25zIGFzIG1vcmUgc3ViLXRlc3RzIGFyZSBub3cgcGFzc2luZy4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0
aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQt
ZW5kLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxl
Y3Rpb25SYW5nZS1leHBlY3RlZC50eHQ6CisKIDIwMjItMDMtMTcgIFppcmFuIFN1biAgPHpzdW5A
aWdhbGlhLmNvbT4KIAogICAgICAgICBbU2VsZWN0aW9uXSBGaXhlcyBzZWxlY3Rpb24gcmFuZ2Ug
c2V0dGluZ3MgZm9yIFRFWFRBUkVBCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwKaW5kZXggZWVlZTcwNTU0MzA5YmNlYmE2
YzAxYTFjOTllOTZmOWNhMmU2YjdiMi4uN2JmZGExZWE0YmU4YzM0NWI2Nzk1MWVlYjE5YWY4OWEw
ZWYxYzYyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJh
bmNlLXNlbGVjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXBw
ZWFyYW5jZS1zZWxlY3Rpb24uaHRtbApAQCAtMTEsOCArMTEsOCBAQCBmdW5jdGlvbiB0ZXN0ICgp
IHsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoNCwgMTAsIDMsIDMsIDMsIHRlc3RGaWVsZCwgcmVz
dWx0cyk7CiAgICAgdGVzdFNlbGVjdGlvbkVuZCg1LCAyLCAyLCAyLCB0ZXN0RmllbGQsIHJlc3Vs
dHMpOwogICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg2LCA1LCA0LCA0LCA0LCB0ZXN0RmllbGQsIHJl
c3VsdHMpOwotICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg3LCAtNSwgLTQsIDAsIDAsIHRlc3RGaWVs
ZCwgcmVzdWx0cyk7Ci0gICAgdGVzdFNlbGVjdGlvblJhbmdlKDgsIC01LCA4MCwgMCwgMjAsIHRl
c3RGaWVsZCwgcmVzdWx0cyk7CisgICAgdGVzdFNlbGVjdGlvblJhbmdlKDcsIC01LCAtNCwgMjAs
IDIwLCB0ZXN0RmllbGQsIHJlc3VsdHMpOworICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg4LCAtNSwg
ODAsIDIwLCAyMCwgdGVzdEZpZWxkLCByZXN1bHRzKTsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2Uo
OSwgMywgMTIsIDMsIDEyLCB0ZXN0RmllbGQsIHJlc3VsdHMpOwogCiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApp
bmRleCBlOTZkMjJmYjcyYzUyYWRhY2YzNmRmYzM2NjdmYjY3ZDFlMGFjMDFjLi45NjNkZmRhNWM1
ZjNhNDJiZTI2ZWEzMGMzZWM1NTQ3NmFkZTVlMzI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTYsNDMg
KzYsNDMgQEAgSWYgdGhpcyB0ZXN0IHBhc3NlZCB5b3UnbGwgc2VlIGEgYnVuY2ggb2YgY29ycmVj
dCBzZWxlY3Rpb24gcmFuZ2VzIGJlbG93LiBDaGVjawogPT09dGV4dGFyZWE9PT0KIHNldFNlbGVj
dGlvblJhbmdlKCk6CiAzLCA3Ci0wLCA1Cis1LCA1CiA0MiwgNDgKIDIsIDIKIAogc2VsZWN0aW9u
U3RhcnQ6CiAzLCAzCiA3LCA3Ci0wLCA3Cis0OCwgNDgKIDQ4LCA0OAogMywgNDgKIAogc2VsZWN0
aW9uRW5kOgogMywgNQogMiwgMgotMCwgMAotMCwgNDgKKzIsIDQ4CisyLCA0OAogNywgNwogCiA9
PT1pbnB1dD09PQogc2V0U2VsZWN0aW9uUmFuZ2UoKToKIDMsIDcKLTAsIDUKKzUsIDUKIDQyLCA0
OAogMiwgMgogCiBzZWxlY3Rpb25TdGFydDoKIDMsIDMKIDcsIDcKLTAsIDcKKzQ4LCA0OAogNDgs
IDQ4CiAzLCA0OAogCiBzZWxlY3Rpb25FbmQ6CiAzLCA1CiAyLCAyCi0wLCAwCi0wLCA0OAorMiwg
NDgKKzIsIDQ4CiA3LCA3CiAKID09PWJ1dHRvbj09PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3Rl
ZC50eHQKaW5kZXggMzhmYTAxOGJhMjc0NjBmYTk5N2ZkYmE5N2E5YTE2NjllM2VjY2I3NC4uZTUy
MTcxZGU5ZDA2ZWEyZTM4YTdlMzA0NjE4NWI4YTIyN2Q3ZGE1NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHktZXhwZWN0ZWQudHh0CkBAIC0xOCw3ICsxOCw3IEBAIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25T
dGFydCBpcyA1CiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDUKIFBBU1MgZWxlbWVudC5z
ZWxlY3Rpb25TdGFydCBpcyAwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDAKLVBBU1Mg
ZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQg
aXMgMTAKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMTAKIFBBU1MgZWxlbWVudC5zZWxl
Y3Rpb25TdGFydCBpcyAwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDEwCkBAIC0zMiw3
ICszMiw3IEBAIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyA1CiBQQVNTIGVsZW1lbnQu
c2VsZWN0aW9uRW5kIGlzIDUKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCiBQQVNT
IGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDAKLVBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBp
cyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMTAKIFBBU1MgZWxlbWVudC5zZWxl
Y3Rpb25FbmQgaXMgMTAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHkuaHRtbAppbmRleCAyOTI1MDUxMWY1YzFmYzE2YWIzMGQ5YjcxZmE1NTFhYzczMDUwMGZiLi5m
ZTU4Yjg1NTYzYjJhMzljNTNiNTQ5YzYxNGZhMmM5MjdmMDQ5ZGEzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRt
bApAQCAtMTMsMTMgKzEzLDE4IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQog
ZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uRW5kIG9u
IHJlYWQtb25seSBJTlBVVCBhbmQgVEVYVEFSRUEuIDxici8+IDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ0NCI+YnVnIDI1NDQ0PC9hPjogU2VsZWN0
aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCBwcm9wZXJ0aWVzIHJldHVybiB3cm9uZyB2YWx1ZXMgd2hl
biB0aGUgc2VsZWN0aW9uIGlzIGluIGEgZm9ybSBpbnB1dC4nKTsNCiANCitmdW5jdGlvbiB0b1VJ
bnQzMih4KSB7DQorICAgIHZhciB5ID0gTWF0aC5wb3coMiwzMik7DQorICAgIHJldHVybiB4IC0g
TWF0aC5mbG9vcih4IC8geSkgKiB5Ow0KK30NCisNCiBmdW5jdGlvbiBzdGFydFRlc3QoZWxlbWVu
dCwgc3RhcnQsIGVuZCkgew0KICAgICBlbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBl
bmQpOw0KIA0KLSAgICBzdGFydCA9IHN0YXJ0IDwgMCA/IDAgOiBzdGFydDsNCisgICAgc3RhcnQg
PSB0b1VJbnQzMihzdGFydCk7DQogICAgIGVuZCA9IGVuZCA+IDEwID8gMTAgOiBlbmQ7DQogICAg
IHN0YXJ0ID0gc3RhcnQgPiBlbmQgPyBlbmQgOiBzdGFydDsNCi0KKw0KICAgICBpZiAoZWxlbWVu
dC5zZWxlY3Rpb25TdGFydCAhPSBzdGFydCkNCiAgICAgICAgIHRlc3RGYWlsZWQoJ2VsZW1lbnQu
c2VsZWN0aW9uU3RhcnQnICsgJyBzaG91bGQgYmUgJyArIHN0YXJ0ICsgJyBidXQgaXQgaXMgJyAr
IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQpOw0KICAgICBlbHNlDQpAQCAtNDQsNCArNDksNCBAQCB0
ZXN0SGFuZGxlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJlYScpKTsKICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQogIDwvYm9keT4N
CiA8L2h0bWw+DQotCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9z
ZWxlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0
aW9uLWV4cGVjdGVkLnR4dAppbmRleCBhM2VmZDcwNjE1Y2RiY2RkZjMyODZiNmMxZjRkZDZiZGIz
ZjY3ZWZmLi5iZTM4YmYzODRlYzUwODM0MDI3MTc0ZmViNTc2NTYzOTU3YmIwYzQ3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQKQEAg
LTEzLDQgKzEzLDggQEAgRkFJTCB0ZXN0IFNlbGVjdGlvbkVuZCBvZmZzZXQgZm9yIHRleHRhcmVh
IHRoYXQgaXMgYXBwZW5kZWQgYXNzZXJ0X2VxdWFsczogU2VsZWMKIEZBSUwgdGVzdCBTZWxlY3Rp
b25FbmQgb2Zmc2V0IGZvciB0ZXh0YXJlYSB0aGF0IGlzICBub3QgYXBwZW5kZWQgYXNzZXJ0X2Vx
dWFsczogU2VsZWN0aW9uRW5kIG9mZnNldCB3aXRob3V0IHNlbGVjdGlvbiBpbiB0ZXh0YXJlYS1u
b3QtYXBwZW5kZWQgZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCiBQQVNTIHRlc3QgU2VsZWN0aW9uRGly
ZWN0aW9uIGZvciBpbnB1dAogUEFTUyB0ZXN0IFNlbGVjdGlvbkRpcmVjdGlvbiBmb3IgdGV4dGFy
ZWEKK1BBU1MgdGVzdCBzY3JvbGxMZWZ0IGZvciBpbnB1dAorUEFTUyB0ZXN0IHNjcm9sbExlZnQg
cHJlc2VydmF0aW9uIGZvciBpbnB1dAorUEFTUyB0ZXN0IGNvbnRhaW5lci5zY3JvbGxUb3AgZm9y
IGlucHV0CitQQVNTIHRlc3QgY29udGFpbmVyLnNjcm9sbFRvcCBmb3IgdGV4dGFyZWEKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQt
ZW5kLWV4cGVjdGVkLnR4dAppbmRleCBmMWZiNWEwMWI4NzE2YTQwMjM1MWIxZTQ0ZjUwZWIyMTk1
M2U1ZTY4Li40MGY2ZGI2NTkzYjYwYjAwZjgzNTVhNGRlY2QyZTYzMDBjYjk5NmEwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQt
ZW5kLWV4cGVjdGVkLnR4dApAQCAtNDAsOCArNDAsOCBAQCBOT1RSVU4gb25zZWxlY3Qgc2hvdWxk
IGZpcmUgd2hlbiBzZWxlY3Rpb25FbmQgaXMgY2hhbmdlZCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5k
ZQogTk9UUlVOIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlzIGNoYW5n
ZWQgb24KIFBBU1MgU2V0dGluZyBzZWxlY3Rpb25TdGFydCB0byBhIHZhbHVlIGxhcmdlciB0aGFu
IHNlbGVjdGlvbkVuZCBzaG91bGQgaW5jcmVhc2Ugc2VsZWN0aW9uRW5kCiBQQVNTIFNldHRpbmcg
c2VsZWN0aW9uRW5kIHRvIGEgdmFsdWUgc21hbGxlciB0aGFuIHNlbGVjdGlvblN0YXJ0IHNob3Vs
ZCBkZWNyZWFzZSBzZWxlY3Rpb25TdGFydAotRkFJTCBzZWxlY3Rpb25TdGFydCBlZGdlLWNhc2Ug
dmFsdWVzIGFzc2VydF9lcXVhbHM6IHNlbGVjdGlvblN0YXJ0IHNldHRlciBvbiBpbnB1dC1hcHBl
bmRlZCBzaG91bGQgY29udmVydCAtMSB0byAyXjMyLTEgZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCi1G
QUlMIHNlbGVjdGlvbkVuZCBlZGdlLWNhc2UgdmFsdWVzIGFzc2VydF9lcXVhbHM6IHNlbGVjdGlv
bkVuZCBzZXR0ZXIgb24gaW5wdXQtYXBwZW5kZWQgc2hvdWxkIGNvbnZlcnQgLTEgdG8gMl4zMi0x
IGV4cGVjdGVkIDEwIGJ1dCBnb3QgMAorUEFTUyBzZWxlY3Rpb25TdGFydCBlZGdlLWNhc2UgdmFs
dWVzCitQQVNTIHNlbGVjdGlvbkVuZCBlZGdlLWNhc2UgdmFsdWVzCiBQQVNTIHNlbGVjdGlvblN0
YXJ0IHNob3VsZCBiZSBjbGFtcGVkIGJ5IHRoZSBjdXJyZW50IHZhbHVlIGxlbmd0aAogUEFTUyBz
ZWxlY3Rpb25FbmQgc2hvdWxkIGJlIGNsYW1wZWQgYnkgdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3Ro
CiBQQVNTIHNldFNlbGVjdGlvblJhbmdlIHNob3VsZCBiZSBjbGFtcGVkIGJ5IHRoZSBjdXJyZW50
IHZhbHVlIGxlbmd0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4
dGZpZWxkc2VsZWN0aW9uLXNldFNlbGVjdGlvblJhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxlY3Rpb25SYW5nZS1l
eHBlY3RlZC50eHQKaW5kZXggMmI3NjJkMDU0ODg3ZjI5MzFhNWQzYTRkMjViMDI2ZmNjZDVmNDEy
Ni4uYjIyOGRjYjkxNjk5ZmRmYTliMGNiYTQyMWM0Yjg2ZGFmYWM4NTMxOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4dGZpZWxkc2VsZWN0aW9uLXNldFNlbGVjdGlv
blJhbmdlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0
ZmllbGRzZWxlY3Rpb24tc2V0U2VsZWN0aW9uUmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0xNiw4ICsx
Niw4IEBAIFBBU1MgaW5wdXQgZGlyZWN0aW9uIG9mIHNldFNlbGVjdGlvblJhbmdlKDAsMSwibm9u
ZSIpCiBQQVNTIGlucHV0IGRpcmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25SYW5nZSgwLDEsImhvZ2Ui
KQogUEFTUyBpbnB1dCBkaXJlY3Rpb24gb2Ygc2V0U2VsZWN0aW9uUmFuZ2UoMCwxLCJCQUNLV0FS
RCIpCiBQQVNTIGlucHV0IGRpcmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25SYW5nZSgwLDEpCi1GQUlM
IGlucHV0IHNldFNlbGVjdGlvblJhbmdlKDEsLTEpIGFzc2VydF9lcXVhbHM6IGVsZW1lbnQuc2Vs
ZWN0aW9uU3RhcnQgc2hvdWxkIGJlIDEgZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgaW5wdXQg
c2V0U2VsZWN0aW9uUmFuZ2UoLTEsMSkgYXNzZXJ0X2VxdWFsczogRUNNQVNjcmlwdCBjb252ZXJz
aW9uIHRvIHVuc2lnbmVkIGxvbmcgKyBpZiBlbmQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHN0
YXJ0IHRoZW4gdGhlIHN0YXJ0IG9mIHRoZSBzZWxlY3Rpb24gYW5kIHRoZSBlbmQgb2YgdGhlIHNl
bGVjdGlvbiBtdXN0IGJvdGggYmUgcGxhY2VkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgY2hhcmFj
dGVyIHdpdGggb2Zmc2V0IGVuZCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBpbnB1dCBzZXRT
ZWxlY3Rpb25SYW5nZSgxLC0xKQorUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgtMSwxKQog
UEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgic3RyaW5nIiwxKQogUEFTUyBpbnB1dCBzZXRT
ZWxlY3Rpb25SYW5nZSh0cnVlLDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKFtdLDEp
CkBAIC0yNSw4ICsyNSw4IEBAIFBBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2Uoe30sMSkKIFBB
U1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoTmFOLDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlv
blJhbmdlKG51bGwsMSkKIFBBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UodW5kZWZpbmVkLDEp
Ci1GQUlMIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzIpIC0gMiwgTWF0aC5w
b3coMiwzMikgLSAxKSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3Vs
ZCBiZSB2YWx1ZS5sZW5ndGggZXhwZWN0ZWQgNSBidXQgZ290IDAKLUZBSUwgaW5wdXQgc2V0U2Vs
ZWN0aW9uUmFuZ2UoTWF0aC5wb3coMiwzMSksIE1hdGgucG93KDIsMzIpIC0gMSkgYXNzZXJ0X2Vx
dWFsczogZWxlbWVudC5zZWxlY3Rpb25TdGFydCBzaG91bGQgYmUgdmFsdWUubGVuZ3RoIGV4cGVj
dGVkIDUgYnV0IGdvdCAwCitQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIs
MzIpIC0gMiwgTWF0aC5wb3coMiwzMikgLSAxKQorUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5n
ZShNYXRoLnBvdygyLDMxKSwgTWF0aC5wb3coMiwzMikgLSAxKQogVElNRU9VVCBpbnB1dCBzZXRT
ZWxlY3Rpb25SYW5nZSBmaXJlcyBhIHNlbGVjdCBldmVudCBUZXN0IHRpbWVkIG91dAogUEFTUyB0
ZXN0IG9mIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlCiBQQVNTIHRleHRhcmVhIHR5cGVvZihp
bnB1dC5zZXRTZWxlY3Rpb25SYW5nZSknCkBAIC00OCw2ICs0OCw2IEBAIFBBU1MgdGV4dGFyZWEg
c2V0U2VsZWN0aW9uUmFuZ2Uoe30sMSkKIFBBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2Uo
TmFOLDEpCiBQQVNTIHRleHRhcmVhIHNldFNlbGVjdGlvblJhbmdlKG51bGwsMSkKIFBBU1MgdGV4
dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UodW5kZWZpbmVkLDEpCi1GQUlMIHRleHRhcmVhIHNldFNl
bGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzIpIC0gMiwgTWF0aC5wb3coMiwzMikgLSAxKSBhc3Nl
cnRfZXF1YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSB2YWx1ZS5sZW5ndGgg
ZXhwZWN0ZWQgNSBidXQgZ290IDAKLUZBSUwgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0
aC5wb3coMiwzMSksIE1hdGgucG93KDIsMzIpIC0gMSkgYXNzZXJ0X2VxdWFsczogZWxlbWVudC5z
ZWxlY3Rpb25TdGFydCBzaG91bGQgYmUgdmFsdWUubGVuZ3RoIGV4cGVjdGVkIDUgYnV0IGdvdCAw
CitQQVNTIHRleHRhcmVhIHNldFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzIpIC0gMiwgTWF0
aC5wb3coMiwzMikgLSAxKQorUEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBv
dygyLDMxKSwgTWF0aC5wb3coMiwzMikgLSAxKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454960</attachid>
            <date>2022-03-17 04:55:45 -0700</date>
            <delta_ts>2022-03-17 06:00:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237951-20220317115544.patch</filename>
            <type>text/plain</type>
            <size>29162</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNiNGQ3ZmRjMWE1MDRm
ODM1YWQzMmM2ZGExYzYxNmY1N2IxNTBlOC4uZWY4MDJlYzRjMzFlZjZlNDliM2RhZjNhMzdiNzlk
ODk1ZDRlOWU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAzLTE3ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gQ2hhbmdlIGZv
cm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBjaGFuZ2UgdGhlIHR5
cGUgb2YgYXR0cmlidXRlICJzZWxlY3Rpb25TdGFydCIgYW5kICJzZWxlY3Rpb25FbmQiCisgICAg
ICAgIGZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLiBBbHNvICJzdGFydCIgYW5kICJlbmQiIHBh
cmFtZXRlcnMgaW4gZnVuY3Rpb24KKyAgICAgICAgc2VsZWN0aW9uUmFuZ2UoKSBuZWVkIHRvIGJl
IGNoYW5nZWQgY29ycmVzcG9uZGluZ2x5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
aXMgaW4gbGluZSB3aXRoIENocm9taXVtIENMIGF0CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS9jaHJvbWl1bS9jaHJvbWl1bS9jb21taXQvYjZmZjZkYjFjNTY4M2I1ZTU2NGE3MmIwOTQxYWQ1
MDRiNDEwZDFhZgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldERlZmF1bHRTZWxlY3Rpb25BZnRlckZv
Y3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0U2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2Vs
ZWN0aW9uU3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNhY2hlU2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpoYXNDYWNoZWRTZWxlY3Rpb24gY29u
c3QpOgorCiAyMDIyLTAzLTE3ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4IGFmdGVyIHIyOTEz
OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDcwMGQ1ZTUz
MTRiMWY5OTc0YTAzMjFmMjVlMTJkNTFkYTI4YmRhMGUuLmU4NDcwMGYxNTA1MTBmNGYwY2Y3NjI3
Y2IzZDM2ZGM3MmM2MmYyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcApAQCAtNDkyLDE0ICs0OTIsMTQgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVG
b2N1c0FwcGVhcmFuY2UoU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW8KIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGlvbkFmdGVyRm9jdXMoU2VsZWN0aW9u
UmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW9uTW9kZSwgU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZl
YWxNb2RlKQogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKLSAgICBpbnQgc3RhcnQgPSAw
OworICAgIHVuc2lnbmVkIHN0YXJ0ID0gMDsKICAgICBhdXRvIGRpcmVjdGlvbiA9IFNlbGVjdGlv
bkhhc05vRGlyZWN0aW9uOwogICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwog
ICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+ZWRpdG9yKCkuYmVoYXZpb3IoKS5zaG91bGRNb3ZlU2Vs
ZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSkgewotICAgICAgICBzdGFydCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgICAgIHN0YXJ0ID0gc3RkOjpudW1l
cmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogICAgICAgICBkaXJlY3Rpb24gPSBTZWxlY3Rp
b25IYXNGb3J3YXJkRGlyZWN0aW9uOwogICAgIH0KLSAgICBpbnQgZW5kID0gcmVzdG9yYXRpb25N
b2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0U3RhcnQgPyBzdGFy
dCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgdW5zaWduZWQgZW5kID0g
cmVzdG9yYXRpb25Nb2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0
U3RhcnQgPyBzdGFydCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKICAg
ICBzZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kLCBkaXJlY3Rpb24sIHJldmVhbE1vZGUsIEVs
ZW1lbnQ6OmRlZmF1bHRGb2N1c1RleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIH0KIApAQCAtMjA2
OSw3ICsyMDY5LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVPbkZv
Y3VzQ2hhbmdlSWZOZWVkZWQoKQogICAgICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50
ZXJuYWwoKTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVj
dGlvblN0YXJ0Rm9yQmluZGluZ3MoKSBjb25zdAorc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gSFRN
TElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAg
aWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRUeXBlLT5zdXBwb3J0c1NlbGVjdGlv
bkFQSSgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtMjA3Nyw3ICsyMDc3LDcg
QEAgc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0Rm9y
QmluZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25TdGFydCgpOwogfQogCi1FeGNl
cHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydEZvckJpbmRp
bmdzKHN0ZDo6b3B0aW9uYWw8aW50PiBzdGFydCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1
dEVsZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4gc3RhcnQpCiB7CiAgICAgaWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRU
eXBlLT5zdXBwb3J0c1NlbGVjdGlvbkFQSSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJUaGUgaW5wdXQgZWxlbWVudCdzIHR5cGUgKCciICsgbV9pbnB1
dFR5cGUtPmZvcm1Db250cm9sVHlwZSgpICsgIicpIGRvZXMgbm90IHN1cHBvcnQgc2VsZWN0aW9u
LiIgfTsKQEAgLTIwODYsNyArMjA4Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDxpCiAgICAg
cmV0dXJuIHsgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IEhU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKIHsKICAgICBp
ZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRzU2VsZWN0aW9u
QVBJKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC0yMDk0LDcgKzIwOTQsNyBA
QCBzdGQ6Om9wdGlvbmFsPGludD4gSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kRm9yQmlu
ZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25FbmQoKTsKIH0KIAotRXhjZXB0aW9u
T3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kRm9yQmluZGluZ3Moc3Rk
OjpvcHRpb25hbDxpbnQ+IGVuZCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGVuZCkK
IHsKICAgICBpZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRz
U2VsZWN0aW9uQVBJKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIlRoZSBpbnB1dCBlbGVtZW50J3MgdHlwZSAoJyIgKyBtX2lucHV0VHlwZS0+Zm9ybUNv
bnRyb2xUeXBlKCkgKyAiJykgZG9lcyBub3Qgc3VwcG9ydCBzZWxlY3Rpb24uIiB9OwpAQCAtMjEy
MCw3ICsyMTIwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2Vs
ZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoY29uc3QgU3RyaW4KICAgICByZXR1cm4geyB9Owog
fQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5n
ZUZvckJpbmRpbmdzKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24p
CitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZv
ckJpbmRpbmdzKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IFN0cmluZyYgZGly
ZWN0aW9uKQogewogICAgIGlmICghY2FuSGF2ZVNlbGVjdGlvbigpIHx8ICFtX2lucHV0VHlwZS0+
c3VwcG9ydHNTZWxlY3Rpb25BUEkoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiVGhlIGlucHV0IGVsZW1lbnQncyB0eXBlICgnIiArIG1faW5wdXRUeXBl
LT5mb3JtQ29udHJvbFR5cGUoKSArICInKSBkb2VzIG5vdCBzdXBwb3J0IHNlbGVjdGlvbi4iIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDg1MDRmYjYyNjk2Yzdm
MDFlMTg5YjJkNzMxOWY3ODAwYzU5Yzg1NzcuLjM2NWUyNWUzYmUwNzVmYzA5MTU4NjJiNWQ0Mjgx
N2RjZWU1YjY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0z
NDQsMTYgKzM0NCwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRUcnVuY2F0ZVRleHQoY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVTdHlsZU9uRm9jdXND
aGFuZ2VJZk5lZWRlZCgpOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MoKSBjb25zdDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25T
dGFydEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8aW50Pik7CisgICAgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gc2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4pOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvbkVuZEZvckJpbmRpbmdz
KCkgY29uc3Q7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uRW5kRm9yQmluZGlu
Z3Moc3RkOjpvcHRpb25hbDxpbnQ+KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzZWxl
Y3Rpb25FbmRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+KTsKIAogICAgIEV4
Y2VwdGlvbk9yPFN0cmluZz4gc2VsZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoKSBjb25zdDsK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25EaXJlY3Rpb25Gb3JCaW5kaW5ncyhj
b25zdCBTdHJpbmcmKTsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVjdGlvblJhbmdl
Rm9yQmluZGluZ3MoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uUmFuZ2VGb3JCaW5kaW5ncyh1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7CiAKICAg
ICBTdHJpbmcgcmVzdWx0Rm9yRGlhbG9nU3VibWl0KCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDMzZWI1NzFjZWQ2NmI0OWFhYjhi
MzZhZDQzZmI2ZjE3MWFhZWVlYjUuLjg2NWUzNzlmNGE3YzUwZDRmZTc0YjUxNGFkYmUxM2VjNDNl
NDhjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNzcs
MTQgKzc3LDE0IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKIAog
ICAgIHVuZGVmaW5lZCBzZWxlY3QoKTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zZWxlY3Rpb25TdGFy
dEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgbG9uZz8gc2VsZWN0aW9uU3RhcnQ7Ci0gICAgW0ltcGxl
bWVudGVkQXM9c2VsZWN0aW9uRW5kRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBsb25nPyBzZWxlY3Rp
b25FbmQ7CisgICAgW0ltcGxlbWVudGVkQXM9c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5nc10gYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmc/IHNlbGVjdGlvblN0YXJ0OworICAgIFtJbXBsZW1lbnRlZEFz
PXNlbGVjdGlvbkVuZEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZz8gc2VsZWN0
aW9uRW5kOwogICAgIFtJbXBsZW1lbnRlZEFzPXNlbGVjdGlvbkRpcmVjdGlvbkZvckJpbmRpbmdz
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmlu
ZWQgc2V0UmFuZ2VUZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNl
dFJhbmdlVGV4dChET01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVu
c2lnbmVkIGxvbmcgZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAg
ICBbSW1wbGVtZW50ZWRBcz1zZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRpbmdzXSB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2UobG9uZyBzdGFydCwgbG9uZyBlbmQsIG9wdGlvbmFsIERPTVN0cmlu
ZyBkaXJlY3Rpb24pOworICAgIFtJbXBsZW1lbnRlZEFzPXNldFNlbGVjdGlvblJhbmdlRm9yQmlu
ZGluZ3NdIHVuZGVmaW5lZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1
bnNpZ25lZCBsb25nIGVuZCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CiAKICAgICBb
Q0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWdu
OwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgdXNlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwK
aW5kZXggZjI4N2Y0NzIxOTQyODhkOWJlYjI4MjIyODVkZWRlMWZjZGIwNjNiYy4uYzQ2MGVkNWYw
NDJiZWQ2MzQ4YmQ4N2Q1YjU5YWFmMDM2MWM5MTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC01MCwxNCArNTAsMTQgQEAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogCiAgICAgdW5kZWZpbmVkIHNlbGVjdCgpOwot
ICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlvblN0YXJ0OwotICAgIGF0dHJpYnV0ZSBsb25nIHNl
bGVjdGlvbkVuZDsKKyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25TdGFydDsK
KyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25FbmQ7CiAgICAgYXR0cmlidXRl
IERPTVN0cmluZyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmluZWQgc2V0UmFuZ2VU
ZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNldFJhbmdlVGV4dChE
T01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcg
ZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAgICB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2Uob3B0aW9uYWwgbG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIGxvbmcg
ZW5kID0gMCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CisgICAgdW5kZWZpbmVkIHNl
dFNlbGVjdGlvblJhbmdlKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgc3RhcnQgPSAwLCBvcHRpb25h
bCB1bnNpZ25lZCBsb25nIGVuZCA9IDAsIG9wdGlvbmFsIERPTVN0cmluZyBkaXJlY3Rpb24pOwog
CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIERPTVN0cmluZyBhdXRvY29t
cGxldGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCAzZGM5OGQ2MDMwODBkOGE0ZmMzNjBmMjU4NGMwMmM3NjMyZGQy
MGFkLi5kMmM5OTgzODNjZGQ3ZjRiMjlhNzA4YjYyYzVmMmI5ZDI3MWY4ZDIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
ODcsOCArODcsOCBAQCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTgogICAgICwgbV9sYXN0Q2hhbmdl
V2FzVXNlckVkaXQoZmFsc2UpCiAgICAgLCBtX2lzUGxhY2Vob2xkZXJWaXNpYmxlKGZhbHNlKQog
ICAgICwgbV9jYW5TaG93UGxhY2Vob2xkZXIodHJ1ZSkKLSAgICAsIG1fY2FjaGVkU2VsZWN0aW9u
U3RhcnQoLTEpCi0gICAgLCBtX2NhY2hlZFNlbGVjdGlvbkVuZCgtMSkKKyAgICAsIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQoMCkKKyAgICAsIG1fY2FjaGVkU2VsZWN0aW9uRW5kKDApCiB7CiB9CiAK
QEAgLTE5NCwxMiArMTk0LDEyIEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dENhblNob3dQbGFjZWhvbGRlcihib29sIGNhblNob3dQbGFjZWhvbGRlcikKICAgICB1cGRhdGVQ
bGFjZWhvbGRlclZpc2liaWxpdHkoKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0KQordm9pZCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQodW5zaWduZWQgc3RhcnQpCiB7CiAgICAgc2V0
U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIHN0ZDo6bWF4KHN0YXJ0LCBzZWxlY3Rpb25FbmQoKSksIHNl
bGVjdGlvbkRpcmVjdGlvbigpKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0U2VsZWN0aW9uRW5kKGludCBlbmQpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRTZWxlY3Rpb25FbmQodW5zaWduZWQgZW5kKQogewogICAgIHNldFNlbGVjdGlvblJh
bmdlKHN0ZDo6bWluKGVuZCwgc2VsZWN0aW9uU3RhcnQoKSksIGVuZCwgc2VsZWN0aW9uRGlyZWN0
aW9uKCkpOwogfQpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvbkRpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvbikKIAog
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0KFNlbGVjdGlvblJldmVhbE1v
ZGUgcmV2ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsK
LSAgICBzZXRTZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgp
LCBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgcmV2ZWFsTW9kZSwgaW50ZW50KTsKKyAgICBzZXRT
ZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIFNl
bGVjdGlvbkhhc05vRGlyZWN0aW9uLCByZXZlYWxNb2RlLCBpbnRlbnQpOwogfQogCiBTdHJpbmcg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CkBAIC0yOTAs
NyArMjkwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2UKICAgICByZXR1cm4geyB9OwogfQog
Ci12b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZShpbnQg
c3RhcnQsIGludCBlbmQsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50KQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29u
c3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiBpbnRlbnQpCiB7CiAgICAgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9
IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uOwogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImZv
cndhcmQiKQpAQCAtMzAxLDE0ICszMDEsMTUgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHIKICAg
ICByZXR1cm4gc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCwgZGlyZWN0aW9uLCBTZWxlY3Rp
b25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgaW50ZW50KTsKIH0KIAotdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBU
ZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxNb2Rl
IHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQpCit2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQpCiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICAvLyBDbGFtcHMgdG8gdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3RoLgotICAgIGVu
ZCA9IHN0ZDo6Y2xhbXAoZW5kLCAwLCBjbGFtcFRvPGludD4oaW5uZXJUZXh0VmFsdWUoKS5sZW5n
dGgoKSkpOwotICAgIHN0YXJ0ID0gc3RkOjpjbGFtcChzdGFydCwgMCwgZW5kKTsKKyAgICB1bnNp
Z25lZCBpbm5lclRleHRWYWx1ZUxlbmd0aCA9IGlubmVyVGV4dFZhbHVlKCkubGVuZ3RoKCk7Cisg
ICAgZW5kID0gc3RkOjptaW4oZW5kLCBpbm5lclRleHRWYWx1ZUxlbmd0aCk7CisgICAgc3RhcnQg
PSBzdGQ6Om1pbihzdGFydCwgZW5kKTsKIAogICAgIGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0
RWxlbWVudENyZWF0aW5nU2hhZG93U3VidHJlZUlmTmVlZGVkKCk7CiAgICAgYm9vbCBoYXNGb2N1
cyA9IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlzOwpAQCAtMzgwLDcgKzM4MSw3
IEBAIFZpc2libGVQb3NpdGlvbiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmlzaWJsZVBv
c2l0aW9uRm9ySW5kZXgoaW50IGluZGV4KSBjCiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1p
bnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KCkgY29uc3QKK3Vu
c2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb25TdGFydCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTM5MCw3
ICszOTEsNyBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
KCkgY29uc3QKICAgICByZXR1cm4gY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCk7CiB9CiAKLWludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
K3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uU3Rh
cnQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKICAgICBSZWZQdHI8RnJh
bWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwpAQCAtNDAwLDcgKzQwMSw3IEBAIGludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
ICAgICByZXR1cm4gaW5kZXhGb3JQb3NpdGlvbihmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCkuc3RhcnQoKSk7CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0
aW9uRW5kKCkgY29uc3QKK3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxl
Y3Rpb25FbmQoKSBjb25zdAogewogICAgIGlmICghaXNUZXh0RmllbGQoKSkKICAgICAgICAgcmV0
dXJuIDA7CkBAIC00MDksNyArNDEwLDcgQEAgaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3Rpb25FbmQoKSBjb25zdAogICAgIHJldHVybiBjb21wdXRlU2VsZWN0aW9uRW5kKCk7
CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVu
ZCgpIGNvbnN0Cit1bnNpZ25lZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNl
bGVjdGlvbkVuZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVGV4dEZpZWxkKCkpOwogICAgIFJl
ZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNTNiZmQ3MzlhOGY0
NmM0NWRlN2ZjODdhNzNiMTY0NTFkOWNmMjk4Ny4uYWE2MzI4OWQxZTNhOTdjYWY2Y2Y0MDM1MzY5
ODQ4MjRhMDEwOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuaApAQCAtNzAsMTcgKzcwLDE3IEBAIHB1YmxpYzoKIAogICAgIGludCBp
bmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgo
aW50IGluZGV4KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uU3RhcnQo
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgc2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBzZWxlY3Rpb25FbmQoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBjb25zdCBBdG9tU3RyaW5nJiBzZWxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25FbmQoaW50KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNlbGVjdGlvblN0YXJ0KHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNlbGVjdGlvbkVuZCh1bnNpZ25lZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb25EaXJlY3Rpb24oY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZWxlY3QoU2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90
UmV2ZWFsLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50KTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcm
IHNlbGVjdGlvbk1vZGUpOwotICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBp
bnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVj
dGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxN
b2RlID0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworICAgIHZvaWQgc2V0
U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5n
JiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFu
Z2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0
aW9uID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgPSBTZWxl
Y3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNp
bXBsZVJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkg
Y29uc3Q7CkBAIC0xMjIsMTAgKzEyMiwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQgPSBzdGFydDsKICAgICAgICAgbV9jYWNoZWRTZWxlY3Rpb25FbmQgPSBl
bmQ7CiAgICAgICAgIG1fY2FjaGVkU2VsZWN0aW9uRGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAg
ICAgICBtX2hhc0NhY2hlZFNlbGVjdGlvbiA9IHRydWU7CiAgICAgfQogCiAgICAgdm9pZCByZXN0
b3JlQ2FjaGVkU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwotICAgIGJvb2wgaGFz
Q2FjaGVkU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25TdGFydCA+
PSAwOyB9CisgICAgYm9vbCBoYXNDYWNoZWRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2hh
c0NhY2hlZFNlbGVjdGlvbjsgfQogCiAgICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2Vk
KCkgPSAwOwogCkBAIC0xNDMsOCArMTQ0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
aW50IGNvbXB1dGVTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwotICAgIGludCBjb21wdXRlU2VsZWN0
aW9uRW5kKCkgY29uc3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29u
c3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0OwogICAgIFRleHRG
aWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBjb21wdXRlU2VsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3Q7
CiAKICAgICB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1
c2VkRWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJikgZmluYWw7CkBAIC0xNzMsMTEgKzE3NCwx
MyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fdGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFu
Z2VFdmVudDsKIAotICAgIGludCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0OwotICAgIGludCBtX2Nh
Y2hlZFNlbGVjdGlvbkVuZDsKKyAgICB1bnNpZ25lZCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0Owor
ICAgIHVuc2lnbmVkIG1fY2FjaGVkU2VsZWN0aW9uRW5kOwogCiAgICAgaW50IG1fbWF4TGVuZ3Ro
IHsgLTEgfTsKICAgICBpbnQgbV9taW5MZW5ndGggeyAtMSB9OworCisgICAgYm9vbCBtX2hhc0Nh
Y2hlZFNlbGVjdGlvbiB7IGZhbHNlIH07CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudCogZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGNvbnN0IFBvc2l0aW9u
Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMDIyNDUzNDRlZGFiNjI4ZDQ2MmEwNTQ0NjczYTg4NWRhMjJlYTFlNi4uYTBh
YzA4YmUxZmZkOTQxMDBkOTE0ZDNiZTIyZDg1OWNjNGZjOWY3OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W3NlbGVjdGlvbl0gQ2hhbmdlIGZvcm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVk
IGxvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Nzk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSB0ZXN0IGFjY29yZGluZ2x5LiBUaGlzIGlzIGlubGluZSB3aXRoIENocm9taXVtLiAKKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS5odG1s
OgorCiAyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W1NlbGVjdGlvbl0gRml4ZXMgc2VsZWN0aW9uIHJhbmdlIHNldHRpbmdzIGZvciBURVhUQVJFQQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZjdmNzU5NzhiYjRlZjc2ODY1ZmM3ODUy
OTg1ZGIwNTE4Nzg2MjhmMi4uNTg3MjE2ODM3N2Q4ZWEzOWFiNWQ1YzBkYjQxNjY4NjA2MDFkZjM2
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjIt
MDMtMTYgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbc2VsZWN0aW9u
XSBDaGFuZ2UgZm9ybSdzIHNlbGVjdGlvbiBhdHRyaWJ1dGUgdG8gdW5zaWduZWQgbG9uZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3OTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3Qg
ZXhwZWN0YXRpb25zIGFzIG1vcmUgc3ViLXRlc3RzIGFyZSBub3cgcGFzc2luZy4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0
aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQt
ZW5kLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxl
Y3Rpb25SYW5nZS1leHBlY3RlZC50eHQ6CisKIDIwMjItMDMtMTcgIFppcmFuIFN1biAgPHpzdW5A
aWdhbGlhLmNvbT4KIAogICAgICAgICBbU2VsZWN0aW9uXSBGaXhlcyBzZWxlY3Rpb24gcmFuZ2Ug
c2V0dGluZ3MgZm9yIFRFWFRBUkVBCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwKaW5kZXggZWVlZTcwNTU0MzA5YmNlYmE2
YzAxYTFjOTllOTZmOWNhMmU2YjdiMi4uN2JmZGExZWE0YmU4YzM0NWI2Nzk1MWVlYjE5YWY4OWEw
ZWYxYzYyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJh
bmNlLXNlbGVjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXBw
ZWFyYW5jZS1zZWxlY3Rpb24uaHRtbApAQCAtMTEsOCArMTEsOCBAQCBmdW5jdGlvbiB0ZXN0ICgp
IHsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoNCwgMTAsIDMsIDMsIDMsIHRlc3RGaWVsZCwgcmVz
dWx0cyk7CiAgICAgdGVzdFNlbGVjdGlvbkVuZCg1LCAyLCAyLCAyLCB0ZXN0RmllbGQsIHJlc3Vs
dHMpOwogICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg2LCA1LCA0LCA0LCA0LCB0ZXN0RmllbGQsIHJl
c3VsdHMpOwotICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg3LCAtNSwgLTQsIDAsIDAsIHRlc3RGaWVs
ZCwgcmVzdWx0cyk7Ci0gICAgdGVzdFNlbGVjdGlvblJhbmdlKDgsIC01LCA4MCwgMCwgMjAsIHRl
c3RGaWVsZCwgcmVzdWx0cyk7CisgICAgdGVzdFNlbGVjdGlvblJhbmdlKDcsIC01LCAtNCwgMjAs
IDIwLCB0ZXN0RmllbGQsIHJlc3VsdHMpOworICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg4LCAtNSwg
ODAsIDIwLCAyMCwgdGVzdEZpZWxkLCByZXN1bHRzKTsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2Uo
OSwgMywgMTIsIDMsIDEyLCB0ZXN0RmllbGQsIHJlc3VsdHMpOwogCiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApp
bmRleCBlOTZkMjJmYjcyYzUyYWRhY2YzNmRmYzM2NjdmYjY3ZDFlMGFjMDFjLi45NjNkZmRhNWM1
ZjNhNDJiZTI2ZWEzMGMzZWM1NTQ3NmFkZTVlMzI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTYsNDMg
KzYsNDMgQEAgSWYgdGhpcyB0ZXN0IHBhc3NlZCB5b3UnbGwgc2VlIGEgYnVuY2ggb2YgY29ycmVj
dCBzZWxlY3Rpb24gcmFuZ2VzIGJlbG93LiBDaGVjawogPT09dGV4dGFyZWE9PT0KIHNldFNlbGVj
dGlvblJhbmdlKCk6CiAzLCA3Ci0wLCA1Cis1LCA1CiA0MiwgNDgKIDIsIDIKIAogc2VsZWN0aW9u
U3RhcnQ6CiAzLCAzCiA3LCA3Ci0wLCA3Cis0OCwgNDgKIDQ4LCA0OAogMywgNDgKIAogc2VsZWN0
aW9uRW5kOgogMywgNQogMiwgMgotMCwgMAotMCwgNDgKKzIsIDQ4CisyLCA0OAogNywgNwogCiA9
PT1pbnB1dD09PQogc2V0U2VsZWN0aW9uUmFuZ2UoKToKIDMsIDcKLTAsIDUKKzUsIDUKIDQyLCA0
OAogMiwgMgogCiBzZWxlY3Rpb25TdGFydDoKIDMsIDMKIDcsIDcKLTAsIDcKKzQ4LCA0OAogNDgs
IDQ4CiAzLCA0OAogCiBzZWxlY3Rpb25FbmQ6CiAzLCA1CiAyLCAyCi0wLCAwCi0wLCA0OAorMiwg
NDgKKzIsIDQ4CiA3LCA3CiAKID09PWJ1dHRvbj09PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3Rl
ZC50eHQKaW5kZXggMzhmYTAxOGJhMjc0NjBmYTk5N2ZkYmE5N2E5YTE2NjllM2VjY2I3NC4uZTUy
MTcxZGU5ZDA2ZWEyZTM4YTdlMzA0NjE4NWI4YTIyN2Q3ZGE1NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHktZXhwZWN0ZWQudHh0CkBAIC0xOCw3ICsxOCw3IEBAIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25T
dGFydCBpcyA1CiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDUKIFBBU1MgZWxlbWVudC5z
ZWxlY3Rpb25TdGFydCBpcyAwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDAKLVBBU1Mg
ZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQg
aXMgMTAKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMTAKIFBBU1MgZWxlbWVudC5zZWxl
Y3Rpb25TdGFydCBpcyAwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDEwCkBAIC0zMiw3
ICszMiw3IEBAIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyA1CiBQQVNTIGVsZW1lbnQu
c2VsZWN0aW9uRW5kIGlzIDUKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCiBQQVNT
IGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDAKLVBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBp
cyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMTAKIFBBU1MgZWxlbWVudC5zZWxl
Y3Rpb25FbmQgaXMgMTAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHkuaHRtbAppbmRleCAyOTI1MDUxMWY1YzFmYzE2YWIzMGQ5YjcxZmE1NTFhYzczMDUwMGZiLi40
Y2I4ZWMwM2UzZGRlZjg3MWZjNzUwNGIwOTlmMWIyNTE3ZDUxNDUyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRt
bApAQCAtMTYsMTAgKzE2LDEwIEBAIGRlc2NyaXB0aW9uKCdUZXN0cyBmb3Igc2VsZWN0aW9uU3Rh
cnQgYW5kIHNlbGVjdGlvbkVuZCBvbiByZWFkLW9ubHkgSU5QVVQgYW5kIFRFCiBmdW5jdGlvbiBz
dGFydFRlc3QoZWxlbWVudCwgc3RhcnQsIGVuZCkgew0KICAgICBlbGVtZW50LnNldFNlbGVjdGlv
blJhbmdlKHN0YXJ0LCBlbmQpOw0KIA0KLSAgICBzdGFydCA9IHN0YXJ0IDwgMCA/IDAgOiBzdGFy
dDsNCisgICAgc3RhcnQgPSBzdGFydCAtIE1hdGguZmxvb3Ioc3RhcnQgLyBNYXRoLnBvdygyLCAz
MikpICogTWF0aC5wb3coMiwgMzIpOw0KICAgICBlbmQgPSBlbmQgPiAxMCA/IDEwIDogZW5kOw0K
ICAgICBzdGFydCA9IHN0YXJ0ID4gZW5kID8gZW5kIDogc3RhcnQ7DQotCisNCiAgICAgaWYgKGVs
ZW1lbnQuc2VsZWN0aW9uU3RhcnQgIT0gc3RhcnQpDQogICAgICAgICB0ZXN0RmFpbGVkKCdlbGVt
ZW50LnNlbGVjdGlvblN0YXJ0JyArICcgc2hvdWxkIGJlICcgKyBzdGFydCArICcgYnV0IGl0IGlz
ICcgKyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0KTsNCiAgICAgZWxzZQ0KQEAgLTQ0LDQgKzQ0LDQg
QEAgdGVzdEhhbmRsZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FyZWEnKSk7CiAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KICA8L2Jv
ZHk+DQogPC9odG1sPg0KLQorDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rp
b24vc2VsZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3Nl
bGVjdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYTNlZmQ3MDYxNWNkYmNkZGYzMjg2YjZjMWY0ZGQ2
YmRiM2Y2N2VmZi4uYmUzOGJmMzg0ZWM1MDgzNDAyNzE3NGZlYjU3NjU2Mzk1N2JiMGM0NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tZXhwZWN0ZWQudHh0
CkBAIC0xMyw0ICsxMyw4IEBAIEZBSUwgdGVzdCBTZWxlY3Rpb25FbmQgb2Zmc2V0IGZvciB0ZXh0
YXJlYSB0aGF0IGlzIGFwcGVuZGVkIGFzc2VydF9lcXVhbHM6IFNlbGVjCiBGQUlMIHRlc3QgU2Vs
ZWN0aW9uRW5kIG9mZnNldCBmb3IgdGV4dGFyZWEgdGhhdCBpcyAgbm90IGFwcGVuZGVkIGFzc2Vy
dF9lcXVhbHM6IFNlbGVjdGlvbkVuZCBvZmZzZXQgd2l0aG91dCBzZWxlY3Rpb24gaW4gdGV4dGFy
ZWEtbm90LWFwcGVuZGVkIGV4cGVjdGVkIDEwIGJ1dCBnb3QgMAogUEFTUyB0ZXN0IFNlbGVjdGlv
bkRpcmVjdGlvbiBmb3IgaW5wdXQKIFBBU1MgdGVzdCBTZWxlY3Rpb25EaXJlY3Rpb24gZm9yIHRl
eHRhcmVhCitQQVNTIHRlc3Qgc2Nyb2xsTGVmdCBmb3IgaW5wdXQKK1BBU1MgdGVzdCBzY3JvbGxM
ZWZ0IHByZXNlcnZhdGlvbiBmb3IgaW5wdXQKK1BBU1MgdGVzdCBjb250YWluZXIuc2Nyb2xsVG9w
IGZvciBpbnB1dAorUEFTUyB0ZXN0IGNvbnRhaW5lci5zY3JvbGxUb3AgZm9yIHRleHRhcmVhCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1zdGFydC1l
bmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0
YXJ0LWVuZC1leHBlY3RlZC50eHQKaW5kZXggZjFmYjVhMDFiODcxNmE0MDIzNTFiMWU0NGY1MGVi
MjE5NTNlNWU2OC4uNDBmNmRiNjU5M2I2MGIwMGY4MzU1YTRkZWNkMmU2MzAwY2I5OTZhMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0
YXJ0LWVuZC1leHBlY3RlZC50eHQKQEAgLTQwLDggKzQwLDggQEAgTk9UUlVOIG9uc2VsZWN0IHNo
b3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlzIGNoYW5nZWQgb24gdGV4dGFyZWEtbm90LWFw
cGVuZGUKIE5PVFJVTiBvbnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlvbkVuZCBpcyBj
aGFuZ2VkIG9uCiBQQVNTIFNldHRpbmcgc2VsZWN0aW9uU3RhcnQgdG8gYSB2YWx1ZSBsYXJnZXIg
dGhhbiBzZWxlY3Rpb25FbmQgc2hvdWxkIGluY3JlYXNlIHNlbGVjdGlvbkVuZAogUEFTUyBTZXR0
aW5nIHNlbGVjdGlvbkVuZCB0byBhIHZhbHVlIHNtYWxsZXIgdGhhbiBzZWxlY3Rpb25TdGFydCBz
aG91bGQgZGVjcmVhc2Ugc2VsZWN0aW9uU3RhcnQKLUZBSUwgc2VsZWN0aW9uU3RhcnQgZWRnZS1j
YXNlIHZhbHVlcyBhc3NlcnRfZXF1YWxzOiBzZWxlY3Rpb25TdGFydCBzZXR0ZXIgb24gaW5wdXQt
YXBwZW5kZWQgc2hvdWxkIGNvbnZlcnQgLTEgdG8gMl4zMi0xIGV4cGVjdGVkIDEwIGJ1dCBnb3Qg
MAotRkFJTCBzZWxlY3Rpb25FbmQgZWRnZS1jYXNlIHZhbHVlcyBhc3NlcnRfZXF1YWxzOiBzZWxl
Y3Rpb25FbmQgc2V0dGVyIG9uIGlucHV0LWFwcGVuZGVkIHNob3VsZCBjb252ZXJ0IC0xIHRvIDJe
MzItMSBleHBlY3RlZCAxMCBidXQgZ290IDAKK1BBU1Mgc2VsZWN0aW9uU3RhcnQgZWRnZS1jYXNl
IHZhbHVlcworUEFTUyBzZWxlY3Rpb25FbmQgZWRnZS1jYXNlIHZhbHVlcwogUEFTUyBzZWxlY3Rp
b25TdGFydCBzaG91bGQgYmUgY2xhbXBlZCBieSB0aGUgY3VycmVudCB2YWx1ZSBsZW5ndGgKIFBB
U1Mgc2VsZWN0aW9uRW5kIHNob3VsZCBiZSBjbGFtcGVkIGJ5IHRoZSBjdXJyZW50IHZhbHVlIGxl
bmd0aAogUEFTUyBzZXRTZWxlY3Rpb25SYW5nZSBzaG91bGQgYmUgY2xhbXBlZCBieSB0aGUgY3Vy
cmVudCB2YWx1ZSBsZW5ndGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9u
L3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxlY3Rpb25SYW5nZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zv
cm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0U2VsZWN0aW9uUmFu
Z2UtZXhwZWN0ZWQudHh0CmluZGV4IDJiNzYyZDA1NDg4N2YyOTMxYTVkM2E0ZDI1YjAyNmZjY2Q1
ZjQxMjYuLmIyMjhkY2I5MTY5OWZkZmE5YjBjYmE0MjFjNGI4NmRhZmFjODUzMTkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxl
Y3Rpb25SYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24v
dGV4dGZpZWxkc2VsZWN0aW9uLXNldFNlbGVjdGlvblJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMTYs
OCArMTYsOCBAQCBQQVNTIGlucHV0IGRpcmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25SYW5nZSgwLDEs
Im5vbmUiKQogUEFTUyBpbnB1dCBkaXJlY3Rpb24gb2Ygc2V0U2VsZWN0aW9uUmFuZ2UoMCwxLCJo
b2dlIikKIFBBU1MgaW5wdXQgZGlyZWN0aW9uIG9mIHNldFNlbGVjdGlvblJhbmdlKDAsMSwiQkFD
S1dBUkQiKQogUEFTUyBpbnB1dCBkaXJlY3Rpb24gb2Ygc2V0U2VsZWN0aW9uUmFuZ2UoMCwxKQot
RkFJTCBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgxLC0xKSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50
LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSAxIGV4cGVjdGVkIDEgYnV0IGdvdCAwCi1GQUlMIGlu
cHV0IHNldFNlbGVjdGlvblJhbmdlKC0xLDEpIGFzc2VydF9lcXVhbHM6IEVDTUFTY3JpcHQgY29u
dmVyc2lvbiB0byB1bnNpZ25lZCBsb25nICsgaWYgZW5kIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0
byBzdGFydCB0aGVuIHRoZSBzdGFydCBvZiB0aGUgc2VsZWN0aW9uIGFuZCB0aGUgZW5kIG9mIHRo
ZSBzZWxlY3Rpb24gbXVzdCBib3RoIGJlIHBsYWNlZCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGNo
YXJhY3RlciB3aXRoIG9mZnNldCBlbmQgZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgaW5wdXQg
c2V0U2VsZWN0aW9uUmFuZ2UoMSwtMSkKK1BBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoLTEs
MSkKIFBBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoInN0cmluZyIsMSkKIFBBU1MgaW5wdXQg
c2V0U2VsZWN0aW9uUmFuZ2UodHJ1ZSwxKQogUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShb
XSwxKQpAQCAtMjUsOCArMjUsOCBAQCBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKHt9LDEp
CiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKE5hTiwxKQogUEFTUyBpbnB1dCBzZXRTZWxl
Y3Rpb25SYW5nZShudWxsLDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKHVuZGVmaW5l
ZCwxKQotRkFJTCBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMyKSAtIDIsIE1h
dGgucG93KDIsMzIpIC0gMSkgYXNzZXJ0X2VxdWFsczogZWxlbWVudC5zZWxlY3Rpb25TdGFydCBz
aG91bGQgYmUgdmFsdWUubGVuZ3RoIGV4cGVjdGVkIDUgYnV0IGdvdCAwCi1GQUlMIGlucHV0IHNl
dFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzEpLCBNYXRoLnBvdygyLDMyKSAtIDEpIGFzc2Vy
dF9lcXVhbHM6IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJlIHZhbHVlLmxlbmd0aCBl
eHBlY3RlZCA1IGJ1dCBnb3QgMAorUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBv
dygyLDMyKSAtIDIsIE1hdGgucG93KDIsMzIpIC0gMSkKK1BBU1MgaW5wdXQgc2V0U2VsZWN0aW9u
UmFuZ2UoTWF0aC5wb3coMiwzMSksIE1hdGgucG93KDIsMzIpIC0gMSkKIFRJTUVPVVQgaW5wdXQg
c2V0U2VsZWN0aW9uUmFuZ2UgZmlyZXMgYSBzZWxlY3QgZXZlbnQgVGVzdCB0aW1lZCBvdXQKIFBB
U1MgdGVzdCBvZiB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZQogUEFTUyB0ZXh0YXJlYSB0eXBl
b2YoaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UpJwpAQCAtNDgsNiArNDgsNiBAQCBQQVNTIHRleHRh
cmVhIHNldFNlbGVjdGlvblJhbmdlKHt9LDEpCiBQQVNTIHRleHRhcmVhIHNldFNlbGVjdGlvblJh
bmdlKE5hTiwxKQogUEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZShudWxsLDEpCiBQQVNT
IHRleHRhcmVhIHNldFNlbGVjdGlvblJhbmdlKHVuZGVmaW5lZCwxKQotRkFJTCB0ZXh0YXJlYSBz
ZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMyKSAtIDIsIE1hdGgucG93KDIsMzIpIC0gMSkg
YXNzZXJ0X2VxdWFsczogZWxlbWVudC5zZWxlY3Rpb25TdGFydCBzaG91bGQgYmUgdmFsdWUubGVu
Z3RoIGV4cGVjdGVkIDUgYnV0IGdvdCAwCi1GQUlMIHRleHRhcmVhIHNldFNlbGVjdGlvblJhbmdl
KE1hdGgucG93KDIsMzEpLCBNYXRoLnBvdygyLDMyKSAtIDEpIGFzc2VydF9lcXVhbHM6IGVsZW1l
bnQuc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJlIHZhbHVlLmxlbmd0aCBleHBlY3RlZCA1IGJ1dCBn
b3QgMAorUEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMyKSAtIDIs
IE1hdGgucG93KDIsMzIpIC0gMSkKK1BBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0
aC5wb3coMiwzMSksIE1hdGgucG93KDIsMzIpIC0gMSkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454963</attachid>
            <date>2022-03-17 06:00:16 -0700</date>
            <delta_ts>2022-03-17 07:11:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237951-20220317130015.patch</filename>
            <type>text/plain</type>
            <size>28715</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNiNGQ3ZmRjMWE1MDRm
ODM1YWQzMmM2ZGExYzYxNmY1N2IxNTBlOC4uZWY4MDJlYzRjMzFlZjZlNDliM2RhZjNhMzdiNzlk
ODk1ZDRlOWU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAzLTE3ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gQ2hhbmdlIGZv
cm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBjaGFuZ2UgdGhlIHR5
cGUgb2YgYXR0cmlidXRlICJzZWxlY3Rpb25TdGFydCIgYW5kICJzZWxlY3Rpb25FbmQiCisgICAg
ICAgIGZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLiBBbHNvICJzdGFydCIgYW5kICJlbmQiIHBh
cmFtZXRlcnMgaW4gZnVuY3Rpb24KKyAgICAgICAgc2VsZWN0aW9uUmFuZ2UoKSBuZWVkIHRvIGJl
IGNoYW5nZWQgY29ycmVzcG9uZGluZ2x5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
aXMgaW4gbGluZSB3aXRoIENocm9taXVtIENMIGF0CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS9jaHJvbWl1bS9jaHJvbWl1bS9jb21taXQvYjZmZjZkYjFjNTY4M2I1ZTU2NGE3MmIwOTQxYWQ1
MDRiNDEwZDFhZgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldERlZmF1bHRTZWxlY3Rpb25BZnRlckZv
Y3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0U2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2Vs
ZWN0aW9uU3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAg
ICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNhY2hlU2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpoYXNDYWNoZWRTZWxlY3Rpb24gY29u
c3QpOgorCiAyMDIyLTAzLTE3ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4IGFmdGVyIHIyOTEz
OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDcwMGQ1ZTUz
MTRiMWY5OTc0YTAzMjFmMjVlMTJkNTFkYTI4YmRhMGUuLmU4NDcwMGYxNTA1MTBmNGYwY2Y3NjI3
Y2IzZDM2ZGM3MmM2MmYyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcApAQCAtNDkyLDE0ICs0OTIsMTQgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVG
b2N1c0FwcGVhcmFuY2UoU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW8KIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGlvbkFmdGVyRm9jdXMoU2VsZWN0aW9u
UmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW9uTW9kZSwgU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZl
YWxNb2RlKQogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKLSAgICBpbnQgc3RhcnQgPSAw
OworICAgIHVuc2lnbmVkIHN0YXJ0ID0gMDsKICAgICBhdXRvIGRpcmVjdGlvbiA9IFNlbGVjdGlv
bkhhc05vRGlyZWN0aW9uOwogICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwog
ICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+ZWRpdG9yKCkuYmVoYXZpb3IoKS5zaG91bGRNb3ZlU2Vs
ZWN0aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSkgewotICAgICAgICBzdGFydCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgICAgIHN0YXJ0ID0gc3RkOjpudW1l
cmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogICAgICAgICBkaXJlY3Rpb24gPSBTZWxlY3Rp
b25IYXNGb3J3YXJkRGlyZWN0aW9uOwogICAgIH0KLSAgICBpbnQgZW5kID0gcmVzdG9yYXRpb25N
b2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0U3RhcnQgPyBzdGFy
dCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgdW5zaWduZWQgZW5kID0g
cmVzdG9yYXRpb25Nb2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0
U3RhcnQgPyBzdGFydCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKICAg
ICBzZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kLCBkaXJlY3Rpb24sIHJldmVhbE1vZGUsIEVs
ZW1lbnQ6OmRlZmF1bHRGb2N1c1RleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIH0KIApAQCAtMjA2
OSw3ICsyMDY5LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVPbkZv
Y3VzQ2hhbmdlSWZOZWVkZWQoKQogICAgICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50
ZXJuYWwoKTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVj
dGlvblN0YXJ0Rm9yQmluZGluZ3MoKSBjb25zdAorc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gSFRN
TElucHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAg
aWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRUeXBlLT5zdXBwb3J0c1NlbGVjdGlv
bkFQSSgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtMjA3Nyw3ICsyMDc3LDcg
QEAgc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0Rm9y
QmluZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25TdGFydCgpOwogfQogCi1FeGNl
cHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydEZvckJpbmRp
bmdzKHN0ZDo6b3B0aW9uYWw8aW50PiBzdGFydCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1
dEVsZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4gc3RhcnQpCiB7CiAgICAgaWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRU
eXBlLT5zdXBwb3J0c1NlbGVjdGlvbkFQSSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJUaGUgaW5wdXQgZWxlbWVudCdzIHR5cGUgKCciICsgbV9pbnB1
dFR5cGUtPmZvcm1Db250cm9sVHlwZSgpICsgIicpIGRvZXMgbm90IHN1cHBvcnQgc2VsZWN0aW9u
LiIgfTsKQEAgLTIwODYsNyArMjA4Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDxpCiAgICAg
cmV0dXJuIHsgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IEhU
TUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKIHsKICAgICBp
ZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRzU2VsZWN0aW9u
QVBJKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC0yMDk0LDcgKzIwOTQsNyBA
QCBzdGQ6Om9wdGlvbmFsPGludD4gSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kRm9yQmlu
ZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25FbmQoKTsKIH0KIAotRXhjZXB0aW9u
T3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kRm9yQmluZGluZ3Moc3Rk
OjpvcHRpb25hbDxpbnQ+IGVuZCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGVuZCkK
IHsKICAgICBpZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRz
U2VsZWN0aW9uQVBJKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIlRoZSBpbnB1dCBlbGVtZW50J3MgdHlwZSAoJyIgKyBtX2lucHV0VHlwZS0+Zm9ybUNv
bnRyb2xUeXBlKCkgKyAiJykgZG9lcyBub3Qgc3VwcG9ydCBzZWxlY3Rpb24uIiB9OwpAQCAtMjEy
MCw3ICsyMTIwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2Vs
ZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoY29uc3QgU3RyaW4KICAgICByZXR1cm4geyB9Owog
fQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5n
ZUZvckJpbmRpbmdzKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24p
CitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZv
ckJpbmRpbmdzKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IFN0cmluZyYgZGly
ZWN0aW9uKQogewogICAgIGlmICghY2FuSGF2ZVNlbGVjdGlvbigpIHx8ICFtX2lucHV0VHlwZS0+
c3VwcG9ydHNTZWxlY3Rpb25BUEkoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiVGhlIGlucHV0IGVsZW1lbnQncyB0eXBlICgnIiArIG1faW5wdXRUeXBl
LT5mb3JtQ29udHJvbFR5cGUoKSArICInKSBkb2VzIG5vdCBzdXBwb3J0IHNlbGVjdGlvbi4iIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDg1MDRmYjYyNjk2Yzdm
MDFlMTg5YjJkNzMxOWY3ODAwYzU5Yzg1NzcuLjM2NWUyNWUzYmUwNzVmYzA5MTU4NjJiNWQ0Mjgx
N2RjZWU1YjY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0z
NDQsMTYgKzM0NCwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRUcnVuY2F0ZVRleHQoY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVTdHlsZU9uRm9jdXND
aGFuZ2VJZk5lZWRlZCgpOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MoKSBjb25zdDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25T
dGFydEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8aW50Pik7CisgICAgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gc2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4pOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvbkVuZEZvckJpbmRpbmdz
KCkgY29uc3Q7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uRW5kRm9yQmluZGlu
Z3Moc3RkOjpvcHRpb25hbDxpbnQ+KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzZWxl
Y3Rpb25FbmRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+KTsKIAogICAgIEV4
Y2VwdGlvbk9yPFN0cmluZz4gc2VsZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoKSBjb25zdDsK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25EaXJlY3Rpb25Gb3JCaW5kaW5ncyhj
b25zdCBTdHJpbmcmKTsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVjdGlvblJhbmdl
Rm9yQmluZGluZ3MoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uUmFuZ2VGb3JCaW5kaW5ncyh1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7CiAKICAg
ICBTdHJpbmcgcmVzdWx0Rm9yRGlhbG9nU3VibWl0KCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDMzZWI1NzFjZWQ2NmI0OWFhYjhi
MzZhZDQzZmI2ZjE3MWFhZWVlYjUuLjg2NWUzNzlmNGE3YzUwZDRmZTc0YjUxNGFkYmUxM2VjNDNl
NDhjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNzcs
MTQgKzc3LDE0IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKIAog
ICAgIHVuZGVmaW5lZCBzZWxlY3QoKTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zZWxlY3Rpb25TdGFy
dEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgbG9uZz8gc2VsZWN0aW9uU3RhcnQ7Ci0gICAgW0ltcGxl
bWVudGVkQXM9c2VsZWN0aW9uRW5kRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBsb25nPyBzZWxlY3Rp
b25FbmQ7CisgICAgW0ltcGxlbWVudGVkQXM9c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5nc10gYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmc/IHNlbGVjdGlvblN0YXJ0OworICAgIFtJbXBsZW1lbnRlZEFz
PXNlbGVjdGlvbkVuZEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZz8gc2VsZWN0
aW9uRW5kOwogICAgIFtJbXBsZW1lbnRlZEFzPXNlbGVjdGlvbkRpcmVjdGlvbkZvckJpbmRpbmdz
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmlu
ZWQgc2V0UmFuZ2VUZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNl
dFJhbmdlVGV4dChET01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVu
c2lnbmVkIGxvbmcgZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAg
ICBbSW1wbGVtZW50ZWRBcz1zZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRpbmdzXSB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2UobG9uZyBzdGFydCwgbG9uZyBlbmQsIG9wdGlvbmFsIERPTVN0cmlu
ZyBkaXJlY3Rpb24pOworICAgIFtJbXBsZW1lbnRlZEFzPXNldFNlbGVjdGlvblJhbmdlRm9yQmlu
ZGluZ3NdIHVuZGVmaW5lZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1
bnNpZ25lZCBsb25nIGVuZCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CiAKICAgICBb
Q0VSZWFjdGlvbnM9Tm90TmVlZGVkLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWdu
OwogICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgdXNlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwK
aW5kZXggZjI4N2Y0NzIxOTQyODhkOWJlYjI4MjIyODVkZWRlMWZjZGIwNjNiYy4uYzQ2MGVkNWYw
NDJiZWQ2MzQ4YmQ4N2Q1YjU5YWFmMDM2MWM5MTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC01MCwxNCArNTAsMTQgQEAKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogCiAgICAgdW5kZWZpbmVkIHNlbGVjdCgpOwot
ICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlvblN0YXJ0OwotICAgIGF0dHJpYnV0ZSBsb25nIHNl
bGVjdGlvbkVuZDsKKyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25TdGFydDsK
KyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25FbmQ7CiAgICAgYXR0cmlidXRl
IERPTVN0cmluZyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmluZWQgc2V0UmFuZ2VU
ZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNldFJhbmdlVGV4dChE
T01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcg
ZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAgICB1bmRlZmluZWQg
c2V0U2VsZWN0aW9uUmFuZ2Uob3B0aW9uYWwgbG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIGxvbmcg
ZW5kID0gMCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CisgICAgdW5kZWZpbmVkIHNl
dFNlbGVjdGlvblJhbmdlKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgc3RhcnQgPSAwLCBvcHRpb25h
bCB1bnNpZ25lZCBsb25nIGVuZCA9IDAsIG9wdGlvbmFsIERPTVN0cmluZyBkaXJlY3Rpb24pOwog
CiAgICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIERPTVN0cmluZyBhdXRvY29t
cGxldGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCAzZGM5OGQ2MDMwODBkOGE0ZmMzNjBmMjU4NGMwMmM3NjMyZGQy
MGFkLi5kMmM5OTgzODNjZGQ3ZjRiMjlhNzA4YjYyYzVmMmI5ZDI3MWY4ZDIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAt
ODcsOCArODcsOCBAQCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTgogICAgICwgbV9sYXN0Q2hhbmdl
V2FzVXNlckVkaXQoZmFsc2UpCiAgICAgLCBtX2lzUGxhY2Vob2xkZXJWaXNpYmxlKGZhbHNlKQog
ICAgICwgbV9jYW5TaG93UGxhY2Vob2xkZXIodHJ1ZSkKLSAgICAsIG1fY2FjaGVkU2VsZWN0aW9u
U3RhcnQoLTEpCi0gICAgLCBtX2NhY2hlZFNlbGVjdGlvbkVuZCgtMSkKKyAgICAsIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQoMCkKKyAgICAsIG1fY2FjaGVkU2VsZWN0aW9uRW5kKDApCiB7CiB9CiAK
QEAgLTE5NCwxMiArMTk0LDEyIEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dENhblNob3dQbGFjZWhvbGRlcihib29sIGNhblNob3dQbGFjZWhvbGRlcikKICAgICB1cGRhdGVQ
bGFjZWhvbGRlclZpc2liaWxpdHkoKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0KQordm9pZCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQodW5zaWduZWQgc3RhcnQpCiB7CiAgICAgc2V0
U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIHN0ZDo6bWF4KHN0YXJ0LCBzZWxlY3Rpb25FbmQoKSksIHNl
bGVjdGlvbkRpcmVjdGlvbigpKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0U2VsZWN0aW9uRW5kKGludCBlbmQpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpzZXRTZWxlY3Rpb25FbmQodW5zaWduZWQgZW5kKQogewogICAgIHNldFNlbGVjdGlvblJh
bmdlKHN0ZDo6bWluKGVuZCwgc2VsZWN0aW9uU3RhcnQoKSksIGVuZCwgc2VsZWN0aW9uRGlyZWN0
aW9uKCkpOwogfQpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvbkRpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvbikKIAog
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0KFNlbGVjdGlvblJldmVhbE1v
ZGUgcmV2ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsK
LSAgICBzZXRTZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgp
LCBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgcmV2ZWFsTW9kZSwgaW50ZW50KTsKKyAgICBzZXRT
ZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIFNl
bGVjdGlvbkhhc05vRGlyZWN0aW9uLCByZXZlYWxNb2RlLCBpbnRlbnQpOwogfQogCiBTdHJpbmcg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CkBAIC0yOTAs
NyArMjkwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2UKICAgICByZXR1cm4geyB9OwogfQog
Ci12b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZShpbnQg
c3RhcnQsIGludCBlbmQsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50KQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29u
c3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50
JiBpbnRlbnQpCiB7CiAgICAgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9
IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uOwogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImZv
cndhcmQiKQpAQCAtMzAxLDE0ICszMDEsMTUgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHIKICAg
ICByZXR1cm4gc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCwgZGlyZWN0aW9uLCBTZWxlY3Rp
b25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgaW50ZW50KTsKIH0KIAotdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBU
ZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxNb2Rl
IHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQpCit2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50JiBpbnRlbnQpCiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICAvLyBDbGFtcHMgdG8gdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3RoLgotICAgIGVu
ZCA9IHN0ZDo6Y2xhbXAoZW5kLCAwLCBjbGFtcFRvPGludD4oaW5uZXJUZXh0VmFsdWUoKS5sZW5n
dGgoKSkpOwotICAgIHN0YXJ0ID0gc3RkOjpjbGFtcChzdGFydCwgMCwgZW5kKTsKKyAgICB1bnNp
Z25lZCBpbm5lclRleHRWYWx1ZUxlbmd0aCA9IGlubmVyVGV4dFZhbHVlKCkubGVuZ3RoKCk7Cisg
ICAgZW5kID0gc3RkOjptaW4oZW5kLCBpbm5lclRleHRWYWx1ZUxlbmd0aCk7CisgICAgc3RhcnQg
PSBzdGQ6Om1pbihzdGFydCwgZW5kKTsKIAogICAgIGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0
RWxlbWVudENyZWF0aW5nU2hhZG93U3VidHJlZUlmTmVlZGVkKCk7CiAgICAgYm9vbCBoYXNGb2N1
cyA9IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlzOwpAQCAtMzgwLDcgKzM4MSw3
IEBAIFZpc2libGVQb3NpdGlvbiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmlzaWJsZVBv
c2l0aW9uRm9ySW5kZXgoaW50IGluZGV4KSBjCiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1p
bnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KCkgY29uc3QKK3Vu
c2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb25TdGFydCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTM5MCw3
ICszOTEsNyBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
KCkgY29uc3QKICAgICByZXR1cm4gY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCk7CiB9CiAKLWludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
K3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uU3Rh
cnQoKSBjb25zdAogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKICAgICBSZWZQdHI8RnJh
bWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwpAQCAtNDAwLDcgKzQwMSw3IEBAIGludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QK
ICAgICByZXR1cm4gaW5kZXhGb3JQb3NpdGlvbihmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCkuc3RhcnQoKSk7CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0
aW9uRW5kKCkgY29uc3QKK3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxl
Y3Rpb25FbmQoKSBjb25zdAogewogICAgIGlmICghaXNUZXh0RmllbGQoKSkKICAgICAgICAgcmV0
dXJuIDA7CkBAIC00MDksNyArNDEwLDcgQEAgaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3Rpb25FbmQoKSBjb25zdAogICAgIHJldHVybiBjb21wdXRlU2VsZWN0aW9uRW5kKCk7
CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVu
ZCgpIGNvbnN0Cit1bnNpZ25lZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNl
bGVjdGlvbkVuZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVGV4dEZpZWxkKCkpOwogICAgIFJl
ZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNTNiZmQ3MzlhOGY0
NmM0NWRlN2ZjODdhNzNiMTY0NTFkOWNmMjk4Ny4uYWE2MzI4OWQxZTNhOTdjYWY2Y2Y0MDM1MzY5
ODQ4MjRhMDEwOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuaApAQCAtNzAsMTcgKzcwLDE3IEBAIHB1YmxpYzoKIAogICAgIGludCBp
bmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgo
aW50IGluZGV4KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uU3RhcnQo
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgc2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBzZWxlY3Rpb25FbmQoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBjb25zdCBBdG9tU3RyaW5nJiBzZWxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25FbmQoaW50KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNlbGVjdGlvblN0YXJ0KHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNlbGVjdGlvbkVuZCh1bnNpZ25lZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb25EaXJlY3Rpb24oY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZWxlY3QoU2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90
UmV2ZWFsLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5n
ZUludGVudCgpKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50KTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcm
IHNlbGVjdGlvbk1vZGUpOwotICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBp
bnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVj
dGlvbkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxN
b2RlID0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworICAgIHZvaWQgc2V0
U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5n
JiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50KCkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFu
Z2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0
aW9uID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgPSBTZWxl
Y3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNp
bXBsZVJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkg
Y29uc3Q7CkBAIC0xMjIsMTAgKzEyMiwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fY2FjaGVk
U2VsZWN0aW9uU3RhcnQgPSBzdGFydDsKICAgICAgICAgbV9jYWNoZWRTZWxlY3Rpb25FbmQgPSBl
bmQ7CiAgICAgICAgIG1fY2FjaGVkU2VsZWN0aW9uRGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAg
ICAgICBtX2hhc0NhY2hlZFNlbGVjdGlvbiA9IHRydWU7CiAgICAgfQogCiAgICAgdm9pZCByZXN0
b3JlQ2FjaGVkU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwotICAgIGJvb2wgaGFz
Q2FjaGVkU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25TdGFydCA+
PSAwOyB9CisgICAgYm9vbCBoYXNDYWNoZWRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2hh
c0NhY2hlZFNlbGVjdGlvbjsgfQogCiAgICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2Vk
KCkgPSAwOwogCkBAIC0xNDMsOCArMTQ0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
aW50IGNvbXB1dGVTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwotICAgIGludCBjb21wdXRlU2VsZWN0
aW9uRW5kKCkgY29uc3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29u
c3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0OwogICAgIFRleHRG
aWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBjb21wdXRlU2VsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3Q7
CiAKICAgICB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1
c2VkRWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJikgZmluYWw7CkBAIC0xNzMsMTEgKzE3NCwx
MyBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fdGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFu
Z2VFdmVudDsKIAotICAgIGludCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0OwotICAgIGludCBtX2Nh
Y2hlZFNlbGVjdGlvbkVuZDsKKyAgICB1bnNpZ25lZCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0Owor
ICAgIHVuc2lnbmVkIG1fY2FjaGVkU2VsZWN0aW9uRW5kOwogCiAgICAgaW50IG1fbWF4TGVuZ3Ro
IHsgLTEgfTsKICAgICBpbnQgbV9taW5MZW5ndGggeyAtMSB9OworCisgICAgYm9vbCBtX2hhc0Nh
Y2hlZFNlbGVjdGlvbiB7IGZhbHNlIH07CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudCogZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGNvbnN0IFBvc2l0aW9u
Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMDIyNDUzNDRlZGFiNjI4ZDQ2MmEwNTQ0NjczYTg4NWRhMjJlYTFlNi4uMDcx
ZTc0YzA4YTVmNzEwYjE3OGEzZDJjZDU0NTg0NjA4Mzc4NjIzNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W3NlbGVjdGlvbl0gQ2hhbmdlIGZvcm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVk
IGxvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Nzk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSB0ZXN0IGFjY29yZGluZ2x5LiBUaGlzIGlzIGlubGluZSB3aXRoIENocm9taXVtLgorICAg
ICAgICBOb3RlIHRoYXQgZm9yIHNlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbCwgdHdv
IHN1Yi10ZXN0cworICAgICAgICBhcmUgbm93IGZhaWxpbmcuIFRoaXMgaXMgdGhlIHJpZ2h0IGJl
aGF2aW91ciBzaW5jZSB0aGUgdGVzdCBhc3N1bWVzCisgICAgICAgIGludCB0eXBlIGZvciBzZWxl
Y3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uIEVuZC4gV2UgY291bGQgbW9kaWZ5IHRoZQorICAgICAg
ICB0ZXN0IGFuZCBtYWtlIHRoZSB0eXBlIG9mIHN0YXJ0IGFzIHVuc2lnbmVkLiBJbnRlcmVzdGlu
Z2x5IHRoZSB0ZXN0IHNjcmlwdCdzCisgICAgICAgIGZvcm1hdCBpcyBzdHJhbmdlIGFuZCBpdCBz
ZWVtcyBoYXZpbmcgInJldHVybiIgZm9yIGVhY2ggbGluZS4gU2ltcGx5IHVwZGF0aW5nCisgICAg
ICAgIHNvbWUgbGluZXMgb24gdGhlIHRlc3Qgc2NyaXB0cyBjYXVzZXMgZXJyb3JzIHdoZW4gYXBw
bHlpbmcgdGhlIHBhdGNoLiBXZSBoYXZlCisgICAgICAgIGRlY2lkZWQgdG8gYWRkcmVzcyB0aGlz
IHRlc3QgaW4gYSBzZXBhcmF0ZSBwYXRjaCAobWF5YmUgcmVtb3ZlIHRoZSBmaWxlIGFuZCBhZGRl
ZAorICAgICAgICBhIG5ldyBvbmUgd2l0aCBwcm9wZXIgZm9ybWF0KS4KKyAgICAgICAgCisgICAg
ICAgICogZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJhbmNlLXNlbGVjdGlvbi5odG1sOgorICAgICAg
ICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dDoK
KwogMjAyMi0wMy0xNyAgWmlyYW4gU3VuICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtT
ZWxlY3Rpb25dIEZpeGVzIHNlbGVjdGlvbiByYW5nZSBzZXR0aW5ncyBmb3IgVEVYVEFSRUEKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGY3Zjc1OTc4YmI0ZWY3Njg2NWZjNzg1Mjk4
NWRiMDUxODc4NjI4ZjIuLjU4NzIxNjgzNzdkOGVhMzlhYjVkNWMwZGI0MTY2ODYwNjAxZGYzNjAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAz
LTE2ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0g
Q2hhbmdlIGZvcm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVkIGxvbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0IGV4
cGVjdGF0aW9ucyBhcyBtb3JlIHN1Yi10ZXN0cyBhcmUgbm93IHBhc3NpbmcuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlv
bi9zZWxlY3Rpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVu
ZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0U2VsZWN0
aW9uUmFuZ2UtZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3VuQGln
YWxpYS5jb20+CiAKICAgICAgICAgW1NlbGVjdGlvbl0gRml4ZXMgc2VsZWN0aW9uIHJhbmdlIHNl
dHRpbmdzIGZvciBURVhUQVJFQQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC1hcHBlYXJhbmNlLXNlbGVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC1hcHBlYXJhbmNlLXNlbGVjdGlvbi5odG1sCmluZGV4IGVlZWU3MDU1NDMwOWJjZWJhNmMw
MWExYzk5ZTk2ZjljYTJlNmI3YjIuLjdiZmRhMWVhNGJlOGMzNDViNjc5NTFlZWIxOWFmODlhMGVm
MWM2MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5j
ZS1zZWxlY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWFwcGVh
cmFuY2Utc2VsZWN0aW9uLmh0bWwKQEAgLTExLDggKzExLDggQEAgZnVuY3Rpb24gdGVzdCAoKSB7
CiAgICAgdGVzdFNlbGVjdGlvblJhbmdlKDQsIDEwLCAzLCAzLCAzLCB0ZXN0RmllbGQsIHJlc3Vs
dHMpOwogICAgIHRlc3RTZWxlY3Rpb25FbmQoNSwgMiwgMiwgMiwgdGVzdEZpZWxkLCByZXN1bHRz
KTsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoNiwgNSwgNCwgNCwgNCwgdGVzdEZpZWxkLCByZXN1
bHRzKTsKLSAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoNywgLTUsIC00LCAwLCAwLCB0ZXN0RmllbGQs
IHJlc3VsdHMpOwotICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg4LCAtNSwgODAsIDAsIDIwLCB0ZXN0
RmllbGQsIHJlc3VsdHMpOworICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg3LCAtNSwgLTQsIDIwLCAy
MCwgdGVzdEZpZWxkLCByZXN1bHRzKTsKKyAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoOCwgLTUsIDgw
LCAyMCwgMjAsIHRlc3RGaWVsZCwgcmVzdWx0cyk7CiAgICAgdGVzdFNlbGVjdGlvblJhbmdlKDks
IDMsIDEyLCAzLCAxMiwgdGVzdEZpZWxkLCByZXN1bHRzKTsKIAogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKaW5k
ZXggZTk2ZDIyZmI3MmM1MmFkYWNmMzZkZmMzNjY3ZmI2N2QxZTBhYzAxYy4uOTYzZGZkYTVjNWYz
YTQyYmUyNmVhMzBjM2VjNTU0NzZhZGU1ZTMyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC02LDQzICs2
LDQzIEBAIElmIHRoaXMgdGVzdCBwYXNzZWQgeW91J2xsIHNlZSBhIGJ1bmNoIG9mIGNvcnJlY3Qg
c2VsZWN0aW9uIHJhbmdlcyBiZWxvdy4gQ2hlY2sKID09PXRleHRhcmVhPT09CiBzZXRTZWxlY3Rp
b25SYW5nZSgpOgogMywgNwotMCwgNQorNSwgNQogNDIsIDQ4CiAyLCAyCiAKIHNlbGVjdGlvblN0
YXJ0OgogMywgMwogNywgNwotMCwgNworNDgsIDQ4CiA0OCwgNDgKIDMsIDQ4CiAKIHNlbGVjdGlv
bkVuZDoKIDMsIDUKIDIsIDIKLTAsIDAKLTAsIDQ4CisyLCA0OAorMiwgNDgKIDcsIDcKIAogPT09
aW5wdXQ9PT0KIHNldFNlbGVjdGlvblJhbmdlKCk6CiAzLCA3Ci0wLCA1Cis1LCA1CiA0MiwgNDgK
IDIsIDIKIAogc2VsZWN0aW9uU3RhcnQ6CiAzLCAzCiA3LCA3Ci0wLCA3Cis0OCwgNDgKIDQ4LCA0
OAogMywgNDgKIAogc2VsZWN0aW9uRW5kOgogMywgNQogMiwgMgotMCwgMAotMCwgNDgKKzIsIDQ4
CisyLCA0OAogNywgNwogCiA9PT1idXR0b249PT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQu
dHh0CmluZGV4IDM4ZmEwMThiYTI3NDYwZmE5OTdmZGJhOTdhOWExNjY5ZTNlY2NiNzQuLmFmNGMy
ZDgyYWI4YWIyZDk1ZjhjMDM2Y2VmZmU2M2RlMWMyY2FmZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5
LWV4cGVjdGVkLnR4dApAQCAtMTgsNyArMTgsNyBAQCBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3Rh
cnQgaXMgNQogUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyA1CiBQQVNTIGVsZW1lbnQuc2Vs
ZWN0aW9uU3RhcnQgaXMgMAogUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAwCi1QQVNTIGVs
ZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMAorRkFJTCBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNo
b3VsZCBiZSAwIGJ1dCBpdCBpcyAxMAogUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAxMAog
UEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IGlzIDAKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25F
bmQgaXMgMTAKQEAgLTMyLDcgKzMyLDcgQEAgUEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IGlz
IDUKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgNQogUEFTUyBlbGVtZW50LnNlbGVjdGlv
blN0YXJ0IGlzIDAKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMAotUEFTUyBlbGVtZW50
LnNlbGVjdGlvblN0YXJ0IGlzIDAKK0ZBSUwgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBzaG91bGQg
YmUgMCBidXQgaXQgaXMgMTAKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMTAKIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0Zmll
bGRzZWxlY3Rpb24vc2VsZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYTNlZmQ3MDYxNWNkYmNkZGYzMjg2
YjZjMWY0ZGQ2YmRiM2Y2N2VmZi4uYmUzOGJmMzg0ZWM1MDgzNDAyNzE3NGZlYjU3NjU2Mzk1N2Ji
MGM0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tZXhw
ZWN0ZWQudHh0CkBAIC0xMyw0ICsxMyw4IEBAIEZBSUwgdGVzdCBTZWxlY3Rpb25FbmQgb2Zmc2V0
IGZvciB0ZXh0YXJlYSB0aGF0IGlzIGFwcGVuZGVkIGFzc2VydF9lcXVhbHM6IFNlbGVjCiBGQUlM
IHRlc3QgU2VsZWN0aW9uRW5kIG9mZnNldCBmb3IgdGV4dGFyZWEgdGhhdCBpcyAgbm90IGFwcGVu
ZGVkIGFzc2VydF9lcXVhbHM6IFNlbGVjdGlvbkVuZCBvZmZzZXQgd2l0aG91dCBzZWxlY3Rpb24g
aW4gdGV4dGFyZWEtbm90LWFwcGVuZGVkIGV4cGVjdGVkIDEwIGJ1dCBnb3QgMAogUEFTUyB0ZXN0
IFNlbGVjdGlvbkRpcmVjdGlvbiBmb3IgaW5wdXQKIFBBU1MgdGVzdCBTZWxlY3Rpb25EaXJlY3Rp
b24gZm9yIHRleHRhcmVhCitQQVNTIHRlc3Qgc2Nyb2xsTGVmdCBmb3IgaW5wdXQKK1BBU1MgdGVz
dCBzY3JvbGxMZWZ0IHByZXNlcnZhdGlvbiBmb3IgaW5wdXQKK1BBU1MgdGVzdCBjb250YWluZXIu
c2Nyb2xsVG9wIGZvciBpbnB1dAorUEFTUyB0ZXN0IGNvbnRhaW5lci5zY3JvbGxUb3AgZm9yIHRl
eHRhcmVhCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlv
bi1zdGFydC1lbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2Vs
ZWN0aW9uLXN0YXJ0LWVuZC1leHBlY3RlZC50eHQKaW5kZXggZjFmYjVhMDFiODcxNmE0MDIzNTFi
MWU0NGY1MGViMjE5NTNlNWU2OC4uNDBmNmRiNjU5M2I2MGIwMGY4MzU1YTRkZWNkMmU2MzAwY2I5
OTZhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0
YXJ0LWVuZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2Vs
ZWN0aW9uLXN0YXJ0LWVuZC1leHBlY3RlZC50eHQKQEAgLTQwLDggKzQwLDggQEAgTk9UUlVOIG9u
c2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlzIGNoYW5nZWQgb24gdGV4dGFy
ZWEtbm90LWFwcGVuZGUKIE5PVFJVTiBvbnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlv
bkVuZCBpcyBjaGFuZ2VkIG9uCiBQQVNTIFNldHRpbmcgc2VsZWN0aW9uU3RhcnQgdG8gYSB2YWx1
ZSBsYXJnZXIgdGhhbiBzZWxlY3Rpb25FbmQgc2hvdWxkIGluY3JlYXNlIHNlbGVjdGlvbkVuZAog
UEFTUyBTZXR0aW5nIHNlbGVjdGlvbkVuZCB0byBhIHZhbHVlIHNtYWxsZXIgdGhhbiBzZWxlY3Rp
b25TdGFydCBzaG91bGQgZGVjcmVhc2Ugc2VsZWN0aW9uU3RhcnQKLUZBSUwgc2VsZWN0aW9uU3Rh
cnQgZWRnZS1jYXNlIHZhbHVlcyBhc3NlcnRfZXF1YWxzOiBzZWxlY3Rpb25TdGFydCBzZXR0ZXIg
b24gaW5wdXQtYXBwZW5kZWQgc2hvdWxkIGNvbnZlcnQgLTEgdG8gMl4zMi0xIGV4cGVjdGVkIDEw
IGJ1dCBnb3QgMAotRkFJTCBzZWxlY3Rpb25FbmQgZWRnZS1jYXNlIHZhbHVlcyBhc3NlcnRfZXF1
YWxzOiBzZWxlY3Rpb25FbmQgc2V0dGVyIG9uIGlucHV0LWFwcGVuZGVkIHNob3VsZCBjb252ZXJ0
IC0xIHRvIDJeMzItMSBleHBlY3RlZCAxMCBidXQgZ290IDAKK1BBU1Mgc2VsZWN0aW9uU3RhcnQg
ZWRnZS1jYXNlIHZhbHVlcworUEFTUyBzZWxlY3Rpb25FbmQgZWRnZS1jYXNlIHZhbHVlcwogUEFT
UyBzZWxlY3Rpb25TdGFydCBzaG91bGQgYmUgY2xhbXBlZCBieSB0aGUgY3VycmVudCB2YWx1ZSBs
ZW5ndGgKIFBBU1Mgc2VsZWN0aW9uRW5kIHNob3VsZCBiZSBjbGFtcGVkIGJ5IHRoZSBjdXJyZW50
IHZhbHVlIGxlbmd0aAogUEFTUyBzZXRTZWxlY3Rpb25SYW5nZSBzaG91bGQgYmUgY2xhbXBlZCBi
eSB0aGUgY3VycmVudCB2YWx1ZSBsZW5ndGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxk
c2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxlY3Rpb25SYW5nZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0U2Vs
ZWN0aW9uUmFuZ2UtZXhwZWN0ZWQudHh0CmluZGV4IDJiNzYyZDA1NDg4N2YyOTMxYTVkM2E0ZDI1
YjAyNmZjY2Q1ZjQxMjYuLmIyMjhkY2I5MTY5OWZkZmE5YjBjYmE0MjFjNGI4NmRhZmFjODUzMTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRmaWVsZHNlbGVjdGlv
bi1zZXRTZWxlY3Rpb25SYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRz
ZWxlY3Rpb24vdGV4dGZpZWxkc2VsZWN0aW9uLXNldFNlbGVjdGlvblJhbmdlLWV4cGVjdGVkLnR4
dApAQCAtMTYsOCArMTYsOCBAQCBQQVNTIGlucHV0IGRpcmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25S
YW5nZSgwLDEsIm5vbmUiKQogUEFTUyBpbnB1dCBkaXJlY3Rpb24gb2Ygc2V0U2VsZWN0aW9uUmFu
Z2UoMCwxLCJob2dlIikKIFBBU1MgaW5wdXQgZGlyZWN0aW9uIG9mIHNldFNlbGVjdGlvblJhbmdl
KDAsMSwiQkFDS1dBUkQiKQogUEFTUyBpbnB1dCBkaXJlY3Rpb24gb2Ygc2V0U2VsZWN0aW9uUmFu
Z2UoMCwxKQotRkFJTCBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgxLC0xKSBhc3NlcnRfZXF1YWxz
OiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSAxIGV4cGVjdGVkIDEgYnV0IGdvdCAw
Ci1GQUlMIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKC0xLDEpIGFzc2VydF9lcXVhbHM6IEVDTUFT
Y3JpcHQgY29udmVyc2lvbiB0byB1bnNpZ25lZCBsb25nICsgaWYgZW5kIGlzIGxlc3MgdGhhbiBv
ciBlcXVhbCB0byBzdGFydCB0aGVuIHRoZSBzdGFydCBvZiB0aGUgc2VsZWN0aW9uIGFuZCB0aGUg
ZW5kIG9mIHRoZSBzZWxlY3Rpb24gbXVzdCBib3RoIGJlIHBsYWNlZCBpbW1lZGlhdGVseSBiZWZv
cmUgdGhlIGNoYXJhY3RlciB3aXRoIG9mZnNldCBlbmQgZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BB
U1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoMSwtMSkKK1BBU1MgaW5wdXQgc2V0U2VsZWN0aW9u
UmFuZ2UoLTEsMSkKIFBBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoInN0cmluZyIsMSkKIFBB
U1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UodHJ1ZSwxKQogUEFTUyBpbnB1dCBzZXRTZWxlY3Rp
b25SYW5nZShbXSwxKQpAQCAtMjUsOCArMjUsOCBAQCBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJh
bmdlKHt9LDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKE5hTiwxKQogUEFTUyBpbnB1
dCBzZXRTZWxlY3Rpb25SYW5nZShudWxsLDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdl
KHVuZGVmaW5lZCwxKQotRkFJTCBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMy
KSAtIDIsIE1hdGgucG93KDIsMzIpIC0gMSkgYXNzZXJ0X2VxdWFsczogZWxlbWVudC5zZWxlY3Rp
b25TdGFydCBzaG91bGQgYmUgdmFsdWUubGVuZ3RoIGV4cGVjdGVkIDUgYnV0IGdvdCAwCi1GQUlM
IGlucHV0IHNldFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzEpLCBNYXRoLnBvdygyLDMyKSAt
IDEpIGFzc2VydF9lcXVhbHM6IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJlIHZhbHVl
Lmxlbmd0aCBleHBlY3RlZCA1IGJ1dCBnb3QgMAorUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5n
ZShNYXRoLnBvdygyLDMyKSAtIDIsIE1hdGgucG93KDIsMzIpIC0gMSkKK1BBU1MgaW5wdXQgc2V0
U2VsZWN0aW9uUmFuZ2UoTWF0aC5wb3coMiwzMSksIE1hdGgucG93KDIsMzIpIC0gMSkKIFRJTUVP
VVQgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UgZmlyZXMgYSBzZWxlY3QgZXZlbnQgVGVzdCB0aW1l
ZCBvdXQKIFBBU1MgdGVzdCBvZiB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZQogUEFTUyB0ZXh0
YXJlYSB0eXBlb2YoaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UpJwpAQCAtNDgsNiArNDgsNiBAQCBQ
QVNTIHRleHRhcmVhIHNldFNlbGVjdGlvblJhbmdlKHt9LDEpCiBQQVNTIHRleHRhcmVhIHNldFNl
bGVjdGlvblJhbmdlKE5hTiwxKQogUEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZShudWxs
LDEpCiBQQVNTIHRleHRhcmVhIHNldFNlbGVjdGlvblJhbmdlKHVuZGVmaW5lZCwxKQotRkFJTCB0
ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMyKSAtIDIsIE1hdGgucG93KDIs
MzIpIC0gMSkgYXNzZXJ0X2VxdWFsczogZWxlbWVudC5zZWxlY3Rpb25TdGFydCBzaG91bGQgYmUg
dmFsdWUubGVuZ3RoIGV4cGVjdGVkIDUgYnV0IGdvdCAwCi1GQUlMIHRleHRhcmVhIHNldFNlbGVj
dGlvblJhbmdlKE1hdGgucG93KDIsMzEpLCBNYXRoLnBvdygyLDMyKSAtIDEpIGFzc2VydF9lcXVh
bHM6IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJlIHZhbHVlLmxlbmd0aCBleHBlY3Rl
ZCA1IGJ1dCBnb3QgMAorUEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygy
LDMyKSAtIDIsIE1hdGgucG93KDIsMzIpIC0gMSkKK1BBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9u
UmFuZ2UoTWF0aC5wb3coMiwzMSksIE1hdGgucG93KDIsMzIpIC0gMSkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454968</attachid>
            <date>2022-03-17 07:12:00 -0700</date>
            <delta_ts>2022-03-23 09:04:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237951-20220317141158.patch</filename>
            <type>text/plain</type>
            <size>29824</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNiNGQ3ZmRjMWE1MDRm
ODM1YWQzMmM2ZGExYzYxNmY1N2IxNTBlOC4uMDA4YWY2MTY0M2MxNGNkN2Y3MGUxMmJmMDQzZmQz
YjVlNjVjMjMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTAzLTE3ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gQ2hhbmdlIGZv
cm0ncyBzZWxlY3Rpb24gYXR0cmlidXRlIHRvIHVuc2lnbmVkIGxvbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzk1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHNob3VsZCBjaGFuZ2UgdGhlIHR5
cGUgb2YgYXR0cmlidXRlICJzZWxlY3Rpb25TdGFydCIgYW5kICJzZWxlY3Rpb25FbmQiCisgICAg
ICAgIGZyb20gbG9uZyB0byB1bnNpZ25lZCBsb25nLiBBbHNvICJzdGFydCIgYW5kICJlbmQiIHBh
cmFtZXRlcnMgaW4gZnVuY3Rpb24KKyAgICAgICAgc2VsZWN0aW9uUmFuZ2UoKSBuZWVkIHRvIGJl
IGNoYW5nZWQgY29ycmVzcG9uZGluZ2x5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
aXMgaW4gbGluZSB3aXRoIENocm9taXVtIENMIGF0CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS9jaHJvbWl1bS9jaHJvbWl1bS9jb21taXQvYjZmZjZkYjFjNTY4M2I1ZTU2NGE3MmIwOTQxYWQ1
MDRiNDEwZDFhZgorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldERlZmF1bHRTZWxlY3Rpb25BZnRlckZv
Y3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0
Rm9yQmluZGluZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0U2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmRGb3JCaW5kaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRp
bmdzKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnNldFNlbGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25FbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0
aW9uU3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCBjb25zdCk6CisgICAgICAgICog
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNhY2hlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpoYXNDYWNoZWRTZWxlY3Rpb24gY29uc3Qp
OgorCiAyMDIyLTAzLTE3ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4IGFmdGVyIHIyOTEzOTAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDcwMGQ1ZTUzMTRi
MWY5OTc0YTAzMjFmMjVlMTJkNTFkYTI4YmRhMGUuLmU4NDcwMGYxNTA1MTBmNGYwY2Y3NjI3Y2Iz
ZDM2ZGM3MmM2MmYyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cApAQCAtNDkyLDE0ICs0OTIsMTQgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVGb2N1
c0FwcGVhcmFuY2UoU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2RlIHJlc3RvcmF0aW8KIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6c2V0RGVmYXVsdFNlbGVjdGlvbkFmdGVyRm9jdXMoU2VsZWN0aW9uUmVz
dG9yYXRpb25Nb2RlIHJlc3RvcmF0aW9uTW9kZSwgU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxN
b2RlKQogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKLSAgICBpbnQgc3RhcnQgPSAwOwor
ICAgIHVuc2lnbmVkIHN0YXJ0ID0gMDsKICAgICBhdXRvIGRpcmVjdGlvbiA9IFNlbGVjdGlvbkhh
c05vRGlyZWN0aW9uOwogICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwogICAg
IGlmIChmcmFtZSAmJiBmcmFtZS0+ZWRpdG9yKCkuYmVoYXZpb3IoKS5zaG91bGRNb3ZlU2VsZWN0
aW9uVG9FbmRXaGVuRm9jdXNpbmdUZXh0SW5wdXQoKSkgewotICAgICAgICBzdGFydCA9IHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgICAgIHN0YXJ0ID0gc3RkOjpudW1lcmlj
X2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogICAgICAgICBkaXJlY3Rpb24gPSBTZWxlY3Rpb25I
YXNGb3J3YXJkRGlyZWN0aW9uOwogICAgIH0KLSAgICBpbnQgZW5kID0gcmVzdG9yYXRpb25Nb2Rl
ID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0U3RhcnQgPyBzdGFydCA6
IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgdW5zaWduZWQgZW5kID0gcmVz
dG9yYXRpb25Nb2RlID09IFNlbGVjdGlvblJlc3RvcmF0aW9uTW9kZTo6UGxhY2VDYXJldEF0U3Rh
cnQgPyBzdGFydCA6IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKICAgICBz
ZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kLCBkaXJlY3Rpb24sIHJldmVhbE1vZGUsIEVsZW1l
bnQ6OmRlZmF1bHRGb2N1c1RleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKIH0KIApAQCAtMjA2OSw3
ICsyMDY5LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVPbkZvY3Vz
Q2hhbmdlSWZOZWVkZWQoKQogICAgICAgICBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJu
YWwoKTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlv
blN0YXJ0Rm9yQmluZGluZ3MoKSBjb25zdAorc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gSFRNTElu
cHV0RWxlbWVudDo6c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0CiB7CiAgICAgaWYg
KCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRUeXBlLT5zdXBwb3J0c1NlbGVjdGlvbkFQ
SSgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtMjA3Nyw3ICsyMDc3LDcgQEAg
c3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0Rm9yQmlu
ZGluZ3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25TdGFydCgpOwogfQogCi1FeGNlcHRp
b25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydEZvckJpbmRpbmdz
KHN0ZDo6b3B0aW9uYWw8aW50PiBzdGFydCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNpZ25l
ZD4gc3RhcnQpCiB7CiAgICAgaWYgKCFjYW5IYXZlU2VsZWN0aW9uKCkgfHwgIW1faW5wdXRUeXBl
LT5zdXBwb3J0c1NlbGVjdGlvbkFQSSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJUaGUgaW5wdXQgZWxlbWVudCdzIHR5cGUgKCciICsgbV9pbnB1dFR5
cGUtPmZvcm1Db250cm9sVHlwZSgpICsgIicpIGRvZXMgbm90IHN1cHBvcnQgc2VsZWN0aW9uLiIg
fTsKQEAgLTIwODYsNyArMjA4Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1l
bnQ6OnNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDxpCiAgICAgcmV0
dXJuIHsgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxpbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNlbGVj
dGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IEhUTUxJ
bnB1dEVsZW1lbnQ6OnNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKCkgY29uc3QKIHsKICAgICBpZiAo
IWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRzU2VsZWN0aW9uQVBJ
KCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC0yMDk0LDcgKzIwOTQsNyBAQCBz
dGQ6Om9wdGlvbmFsPGludD4gSFRNTElucHV0RWxlbWVudDo6c2VsZWN0aW9uRW5kRm9yQmluZGlu
Z3MoKSBjb25zdAogICAgIHJldHVybiBzZWxlY3Rpb25FbmQoKTsKIH0KIAotRXhjZXB0aW9uT3I8
dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kRm9yQmluZGluZ3Moc3RkOjpv
cHRpb25hbDxpbnQ+IGVuZCkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGVuZCkKIHsK
ICAgICBpZiAoIWNhbkhhdmVTZWxlY3Rpb24oKSB8fCAhbV9pbnB1dFR5cGUtPnN1cHBvcnRzU2Vs
ZWN0aW9uQVBJKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIlRoZSBpbnB1dCBlbGVtZW50J3MgdHlwZSAoJyIgKyBtX2lucHV0VHlwZS0+Zm9ybUNvbnRy
b2xUeXBlKCkgKyAiJykgZG9lcyBub3Qgc3VwcG9ydCBzZWxlY3Rpb24uIiB9OwpAQCAtMjEyMCw3
ICsyMTIwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0
aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoY29uc3QgU3RyaW4KICAgICByZXR1cm4geyB9OwogfQog
Ci1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZv
ckJpbmRpbmdzKGludCBzdGFydCwgaW50IGVuZCwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24pCitF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZUZvckJp
bmRpbmdzKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIGNvbnN0IFN0cmluZyYgZGlyZWN0
aW9uKQogewogICAgIGlmICghY2FuSGF2ZVNlbGVjdGlvbigpIHx8ICFtX2lucHV0VHlwZS0+c3Vw
cG9ydHNTZWxlY3Rpb25BUEkoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiVGhlIGlucHV0IGVsZW1lbnQncyB0eXBlICgnIiArIG1faW5wdXRUeXBlLT5m
b3JtQ29udHJvbFR5cGUoKSArICInKSBkb2VzIG5vdCBzdXBwb3J0IHNlbGVjdGlvbi4iIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDg1MDRmYjYyNjk2YzdmMDFl
MTg5YjJkNzMxOWY3ODAwYzU5Yzg1NzcuLjM2NWUyNWUzYmUwNzVmYzA5MTU4NjJiNWQ0MjgxN2Rj
ZWU1YjY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zNDQs
MTYgKzM0NCwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRUcnVuY2F0ZVRleHQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVTdHlsZU9uRm9jdXNDaGFu
Z2VJZk5lZWRlZCgpOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvblN0YXJ0Rm9y
QmluZGluZ3MoKSBjb25zdDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25TdGFy
dEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8aW50Pik7CisgICAgc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4gc2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFNlbGVjdGlvblN0YXJ0Rm9yQmluZGluZ3Moc3RkOjpvcHRpb25hbDx1bnNpZ25l
ZD4pOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ+IHNlbGVjdGlvbkVuZEZvckJpbmRpbmdzKCkg
Y29uc3Q7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uRW5kRm9yQmluZGluZ3Mo
c3RkOjpvcHRpb25hbDxpbnQ+KTsKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBzZWxlY3Rp
b25FbmRGb3JCaW5kaW5ncygpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVj
dGlvbkVuZEZvckJpbmRpbmdzKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+KTsKIAogICAgIEV4Y2Vw
dGlvbk9yPFN0cmluZz4gc2VsZWN0aW9uRGlyZWN0aW9uRm9yQmluZGluZ3MoKSBjb25zdDsKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTZWxlY3Rpb25EaXJlY3Rpb25Gb3JCaW5kaW5ncyhjb25z
dCBTdHJpbmcmKTsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNlbGVjdGlvblJhbmdlRm9y
QmluZGluZ3MoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7Cisg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2VsZWN0aW9uUmFuZ2VGb3JCaW5kaW5ncyh1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbik7CiAKICAgICBT
dHJpbmcgcmVzdWx0Rm9yRGlhbG9nU3VibWl0KCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDMzZWI1NzFjZWQ2NmI0OWFhYjhiMzZh
ZDQzZmI2ZjE3MWFhZWVlYjUuLjg2NWUzNzlmNGE3YzUwZDRmZTc0YjUxNGFkYmUxM2VjNDNlNDhj
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNzcsMTQg
Kzc3LDE0IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKIAogICAg
IHVuZGVmaW5lZCBzZWxlY3QoKTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zZWxlY3Rpb25TdGFydEZv
ckJpbmRpbmdzXSBhdHRyaWJ1dGUgbG9uZz8gc2VsZWN0aW9uU3RhcnQ7Ci0gICAgW0ltcGxlbWVu
dGVkQXM9c2VsZWN0aW9uRW5kRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBsb25nPyBzZWxlY3Rpb25F
bmQ7CisgICAgW0ltcGxlbWVudGVkQXM9c2VsZWN0aW9uU3RhcnRGb3JCaW5kaW5nc10gYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmc/IHNlbGVjdGlvblN0YXJ0OworICAgIFtJbXBsZW1lbnRlZEFzPXNl
bGVjdGlvbkVuZEZvckJpbmRpbmdzXSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZz8gc2VsZWN0aW9u
RW5kOwogICAgIFtJbXBsZW1lbnRlZEFzPXNlbGVjdGlvbkRpcmVjdGlvbkZvckJpbmRpbmdzXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nPyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmluZWQg
c2V0UmFuZ2VUZXh0KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNldFJh
bmdlVGV4dChET01TdHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2ln
bmVkIGxvbmcgZW5kLCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAgICBb
SW1wbGVtZW50ZWRBcz1zZXRTZWxlY3Rpb25SYW5nZUZvckJpbmRpbmdzXSB1bmRlZmluZWQgc2V0
U2VsZWN0aW9uUmFuZ2UobG9uZyBzdGFydCwgbG9uZyBlbmQsIG9wdGlvbmFsIERPTVN0cmluZyBk
aXJlY3Rpb24pOworICAgIFtJbXBsZW1lbnRlZEFzPXNldFNlbGVjdGlvblJhbmdlRm9yQmluZGlu
Z3NdIHVuZGVmaW5lZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNp
Z25lZCBsb25nIGVuZCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CiAKICAgICBbQ0VS
ZWFjdGlvbnM9Tm90TmVlZGVkLCBSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWduOwog
ICAgIFtDRVJlYWN0aW9ucz1Ob3ROZWVkZWQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
dXNlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKaW5k
ZXggZjI4N2Y0NzIxOTQyODhkOWJlYjI4MjIyODVkZWRlMWZjZGIwNjNiYy4uYzQ2MGVkNWYwNDJi
ZWQ2MzQ4YmQ4N2Q1YjU5YWFmMDM2MWM5MTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC01MCwxNCArNTAsMTQgQEAKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogCiAgICAgdW5kZWZpbmVkIHNlbGVjdCgpOwotICAg
IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlvblN0YXJ0OwotICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVj
dGlvbkVuZDsKKyAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25TdGFydDsKKyAg
ICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25FbmQ7CiAgICAgYXR0cmlidXRlIERP
TVN0cmluZyBzZWxlY3Rpb25EaXJlY3Rpb247CiAKICAgICB1bmRlZmluZWQgc2V0UmFuZ2VUZXh0
KERPTVN0cmluZyByZXBsYWNlbWVudCk7CiAgICAgdW5kZWZpbmVkIHNldFJhbmdlVGV4dChET01T
dHJpbmcgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5k
LCBvcHRpb25hbCBET01TdHJpbmcgc2VsZWN0aW9uTW9kZSk7CiAKLSAgICB1bmRlZmluZWQgc2V0
U2VsZWN0aW9uUmFuZ2Uob3B0aW9uYWwgbG9uZyBzdGFydCA9IDAsIG9wdGlvbmFsIGxvbmcgZW5k
ID0gMCwgb3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbik7CisgICAgdW5kZWZpbmVkIHNldFNl
bGVjdGlvblJhbmdlKG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgc3RhcnQgPSAwLCBvcHRpb25hbCB1
bnNpZ25lZCBsb25nIGVuZCA9IDAsIG9wdGlvbmFsIERPTVN0cmluZyBkaXJlY3Rpb24pOwogCiAg
ICAgW0NFUmVhY3Rpb25zPU5vdE5lZWRlZF0gYXR0cmlidXRlIERPTVN0cmluZyBhdXRvY29tcGxl
dGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50LmNwcAppbmRleCAzZGM5OGQ2MDMwODBkOGE0ZmMzNjBmMjU4NGMwMmM3NjMyZGQyMGFk
Li5kMmM5OTgzODNjZGQ3ZjRiMjlhNzA4YjYyYzVmMmI5ZDI3MWY4ZDIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtODcs
OCArODcsOCBAQCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6SFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTgogICAgICwgbV9sYXN0Q2hhbmdlV2Fz
VXNlckVkaXQoZmFsc2UpCiAgICAgLCBtX2lzUGxhY2Vob2xkZXJWaXNpYmxlKGZhbHNlKQogICAg
ICwgbV9jYW5TaG93UGxhY2Vob2xkZXIodHJ1ZSkKLSAgICAsIG1fY2FjaGVkU2VsZWN0aW9uU3Rh
cnQoLTEpCi0gICAgLCBtX2NhY2hlZFNlbGVjdGlvbkVuZCgtMSkKKyAgICAsIG1fY2FjaGVkU2Vs
ZWN0aW9uU3RhcnQoMCkKKyAgICAsIG1fY2FjaGVkU2VsZWN0aW9uRW5kKDApCiB7CiB9CiAKQEAg
LTE5NCwxMiArMTk0LDEyIEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldENh
blNob3dQbGFjZWhvbGRlcihib29sIGNhblNob3dQbGFjZWhvbGRlcikKICAgICB1cGRhdGVQbGFj
ZWhvbGRlclZpc2liaWxpdHkoKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0KQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQodW5zaWduZWQgc3RhcnQpCiB7CiAgICAgc2V0U2Vs
ZWN0aW9uUmFuZ2Uoc3RhcnQsIHN0ZDo6bWF4KHN0YXJ0LCBzZWxlY3Rpb25FbmQoKSksIHNlbGVj
dGlvbkRpcmVjdGlvbigpKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6
c2V0U2VsZWN0aW9uRW5kKGludCBlbmQpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZXRTZWxlY3Rpb25FbmQodW5zaWduZWQgZW5kKQogewogICAgIHNldFNlbGVjdGlvblJhbmdl
KHN0ZDo6bWluKGVuZCwgc2VsZWN0aW9uU3RhcnQoKSksIGVuZCwgc2VsZWN0aW9uRGlyZWN0aW9u
KCkpOwogfQpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnNldFNlbGVjdGlvbkRpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvbikKIAogdm9p
ZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0KFNlbGVjdGlvblJldmVhbE1vZGUg
cmV2ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsKLSAg
ICBzZXRTZWxlY3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpLCBT
ZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgcmV2ZWFsTW9kZSwgaW50ZW50KTsKKyAgICBzZXRTZWxl
Y3Rpb25SYW5nZSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIFNlbGVj
dGlvbkhhc05vRGlyZWN0aW9uLCByZXZlYWxNb2RlLCBpbnRlbnQpOwogfQogCiBTdHJpbmcgSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CkBAIC0yOTAsNyAr
MjkwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNl
dFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2UKICAgICByZXR1cm4geyB9OwogfQogCi12
b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3Rh
cnQsIGludCBlbmQsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBjb25zdCBBWFRleHRT
dGF0ZUNoYW5nZUludGVudCYgaW50ZW50KQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3Qg
U3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBp
bnRlbnQpCiB7CiAgICAgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9IFNl
bGVjdGlvbkhhc05vRGlyZWN0aW9uOwogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImZvcndh
cmQiKQpAQCAtMzAxLDE0ICszMDEsMTUgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBjb25zdCBTdHIKICAgICBy
ZXR1cm4gc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCwgZGlyZWN0aW9uLCBTZWxlY3Rpb25S
ZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgaW50ZW50KTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBUZXh0
RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxNb2RlIHJl
dmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQpCit2b2lkIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBzdGFy
dCwgdW5zaWduZWQgZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBT
ZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50JiBpbnRlbnQpCiB7CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBDbGFtcHMgdG8gdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3RoLgotICAgIGVuZCA9
IHN0ZDo6Y2xhbXAoZW5kLCAwLCBjbGFtcFRvPGludD4oaW5uZXJUZXh0VmFsdWUoKS5sZW5ndGgo
KSkpOwotICAgIHN0YXJ0ID0gc3RkOjpjbGFtcChzdGFydCwgMCwgZW5kKTsKKyAgICB1bnNpZ25l
ZCBpbm5lclRleHRWYWx1ZUxlbmd0aCA9IGlubmVyVGV4dFZhbHVlKCkubGVuZ3RoKCk7CisgICAg
ZW5kID0gc3RkOjptaW4oZW5kLCBpbm5lclRleHRWYWx1ZUxlbmd0aCk7CisgICAgc3RhcnQgPSBz
dGQ6Om1pbihzdGFydCwgZW5kKTsKIAogICAgIGF1dG8gaW5uZXJUZXh0ID0gaW5uZXJUZXh0RWxl
bWVudENyZWF0aW5nU2hhZG93U3VidHJlZUlmTmVlZGVkKCk7CiAgICAgYm9vbCBoYXNGb2N1cyA9
IGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlzOwpAQCAtMzgwLDcgKzM4MSw3IEBA
IFZpc2libGVQb3NpdGlvbiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6dmlzaWJsZVBvc2l0
aW9uRm9ySW5kZXgoaW50IGluZGV4KSBjCiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCi1pbnQg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KCkgY29uc3QKK3Vuc2ln
bmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb25TdGFydCgpIGNvbnN0CiB7
CiAgICAgaWYgKCFpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTM5MCw3ICsz
OTEsNyBAQCBpbnQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvblN0YXJ0KCkg
Y29uc3QKICAgICByZXR1cm4gY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCk7CiB9CiAKLWludCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QKK3Vu
c2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb21wdXRlU2VsZWN0aW9uU3RhcnQo
KSBjb25zdAogewogICAgIEFTU0VSVChpc1RleHRGaWVsZCgpKTsKICAgICBSZWZQdHI8RnJhbWU+
IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwpAQCAtNDAwLDcgKzQwMSw3IEBAIGludCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3QKICAg
ICByZXR1cm4gaW5kZXhGb3JQb3NpdGlvbihmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCku
c3RhcnQoKSk7CiB9CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9u
RW5kKCkgY29uc3QKK3Vuc2lnbmVkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rp
b25FbmQoKSBjb25zdAogewogICAgIGlmICghaXNUZXh0RmllbGQoKSkKICAgICAgICAgcmV0dXJu
IDA7CkBAIC00MDksNyArNDEwLDcgQEAgaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
ZWxlY3Rpb25FbmQoKSBjb25zdAogICAgIHJldHVybiBjb21wdXRlU2VsZWN0aW9uRW5kKCk7CiB9
CiAKLWludCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVjdGlvbkVuZCgp
IGNvbnN0Cit1bnNpZ25lZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29tcHV0ZVNlbGVj
dGlvbkVuZCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVGV4dEZpZWxkKCkpOwogICAgIFJlZlB0
cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggNTNiZmQ3MzlhOGY0NmM0
NWRlN2ZjODdhNzNiMTY0NTFkOWNmMjk4Ny4uYWE2MzI4OWQxZTNhOTdjYWY2Y2Y0MDM1MzY5ODQ4
MjRhMDEwOTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuaApAQCAtNzAsMTcgKzcwLDE3IEBAIHB1YmxpYzoKIAogICAgIGludCBpbmRl
eEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW50
IGluZGV4KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uU3RhcnQoKSBj
b25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7CisgICAg
V0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgc2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCB1bnNpZ25lZCBzZWxlY3Rpb25FbmQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCBjb25zdCBBdG9tU3RyaW5nJiBzZWxlY3Rpb25EaXJlY3Rpb24oKSBjb25zdDsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRTZWxlY3Rpb25FbmQoaW50KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFNlbGVjdGlvblN0YXJ0KHVuc2lnbmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFNlbGVjdGlvbkVuZCh1bnNpZ25lZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZWxl
Y3Rpb25EaXJlY3Rpb24oY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZWxlY3QoU2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2
ZWFsLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5nZUlu
dGVudCgpKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50KTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJl
cGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIHNl
bGVjdGlvbk1vZGUpOwotICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQg
ZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQgc3RhcnQsIGludCBlbmQsIFRleHRGaWVsZFNlbGVjdGlv
bkRpcmVjdGlvbiA9IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCBTZWxlY3Rpb25SZXZlYWxNb2Rl
ID0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwsIGNvbnN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOworICAgIHZvaWQgc2V0U2Vs
ZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgY29uc3QgU3RyaW5nJiBk
aXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50KCkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2Uo
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9u
ID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgPSBTZWxlY3Rp
b25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQm
ID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNpbXBs
ZVJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29u
c3Q7CkBAIC0xMjIsMTAgKzEyMiwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fY2FjaGVkU2Vs
ZWN0aW9uU3RhcnQgPSBzdGFydDsKICAgICAgICAgbV9jYWNoZWRTZWxlY3Rpb25FbmQgPSBlbmQ7
CiAgICAgICAgIG1fY2FjaGVkU2VsZWN0aW9uRGlyZWN0aW9uID0gZGlyZWN0aW9uOworICAgICAg
ICBtX2hhc0NhY2hlZFNlbGVjdGlvbiA9IHRydWU7CiAgICAgfQogCiAgICAgdm9pZCByZXN0b3Jl
Q2FjaGVkU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUsIGNvbnN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50JiA9IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwotICAgIGJvb2wgaGFzQ2Fj
aGVkU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25TdGFydCA+PSAw
OyB9CisgICAgYm9vbCBoYXNDYWNoZWRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2hhc0Nh
Y2hlZFNlbGVjdGlvbjsgfQogCiAgICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2VkKCkg
PSAwOwogCkBAIC0xNDMsOCArMTQ0LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgaW50
IGNvbXB1dGVTZWxlY3Rpb25TdGFydCgpIGNvbnN0OwotICAgIGludCBjb21wdXRlU2VsZWN0aW9u
RW5kKCkgY29uc3Q7CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgY29uc3Q7
CisgICAgdW5zaWduZWQgY29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0OwogICAgIFRleHRGaWVs
ZFNlbGVjdGlvbkRpcmVjdGlvbiBjb21wdXRlU2VsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3Q7CiAK
ICAgICB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2Vk
RWxlbWVudCwgY29uc3QgRm9jdXNPcHRpb25zJikgZmluYWw7CkBAIC0xNzMsMTEgKzE3NCwxMyBA
QCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fdGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VF
dmVudDsKIAotICAgIGludCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0OwotICAgIGludCBtX2NhY2hl
ZFNlbGVjdGlvbkVuZDsKKyAgICB1bnNpZ25lZCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0OworICAg
IHVuc2lnbmVkIG1fY2FjaGVkU2VsZWN0aW9uRW5kOwogCiAgICAgaW50IG1fbWF4TGVuZ3RoIHsg
LTEgfTsKICAgICBpbnQgbV9taW5MZW5ndGggeyAtMSB9OworCisgICAgYm9vbCBtX2hhc0NhY2hl
ZFNlbGVjdGlvbiB7IGZhbHNlIH07CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudCogZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGNvbnN0IFBvc2l0aW9uJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggZTgwODZh
NzI2NGEwMDRmMDQxNjgwNGI0MzYyN2Y3ZGI5MTA5MGU3Zi4uNTkxNGYxNDljZDhlNDY2N2ZmMjRj
ZTdlMGYxODYyOTRkYjdkZTMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcApAQCAtNjA2LDcgKzYwNiw3IEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpo
YW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCYKICAg
ICB1bnNpZ25lZCBzZWxlY3Rpb25MZW5ndGggPSAwOwogICAgIGlmIChlbGVtZW50KCktPmZvY3Vz
ZWQoKSkgewogICAgICAgICBBU1NFUlQoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKGVsZW1lbnQo
KS0+ZG9jdW1lbnQoKS5mcmFtZSgpLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zdGFydCgpKSA9
PSBlbGVtZW50KCkpOwotICAgICAgICBpbnQgc2VsZWN0aW9uU3RhcnQgPSBlbGVtZW50KCktPnNl
bGVjdGlvblN0YXJ0KCk7CisgICAgICAgIHVuc2lnbmVkIHNlbGVjdGlvblN0YXJ0ID0gZWxlbWVu
dCgpLT5zZWxlY3Rpb25TdGFydCgpOwogICAgICAgICBBU1NFUlQoc2VsZWN0aW9uU3RhcnQgPD0g
ZWxlbWVudCgpLT5zZWxlY3Rpb25FbmQoKSk7CiAgICAgICAgIGludCBzZWxlY3Rpb25Db2RlVW5p
dENvdW50ID0gZWxlbWVudCgpLT5zZWxlY3Rpb25FbmQoKSAtIHNlbGVjdGlvblN0YXJ0OwogICAg
ICAgICBzZWxlY3Rpb25MZW5ndGggPSBzZWxlY3Rpb25Db2RlVW5pdENvdW50ID8gbnVtR3JhcGhl
bWVDbHVzdGVycyhTdHJpbmdWaWV3KGlubmVyVGV4dCkuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0
LCBzZWxlY3Rpb25Db2RlVW5pdENvdW50KSkgOiAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAyMjQ1MzQ0ZWRhYjYyOGQ0
NjJhMDU0NDY3M2E4ODVkYTIyZWExZTYuLjFhZTcyYTE0NmVkNjAyNjc4YWRiYTNiNmI2YzNmYmY1
ZGUyOGI1Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMi0wMy0xNyAgWmlyYW4gU3VuICA8
enN1bkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3Rpb25dIENoYW5nZSBmb3JtJ3Mgc2Vs
ZWN0aW9uIGF0dHJpYnV0ZSB0byB1bnNpZ25lZCBsb25nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc5NTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdCBhY2NvcmRpbmdseS4gVGhpcyBp
cyBpbmxpbmUgd2l0aCBDaHJvbWl1bS4KKworICAgICAgICBOb3RlIHRoYXQgZm9yIHNlbGVjdGlv
bi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbCwgdHdvIHN1Yi10ZXN0cworICAgICAgICBhcmUgbm93
IGZhaWxpbmcuIFRoaXMgaXMgdGhlIHJpZ2h0IGJlaGF2aW91ciBzaW5jZSB0aGUgdGVzdCBhc3N1
bWVzCisgICAgICAgIHR5cGVzIGZvciBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uRW5kIGFz
ICJpbnQiLiBXZSBjb3VsZCBtb2RpZnkgdGhlCisgICAgICAgIHRlc3QgYW5kIG1ha2UgdGhlIHR5
cGUgYXMgdW5zaWduZWQuIEludGVyZXN0aW5nbHkgdGhlIHRlc3Qgc2NyaXB0J3MKKyAgICAgICAg
Zm9ybWF0IGlzIHN0cmFuZ2UgYW5kIGl0IHNlZW1zIGhhdmluZyAicmV0dXJuIiBmb3IgZWFjaCBs
aW5lLiBTaW1wbHkgdXBkYXRpbmcKKyAgICAgICAgc29tZSBsaW5lcyBvbiB0aGUgdGVzdCBzY3Jp
cHRzIGNhdXNlcyBlcnJvcnMgd2hlbiBhcHBseWluZyB0aGUgcGF0Y2guIFdlIGhhdmUKKyAgICAg
ICAgZGVjaWRlZCB0byBhZGRyZXNzIHRoaXMgdGVzdCBpbiBhIHNlcGFyYXRlIHBhdGNoIChtYXli
ZSByZW1vdmUgdGhlIGZpbGUgYW5kIGFkZGVkCisgICAgICAgIGEgbmV3IG9uZSB3aXRoIHByb3Bl
ciBmb3JtYXQpLgorICAgICAgICAKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFu
Y2Utc2VsZWN0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9zZWxlY3Rpb24tZnVuY3Rp
b25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1l
bmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAzLTE3ICBaaXJhbiBTdW4gIDx6c3Vu
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NlbGVjdGlvbl0gRml4ZXMgc2VsZWN0aW9uIHJhbmdl
IHNldHRpbmdzIGZvciBURVhUQVJFQQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
ZjdmNzU5NzhiYjRlZjc2ODY1ZmM3ODUyOTg1ZGIwNTE4Nzg2MjhmMi4uNTg3MjE2ODM3N2Q4ZWEz
OWFiNWQ1YzBkYjQxNjY4NjA2MDFkZjM2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDMtMTYgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNv
bT4KKworICAgICAgICBbc2VsZWN0aW9uXSBDaGFuZ2UgZm9ybSdzIHNlbGVjdGlvbiBhdHRyaWJ1
dGUgdG8gdW5zaWduZWQgbG9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM3OTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXBkYXRlIHRlc3QgZXhwZWN0YXRpb25zIGFzIG1vcmUgc3ViLXRlc3RzIGFy
ZSBub3cgcGFzc2luZy4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNl
bGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3Rl
eHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxlY3Rpb25SYW5nZS1leHBlY3RlZC50eHQ6CisKIDIwMjIt
MDMtMTcgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbU2VsZWN0aW9u
XSBGaXhlcyBzZWxlY3Rpb24gcmFuZ2Ugc2V0dGluZ3MgZm9yIFRFWFRBUkVBCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Utc2VsZWN0aW9uLmh0bWwK
aW5kZXggZWVlZTcwNTU0MzA5YmNlYmE2YzAxYTFjOTllOTZmOWNhMmU2YjdiMi4uN2JmZGExZWE0
YmU4YzM0NWI2Nzk1MWVlYjE5YWY4OWEwZWYxYzYyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJhbmNlLXNlbGVjdGlvbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtYXBwZWFyYW5jZS1zZWxlY3Rpb24uaHRtbApAQCAtMTEsOCAr
MTEsOCBAQCBmdW5jdGlvbiB0ZXN0ICgpIHsKICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoNCwgMTAs
IDMsIDMsIDMsIHRlc3RGaWVsZCwgcmVzdWx0cyk7CiAgICAgdGVzdFNlbGVjdGlvbkVuZCg1LCAy
LCAyLCAyLCB0ZXN0RmllbGQsIHJlc3VsdHMpOwogICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg2LCA1
LCA0LCA0LCA0LCB0ZXN0RmllbGQsIHJlc3VsdHMpOwotICAgIHRlc3RTZWxlY3Rpb25SYW5nZSg3
LCAtNSwgLTQsIDAsIDAsIHRlc3RGaWVsZCwgcmVzdWx0cyk7Ci0gICAgdGVzdFNlbGVjdGlvblJh
bmdlKDgsIC01LCA4MCwgMCwgMjAsIHRlc3RGaWVsZCwgcmVzdWx0cyk7CisgICAgdGVzdFNlbGVj
dGlvblJhbmdlKDcsIC01LCAtNCwgMjAsIDIwLCB0ZXN0RmllbGQsIHJlc3VsdHMpOworICAgIHRl
c3RTZWxlY3Rpb25SYW5nZSg4LCAtNSwgODAsIDIwLCAyMCwgdGVzdEZpZWxkLCByZXN1bHRzKTsK
ICAgICB0ZXN0U2VsZWN0aW9uUmFuZ2UoOSwgMywgMTIsIDMsIDEyLCB0ZXN0RmllbGQsIHJlc3Vs
dHMpOwogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1m
dW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24t
ZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAppbmRleCBlOTZkMjJmYjcyYzUyYWRhY2YzNmRmYzM2Njdm
YjY3ZDFlMGFjMDFjLi45NjNkZmRhNWM1ZjNhNDJiZTI2ZWEzMGMzZWM1NTQ3NmFkZTVlMzI4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1mdW5jdGlvbnMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLWZ1bmN0aW9u
cy1leHBlY3RlZC50eHQKQEAgLTYsNDMgKzYsNDMgQEAgSWYgdGhpcyB0ZXN0IHBhc3NlZCB5b3Un
bGwgc2VlIGEgYnVuY2ggb2YgY29ycmVjdCBzZWxlY3Rpb24gcmFuZ2VzIGJlbG93LiBDaGVjawog
PT09dGV4dGFyZWE9PT0KIHNldFNlbGVjdGlvblJhbmdlKCk6CiAzLCA3Ci0wLCA1Cis1LCA1CiA0
MiwgNDgKIDIsIDIKIAogc2VsZWN0aW9uU3RhcnQ6CiAzLCAzCiA3LCA3Ci0wLCA3Cis0OCwgNDgK
IDQ4LCA0OAogMywgNDgKIAogc2VsZWN0aW9uRW5kOgogMywgNQogMiwgMgotMCwgMAotMCwgNDgK
KzIsIDQ4CisyLCA0OAogNywgNwogCiA9PT1pbnB1dD09PQogc2V0U2VsZWN0aW9uUmFuZ2UoKToK
IDMsIDcKLTAsIDUKKzUsIDUKIDQyLCA0OAogMiwgMgogCiBzZWxlY3Rpb25TdGFydDoKIDMsIDMK
IDcsIDcKLTAsIDcKKzQ4LCA0OAogNDgsIDQ4CiAzLCA0OAogCiBzZWxlY3Rpb25FbmQ6CiAzLCA1
CiAyLCAyCi0wLCAwCi0wLCA0OAorMiwgNDgKKzIsIDQ4CiA3LCA3CiAKID09PWJ1dHRvbj09PQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJl
YWRvbmx5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0
YXJ0LWVuZC1yZWFkb25seS1leHBlY3RlZC50eHQKaW5kZXggMzhmYTAxOGJhMjc0NjBmYTk5N2Zk
YmE5N2E5YTE2NjllM2VjY2I3NC4uYWY0YzJkODJhYjhhYjJkOTVmOGMwMzZjZWZmZTYzZGUxYzJj
YWZlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQt
ZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nl
bGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0CkBAIC0xOCw3ICsxOCw3IEBA
IFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyA1CiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9u
RW5kIGlzIDUKIFBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCiBQQVNTIGVsZW1lbnQu
c2VsZWN0aW9uRW5kIGlzIDAKLVBBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCitGQUlM
IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJlIDAgYnV0IGl0IGlzIDEwCiBQQVNTIGVs
ZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDEwCiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMg
MAogUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAxMApAQCAtMzIsNyArMzIsNyBAQCBQQVNT
IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgNQogUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBp
cyA1CiBQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMAogUEFTUyBlbGVtZW50LnNlbGVj
dGlvbkVuZCBpcyAwCi1QQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMAorRkFJTCBlbGVt
ZW50LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSAwIGJ1dCBpdCBpcyAxMAogUEFTUyBlbGVtZW50
LnNlbGVjdGlvbkVuZCBpcyAxMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLWV4cGVjdGVkLnR4dApp
bmRleCBhM2VmZDcwNjE1Y2RiY2RkZjMyODZiNmMxZjRkZDZiZGIzZjY3ZWZmLi5iZTM4YmYzODRl
YzUwODM0MDI3MTc0ZmViNTc2NTYzOTU3YmIwYzQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRm
aWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZp
ZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTEzLDQgKzEzLDggQEAgRkFJ
TCB0ZXN0IFNlbGVjdGlvbkVuZCBvZmZzZXQgZm9yIHRleHRhcmVhIHRoYXQgaXMgYXBwZW5kZWQg
YXNzZXJ0X2VxdWFsczogU2VsZWMKIEZBSUwgdGVzdCBTZWxlY3Rpb25FbmQgb2Zmc2V0IGZvciB0
ZXh0YXJlYSB0aGF0IGlzICBub3QgYXBwZW5kZWQgYXNzZXJ0X2VxdWFsczogU2VsZWN0aW9uRW5k
IG9mZnNldCB3aXRob3V0IHNlbGVjdGlvbiBpbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQgZXhwZWN0
ZWQgMTAgYnV0IGdvdCAwCiBQQVNTIHRlc3QgU2VsZWN0aW9uRGlyZWN0aW9uIGZvciBpbnB1dAog
UEFTUyB0ZXN0IFNlbGVjdGlvbkRpcmVjdGlvbiBmb3IgdGV4dGFyZWEKK1BBU1MgdGVzdCBzY3Jv
bGxMZWZ0IGZvciBpbnB1dAorUEFTUyB0ZXN0IHNjcm9sbExlZnQgcHJlc2VydmF0aW9uIGZvciBp
bnB1dAorUEFTUyB0ZXN0IGNvbnRhaW5lci5zY3JvbGxUb3AgZm9yIGlucHV0CitQQVNTIHRlc3Qg
Y29udGFpbmVyLnNjcm9sbFRvcCBmb3IgdGV4dGFyZWEKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90
ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zv
cm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dApp
bmRleCBmMWZiNWEwMWI4NzE2YTQwMjM1MWIxZTQ0ZjUwZWIyMTk1M2U1ZTY4Li40MGY2ZGI2NTkz
YjYwYjAwZjgzNTVhNGRlY2QyZTYzMDBjYjk5NmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRm
aWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zv
cm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dApA
QCAtNDAsOCArNDAsOCBAQCBOT1RSVU4gb25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rp
b25FbmQgaXMgY2hhbmdlZCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZQogTk9UUlVOIG9uc2VsZWN0
IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlzIGNoYW5nZWQgb24KIFBBU1MgU2V0dGlu
ZyBzZWxlY3Rpb25TdGFydCB0byBhIHZhbHVlIGxhcmdlciB0aGFuIHNlbGVjdGlvbkVuZCBzaG91
bGQgaW5jcmVhc2Ugc2VsZWN0aW9uRW5kCiBQQVNTIFNldHRpbmcgc2VsZWN0aW9uRW5kIHRvIGEg
dmFsdWUgc21hbGxlciB0aGFuIHNlbGVjdGlvblN0YXJ0IHNob3VsZCBkZWNyZWFzZSBzZWxlY3Rp
b25TdGFydAotRkFJTCBzZWxlY3Rpb25TdGFydCBlZGdlLWNhc2UgdmFsdWVzIGFzc2VydF9lcXVh
bHM6IHNlbGVjdGlvblN0YXJ0IHNldHRlciBvbiBpbnB1dC1hcHBlbmRlZCBzaG91bGQgY29udmVy
dCAtMSB0byAyXjMyLTEgZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCi1GQUlMIHNlbGVjdGlvbkVuZCBl
ZGdlLWNhc2UgdmFsdWVzIGFzc2VydF9lcXVhbHM6IHNlbGVjdGlvbkVuZCBzZXR0ZXIgb24gaW5w
dXQtYXBwZW5kZWQgc2hvdWxkIGNvbnZlcnQgLTEgdG8gMl4zMi0xIGV4cGVjdGVkIDEwIGJ1dCBn
b3QgMAorUEFTUyBzZWxlY3Rpb25TdGFydCBlZGdlLWNhc2UgdmFsdWVzCitQQVNTIHNlbGVjdGlv
bkVuZCBlZGdlLWNhc2UgdmFsdWVzCiBQQVNTIHNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSBjbGFt
cGVkIGJ5IHRoZSBjdXJyZW50IHZhbHVlIGxlbmd0aAogUEFTUyBzZWxlY3Rpb25FbmQgc2hvdWxk
IGJlIGNsYW1wZWQgYnkgdGhlIGN1cnJlbnQgdmFsdWUgbGVuZ3RoCiBQQVNTIHNldFNlbGVjdGlv
blJhbmdlIHNob3VsZCBiZSBjbGFtcGVkIGJ5IHRoZSBjdXJyZW50IHZhbHVlIGxlbmd0aApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4dGZpZWxkc2VsZWN0aW9uLXNl
dFNlbGVjdGlvblJhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9u
L3RleHRmaWVsZHNlbGVjdGlvbi1zZXRTZWxlY3Rpb25SYW5nZS1leHBlY3RlZC50eHQKaW5kZXgg
MmI3NjJkMDU0ODg3ZjI5MzFhNWQzYTRkMjViMDI2ZmNjZDVmNDEyNi4uYjIyOGRjYjkxNjk5ZmRm
YTliMGNiYTQyMWM0Yjg2ZGFmYWM4NTMxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRz
ZWxlY3Rpb24vdGV4dGZpZWxkc2VsZWN0aW9uLXNldFNlbGVjdGlvblJhbmdlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0
U2VsZWN0aW9uUmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0xNiw4ICsxNiw4IEBAIFBBU1MgaW5wdXQg
ZGlyZWN0aW9uIG9mIHNldFNlbGVjdGlvblJhbmdlKDAsMSwibm9uZSIpCiBQQVNTIGlucHV0IGRp
cmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25SYW5nZSgwLDEsImhvZ2UiKQogUEFTUyBpbnB1dCBkaXJl
Y3Rpb24gb2Ygc2V0U2VsZWN0aW9uUmFuZ2UoMCwxLCJCQUNLV0FSRCIpCiBQQVNTIGlucHV0IGRp
cmVjdGlvbiBvZiBzZXRTZWxlY3Rpb25SYW5nZSgwLDEpCi1GQUlMIGlucHV0IHNldFNlbGVjdGlv
blJhbmdlKDEsLTEpIGFzc2VydF9lcXVhbHM6IGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgc2hvdWxk
IGJlIDEgZXhwZWN0ZWQgMSBidXQgZ290IDAKLUZBSUwgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2Uo
LTEsMSkgYXNzZXJ0X2VxdWFsczogRUNNQVNjcmlwdCBjb252ZXJzaW9uIHRvIHVuc2lnbmVkIGxv
bmcgKyBpZiBlbmQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHN0YXJ0IHRoZW4gdGhlIHN0YXJ0
IG9mIHRoZSBzZWxlY3Rpb24gYW5kIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiBtdXN0IGJvdGgg
YmUgcGxhY2VkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgY2hhcmFjdGVyIHdpdGggb2Zmc2V0IGVu
ZCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgxLC0x
KQorUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSgtMSwxKQogUEFTUyBpbnB1dCBzZXRTZWxl
Y3Rpb25SYW5nZSgic3RyaW5nIiwxKQogUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSh0cnVl
LDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKFtdLDEpCkBAIC0yNSw4ICsyNSw4IEBA
IFBBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2Uoe30sMSkKIFBBU1MgaW5wdXQgc2V0U2VsZWN0
aW9uUmFuZ2UoTmFOLDEpCiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKG51bGwsMSkKIFBB
U1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UodW5kZWZpbmVkLDEpCi1GQUlMIGlucHV0IHNldFNl
bGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzIpIC0gMiwgTWF0aC5wb3coMiwzMikgLSAxKSBhc3Nl
cnRfZXF1YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSB2YWx1ZS5sZW5ndGgg
ZXhwZWN0ZWQgNSBidXQgZ290IDAKLUZBSUwgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0aC5w
b3coMiwzMSksIE1hdGgucG93KDIsMzIpIC0gMSkgYXNzZXJ0X2VxdWFsczogZWxlbWVudC5zZWxl
Y3Rpb25TdGFydCBzaG91bGQgYmUgdmFsdWUubGVuZ3RoIGV4cGVjdGVkIDUgYnV0IGdvdCAwCitQ
QVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzIpIC0gMiwgTWF0aC5wb3co
MiwzMikgLSAxKQorUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMxKSwg
TWF0aC5wb3coMiwzMikgLSAxKQogVElNRU9VVCBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZSBmaXJl
cyBhIHNlbGVjdCBldmVudCBUZXN0IHRpbWVkIG91dAogUEFTUyB0ZXN0IG9mIHRleHRhcmVhLnNl
dFNlbGVjdGlvblJhbmdlCiBQQVNTIHRleHRhcmVhIHR5cGVvZihpbnB1dC5zZXRTZWxlY3Rpb25S
YW5nZSknCkBAIC00OCw2ICs0OCw2IEBAIFBBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2Uo
e30sMSkKIFBBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UoTmFOLDEpCiBQQVNTIHRleHRh
cmVhIHNldFNlbGVjdGlvblJhbmdlKG51bGwsMSkKIFBBU1MgdGV4dGFyZWEgc2V0U2VsZWN0aW9u
UmFuZ2UodW5kZWZpbmVkLDEpCi1GQUlMIHRleHRhcmVhIHNldFNlbGVjdGlvblJhbmdlKE1hdGgu
cG93KDIsMzIpIC0gMiwgTWF0aC5wb3coMiwzMikgLSAxKSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50
LnNlbGVjdGlvblN0YXJ0IHNob3VsZCBiZSB2YWx1ZS5sZW5ndGggZXhwZWN0ZWQgNSBidXQgZ290
IDAKLUZBSUwgdGV4dGFyZWEgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0aC5wb3coMiwzMSksIE1hdGgu
cG93KDIsMzIpIC0gMSkgYXNzZXJ0X2VxdWFsczogZWxlbWVudC5zZWxlY3Rpb25TdGFydCBzaG91
bGQgYmUgdmFsdWUubGVuZ3RoIGV4cGVjdGVkIDUgYnV0IGdvdCAwCitQQVNTIHRleHRhcmVhIHNl
dFNlbGVjdGlvblJhbmdlKE1hdGgucG93KDIsMzIpIC0gMiwgTWF0aC5wb3coMiwzMikgLSAxKQor
UEFTUyB0ZXh0YXJlYSBzZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMxKSwgTWF0aC5wb3co
MiwzMikgLSAxKQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455500</attachid>
            <date>2022-03-23 08:09:49 -0700</date>
            <delta_ts>2022-03-23 09:18:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237951-20220323150948.patch</filename>
            <type>text/plain</type>
            <size>23462</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRlODlhOWNmZTZiMDg0
YWNmNDc0Njk0Y2I1ZjY0NzllZTBmMGI2NS4uNmY4NTAyZDQ2NzY2OGRiNDllNDY3ODdmYmVlM2Rm
YmFjMjY0ODI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtOTgwLDYgKzk4MCwyNyBAQAogICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CiAgICAgICAgICogUHJvZmlsaW5nL1dlYkNv
cmUucHJvZmRhdGE6IEFkZGVkLgogCisyMDIyLTAzLTIxICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gRmlyZSBTZWxlY3QgZXZlbnQgd2hlbiBzZWxl
Y3Rpb24gZXh0ZW50IG9yIGRpcmVjdGlvbiBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgxNDIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcyBwZXIgc3RlcCA2IGF0IFsxXSwgaWYgZWl0aGVy
IGV4dGVudCBvciBkaXJlY3Rpb24gb2YgdGhlIHRleHQgY29udHJvbCB0byBiZSBtb2RpZmllZCwK
KyAgICAgICAgd2UgbmVlZCB0byBxdWV1ZSBhbiBlbGVtZW50IHRhc2sgb24gdGhlIHVzZXIgaW50
ZXJhY3Rpb24gdGFzayBzb3VyY2UgZ2l2ZW4gdGhlIGVsZW1lbnQKKyAgICAgICAgdG8gZmlyZSBh
biBzZWxlY3QgZXZlbnQgd2l0aCB0aGUgYnViYmxlcyBhdHRyaWJ1dGUgaW5pdGlhbGl6ZWQgdG8g
dHJ1ZS4KKyAgICAgICAgCisgICAgICAgIFsxXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9mb3JtLWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0RmllbGRTZWxl
Y3Rpb24KKworICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldFNlbGVjdGlv
blJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpj
YWNoZVNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6cmVzdG9yZUNhY2hlZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6c2NoZWR1bGVTZWxlY3RFdmVudCk6CisgICAgICAgICogaHRt
bC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNhY2hlU2VsZWN0aW9uKTogRGVsZXRlZC4KKwogMjAyMi0w
My0yMSAgWmlyYW4gU3VuICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtzZWxlY3Rpb25d
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzdWJ0cmVlSGFzQ2hhbmdlZCgpIHNob3VsZG4n
dCBiZSBjYWxsZWQgaW4gc2V0UmFuZ2VUZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDU3MGIzM2U4NDg5YjA1MTU0ZTNk
NjNjMTljODg0NmM0MmUzYWIyNjMuLjhkNGY4MDU5Y2IwZTQzZjZiMjA3OGY3MzAwMjIyNjZkM2Ri
MWEwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5j
bHVkZSAiRWxlbWVudEFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2lu
Y2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCkBAIC0yOTIsMTMgKzI5MywxNCBA
QCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSh1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLAogICAgIGVsc2UgaWYgKGRpcmVjdGlvblN0cmluZyA9
PSAiYmFja3dhcmQiKQogICAgICAgICBkaXJlY3Rpb24gPSBTZWxlY3Rpb25IYXNCYWNrd2FyZERp
cmVjdGlvbjsKIAotICAgIHJldHVybiBzZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kLCBkaXJl
Y3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsLCBpbnRlbnQpOworICAgIGlm
IChzZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kLCBkaXJlY3Rpb24sIFNlbGVjdGlvblJldmVh
bE1vZGU6OkRvTm90UmV2ZWFsLCBpbnRlbnQpKQorICAgICAgICBzY2hlZHVsZVNlbGVjdEV2ZW50
KCk7CiB9CiAKLXZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldFNlbGVjdGlvblJh
bmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVj
dGlvbiBkaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKK2Jvb2wgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFRl
eHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFNlbGVjdGlvblJldmVhbE1vZGUg
cmV2ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsKICAg
ICBpZiAoIWlzVGV4dEZpZWxkKCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgLy8gQ2xhbXBzIHRvIHRoZSBjdXJyZW50IHZhbHVlIGxlbmd0aC4KICAgICB1
bnNpZ25lZCBpbm5lclRleHRWYWx1ZUxlbmd0aCA9IGlubmVyVGV4dFZhbHVlKCkubGVuZ3RoKCk7
CkBAIC0zMTEsMjIgKzMxMywyMiBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
ZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLAogICAgIFJlZlB0
ciBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKICAgICBpZiAoZGlyZWN0aW9uID09IFNlbGVj
dGlvbkhhc05vRGlyZWN0aW9uICYmIGZyYW1lICYmIGZyYW1lLT5lZGl0b3IoKS5iZWhhdmlvcigp
LnNob3VsZENvbnNpZGVyU2VsZWN0aW9uQXNEaXJlY3Rpb25hbCgpKQogICAgICAgICBkaXJlY3Rp
b24gPSBTZWxlY3Rpb25IYXNGb3J3YXJkRGlyZWN0aW9uOworCisgICAgYm9vbCBkaWRDaGFuZ2Ug
PSBjYWNoZVNlbGVjdGlvbihzdGFydCwgZW5kLCBkaXJlY3Rpb24pOwogICAgIGlmICghaGFzRm9j
dXMgJiYgaW5uZXJUZXh0KSB7CiAgICAgICAgIGlmICghaXNDb25uZWN0ZWQoKSkgewotICAgICAg
ICAgICAgY2FjaGVTZWxlY3Rpb24oc3RhcnQsIGVuZCwgZGlyZWN0aW9uKTsKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBkaWRDaGFuZ2U7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyBGSVhNRTogUmVtb3ZpbmcgdGhpcyBzeW5jaHJvbm91cyBsYXlvdXQgcmVxdWlyZXMg
Zml4aW5nIHNldFNlbGVjdGlvbldpdGhvdXRVcGRhdGluZ0FwcGVhcmFuY2Ugbm90IG5lZWRpbmcg
dXAtdG8tZGF0ZSBzdHlsZS4KICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgICAgICBpZiAoIWlzVGV4dEZpZWxkKCkpCi0gICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgLy8g
RG91YmxlLWNoZWNrIG91ciBjb25uZWN0ZWQgc3RhdGUgYWZ0ZXIgdGhlIGxheW91dCB1cGRhdGUu
CiAgICAgICAgIGlmICghaXNDb25uZWN0ZWQoKSkgewotICAgICAgICAgICAgY2FjaGVTZWxlY3Rp
b24oc3RhcnQsIGVuZCwgZGlyZWN0aW9uKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIHJldHVybiBkaWRDaGFuZ2U7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBEb3VibGUtY2hl
Y2sgdGhlIHN0YXRlIG9mIGlubmVyVGV4dEVsZW1lbnQgYWZ0ZXIgdGhlIGxheW91dC4KQEAgLTMz
NSw4ICszMzcsNyBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rp
b25SYW5nZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLAogCiAgICAgICAgIGlmIChpbm5l
clRleHQgJiYgcmVuZGVyZXJUZXh0Q29udHJvbCkgewogICAgICAgICAgICAgaWYgKHJlbmRlcmVy
VGV4dENvbnRyb2wtPnN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OkhpZGRlbiB8
fCAhaW5uZXJUZXh0LT5yZW5kZXJCb3goKSB8fCAhaW5uZXJUZXh0LT5yZW5kZXJCb3goKS0+aGVp
Z2h0KCkpIHsKLSAgICAgICAgICAgICAgICBjYWNoZVNlbGVjdGlvbihzdGFydCwgZW5kLCBkaXJl
Y3Rpb24pOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZGlkQ2hhbmdlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMzU1LDYgKzM1
NiwxOCBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5n
ZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLAogCiAgICAgaWYgKFJlZlB0cjxGcmFtZT4g
ZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAgIGZyYW1lLT5zZWxlY3Rpb24oKS5t
b3ZlV2l0aG91dFZhbGlkYXRpb25UbyhzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbiwgZGlyZWN0
aW9uICE9IFNlbGVjdGlvbkhhc05vRGlyZWN0aW9uLCAhaGFzRm9jdXMsIHJldmVhbE1vZGUsIGlu
dGVudCk7CisKKyAgICByZXR1cm4gZGlkQ2hhbmdlOworfQorCitib29sIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpjYWNoZVNlbGVjdGlvbih1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5k
LCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIGJvb2wgZGlk
Q2hhbmdlID0gbV9jYWNoZWRTZWxlY3Rpb25TdGFydCAhPSBzdGFydCB8fCBtX2NhY2hlZFNlbGVj
dGlvbkVuZCAhPSBlbmQgfHwgbV9jYWNoZWRTZWxlY3Rpb25EaXJlY3Rpb24gIT0gZGlyZWN0aW9u
OworICAgIG1fY2FjaGVkU2VsZWN0aW9uU3RhcnQgPSBzdGFydDsKKyAgICBtX2NhY2hlZFNlbGVj
dGlvbkVuZCA9IGVuZDsKKyAgICBtX2NhY2hlZFNlbGVjdGlvbkRpcmVjdGlvbiA9IGRpcmVjdGlv
bjsKKyAgICBtX2hhc0NhY2hlZFNlbGVjdGlvbiA9IHRydWU7CisgICAgcmV0dXJuIGRpZENoYW5n
ZTsKIH0KIAogaW50IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjppbmRleEZvclZpc2libGVQ
b3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKSBjb25zdApAQCAtNTA5LDcg
KzUyMiw4IEBAIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IEhUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50OjpzZWxlY3Rpb24oKSBjb25zdAogCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjpyZXN0b3JlQ2FjaGVkU2VsZWN0aW9uKFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9k
ZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmIGludGVudCkKIHsKLSAgICBzZXRTZWxl
Y3Rpb25SYW5nZShtX2NhY2hlZFNlbGVjdGlvblN0YXJ0LCBtX2NhY2hlZFNlbGVjdGlvbkVuZCwg
Y2FjaGVkU2VsZWN0aW9uRGlyZWN0aW9uKCksIHJldmVhbE1vZGUsIGludGVudCk7CisgICAgaWYg
KHNldFNlbGVjdGlvblJhbmdlKG1fY2FjaGVkU2VsZWN0aW9uU3RhcnQsIG1fY2FjaGVkU2VsZWN0
aW9uRW5kLCBjYWNoZWRTZWxlY3Rpb25EaXJlY3Rpb24oKSwgcmV2ZWFsTW9kZSwgaW50ZW50KSkK
KyAgICAgICAgc2NoZWR1bGVTZWxlY3RFdmVudCgpOwogfQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZWxlY3Rpb25DaGFuZ2VkKGJvb2wgc2hvdWxkRmlyZVNlbGVjdEV2ZW50
KQpAQCAtNTI1LDYgKzUzOSwxMyBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
ZWxlY3Rpb25DaGFuZ2VkKGJvb2wgc2hvdWxkRmlyZVNlbGVjdEV2ZW50KQogICAgICAgICBkaXNw
YXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNlbGVjdEV2ZW50LCBFdmVudDo6
Q2FuQnViYmxlOjpZZXMsIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiB9CiAKK3ZvaWQgSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNjaGVkdWxlU2VsZWN0RXZlbnQoKQoreworICAgIGRv
Y3VtZW50KCkuZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OlVzZXJJbnRlcmFjdGlv
biwgW3Byb3RlY3RlZFRoaXMgPSBHQ1JlYWNoYWJsZVJlZiB7ICp0aGlzIH1dIHsKKyAgICAgICAg
cHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5z
ZWxlY3RFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bykpOworICAgIH0pOworfSAKKwogdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gcGxhY2Vob2xkZXJBdHRyKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggYWE2MzI4
OWQxZTNhOTdjYWY2Y2Y0MDM1MzY5ODQ4MjRhMDEwOTQ4Yy4uODAzMTRkMWIxOGE3OGZkYTBmMjhh
MzljMzJiMDQ5ZmU5ZTMyMjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtODAsMTIgKzgwLDEzIEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJhbmdlVGV4dChjb25z
dCBTdHJpbmcmIHJlcGxhY2VtZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIHNlbGVjdGlvbk1vZGUpOwog
ICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwg
Y29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiA9
IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50KCkpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
U2VsZWN0aW9uUmFuZ2UodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgVGV4dEZpZWxkU2Vs
ZWN0aW9uRGlyZWN0aW9uID0gU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24sIFNlbGVjdGlvblJldmVh
bE1vZGUgPSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCwgY29uc3QgQVhUZXh0U3Rh
dGVDaGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQg
ZW5kLCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gPSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlv
biwgU2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFs
LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVu
dCgpKTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHNlbGVjdGlvbigpIGNvbnN0
OwogICAgIFN0cmluZyBzZWxlY3RlZFRleHQoKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hG
b3JtQ29udHJvbENoYW5nZUV2ZW50KCkgZmluYWw7CisgICAgdm9pZCBzY2hlZHVsZVNlbGVjdEV2
ZW50KCk7CiAKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKIApAQCAtMTE3
LDEzICsxMTgsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHVwZGF0ZUlubmVyVGV4dEVsZW1l
bnRFZGl0YWJpbGl0eSgpOwogCi0gICAgdm9pZCBjYWNoZVNlbGVjdGlvbihpbnQgc3RhcnQsIGlu
dCBlbmQsIFRleHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pCi0gICAgewotICAg
ICAgICBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7Ci0gICAgICAgIG1fY2FjaGVkU2Vs
ZWN0aW9uRW5kID0gZW5kOwotICAgICAgICBtX2NhY2hlZFNlbGVjdGlvbkRpcmVjdGlvbiA9IGRp
cmVjdGlvbjsKLSAgICAgICAgbV9oYXNDYWNoZWRTZWxlY3Rpb24gPSB0cnVlOwotICAgIH0KKyAg
ICBib29sIGNhY2hlU2VsZWN0aW9uKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFRleHRG
aWVsZFNlbGVjdGlvbkRpcmVjdGlvbik7CiAKICAgICB2b2lkIHJlc3RvcmVDYWNoZWRTZWxlY3Rp
b24oU2VsZWN0aW9uUmV2ZWFsTW9kZSwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmID0g
QVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAgICAgYm9vbCBoYXNDYWNoZWRTZWxlY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2hhc0NhY2hlZFNlbGVjdGlvbjsgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggOTgxNDRlMmQzYWFjYzk4MmUyM2ZiNDAxMjFkODNmNjQwOWE3ZjM3
Ny4uZTZjMDNiZDVkMDExYjUxMzQ2NGM3YzY2MTczZmI4MDQxYjM3Y2VkMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC00NSw2ICs0NSwxNyBAQAogICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJtZXNzYWdpbmcvYnJvYWRjYXN0Y2hhbm5lbC9vcGFxdWUtb3JpZ2luLmh0
bWw6IEFkZGVkLgogICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJtZXNzYWdpbmcvYnJv
YWRjYXN0Y2hhbm5lbC93M2MtaW1wb3J0LmxvZzoKIAorMjAyMi0wMy0yMSAgWmlyYW4gU3VuICA8
enN1bkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3Rpb25dIEZpcmUgU2VsZWN0IGV2ZW50
IHdoZW4gc2VsZWN0aW9uIGV4dGVudCBvciBkaXJlY3Rpb24gY2hhbmdlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MTQyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3QgZXhwZWN0YXRp
b24gYXMgbW9yZSBzdWItdGVzdHMgYXJlIG5vdyBwYXNzaW5nLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0
aW9uLXN0YXJ0LWVuZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rp
b24tc2V0UmFuZ2VUZXh0LWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0yMSAgWmlyYW4gU3VuICA8
enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtzZWxlY3Rpb25dIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50OjpzdWJ0cmVlSGFzQ2hhbmdlZCgpIHNob3VsZG4ndCBiZSBjYWxsZWQgaW4gc2V0
UmFuZ2VUZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rp
b24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3Nl
bGVjdGlvbi1zdGFydC1lbmQtZXhwZWN0ZWQudHh0CmluZGV4IDQwZjZkYjY1OTNiNjBiMDBmODM1
NWE0ZGVjZDJlNjMwMGNiOTk2YTAuLmM1ZTQ0ZTNhMGVhMzQ1OTQ2ZTJkMmY1YWY5MTYxMThkYmQ4
MDBmYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1z
dGFydC1lbmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3Nl
bGVjdGlvbi1zdGFydC1lbmQtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNCBAQAogCi1IYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKLQogUEFTUyBTYW5pdHkgY2hlY2sgZm9y
IHRlc3RWYWx1ZSBsZW5ndGg7IGlmIHRoaXMgZmFpbHMsIHZhcmlvdSBhYnNvbHV0ZSBvZmZzZXRz
IGluIHRoZSB0ZXN0IGJlbG93IG5lZWQgdG8gYmUgYWRqdXN0ZWQgdG8gYmUgbGVzcyB0aGFuIHRl
c3RWYWx1ZS5sZW5ndGgKIFBBU1MgSW5pdGlhbCAudmFsdWUgc2V0IG9uIGlucHV0LWFwcGVuZGVk
IHNob3VsZCBzZXQgc2VsZWN0aW9uU3RhcnQgdG8gZW5kIG9mIHZhbHVlCiBQQVNTIEluaXRpYWwg
LnZhbHVlIHNldCBvbiBpbnB1dC1ub3QtYXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25TdGFy
dCB0byBlbmQgb2YgdmFsdWUKQEAgLTE5LDI1ICsxNywyNSBAQCBQQVNTIEluaXRpYWwgLnZhbHVl
IHNldCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25FbmQgdG8g
ZW5kCiBQQVNTIEluaXRpYWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1hcHBlbmRlZC1wcmVmb2N1
c2VkIHNob3VsZCBzZXQgc2VsZWN0aW9uRW5kIHRvIGVuZCBvZiB2YWx1ZQogUEFTUyBJbml0aWFs
IC52YWx1ZSBzZXQgb24gdGV4dGFyZWEtbm90LWFwcGVuZGVkLXByZWZvY3VzZWQgc2hvdWxkIHNl
dCBzZWxlY3Rpb25FbmQgdG8gZW5kIG9mIHZhbHVlCiBQQVNTIG9uc2VsZWN0IHNob3VsZCBmaXJl
IHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMgY2hhbmdlZAotTk9UUlVOIG9uc2VsZWN0IHNob3VsZCBm
aXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMgY2hhbmdlZCBvbiBpbnB1dC1hcHBlbmRlZAotTk9U
UlVOIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMgY2hhbmdlZCBv
biBpbnB1dC1ub3QtYXBwZW5kZWQKLU5PVFJVTiBvbnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNl
bGVjdGlvblN0YXJ0IGlzIGNoYW5nZWQgb24gaW5wdXQtYXBwZW5kZWQtcHJlZm9jdXNlZAotTk9U
UlVOIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMgY2hhbmdlZCBv
biBpbnB1dC1ub3QtYXBwZW5kZWQtcHJlZm9jdXNlZAotTk9UUlVOIG9uc2VsZWN0IHNob3VsZCBm
aXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMgY2hhbmdlZCBvbiB0ZXh0YXJlYS1hcHBlbmRlZAot
Tk9UUlVOIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMgY2hhbmdl
ZCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQKLU5PVFJVTiBvbnNlbGVjdCBzaG91bGQgZmlyZSB3
aGVuIHNlbGVjdGlvblN0YXJ0IGlzIGNoYW5nZWQgb24gdGV4dGFyZWEtYXBwZW5kZWQtcHJlZm9j
dXNlZAotTk9UUlVOIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMg
Y2hhbmdlZCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQtcHJlZm9jdXNlZAotTk9UUlVOIG9uc2Vs
ZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMgY2hhbmdlZCBvbgorUEFTUyBv
bnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlvblN0YXJ0IGlzIGNoYW5nZWQgb24gaW5w
dXQtYXBwZW5kZWQKK1BBU1Mgb25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rpb25TdGFy
dCBpcyBjaGFuZ2VkIG9uIGlucHV0LW5vdC1hcHBlbmRlZAorUEFTUyBvbnNlbGVjdCBzaG91bGQg
ZmlyZSB3aGVuIHNlbGVjdGlvblN0YXJ0IGlzIGNoYW5nZWQgb24gaW5wdXQtYXBwZW5kZWQtcHJl
Zm9jdXNlZAorUEFTUyBvbnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlvblN0YXJ0IGlz
IGNoYW5nZWQgb24gaW5wdXQtbm90LWFwcGVuZGVkLXByZWZvY3VzZWQKK1BBU1Mgb25zZWxlY3Qg
c2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rpb25TdGFydCBpcyBjaGFuZ2VkIG9uIHRleHRhcmVhLWFw
cGVuZGVkCitQQVNTIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMg
Y2hhbmdlZCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQKK1BBU1Mgb25zZWxlY3Qgc2hvdWxkIGZp
cmUgd2hlbiBzZWxlY3Rpb25TdGFydCBpcyBjaGFuZ2VkIG9uIHRleHRhcmVhLWFwcGVuZGVkLXBy
ZWZvY3VzZWQKK1BBU1Mgb25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rpb25TdGFydCBp
cyBjaGFuZ2VkIG9uIHRleHRhcmVhLW5vdC1hcHBlbmRlZC1wcmVmb2N1c2VkCitQQVNTIG9uc2Vs
ZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMgY2hhbmdlZCBvbgogUEFTUyBv
bnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlvbkVuZCBpcyBjaGFuZ2VkCi1OT1RSVU4g
b25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rpb25FbmQgaXMgY2hhbmdlZCBvbiBpbnB1
dC1hcHBlbmRlZAotTk9UUlVOIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5k
IGlzIGNoYW5nZWQgb24gaW5wdXQtbm90LWFwcGVuZGVkCi1OT1RSVU4gb25zZWxlY3Qgc2hvdWxk
IGZpcmUgd2hlbiBzZWxlY3Rpb25FbmQgaXMgY2hhbmdlZCBvbiBpbnB1dC1hcHBlbmRlZC1wcmVm
b2N1c2VkCi1OT1RSVU4gb25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rpb25FbmQgaXMg
Y2hhbmdlZCBvbiBpbnB1dC1ub3QtYXBwZW5kZWQtcHJlZm9jdXNlZAotTk9UUlVOIG9uc2VsZWN0
IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlzIGNoYW5nZWQgb24gdGV4dGFyZWEtYXBw
ZW5kZWQKLU5PVFJVTiBvbnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlvbkVuZCBpcyBj
aGFuZ2VkIG9uIHRleHRhcmVhLW5vdC1hcHBlbmRlZAotTk9UUlVOIG9uc2VsZWN0IHNob3VsZCBm
aXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlzIGNoYW5nZWQgb24gdGV4dGFyZWEtYXBwZW5kZWQtcHJl
Zm9jdXNlZAotTk9UUlVOIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlz
IGNoYW5nZWQgb24gdGV4dGFyZWEtbm90LWFwcGVuZGVkLXByZWZvY3VzZWQKLU5PVFJVTiBvbnNl
bGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlvbkVuZCBpcyBjaGFuZ2VkIG9uCitQQVNTIG9u
c2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlzIGNoYW5nZWQgb24gaW5wdXQt
YXBwZW5kZWQKK1BBU1Mgb25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rpb25FbmQgaXMg
Y2hhbmdlZCBvbiBpbnB1dC1ub3QtYXBwZW5kZWQKK1BBU1Mgb25zZWxlY3Qgc2hvdWxkIGZpcmUg
d2hlbiBzZWxlY3Rpb25FbmQgaXMgY2hhbmdlZCBvbiBpbnB1dC1hcHBlbmRlZC1wcmVmb2N1c2Vk
CitQQVNTIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uRW5kIGlzIGNoYW5nZWQg
b24gaW5wdXQtbm90LWFwcGVuZGVkLXByZWZvY3VzZWQKK1BBU1Mgb25zZWxlY3Qgc2hvdWxkIGZp
cmUgd2hlbiBzZWxlY3Rpb25FbmQgaXMgY2hhbmdlZCBvbiB0ZXh0YXJlYS1hcHBlbmRlZAorUEFT
UyBvbnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVjdGlvbkVuZCBpcyBjaGFuZ2VkIG9uIHRl
eHRhcmVhLW5vdC1hcHBlbmRlZAorUEFTUyBvbnNlbGVjdCBzaG91bGQgZmlyZSB3aGVuIHNlbGVj
dGlvbkVuZCBpcyBjaGFuZ2VkIG9uIHRleHRhcmVhLWFwcGVuZGVkLXByZWZvY3VzZWQKK1BBU1Mg
b25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rpb25FbmQgaXMgY2hhbmdlZCBvbiB0ZXh0
YXJlYS1ub3QtYXBwZW5kZWQtcHJlZm9jdXNlZAorUEFTUyBvbnNlbGVjdCBzaG91bGQgZmlyZSB3
aGVuIHNlbGVjdGlvbkVuZCBpcyBjaGFuZ2VkIG9uCiBQQVNTIFNldHRpbmcgc2VsZWN0aW9uU3Rh
cnQgdG8gYSB2YWx1ZSBsYXJnZXIgdGhhbiBzZWxlY3Rpb25FbmQgc2hvdWxkIGluY3JlYXNlIHNl
bGVjdGlvbkVuZAogUEFTUyBTZXR0aW5nIHNlbGVjdGlvbkVuZCB0byBhIHZhbHVlIHNtYWxsZXIg
dGhhbiBzZWxlY3Rpb25TdGFydCBzaG91bGQgZGVjcmVhc2Ugc2VsZWN0aW9uU3RhcnQKIFBBU1Mg
c2VsZWN0aW9uU3RhcnQgZWRnZS1jYXNlIHZhbHVlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0
ZmllbGRzZWxlY3Rpb24vdGV4dGZpZWxkc2VsZWN0aW9uLXNldFJhbmdlVGV4dC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0UmFu
Z2VUZXh0LWV4cGVjdGVkLnR4dAppbmRleCA0Yjk0OWNmNjkyNmU5YjA2NTQ2MTc5NDNkMzk1Y2Qy
YzBkMWQ0N2E5Li4wMTc5OWJhNzZiOWI5MDZkOGM5Y2U3ODcwODE5MWM0Yjk2MjY4MDU3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0
UmFuZ2VUZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90
ZXh0ZmllbGRzZWxlY3Rpb24tc2V0UmFuZ2VUZXh0LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQg
QEAKIAotSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCi0KIFBBU1MgdGV4
dCBzZXRSYW5nZVRleHQgd2l0aCBvbmx5IG9uZSBhcmd1bWVudCByZXBsYWNlcyB0aGUgdmFsdWUg
YmV0d2VlbiBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uRW5kLCBvdGhlcndpc2UgcmVwbGFj
ZXMgdGhlIHZhbHVlIGJldHdlZW4gMm5kIGFuZCAzcmQgYXJndW1lbnRzCiBQQVNTIHRleHQgc2Vs
ZWN0aW9uTW9kZSBtaXNzaW5nCiBQQVNTIHRleHQgc2VsZWN0aW9uTW9kZSAnc2VsZWN0JwpAQCAt
MTAsOCArOCw4IEBAIFBBU1MgdGV4dCBzZWxlY3Rpb25Nb2RlICdwcmVzZXJ2ZScKIFBBU1MgdGV4
dCBzZXRSYW5nZVRleHQgd2l0aCAzcmQgYXJndW1lbnQgZ3JlYXRlciB0aGFuIDJuZCBhcmd1bWVu
dCB0aHJvd3MgYW4gSW5kZXhTaXplRXJyb3IgZXhjZXB0aW9uCiBQQVNTIHRleHQgc2V0UmFuZ2VU
ZXh0IHdpdGhvdXQgYXJndW1lbnQgdGhyb3dzIGEgdHlwZSBlcnJvcgogUEFTUyB0ZXh0IHNldFJh
bmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudAotVElNRU9VVCB0ZXh0IHNldFJhbmdlVGV4dCBm
aXJlcyBhIHNlbGVjdCBldmVudCB3aGVuIGZ1bGx5IHNlbGVjdGVkIFRlc3QgdGltZWQgb3V0Ci1O
T1RSVU4gdGV4dCBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQgYWZ0ZXIgc2VsZWN0
KCkKK1BBU1MgdGV4dCBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQgd2hlbiBmdWxs
eSBzZWxlY3RlZAorUEFTUyB0ZXh0IHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudCBh
ZnRlciBzZWxlY3QoKQogUEFTUyBzZWFyY2ggc2V0UmFuZ2VUZXh0IHdpdGggb25seSBvbmUgYXJn
dW1lbnQgcmVwbGFjZXMgdGhlIHZhbHVlIGJldHdlZW4gc2VsZWN0aW9uU3RhcnQgYW5kIHNlbGVj
dGlvbkVuZCwgb3RoZXJ3aXNlIHJlcGxhY2VzIHRoZSB2YWx1ZSBiZXR3ZWVuIDJuZCBhbmQgM3Jk
IGFyZ3VtZW50cwogUEFTUyBzZWFyY2ggc2VsZWN0aW9uTW9kZSBtaXNzaW5nCiBQQVNTIHNlYXJj
aCBzZWxlY3Rpb25Nb2RlICdzZWxlY3QnCkBAIC0yMCw5ICsxOCw5IEBAIFBBU1Mgc2VhcmNoIHNl
bGVjdGlvbk1vZGUgJ2VuZCcKIFBBU1Mgc2VhcmNoIHNlbGVjdGlvbk1vZGUgJ3ByZXNlcnZlJwog
UEFTUyBzZWFyY2ggc2V0UmFuZ2VUZXh0IHdpdGggM3JkIGFyZ3VtZW50IGdyZWF0ZXIgdGhhbiAy
bmQgYXJndW1lbnQgdGhyb3dzIGFuIEluZGV4U2l6ZUVycm9yIGV4Y2VwdGlvbgogUEFTUyBzZWFy
Y2ggc2V0UmFuZ2VUZXh0IHdpdGhvdXQgYXJndW1lbnQgdGhyb3dzIGEgdHlwZSBlcnJvcgotTk9U
UlVOIHNlYXJjaCBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQKLU5PVFJVTiBzZWFy
Y2ggc2V0UmFuZ2VUZXh0IGZpcmVzIGEgc2VsZWN0IGV2ZW50IHdoZW4gZnVsbHkgc2VsZWN0ZWQK
LU5PVFJVTiBzZWFyY2ggc2V0UmFuZ2VUZXh0IGZpcmVzIGEgc2VsZWN0IGV2ZW50IGFmdGVyIHNl
bGVjdCgpCitQQVNTIHNlYXJjaCBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQKK1BB
U1Mgc2VhcmNoIHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudCB3aGVuIGZ1bGx5IHNl
bGVjdGVkCitQQVNTIHNlYXJjaCBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQgYWZ0
ZXIgc2VsZWN0KCkKIFBBU1MgdGVsIHNldFJhbmdlVGV4dCB3aXRoIG9ubHkgb25lIGFyZ3VtZW50
IHJlcGxhY2VzIHRoZSB2YWx1ZSBiZXR3ZWVuIHNlbGVjdGlvblN0YXJ0IGFuZCBzZWxlY3Rpb25F
bmQsIG90aGVyd2lzZSByZXBsYWNlcyB0aGUgdmFsdWUgYmV0d2VlbiAybmQgYW5kIDNyZCBhcmd1
bWVudHMKIFBBU1MgdGVsIHNlbGVjdGlvbk1vZGUgbWlzc2luZwogUEFTUyB0ZWwgc2VsZWN0aW9u
TW9kZSAnc2VsZWN0JwpAQCAtMzEsOSArMjksOSBAQCBQQVNTIHRlbCBzZWxlY3Rpb25Nb2RlICdl
bmQnCiBQQVNTIHRlbCBzZWxlY3Rpb25Nb2RlICdwcmVzZXJ2ZScKIFBBU1MgdGVsIHNldFJhbmdl
VGV4dCB3aXRoIDNyZCBhcmd1bWVudCBncmVhdGVyIHRoYW4gMm5kIGFyZ3VtZW50IHRocm93cyBh
biBJbmRleFNpemVFcnJvciBleGNlcHRpb24KIFBBU1MgdGVsIHNldFJhbmdlVGV4dCB3aXRob3V0
IGFyZ3VtZW50IHRocm93cyBhIHR5cGUgZXJyb3IKLU5PVFJVTiB0ZWwgc2V0UmFuZ2VUZXh0IGZp
cmVzIGEgc2VsZWN0IGV2ZW50Ci1OT1RSVU4gdGVsIHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVj
dCBldmVudCB3aGVuIGZ1bGx5IHNlbGVjdGVkCi1OT1RSVU4gdGVsIHNldFJhbmdlVGV4dCBmaXJl
cyBhIHNlbGVjdCBldmVudCBhZnRlciBzZWxlY3QoKQorUEFTUyB0ZWwgc2V0UmFuZ2VUZXh0IGZp
cmVzIGEgc2VsZWN0IGV2ZW50CitQQVNTIHRlbCBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3Qg
ZXZlbnQgd2hlbiBmdWxseSBzZWxlY3RlZAorUEFTUyB0ZWwgc2V0UmFuZ2VUZXh0IGZpcmVzIGEg
c2VsZWN0IGV2ZW50IGFmdGVyIHNlbGVjdCgpCiBQQVNTIHVybCBzZXRSYW5nZVRleHQgd2l0aCBv
bmx5IG9uZSBhcmd1bWVudCByZXBsYWNlcyB0aGUgdmFsdWUgYmV0d2VlbiBzZWxlY3Rpb25TdGFy
dCBhbmQgc2VsZWN0aW9uRW5kLCBvdGhlcndpc2UgcmVwbGFjZXMgdGhlIHZhbHVlIGJldHdlZW4g
Mm5kIGFuZCAzcmQgYXJndW1lbnRzCiBQQVNTIHVybCBzZWxlY3Rpb25Nb2RlIG1pc3NpbmcKIFBB
U1MgdXJsIHNlbGVjdGlvbk1vZGUgJ3NlbGVjdCcKQEAgLTQyLDkgKzQwLDkgQEAgUEFTUyB1cmwg
c2VsZWN0aW9uTW9kZSAnZW5kJwogUEFTUyB1cmwgc2VsZWN0aW9uTW9kZSAncHJlc2VydmUnCiBQ
QVNTIHVybCBzZXRSYW5nZVRleHQgd2l0aCAzcmQgYXJndW1lbnQgZ3JlYXRlciB0aGFuIDJuZCBh
cmd1bWVudCB0aHJvd3MgYW4gSW5kZXhTaXplRXJyb3IgZXhjZXB0aW9uCiBQQVNTIHVybCBzZXRS
YW5nZVRleHQgd2l0aG91dCBhcmd1bWVudCB0aHJvd3MgYSB0eXBlIGVycm9yCi1OT1RSVU4gdXJs
IHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudAotTk9UUlVOIHVybCBzZXRSYW5nZVRl
eHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQgd2hlbiBmdWxseSBzZWxlY3RlZAotTk9UUlVOIHVybCBz
ZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQgYWZ0ZXIgc2VsZWN0KCkKK1BBU1MgdXJs
IHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudAorUEFTUyB1cmwgc2V0UmFuZ2VUZXh0
IGZpcmVzIGEgc2VsZWN0IGV2ZW50IHdoZW4gZnVsbHkgc2VsZWN0ZWQKK1BBU1MgdXJsIHNldFJh
bmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudCBhZnRlciBzZWxlY3QoKQogUEFTUyBwYXNzd29y
ZCBzZXRSYW5nZVRleHQgd2l0aCBvbmx5IG9uZSBhcmd1bWVudCByZXBsYWNlcyB0aGUgdmFsdWUg
YmV0d2VlbiBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uRW5kLCBvdGhlcndpc2UgcmVwbGFj
ZXMgdGhlIHZhbHVlIGJldHdlZW4gMm5kIGFuZCAzcmQgYXJndW1lbnRzCiBQQVNTIHBhc3N3b3Jk
IHNlbGVjdGlvbk1vZGUgbWlzc2luZwogUEFTUyBwYXNzd29yZCBzZWxlY3Rpb25Nb2RlICdzZWxl
Y3QnCkBAIC01Myw5ICs1MSw5IEBAIFBBU1MgcGFzc3dvcmQgc2VsZWN0aW9uTW9kZSAnZW5kJwog
UEFTUyBwYXNzd29yZCBzZWxlY3Rpb25Nb2RlICdwcmVzZXJ2ZScKIFBBU1MgcGFzc3dvcmQgc2V0
UmFuZ2VUZXh0IHdpdGggM3JkIGFyZ3VtZW50IGdyZWF0ZXIgdGhhbiAybmQgYXJndW1lbnQgdGhy
b3dzIGFuIEluZGV4U2l6ZUVycm9yIGV4Y2VwdGlvbgogUEFTUyBwYXNzd29yZCBzZXRSYW5nZVRl
eHQgd2l0aG91dCBhcmd1bWVudCB0aHJvd3MgYSB0eXBlIGVycm9yCi1OT1RSVU4gcGFzc3dvcmQg
c2V0UmFuZ2VUZXh0IGZpcmVzIGEgc2VsZWN0IGV2ZW50Ci1OT1RSVU4gcGFzc3dvcmQgc2V0UmFu
Z2VUZXh0IGZpcmVzIGEgc2VsZWN0IGV2ZW50IHdoZW4gZnVsbHkgc2VsZWN0ZWQKLU5PVFJVTiBw
YXNzd29yZCBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQgYWZ0ZXIgc2VsZWN0KCkK
K1BBU1MgcGFzc3dvcmQgc2V0UmFuZ2VUZXh0IGZpcmVzIGEgc2VsZWN0IGV2ZW50CitQQVNTIHBh
c3N3b3JkIHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudCB3aGVuIGZ1bGx5IHNlbGVj
dGVkCitQQVNTIHBhc3N3b3JkIHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudCBhZnRl
ciBzZWxlY3QoKQogUEFTUyBkaXNwbGF5X25vbmUgc2V0UmFuZ2VUZXh0IHdpdGggb25seSBvbmUg
YXJndW1lbnQgcmVwbGFjZXMgdGhlIHZhbHVlIGJldHdlZW4gc2VsZWN0aW9uU3RhcnQgYW5kIHNl
bGVjdGlvbkVuZCwgb3RoZXJ3aXNlIHJlcGxhY2VzIHRoZSB2YWx1ZSBiZXR3ZWVuIDJuZCBhbmQg
M3JkIGFyZ3VtZW50cwogUEFTUyBkaXNwbGF5X25vbmUgc2VsZWN0aW9uTW9kZSBtaXNzaW5nCiBQ
QVNTIGRpc3BsYXlfbm9uZSBzZWxlY3Rpb25Nb2RlICdzZWxlY3QnCkBAIC02NCw5ICs2Miw5IEBA
IFBBU1MgZGlzcGxheV9ub25lIHNlbGVjdGlvbk1vZGUgJ2VuZCcKIFBBU1MgZGlzcGxheV9ub25l
IHNlbGVjdGlvbk1vZGUgJ3ByZXNlcnZlJwogUEFTUyBkaXNwbGF5X25vbmUgc2V0UmFuZ2VUZXh0
IHdpdGggM3JkIGFyZ3VtZW50IGdyZWF0ZXIgdGhhbiAybmQgYXJndW1lbnQgdGhyb3dzIGFuIElu
ZGV4U2l6ZUVycm9yIGV4Y2VwdGlvbgogUEFTUyBkaXNwbGF5X25vbmUgc2V0UmFuZ2VUZXh0IHdp
dGhvdXQgYXJndW1lbnQgdGhyb3dzIGEgdHlwZSBlcnJvcgotTk9UUlVOIGRpc3BsYXlfbm9uZSBz
ZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQKLU5PVFJVTiBkaXNwbGF5X25vbmUgc2V0
UmFuZ2VUZXh0IGZpcmVzIGEgc2VsZWN0IGV2ZW50IHdoZW4gZnVsbHkgc2VsZWN0ZWQKLU5PVFJV
TiBkaXNwbGF5X25vbmUgc2V0UmFuZ2VUZXh0IGZpcmVzIGEgc2VsZWN0IGV2ZW50IGFmdGVyIHNl
bGVjdCgpCitQQVNTIGRpc3BsYXlfbm9uZSBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZl
bnQKK1BBU1MgZGlzcGxheV9ub25lIHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudCB3
aGVuIGZ1bGx5IHNlbGVjdGVkCitQQVNTIGRpc3BsYXlfbm9uZSBzZXRSYW5nZVRleHQgZmlyZXMg
YSBzZWxlY3QgZXZlbnQgYWZ0ZXIgc2VsZWN0KCkKIFBBU1MgdGV4dGFyZWEgc2V0UmFuZ2VUZXh0
IHdpdGggb25seSBvbmUgYXJndW1lbnQgcmVwbGFjZXMgdGhlIHZhbHVlIGJldHdlZW4gc2VsZWN0
aW9uU3RhcnQgYW5kIHNlbGVjdGlvbkVuZCwgb3RoZXJ3aXNlIHJlcGxhY2VzIHRoZSB2YWx1ZSBi
ZXR3ZWVuIDJuZCBhbmQgM3JkIGFyZ3VtZW50cwogUEFTUyB0ZXh0YXJlYSBzZWxlY3Rpb25Nb2Rl
IG1pc3NpbmcKIFBBU1MgdGV4dGFyZWEgc2VsZWN0aW9uTW9kZSAnc2VsZWN0JwpAQCAtNzUsOSAr
NzMsOSBAQCBQQVNTIHRleHRhcmVhIHNlbGVjdGlvbk1vZGUgJ2VuZCcKIFBBU1MgdGV4dGFyZWEg
c2VsZWN0aW9uTW9kZSAncHJlc2VydmUnCiBQQVNTIHRleHRhcmVhIHNldFJhbmdlVGV4dCB3aXRo
IDNyZCBhcmd1bWVudCBncmVhdGVyIHRoYW4gMm5kIGFyZ3VtZW50IHRocm93cyBhbiBJbmRleFNp
emVFcnJvciBleGNlcHRpb24KIFBBU1MgdGV4dGFyZWEgc2V0UmFuZ2VUZXh0IHdpdGhvdXQgYXJn
dW1lbnQgdGhyb3dzIGEgdHlwZSBlcnJvcgotTk9UUlVOIHRleHRhcmVhIHNldFJhbmdlVGV4dCBm
aXJlcyBhIHNlbGVjdCBldmVudAotTk9UUlVOIHRleHRhcmVhIHNldFJhbmdlVGV4dCBmaXJlcyBh
IHNlbGVjdCBldmVudCB3aGVuIGZ1bGx5IHNlbGVjdGVkCi1OT1RSVU4gdGV4dGFyZWEgc2V0UmFu
Z2VUZXh0IGZpcmVzIGEgc2VsZWN0IGV2ZW50IGFmdGVyIHNlbGVjdCgpCitQQVNTIHRleHRhcmVh
IHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudAorUEFTUyB0ZXh0YXJlYSBzZXRSYW5n
ZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQgd2hlbiBmdWxseSBzZWxlY3RlZAorUEFTUyB0ZXh0
YXJlYSBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQgYWZ0ZXIgc2VsZWN0KCkKIFBB
U1MgaW5wdXRfbm90X2luX2RvYyBzZXRSYW5nZVRleHQgd2l0aCBvbmx5IG9uZSBhcmd1bWVudCBy
ZXBsYWNlcyB0aGUgdmFsdWUgYmV0d2VlbiBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uRW5k
LCBvdGhlcndpc2UgcmVwbGFjZXMgdGhlIHZhbHVlIGJldHdlZW4gMm5kIGFuZCAzcmQgYXJndW1l
bnRzCiBQQVNTIGlucHV0X25vdF9pbl9kb2Mgc2VsZWN0aW9uTW9kZSBtaXNzaW5nCiBQQVNTIGlu
cHV0X25vdF9pbl9kb2Mgc2VsZWN0aW9uTW9kZSAnc2VsZWN0JwpAQCAtODYsNyArODQsNyBAQCBQ
QVNTIGlucHV0X25vdF9pbl9kb2Mgc2VsZWN0aW9uTW9kZSAnZW5kJwogUEFTUyBpbnB1dF9ub3Rf
aW5fZG9jIHNlbGVjdGlvbk1vZGUgJ3ByZXNlcnZlJwogUEFTUyBpbnB1dF9ub3RfaW5fZG9jIHNl
dFJhbmdlVGV4dCB3aXRoIDNyZCBhcmd1bWVudCBncmVhdGVyIHRoYW4gMm5kIGFyZ3VtZW50IHRo
cm93cyBhbiBJbmRleFNpemVFcnJvciBleGNlcHRpb24KIFBBU1MgaW5wdXRfbm90X2luX2RvYyBz
ZXRSYW5nZVRleHQgd2l0aG91dCBhcmd1bWVudCB0aHJvd3MgYSB0eXBlIGVycm9yCi1OT1RSVU4g
aW5wdXRfbm90X2luX2RvYyBzZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQKLU5PVFJV
TiBpbnB1dF9ub3RfaW5fZG9jIHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudCB3aGVu
IGZ1bGx5IHNlbGVjdGVkCi1OT1RSVU4gaW5wdXRfbm90X2luX2RvYyBzZXRSYW5nZVRleHQgZmly
ZXMgYSBzZWxlY3QgZXZlbnQgYWZ0ZXIgc2VsZWN0KCkKK1BBU1MgaW5wdXRfbm90X2luX2RvYyBz
ZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQKK1BBU1MgaW5wdXRfbm90X2luX2RvYyBz
ZXRSYW5nZVRleHQgZmlyZXMgYSBzZWxlY3QgZXZlbnQgd2hlbiBmdWxseSBzZWxlY3RlZAorUEFT
UyBpbnB1dF9ub3RfaW5fZG9jIHNldFJhbmdlVGV4dCBmaXJlcyBhIHNlbGVjdCBldmVudCBhZnRl
ciBzZWxlY3QoKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0
ZmllbGRzZWxlY3Rpb24tc2V0U2VsZWN0aW9uUmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90
ZXh0ZmllbGRzZWxlY3Rpb24vdGV4dGZpZWxkc2VsZWN0aW9uLXNldFNlbGVjdGlvblJhbmdlLWV4
cGVjdGVkLnR4dAppbmRleCBiMjI4ZGNiOTE2OTlmZGZhOWIwY2JhNDIxYzRiODZkYWZhYzg1MzE5
Li40YjgwMzJmZmJkNTBhNjFmMzhmOWQ0ZTkxMzlhMjFmOWU1MzM2YWY1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0ZmllbGRzZWxlY3Rpb24tc2V0U2VsZWN0aW9u
UmFuZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRm
aWVsZHNlbGVjdGlvbi1zZXRTZWxlY3Rpb25SYW5nZS1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw0
IEBACiAKLUhhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAotCiBQQVNTIHRl
c3Qgb2YgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UKIFBBU1MgaW5wdXQgdHlwZW9mKGlucHV0LnNl
dFNlbGVjdGlvblJhbmdlKScKIFBBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UgcmV0dXJuIHZv
aWQKQEAgLTI3LDcgKzI1LDcgQEAgUEFTUyBpbnB1dCBzZXRTZWxlY3Rpb25SYW5nZShudWxsLDEp
CiBQQVNTIGlucHV0IHNldFNlbGVjdGlvblJhbmdlKHVuZGVmaW5lZCwxKQogUEFTUyBpbnB1dCBz
ZXRTZWxlY3Rpb25SYW5nZShNYXRoLnBvdygyLDMyKSAtIDIsIE1hdGgucG93KDIsMzIpIC0gMSkK
IFBBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UoTWF0aC5wb3coMiwzMSksIE1hdGgucG93KDIs
MzIpIC0gMSkKLVRJTUVPVVQgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UgZmlyZXMgYSBzZWxlY3Qg
ZXZlbnQgVGVzdCB0aW1lZCBvdXQKK1BBU1MgaW5wdXQgc2V0U2VsZWN0aW9uUmFuZ2UgZmlyZXMg
YSBzZWxlY3QgZXZlbnQKIFBBU1MgdGVzdCBvZiB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZQog
UEFTUyB0ZXh0YXJlYSB0eXBlb2YoaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UpJwogUEFTUyB0ZXh0
YXJlYSBzZXRTZWxlY3Rpb25SYW5nZSByZXR1cm4gdm9pZAo=
</data>
<flag name="review"
          id="483514"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="483522"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>