<?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>76424</bug_id>
          
          <creation_ts>2012-01-16 21:00:49 -0800</creation_ts>
          <short_desc>[Refactoring][Internals] Should have InternalSettings</short_desc>
          <delta_ts>2012-03-20 18:58:30 -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>Tools / Tests</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>76425</dependson>
          <blocked>76423</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>scottmg</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536870</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-16 21:00:49 -0800</bug_when>
    <thetext>This is a part of refactoring under Bug 76423.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539342</commentid>
    <comment_count>1</comment_count>
      <attachid>123269</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-20 01:24:08 -0800</bug_when>
    <thetext>Created attachment 123269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539351</commentid>
    <comment_count>2</comment_count>
      <attachid>123269</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-20 01:55:07 -0800</bug_when>
    <thetext>Comment on attachment 123269
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        [Refactoring][Internals] Should have InternalSettings
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=76424
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        - Invoked Internals::reset() in the constructor to employ Document object.
&gt; +        - Moved setting and configuration related Internals methods to
&gt; +          newly introduced InternalSettings object.
&gt; +
&gt; +        No new tests, covered by existing tests.

The main visible change of this patch is to introduce window.internals.settings. But the ChangeLog doesn&apos;t mention it.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:20947
&gt;  				41815C1F138319830057AAA4 /* WebCoreTestSupport.h in Headers */,
&gt; +				A7BF7EE014C9175A0014489D /* InternalSettings.h in Headers */,
&gt; +				A740B5A514C935AB00A77FA4 /* JSInternalSettings.h in Headers */,

We had better sort lines.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:24401
&gt;  				417DA71D13735DFA007C57FB /* JSInternals.cpp in Sources */,
&gt;  				41815C1E138319830057AAA4 /* WebCoreTestSupport.cpp in Sources */,
&gt;  				07230CBC14C10ED900F6B702 /* JSInternalsCustom.cpp in Sources */,
&gt; +				A7BF7EDF14C9175A0014489D /* InternalSettings.cpp in Sources */,
&gt; +				A740B5A714C935AF00A77FA4 /* JSInternalSettings.cpp in Sources */,

ditto.

&gt; Source/WebCore/testing/InternalSettings.cpp:2
&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.

2012

&gt; Source/WebCore/testing/InternalSettings.cpp:128
&gt; +void InternalSettings::setForceCompositingMode(bool enabled, ExceptionCode&amp; ec)
&gt; +{
&gt; +    if (!settings()) {
&gt; +        ec = INVALID_ACCESS_ERR;
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    settings()-&gt;setForceCompositingMode(enabled);
&gt; +}
&gt; +
&gt; +void InternalSettings::setEnableCompositingForFixedPosition(bool enabled, ExceptionCode&amp; ec)
&gt; +{
&gt; +    if (!settings()) {
&gt; +        ec = INVALID_ACCESS_ERR;
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    settings()-&gt;setAcceleratedCompositingForFixedPositionEnabled(enabled);
&gt; +}

Repeating very similar implementations is not good.
I think it&apos;s ok to use a preprocessor macro to generate functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539356</commentid>
    <comment_count>3</comment_count>
      <attachid>123269</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-20 01:58:24 -0800</bug_when>
    <thetext>Comment on attachment 123269
Patch

Attachment 123269 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11297039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539370</commentid>
    <comment_count>4</comment_count>
      <attachid>123269</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-20 02:38:22 -0800</bug_when>
    <thetext>Comment on attachment 123269
Patch

Attachment 123269 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11297048</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539393</commentid>
    <comment_count>5</comment_count>
      <attachid>123283</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-20 03:38:40 -0800</bug_when>
    <thetext>Created attachment 123283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539403</commentid>
    <comment_count>6</comment_count>
      <attachid>123269</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-20 04:11:22 -0800</bug_when>
    <thetext>Comment on attachment 123269
Patch

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

Hi Kent-san, thanks for your responsive feedback!
I updated the patch to address it.

&gt;&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:20947
&gt;&gt; +				A740B5A514C935AB00A77FA4 /* JSInternalSettings.h in Headers */,
&gt; 
&gt; We had better sort lines.

Done.

&gt;&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:24401
&gt;&gt; +				A740B5A714C935AF00A77FA4 /* JSInternalSettings.cpp in Sources */,
&gt; 
&gt; ditto.

Done.

&gt;&gt; Source/WebCore/testing/InternalSettings.cpp:2
&gt;&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.
&gt; 
&gt; 2012

Done.

&gt;&gt; Source/WebCore/testing/InternalSettings.cpp:128
&gt;&gt; +}
&gt; 
&gt; Repeating very similar implementations is not good.
&gt; I think it&apos;s ok to use a preprocessor macro to generate functions.

Good point.
I realized that there are unfortunate ad-hoc naming trend and ifdefs that prevent us from generating whole function.
So I extracted error check part instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539430</commentid>
    <comment_count>7</comment_count>
      <attachid>123283</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-20 05:09:34 -0800</bug_when>
    <thetext>Comment on attachment 123283
Patch

Attachment 123283 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11297076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539452</commentid>
    <comment_count>8</comment_count>
      <attachid>123283</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2012-01-20 06:04:06 -0800</bug_when>
    <thetext>Comment on attachment 123283
Patch

Attachment 123283 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11313079</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540342</commentid>
    <comment_count>9</comment_count>
      <attachid>123283</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-22 18:03:28 -0800</bug_when>
    <thetext>Comment on attachment 123283
Patch

Pleas fix build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540986</commentid>
    <comment_count>10</comment_count>
      <attachid>123663</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-23 16:54:32 -0800</bug_when>
    <thetext>Created attachment 123663
Attemt to fix broken builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541163</commentid>
    <comment_count>11</comment_count>
      <attachid>123663</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-24 00:42:15 -0800</bug_when>
    <thetext>Comment on attachment 123663
Attemt to fix broken builds

Attachment 123663 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11335299

New failing tests:
fast/dom/window-inner-size-scaling.html
fast/frames/frame-set-rotation-hit.html
fast/dom/iframe-inner-size-scaling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541431</commentid>
    <comment_count>12</comment_count>
      <attachid>123760</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-24 10:18:06 -0800</bug_when>
    <thetext>Created attachment 123760
Updated to ToT for catching up new tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541859</commentid>
    <comment_count>13</comment_count>
      <attachid>123760</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-24 17:01:56 -0800</bug_when>
    <thetext>Comment on attachment 123760
Updated to ToT for catching up new tests

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

&gt; Source/WebCore/testing/InternalSettings.cpp:51
&gt; +#define INTERNAL_SETTINGS_GUARD_FOR_SETTINGS_RETURN(returnValue) \

http://www.webkit.org/coding/coding-style.html#names-define-non-const</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542339</commentid>
    <comment_count>14</comment_count>
      <attachid>123954</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-25 09:16:40 -0800</bug_when>
    <thetext>Created attachment 123954
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542341</commentid>
    <comment_count>15</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-25 09:17:50 -0800</bug_when>
    <thetext>Kent-san, thank you for taking a look!

&gt; &gt; Source/WebCore/testing/InternalSettings.cpp:51
&gt; &gt; +#define INTERNAL_SETTINGS_GUARD_FOR_SETTINGS_RETURN(returnValue) \
&gt; 
&gt; http://www.webkit.org/coding/coding-style.html#names-define-non-const
Fixed in the landing patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542417</commentid>
    <comment_count>16</comment_count>
      <attachid>123954</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-25 10:20:46 -0800</bug_when>
    <thetext>Comment on attachment 123954
Patch for landing

Rejecting attachment 123954 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/11344621</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542466</commentid>
    <comment_count>17</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-25 11:11:35 -0800</bug_when>
    <thetext>Landed at http://trac.webkit.org/changeset/105900</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542780</commentid>
    <comment_count>18</comment_count>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2012-01-25 16:59:38 -0800</bug_when>
    <thetext>The addition of V8InternalsSettings.* to WebCore.gyp is causing unnecessary rebuilds on Windows because it doesn&apos;t seem to exist. Will that file exist soon, or is it not supposed to be there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542784</commentid>
    <comment_count>19</comment_count>
    <who name="Scott Graham">scottmg</who>
    <bug_when>2012-01-25 17:02:12 -0800</bug_when>
    <thetext>Oh, it looks like it&apos;s supposed to be V8InternalSettings.h, not V8Internal_s_Settings.h. Could you fix that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581171</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-16 18:03:43 -0700</bug_when>
    <thetext>Please don&apos;t use ::-webkit-scrollbar style to hide scrollbars. This technique doesn&apos;t work in WebKit1 windows, so affects all the Mac DRT results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583690</commentid>
    <comment_count>21</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-20 18:53:01 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Please don&apos;t use ::-webkit-scrollbar style to hide scrollbars. This technique doesn&apos;t work in WebKit1 windows, so affects all the Mac DRT results.
@smfr looks like you are talking about about a different bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583694</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-03-20 18:58:30 -0700</bug_when>
    <thetext>Sorry, I just looked at the last change to:

    * compositing/geometry/fixed-position-composited-page-scale-down.html:
    * compositing/geometry/fixed-position-composited-page-scale.html:
    * compositing/geometry/fixed-position-composited-switch.html:
    * compositing/geometry/fixed-position-iframe-composited-page-scale-down.html:
    * compositing/geometry/fixed-position-iframe-composited-page-scale.html:
    * compositing/geometry/fixed-position-transform-composited-page-scale-down.html:
    * compositing/geometry/fixed-position-transform-composited-page-scale.html:

I really wanted bug 71225.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123269</attachid>
            <date>2012-01-20 01:24:08 -0800</date>
            <delta_ts>2012-01-20 04:11:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76424-20120120182406.patch</filename>
            <type>text/plain</type>
            <size>94773</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZjMjJlOWI1NDkyMTIy
MDQzOGJmYzYxNmRlMDVhY2YyNmYzYjFmNS4uYjlhY2U3MTc2MGY5MWE1OWEyYmYzNjY2MDQ0NjBj
OGJhY2JlMWVkOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTAxLTIwICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZWZhY3Rvcmlu
Z11bSW50ZXJuYWxzXSBTaG91bGQgaGF2ZSBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQyNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gSW52b2tlZCBJbnRlcm5hbHM6OnJl
c2V0KCkgaW4gdGhlIGNvbnN0cnVjdG9yIHRvIGVtcGxveSBEb2N1bWVudCBvYmplY3QuCisgICAg
ICAgIC0gTW92ZWQgc2V0dGluZyBhbmQgY29uZmlndXJhdGlvbiByZWxhdGVkIEludGVybmFscyBt
ZXRob2RzIHRvCisgICAgICAgICAgbmV3bHkgaW50cm9kdWNlZCBJbnRlcm5hbFNldHRpbmdzIG9i
amVjdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmVUZXN0U3VwcG9ydC52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6On5JbnRlcm5hbFNldHRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkludGVybmFsU2V0dGluZ3MpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0dGluZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxTZXR0aW5nczo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxTZXR0aW5nczo6cGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdz
OjpzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbFNldHRpbmdzOjpzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
U2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVTY3JvbGxBbmltYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRab29tQW5pbWF0b3JUcmFu
c2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0Wm9vbVBhcmFt
ZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0TW9ja1Njcm9s
bGJhcnNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFBh
c3N3b3JkRWNob0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6
c2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxTZXR0aW5nczo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRVbmlmaWVkVGV4dENo
ZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjp1bmlm
aWVkVGV4dENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRp
bmdzOjpwYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6c2V0UGFnZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGlu
Z3M6OnNldFBlclRpbGVEcmF3aW5nRW5hYmxlZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmg6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
SW50ZXJuYWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXQpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNl
dHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICogdGVz
dGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBw
b3J0OjppbmplY3RJbnRlcm5hbHNPYmplY3QpOgorICAgICAgICAqIHRlc3RpbmcvdjgvV2ViQ29y
ZVRlc3RTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmVUZXN0U3VwcG9ydDo6aW5qZWN0SW50
ZXJuYWxzT2JqZWN0KToKKwogMjAxMi0wMS0xOSAgQ2FyeSBDbGFyayAgPGNhcnljbGFya0Bnb29n
bGUuY29tPgogCiAgICAgICAgIFtTa2lhIE1hY10gTWF0Y2ggc3R5bGUgb2YgcGxhdGZvcm0gZXJy
b3IgdW5kZXJsaW5lIGZvciBtaXNzcGVsbGluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IGYzYWRkMGNlNjk2MzMxMzc3NmI0NWFhMzA5M2Q0ODBlMGM5NDNiNmMuLjJkMWIwYTEz
N2VjZWM2ZTk3ZGM0ZTRjYjQwNjAwYjVhMjczMzViZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtNTIzLDYgKzUyMyw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNv
cmUpL3N2Zy9TVkdab29tQW5kUGFuLmlkbCBcCiAgICAgJChXZWJDb3JlKS9zdmcvU1ZHWm9vbUV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL0ludGVybmFscy5pZGwgXAorICAgICQo
V2ViQ29yZSkvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBcCiAgICAgJChXZWJDb3JlKS93
ZWJhdWRpby9BdWRpb0J1ZmZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvd2ViYXVkaW8vQXVkaW9C
dWZmZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvd2ViYXVkaW8vQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXggMjk3YjZiZjE3
OWU1NDczZGQ5OWZiNmQwM2I2ZjhlMWQ2OWZkYTQyYS4uNTYwZTlhODMyZjVjZjdhNjc4NGNhNjY2
YmI2MWYwYjcxYzljYzhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtNDAwLDYg
KzQwMCw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0Qvc3RvcmFnZS9TUUxUcmFuc2Fj
dGlvblN5bmMuaWRsIFwKICAgICAkJFBXRC9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luY0NhbGxi
YWNrLmlkbCBcCiAgICAgJCRQV0QvdGVzdGluZy9JbnRlcm5hbHMuaWRsIFwKKyAgICAkJFBXRC90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIFwKICAgICAkJFBXRC93ZWJhdWRpby9BdWRpb0J1
ZmZlci5pZGwgXAogICAgICQkUFdEL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwg
XAogICAgICQkUFdEL3dlYmF1ZGlvL0F1ZGlvQ2hhbm5lbE1lcmdlci5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmJiMjY1OTY3MmYxMTExZGIxZDUzY2VhYmY4NWMxNTFj
MGFjNDIyNy4uYWRjZGJmYzA5ZjA1NTQ1NzcyODdlZmNjOTcwYWVjZTc0Y2JkYmFjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC05MDksNiArOTA5LDcgQEAgZG9tX2JpbmRpbmdf
aWRscyArPSBcCiAJJChXZWJDb3JlKS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKIAkkKFdlYkNvcmUp
L3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS90ZXN0aW5nL0ludGVybmFs
cy5pZGwgXAorCSQoV2ViQ29yZSkvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBcCiAJJChX
ZWJDb3JlKS93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsIFwKIAkkKFdlYkNvcmUpL3dlYmF1ZGlv
L0F1ZGlvUGFubmVyTm9kZS5pZGwgXAogCSQoV2ViQ29yZSkvd2ViYXVkaW8vRHluYW1pY3NDb21w
cmVzc29yTm9kZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNDU3ZGIwY2UwYmNlYjhiMDdkYzQ0OTQ0
NDZjN2YxODY5MWZlNjU1Yi4uOTdkN2MxNTA2MmRhNGM5ZjUxNjZiOTc5NTE5M2I5YzAyY2Q2MjE4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCkBAIC0xMzAwLDYgKzEzMDAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBz
dG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAgXAogICAgIHN0b3JhZ2UvU3RvcmFnZVRyYWNr
ZXIuY3BwIFwKICAgICB0ZXN0aW5nL0ludGVybmFscy5jcHAgXAorICAgIHRlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAgXAogICAgIHhtbC9ET01QYXJzZXIuY3BwIFwKICAgICB4bWwvTmF0aXZl
WFBhdGhOU1Jlc29sdmVyLmNwcCBcCiAgICAgeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBcCkBAIC0y
NzExLDYgKzI3MTIsNyBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHWm9vbUFuZFBhbi5oIFwK
ICAgICBzdmcvU1ZHWm9vbUV2ZW50LmggXAogICAgIHRlc3RpbmcvSW50ZXJuYWxzLmggXAorICAg
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIFwKICAgICB3b3JrZXJzL0Fic3RyYWN0V29ya2Vy
LmggXAogICAgIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIFwKICAgICB3b3JrZXJz
L0RlZGljYXRlZFdvcmtlclRocmVhZC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3YjUxN2Q0Mzk5
MTA4YjI2ZWVkMTY0OTk5MzBhMmYwNDQ5ZGFjMmJhLi5jMTg0OTE1MGVmM2UxMzdlNTI2YjlkMmJl
OWQ2NGU5ODhlNDQ1M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02Mzc1LDYgKzYzNzUsNyBAQAog
ICAgICAgICBdLAogICAgICAgICAnd2ViY29yZV90ZXN0X3N1cHBvcnRfaWRsX2ZpbGVzJzogWwog
ICAgICAgICAgICd0ZXN0aW5nL0ludGVybmFscy5pZGwnLAorICAgICAgICAgICd0ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaWRsJywKICAgICAgICAgXSwKICAgICAgICAgJ3dlYmNvcmVfdGVzdF9z
dXBwb3J0X2ZpbGVzJzogWwogICAgICAgICAgICAgJ3Rlc3RpbmcvdjgvVjhJbnRlcm5hbHNDdXN0
b20uY3BwJywKQEAgLTYzODUsNiArNjM4Niw4IEBACiAgICAgICAgICAgICAndGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuaCcsCiAgICAgICAgICAgICAndGVzdGluZy9JbnRlcm5hbHMuY3Bw
JywKICAgICAgICAgICAgICd0ZXN0aW5nL0ludGVybmFscy5oJywKKyAgICAgICAgICAgICd0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwJywKKyAgICAgICAgICAgICd0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaCcsCiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX3Jlc291cmNlX2ZpbGVz
JzogWwogICAgICAgICAgICAgJ0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncycsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlVGVzdFN1cHBv
cnQudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBw
b3J0LnZjcHJvagppbmRleCAzZmMyYjU0ZWU4NzEzYjQ2MmFjZWQ0OTFkZTQwZDZkNGJlYzRjOWY4
Li4zNGJlNDE0YWNhYmY1ZjczYTRmODcyOTFlNjc0NmMyMzkyNDg4ODIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlVGVzdFN1cHBvcnQudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVUZXN0U3VwcG9ydC52Y3By
b2oKQEAgLTM0Nyw2ICszNDcsNyBAQAogCQk8RmlsdGVyCiAJCQlOYW1lPSJEZXJpdmVkU291cmNl
cyIKIAkJCT4KKwogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU0ludGVybmFscy5jcHAiCiAJCQkJ
PgpAQCAtNDE1LDYgKzQxNiw3NCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTSW50ZXJuYWxzLmgiCiAJCQkJ
PgogCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU0ludGVybmFsU2V0dGluZ3Mu
Y3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5p
bmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9
IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGls
ZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1
NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFk
ZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcw
MTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0i
MCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3
MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2Fi
bGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3Jj
ZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdp
bjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJu
aW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVz
PSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNJbnRlcm5hbFNldHRpbmdzLmgiCisJCQkJ
PgorCQkJPC9GaWxlPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgogCQkJTmFtZT0idGVzdGluZyIK
QEAgLTQ4OCw2ICs1NTcsNzQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cdGVzdGluZ1xJbnRlcm5hbFNldHRpbmdzLmNwcCIKKwkJCQk+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGls
ZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1
NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJ
CQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJ
CQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJRGlz
YWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZv
cmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxl
U3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2Vk
SW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5n
cz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIk
KE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBp
bGVkSGVhZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0
NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cdGVzdGluZ1xJbnRlcm5hbFNldHRpbmdzLmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHRlc3RpbmdcanNcV2Vi
Q29yZVRlc3RTdXBwb3J0LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NzViMmI5ZWM3YjRmNDVhNDc1MzAxMjEyYzNiNDVjNzc5M2I4MGJkMy4uOWVlNDFiMjMzN2ViYjE3
YWFkNjFmZTk2ZmFmYjA2M2JjNzI5YWVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzUxOCw2ICszNTE4LDggQEAKIAkJQTcy
M0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzIzRjc3QTE0ODRDQTRDMDA4
QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkgLyogUm91
bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLzsgfTsKIAkJ
QTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkg
LyogUm91bmRlZFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlBNzQwQjVBNTE0QzkzNUFCMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNldHRpbmdz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3
OTE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNldHRpbmdzLmggKi87IH07CisJCUE3NDBC
NUE3MTRDOTM1QUYwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzgxNEM5MzQ4NDAwQzhG
NUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgKi87IH07CiAJCUE3NEJCNzZCMTNCREE4NjMw
MEZGN0JGMCAvKiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAvKiBF
eGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzVFNDk3NDEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc1RTQ5
NzcxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFNDk3NTEwNzUyQUNCMDBD
OUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLzsgfTsKQEAgLTM1NTMsNiArMzU1
NSw4IEBACiAJCUE3QjZFNjlGMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNkU2OUQwQjI5MUE5NjAw
RDA1MjlGIC8qIERyYWdEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTdCQkUyNjYxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
N0JCRTI2NDExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCAqLzsgfTsK
IAkJQTdCQkUyNjcxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCQkUyNjUxMUFGQjNG
MjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovOyB9OworCQlBN0JGN0VERjE0Qzkx
NzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JGN0VEQzE0QzkxNzVBMDAxNDQ4OUQgLyogSW50
ZXJuYWxTZXR0aW5ncy5jcHAgKi87IH07CisJCUE3QkY3RUUwMTRDOTE3NUEwMDE0NDg5RCAvKiBJ
bnRlcm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0JGN0VERDE0QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5oICov
OyB9OwogCQlBN0M5QUJGODEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdDOUFC
RjYxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmNwcCAqLzsgfTsKIAkJ
QTdDOUFCRjkxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0M5QUJGNzEzNTdBM0JG
MDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCAqLzsgfTsKIAkJQTdDQTU5NUQwQjI3
QkQ5RTAwRkEwMjFEIC8qIERyYWdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0NBNTk1QjBCMjdCRDlFMDBGQTAyMUQgLyogRHJhZ0Nv
bnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTAzNzgsOSArMTAzODIsMTQgQEAKIAkJQTdBRDJGODYwRUM4OUQwNzAwOEFCMDAyIC8q
IExpbmtIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpbmtIYXNoLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QjA3MEQwMTMwQTQwOUMwMEEzNzYzQyAv
KiBGcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGcmFtZUFjdGlvblNjaGVkdWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3QjA3MEQxMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZUFjdGlvblNjaGVkdWxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYg
LyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTSW50ZXJuYWxTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUE3QjRFQTc5MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnRlcm5hbFNldHRpbmdzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFn
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnRGF0YS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0JCRTI2NDExQUZCM0YyMDAwNUVBMDMgLyogSlNI
VE1MTWV0ZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSFRNTE1ldGVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
QkJFMjY1MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWV0ZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE3QkY3RURDMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNl
dHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEludGVybmFs
U2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0JGN0VERDE0Qzkx
NzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnRlcm5hbFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUE3QkY3RURFMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBJbnRlcm5hbFNldHRpbmdzLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTdDOUFCRjYxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJD
b250cm9sLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldGFpbHNN
YXJrZXJDb250cm9sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDOUFCRjcx
MzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERldGFpbHNNYXJrZXJDb250cm9sLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3Q0E1OTVCMEIyN0JEOUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnQ29udHJvbGxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyNjgsNiArMTQyNzcsOSBAQAogCQkJCTQx
N0RBNENGMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwICovLAogCQkJCTQxN0RBNENF
MTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLywKIAkJCQk0MTgxM0Y5MTEzODE4QUQ2
MDA1N0FBQTQgLyogSW50ZXJuYWxzLmlkbCAqLywKKwkJCQlBN0JGN0VEQzE0QzkxNzVBMDAxNDQ4
OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5jcHAgKi8sCisJCQkJQTdCRjdFREQxNEM5MTc1QTAwMTQ0
ODlEIC8qIEludGVybmFsU2V0dGluZ3MuaCAqLywKKwkJCQlBN0JGN0VERTE0QzkxNzVBMDAxNDQ4
OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5pZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRlc3Rpbmc7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTQyNzUsNiArMTQyODcsOCBAQAogCQk0
MTdEQTcxMjEzNzM1RDkwMDA3QzU3RkIgLyogVGVzdGluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTdCNEVBNzgxNEM5MzQ4NDAwQzhGNUJGIC8qIEpT
SW50ZXJuYWxTZXR0aW5ncy5jcHAgKi8sCisJCQkJQTdCNEVBNzkxNEM5MzQ4NDAwQzhGNUJGIC8q
IEpTSW50ZXJuYWxTZXR0aW5ncy5oICovLAogCQkJCTQxN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAv
KiBKU0ludGVybmFscy5jcHAgKi8sCiAJCQkJNDE3REE3MUMxMzczNURGQTAwN0M1N0ZCIC8qIEpT
SW50ZXJuYWxzLmggKi8sCiAJCQkpOwpAQCAtMjA5MjksNiArMjA5NDMsOCBAQAogCQkJCTQxN0RB
NkRBMTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
N0RBNzFFMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE4MTVDMUYxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTdCRjdFRTAxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGlu
Z3MuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3NDBCNUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0lu
dGVybmFsU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjQzODEsNiArMjQzOTcsOCBAQAog
CQkJCTQxN0RBNzFEMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0MTgxNUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjMwQ0JDMTRDMTBFRDkwMEY2QjcwMiAvKiBKU0lu
dGVybmFsc0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0JGN0VERjE0QzkxNzVBMDAx
NDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzQwQjVB
NzE0QzkzNUFGMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzI2Yjc1Mzg5OGI3OTFkZmExNTM5NTAzOGZmYzRlN2RiMDA1MDM3OAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTAs
MCArMSwzMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW50ZXJu
YWxTZXR0aW5ncy5oIgorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNs
dWRlICJTZXR0aW5ncy5oIgorCisjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorI2luY2x1ZGUg
IlBsYXRmb3JtR2VzdHVyZUV2ZW50LmgiCisjZW5kaWYKKworI2lmIEVOQUJMRShTTU9PVEhfU0NS
T0xMSU5HKQorI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCisjZW5kaWYKKworI2lmIEVOQUJM
RShJTlBVVF9DT0xPUikKKyNpbmNsdWRlICJDb2xvckNob29zZXIuaCIKKyNlbmRpZgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKworUGFzc1JlZlB0cjxJbnRlcm5hbFNldHRpbmdzPiBJbnRlcm5h
bFNldHRpbmdzOjpjcmVhdGUoRnJhbWUqIGZyYW1lLCBJbnRlcm5hbFNldHRpbmdzKiBvbGQpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnRlcm5hbFNldHRpbmdzKGZyYW1lLCBvbGQpKTsK
K30KKworSW50ZXJuYWxTZXR0aW5nczo6fkludGVybmFsU2V0dGluZ3MoKQoreworfQorCitJbnRl
cm5hbFNldHRpbmdzOjpJbnRlcm5hbFNldHRpbmdzKEZyYW1lKiBmcmFtZSwgSW50ZXJuYWxTZXR0
aW5ncyogb2xkKQorICAgIDogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKGZyYW1lKQorICAgICwg
bV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2t1cCgwKQorICAgICwgbV9wYXNzd29y
ZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKGZhbHNlKQorICAgICwgbV9wYXNzd29yZEVj
aG9FbmFibGVkQmFja2VkVXAoZmFsc2UpCit7CisgICAgaWYgKG9sZCAmJiBzZXR0aW5ncygpKSB7
CisgICAgICAgIGlmIChvbGQtPm1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRV
cCkKKyAgICAgICAgICAgIHNldHRpbmdzKCktPnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNv
bmRzKG9sZC0+bV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2t1cCk7CisgICAgICAg
IGlmIChvbGQtPm1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwKQorICAgICAgICAgICAgc2V0
dGluZ3MoKS0+c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChvbGQtPm1fcGFzc3dvcmRFY2hvRW5hYmxl
ZEJhY2t1cCk7CisgICAgfQorfQorCitTZXR0aW5ncyogSW50ZXJuYWxTZXR0aW5nczo6c2V0dGlu
Z3MoKSBjb25zdAoreworICAgIGlmICghZnJhbWUoKSB8fCAhZnJhbWUoKS0+cGFnZSgpKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gZnJhbWUoKS0+cGFnZSgpLT5zZXR0aW5ncygpOwor
fQorCitEb2N1bWVudCogSW50ZXJuYWxTZXR0aW5nczo6ZG9jdW1lbnQoKSBjb25zdAoreworICAg
IHJldHVybiBmcmFtZSgpID8gZnJhbWUoKS0+ZG9jdW1lbnQoKSA6IDA7Cit9CisKK1BhZ2UqIElu
dGVybmFsU2V0dGluZ3M6OnBhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpID8g
ZG9jdW1lbnQoKS0+cGFnZSgpIDogMDsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRJ
bnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhpbnQgbWF4aW11bVJlc291cmNlc0NvbnRl
bnRTaXplLCBpbnQgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKCFwYWdlKCkgfHwgIXBh
Z2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHBhZ2UoKS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLT5zZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHMobWF4aW11
bVJlc291cmNlc0NvbnRlbnRTaXplLCBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUpOwor
ICAgIFVOVVNFRF9QQVJBTShtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSk7CisgICAg
VU5VU0VEX1BBUkFNKGVjKTsKKyNlbmRpZgorfQorCisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBpZiAoIXNldHRpbmdzKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXR0aW5ncygpLT5zZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZShlbmFibGVkKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRF
bmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBpZiAoIXNldHRpbmdzKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXR0aW5ncygpLT5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoZW5hYmxlZCk7
Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3Jv
bGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYg
KCFzZXR0aW5ncygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOworfQorCit2b2lkIEludGVy
bmFsU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIXNldHRpbmdzKCkpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXR0
aW5ncygpLT5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGVuYWJsZWQpOworfQorCit2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIXNldHRpbmdzKCkpIHsKKyAgICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGVuYWJsZWQpOworfQor
Cit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFzZXR0aW5ncygpKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisj
aWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCisgICAgc2V0dGluZ3MoKS0+c2V0RW5hYmxlU2Ny
b2xsQW5pbWF0b3IoZW5hYmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsK
KyNlbmRpZgorfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFpvb21BbmltYXRvclRyYW5z
Zm9ybShmbG9hdCBzY2FsZSwgZmxvYXQgdHgsIGZsb2F0IHR5LCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBpZiAoIWZyYW1lKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisg
ICAgUGxhdGZvcm1HZXN0dXJlRXZlbnQgcGdlKFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVU
YXAsIEludFBvaW50KHR4LCB0eSksIEludFBvaW50KHR4LCB0eSksIDAsIHNjYWxlLCAwLmYsIDAs
IDAsIDAsIDApOworICAgIGZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZl
bnQocGdlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNjYWxlKTsKKyAgICBVTlVTRURfUEFS
QU0odHgpOworICAgIFVOVVNFRF9QQVJBTSh0eSk7CisjZW5kaWYKK30KKwordm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXRab29tUGFyYW1ldGVycyhmbG9hdCBzY2FsZSwgZmxvYXQgeCwgZmxvYXQg
eSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFmcmFtZSgpIHx8ICFmcmFtZSgpLT52
aWV3KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKKyAgICBmcmFtZSgpLT52
aWV3KCktPnNjcm9sbEFuaW1hdG9yKCktPnNldFpvb21QYXJhbWV0ZXJzRm9yVGVzdChzY2FsZSwg
eCwgeSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzY2FsZSk7CisgICAgVU5VU0VEX1BBUkFN
KHgpOworICAgIFVOVVNFRF9QQVJBTSh5KTsKKyNlbmRpZgorfQorCit2b2lkIEludGVybmFsU2V0
dGluZ3M6OnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIGlmICghc2V0dGluZ3MoKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNldHRpbmdzKCktPnNl
dE1vY2tTY3JvbGxiYXJzRW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRp
bmdzOjpzZXRQYXNzd29yZEVjaG9FbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgaWYgKCFzZXR0aW5ncygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3Bhc3N3b3JkRWNo
b0VuYWJsZWRCYWNrZWRVcCkgeworICAgICAgICBtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrdXAg
PSBzZXR0aW5ncygpLT5wYXNzd29yZEVjaG9FbmFibGVkKCk7CisgICAgICAgIG1fcGFzc3dvcmRF
Y2hvRW5hYmxlZEJhY2tlZFVwID0gdHJ1ZTsKKyAgICB9CisgICAgc2V0dGluZ3MoKS0+c2V0UGFz
c3dvcmRFY2hvRW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkb3VibGUgZHVyYXRpb25JblNlY29uZHMs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghc2V0dGluZ3MoKSkgeworICAgICAgICBl
YyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
ICghbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKSB7CisgICAgICAgIG1f
cGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXAgPSBzZXR0aW5ncygpLT5wYXNzd29y
ZEVjaG9EdXJhdGlvbkluU2Vjb25kcygpOworICAgICAgICBtX3Bhc3N3b3JkRWNob0R1cmF0aW9u
SW5TZWNvbmRzQmFja2VkVXAgPSB0cnVlOworICAgIH0KKyAgICBzZXR0aW5ncygpLT5zZXRQYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkdXJhdGlvbkluU2Vjb25kcyk7Cit9CisKK3ZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9G
cmFtZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZnJhbWUo
KSB8fCAhZnJhbWUoKS0+dmlldygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJS
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZnJhbWUoKS0+dmlldygpLT5zZXRTaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGVuYWJsZWQpOworfQorCit2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFzZXR0aW5ncygpKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IAorICAgIHNldHRpbmdzKCktPnNldFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoZW5hYmxlZCk7
Cit9CisKK2Jvb2wgSW50ZXJuYWxTZXR0aW5nczo6dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQo
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFzZXR0aW5ncygpKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgcmV0dXJuIHNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKTsKK30KKwor
ZmxvYXQgSW50ZXJuYWxTZXR0aW5nczo6cGFnZVNjYWxlRmFjdG9yKEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIGlmICghcGFnZSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJS
OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gcGFnZSgpLT5wYWdlU2Nh
bGVGYWN0b3IoKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRQYWdlU2NhbGVGYWN0
b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgaWYgKCFwYWdlKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcGFnZSgpLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2Nh
bGVGYWN0b3IsIEludFBvaW50KHgsIHkpKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBpZiAoIXNldHRpbmdzKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXR0aW5ncygpLT5zZXRQZXJUaWxl
RHJhd2luZ0VuYWJsZWQoZW5hYmxlZCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDliNzY0OTc5ZmI4YmZmMDNmZWZmNDhmYTY2
ZDE2MzI2ZWQxNTVjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEludGVy
bmFsU2V0dGluZ3NfaAorI2RlZmluZSBJbnRlcm5hbFNldHRpbmdzX2gKKworI2luY2x1ZGUgIkZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwor
CitjbGFzcyBGcmFtZTsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUGFnZTsKK2NsYXNzIFNldHRp
bmdzOworCitjbGFzcyBJbnRlcm5hbFNldHRpbmdzIDogcHVibGljIFJlZkNvdW50ZWQ8SW50ZXJu
YWxTZXR0aW5ncz4sCisgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW50ZXJuYWxT
ZXR0aW5ncz4gY3JlYXRlKEZyYW1lKiwgSW50ZXJuYWxTZXR0aW5ncyogb2xkKTsKKyAgICB2aXJ0
dWFsIH5JbnRlcm5hbFNldHRpbmdzKCk7CisKKyAgICB2b2lkIHNldEluc3BlY3RvclJlc291cmNl
c0RhdGFTaXplTGltaXRzKGludCBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGludCBtYXhp
bXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9s
bGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRB
Y2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGZs
b2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQgdHksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHNldFpvb21QYXJhbWV0ZXJzKGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRp
b25Db2RlJik7CisgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRHVyYXRp
b25JblNlY29uZHMoZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2ws
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVk
KGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yLCBp
bnQgeCwgaW50IHksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFBlclRpbGVEcmF3aW5n
RW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToKKyAgICBJ
bnRlcm5hbFNldHRpbmdzKEZyYW1lKiwgSW50ZXJuYWxTZXR0aW5ncyogb2xkKTsKKworICAgIFNl
dHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0OworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0
OworICAgIFBhZ2UqIHBhZ2UoKSBjb25zdDsKKworICAgIGRvdWJsZSBtX3Bhc3N3b3JkRWNob0R1
cmF0aW9uSW5TZWNvbmRzQmFja3VwOworICAgIGJvb2wgbV9wYXNzd29yZEVjaG9FbmFibGVkQmFj
a3VwIDogMTsKKyAgICBib29sIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRV
cCA6IDE7CisgICAgYm9vbCBtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrZWRVcCA6IDE7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE0ZTcyYTk1NjQzOTIwOTgxYTgw
MGIxYjM2NzEwN2I2MThkNTg3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVs
ZSB3aW5kb3cgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAg
IF0gSW50ZXJuYWxTZXR0aW5ncyB7CisgICAgICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVzb3VyY2Vz
RGF0YVNpemVMaW1pdHMoaW4gbG9uZyBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGluIGxv
bmcgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxl
ZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRp
bmdGb3JGaXhlZFBvc2l0aW9uKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVz
KGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQg
c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQo
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBz
ZXRFbmFibGVTY3JvbGxBbmltYXRvcihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShpbiBmbG9hdCBz
Y2FsZSwgaW4gZmxvYXQgdHgsIGluIGZsb2F0IHR5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgdm9pZCBzZXRab29tUGFyYW1ldGVycyhpbiBmbG9hdCBzY2FsZSwgaW4gZmxvYXQgeCwg
aW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0TW9ja1Nj
cm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQp
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0
aW9uSW5TZWNvbmRzKGluIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcykgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZl
VG9GcmFtZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBib29sZWFuIHVuaWZpZWRUZXh0Q2hlY2tp
bmdFbmFibGVkKCkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRQYWdlU2Nh
bGVGYWN0b3IoaW4gZmxvYXQgc2NhbGVGYWN0b3IsIGluIGxvbmcgeCwgaW4gbG9uZyB5KSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB9OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggOGMzMTg1YTMyNGRkMjRmYmU2MTYzNTU2ZGJlMTU5YjFmYTlmZjg4Mi4uNGM2
MmE3ZjI5MmQzODkzOTEyNmIwYzk0ZDA0ZmE1OWQ2YjczOGUxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiSW50ZXJuYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIklu
dFJlY3QuaCIKICNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdD
b250ZXh0LmgiCkBAIC0xMDQsMjEgKzEwNSwxOSBAQCBzdGF0aWMgU3BlbGxDaGVja2VyKiBzcGVs
bGNoZWNrZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogCiBjb25zdCBjaGFyKiBJbnRlcm5hbHM6Omlu
dGVybmFsc0lkID0gImludGVybmFscyI7CiAKLVBhc3NSZWZQdHI8SW50ZXJuYWxzPiBJbnRlcm5h
bHM6OmNyZWF0ZSgpCitQYXNzUmVmUHRyPEludGVybmFscz4gSW50ZXJuYWxzOjpjcmVhdGUoRG9j
dW1lbnQqIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW50ZXJuYWxzKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEludGVybmFscyhkb2N1bWVudCkpOwogfQogCiBJbnRl
cm5hbHM6On5JbnRlcm5hbHMoKQogewogfQogCi1JbnRlcm5hbHM6OkludGVybmFscygpCitJbnRl
cm5hbHM6OkludGVybmFscyhEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBGcmFtZURlc3RydWN0
aW9uT2JzZXJ2ZXIoMCkKLSAgICAsIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNr
dXAoMCkKLSAgICAsIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcChmYWxz
ZSkKLSAgICAsIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwKGZhbHNlKQogeworICAgIHJl
c2V0KGRvY3VtZW50KTsKIH0KIAogYm9vbCBJbnRlcm5hbHM6OmlzUHJlbG9hZGVkKERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB1cmwpCkBAIC0yMjYsMTcgKzIyNSw2IEBAIHZvaWQg
SW50ZXJuYWxzOjpzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKEVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0IFN0cmluZyYgY29sb3JWCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi12
b2lkIEludGVybmFsczo6c2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoRG9jdW1l
bnQqIGRvY3VtZW50LCBpbnQgbWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplLCBpbnQgbWF4aW11
bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlm
ICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkgfHwgIWRvY3VtZW50LT5wYWdlKCktPmlu
c3BlY3RvckNvbnRyb2xsZXIoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBkb2N1bWVudC0+cGFnZSgpLT5pbnNwZWN0b3JD
b250cm9sbGVyKCktPnNldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFscyhtYXhp
bXVtUmVzb3VyY2VzQ29udGVudFNpemUsIG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXpl
KTsKLX0KLSNlbmRpZgotCiBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IEludGVybmFsczo6Ym91bmRp
bmdCb3goRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFl
bGVtZW50KSB7CkBAIC0yODYsMTQxICsyNzQsNiBAQCBQYXNzUmVmUHRyPFJhbmdlPiBJbnRlcm5h
bHM6Om1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlcgog
ICAgIHJldHVybiBSYW5nZTo6Y3JlYXRlKG5vZGUtPmRvY3VtZW50KCksIG5vZGUsIG1hcmtlcnNb
aW5kZXhdLT5zdGFydE9mZnNldCgpLCBub2RlLCBtYXJrZXJzW2luZGV4XS0+ZW5kT2Zmc2V0KCkp
OwogfQogCi12b2lkIEludGVybmFsczo6c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoRG9jdW1lbnQq
IGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJ
RF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9jdW1lbnQtPnNl
dHRpbmdzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGVuYWJsZWQpOwotfQotCi12b2lkIElu
dGVybmFsczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKERvY3VtZW50KiBk
b2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LT5zZXR0
aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQo
ZW5hYmxlZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNj
cm9sbGFibGVGcmFtZXMoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5ncygp
KSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5hYmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBJbnRlcm5h
bHM6OnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRv
Y3VtZW50LT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpz
ZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVu
dC0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRBY2NlbGVy
YXRlZEZpbHRlcnNFbmFibGVkKGVuYWJsZWQpOwotfQotCi12b2lkIEludGVybmFsczo6c2V0RW5h
YmxlU2Nyb2xsQW5pbWF0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5n
cygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgZG9jdW1lbnQtPnNl
dHRpbmdzKCktPnNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGVuYWJsZWQpOwotI2Vsc2UKLSAgICBV
TlVTRURfUEFSQU0oZW5hYmxlZCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldFpv
b21BbmltYXRvclRyYW5zZm9ybShEb2N1bWVudCAqZG9jdW1lbnQsIGZsb2F0IHNjYWxlLCBmbG9h
dCB0eCwgZmxvYXQgdHksIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQg
fHwgIWRvY3VtZW50LT52aWV3KCkgfHwgIWRvY3VtZW50LT52aWV3KCktPmZyYW1lKCkpIHsKLSAg
ICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCi0gICAgUGxhdGZvcm1HZXN0dXJlRXZlbnQgcGdl
KFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXAsIEludFBvaW50KHR4LCB0eSksIEludFBv
aW50KHR4LCB0eSksIDAsIHNjYWxlLCAwLmYsIDAsIDAsIDAsIDApOwotICAgIGRvY3VtZW50LT52
aWV3KCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGdlKTsK
LSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNjYWxlKTsKLSAgICBVTlVTRURfUEFSQU0odHgpOwot
ICAgIFVOVVNFRF9QQVJBTSh0eSk7Ci0jZW5kaWYKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldFpv
b21QYXJhbWV0ZXJzKERvY3VtZW50KiBkb2N1bWVudCwgZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZs
b2F0IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3Vt
ZW50LT52aWV3KCkgfHwgIWRvY3VtZW50LT52aWV3KCktPmZyYW1lKCkpIHsKLSAgICAgICAgZWMg
PSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBFTkFC
TEUoU01PT1RIX1NDUk9MTElORykKLSAgICBkb2N1bWVudC0+dmlldygpLT5zY3JvbGxBbmltYXRv
cigpLT5zZXRab29tUGFyYW1ldGVyc0ZvclRlc3Qoc2NhbGUsIHgsIHkpOwotI2Vsc2UKLSAgICBV
TlVTRURfUEFSQU0oc2NhbGUpOwotICAgIFVOVVNFRF9QQVJBTSh4KTsKLSAgICBVTlVTRURfUEFS
QU0oeSk7Ci0jZW5kaWYKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldE1vY2tTY3JvbGxiYXJzRW5h
YmxlZChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGVuYWJsZWQp
OwotfQotCi12b2lkIEludGVybmFsczo6c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChEb2N1bWVudCog
ZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFk
b2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcGFzc3dv
cmRFY2hvRW5hYmxlZEJhY2tlZFVwKSB7Ci0gICAgICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJh
Y2t1cCA9IGRvY3VtZW50LT5zZXR0aW5ncygpLT5wYXNzd29yZEVjaG9FbmFibGVkKCk7Ci0gICAg
ICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwID0gdHJ1ZTsKLSAgICB9Ci0gICAgZG9j
dW1lbnQtPnNldHRpbmdzKCktPnNldFBhc3N3b3JkRWNob0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0K
LXZvaWQgSW50ZXJuYWxzOjpzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhEb2N1bWVu
dCogZG9jdW1lbnQsIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoIW1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcCkgewotICAgICAg
ICBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja3VwID0gZG9jdW1lbnQtPnNldHRp
bmdzKCktPnBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKCk7Ci0gICAgICAgIG1fcGFzc3dv
cmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcCA9IHRydWU7Ci0gICAgfQotICAgIGRvY3Vt
ZW50LT5zZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkdXJhdGlv
bkluU2Vjb25kcyk7Ci19Ci0KIHZvaWQgSW50ZXJuYWxzOjpzZXRTY3JvbGxWaWV3UG9zaXRpb24o
RG9jdW1lbnQqIGRvY3VtZW50LCBsb25nIHgsIGxvbmcgeSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkgewpAQCAtNDY5LDE3ICsz
MjIsNyBAQCB2b2lkIEludGVybmFsczo6cmVzZXQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICAg
ICByZXR1cm47CiAKICAgICBvYnNlcnZlRnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOwotCi0gICAg
aWYgKG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcCkgewotICAgICAgICBk
b2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMobV9w
YXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2t1cCk7Ci0gICAgICAgIG1fcGFzc3dvcmRF
Y2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcCA9IGZhbHNlOwotICAgIH0KLQotICAgIGlmICht
X3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrZWRVcCkgewotICAgICAgICBkb2N1bWVudC0+c2V0dGlu
Z3MoKS0+c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrdXAp
OwotICAgICAgICBtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrZWRVcCA9IGZhbHNlOwotICAgIH0K
LQorICAgIG1fc2V0dGluZ3MgPSBJbnRlcm5hbFNldHRpbmdzOjpjcmVhdGUoZG9jdW1lbnQtPmZy
YW1lKCksIG1fc2V0dGluZ3MuZ2V0KCkpOwogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQt
PnBhZ2UoKSkKICAgICAgICAgcGFnZS0+c2V0UGFnaW5hdGlvbihQYWdlOjpQYWdpbmF0aW9uKCkp
OwogfQpAQCAtNTkxLDU2ICs0MzQsNiBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Omxlbmd0aEZyb21S
YW5nZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFuZ2UqIHJhbmdlLCBFeGNlcHRpbwogICAgIHJl
dHVybiBsZW5ndGg7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+dmll
dygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBkb2N1bWVudC0+dmlldygpOwot
ICAgIGZyYW1lVmlldy0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZShlbmFibGVkKTsKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdF
bmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBl
YykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1l
bnQtPmZyYW1lKCktPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC0+ZnJhbWUoKS0+c2V0
dGluZ3MoKS0+c2V0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZChlbmFibGVkKTsKLX0KLQotYm9v
bCBJbnRlcm5hbHM6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVu
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQt
PmZyYW1lKCkgfHwgIWRvY3VtZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVj
ID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0g
ICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpLT51bmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkKCk7Ci19Ci0KLWZsb2F0IEludGVybmFsczo6cGFnZVNjYWxlRmFjdG9yKERvY3Vt
ZW50ICpkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8
fCAhZG9jdW1lbnQtPnBhZ2UoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIGRvY3VtZW50LT5wYWdlKCkt
PnBhZ2VTY2FsZUZhY3RvcigpOwotfQotCi12b2lkIEludGVybmFsczo6c2V0UGFnZVNjYWxlRmFj
dG9yKERvY3VtZW50KiBkb2N1bWVudCwgZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBh
Z2UoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICBkb2N1bWVudC0+cGFnZSgpLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IsIEludFBvaW50KHgsIHkpKTsKLX0KLQogaW50IEludGVybmFsczo6bGFzdFNwZWxsQ2hl
Y2tSZXF1ZXN0U2VxdWVuY2UoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBTcGVsbENoZWNrZXIqIGNoZWNrZXIgPSBzcGVsbGNoZWNrZXIoZG9jdW1lbnQpOwpA
QCAtNjY1LDE2ICs0NTgsNiBAQCBpbnQgSW50ZXJuYWxzOjpsYXN0U3BlbGxDaGVja1Byb2Nlc3Nl
ZFNlcXVlbmNlKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZQogICAgIHJldHVybiBj
aGVja2VyLT5sYXN0UHJvY2Vzc2VkU2VxdWVuY2UoKTsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OnNl
dFBlclRpbGVEcmF3aW5nRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNl
dHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0UGVyVGlsZURyYXdp
bmdFbmFibGVkKGVuYWJsZWQpOwotfQotCiBWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6OnVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdAogewogICAgIHJldHVybiBXZWJDb3JlOjp1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBmNThj
YzRjMTcwYzc1MzhiNWNmN2NjOTUyOWE3NzEwMTRjOGUzYjNmLi44Yzg1YjY4NmM4YTY3OGU0YzVk
Mjk1MzM1NTRlYWFkMzg2ODc1YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2xpZW50UmVjdDsKIGNs
YXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKK2NsYXNzIEludGVybmFsU2V0dGluZ3M7CiBj
bGFzcyBOb2RlOwogY2xhc3MgUmFuZ2U7CiAKQEAgLTQ1LDcgKzQ2LDcgQEAgdHlwZWRlZiBpbnQg
RXhjZXB0aW9uQ29kZTsKIGNsYXNzIEludGVybmFscyA6IHB1YmxpYyBSZWZDb3VudGVkPEludGVy
bmFscz4sCiAgICAgICAgICAgICAgICAgICBwdWJsaWMgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnRlcm5hbHM+IGNyZWF0ZSgpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEludGVybmFscz4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAg
dmlydHVhbCB+SW50ZXJuYWxzKCk7CiAKICAgICB2b2lkIHJlc2V0KERvY3VtZW50Kik7CkBAIC02
NiwzMiArNjcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3Nl
cihFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBjb2xvclZhbHVlKTsKICNlbmRpZgogCi0jaWYgRU5B
QkxFKElOU1BFQ1RPUikKLSAgICB2b2lkIHNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGlt
aXRzKERvY3VtZW50KiwgaW50IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50IG1heGlt
dW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplLCBFeGNlcHRpb25Db2RlJik7Ci0jZWxzZQotICAg
IHZvaWQgc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoRG9jdW1lbnQqLCBpbnQg
bWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplLCBpbnQgbWF4aW11bVNpbmdsZVJlc291cmNlQ29u
dGVudFNpemUsIEV4Y2VwdGlvbkNvZGUmKSB7IH0KLSNlbmRpZgotCiAgICAgUGFzc1JlZlB0cjxD
bGllbnRSZWN0PiBib3VuZGluZ0JveChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
dW5zaWduZWQgbWFya2VyQ291bnRGb3JOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUq
LCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgdm9pZCBz
ZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9u
Q29kZSYpOwotICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKERv
Y3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRFbmFi
bGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
RG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKLQotICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoRG9jdW1lbnQqLCBi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFpvb21BbmltYXRvclRy
YW5zZm9ybShEb2N1bWVudCosIGZsb2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQgdHksIEV4Y2Vw
dGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKERvY3VtZW50KiwgZmxvYXQg
c2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIHZvaWQgc2V0
TW9ja1Njcm9sbGJhcnNFbmFibGVkKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJik7Ci0KLSAgICB2b2lkIHNldFBhc3N3b3JkRWNob0VuYWJsZWQoRG9jdW1lbnQqLCBib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0
aW9uSW5TZWNvbmRzKERvY3VtZW50KiwgZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzLCBFeGNlcHRp
b25Db2RlJik7Ci0KICAgICB2b2lkIHNldFNjcm9sbFZpZXdQb3NpdGlvbihEb2N1bWVudCosIGxv
bmcgeCwgbG9uZyB5LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIHNldFBhZ2luYXRpb24o
RG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1vZGUsIGludCBnYXAsIEV4Y2VwdGlvbkNvZGUmKTsK
QEAgLTEwNiwzMSArODYsMjEgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdl
RnJvbUxvY2F0aW9uQW5kTGVuZ3RoKEVsZW1lbnQqIHNjb3BlLCBpbnQgcmFuZ2VMb2NhdGlvbiwg
aW50IHJhbmdlTGVuZ3RoLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdW5zaWduZWQgbG9jYXRpb25G
cm9tUmFuZ2UoRWxlbWVudCogc2NvcGUsIGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHVuc2lnbmVkIGxlbmd0aEZyb21SYW5nZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFuZ2Uq
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lKERvY3VtZW50KiwgYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwotCi0gICAg
dm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCosIGJvb2wsIEV4Y2Vw
dGlvbkNvZGUmKTsKLSAgICBib29sIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50
KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgaW50IGxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVl
bmNlKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGludCBsYXN0U3BlbGxDaGVja1By
b2Nlc3NlZFNlcXVlbmNlKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIAotICAgIGZs
b2F0IHBhZ2VTY2FsZUZhY3RvcihEb2N1bWVudCosICBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9p
ZCBzZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQqLCBmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgs
IGludCB5LCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICB2b2lkIHNldFBlclRpbGVEcmF3aW5nRW5h
YmxlZChEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotCiAgICAgVmVj
dG9yPFN0cmluZz4gdXNlclByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0OwogICAgIHZvaWQgc2V0
VXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwogCisgICAgSW50ZXJuYWxTZXR0aW5ncyogc2V0
dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzLmdldCgpOyB9CisKIHByaXZhdGU6Ci0g
ICAgSW50ZXJuYWxzKCk7CisgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAKLSAg
ICBkb3VibGUgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2t1cDsKLSAgICBib29s
IG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2t1cCA6IDE7Ci0gICAgYm9vbCBtX3Bhc3N3b3JkRWNo
b0R1cmF0aW9uSW5TZWNvbmRzQmFja2VkVXAgOiAxOwotICAgIGJvb2wgbV9wYXNzd29yZEVjaG9F
bmFibGVkQmFja2VkVXAgOiAxOworICAgIFJlZlB0cjxJbnRlcm5hbFNldHRpbmdzPiBtX3NldHRp
bmdzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCmluZGV4IDY2YzllYTUxOTljOGNiZmY4NzgyZTVjNWRjMjU4Zjk1YTc4NTYxMDMu
LjU2MTlkNjQyNWM3NWRiNTMyNGE0NGU0YTUzZTY1MmI2NjE0MWQ3ZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTQyLDI1ICs0MiwxMCBAQCBtb2R1bGUgd2luZG93IHsK
ICAgICAgICAgdm9pZCBzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKGluIEVsZW1lbnQgZWxlbWVu
dCwgaW4gRE9NU3RyaW5nIGNvbG9yVmFsdWUpOwogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBzZXRJ
bnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4g
bG9uZyBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGluIGxvbmcgbWF4aW11bVNpbmdsZVJl
c291cmNlQ29udGVudFNpemUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotCiAgICAgICAgIENsaWVu
dFJlY3QgYm91bmRpbmdCb3goaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtYXJrZXJDb3VudEZvck5vZGUoaW4gTm9kZSBub2Rl
LCBpbiBET01TdHJpbmcgbWFya2VyVHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IFJhbmdlIG1hcmtlclJhbmdlRm9yTm9kZShpbiBOb2RlIG5vZGUsIGluIERPTVN0cmluZyBtYXJr
ZXJUeXBlLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAot
ICAgICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIERvY3VtZW50IGRvY3VtZW50
LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lk
IHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihpbiBEb2N1bWVudCBkb2N1bWVu
dCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9p
ZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoaW4gRG9jdW1lbnQgZG9j
dW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwg
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBz
ZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29s
ZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldEVuYWJs
ZVNjcm9sbEFuaW1hdG9yKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQp
IHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5z
Zm9ybShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZmxvYXQgc2NhbGUsIGluIGZsb2F0IHR4LCBp
biBmbG9hdCB0eSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0Wm9vbVBh
cmFtZXRlcnMoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0IHNjYWxlLCBpbiBmbG9hdCB4
LCBpbiBmbG9hdCB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxl
ZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0KLSAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9F
bmFibGVkKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNv
bmRzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBkb3VibGUgZHVyYXRpb25JblNlY29uZHMpIHJh
aXNlcyhET01FeGNlcHRpb24pOwotCiAgICAgICAgIHZvaWQgc2V0U2Nyb2xsVmlld1Bvc2l0aW9u
KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBsb25nIHgsIGluIGxvbmcgeSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBzZXRQYWdpbmF0aW9uKGluIERvY3VtZW50IGRvY3Vt
ZW50LCBpbiBET01TdHJpbmcgbW9kZSwgaW4gbG9uZyBnYXApIHJhaXNlcyhET01FeGNlcHRpb24p
OwpAQCAtNzcsMTcgKzYyLDEyIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB1bnNpZ25lZCBs
b25nIGxvY2F0aW9uRnJvbVJhbmdlKGluIEVsZW1lbnQgc2NvcGUsIGluIFJhbmdlIHJhbmdlKSBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoRnJvbVJh
bmdlKGluIEVsZW1lbnQgc2NvcGUsIGluIFJhbmdlIHJhbmdlKSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CiAKLSAgICAgICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVk
KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKLSAgICAgICAgYm9vbGVhbiB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChpbiBE
b2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwotCiAgICAgICAgIGxvbmcg
bGFzdFNwZWxsQ2hlY2tSZXF1ZXN0U2VxdWVuY2UoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgbG9uZyBsYXN0U3BlbGxDaGVja1Byb2Nlc3NlZFNl
cXVlbmNlKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAg
ICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoaW4gRG9jdW1l
bnQgZG9jdW1lbnQsIGluIGZsb2F0IHNjYWxlRmFjdG9yLCBpbiBsb25nIHgsIGluIGxvbmcgeSkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0KICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIEFycmF5
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElu
dGVybmFsU2V0dGluZ3Mgc2V0dGluZ3M7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCmluZGV4IDhhNzk1YmYyZjZiM2Fj
YzcxM2UyMDViMzdjMzljZWI3N2Y5YTE1ZGEuLjFkMmE0NTc1YjM3NzdmODgzMTZiNmJhNWY5YTNj
OGFhYmVhMTA3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29y
ZVRlc3RTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydC5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJXZWJDb3JlVGVzdFN1
cHBvcnQuaCIKIAogI2luY2x1ZGUgIkludGVybmFscy5oIgotI2luY2x1ZGUgIkpTRE9NR2xvYmFs
T2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTSW50ZXJuYWxz
LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgpAQCAtNDMsNyArNDIsOSBA
QCB2b2lkIGluamVjdEludGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKICAgICBK
U0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IHRvSlMoY29udGV4dCk7CiAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHN0
YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KTsKLSAgICBnbG9iYWxPYmplY3QtPnB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIElkZW50
aWZpZXIoZXhlYywgSW50ZXJuYWxzOjppbnRlcm5hbHNJZCksIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBJbnRlcm5hbHM6OmNyZWF0ZSgpKSk7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0Q29udGV4dCA9IGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwor
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHNjcmlwdENvbnRleHQtPmlzRG9jdW1lbnQoKSA/IHN0
YXRpY19jYXN0PERvY3VtZW50Kj4oc2NyaXB0Q29udGV4dCkgOiAwOworICAgIGdsb2JhbE9iamVj
dC0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgSWRlbnRpZmllcihleGVjLCBJbnRlcm5h
bHM6OmludGVybmFsc0lkKSwgdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIEludGVybmFsczo6Y3Jl
YXRlKGRvY3VtZW50KSkpOwogfQogCiB2b2lkIHJlc2V0SW50ZXJuYWxzT2JqZWN0KEpTQ29udGV4
dFJlZiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy92OC9XZWJD
b3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy92OC9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwCmluZGV4IDc2MzAyZWQ4MmE2OWEwMDBkZDA2YzEyNzUzOGVkOTNmODkwMTNh
MDQuLjI4YzM3MjlmMzMzNDk0NjBiZjAzNzFhOGRmZGE1NGRjNmE5YzhhM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvdjgvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL3Y4L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTQyLDcg
KzQyLDkgQEAgdm9pZCBpbmplY3RJbnRlcm5hbHNPYmplY3Qodjg6OkxvY2FsPHY4OjpDb250ZXh0
PiBjb250ZXh0KQogICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7
CiAgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwogCi0gICAgY29udGV4dC0+R2xvYmFsKCktPlNl
dCh2ODo6U3RyaW5nOjpOZXcoSW50ZXJuYWxzOjppbnRlcm5hbHNJZCksIHRvVjgoSW50ZXJuYWxz
OjpjcmVhdGUoKSkpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQg
PSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
c2NyaXB0Q29udGV4dC0+aXNEb2N1bWVudCgpID8gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3Jp
cHRDb250ZXh0KSA6IDA7CisgICAgY29udGV4dC0+R2xvYmFsKCktPlNldCh2ODo6U3RyaW5nOjpO
ZXcoSW50ZXJuYWxzOjppbnRlcm5hbHNJZCksIHRvVjgoSW50ZXJuYWxzOjpjcmVhdGUoZG9jdW1l
bnQpKSk7CiB9CiAKIHZvaWQgcmVzZXRJbnRlcm5hbHNPYmplY3Qodjg6OkxvY2FsPHY4OjpDb250
ZXh0PiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM1MjUzYjY2MDE0ZTM1NzFmNTZhZDE3OGI2NDA5YzFlOTVm
NjczMzkuLjM5OWM5Zjc1YjBmZWQxODIxMjcyMjI0YWY3ZmEzNGM0ZGFmYjZhMzcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2MiBAQAorMjAxMi0wMS0yMCAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbUmVmYWN0b3JpbmddW0ludGVybmFsc10gU2hvdWxkIGhhdmUg
SW50ZXJuYWxTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzY0MjQKKworICAgICAgICBVcGRhdGVkIHRvIGZvbGxvdyBBUEkgcmVjZWl2ZXIg
Y2hhbmdlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLWRvd24uaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXN3aXRjaC5odG1sOgorICAgICAgICAq
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUtZG93bi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1w
YWdlLXNjYWxlLWRvd24uaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAg
ICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5lci5o
dG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3Jlc291cmNlcy9tb2NrX3Njcm9sbGJhcnMuanM6
CisgICAgICAgICogY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRt
bDoKKyAgICAgICAgKiBlZGl0aW5nL2lucHV0L3Jlc291cmNlcy9wYXNzd29yZC1lY2hvLmpzOgor
ICAgICAgICAoaW5pdCk6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFz
eW5jLW11dGF0aW9uLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LWFzeW5jLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVk
LWVtdWxhdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1i
b3VuZGluZy1jbGllbnQtcmVjdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2Nh
bGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9SYW5nZS9zY2Fs
ZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vUmFu
Z2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
Y2FsZS1hbmQtc2Nyb2xsLWJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1h
bmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvc2NhbGUt
YW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvc2Nh
bGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQt
dGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzOgorICAgICAgICAoaWZyYW1l
TG9hZGVkKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQt
bW91c2UtY2xpY2suanM6CisgICAgICAgICogZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1w
YWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91
Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5odG1sOgorICAgICAgICAqIGZhc3Qv
ZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1l
cy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9pZnJh
bWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2Jh
Y2tncm91bmQtc2NhbGluZy5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1pbi1w
YWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRv
bS1pbi1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0
LWluLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1z
aHJpbmsuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5kcy1p
bi10cmFuc2Zvcm1lZC12aWV3Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay10ZXN0LmpzOgorICAgICAgICAocmVzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhKToK
KyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1y
ZXBsYWNlbWVudC1lbWJlZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LXhoci5odG1sOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvYWxwaGEuaHRt
bDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1k
cmF3aW5nL3N2Zy1maWx0ZXJzLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9mb3JjZS1jb21wb3NpdGUtZW1wdHkuaHRt
bDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3Np
dGluZy1tb2RlL25vLW92ZXJmbG93LWlmcmFtZS1sYXllci5odG1sOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ct
aGlkZGVuLWlmcmFtZS1sYXllci5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWVudGVyLWNv
bXBvc2l0aW5nLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
Zm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2Rl
L292ZXJmbG93LWlmcmFtZS1sZWF2ZS1jb21wb3NpdGluZy5odG1sOgorCiAyMDEyLTAxLTE5ICBD
YXJ5IENsYXJrICA8Y2FyeWNsYXJrQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1NraWEgTWFjXSBN
YXRjaCBzdHlsZSBvZiBwbGF0Zm9ybSBlcnJvciB1bmRlcmxpbmUgZm9yIG1pc3NwZWxsaW5ncwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0
bWwKaW5kZXggMzc3MWY1ZTczZThhY2YwNmJjMGVjN2NiMjJmNzE2YjljMWEyYmRmOS4uYThlODRh
YzZjMmU3Zjk3MTkxZDMwNTQ5MDFhZGVjZTQ2MGZlNjE4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLWRvd24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCkBAIC0xOSw4ICsxOSw4
IEBACiA8c2NyaXB0PgogICBmdW5jdGlvbiBzY2FsZSgpIHsKICAgICBpZiAod2luZG93LmludGVy
bmFscykgewotICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZp
eGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgICAgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbih0cnVlKTsK
KyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDAuNSwg
MCwgMCk7CiAgICAgfQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1w
YWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAppbmRleCAwYzU4NTQxYWZjMDcxMmM5
OThkOGM0YzllMDlkOTA3Njk2OTA1M2JhLi41MzI3YTE4ZmFjN2RkNTYwZGMwYWY3ZGI4OTVjN2Y2
OWQxNzMzZWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUuaHRtbApAQCAtMTksOCArMTksOCBAQAogPHNjcmlwdD4KICAgZnVuY3Rpb24gc2NhbGUoKSB7
CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsK
KyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JG
aXhlZFBvc2l0aW9uKHRydWUpOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQ
YWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAgICAgfQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tY29tcG9zaXRlZC1zd2l0Y2guaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtc3dpdGNoLmh0bWwKaW5kZXggZDE5OTdl
M2I1MGZmMzE5ZTVlNmZmYzFjN2JmMDFkZTdkMmFmMzA2Yi4uZGFhZDljOWQyMmI5YWMyNTk2Y2E1
ODUzODA3M2NkZTE1ZDU1MWIwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1zd2l0Y2guaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXN3
aXRjaC5odG1sCkBAIC0xOSw3ICsxOSw3IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIAotICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVk
UG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7CiAKICAgICBmdW5j
dGlvbiBkb1Rlc3QoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93
bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
aWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggM2M3MjVkYWUxNDFk
NWEzYzU3ZTVhNjQyNDFjNTY5MDFiNDA4ZmYwMy4uZWEzMDIzZTdhMDRkOWM2ZDhmOTc2NThjYTUy
YTk5ZGM3YjQwNTNkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZy
YW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTE5LDggKzE5LDggQEAKIDxz
Y3JpcHQ+CiAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
LSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0
aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxl
RmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7CisgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwog
ICAgIH0KICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAppbmRleCAxNmFiMDc1MWNi
ZDAzMGYyNGVjY2FkMWY1NzYxMDFmMDg1NGQ2MzYxLi40MGRkNzQzMDlkNTkyMTE3YmEwOTIyZWU3
MjA1MGE2ZDY5NGJjYjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1l
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0xOSw4ICsxOSw4IEBACiA8c2NyaXB0Pgog
ICBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1
bWVudCwgdHJ1ZSk7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihk
b2N1bWVudCwgMiwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVu
YWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbih0cnVlKTsKKyAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogICAgIH0KICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUt
ZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggNDVjZTAz
NWYyOTIyOTQ2MGUzMzQyNzgwY2JmNGMxZmI1NmVjMjM2Ni4uYzExZWRkYjVjZjgzMzYzYjdjNjA4
ZDZjNTVhNDNkZGE1MDEwZDEzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTIxLDgg
KzIxLDggQEAKIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewogICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKHRy
dWUpOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Io
MC41LCAwLCAwKTsKICAgICB9CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zv
cm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0
bWwKaW5kZXggZGY4NjY3YjFhMjRkOTNlZDIzMTljOWM0OTVhMTU5NzZjYWQ4ZGFkZC4uNGU5OWM4
ZWIzYjI3OWNkZmRmNGIyOTRmOTg1MDRjZjg0NDY0MmYyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAt
MjEsOCArMjEsOCBAQAogPHNjcmlwdD4KICAgZnVuY3Rpb24gc2NhbGUoKSB7CiAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKKyAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9u
KHRydWUpOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0
b3IoMiwgMCwgMCk7CiAgICAgfQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRj
aGlsZC1pbm5lci5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJj
ZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5lci5odG1sCmluZGV4IGM0MmE1ZjEyM2ZiNjM1Y2MyMDcw
NzRhMTIxOGE2ZWMyNjc2YTM1YTIuLmIwYzEwM2I3MzY0MGY1ZWY2MDdhOWU1MWQyZTQ3ODM1MWM3
Zjg4MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3Vy
Y2VzL3Njcm9sbGdyYW5kY2hpbGQtaW5uZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwKQEAgLTIz
LDcgKzIzLDcgQEAKICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KICAgICBpZiAod2luZG93LmludGVy
bmFscykKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGRv
Y3VtZW50LCB0cnVlKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0TW9ja1Nj
cm9sbGJhcnNFbmFibGVkKHRydWUpOwogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9yZXNvdXJjZXMvbW9ja19zY3JvbGxiYXJzLmpzIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvcmVzb3VyY2VzL21vY2tfc2Nyb2xsYmFycy5qcwppbmRleCA3NDI4
ZmJhYTBmZjkyMDQwMjMxNTdhMzNkNWI5OTIyNGM3NDExYzAxLi43MWJkZjcwM2Q3Y2NiYzEwMjJk
NDdlM2IwYWVkNmQ3MDYyZDhjNTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9yZXNvdXJjZXMvbW9ja19zY3JvbGxiYXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3Jlc291cmNlcy9tb2NrX3Njcm9sbGJhcnMuanMKQEAgLTEsMyArMSwzIEBACiBpZiAod2lu
ZG93LmludGVybmFscykgewotICB3aW5kb3cuaW50ZXJuYWxzLnNldE1vY2tTY3JvbGxiYXJzRW5h
YmxlZChkb2N1bWVudCwgdHJ1ZSk7CisgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0TW9j
a1Njcm9sbGJhcnNFbmFibGVkKHRydWUpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5ZXItcmVjdXJzaW9uLmh0bWwKaW5kZXggMzk5
ZDBlMGYwNDZlYjRhYWYxOGE1M2YxZWEzZTEwY2QyZWJiYmY2ZS4uZmQzMjFhMzg0MzJjNWVhMjJm
NjM3ZDA4N2IwM2Q3MTAyNzAyN2NlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5odG1sCkBAIC0xNyw3ICsx
Nyw3IEBACiAgICAgZnVuY3Rpb24gc2NhbGVQYWdlKCkKICAgICB7CiAgICAgICBpZiAod2luZG93
LmludGVybmFscykKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3Io
ZG9jdW1lbnQsIDEuNTAwMjUsIDAsIDApOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFBhZ2VTY2FsZUZhY3RvcigxLjUwMDI1LCAwLCAwKTsKICAgICB9CiAgIAogICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc2NhbGVQYWdlLCBmYWxzZSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0L3Jlc291cmNlcy9wYXNzd29yZC1lY2hvLmpz
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnB1dC9yZXNvdXJjZXMvcGFzc3dvcmQtZWNoby5qcwpp
bmRleCA3OTQ1ZTEwNWM0MDlhNGY5ZGYxYjk5NjkyMWQ5ZDgzYjQ5NmVlOTYzLi5hNzY0MWMwNzhj
YzRkNzk3YjgxMmEwNWEzYmFhMzkzZTUwYjZjYTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2lucHV0L3Jlc291cmNlcy9wYXNzd29yZC1lY2hvLmpzCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvaW5wdXQvcmVzb3VyY2VzL3Bhc3N3b3JkLWVjaG8uanMKQEAgLTgwLDggKzgwLDgg
QEAgZnVuY3Rpb24gaW5pdCh0ZXN0cykKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldFBhc3N3b3JkRWNob0VuYWJsZWQoZG9jdW1lbnQsIHRydWUpOwotICAgICAgICAg
ICAgd2luZG93LmludGVybmFscy5zZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkb2N1
bWVudCwgMC4xKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFz
c3dvcmRFY2hvRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoMC4xKTsKICAgICAgICAgICAg
IHRlc3Rub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Rub2RlJyk7CiAgICAgICAg
ICAgICBydW4odGVzdHMsIC0xKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbAppbmRl
eCAxNjcxNDAyZWE2NWZhMjY4ZWVjZDYxOTdkZWFlNGE1YTFjMzE3MTA5Li5lNjE0NGE5MThiOWJk
NTNiMGEyMjMyMjIwNjkzNzUzMjljZDUwZmFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbApAQCAt
MzYsNyArMzYsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiB9CiAKIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRVbmlmaWVkVGV4dENoZWNraW5n
RW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZp
ZWRUZXh0Q2hlY2tpbmdFbmFibGVkKHRydWUpOwogCiB2YXIgc291cmNlSWRzID0gWydzb3VyY2Un
XTsKIHZhciBkZXN0RWxlbXMgPSBbJ3RleHRhcmVhJywgJ2lucHV0JywgJ2NvbnRlbnRlZGl0YWJs
ZSddOwpAQCAtNzcsNyArNzcsNyBAQCBmdW5jdGlvbiBkb1Rlc3RJZkFueSgpIHsKICAgICByZW1v
dmVBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW92ZS10YXJnZXQnKSk7CiAK
ICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgaW50ZXJuYWxzLnNldFVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50LCBmYWxzZSk7CisgICAgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChmYWxzZSk7CiAKICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGZhbHNlKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy5odG1sIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWwKaW5kZXgg
NzI3MGEzMzUwODUwZGI1NWI3OWUwNDY4MjU5M2VkMzA2MGRmMGFlZC4uNjExNDRkN2QzOGEyODVk
NTU2MDIzNDJlODliYjc4ZDM0YzQ3M2IyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogfQogCiBpZiAod2luZG93LmludGVybmFscykK
LSAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIHRy
dWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxl
ZCh0cnVlKTsKIAogdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250
YWluZXInKTsKIGZ1bmN0aW9uIHJlbW92ZUNoaWxkcmVuKG5vZGUpIHsKQEAgLTU3LDcgKzU3LDcg
QEAgZnVuY3Rpb24gZG9UZXN0SWZBbnkoKSB7CiAgICAgLy8gTm8gbW9yZSB0ZXN0cy4KICAgICBy
ZW1vdmVDaGlsZHJlbihjb250YWluZXIpOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
ICAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIGZh
bHNlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdF
bmFibGVkKGZhbHNlKTsKIAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sCmluZGV4IDJhOWVlYjdiYzIw
MDFhYjg4MzRlNjllZjg4OTg0ZTYzMTVlNjYwNWUuLjQ4ZmNmY2YwYTM1MmRhNzFhNzUxMjA4YThj
MjVlYWJmMWZjY2Y2OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKQEAgLTMxLDcgKzMxLDcg
QEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogfQogCiBpZiAod2luZG93Lmlu
dGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9j
dW1lbnQsIHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNr
aW5nRW5hYmxlZCh0cnVlKTsKIAogdmFyIHRlc3REYXRhID0gWwogICAgIHsgdGV4dDogJ3p6Jywg
bWFya2VkOiBbJ3p6J10gfSwKQEAgLTg1LDcgKzg1LDcgQEAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
ZXN0RGF0YS5sZW5ndGg7ICsraSkgewogfQogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBp
bnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIGZhbHNlKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZmFs
c2UpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJvdW5kaW5nLWNs
aWVudC1yZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2Ut
Ym91bmRpbmctY2xpZW50LXJlY3QuaHRtbAppbmRleCA2MDIyODliMzM1MTI5MTVhZWI5ZGU2NTJm
ZWU3NTgyOWQwOTljYTczLi4zMzBiNTU3N2E5MWFlMTYxZDI0NDEwZWZhYmEzNWViYzMxNDkxZTY2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtYm91
bmRpbmctY2xpZW50LXJlY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50
L3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbApAQCAtOSw3ICs5LDcgQEAgZnVu
Y3Rpb24gdGVzdFJlY3RzKCkKICAgICAKICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRpdiIpOwogICAgIHZhciByZWN0ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAw
LCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3Rvcigy
LCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmVjdCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo
KTsKIAogICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xp
ZW50LXJlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2Ut
Y2xpZW50LXJlY3RzLmh0bWwKaW5kZXggOGZhMmEzMTEwNWFhNzY4OGJjMzU4ZTliNTM4ZDEwMzQ4
YzdlOGFmMy4uMTc2YWMwNjkxNGQxYTc0OWY0ZWNiMGJiYTgzMDI1Nzc3NmI1NWEzMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGll
bnQtcmVjdHMuaHRtbApAQCAtOSw3ICs5LDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAgICAK
ICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdiIpOwogICAgIHZhciBy
ZWN0TGlzdCA9IGRpdi5nZXRDbGllbnRSZWN0cygpOwotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmVj
dExpc3QgPSBkaXYuZ2V0Q2xpZW50UmVjdHMoKTsKIAogICAgIHZhciByZXN1bHQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwK
aW5kZXggZjEyYzBmZDc4MzE4M2JjNThiYjg0YjA4ZDZjMDg3OTIwYTVlNjllOC4uMThiZDZmYTk1
MjMwMmJiNTg1NWE2NDZhNGZkYTQ4YTE0Mzg5ZGJmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJl
Y3QuaHRtbApAQCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogICAgIHJhbmdl
LnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2JykpOwogICAg
IHZhciByZWN0ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAKLSAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CisgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAg
ICAgdmFyIHNjYWxlZFJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgICBzY2FsZWRS
YW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpKTsK
ICAgICB2YXIgc2NhbGVkUmVjdCA9IHNjYWxlZFJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGll
bnQtcmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtY2xp
ZW50LXJlY3RzLmh0bWwKaW5kZXggM2VmMzY3OTU1NjMyMjNhOGI3NDNkYjIwZGY4MDQwMTFkOGZk
MDgxMy4uZTRjZWQwZjdhN2ViMTRkZTNhYmM3N2Y1ZGUyZDJmYTZmOTA4MDkxNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0
cy5odG1sCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiAgICAgdmFyIHJl
Y3RMaXN0ID0gcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTsKICAgICB2YXIgcmVjdCA9IHJlY3RMaXN0
WzBdOwogICAgCi0gICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1l
bnQsIDIsIDAsIDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxl
RmFjdG9yKDIsIDAsIDApOwogICAgIHZhciBzY2FsZWRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJh
bmdlKCk7CiAgICAgc2NhbGVkUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkaXYnKSk7CiAgICAgdmFyIHNjYWxlZFJlY3RMaXN0ID0gc2NhbGVkUmFuZ2Uu
Z2V0Q2xpZW50UmVjdHMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nj
YWxlLWFuZC1zY3JvbGwtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUt
YW5kLXNjcm9sbC1ib2R5Lmh0bWwKaW5kZXggYTU3MGQ3OTMzZjYwYWU2OGNjN2Y5Y2EwZmQwZDUz
OGM3M2E5ZWNhMy4uOWU2ZTAwNWVlM2MwZjllOTc0MDAxY2FhMzgwYWVhYWMwZDAxYzM4MiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0
bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0
cnVlOwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwoKSB7Ci0gICAgICAgICAgLy8gVGhlIHBhZ2Ug
c2NhbGUsIGFzIHNldCBieSB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3RvciBzaG91
bGQgbm90IGJlIGFwcGFyZW50CisgICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBi
eSB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvciBzaG91bGQgbm90
IGJlIGFwcGFyZW50CiAgICAgICAgICAgLy8gdG8gamF2YXNjcmlwdC4gU28sIHdlIGV4cGVjdCBz
Y3JvbGxpbmcgdG8gKDEwMCwxMDApIHRvIGJlIHBhZ2UgY29vcmRpbmF0ZXMsIHJhdGhlcgogICAg
ICAgICAgIC8vIHRoYW4gZGV2aWNlIHBpeGVscy4KICAgICAgICAgICBkb2N1bWVudC5ib2R5LnNj
cm9sbExlZnQgPSAxMDA7CkBAIC0yNiw3ICsyNiw3IEBACiAgICAgICAgICAgdmFyIHNjYWxlRmFj
dG9yID0gMi4wOwogICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7CiAgICAgICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9m
ZnNldCk7CisgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2Nh
bGVGYWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAg
ICAgfQogICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2Fs
ZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
Y2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwKaW5kZXggODE5NWI5OWZjYWVlZmI4YWZl
YTZhMmZmYmIyNjJhYWY3ZmMyYTI4OC4uMjg0MDAyYzVhMmVhZmExNDU4OTE4OTNiMjkyMDgzYmVk
MzA5OTE5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNj
cm9sbC1pZnJhbWUtYm9keS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxl
LWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbApAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAg
ICAgdmFyIHNjYWxlRmFjdG9yID0gMC41OwogICAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0g
MDsKICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZUZhY3Rv
ciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zm
c2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13
aW5kb3cuaHRtbAppbmRleCA3NzkzNTgxMmExNjUwMTJmODI1NTY2MmM5ZGVmMGM2MjdiMjA2NzI1
Li5hNzM0MmI1MjQyMjBjNTBkYTg2MjFmMGU5YjgwM2IxMTI5ZWM5MTI3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13
aW5kb3cuaHRtbApAQCAtMjQsNyArMjQsNyBAQAogICAgICAgICAgICAgdmFyIHNjYWxlRmFjdG9y
ID0gMC41OwogICAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKICAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNj
YWxlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtd2luZG93Lmh0bWwKaW5kZXggNWMzNWU2NWNjYTE4ZWE0
MjcyMjQwOGQ0MjQyMTAyYWEwNTVjNTZiMS4uOWI0ZDM0ZjVkMTJmNTE2ODU5ZTFjNzdhYTU5NDcw
YmQ4MTc3YWVkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5k
LXNjcm9sbC13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1h
bmQtc2Nyb2xsLXdpbmRvdy5odG1sCkBAIC0xMCw3ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5h
YmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKIAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAg
ICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAorICAgICAgICAgIC8vIFRoZSBw
YWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2Nh
bGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAogICAgICAgICAgIC8vIHRvIGphdmFzY3Jp
cHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xsaW5nIHRvICgxMDAsMTAwKSB0byBiZSBwYWdlIGNvb3Jk
aW5hdGVzLCByYXRoZXIKICAgICAgICAgICAvLyB0aGFuIGRldmljZSBwaXhlbHMuCiAgICAgICAg
ICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAg
IHZhciBzY2FsZUZhY3RvciA9IDIuMDsKICAgICAgICAgICB2YXIgc2NhbGVPZmZzZXQgPSAwOwog
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9m
ZnNldCwgc2NhbGVPZmZzZXQpOworICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZz
ZXQpOwogICAgICAgICAgIH0KICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1j
bGljay1pZnJhbWUuanMKaW5kZXggMzk3ZjhkZTM3Yzg3Mzc1Y2I5NDQ0NmY1MDI0ZTVkYjc5NGVh
NjEyMi4uZGY0NTVhMmY2ZWRiYTZlNzEwYzZlMjBhYTNiYWZkN2UwNjBiYzgwMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNl
LWNsaWNrLWlmcmFtZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVz
dHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzCkBAIC02MCwxNSArNjAsMTUgQEAg
ZnVuY3Rpb24gaWZyYW1lTG9hZGVkKCkgewogCiAgICAgdGVzdEV2ZW50cygwLCAiVW5zY2FsZWQi
LCAiY2xpY2soMTAsIDEwKSIpOwogCi0gICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVG
YWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRQYWdlU2NhbGVGYWN0b3IoMC41LCAwLCAwKTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQ
YWdlU2NhbGUoMC41KSIsICJjbGljaygyMCwgMjApIik7CiAKLSAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMS4wLCAwLCAwKTsKKyAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigxLjAsIDAsIDApOwogICAgIGh0bWwu
c3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtIl0gPSAic2NhbGUoMC41LCAyLjApIjsKICAgICBodG1s
LnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iXSA9ICIwIDAiOwogICAgIHRlc3RFdmVu
dHMoMCwgIkNTUyBzY2FsZSgwLjUsIDIuMCkiLCAiY2xpY2soMjAsIDUpIik7CiAKLSAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDAp
OwogICAgIHRlc3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpLCBDU1Mgc2NhbGUoMC41LCAy
LjApIiwgImNsaWNrKDQwLCAxMCkiKTsKICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2su
anMKaW5kZXggNDRlNjgzY2M2NGVlOWJmN2JmOTU1YTZjZjBmNzA2ODA5ZDZmNThjMy4uNzFiZjI3
YWQ5YjUwOWNhYjM4ZTcwMzlhMTIxMjdlZWVjNGNiYjc1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3Vz
ZS1jbGljay5qcwpAQCAtNTAsNiArNTAsNiBAQCBpZiAod2luZG93LmV2ZW50U2VuZGVyICYmIHdp
bmRvdy5pbnRlcm5hbHMpIHsKICAgICAvLyBwYXJ0cyBvZiB0aGUgZG9jdW1lbnQgYXJlIHVuZGVy
IHRoZSBtb3VzZS4KICAgICB0ZXN0RXZlbnRzKDAsICJVbnNjYWxlZCIsICJjbGljaygxMCwgMTAp
Iik7CiAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwg
MC41LCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZh
Y3RvcigwLjUsIDAsIDApOwogICAgIHRlc3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpIiwg
ImNsaWNrKDIwLCAyMCkiKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlk
ZGVuLmh0bWwKaW5kZXggZmY2ZDJjOTkwOWY2OTJjZjRlOTg1YWU2OTZkMjNmY2ZiZWIyOTA2ZC4u
NzJjM2NjZTJjYmQ4NzU5MDIwNmUzNmExODgwYzUzNDRhOGViMGQ4NCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ct
aGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxl
ZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwogCiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9j
dW1lbnQsIDIsIDAsIDApOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAKICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5k
b2N1bWVudC5ib2R5LnNjcm9sbFRvcCIsICIwIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUt
Y2xpY2suaHRtbAppbmRleCAwZGI5NTViMDA5OTllYjdiOWFlZTgyYWFmYzE2NzgxMGE0N2ZkODQz
Li4yZTZkYmRkYjg1MDMyNDQzMTE5YTcwYTFjZGY4NWEzNmExN2JhYzgzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNs
aWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQt
dG91Y2gtZ2VzdHVyZS1jbGljay5odG1sCkBAIC04NCw3ICs4NCw3IEBAIGZ1bmN0aW9uIGVuZFRl
c3QoKQogCiBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
Ci0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAw
LjUsIDAsIDApOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2Fs
ZUZhY3RvcigwLjUsIDAsIDApOwogICAgIH0KIAogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndG91Y2h0YXJnZXQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbAppbmRleCBjYzJjMjE0YWQyMjYxNzdmOWE5
NmQ1MmVjOTQxYTYzZDQ4MzZlMTYyLi5hZDQ5YTRmZmNiNDNlM2RjZmQ3OTdmZDJmNDAwZjk1ZTY3
ODIyNmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90
YXRpb24taGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXJv
dGF0aW9uLWhpdC5odG1sCkBAIC03LDcgKzcsNyBAQAogICAgICAgICAgICAgaWYgKCF3aW5kb3cu
ZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgLy8gU2NhbGUgdGhlIHBhZ2UgYW5kIHJlc2l6ZSB0aGUgZnJhbWVzIHRv
IHZlcmlmeSBoaXQgdGVzdGluZyBvbiB0aGUgZnJhbWVzZXQKLSAgICAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOworICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC41LCAw
LCAwKTsKICAgICAgICAgICAgIHZhciBsZWZ0UGFuZWxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRo
IC8gODsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHdpbmRvdy5pbm5lcldp
ZHRoIC8gNCwgbGVmdFBhbmVsV2lkdGgpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2Nh
bGluZy1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5n
LWhpdC5odG1sCmluZGV4IGIyMjExYjZiOGI5ZmY2ZDlhMWEzMGYzZGZkNmE5MzYxNTNkMzcxMDAu
LjI1ZjNmNjBkZDJmM2VlNTcxNjc4ZjMxNDFkYjE3OTBmNmY5ZDBmMmUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1sCkBAIC04LDcg
KzgsNyBAQAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIC8vIFNjYWxlIHRo
ZSBwYWdlIGFuZCByZXNpemUgdGhlIGZyYW1lcyB0byB2ZXJpZnkgaGl0IHRlc3Rpbmcgb24gdGhl
IGZyYW1lc2V0CiAgICAgICAgICAgICB2YXIgbGVmdFBhbmVsV2lkdGggPSB3aW5kb3cuaW5uZXJX
aWR0aCAvIDg7Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rv
cihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDAuNSwgMCwgMCk7CiAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyhsZWZ0UGFuZWxXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0IC8gNCk7
CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKDIgKiBsZWZ0UGFuZWxXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0
IC8gNCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZG91Ymxl
LXNjYWxlLWNvbnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZG91
YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwKaW5kZXggZDNhZjVmNjk3YjA3NjBmNTdkNWYyMDc1YTEw
NGQyMDQxNjc1ZmIwNS4uZDIyMjhhY2ZmNGI5MDdlOWQ1ODc0YTkwYzYwODM5M2I5M2U2M2YwMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1j
b250ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kb3VibGUt
c2NhbGUtY29udGVudHMuaHRtbApAQCAtMjMsNyArMjMsNyBAQAogICAgICAgZnVuY3Rpb24gc2Nh
bGVQYWdlKHNjYWxlRmFjdG9yKSB7CiAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKICAg
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNl
dCwgc2NhbGVPZmZzZXQpOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7
CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
YmFja2dyb3VuZC1zY2FsaW5nLmh0bWwKaW5kZXggZThjZmYwZDE2NTZiNTViZTg2ODQ0NjI1MDU1
NzEzMzk3MTM4N2EzZC4uNmJiOTExZTYwODE0NmU5ZWI4MDUzZDdkYjZmY2NjZDNlMjA1YmVlNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRt
bApAQCAtNSw3ICs1LDcgQEAKICAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCiAgICAgewogICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjI1LCAwLCAwKTsKKyAgICAgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDAuMjUsIDAsIDApOwog
ICAgIH0KIDwvc2NyaXB0PiAKIDwvaGVhZD4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbAppbmRleCBhOTVjNTcyODY4NjYwYzU1M2I2ODg3
YWU3MDg1YmZkNDE1Y2IzMDBiLi5iNzY1N2VmZjlkYzhmZTkwYzRiZDVkMTg3MTk2NzQ5ZDMyZDg4
MTgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1z
Y2FsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNj
YWxlLmh0bWwKQEAgLTksNyArOSw3IEBACiAgICAgPHNjcmlwdD4KICAgICAgIHdpbmRvdy5lbmFi
bGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUodHJ1ZSk7
CiAKICAgICAgIGZ1bmN0aW9uIHNjcm9sbCgpIHsKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8o
MTAwLDEwMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmln
aHQtYm90dG9tLWluLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9m
aXhlZC1yaWdodC1ib3R0b20taW4tcGFnZS1zY2FsZS5odG1sCmluZGV4IDEyZmM0NWE3Y2E3MzM4
MWVlM2M5MzRlZDYxOGM3ZTIxOWM3MWJkN2IuLjk2MTM4NDk2NDcyMGVkZjgwZDA3N2IxMmU2NTJm
ZjJjNDc1Zjk3NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1y
aWdodC1ib3R0b20taW4tcGFnZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9maXhlZC1yaWdodC1ib3R0b20taW4tcGFnZS1zY2FsZS5odG1sCkBAIC05LDcgKzksNyBA
QAogICAgIDxzY3JpcHQ+CiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsK
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShkb2N1bWVudCwgdHJ1
ZSk7CisgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKHRydWUpOwogCiAgICAgICBmdW5jdGlvbiBzY3Jv
bGwoKSB7CiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1pbi1wYWdlLXNjYWxlLmh0bWwK
aW5kZXggOTAzODNlODY5YjYwZWRkY2EwODIyNTgyMWYxZjBmZjQ1MDQ1MGE2ZS4uYTI4YzE0NmNl
ZmU3MTBmZGIwMTVjMGViOTAzZDY5NDI0MWUwNDQ4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sCkBAIC05LDcg
KzksNyBAQAogICAgIDxzY3JpcHQ+CiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0g
dHJ1ZTsKICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShkb2N1bWVu
dCwgdHJ1ZSk7CisgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRM
YXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKHRydWUpOwogCiAgICAgICBmdW5jdGlv
biBzY3JvbGwoKSB7CiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbAppbmRleCA5MmYz
ZTNkNWY2ZjY2ZTFjOTllMTk3YmZlN2UxNGZhYTAyZjBkMDQwLi4wOWJkMjIxODMxZDdmNmJlOTZh
Zjc0MGRiOWY5NzE4OTE2NjdiMjY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFp
bnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2NhbGUtcGFnZS1zaHJpbmsuaHRtbApAQCAtNSw3ICs1LDcgQEAKICAgICBmdW5jdGlvbiByZXBh
aW50VGVzdCgpCiAgICAgewogICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjI1LCAw
LCAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxl
RmFjdG9yKDAuMjUsIDAsIDApOwogICAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJhbnNm
b3JtZWQtdmlldy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1i
b3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sCmluZGV4IDEwZTI2YmI4OTE3MmRiZmIwNzcw
NzBiNmRiMDFkMDAwZTI5ODIwNzEuLmZmMjYzMzkwOTcyMGI5ZGM1YTIyNWIyMDhmYzhmY2Q4MTUz
MDhjODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24t
Ym91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Ry
YW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwKQEAgLTYs
NyArNiw3IEBACiAgICAgPHNjcmlwdD4KICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CisgICAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAwKTsKICAgICAgICAgfQog
CiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJGaW5kU3RyaW5nIiwgZmFsc2UsICJ0YXJn
ZXQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmstdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstdGVz
dC5qcwppbmRleCAxNDEzMDg0Yzk4ODNkMzZjNzE0NTE2OGYxM2UzODAwZGQ3ZGQ2NjI3Li4zMzgy
ZmVmMjQyNzViNGNhN2FjNTI1Yjg1YzNhZDZhNmYzYTg5ZjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXRlc3QuanMKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay10ZXN0LmpzCkBAIC00NCw3ICs0NCw3IEBA
IGZ1bmN0aW9uIHJlc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YSgpCiAgICAgaWYgKCF3aW5kb3cu
aW50ZXJuYWxzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpbnRlcm5hbHMuc2V0SW5z
cGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoZG9jdW1lbnQsIDEwICogMTAwMCAqIDEwMDAs
IDEwMDAgKiAxMDAwKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SW5zcGVjdG9yUmVzb3Vy
Y2VzRGF0YVNpemVMaW1pdHMoMTAgKiAxMDAwICogMTAwMCwgMTAwMCAqIDEwMDApOwogICAgIHJl
dHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVw
bGFjZW1lbnQtZW1iZWQuaHRtbAppbmRleCAxYjc0MmNiYmNlMmYzZDRiMjQzOTNjOGQwMDA2YTJk
ZWViOGIyMzMxLi5lMWQ1Njk4MGFiNWUzMTdlZjE0ODY5MzM1OTFjN2Q4ZTc1MWZmYTNlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
Y29udGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0
bWwKQEAgLTMxLDcgKzMxLDcgQEAgZnVuY3Rpb24gbG9hZFVSTHMoKQogICAgIH0KICAgICAvLyBF
YWNoICcqJyBzeW1ib2wgaW4gb3JpZ2luYWwgZGF0YSB3aWxsIHVzZSB0d28gYnl0ZXMgaW4gU3Ry
aW5nIG9iamVjdAogICAgIC8vIGFmdGVyIGRlY29kaW5nLCBoZW5jZSBtdWx0aXBseWluZyBieSB0
d28uCi0gICAgaW50ZXJuYWxzLnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKGRv
Y3VtZW50LCAyKjMwMCwgMioyMDApOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRJbnNwZWN0
b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cygyKjMwMCwgMioyMDApOwogCiAgICAgLy8gSGVyZSB3
ZSB0ZXN0IHJlcGxhY2VtZW50IGxvZ2ljLiBXZSBzYXZlIGZpcnN0IHR3byByZXNvdXJjZXMgY29u
dGVudCwKICAgICAvLyBkaXNjYXJkIHRoaXJkIHJlc291cmNlIGNvbnRlbnQgb25jZSB3ZSBzZWUg
aXRzIHNpemUgZXhjZWVkcyBsaW1pdCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LXhoci5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRl
bnQtcmVwbGFjZW1lbnQteGhyLmh0bWwKaW5kZXggZmI0NzVjMWJmNzIwY2QwOGZjNWYyMWE2OGFm
YTViZTFmZjMyM2ZlOC4uYTg5M2QwOTYxMDUzMjM2YzBlMGEzZjQ1NjkxNWU3NmQ0NzIwMzFiZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3
b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQteGhyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQteGhyLmh0
bWwKQEAgLTEwLDcgKzEwLDcgQEAgZnVuY3Rpb24gbG9hZERhdGEoKQogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIC8vIEVhY2ggJyonIHN5bWJvbCB3aWxsIHVzZSB0d28gYnl0ZXMgaW4gU3Ry
aW5nIG9iamVjdCwgaGVuY2UgbXVsdGlwbHlpbmcgYnkgdHdvLgotICAgIGludGVybmFscy5zZXRJ
bnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhkb2N1bWVudCwgMiozMDAsIDIqMjAwKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1p
dHMoMiozMDAsIDIqMjAwKTsKIAogICAgIC8vIEhlcmUgd2UgdGVzdCByZXBsYWNlbWVudCBsb2dp
Yy4gV2Ugc2F2ZSBmaXJzdCB0d28gcmVzb3VyY2VzIGNvbnRlbnQsCiAgICAgLy8gZGlzY2FyZCB0
aGlyZCByZXNvdXJjZSBjb250ZW50IG9uY2Ugd2Ugc2VlIGl0cyBzaXplIGV4Y2VlZHMgbGltaXQs
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9h
Y2NlbGVyYXRlZC1kcmF3aW5nL2FscGhhLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL2FscGhhLmh0bWwKaW5kZXggY2E2
ZTgwNzIxMDNjYTZjYjI2MWFhMGNhNmRjMTU5N2YyZmNmZGU3ZS4uOGQ0Mzg5NmY4MzBhOThhMTc5
MWJiMGY5ODRjZWQ2YmNhODYzNmVkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtZHJhd2luZy9hbHBoYS5odG1sCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRy
YXdpbmcvYWxwaGEuaHRtbApAQCAtMjEsNyArMjEsNyBAQAogICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQodHJ1ZSk7IC8vIFRoaXMgaXMgb25seSB1c2VmdWwgYXMgcGl4ZWwgdGVz
dC4KIAogICBpZiAod2luZG93LmludGVybmFscykKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoZG9jdW1lbnQsIHRydWUpOworICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCh0cnVlKTsKIDwvc2Ny
aXB0PgogPC9oZWFkPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL3N2Zy1maWx0ZXJzLmh0bWwgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5n
L3N2Zy1maWx0ZXJzLmh0bWwKaW5kZXggM2YxY2UyNmI4NzhjNjBkYjczN2FlZjY1MTA1MmU1NTUz
MGFhMTM2YS4uNWQyN2NiN2YyMGEwYjI5ZjJkODUwZmQ2MzEwMjJjNmFmM2MzNmI0MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0
ZWQtZHJhd2luZy9zdmctZmlsdGVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvc3ZnLWZpbHRlcnMuaHRtbApA
QCAtNiw3ICs2LDcgQEAKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUp
OyAvLyBUaGlzIGlzIG9ubHkgdXNlZnVsIGFzIHBpeGVsIHRlc3QuCiAKICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgd2luZG93LmludGVybmFscy5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFi
bGVkKGRvY3VtZW50LCB0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQodHJ1ZSk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2Ut
Y29tcG9zaXRpbmctbW9kZS9mb3JjZS1jb21wb3NpdGUtZW1wdHkuaHRtbCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvZm9y
Y2UtY29tcG9zaXRlLWVtcHR5Lmh0bWwKaW5kZXggOTA5ODFhNjdmNjgwNDI4YTQ0ZGQwOWZmYzQz
ZWM5OWU0NmNhZmQ2ZC4uOGExZGMxNjc2MTVkNWZlMjFhODU0ZjdjODM1YjY4MDAyNTZkNDQxZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9y
Y2UtY29tcG9zaXRpbmctbW9kZS9mb3JjZS1jb21wb3NpdGUtZW1wdHkuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1t
b2RlL2ZvcmNlLWNvbXBvc2l0ZS1lbXB0eS5odG1sCkBAIC0yLDggKzIsOCBAQAogICA8aGVhZD4K
ICAgICA8c2NyaXB0PgogICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShkb2N1bWVudCwgdHJ1ZSk7Ci0g
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxl
RnJhbWVzKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXModHJ1ZSk7
CiAgICAgICB9CiAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvbm8tb3ZlcmZsb3ct
aWZyYW1lLWxheWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3Np
dGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL25vLW92ZXJmbG93LWlmcmFtZS1sYXllci5odG1s
CmluZGV4IGQ2NWVlODA3MDczMTNiYzRjNWE5ZWMyMWMzMjkxYzU5OGI5MGY0NzEuLjE3MzgzOTg1
NjJiMThkZjY4N2Y1OTk2NDExMzEwYzliMjhjYWJiMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvbm8t
b3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9uby1vdmVyZmxvdy1pZnJh
bWUtbGF5ZXIuaHRtbApAQCAtMTYsOCArMTYsOCBAQAogICAgIH0KICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsIGRvVGVzdCwgZmFsc2UpOwogICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7Ci0gICAgICBpbnRlcm5hbHMuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZG9jdW1lbnQs
IHRydWUpOwotICAgICAgaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJs
ZUZyYW1lcyhkb2N1bWVudCwgdHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rm9y
Y2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKHRydWUpOwogICAgIH0KICAgPC9zY3Jp
cHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWhpZGRlbi1pZnJhbWUt
bGF5ZXIuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2Zv
cmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaGlkZGVuLWlmcmFtZS1sYXllci5odG1sCmlu
ZGV4IGFmZTM1ZTQxMTJlM2I5MzdmYWE1YzI3MGI0MGEyOWUzMjY1MWYwZTYuLjZiODUxNjgwMDll
NjBmNzQ2OGY3NWU2NTMyZWZmMzk3ZDE1OGU2ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZs
b3ctaGlkZGVuLWlmcmFtZS1sYXllci5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaGlkZGVu
LWlmcmFtZS1sYXllci5odG1sCkBAIC04LDggKzgsOCBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0
PgogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICBpbnRlcm5hbHMuc2V0Rm9yY2VD
b21wb3NpdGluZ01vZGUoZG9jdW1lbnQsIHRydWUpOwotICAgICAgaW50ZXJuYWxzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhkb2N1bWVudCwgdHJ1ZSk7CisgICAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVz
KHRydWUpOwogICAgIH0KICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0
aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWVudGVyLWNvbXBvc2l0aW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2Rl
L292ZXJmbG93LWlmcmFtZS1lbnRlci1jb21wb3NpdGluZy5odG1sCmluZGV4IGQzMzU3ZmRhNGU3
NjgyMTc2YWYzYThiZTFlYWM5NTBjMzk2MWQwNTguLmFmMTljNWE5NzM1Zjk0NDU1ZDRkZDFhYjRm
YTQ3YjQ0NTVmMTJjNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWVudGVy
LWNvbXBvc2l0aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtZW50ZXItY29t
cG9zaXRpbmcuaHRtbApAQCAtOCw4ICs4LDggQEAKICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KICAg
ICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgaW50ZXJuYWxzLnNldEZvcmNlQ29tcG9z
aXRpbmdNb2RlKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgIGludGVybmFscy5zZXRFbmFibGVDb21w
b3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoZG9jdW1lbnQsIHRydWUpOworICAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyh0cnVl
KTsKICAgICB9CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1t
b2RlL292ZXJmbG93LWlmcmFtZS1sYXllci5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUt
bGF5ZXIuaHRtbAppbmRleCBhNGM0YTIyMDMzNjg2ZDJkNDczMmNhYmU5ZjE4NDYwZjI1YzAzYjYz
Li40MmIyZDcwMmYxMWNmZWJmMjNkNTkxY2UyZjgwNGM0MGNhNmI0NDUxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGlu
Zy1tb2RlL292ZXJmbG93LWlmcmFtZS1sYXllci5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ct
aWZyYW1lLWxheWVyLmh0bWwKQEAgLTgsOCArOCw4IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+
CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIGludGVybmFscy5zZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZShkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICBpbnRlcm5hbHMuc2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMo
dHJ1ZSk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRp
bmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGVhdmUtY29tcG9zaXRpbmcuaHRtbCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUv
b3ZlcmZsb3ctaWZyYW1lLWxlYXZlLWNvbXBvc2l0aW5nLmh0bWwKaW5kZXggYmVlM2IwYTkxZjM1
MjYzNTliZWVkMDc1MDhjMDRhNzUxZGY1N2E5Zi4uOTExYzBhMmY2ZDY3MDVjNzI0N2FjY2UxOTNi
YWNlZWZkZTI1MjJkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGVhdmUt
Y29tcG9zaXRpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21w
b3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sZWF2ZS1jb21w
b3NpdGluZy5odG1sCkBAIC04LDggKzgsOCBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0PgogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICBpbnRlcm5hbHMuc2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUoZG9jdW1lbnQsIHRydWUpOwotICAgICAgaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhkb2N1bWVudCwgdHJ1ZSk7CisgICAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKHRydWUp
OwogICAgIH0KICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123283</attachid>
            <date>2012-01-20 03:38:40 -0800</date>
            <delta_ts>2012-01-23 16:54:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76424-20120120203838.patch</filename>
            <type>text/plain</type>
            <size>95775</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZjMjJlOWI1NDkyMTIy
MDQzOGJmYzYxNmRlMDVhY2YyNmYzYjFmNS4uMzI4MDQ1ZjY1NzM2N2NlMmYyZDY3MGQ0NGM1Yzhj
NWU5YmRiMWFiNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTAxLTIwICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtSZWZhY3Rvcmlu
Z11bSW50ZXJuYWxzXSBTaG91bGQgaGF2ZSBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQyNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGV4dHJhY3RlZCBz
ZXR0aW5nIHJlbGF0ZWQgbWV0aG9kIGZyb20gd2luZG93LmludGVybmFscworICAgICAgICB0byB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzIG9iamVjdC4KKyAgICAgICAgLSBJbnZva2VkIEludGVy
bmFsczo6cmVzZXQoKSBpbiB0aGUgY29uc3RydWN0b3IgdG8gZW1wbG95IERvY3VtZW50IG9iamVj
dC4KKyAgICAgICAgLSBNb3ZlZCBzZXR0aW5nIGFuZCBjb25maWd1cmF0aW9uIHJlbGF0ZWQgSW50
ZXJuYWxzIG1ldGhvZHMgdG8KKyAgICAgICAgICBuZXdseSBpbnRyb2R1Y2VkIEludGVybmFsU2V0
dGluZ3Mgb2JqZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6fkludGVybmFsU2V0dGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6SW50ZXJuYWxTZXR0aW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXR0aW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpkb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbFNldHRpbmdzOjpwYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
U2V0dGluZ3M6OnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9y
Rml4ZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRF
bmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZVNjcm9sbEFu
aW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFpvb21Bbmlt
YXRvclRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRa
b29tUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRN
b2NrU2Nyb2xsYmFyc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6c2V0UGFzc3dvcmRFY2hvRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNl
dHRpbmdzOjpzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFVuaWZp
ZWRUZXh0Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGlu
Z3M6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsU2V0dGluZ3M6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bFNldHRpbmdzOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxTZXR0aW5nczo6c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldCk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6c2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAg
ICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3Jl
VGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09iamVjdCk6CisgICAgICAgICogdGVzdGluZy92
OC9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0Ojpp
bmplY3RJbnRlcm5hbHNPYmplY3QpOgorCiAyMDEyLTAxLTE5ICBDYXJ5IENsYXJrICA8Y2FyeWNs
YXJrQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1NraWEgTWFjXSBNYXRjaCBzdHlsZSBvZiBwbGF0
Zm9ybSBlcnJvciB1bmRlcmxpbmUgZm9yIG1pc3NwZWxsaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZjNhZGQwY2U2OTYzMzEzNzc2YjQ1YWEzMDkzZDQ4MGUwYzk0M2I2Yy4u
MmQxYjBhMTM3ZWNlYzZlOTdkYzRlNGNiNDA2MDBiNWEyNzMzNWJkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC01MjMsNiArNTIzLDcgQEAgQklORElOR19JRExTID0gXAogICAg
ICQoV2ViQ29yZSkvc3ZnL1NWR1pvb21BbmRQYW4uaWRsIFwKICAgICAkKFdlYkNvcmUpL3N2Zy9T
Vkdab29tRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBc
CisgICAgJChXZWJDb3JlKS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIFwKICAgICAkKFdl
YkNvcmUpL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS93ZWJhdWRp
by9BdWRpb0J1ZmZlckNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS93ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCAy
OTdiNmJmMTc5ZTU0NzNkZDk5ZmI2ZDAzYjZmOGUxZDY5ZmRhNDJhLi41NjBlOWE4MzJmNWNmN2E2
Nzg0Y2E2NjZiYjYxZjBiNzFjOWNjOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBA
IC00MDAsNiArNDAwLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9zdG9yYWdlL1NR
TFRyYW5zYWN0aW9uU3luYy5pZGwgXAogICAgICQkUFdEL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25T
eW5jQ2FsbGJhY2suaWRsIFwKICAgICAkJFBXRC90ZXN0aW5nL0ludGVybmFscy5pZGwgXAorICAg
ICQkUFdEL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgXAogICAgICQkUFdEL3dlYmF1ZGlv
L0F1ZGlvQnVmZmVyLmlkbCBcCiAgICAgJCRQV0Qvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmlkbCBcCiAgICAgJCRQV0Qvd2ViYXVkaW8vQXVkaW9DaGFubmVsTWVyZ2VyLmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCmluZGV4IDA5NDNlNzA3YTk5NjVmZDUzZTkzZWU5ZjM2ZWVlYjZkOGE1
OTk0YTEuLjQ4YTJmOWFjMTc1YWYyYTNiNWZkMTJkZWY5ZWRhNTNjZDg5MzIxOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC03NDMsNiArNzQzLDcgQEAgSURMX1BBVEggOj0gXAogICAgICQoV2Vi
Q29yZSkvYmluZGluZ3MvanMgXAogICAgICQoV2ViQ29yZSkvY3NzIFwKICAgICAkKFdlYkNvcmUp
L2RvbSBcCisgICAgJChXZWJDb3JlKS9kb20vdGVzdGluZyBcCiAgICAgJChXZWJDb3JlKS9maWxl
YXBpIFwKICAgICAkKFdlYkNvcmUpL2h0bWwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmJiMjY1OTY3MmYxMTExZGIxZDUz
Y2VhYmY4NWMxNTFjMGFjNDIyNy4uYWRjZGJmYzA5ZjA1NTQ1NzcyODdlZmNjOTcwYWVjZTc0Y2Jk
YmFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC05MDksNiArOTA5LDcgQEAg
ZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwK
IAkkKFdlYkNvcmUpL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS90ZXN0
aW5nL0ludGVybmFscy5pZGwgXAorCSQoV2ViQ29yZSkvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbCBcCiAJJChXZWJDb3JlKS93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsIFwKIAkkKFdlYkNv
cmUpL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5pZGwgXAogCSQoV2ViQ29yZSkvd2ViYXVkaW8v
RHluYW1pY3NDb21wcmVzc29yTm9kZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNDU3ZGIwY2UwYmNl
YjhiMDdkYzQ0OTQ0NDZjN2YxODY5MWZlNjU1Yi4uOTdkN2MxNTA2MmRhNGM5ZjUxNjZiOTc5NTE5
M2I5YzAyY2Q2MjE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMzAwLDYgKzEzMDAsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBzdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAgXAogICAgIHN0b3JhZ2Uv
U3RvcmFnZVRyYWNrZXIuY3BwIFwKICAgICB0ZXN0aW5nL0ludGVybmFscy5jcHAgXAorICAgIHRl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgXAogICAgIHhtbC9ET01QYXJzZXIuY3BwIFwKICAg
ICB4bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCBcCiAgICAgeG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcCBcCkBAIC0yNzExLDYgKzI3MTIsNyBAQCBIRUFERVJTICs9IFwKICAgICBzdmcvU1ZHWm9v
bUFuZFBhbi5oIFwKICAgICBzdmcvU1ZHWm9vbUV2ZW50LmggXAogICAgIHRlc3RpbmcvSW50ZXJu
YWxzLmggXAorICAgIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIFwKICAgICB3b3JrZXJzL0Fi
c3RyYWN0V29ya2VyLmggXAogICAgIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIFwK
ICAgICB3b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA3YjUxN2Q0Mzk5MTA4YjI2ZWVkMTY0OTk5MzBhMmYwNDQ5ZGFjMmJhLi5jMTg0OTE1MGVmM2Ux
MzdlNTI2YjlkMmJlOWQ2NGU5ODhlNDQ1M2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02Mzc1LDYg
KzYzNzUsNyBAQAogICAgICAgICBdLAogICAgICAgICAnd2ViY29yZV90ZXN0X3N1cHBvcnRfaWRs
X2ZpbGVzJzogWwogICAgICAgICAgICd0ZXN0aW5nL0ludGVybmFscy5pZGwnLAorICAgICAgICAg
ICd0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsJywKICAgICAgICAgXSwKICAgICAgICAgJ3dl
YmNvcmVfdGVzdF9zdXBwb3J0X2ZpbGVzJzogWwogICAgICAgICAgICAgJ3Rlc3RpbmcvdjgvVjhJ
bnRlcm5hbHNDdXN0b20uY3BwJywKQEAgLTYzODUsNiArNjM4Niw4IEBACiAgICAgICAgICAgICAn
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuaCcsCiAgICAgICAgICAgICAndGVzdGluZy9J
bnRlcm5hbHMuY3BwJywKICAgICAgICAgICAgICd0ZXN0aW5nL0ludGVybmFscy5oJywKKyAgICAg
ICAgICAgICd0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwJywKKyAgICAgICAgICAgICd0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaCcsCiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX3Jl
c291cmNlX2ZpbGVzJzogWwogICAgICAgICAgICAgJ0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlVGVzdFN1cHBvcnQudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZVRlc3RTdXBwb3J0LnZjcHJvagppbmRleCAzZmMyYjU0ZWU4NzEzYjQ2MmFjZWQ0OTFkZTQw
ZDZkNGJlYzRjOWY4Li4zNGJlNDE0YWNhYmY1ZjczYTRmODcyOTFlNjc0NmMyMzkyNDg4ODIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlVGVzdFN1cHBv
cnQudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVUZXN0
U3VwcG9ydC52Y3Byb2oKQEAgLTM0Nyw2ICszNDcsNyBAQAogCQk8RmlsdGVyCiAJCQlOYW1lPSJE
ZXJpdmVkU291cmNlcyIKIAkJCT4KKwogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU0ludGVybmFs
cy5jcHAiCiAJCQkJPgpAQCAtNDE1LDYgKzQxNiw3NCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTSW50ZXJu
YWxzLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU0ludGVy
bmFsU2V0dGluZ3MuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVT
cGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJ
bmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
VXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0i
NDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5P
SU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJVXNlUHJl
Y29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0
MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJ
VCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21w
aWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7
NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIK
KwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIi
CisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQ
cm9kdWN0aW9ufFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxl
U3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2Vk
SW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNJbnRlcm5hbFNldHRp
bmdzLmgiCisJCQkJPgorCQkJPC9GaWxlPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgogCQkJTmFt
ZT0idGVzdGluZyIKQEAgLTQ4OCw2ICs1NTcsNzQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cdGVzdGluZ1xJbnRlcm5hbFNldHRpbmdzLmNwcCIK
KwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
VXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0i
NDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5P
SU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBpbGVkSGVh
ZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3
MDE7NDcwMiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIw
IgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcw
MiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJ
CQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgor
CQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWdfQWxsfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3Bl
Y2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5j
bHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9
IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChO
T0lOSEVSSVQpIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cdGVzdGluZ1xJbnRlcm5hbFNldHRpbmdz
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHRl
c3RpbmdcanNcV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNzViMmI5ZWM3YjRmNDVhNDc1MzAxMjEyYzNiNDVjNzc5M2I4MGJkMy4uOGQx
MmIwMTg5NDUyODM2ZGJjZTcwYjE3MWU5OWY3MmEyYjI0NzJiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzUxOCw2ICszNTE4
LDggQEAKIAkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzIzRjc3
QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzNGOTVGRTEyQzk3QkZFMDAz
MUFBRjkgLyogUm91bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNw
cCAqLzsgfTsKIAkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGRDEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQlBNzQwQjVBNTE0QzkzNUFCMDBBNzdGQTQgLyogSlNJbnRl
cm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0I0RUE3OTE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNldHRpbmdzLmggKi87
IH07CisJCUE3NDBCNUE3MTRDOTM1QUYwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzgx
NEM5MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgKi87IH07CiAJCUE3NEJC
NzZCMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NEJCNzZBMTNCREE4NjMw
MEZGN0JGMCAvKiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4OTYg
LyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzVFNDk3NDEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTc1RTQ5NzcxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFNDk3
NTEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLzsgfTsKQEAg
LTM1NTMsNiArMzU1NSw4IEBACiAJCUE3QjZFNjlGMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNkU2
OUQwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdCQkUyNjYxMUFGQjNGMjAwMDVFQTAzIC8qIEpT
SFRNTE1ldGVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0JCRTI2NDExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50
LmNwcCAqLzsgfTsKIAkJQTdCQkUyNjcxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdC
QkUyNjUxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovOyB9OworCQlB
N0JGN0VERjE0QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JGN0VEQzE0QzkxNzVBMDAx
NDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5jcHAgKi87IH07CisJCUE3QkY3RUUwMTRDOTE3NUEw
MDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JGN0VERDE0QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxT
ZXR0aW5ncy5oICovOyB9OwogCQlBN0M5QUJGODEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01h
cmtlckNvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdDOUFCRjYxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmNw
cCAqLzsgfTsKIAkJQTdDOUFCRjkxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250
cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0M5
QUJGNzEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCAqLzsgfTsKIAkJ
QTdDQTU5NUQwQjI3QkQ5RTAwRkEwMjFEIC8qIERyYWdDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0NBNTk1QjBCMjdCRDlFMDBGQTAy
MUQgLyogRHJhZ0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTAzNzgsOSArMTAzODIsMTQgQEAKIAkJQTdBRDJGODYwRUM4OUQw
NzAwOEFCMDAyIC8qIExpbmtIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExpbmtIYXNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QjA3MEQwMTMwQTQw
OUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZUFjdGlvblNjaGVkdWxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3QjA3MEQxMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlv
blNjaGVkdWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZUFjdGlv
blNjaGVkdWxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0I0RUE3ODE0Qzkz
NDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50ZXJuYWxTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE3QjRFQTc5MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0
dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnRlcm5hbFNldHRp
bmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QjZFNjlEMEIyOTFBOTYwMEQw
NTI5RiAvKiBEcmFnRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFn
RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0JCRTI2NDExQUZCM0YyMDAw
NUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTSFRNTE1ldGVyRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3QkJFMjY1MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MTWV0ZXJFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkY3RURDMTRDOTE3NUEwMDE0NDg5RCAv
KiBJbnRlcm5hbFNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEludGVybmFsU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
N0JGN0VERDE0QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlcm5hbFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE3QkY3RURFMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRp
bmdzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJbnRlcm5hbFNldHRpbmdzLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdDOUFCRjYxMzU3QTNCRjAwRjU1MDNGIC8qIERl
dGFpbHNNYXJrZXJDb250cm9sLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERldGFpbHNNYXJrZXJDb250cm9sLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTdDOUFCRjcxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldGFpbHNNYXJrZXJDb250cm9sLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Q0E1OTVCMEIyN0JEOUUwMEZBMDIxRCAvKiBE
cmFnQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnQ29u
dHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyNjgsNiArMTQyNzcs
OSBAQAogCQkJCTQxN0RBNENGMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwICovLAog
CQkJCTQxN0RBNENFMTM3MzQzMjYwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCAqLywKIAkJCQk0MTgx
M0Y5MTEzODE4QUQ2MDA1N0FBQTQgLyogSW50ZXJuYWxzLmlkbCAqLywKKwkJCQlBN0JGN0VEQzE0
QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5jcHAgKi8sCisJCQkJQTdCRjdFREQx
NEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuaCAqLywKKwkJCQlBN0JGN0VERTE0
QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5ncy5pZGwgKi8sCiAJCQkpOwogCQkJcGF0
aCA9IHRlc3Rpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTQyNzcsNiArMTQy
ODksOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNDE3REE3MUIxMzczNURGQTAwN0M1N0ZCIC8q
IEpTSW50ZXJuYWxzLmNwcCAqLywKIAkJCQk0MTdEQTcxQzEzNzM1REZBMDA3QzU3RkIgLyogSlNJ
bnRlcm5hbHMuaCAqLywKKwkJCQlBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5h
bFNldHRpbmdzLmNwcCAqLywKKwkJCQlBN0I0RUE3OTE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRl
cm5hbFNldHRpbmdzLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IFRlc3Rpbmc7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtMjA5MjcsNyArMjA5NDEsOSBAQAogCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTQxN0RBNkRBMTM3MzRFNkUwMDdD
NTdGQiAvKiBJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3QkY3RUUwMTRDOTE3NUEw
MDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTdEQTcx
RTEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3
NDBCNUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwpAQCAtMjQzNzgsOSArMjQzOTQsMTEgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQk0MTdEQTZEOTEzNzM0RTZFMDA3QzU3RkIg
LyogSW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3QkY3RURGMTRDOTE3NUEwMDE0
NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxN0RBNzFE
MTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0
MTgxNUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3MjMwQ0JDMTRDMTBFRDkwMEY2QjcwMiAvKiBKU0ludGVybmFsc0N1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzQwQjVBNzE0QzkzNUFGMDBBNzdGQTQgLyogSlNJ
bnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxODE1QzFFMTM4MzE5ODMw
MDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODg5MWJl
YzI0YjhhMTBkODE1OTYwMjBjZjllOTcwNjFmOWFlMmNkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMCwwICsxLDI3NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbnRlcm5hbFNldHRpbmdz
LmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNldHRp
bmdzLmgiCisKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisjaW5jbHVkZSAiUGxhdGZvcm1H
ZXN0dXJlRXZlbnQuaCIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCisj
aW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKKyNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX0NP
TE9SKQorI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgorI2VuZGlmCisKKyNkZWZpbmUgSU5URVJO
QUxfU0VUVElOR1NfR1VBUkRfRk9SX1NFVFRJTkdTX1JFVFVSTihyZXR1cm5WYWx1ZSkgXAorICAg
IGlmICghc2V0dGluZ3MoKSkgeyBcCisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOyBc
CisgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsgXAorICAgIH0KKworI2RlZmluZSBJTlRFUk5B
TF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElOR1MoKSAgXAorICAgIGlmICghc2V0dGluZ3MoKSkg
eyBcCisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOyBcCisgICAgICAgIHJldHVybjsg
XAorICAgIH0KKworI2RlZmluZSBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfRlJBTUUoKSBc
CisgICAgaWYgKCFmcmFtZSgpKSB7IFwKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
IFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgfQorCisjZGVmaW5lIElOVEVSTkFMX1NFVFRJTkdT
X0dVQVJEX0ZPUl9GUkFNRVZJRVcoKSBcCisgICAgaWYgKCFmcmFtZSgpIHx8ICFmcmFtZSgpLT52
aWV3KCkpIHsgXAorICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsgXAorICAgICAgICBy
ZXR1cm47IFwKKyAgICB9CisKKyNkZWZpbmUgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX1BB
R0VfUkVUVVJOKHJldHVyblZhbHVlKSBcCisgICAgaWYgKCFwYWdlKCkpIHsgXAorICAgICAgICBl
YyA9IElOVkFMSURfQUNDRVNTX0VSUjsgXAorICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7IFwK
KyAgICB9CisKKyNkZWZpbmUgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX1BBR0UoKSBcCisg
ICAgaWYgKCFwYWdlKCkpIHsgXAorICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsgXAor
ICAgICAgICByZXR1cm47IFwKKyAgICB9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworCitQYXNz
UmVmUHRyPEludGVybmFsU2V0dGluZ3M+IEludGVybmFsU2V0dGluZ3M6OmNyZWF0ZShGcmFtZSog
ZnJhbWUsIEludGVybmFsU2V0dGluZ3MqIG9sZCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEludGVybmFsU2V0dGluZ3MoZnJhbWUsIG9sZCkpOworfQorCitJbnRlcm5hbFNldHRpbmdzOjp+
SW50ZXJuYWxTZXR0aW5ncygpCit7Cit9CisKK0ludGVybmFsU2V0dGluZ3M6OkludGVybmFsU2V0
dGluZ3MoRnJhbWUqIGZyYW1lLCBJbnRlcm5hbFNldHRpbmdzKiBvbGQpCisgICAgOiBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIoZnJhbWUpCisgICAgLCBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5T
ZWNvbmRzQmFja3VwKDApCisgICAgLCBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFj
a2VkVXAoZmFsc2UpCisgICAgLCBtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrZWRVcChmYWxzZSkK
K3sKKyAgICBpZiAob2xkICYmIHNldHRpbmdzKCkpIHsKKyAgICAgICAgaWYgKG9sZC0+bV9wYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKQorICAgICAgICAgICAgc2V0dGluZ3Mo
KS0+c2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMob2xkLT5tX3Bhc3N3b3JkRWNob0R1
cmF0aW9uSW5TZWNvbmRzQmFja3VwKTsKKyAgICAgICAgaWYgKG9sZC0+bV9wYXNzd29yZEVjaG9F
bmFibGVkQmFja2VkVXApCisgICAgICAgICAgICBzZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9F
bmFibGVkKG9sZC0+bV9wYXNzd29yZEVjaG9FbmFibGVkQmFja3VwKTsKKyAgICB9Cit9CisKK1Nl
dHRpbmdzKiBJbnRlcm5hbFNldHRpbmdzOjpzZXR0aW5ncygpIGNvbnN0Cit7CisgICAgaWYgKCFm
cmFtZSgpIHx8ICFmcmFtZSgpLT5wYWdlKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVy
biBmcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCk7Cit9CisKK0RvY3VtZW50KiBJbnRlcm5hbFNl
dHRpbmdzOjpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCkgPyBmcmFtZSgp
LT5kb2N1bWVudCgpIDogMDsKK30KKworUGFnZSogSW50ZXJuYWxTZXR0aW5nczo6cGFnZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5wYWdlKCkgOiAwOwor
fQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXpl
TGltaXRzKGludCBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGludCBtYXhpbXVtU2luZ2xl
UmVzb3VyY2VDb250ZW50U2l6ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyAgICBpZiAoIXBhZ2UoKSB8fCAhcGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVy
KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgcGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldFJlc291cmNlc0Rh
dGFTaXplTGltaXRzRnJvbUludGVybmFscyhtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIG1h
eGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSk7CisgICAgVU5VU0VEX1BBUkFNKG1heGltdW1T
aW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKTsKKyAgICBVTlVTRURfUEFSQU0oZWMpOworI2VuZGlm
Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19H
VUFSRF9GT1JfU0VUVElOR1MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRGb3JjZUNvbXBvc2l0aW5n
TW9kZShlbmFibGVkKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRBY2NlbGVyYXRl
ZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAg
SU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX1NFVFRJTkdTKCk7CisgICAgc2V0dGluZ3MoKS0+
c2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9G
T1JfU0VUVElOR1MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9S
X1NFVFRJTkdTKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
clNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOworfQorCit2b2lkIEludGVybmFsU2V0
dGluZ3M6OnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElOR1Mo
KTsKKyAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGVuYWJsZWQp
OworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSU5URVJOQUxfU0VUVElOR1Nf
R1VBUkRfRk9SX1NFVFRJTkdTKCk7CisjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCisgICAg
c2V0dGluZ3MoKS0+c2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoZW5hYmxlZCk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShlbmFibGVkKTsKKyNlbmRpZgorfQorCit2b2lkIEludGVybmFsU2V0dGlu
Z3M6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybShmbG9hdCBzY2FsZSwgZmxvYXQgdHgsIGZsb2F0
IHR5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9G
T1JfRlJBTUUoKTsKKworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBQbGF0Zm9ybUdl
c3R1cmVFdmVudCBwZ2UoUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcCwgSW50UG9pbnQo
dHgsIHR5KSwgSW50UG9pbnQodHgsIHR5KSwgMCwgc2NhbGUsIDAuZiwgMCwgMCwgMCwgMCk7Cisg
ICAgZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChwZ2UpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oc2NhbGUpOworICAgIFVOVVNFRF9QQVJBTSh0eCk7CisgICAg
VU5VU0VEX1BBUkFNKHR5KTsKKyNlbmRpZgorfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNl
dFpvb21QYXJhbWV0ZXJzKGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfRlJBTUVWSUVXKCk7
CisKKyNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKKyAgICBmcmFtZSgpLT52aWV3KCktPnNj
cm9sbEFuaW1hdG9yKCktPnNldFpvb21QYXJhbWV0ZXJzRm9yVGVzdChzY2FsZSwgeCwgeSk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShzY2FsZSk7CisgICAgVU5VU0VEX1BBUkFNKHgpOworICAg
IFVOVVNFRF9QQVJBTSh5KTsKKyNlbmRpZgorfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNl
dE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRp
bmdzKCktPnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChlbmFibGVkKTsKK30KKwordm9pZCBJbnRl
cm5hbFNldHRpbmdzOjpzZXRQYXNzd29yZEVjaG9FbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisgICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX1NFVFRJTkdT
KCk7CisgICAgaWYgKCFtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrZWRVcCkgeworICAgICAgICBt
X3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrdXAgPSBzZXR0aW5ncygpLT5wYXNzd29yZEVjaG9FbmFi
bGVkKCk7CisgICAgICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwID0gdHJ1ZTsKKyAg
ICB9CisgICAgc2V0dGluZ3MoKS0+c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChlbmFibGVkKTsKK30K
Kwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25k
cyhkb3VibGUgZHVyYXRpb25JblNlY29uZHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElO
VEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIGlmICghbV9wYXNzd29y
ZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKSB7CisgICAgICAgIG1fcGFzc3dvcmRFY2hv
RHVyYXRpb25JblNlY29uZHNCYWNrdXAgPSBzZXR0aW5ncygpLT5wYXNzd29yZEVjaG9EdXJhdGlv
bkluU2Vjb25kcygpOworICAgICAgICBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFj
a2VkVXAgPSB0cnVlOworICAgIH0KKyAgICBzZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9EdXJh
dGlvbkluU2Vjb25kcyhkdXJhdGlvbkluU2Vjb25kcyk7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJE
X0ZPUl9GUkFNRVZJRVcoKTsKKyAgICBmcmFtZSgpLT52aWV3KCktPnNldFNob3VsZExheW91dEZp
eGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZW5hYmxlZCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxT
ZXR0aW5nczo6c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElO
R1MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKGVuYWJs
ZWQpOworfQorCitib29sIEludGVybmFsU2V0dGluZ3M6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZP
Ul9TRVRUSU5HU19SRVRVUk4oZmFsc2UpOworICAgIHJldHVybiBzZXR0aW5ncygpLT51bmlmaWVk
VGV4dENoZWNrZXJFbmFibGVkKCk7Cit9CisKK2Zsb2F0IEludGVybmFsU2V0dGluZ3M6OnBhZ2VT
Y2FsZUZhY3RvcihFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19H
VUFSRF9GT1JfUEFHRV9SRVRVUk4oMCk7CisgICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFj
dG9yKCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UGFnZVNjYWxlRmFjdG9yKGZs
b2F0IHNjYWxlRmFjdG9yLCBpbnQgeCwgaW50IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9QQUdFKCk7CisgICAgcGFnZSgpLT5zZXRQYWdl
U2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkpKTsKK30KKwordm9pZCBJbnRl
cm5hbFNldHRpbmdzOjpzZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElO
R1MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoZW5hYmxlZCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjFhYTA0YTE1MTBiYjJhMGQzMmVjNGY3ZWI1YzYxZmY3NzU2Y2I4MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0w
LDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEludGVybmFsU2V0dGluZ3NfaAorI2RlZmluZSBJ
bnRlcm5hbFNldHRpbmdzX2gKKworI2luY2x1ZGUgIkZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCitjbGFzcyBGcmFtZTsKK2NsYXNzIERv
Y3VtZW50OworY2xhc3MgUGFnZTsKK2NsYXNzIFNldHRpbmdzOworCitjbGFzcyBJbnRlcm5hbFNl
dHRpbmdzIDogcHVibGljIFJlZkNvdW50ZWQ8SW50ZXJuYWxTZXR0aW5ncz4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVibGljIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW50ZXJuYWxTZXR0aW5ncz4gY3JlYXRlKEZyYW1lKiwg
SW50ZXJuYWxTZXR0aW5ncyogb2xkKTsKKyAgICB2aXJ0dWFsIH5JbnRlcm5hbFNldHRpbmdzKCk7
CisKKyAgICB2b2lkIHNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKGludCBtYXhp
bXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGludCBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50
U2l6ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
Ym9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRFbmFibGVDb21wb3Np
dGluZ0ZvckZpeGVkUG9zaXRpb24oYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAg
dm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRG
aWx0ZXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNl
dEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZvaWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGZsb2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxv
YXQgdHksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKGZsb2F0
IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRN
b2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAg
dm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoZG91YmxlIGR1cmF0
aW9uSW5TZWNvbmRzLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRTaG91bGRMYXlvdXRG
aXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2
b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICBib29sIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UGFn
ZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yLCBpbnQgeCwgaW50IHksIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIHNldFBlclRpbGVEcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4
Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToKKyAgICBJbnRlcm5hbFNldHRpbmdzKEZyYW1lKiwg
SW50ZXJuYWxTZXR0aW5ncyogb2xkKTsKKworICAgIFNldHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0
OworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OworICAgIFBhZ2UqIHBhZ2UoKSBjb25z
dDsKKworICAgIGRvdWJsZSBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja3VwOwor
ICAgIGJvb2wgbV9wYXNzd29yZEVjaG9FbmFibGVkQmFja3VwIDogMTsKKyAgICBib29sIG1fcGFz
c3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcCA6IDE7CisgICAgYm9vbCBtX3Bhc3N3
b3JkRWNob0VuYWJsZWRCYWNrZWRVcCA6IDE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzFhNzcwODk0Y2ZmYzNkYzU0NTA0MGFiN2RhM2Q1YjBlNzQ3NTUyOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGwKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSB3aW5kb3cgeworICAgIGludGVyZmFj
ZSBbCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgIF0gSW50ZXJuYWxTZXR0aW5ncyB7Cisg
ICAgICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoaW4gbG9uZyBt
YXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGluIGxvbmcgbWF4aW11bVNpbmdsZVJlc291cmNl
Q29udGVudFNpemUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldEZvcmNl
Q29tcG9zaXRpbmdNb2RlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2
b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihp
biBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNl
dFpvb21BbmltYXRvclRyYW5zZm9ybShpbiBmbG9hdCBzY2FsZSwgaW4gZmxvYXQgdHgsIGluIGZs
b2F0IHR5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRab29tUGFyYW1l
dGVycyhpbiBmbG9hdCBzY2FsZSwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xl
YW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0UGFzc3dv
cmRFY2hvRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGluIGRvdWJsZSBk
dXJhdGlvbkluU2Vjb25kcykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0
U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShpbiBib29sZWFuIGVuYWJs
ZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hl
Y2tpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwor
ICAgICAgICBib29sZWFuIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKCkgcmFpc2VzIChET01F
eGNlcHRpb24pOworICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoaW4gZmxvYXQgc2NhbGVG
YWN0b3IsIGluIGxvbmcgeCwgaW4gbG9uZyB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB9
OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggOGMzMTg1YTMyNGRk
MjRmYmU2MTYzNTU2ZGJlMTU5YjFmYTlmZjg4Mi4uNGM2MmE3ZjI5MmQzODkzOTEyNmIwYzk0ZDA0
ZmE1OWQ2YjczOGUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDAs
NiArNDAsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJl
YUVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
SW50ZXJuYWxTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMYW5n
dWFnZS5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdDb250ZXh0LmgiCkBAIC0xMDQsMjEgKzEw
NSwxOSBAQCBzdGF0aWMgU3BlbGxDaGVja2VyKiBzcGVsbGNoZWNrZXIoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogCiBjb25zdCBjaGFyKiBJbnRlcm5hbHM6OmludGVybmFsc0lkID0gImludGVybmFscyI7
CiAKLVBhc3NSZWZQdHI8SW50ZXJuYWxzPiBJbnRlcm5hbHM6OmNyZWF0ZSgpCitQYXNzUmVmUHRy
PEludGVybmFscz4gSW50ZXJuYWxzOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSW50ZXJuYWxzKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEludGVybmFscyhkb2N1bWVudCkpOwogfQogCiBJbnRlcm5hbHM6On5JbnRlcm5hbHMoKQogewog
fQogCi1JbnRlcm5hbHM6OkludGVybmFscygpCitJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVu
dCogZG9jdW1lbnQpCiAgICAgOiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoMCkKLSAgICAsIG1f
cGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXAoMCkKLSAgICAsIG1fcGFzc3dvcmRF
Y2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcChmYWxzZSkKLSAgICAsIG1fcGFzc3dvcmRFY2hv
RW5hYmxlZEJhY2tlZFVwKGZhbHNlKQogeworICAgIHJlc2V0KGRvY3VtZW50KTsKIH0KIAogYm9v
bCBJbnRlcm5hbHM6OmlzUHJlbG9hZGVkKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiB1cmwpCkBAIC0yMjYsMTcgKzIyNSw2IEBAIHZvaWQgSW50ZXJuYWxzOjpzZWxlY3RDb2xvcklu
Q29sb3JDaG9vc2VyKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgY29sb3JWCiB9CiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi12b2lkIEludGVybmFsczo6c2V0SW5zcGVj
dG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgbWF4aW11
bVJlc291cmNlc0NvbnRlbnRTaXplLCBpbnQgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNp
emUsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50
LT5wYWdlKCkgfHwgIWRvY3VtZW50LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkgewot
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBkb2N1bWVudC0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldFJlc291cmNl
c0RhdGFTaXplTGltaXRzRnJvbUludGVybmFscyhtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUs
IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKTsKLX0KLSNlbmRpZgotCiBQYXNzUmVm
UHRyPENsaWVudFJlY3Q+IEludGVybmFsczo6Ym91bmRpbmdCb3goRWxlbWVudCogZWxlbWVudCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFlbGVtZW50KSB7CkBAIC0yODYsMTQxICsy
NzQsNiBAQCBQYXNzUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShO
b2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlcgogICAgIHJldHVybiBSYW5nZTo6Y3JlYXRl
KG5vZGUtPmRvY3VtZW50KCksIG5vZGUsIG1hcmtlcnNbaW5kZXhdLT5zdGFydE9mZnNldCgpLCBu
b2RlLCBtYXJrZXJzW2luZGV4XS0+ZW5kT2Zmc2V0KCkpOwogfQogCi12b2lkIEludGVybmFsczo6
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5z
ZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldEZvcmNlQ29tcG9z
aXRpbmdNb2RlKGVuYWJsZWQpOwotfQotCi12b2lkIEludGVybmFsczo6c2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JGaXhlZFBvc2l0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0
dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgSW50
ZXJuYWxzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoRG9jdW1lbnQq
IGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJ
RF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9jdW1lbnQtPnNl
dHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzRW5h
YmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldEFjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5ncygpKSB7Ci0g
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
ZW5hYmxlZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFi
bGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykK
LXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewotICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGVuYWJs
ZWQpOwotfQotCi12b2lkIEludGVybmFsczo6c2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoRG9jdW1l
bnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlm
ICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0jaWYgRU5BQkxFKFNN
T09USF9TQ1JPTExJTkcpCi0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldEVuYWJsZVNjcm9s
bEFuaW1hdG9yKGVuYWJsZWQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZW5hYmxlZCk7Ci0j
ZW5kaWYKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybShEb2N1
bWVudCAqZG9jdW1lbnQsIGZsb2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQgdHksIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkgfHwg
IWRvY3VtZW50LT52aWV3KCktPmZyYW1lKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoR0VTVFVSRV9FVkVO
VFMpCi0gICAgUGxhdGZvcm1HZXN0dXJlRXZlbnQgcGdlKFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVE
b3VibGVUYXAsIEludFBvaW50KHR4LCB0eSksIEludFBvaW50KHR4LCB0eSksIDAsIHNjYWxlLCAw
LmYsIDAsIDAsIDAsIDApOwotICAgIGRvY3VtZW50LT52aWV3KCktPmZyYW1lKCktPmV2ZW50SGFu
ZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGdlKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFN
KHNjYWxlKTsKLSAgICBVTlVTRURfUEFSQU0odHgpOwotICAgIFVOVVNFRF9QQVJBTSh0eSk7Ci0j
ZW5kaWYKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldFpvb21QYXJhbWV0ZXJzKERvY3VtZW50KiBk
b2N1bWVudCwgZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlvbkNvZGUmIGVj
KQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkgfHwgIWRvY3VtZW50
LT52aWV3KCktPmZyYW1lKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAg
ICBkb2N1bWVudC0+dmlldygpLT5zY3JvbGxBbmltYXRvcigpLT5zZXRab29tUGFyYW1ldGVyc0Zv
clRlc3Qoc2NhbGUsIHgsIHkpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2NhbGUpOwotICAg
IFVOVVNFRF9QQVJBTSh4KTsKLSAgICBVTlVTRURfUEFSQU0oeSk7Ci0jZW5kaWYKLX0KLQotdm9p
ZCBJbnRlcm5hbHM6OnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQs
IGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8
fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+
c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGVuYWJsZWQpOwotfQotCi12b2lkIEludGVybmFsczo6
c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNl
dHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwKSB7
Ci0gICAgICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2t1cCA9IGRvY3VtZW50LT5zZXR0aW5n
cygpLT5wYXNzd29yZEVjaG9FbmFibGVkKCk7Ci0gICAgICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxl
ZEJhY2tlZFVwID0gdHJ1ZTsKLSAgICB9Ci0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldFBh
c3N3b3JkRWNob0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRQYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhEb2N1bWVudCogZG9jdW1lbnQsIGRvdWJsZSBkdXJh
dGlvbkluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8
fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcGFzc3dvcmRFY2hvRHVy
YXRpb25JblNlY29uZHNCYWNrZWRVcCkgewotICAgICAgICBtX3Bhc3N3b3JkRWNob0R1cmF0aW9u
SW5TZWNvbmRzQmFja3VwID0gZG9jdW1lbnQtPnNldHRpbmdzKCktPnBhc3N3b3JkRWNob0R1cmF0
aW9uSW5TZWNvbmRzKCk7Ci0gICAgICAgIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNC
YWNrZWRVcCA9IHRydWU7Ci0gICAgfQotICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRQYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkdXJhdGlvbkluU2Vjb25kcyk7Ci19Ci0KIHZvaWQg
SW50ZXJuYWxzOjpzZXRTY3JvbGxWaWV3UG9zaXRpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBsb25n
IHgsIGxvbmcgeSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAh
ZG9jdW1lbnQtPnZpZXcoKSkgewpAQCAtNDY5LDE3ICszMjIsNyBAQCB2b2lkIEludGVybmFsczo6
cmVzZXQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBvYnNlcnZl
RnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOwotCi0gICAgaWYgKG1fcGFzc3dvcmRFY2hvRHVyYXRp
b25JblNlY29uZHNCYWNrZWRVcCkgewotICAgICAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0
UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMobV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vj
b25kc0JhY2t1cCk7Ci0gICAgICAgIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNr
ZWRVcCA9IGZhbHNlOwotICAgIH0KLQotICAgIGlmIChtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNr
ZWRVcCkgewotICAgICAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0UGFzc3dvcmRFY2hvRW5h
YmxlZChtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrdXApOwotICAgICAgICBtX3Bhc3N3b3JkRWNo
b0VuYWJsZWRCYWNrZWRVcCA9IGZhbHNlOwotICAgIH0KLQorICAgIG1fc2V0dGluZ3MgPSBJbnRl
cm5hbFNldHRpbmdzOjpjcmVhdGUoZG9jdW1lbnQtPmZyYW1lKCksIG1fc2V0dGluZ3MuZ2V0KCkp
OwogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKICAgICAgICAgcGFnZS0+
c2V0UGFnaW5hdGlvbihQYWdlOjpQYWdpbmF0aW9uKCkpOwogfQpAQCAtNTkxLDU2ICs0MzQsNiBA
QCB1bnNpZ25lZCBJbnRlcm5hbHM6Omxlbmd0aEZyb21SYW5nZShFbGVtZW50KiBzY29wZSwgY29u
c3QgUmFuZ2UqIHJhbmdlLCBFeGNlcHRpbwogICAgIHJldHVybiBsZW5ndGg7CiB9CiAKLXZvaWQg
SW50ZXJuYWxzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKERv
Y3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygpKSB7Ci0gICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgRnJhbWVWaWV3
KiBmcmFtZVZpZXcgPSBkb2N1bWVudC0+dmlldygpOwotICAgIGZyYW1lVmlldy0+c2V0U2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShlbmFibGVkKTsKLX0KLQotdm9pZCBJ
bnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVu
dCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50
IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCkp
IHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBkb2N1bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+c2V0VW5pZmllZFRleHRD
aGVja2VyRW5hYmxlZChlbmFibGVkKTsKLX0KLQotYm9vbCBJbnRlcm5hbHM6OnVuaWZpZWRUZXh0
Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkgfHwgIWRvY3VtZW50LT5m
cmFtZSgpLT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIGRvY3VtZW50LT5mcmFt
ZSgpLT5zZXR0aW5ncygpLT51bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKCk7Ci19Ci0KLWZsb2F0
IEludGVybmFsczo6cGFnZVNjYWxlRmFjdG9yKERvY3VtZW50ICpkb2N1bWVudCwgRXhjZXB0aW9u
Q29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkgewot
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAg
fQotCi0gICAgcmV0dXJuIGRvY3VtZW50LT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwotfQot
Ci12b2lkIEludGVybmFsczo6c2V0UGFnZVNjYWxlRmFjdG9yKERvY3VtZW50KiBkb2N1bWVudCwg
ZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0g
ICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkgewotICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBkb2N1bWVudC0+
cGFnZSgpLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkpKTsK
LX0KLQogaW50IEludGVybmFsczo6bGFzdFNwZWxsQ2hlY2tSZXF1ZXN0U2VxdWVuY2UoRG9jdW1l
bnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBTcGVsbENoZWNrZXIqIGNo
ZWNrZXIgPSBzcGVsbGNoZWNrZXIoZG9jdW1lbnQpOwpAQCAtNjY1LDE2ICs0NTgsNiBAQCBpbnQg
SW50ZXJuYWxzOjpsYXN0U3BlbGxDaGVja1Byb2Nlc3NlZFNlcXVlbmNlKERvY3VtZW50KiBkb2N1
bWVudCwgRXhjZXB0aW9uQ29kZQogICAgIHJldHVybiBjaGVja2VyLT5sYXN0UHJvY2Vzc2VkU2Vx
dWVuY2UoKTsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OnNldFBlclRpbGVEcmF3aW5nRW5hYmxlZChE
b2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0g
ICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMg
PSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1
bWVudC0+c2V0dGluZ3MoKS0+c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKGVuYWJsZWQpOwotfQot
CiBWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25z
dAogewogICAgIHJldHVybiBXZWJDb3JlOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBmNThjYzRjMTcwYzc1MzhiNWNmN2NjOTUyOWE3
NzEwMTRjOGUzYjNmLi44Yzg1YjY4NmM4YTY3OGU0YzVkMjk1MzM1NTRlYWFkMzg2ODc1YjQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQ2xpZW50UmVjdDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxl
bWVudDsKK2NsYXNzIEludGVybmFsU2V0dGluZ3M7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmFuZ2U7
CiAKQEAgLTQ1LDcgKzQ2LDcgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIGNsYXNzIElu
dGVybmFscyA6IHB1YmxpYyBSZWZDb3VudGVkPEludGVybmFscz4sCiAgICAgICAgICAgICAgICAg
ICBwdWJsaWMgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJbnRlcm5hbHM+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElu
dGVybmFscz4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+SW50ZXJuYWxzKCk7CiAK
ICAgICB2b2lkIHJlc2V0KERvY3VtZW50Kik7CkBAIC02NiwzMiArNjcsMTEgQEAgcHVibGljOgog
ICAgIHZvaWQgc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihFbGVtZW50KiwgY29uc3QgU3RyaW5n
JiBjb2xvclZhbHVlKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICB2b2lk
IHNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKERvY3VtZW50KiwgaW50IG1heGlt
dW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRT
aXplLCBFeGNlcHRpb25Db2RlJik7Ci0jZWxzZQotICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVzb3Vy
Y2VzRGF0YVNpemVMaW1pdHMoRG9jdW1lbnQqLCBpbnQgbWF4aW11bVJlc291cmNlc0NvbnRlbnRT
aXplLCBpbnQgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUsIEV4Y2VwdGlvbkNvZGUm
KSB7IH0KLSNlbmRpZgotCiAgICAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBib3VuZGluZ0JveChF
bGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdW5zaWduZWQgbWFya2VyQ291bnRGb3JO
b2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0
cjxSYW5nZT4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25l
ZCwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShE
b2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFi
bGVGcmFtZXMoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2
b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQo
RG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIHZvaWQgc2V0
RW5hYmxlU2Nyb2xsQW5pbWF0b3IoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShEb2N1bWVudCosIGZsb2F0
IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQgdHksIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNl
dFpvb21QYXJhbWV0ZXJzKERvY3VtZW50KiwgZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHks
IEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKERv
Y3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICB2b2lkIHNldFBh
c3N3b3JkRWNob0VuYWJsZWQoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUm
KTsKLSAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKERvY3VtZW50Kiwg
ZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzLCBFeGNlcHRpb25Db2RlJik7Ci0KICAgICB2b2lkIHNl
dFNjcm9sbFZpZXdQb3NpdGlvbihEb2N1bWVudCosIGxvbmcgeCwgbG9uZyB5LCBFeGNlcHRpb25D
b2RlJik7CiAKICAgICB2b2lkIHNldFBhZ2luYXRpb24oRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcm
IG1vZGUsIGludCBnYXAsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTEwNiwzMSArODYsMjEgQEAgcHVi
bGljOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKEVs
ZW1lbnQqIHNjb3BlLCBpbnQgcmFuZ2VMb2NhdGlvbiwgaW50IHJhbmdlTGVuZ3RoLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdW5zaWduZWQgbG9jYXRpb25Gcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUs
IGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHVuc2lnbmVkIGxlbmd0aEZyb21S
YW5nZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFuZ2UqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
dm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKERvY3VtZW50
KiwgYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwotCi0gICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNr
aW5nRW5hYmxlZChEb2N1bWVudCosIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBib29sIHVu
aWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAg
ICAgaW50IGxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNlKERvY3VtZW50KiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIGludCBsYXN0U3BlbGxDaGVja1Byb2Nlc3NlZFNlcXVlbmNlKERvY3VtZW50
KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIAotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcihEb2N1
bWVudCosICBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoRG9j
dW1lbnQqLCBmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJik7
Ci0KLSAgICB2b2lkIHNldFBlclRpbGVEcmF3aW5nRW5hYmxlZChEb2N1bWVudCosIGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotCiAgICAgVmVjdG9yPFN0cmluZz4gdXNlclByZWZlcnJl
ZExhbmd1YWdlcygpIGNvbnN0OwogICAgIHZvaWQgc2V0VXNlclByZWZlcnJlZExhbmd1YWdlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFs
c0lkOwogCisgICAgSW50ZXJuYWxTZXR0aW5ncyogc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBt
X3NldHRpbmdzLmdldCgpOyB9CisKIHByaXZhdGU6Ci0gICAgSW50ZXJuYWxzKCk7CisgICAgZXhw
bGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAKLSAgICBkb3VibGUgbV9wYXNzd29yZEVjaG9E
dXJhdGlvbkluU2Vjb25kc0JhY2t1cDsKLSAgICBib29sIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJh
Y2t1cCA6IDE7Ci0gICAgYm9vbCBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja2Vk
VXAgOiAxOwotICAgIGJvb2wgbV9wYXNzd29yZEVjaG9FbmFibGVkQmFja2VkVXAgOiAxOworICAg
IFJlZlB0cjxJbnRlcm5hbFNldHRpbmdzPiBtX3NldHRpbmdzOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDY2YzllYTUx
OTljOGNiZmY4NzgyZTVjNWRjMjU4Zjk1YTc4NTYxMDMuLjU2MTlkNjQyNWM3NWRiNTMyNGE0NGU0
YTUzZTY1MmI2NjE0MWQ3ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAg
LTQyLDI1ICs0MiwxMCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzZWxlY3RDb2xv
ckluQ29sb3JDaG9vc2VyKGluIEVsZW1lbnQgZWxlbWVudCwgaW4gRE9NU3RyaW5nIGNvbG9yVmFs
dWUpOwogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6
ZUxpbWl0cyhpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBtYXhpbXVtUmVzb3VyY2VzQ29u
dGVudFNpemUsIGluIGxvbmcgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpIHJhaXNl
cyhET01FeGNlcHRpb24pOwotCiAgICAgICAgIENsaWVudFJlY3QgYm91bmRpbmdCb3goaW4gRWxl
bWVudCBlbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdW5zaWduZWQgbG9u
ZyBtYXJrZXJDb3VudEZvck5vZGUoaW4gTm9kZSBub2RlLCBpbiBET01TdHJpbmcgbWFya2VyVHlw
ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFJhbmdlIG1hcmtlclJhbmdlRm9yTm9k
ZShpbiBOb2RlIG5vZGUsIGluIERPTVN0cmluZyBtYXJrZXJUeXBlLCBpbiB1bnNpZ25lZCBsb25n
IGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lkIHNldEZvcmNlQ29t
cG9zaXRpbmdNb2RlKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9y
Rml4ZWRQb3NpdGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0Zv
clNjcm9sbGFibGVGcmFtZXMoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxl
ZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3
aW5nRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFi
bGVkKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGluIERvY3Vt
ZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwot
ICAgICAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShpbiBEb2N1bWVudCBkb2N1bWVu
dCwgaW4gZmxvYXQgc2NhbGUsIGluIGZsb2F0IHR4LCBpbiBmbG9hdCB0eSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0Wm9vbVBhcmFtZXRlcnMoaW4gRG9jdW1lbnQgZG9j
dW1lbnQsIGluIGZsb2F0IHNjYWxlLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
Ci0KLSAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGluIERvY3VtZW50IGRvY3Vt
ZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2
b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGluIERvY3VtZW50IGRvY3VtZW50
LCBpbiBkb3VibGUgZHVyYXRpb25JblNlY29uZHMpIHJhaXNlcyhET01FeGNlcHRpb24pOwotCiAg
ICAgICAgIHZvaWQgc2V0U2Nyb2xsVmlld1Bvc2l0aW9uKGluIERvY3VtZW50IGRvY3VtZW50LCBp
biBsb25nIHgsIGluIGxvbmcgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9p
ZCBzZXRQYWdpbmF0aW9uKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBET01TdHJpbmcgbW9kZSwg
aW4gbG9uZyBnYXApIHJhaXNlcyhET01FeGNlcHRpb24pOwpAQCAtNzcsMTcgKzYyLDEyIEBAIG1v
ZHVsZSB3aW5kb3cgewogICAgICAgICB1bnNpZ25lZCBsb25nIGxvY2F0aW9uRnJvbVJhbmdlKGlu
IEVsZW1lbnQgc2NvcGUsIGluIFJhbmdlIHJhbmdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoRnJvbVJhbmdlKGluIEVsZW1lbnQgc2NvcGUsIGlu
IFJhbmdlIHJhbmdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCBzZXRT
aG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGluIERvY3VtZW50IGRvY3Vt
ZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2
b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGluIERvY3VtZW50IGRvY3VtZW50LCBp
biBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgYm9vbGVh
biB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2Vz
IChET01FeGNlcHRpb24pOwotCiAgICAgICAgIGxvbmcgbGFzdFNwZWxsQ2hlY2tSZXF1ZXN0U2Vx
dWVuY2UoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgbG9uZyBsYXN0U3BlbGxDaGVja1Byb2Nlc3NlZFNlcXVlbmNlKGluIERvY3VtZW50IGRvY3Vt
ZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFj
dG9yKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
dm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0IHNj
YWxlRmFjdG9yLCBpbiBsb25nIHgsIGluIGxvbmcgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0K
ICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIEFycmF5IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7
CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEludGVybmFsU2V0dGluZ3Mgc2V0dGluZ3M7
CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJD
b3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwCmluZGV4IDhhNzk1YmYyZjZiM2FjYzcxM2UyMDViMzdjMzljZWI3N2Y5YTE1
ZGEuLjFkMmE0NTc1YjM3NzdmODgzMTZiNmJhNWY5YTNjOGFhYmVhMTA3ZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTI3LDcg
KzI3LDYgQEAKICNpbmNsdWRlICJXZWJDb3JlVGVzdFN1cHBvcnQuaCIKIAogI2luY2x1ZGUgIklu
dGVybmFscy5oIgotI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkpTSW50ZXJuYWxzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQVBJQ2FzdC5oPgpAQCAtNDMsNyArNDIsOSBAQCB2b2lkIGluamVjdEludGVybmFsc09i
amVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7CiAgICAgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKLSAgICBnbG9iYWxPYmplY3QtPnB1
dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgSW50ZXJuYWxzOjpp
bnRlcm5hbHNJZCksIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBJbnRlcm5hbHM6OmNyZWF0ZSgp
KSk7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGdsb2JhbE9i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9
IHNjcmlwdENvbnRleHQtPmlzRG9jdW1lbnQoKSA/IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc2Ny
aXB0Q29udGV4dCkgOiAwOworICAgIGdsb2JhbE9iamVjdC0+cHV0RGlyZWN0KGV4ZWMtPmdsb2Jh
bERhdGEoKSwgSWRlbnRpZmllcihleGVjLCBJbnRlcm5hbHM6OmludGVybmFsc0lkKSwgdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QsIEludGVybmFsczo6Y3JlYXRlKGRvY3VtZW50KSkpOwogfQogCiB2
b2lkIHJlc2V0SW50ZXJuYWxzT2JqZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy92OC9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy92OC9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCmluZGV4IDc2MzAy
ZWQ4MmE2OWEwMDBkZDA2YzEyNzUzOGVkOTNmODkwMTNhMDQuLjI4YzM3MjlmMzMzNDk0NjBiZjAz
NzFhOGRmZGE1NGRjNmE5YzhhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
djgvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL3Y4
L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTQyLDcgKzQyLDkgQEAgdm9pZCBpbmplY3RJbnRl
cm5hbHNPYmplY3Qodjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0KQogICAgIHY4OjpDb250
ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7CiAgICAgdjg6OkhhbmRsZVNjb3BlIHNj
b3BlOwogCi0gICAgY29udGV4dC0+R2xvYmFsKCktPlNldCh2ODo6U3RyaW5nOjpOZXcoSW50ZXJu
YWxzOjppbnRlcm5hbHNJZCksIHRvVjgoSW50ZXJuYWxzOjpjcmVhdGUoKSkpOworICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc2NyaXB0Q29udGV4dC0+aXNEb2N1bWVu
dCgpID8gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRDb250ZXh0KSA6IDA7CisgICAgY29u
dGV4dC0+R2xvYmFsKCktPlNldCh2ODo6U3RyaW5nOjpOZXcoSW50ZXJuYWxzOjppbnRlcm5hbHNJ
ZCksIHRvVjgoSW50ZXJuYWxzOjpjcmVhdGUoZG9jdW1lbnQpKSk7CiB9CiAKIHZvaWQgcmVzZXRJ
bnRlcm5hbHNPYmplY3Qodjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0KQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM1
MjUzYjY2MDE0ZTM1NzFmNTZhZDE3OGI2NDA5YzFlOTVmNjczMzkuLjM5OWM5Zjc1YjBmZWQxODIx
MjcyMjI0YWY3ZmEzNGM0ZGFmYjZhMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxMi0wMS0y
MCAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUmVm
YWN0b3JpbmddW0ludGVybmFsc10gU2hvdWxkIGhhdmUgSW50ZXJuYWxTZXR0aW5ncworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MjQKKworICAgICAg
ICBVcGRhdGVkIHRvIGZvbGxvdyBBUEkgcmVjZWl2ZXIgY2hhbmdlLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAgICAgICAg
KiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1j
b21wb3NpdGVkLXN3aXRjaC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29t
cG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9y
ZXNvdXJjZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5lci5odG1sOgorICAgICAgICAqIGNvbXBvc2l0
aW5nL3Jlc291cmNlcy9tb2NrX3Njcm9sbGJhcnMuanM6CisgICAgICAgICogY29tcG9zaXRpbmcv
c2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2lu
cHV0L3Jlc291cmNlcy9wYXNzd29yZC1lY2hvLmpzOgorICAgICAgICAoaW5pdCk6CisgICAgICAg
ICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWw6CisgICAg
ICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sOgorICAgICAg
ICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1s
OgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1y
ZWN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVj
dHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWJvZHkuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0
bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2Ut
Y2xpY2staWZyYW1lLmpzOgorICAgICAgICAoaWZyYW1lTG9hZGVkKToKKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanM6CisgICAgICAg
ICogZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVu
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2Vz
dHVyZS1jbGljay5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlv
bi1oaXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRz
Lmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sOgor
ICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAg
ICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWw6Cisg
ICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay10ZXN0LmpzOgorICAgICAg
ICAocmVzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJl
cGxhY2VtZW50LXhoci5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvYWxwaGEuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL3N2Zy1maWx0ZXJzLmh0bWw6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRp
bmctbW9kZS9mb3JjZS1jb21wb3NpdGUtZW1wdHkuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL25vLW92ZXJmbG93LWlm
cmFtZS1sYXllci5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaGlkZGVuLWlmcmFtZS1sYXllci5odG1s
OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0
aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWVudGVyLWNvbXBvc2l0aW5nLmh0bWw6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9v
dmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sZWF2ZS1j
b21wb3NpdGluZy5odG1sOgorCiAyMDEyLTAxLTE5ICBDYXJ5IENsYXJrICA8Y2FyeWNsYXJrQGdv
b2dsZS5jb20+CiAKICAgICAgICAgW1NraWEgTWFjXSBNYXRjaCBzdHlsZSBvZiBwbGF0Zm9ybSBl
cnJvciB1bmRlcmxpbmUgZm9yIG1pc3NwZWxsaW5ncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxl
LWRvd24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggMzc3MWY1ZTczZThhY2Yw
NmJjMGVjN2NiMjJmNzE2YjljMWEyYmRmOS4uYThlODRhYzZjMmU3Zjk3MTkxZDMwNTQ5MDFhZGVj
ZTQ2MGZlNjE4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUtZG93bi5odG1sCkBAIC0xOSw4ICsxOSw4IEBACiA8c2NyaXB0PgogICBmdW5jdGlv
biBzY2FsZSgpIHsKICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRy
dWUpOwotICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQs
IDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbih0cnVlKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDAuNSwgMCwgMCk7CiAgICAgfQogICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbAppbmRleCAwYzU4NTQxYWZjMDcxMmM5OThkOGM0YzllMDlkOTA3Njk2OTA1M2Jh
Li41MzI3YTE4ZmFjN2RkNTYwZGMwYWY3ZGI4OTVjN2Y2OWQxNzMzZWRmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMTksOCArMTksOCBA
QAogPHNjcmlwdD4KICAgZnVuY3Rpb24gc2NhbGUoKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhl
ZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFn
ZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKHRydWUpOworICAg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7
CiAgICAgfQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1zd2l0Y2gu
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNv
bXBvc2l0ZWQtc3dpdGNoLmh0bWwKaW5kZXggZDE5OTdlM2I1MGZmMzE5ZTVlNmZmYzFjN2JmMDFk
ZTdkMmFmMzA2Yi4uZGFhZDljOWQyMmI5YWMyNTk2Y2E1ODUzODA3M2NkZTE1ZDU1MWIwZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
Y29tcG9zaXRlZC1zd2l0Y2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXN3aXRjaC5odG1sCkBAIC0xOSw3ICsxOSw3
IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0
PSJ1dGYtOCI+CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIAotICAgICAgd2luZG93LmludGVy
bmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUp
OworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0Zv
ckZpeGVkUG9zaXRpb24odHJ1ZSk7CiAKICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS1kb3duLmh0bWwKaW5kZXggM2M3MjVkYWUxNDFkNWEzYzU3ZTVhNjQyNDFjNTY5MDFiNDA4
ZmYwMy4uZWEzMDIzZTdhMDRkOWM2ZDhmOTc2NThjYTUyYTk5ZGM3YjQwNTNkYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1l
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2Fs
ZS1kb3duLmh0bWwKQEAgLTE5LDggKzE5LDggQEAKIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAs
IDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogICAgIH0KICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCh0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUuaHRtbAppbmRleCAxNmFiMDc1MWNiZDAzMGYyNGVjY2FkMWY1NzYxMDFmMDg1
NGQ2MzYxLi40MGRkNzQzMDlkNTkyMTE3YmEwOTIyZWU3MjA1MGE2ZDY5NGJjYjBlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJh
bWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5o
dG1sCkBAIC0xOSw4ICsxOSw4IEBACiA8c2NyaXB0PgogICBmdW5jdGlvbiB0ZXN0KCkgewogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CisgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQ
b3NpdGlvbih0cnVlKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNj
YWxlRmFjdG9yKDIsIDAsIDApOwogICAgIH0KICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggNDVjZTAzNWYyOTIyOTQ2MGUzMzQyNzgwY2JmNGMx
ZmI1NmVjMjM2Ni4uYzExZWRkYjVjZjgzMzYzYjdjNjA4ZDZjNTVhNDNkZGE1MDEwZDEzOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
dHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTIxLDggKzIxLDggQEAKIDxzY3JpcHQ+CiAgIGZ1
bmN0aW9uIHNjYWxlKCkgewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVu
dCwgdHJ1ZSk7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1
bWVudCwgMC41LCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKHRydWUpOworICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC41LCAwLCAwKTsKICAgICB9CiAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQodHJ1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10
cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKaW5kZXggZGY4NjY3YjFhMjRkOTNl
ZDIzMTljOWM0OTVhMTU5NzZjYWQ4ZGFkZC4uNGU5OWM4ZWIzYjI3OWNkZmRmNGIyOTRmOTg1MDRj
Zjg0NDY0MmYyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9y
bS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMjEsOCArMjEsOCBAQAogPHNjcmlwdD4K
ICAgZnVuY3Rpb24gc2NhbGUoKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRv
Y3VtZW50LCB0cnVlKTsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9y
KGRvY3VtZW50LCAyLCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKHRydWUpOworICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAgICAgfQogICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5lci5odG1sIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5l
ci5odG1sCmluZGV4IGM0MmE1ZjEyM2ZiNjM1Y2MyMDcwNzRhMTIxOGE2ZWMyNjc2YTM1YTIuLmIw
YzEwM2I3MzY0MGY1ZWY2MDdhOWU1MWQyZTQ3ODM1MWM3Zjg4MGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hpbGQtaW5u
ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9z
Y3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgPC9zdHlsZT4K
ICAgPHNjcmlwdD4KICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKHRydWUpOwog
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXNv
dXJjZXMvbW9ja19zY3JvbGxiYXJzLmpzIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVzb3Vy
Y2VzL21vY2tfc2Nyb2xsYmFycy5qcwppbmRleCA3NDI4ZmJhYTBmZjkyMDQwMjMxNTdhMzNkNWI5
OTIyNGM3NDExYzAxLi43MWJkZjcwM2Q3Y2NiYzEwMjJkNDdlM2IwYWVkNmQ3MDYyZDhjNTRmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXNvdXJjZXMvbW9ja19zY3JvbGxi
YXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jlc291cmNlcy9tb2NrX3Njcm9s
bGJhcnMuanMKQEAgLTEsMyArMSwzIEBACiBpZiAod2luZG93LmludGVybmFscykgewotICB3aW5k
b3cuaW50ZXJuYWxzLnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7Cisg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKHRydWUp
OwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1s
YXllci1yZWN1cnNpb24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NjYWxpbmcvdGls
ZWQtbGF5ZXItcmVjdXJzaW9uLmh0bWwKaW5kZXggMzk5ZDBlMGYwNDZlYjRhYWYxOGE1M2YxZWEz
ZTEwY2QyZWJiYmY2ZS4uZmQzMjFhMzg0MzJjNWVhMjJmNjM3ZDA4N2IwM2Q3MTAyNzAyN2NlMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1y
ZWN1cnNpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVk
LWxheWVyLXJlY3Vyc2lvbi5odG1sCkBAIC0xNyw3ICsxNyw3IEBACiAgICAgZnVuY3Rpb24gc2Nh
bGVQYWdlKCkKICAgICB7CiAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDEuNTAwMjUsIDAsIDAp
OworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3Rvcigx
LjUwMDI1LCAwLCAwKTsKICAgICB9CiAgIAogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgc2NhbGVQYWdlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2lucHV0L3Jlc291cmNlcy9wYXNzd29yZC1lY2hvLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9p
bnB1dC9yZXNvdXJjZXMvcGFzc3dvcmQtZWNoby5qcwppbmRleCA3OTQ1ZTEwNWM0MDlhNGY5ZGYx
Yjk5NjkyMWQ5ZDgzYjQ5NmVlOTYzLi5hNzY0MWMwNzhjYzRkNzk3YjgxMmEwNWEzYmFhMzkzZTUw
YjZjYTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0L3Jlc291cmNlcy9w
YXNzd29yZC1lY2hvLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvcmVzb3VyY2Vz
L3Bhc3N3b3JkLWVjaG8uanMKQEAgLTgwLDggKzgwLDggQEAgZnVuY3Rpb24gaW5pdCh0ZXN0cykK
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhc3N3b3JkRWNob0Vu
YWJsZWQoZG9jdW1lbnQsIHRydWUpOwotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQ
YXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkb2N1bWVudCwgMC4xKTsKKyAgICAgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFzc3dvcmRFY2hvRW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFzc3dvcmRFY2hvRHVy
YXRpb25JblNlY29uZHMoMC4xKTsKICAgICAgICAgICAgIHRlc3Rub2RlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3Rub2RlJyk7CiAgICAgICAgICAgICBydW4odGVzdHMsIC0xKTsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbAppbmRleCAxNjcxNDAyZWE2NWZhMjY4ZWVjZDYx
OTdkZWFlNGE1YTFjMzE3MTA5Li5lNjE0NGE5MThiOWJkNTNiMGEyMjMyMjIwNjkzNzUzMjljZDUw
ZmFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2st
YXN5bmMtbXV0YXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbApAQCAtMzYsNyArMzYsNyBAQCBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiB9CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
IGludGVybmFscy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKHRy
dWUpOwogCiB2YXIgc291cmNlSWRzID0gWydzb3VyY2UnXTsKIHZhciBkZXN0RWxlbXMgPSBbJ3Rl
eHRhcmVhJywgJ2lucHV0JywgJ2NvbnRlbnRlZGl0YWJsZSddOwpAQCAtNzcsNyArNzcsNyBAQCBm
dW5jdGlvbiBkb1Rlc3RJZkFueSgpIHsKICAgICByZW1vdmVBbGxDaGlsZHJlbihkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbW92ZS10YXJnZXQnKSk7CiAKICAgICBpZiAod2luZG93LmludGVybmFs
cykKLSAgICAgICAgaW50ZXJuYWxzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3Vt
ZW50LCBmYWxzZSk7CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENo
ZWNraW5nRW5hYmxlZChmYWxzZSk7CiAKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWwKaW5kZXggNzI3MGEzMzUwODUwZGI1NWI3OWUwNDY4
MjU5M2VkMzA2MGRmMGFlZC4uNjExNDRkN2QzOGEyODVkNTU2MDIzNDJlODliYjc4ZDM0YzQ3M2Iy
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFz
eW5jLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFz
eW5jLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewogfQogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0VW5pZmll
ZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIHRydWUpOworICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZCh0cnVlKTsKIAogdmFyIGNvbnRhaW5l
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKIGZ1bmN0aW9uIHJlbW92
ZUNoaWxkcmVuKG5vZGUpIHsKQEAgLTU3LDcgKzU3LDcgQEAgZnVuY3Rpb24gZG9UZXN0SWZBbnko
KSB7CiAgICAgLy8gTm8gbW9yZSB0ZXN0cy4KICAgICByZW1vdmVDaGlsZHJlbihjb250YWluZXIp
OwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICBpbnRlcm5hbHMuc2V0VW5pZmll
ZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIGZhbHNlKTsKKyAgICAgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGZhbHNlKTsKIAogICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoZmFsc2UpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxh
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVk
LWVtdWxhdGlvbi5odG1sCmluZGV4IDJhOWVlYjdiYzIwMDFhYjg4MzRlNjllZjg4OTg0ZTYzMTVl
NjYwNWUuLjQ4ZmNmY2YwYTM1MmRhNzFhNzUxMjA4YThjMjVlYWJmMWZjY2Y2OWEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRp
b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZp
ZWQtZW11bGF0aW9uLmh0bWwKQEAgLTMxLDcgKzMxLDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogfQogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMu
c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIHRydWUpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZCh0cnVlKTsKIAogdmFy
IHRlc3REYXRhID0gWwogICAgIHsgdGV4dDogJ3p6JywgbWFya2VkOiBbJ3p6J10gfSwKQEAgLTg1
LDcgKzg1LDcgQEAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0RGF0YS5sZW5ndGg7ICsraSkgewog
fQogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRD
aGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZmFsc2UpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRWxlbWVudC9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRt
bAppbmRleCA2MDIyODliMzM1MTI5MTVhZWI5ZGU2NTJmZWU3NTgyOWQwOTljYTczLi4zMzBiNTU3
N2E5MWFlMTYxZDI0NDEwZWZhYmEzNWViYzMxNDkxZTY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtYm91bmRpbmctY2xp
ZW50LXJlY3QuaHRtbApAQCAtOSw3ICs5LDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAgICAK
ICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdiIpOwogICAgIHZhciBy
ZWN0ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVk
UmVjdCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKIAogICAgIHZhciByZXN1bHQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKaW5kZXgg
OGZhMmEzMTEwNWFhNzY4OGJjMzU4ZTliNTM4ZDEwMzQ4YzdlOGFmMy4uMTc2YWMwNjkxNGQxYTc0
OWY0ZWNiMGJiYTgzMDI1Nzc3NmI1NWEzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbApAQCAtOSw3ICs5
LDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAgICAKICAgICB2YXIgZGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdiIpOwogICAgIHZhciByZWN0TGlzdCA9IGRpdi5nZXRDbGllbnRS
ZWN0cygpOwotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50
LCAyLCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZh
Y3RvcigyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmVjdExpc3QgPSBkaXYuZ2V0Q2xpZW50UmVj
dHMoKTsKIAogICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJv
dW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2Fs
ZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKaW5kZXggZjEyYzBmZDc4MzE4M2JjNThi
Yjg0YjA4ZDZjMDg3OTIwYTVlNjllOC4uMThiZDZmYTk1MjMwMmJiNTg1NWE2NDZhNGZkYTQ4YTE0
Mzg5ZGJmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFn
ZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Jh
bmdlL3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbApAQCAtMTEsNyArMTEsNyBA
QCBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2JykpOwogICAgIHZhciByZWN0ID0gcmFuZ2UuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CiAgICAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2Fs
ZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAgICAgdmFyIHNjYWxlZFJhbmdlID0gZG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgICBzY2FsZWRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpKTsKICAgICB2YXIgc2NhbGVkUmVjdCA9IHNj
YWxlZFJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKaW5kZXggM2Vm
MzY3OTU1NjMyMjNhOGI3NDNkYjIwZGY4MDQwMTFkOGZkMDgxMy4uZTRjZWQwZjdhN2ViMTRkZTNh
YmM3N2Y1ZGUyZDJmYTZmOTA4MDkxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
UmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCkBAIC0xMiw3ICsxMiw3IEBA
IGZ1bmN0aW9uIHRlc3RSZWN0cygpCiAgICAgdmFyIHJlY3RMaXN0ID0gcmFuZ2UuZ2V0Q2xpZW50
UmVjdHMoKTsKICAgICB2YXIgcmVjdCA9IHJlY3RMaXN0WzBdOwogICAgCi0gICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogICAgIHZh
ciBzY2FsZWRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CiAgICAgc2NhbGVkUmFuZ2Uu
c2VsZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKSk7CiAgICAg
dmFyIHNjYWxlZFJlY3RMaXN0ID0gc2NhbGVkUmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKaW5k
ZXggYTU3MGQ3OTMzZjYwYWU2OGNjN2Y5Y2EwZmQwZDUzOGM3M2E5ZWNhMy4uOWU2ZTAwNWVlM2Mw
ZjllOTc0MDAxY2FhMzgwYWVhYWMwZDAxYzM4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAg
ICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogCiAgICAgICBmdW5jdGlvbiBz
Y3JvbGwoKSB7Ci0gICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3aW5kb3cu
aW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3RvciBzaG91bGQgbm90IGJlIGFwcGFyZW50CisgICAg
ICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFBhZ2VTY2FsZUZhY3RvciBzaG91bGQgbm90IGJlIGFwcGFyZW50CiAgICAgICAgICAg
Ly8gdG8gamF2YXNjcmlwdC4gU28sIHdlIGV4cGVjdCBzY3JvbGxpbmcgdG8gKDEwMCwxMDApIHRv
IGJlIHBhZ2UgY29vcmRpbmF0ZXMsIHJhdGhlcgogICAgICAgICAgIC8vIHRoYW4gZGV2aWNlIHBp
eGVscy4KICAgICAgICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQgPSAxMDA7CkBAIC0yNiw3
ICsyNiw3IEBACiAgICAgICAgICAgdmFyIHNjYWxlRmFjdG9yID0gMi4wOwogICAgICAgICAgIHZh
ciBzY2FsZU9mZnNldCA9IDA7CiAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAg
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwg
c2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CisgICAgICAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIHNj
YWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1i
b2R5Lmh0bWwKaW5kZXggODE5NWI5OWZjYWVlZmI4YWZlYTZhMmZmYmIyNjJhYWY3ZmMyYTI4OC4u
Mjg0MDAyYzVhMmVhZmExNDU4OTE4OTNiMjkyMDgzYmVkMzA5OTE5NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLWJvZHku
aHRtbApAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgdmFyIHNjYWxlRmFjdG9yID0gMC41
OwogICAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKICAgICAgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFn
ZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zm
c2V0KTsKKyAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdl
U2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbAppbmRleCA3NzkzNTgx
MmExNjUwMTJmODI1NTY2MmM5ZGVmMGM2MjdiMjA2NzI1Li5hNzM0MmI1MjQyMjBjNTBkYTg2MjFm
MGU5YjgwM2IxMTI5ZWM5MTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
Y2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbApAQCAtMjQsNyArMjQs
NyBAQAogICAgICAgICAgICAgdmFyIHNjYWxlRmFjdG9yID0gMC41OwogICAgICAgICAgICAgdmFy
IHNjYWxlT2Zmc2V0ID0gMDsKICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0g
ICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3Vt
ZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9s
bC13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwt
d2luZG93Lmh0bWwKaW5kZXggNWMzNWU2NWNjYTE4ZWE0MjcyMjQwOGQ0MjQyMTAyYWEwNTVjNTZi
MS4uOWI0ZDM0ZjVkMTJmNTE2ODU5ZTFjNzdhYTU5NDcwYmQ4MTc3YWVkNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sCkBA
IC0xMCw3ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsK
IAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxl
LCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5v
dCBiZSBhcHBhcmVudAorICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBh
cHBhcmVudAogICAgICAgICAgIC8vIHRvIGphdmFzY3JpcHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xs
aW5nIHRvICgxMDAsMTAwKSB0byBiZSBwYWdlIGNvb3JkaW5hdGVzLCByYXRoZXIKICAgICAgICAg
ICAvLyB0aGFuIGRldmljZSBwaXhlbHMuCiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwx
MDApOwpAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgIHZhciBzY2FsZUZhY3RvciA9IDIuMDsK
ICAgICAgICAgICB2YXIgc2NhbGVPZmZzZXQgPSAwOwogICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0
b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOworICAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKHNj
YWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3Bh
Z2Utc2NhbGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanMKaW5kZXggMzk3
ZjhkZTM3Yzg3Mzc1Y2I5NDQ0NmY1MDI0ZTVkYjc5NGVhNjEyMi4uZGY0NTVhMmY2ZWRiYTZlNzEw
YzZlMjBhYTNiYWZkN2UwNjBiYzgwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcworKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xp
Y2staWZyYW1lLmpzCkBAIC02MCwxNSArNjAsMTUgQEAgZnVuY3Rpb24gaWZyYW1lTG9hZGVkKCkg
ewogCiAgICAgdGVzdEV2ZW50cygwLCAiVW5zY2FsZWQiLCAiY2xpY2soMTAsIDEwKSIpOwogCi0g
ICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwg
MCk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC41
LCAwLCAwKTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdlU2NhbGUoMC41KSIsICJjbGljaygy
MCwgMjApIik7CiAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1
bWVudCwgMS4wLCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VT
Y2FsZUZhY3RvcigxLjAsIDAsIDApOwogICAgIGh0bWwuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3Jt
Il0gPSAic2NhbGUoMC41LCAyLjApIjsKICAgICBodG1sLnN0eWxlWyItd2Via2l0LXRyYW5zZm9y
bS1vcmlnaW4iXSA9ICIwIDAiOwogICAgIHRlc3RFdmVudHMoMCwgIkNTUyBzY2FsZSgwLjUsIDIu
MCkiLCAiY2xpY2soMjAsIDUpIik7CiAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2Fs
ZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogICAgIHRlc3RFdmVudHMoMCwgInNl
dFBhZ2VTY2FsZSgwLjUpLCBDU1Mgc2NhbGUoMC41LCAyLjApIiwgImNsaWNrKDQwLCAxMCkiKTsK
ICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMv
cGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3Jp
cHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMKaW5kZXggNDRlNjgzY2M2NGVlOWJm
N2JmOTU1YTZjZjBmNzA2ODA5ZDZmNThjMy4uNzFiZjI3YWQ5YjUwOWNhYjM4ZTcwMzlhMTIxMjdl
ZWVjNGNiYjc1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRl
c3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5qcwpAQCAtNTAsNiArNTAs
NiBAQCBpZiAod2luZG93LmV2ZW50U2VuZGVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAv
LyBwYXJ0cyBvZiB0aGUgZG9jdW1lbnQgYXJlIHVuZGVyIHRoZSBtb3VzZS4KICAgICB0ZXN0RXZl
bnRzKDAsICJVbnNjYWxlZCIsICJjbGljaygxMCwgMTApIik7CiAKLSAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogICAgIHRl
c3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpIiwgImNsaWNrKDIwLCAyMCkiKTsKIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13
aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xs
LWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWwKaW5kZXggZmY2ZDJjOTkw
OWY2OTJjZjRlOTg1YWU2OTZkMjNmY2ZiZWIyOTA2ZC4uNzJjM2NjZTJjYmQ4NzU5MDIwNmUzNmEx
ODgwYzUzNDRhOGViMGQ4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Ny
b2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlk
ZGVuLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRM
ZWZ0OwogCiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgd2luZG93
LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwg
MCk7CiAKICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcCIs
ICIwIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Ut
c2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbAppbmRleCAwZGI5NTVi
MDA5OTllYjdiOWFlZTgyYWFmYzE2NzgxMGE0N2ZkODQzLi4yZTZkYmRkYjg1MDMyNDQzMTE5YTcw
YTFjZGY4NWEzNmExN2JhYzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5odG1s
CkBAIC04NCw3ICs4NCw3IEBAIGZ1bmN0aW9uIGVuZFRlc3QoKQogCiBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOworICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogICAg
IH0KIAogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG91Y2h0YXJnZXQn
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlv
bi1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1o
aXQuaHRtbAppbmRleCBjYzJjMjE0YWQyMjYxNzdmOWE5NmQ1MmVjOTQxYTYzZDQ4MzZlMTYyLi5h
ZDQ5YTRmZmNiNDNlM2RjZmQ3OTdmZDJmNDAwZjk1ZTY3ODIyNmJjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sCkBAIC03LDcg
KzcsNyBAQAogICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy5p
bnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgLy8gU2NhbGUg
dGhlIHBhZ2UgYW5kIHJlc2l6ZSB0aGUgZnJhbWVzIHRvIHZlcmlmeSBoaXQgdGVzdGluZyBvbiB0
aGUgZnJhbWVzZXQKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFj
dG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC41LCAwLCAwKTsKICAgICAgICAgICAgIHZhciBs
ZWZ0UGFuZWxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC8gODsKICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHdpbmRvdy5pbm5lcldpZHRoIC8gNCwgbGVmdFBhbmVsV2lkdGgp
OwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1sCmluZGV4IGIyMjExYjZi
OGI5ZmY2ZDlhMWEzMGYzZGZkNmE5MzYxNTNkMzcxMDAuLjI1ZjNmNjBkZDJmM2VlNTcxNjc4ZjMx
NDFkYjE3OTBmNmY5ZDBmMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXNldC1zY2FsaW5nLWhpdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXNldC1zY2FsaW5nLWhpdC5odG1sCkBAIC04LDcgKzgsNyBAQAogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIC8vIFNjYWxlIHRoZSBwYWdlIGFuZCByZXNpemUgdGhlIGZy
YW1lcyB0byB2ZXJpZnkgaGl0IHRlc3Rpbmcgb24gdGhlIGZyYW1lc2V0CiAgICAgICAgICAgICB2
YXIgbGVmdFBhbmVsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAvIDg7Ci0gICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsK
KyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9y
KDAuNSwgMCwgMCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhsZWZ0UGFu
ZWxXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0IC8gNCk7CiAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIgKiBs
ZWZ0UGFuZWxXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0IC8gNCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwK
aW5kZXggZDNhZjVmNjk3YjA3NjBmNTdkNWYyMDc1YTEwNGQyMDQxNjc1ZmIwNS4uZDIyMjhhY2Zm
NGI5MDdlOWQ1ODc0YTkwYzYwODM5M2I5M2U2M2YwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbApAQCAt
MjMsNyArMjMsNyBAQAogICAgICAgZnVuY3Rpb24gc2NhbGVQYWdlKHNjYWxlRmFjdG9yKSB7CiAg
ICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKICAgICAgICAgICBpZiAod2luZG93LmludGVy
bmFscykgewotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3Io
ZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOworICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgfQogICAgICAgfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwK
aW5kZXggZThjZmYwZDE2NTZiNTViZTg2ODQ0NjI1MDU1NzEzMzk3MTM4N2EzZC4uNmJiOTExZTYw
ODE0NmU5ZWI4MDUzZDdkYjZmY2NjZDNlMjA1YmVlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbApAQCAtNSw3ICs1LDcgQEAKICAgICBm
dW5jdGlvbiByZXBhaW50VGVzdCgpCiAgICAgewogICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3Vt
ZW50LCAwLjI1LCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0UGFnZVNjYWxlRmFjdG9yKDAuMjUsIDAsIDApOwogICAgIH0KIDwvc2NyaXB0PiAKIDwvaGVh
ZD4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1z
Y2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUu
aHRtbAppbmRleCBhOTVjNTcyODY4NjYwYzU1M2I2ODg3YWU3MDg1YmZkNDE1Y2IzMDBiLi5iNzY1
N2VmZjlkYzhmZTkwYzRiZDVkMTg3MTk2NzQ5ZDMyZDg4MTgzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0bWwKQEAgLTksNyArOSw3IEBA
CiAgICAgPHNjcmlwdD4KICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwog
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGRvY3VtZW50LCB0cnVl
KTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZExheW91dEZp
eGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUodHJ1ZSk7CiAKICAgICAgIGZ1bmN0aW9uIHNjcm9s
bCgpIHsKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLDEwMCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Utc2NhbGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1ib3R0b20taW4tcGFn
ZS1zY2FsZS5odG1sCmluZGV4IDEyZmM0NWE3Y2E3MzM4MWVlM2M5MzRlZDYxOGM3ZTIxOWM3MWJk
N2IuLjk2MTM4NDk2NDcyMGVkZjgwZDA3N2IxMmU2NTJmZjJjNDc1Zjk3NzUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1ib3R0b20taW4tcGFnZS1zY2Fs
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1ib3R0b20t
aW4tcGFnZS1zY2FsZS5odG1sCkBAIC05LDcgKzksNyBAQAogICAgIDxzY3JpcHQ+CiAgICAgICB3
aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKICAgICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQotICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZShkb2N1bWVudCwgdHJ1ZSk7CisgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lKHRydWUpOwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwoKSB7CiAgICAgICAgICAgd2luZG93
LnNjcm9sbFRvKDEwMCwxMDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9maXhlZC1yaWdodC1pbi1wYWdlLXNjYWxlLmh0bWwKaW5kZXggOTAzODNlODY5YjYwZWRkY2Ew
ODIyNTgyMWYxZjBmZjQ1MDQ1MGE2ZS4uYTI4YzE0NmNlZmU3MTBmZGIwMTVjMGViOTAzZDY5NDI0
MWUwNDQ4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0
LWluLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQt
cmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sCkBAIC05LDcgKzksNyBAQAogICAgIDxzY3JpcHQ+CiAg
ICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0U2hvdWxkTGF5b3V0Rml4
ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShkb2N1bWVudCwgdHJ1ZSk7CisgICAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKHRydWUpOwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwoKSB7CiAgICAgICAgICAg
d2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2NhbGUtcGFnZS1zaHJpbmsuaHRtbAppbmRleCA5MmYzZTNkNWY2ZjY2ZTFjOTllMTk3YmZlN2Ux
NGZhYTAyZjBkMDQwLi4wOWJkMjIxODMxZDdmNmJlOTZhZjc0MGRiOWY5NzE4OTE2NjdiMjY5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbApA
QCAtNSw3ICs1LDcgQEAKICAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCiAgICAgewogICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjI1LCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDAuMjUsIDAsIDApOwogICAg
IH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90cmFu
c2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmll
dy5odG1sCmluZGV4IDEwZTI2YmI4OTE3MmRiZmIwNzcwNzBiNmRiMDFkMDAwZTI5ODIwNzEuLmZm
MjYzMzkwOTcyMGI5ZGM1YTIyNWIyMDhmYzhmY2Q4MTUzMDhjODMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZp
ZXcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5k
cy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwKQEAgLTYsNyArNiw3IEBACiAgICAgPHNjcmlwdD4K
ICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CiAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwg
MiwgMCwgMCk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VT
Y2FsZUZhY3RvcigyLCAwLCAwKTsKICAgICAgICAgfQogCiAgICAgICAgIGRvY3VtZW50LmV4ZWND
b21tYW5kKCJGaW5kU3RyaW5nIiwgZmFsc2UsICJ0YXJnZXQiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstdGVzdC5qcyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstdGVzdC5qcwppbmRleCAxNDEzMDg0Yzk4ODNk
MzZjNzE0NTE2OGYxM2UzODAwZGQ3ZGQ2NjI3Li4zMzgyZmVmMjQyNzViNGNhN2FjNTI1Yjg1YzNh
ZDZhNmYzYTg5ZjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay10ZXN0LmpzCkBAIC00NCw3ICs0NCw3IEBAIGZ1bmN0aW9uIHJlc2V0SW5zcGVjdG9y
UmVzb3VyY2VzRGF0YSgpCiAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpbnRlcm5hbHMuc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVM
aW1pdHMoZG9jdW1lbnQsIDEwICogMTAwMCAqIDEwMDAsIDEwMDAgKiAxMDAwKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoMTAgKiAx
MDAwICogMTAwMCwgMTAwMCAqIDEwMDApOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29u
dGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQtZW1iZWQuaHRtbAppbmRl
eCAxYjc0MmNiYmNlMmYzZDRiMjQzOTNjOGQwMDA2YTJkZWViOGIyMzMxLi5lMWQ1Njk4MGFiNWUz
MTdlZjE0ODY5MzM1OTFjN2Q4ZTc1MWZmYTNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC1lbWJl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0bWwKQEAgLTMxLDcgKzMxLDcgQEAgZnVu
Y3Rpb24gbG9hZFVSTHMoKQogICAgIH0KICAgICAvLyBFYWNoICcqJyBzeW1ib2wgaW4gb3JpZ2lu
YWwgZGF0YSB3aWxsIHVzZSB0d28gYnl0ZXMgaW4gU3RyaW5nIG9iamVjdAogICAgIC8vIGFmdGVy
IGRlY29kaW5nLCBoZW5jZSBtdWx0aXBseWluZyBieSB0d28uCi0gICAgaW50ZXJuYWxzLnNldElu
c3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKGRvY3VtZW50LCAyKjMwMCwgMioyMDApOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0
cygyKjMwMCwgMioyMDApOwogCiAgICAgLy8gSGVyZSB3ZSB0ZXN0IHJlcGxhY2VtZW50IGxvZ2lj
LiBXZSBzYXZlIGZpcnN0IHR3byByZXNvdXJjZXMgY29udGVudCwKICAgICAvLyBkaXNjYXJkIHRo
aXJkIHJlc291cmNlIGNvbnRlbnQgb25jZSB3ZSBzZWUgaXRzIHNpemUgZXhjZWVkcyBsaW1pdCwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1jb250ZW50LXJlcGxhY2VtZW50LXhoci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQteGhyLmh0bWwK
aW5kZXggZmI0NzVjMWJmNzIwY2QwOGZjNWYyMWE2OGFmYTViZTFmZjMyM2ZlOC4uYTg5M2QwOTYx
MDUzMjM2YzBlMGEzZjQ1NjkxNWU3NmQ0NzIwMzFiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQt
eGhyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9u
ZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQteGhyLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAgZnVu
Y3Rpb24gbG9hZERhdGEoKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIEVhY2ggJyon
IHN5bWJvbCB3aWxsIHVzZSB0d28gYnl0ZXMgaW4gU3RyaW5nIG9iamVjdCwgaGVuY2UgbXVsdGlw
bHlpbmcgYnkgdHdvLgotICAgIGludGVybmFscy5zZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6
ZUxpbWl0cyhkb2N1bWVudCwgMiozMDAsIDIqMjAwKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoMiozMDAsIDIqMjAwKTsKIAogICAg
IC8vIEhlcmUgd2UgdGVzdCByZXBsYWNlbWVudCBsb2dpYy4gV2Ugc2F2ZSBmaXJzdCB0d28gcmVz
b3VyY2VzIGNvbnRlbnQsCiAgICAgLy8gZGlzY2FyZCB0aGlyZCByZXNvdXJjZSBjb250ZW50IG9u
Y2Ugd2Ugc2VlIGl0cyBzaXplIGV4Y2VlZHMgbGltaXQsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL2FscGhh
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVy
YXRlZC1kcmF3aW5nL2FscGhhLmh0bWwKaW5kZXggY2E2ZTgwNzIxMDNjYTZjYjI2MWFhMGNhNmRj
MTU5N2YyZmNmZGU3ZS4uOGQ0Mzg5NmY4MzBhOThhMTc5MWJiMGY5ODRjZWQ2YmNhODYzNmVkZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNj
ZWxlcmF0ZWQtZHJhd2luZy9hbHBoYS5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvYWxwaGEuaHRtbApAQCAtMjEs
NyArMjEsNyBAQAogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7IC8v
IFRoaXMgaXMgb25seSB1c2VmdWwgYXMgcGl4ZWwgdGVzdC4KIAogICBpZiAod2luZG93LmludGVy
bmFscykKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
ZG9jdW1lbnQsIHRydWUpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZCh0cnVlKTsKIDwvc2NyaXB0PgogPC9oZWFkPgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRl
ZC1kcmF3aW5nL3N2Zy1maWx0ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL3N2Zy1maWx0ZXJzLmh0bWwKaW5kZXgg
M2YxY2UyNmI4NzhjNjBkYjczN2FlZjY1MTA1MmU1NTUzMGFhMTM2YS4uNWQyN2NiN2YyMGEwYjI5
ZjJkODUwZmQ2MzEwMjJjNmFmM2MzNmI0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtZHJhd2luZy9zdmctZmlsdGVycy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2Vs
ZXJhdGVkLWRyYXdpbmcvc3ZnLWZpbHRlcnMuaHRtbApAQCAtNiw3ICs2LDcgQEAKICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOyAvLyBUaGlzIGlzIG9ubHkgdXNlZnVs
IGFzIHBpeGVsIHRlc3QuCiAKICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgd2luZG93Lmlu
dGVybmFscy5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGRvY3VtZW50LCB0cnVlKTsKKyAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
dHJ1ZSk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9mb3JjZS1j
b21wb3NpdGUtZW1wdHkuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvZm9yY2UtY29tcG9zaXRlLWVtcHR5Lmh0bWwK
aW5kZXggOTA5ODFhNjdmNjgwNDI4YTQ0ZGQwOWZmYzQzZWM5OWU0NmNhZmQ2ZC4uOGExZGMxNjc2
MTVkNWZlMjFhODU0ZjdjODM1YjY4MDAyNTZkNDQxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9mb3Jj
ZS1jb21wb3NpdGUtZW1wdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL2ZvcmNlLWNvbXBvc2l0ZS1lbXB0
eS5odG1sCkBAIC0yLDggKzIsOCBAQAogICA8aGVhZD4KICAgICA8c2NyaXB0PgogICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZShkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGRvY3VtZW50LCB0cnVlKTsK
KyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9k
ZSh0cnVlKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21w
b3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXModHJ1ZSk7CiAgICAgICB9CiAgICAgICBmdW5jdGlv
biBkb1Rlc3QoKSB7CiAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2Zv
cmNlLWNvbXBvc2l0aW5nLW1vZGUvbm8tb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1t
b2RlL25vLW92ZXJmbG93LWlmcmFtZS1sYXllci5odG1sCmluZGV4IGQ2NWVlODA3MDczMTNiYzRj
NWE5ZWMyMWMzMjkxYzU5OGI5MGY0NzEuLjE3MzgzOTg1NjJiMThkZjY4N2Y1OTk2NDExMzEwYzli
MjhjYWJiMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvbm8tb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2Ut
Y29tcG9zaXRpbmctbW9kZS9uby1vdmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbApAQCAtMTYsOCAr
MTYsOCBAQAogICAgIH0KICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGRvVGVz
dCwgZmFsc2UpOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICBpbnRlcm5hbHMu
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZG9jdW1lbnQsIHRydWUpOwotICAgICAgaW50ZXJuYWxz
LnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhkb2N1bWVudCwgdHJ1ZSk7
CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7
CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxh
YmxlRnJhbWVzKHRydWUpOwogICAgIH0KICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3Np
dGluZy1tb2RlL292ZXJmbG93LWhpZGRlbi1pZnJhbWUtbGF5ZXIuaHRtbCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3Zl
cmZsb3ctaGlkZGVuLWlmcmFtZS1sYXllci5odG1sCmluZGV4IGFmZTM1ZTQxMTJlM2I5MzdmYWE1
YzI3MGI0MGEyOWUzMjY1MWYwZTYuLjZiODUxNjgwMDllNjBmNzQ2OGY3NWU2NTMyZWZmMzk3ZDE1
OGU2ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaGlkZGVuLWlmcmFtZS1sYXllci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNl
LWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaGlkZGVuLWlmcmFtZS1sYXllci5odG1sCkBAIC04
LDggKzgsOCBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7Ci0gICAgICBpbnRlcm5hbHMuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZG9jdW1lbnQs
IHRydWUpOwotICAgICAgaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJs
ZUZyYW1lcyhkb2N1bWVudCwgdHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rm9y
Y2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKHRydWUpOwogICAgIH0KICAgICBmdW5j
dGlvbiBkb1Rlc3QoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1l
LWVudGVyLWNvbXBvc2l0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1lbnRlci1j
b21wb3NpdGluZy5odG1sCmluZGV4IGQzMzU3ZmRhNGU3NjgyMTc2YWYzYThiZTFlYWM5NTBjMzk2
MWQwNTguLmFmMTljNWE5NzM1Zjk0NDU1ZDRkZDFhYjRmYTQ3YjQ0NTVmMTJjNzYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBv
c2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWVudGVyLWNvbXBvc2l0aW5nLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRp
bmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtZW50ZXItY29tcG9zaXRpbmcuaHRtbApAQCAtOCw4ICs4
LDggQEAKICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KICAgICBpZiAod2luZG93LmludGVybmFscykg
ewotICAgICAgaW50ZXJuYWxzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGRvY3VtZW50LCB0cnVl
KTsKLSAgICAgIGludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXMoZG9jdW1lbnQsIHRydWUpOworICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZvcmNlQ29t
cG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyh0cnVlKTsKICAgICB9CiAgICAgZnVuY3Rpb24g
ZG9UZXN0KCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sYXll
ci5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2Ut
Y29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbAppbmRleCBhNGM0YTIy
MDMzNjg2ZDJkNDczMmNhYmU5ZjE4NDYwZjI1YzAzYjYzLi40MmIyZDcwMmYxMWNmZWJmMjNkNTkx
Y2UyZjgwNGM0MGNhNmI0NDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1s
YXllci5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwKQEAgLTgs
OCArOCw4IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKLSAgICAgIGludGVybmFscy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShkb2N1bWVudCwg
dHJ1ZSk7Ci0gICAgICBpbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxl
RnJhbWVzKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFbmFi
bGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXModHJ1ZSk7CiAgICAgfQogICAgIGZ1bmN0
aW9uIGRvVGVzdCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUt
bGVhdmUtY29tcG9zaXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxlYXZlLWNv
bXBvc2l0aW5nLmh0bWwKaW5kZXggYmVlM2IwYTkxZjM1MjYzNTliZWVkMDc1MDhjMDRhNzUxZGY1
N2E5Zi4uOTExYzBhMmY2ZDY3MDVjNzI0N2FjY2UxOTNiYWNlZWZkZTI1MjJkNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9z
aXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGVhdmUtY29tcG9zaXRpbmcuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGlu
Zy1tb2RlL292ZXJmbG93LWlmcmFtZS1sZWF2ZS1jb21wb3NpdGluZy5odG1sCkBAIC04LDggKzgs
OCBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
Ci0gICAgICBpbnRlcm5hbHMuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZG9jdW1lbnQsIHRydWUp
OwotICAgICAgaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1l
cyhkb2N1bWVudCwgdHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKHRydWUpOwogICAgIH0KICAgICBmdW5jdGlvbiBk
b1Rlc3QoKQogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123663</attachid>
            <date>2012-01-23 16:54:32 -0800</date>
            <delta_ts>2012-01-24 10:17:58 -0800</delta_ts>
            <desc>Attemt to fix broken builds</desc>
            <filename>bug-76424-20120124095430.patch</filename>
            <type>text/plain</type>
            <size>100732</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYxOGVhMDhkYmU1NmNi
ZDZkNjJjOWVjZmYxZWRhYWVhNjcwYzBkMi4uYjgzNWY0MWU4MzMyNjBjYTQyNTgwMzg1MDJkY2Vj
MGQ0MGVmOGJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTAxLTIzICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtSZWZhY3RvcmluZ11b
SW50ZXJuYWxzXSBTaG91bGQgaGF2ZSBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQyNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGV4dHJhY3RlZCBzZXR0
aW5nIHJlbGF0ZWQgbWV0aG9kIGZyb20gd2luZG93LmludGVybmFscworICAgICAgICB0byB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzIG9iamVjdC4KKyAgICAgICAgLSBJbnZva2VkIEludGVybmFs
czo6cmVzZXQoKSBpbiB0aGUgY29uc3RydWN0b3IgdG8gZW1wbG95IERvY3VtZW50IG9iamVjdC4K
KyAgICAgICAgLSBNb3ZlZCBzZXR0aW5nIGFuZCBjb25maWd1cmF0aW9uIHJlbGF0ZWQgSW50ZXJu
YWxzIG1ldGhvZHMgdG8KKyAgICAgICAgICBuZXdseSBpbnRyb2R1Y2VkIEludGVybmFsU2V0dGlu
Z3Mgb2JqZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6fkludGVybmFsU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6SW50ZXJuYWxTZXR0
aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpkb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpwYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsU2V0dGluZ3M6OnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRmlsdGVy
c0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
U2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZVNjcm9s
bEFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFpvb21B
bmltYXRvclRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpz
ZXRab29tUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpz
ZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0
aW5nczo6c2V0UGFzc3dvcmRFY2hvRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bFNldHRpbmdzOjpzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVs
YXRpdmVUb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFVu
aWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0
dGluZ3M6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsU2V0dGluZ3M6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbFNldHRpbmdzOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxTZXR0aW5nczo6c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNl
dCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6c2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAg
ICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJD
b3JlVGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09iamVjdCk6CisgICAgICAgICogdGVzdGlu
Zy92OC9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0
OjppbmplY3RJbnRlcm5hbHNPYmplY3QpOgorCiAyMDEyLTAxLTIzICBBcmtvIFNhaGEgIDxuZ2hx
MzZAbW90b3JvbGEuY29tPgogCiAgICAgICAgIE1pY3JvRGF0YTogQ29tcGlsYXRpb24gZXJyb3Ig
d2hpbGUgYnVpbGRpbmcgV2Via2l0IHdpdGggLS1taWNyb2RhdGEuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQppbmRleCAxN2QzY2MxZGQ2ZGZkYWE5NWZmMDVkODg0OGViZjFhZTQxNzA0OGYz
Li5iOTM0NmNjZDMyMTVmNjczNjEzNTVlZGExMTc3MTM2M2M5MDY5YTg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKQEAgLTUyNCw2ICs1MjQsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAg
ICAgJChXZWJDb3JlKS9zdmcvU1ZHWm9vbUFuZFBhbi5pZGwgXAogICAgICQoV2ViQ29yZSkvc3Zn
L1NWR1pvb21FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9JbnRlcm5hbHMuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgXAogICAgICQo
V2ViQ29yZSkvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL3dlYmF1ZGlvL0F1
ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4
IDA2ZDdhMTYzNGU0OGRiMGU1NjU5MjhiMDc3N2I5ZDc2NzY2NjE1NTMuLmQ5MjYzNmZjYzZkODYy
OWI4MTE4ZWYxNDllNTk5ZDM3MTM1MmVlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkK
QEAgLTQwMSw2ICs0MDEsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL3N0b3JhZ2Uv
U1FMVHJhbnNhY3Rpb25TeW5jLmlkbCBcCiAgICAgJCRQV0Qvc3RvcmFnZS9TUUxUcmFuc2FjdGlv
blN5bmNDYWxsYmFjay5pZGwgXAogICAgICQkUFdEL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBcCisg
ICAgJCRQV0QvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBcCiAgICAgJCRQV0Qvd2ViYXVk
aW8vQXVkaW9CdWZmZXIuaWRsIFwKICAgICAkJFBXRC93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuaWRsIFwKICAgICAkJFBXRC93ZWJhdWRpby9BdWRpb0NoYW5uZWxNZXJnZXIuaWRsIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMDk0M2U3MDdhOTk2NWZkNTNlOTNlZTlmMzZlZWViNmQ4
YTU5OTRhMS4uNDhhMmY5YWMxNzVhZjJhM2I1ZmQxMmRlZjllZGE1M2NkODkzMjE5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KQEAgLTc0Myw2ICs3NDMsNyBAQCBJRExfUEFUSCA6PSBcCiAgICAgJChX
ZWJDb3JlKS9iaW5kaW5ncy9qcyBcCiAgICAgJChXZWJDb3JlKS9jc3MgXAogICAgICQoV2ViQ29y
ZSkvZG9tIFwKKyAgICAkKFdlYkNvcmUpL2RvbS90ZXN0aW5nIFwKICAgICAkKFdlYkNvcmUpL2Zp
bGVhcGkgXAogICAgICQoV2ViQ29yZSkvaHRtbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZh
cyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1MzdlM2QyZjU5OTQzN2ZiZTg1
M2QxODUwMzI1YjliZTMzMGY5YjVkLi4wYjM3MGZmN2IxYjQ4ZDlkMjQ2ZGUwNzNlYTc0NTQyMjZi
N2ZiYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTkxMiw2ICs5MTIsNyBA
QCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL3N0b3JhZ2UvU3RvcmFnZS5pZGwg
XAogCSQoV2ViQ29yZSkvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbCBcCisJJChXZWJDb3JlKS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsIFwKIAkkKFdlYkNvcmUpL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwgXAogCSQoV2Vi
Q29yZSkvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmlkbCBcCiAJJChXZWJDb3JlKS93ZWJhdWRp
by9EeW5hbWljc0NvbXByZXNzb3JOb2RlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjZjkyOTFhYTMz
YTkxOTc4ODBkMWM2ZjQ4YjYxYjg4OTFkMzJlNTliLi4zZDhhMDYxMTIwNDFjZjQzZDhkMGU0Y2Vm
ZmM1ZjBlNTE1NjZkZmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTEzMDIsNiArMTMwMiw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIHN0b3JhZ2UvU3RvcmFnZVN5bmNNYW5hZ2VyLmNwcCBcCiAgICAgc3RvcmFn
ZS9TdG9yYWdlVHJhY2tlci5jcHAgXAogICAgIHRlc3RpbmcvSW50ZXJuYWxzLmNwcCBcCisgICAg
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBcCiAgICAgeG1sL0RPTVBhcnNlci5jcHAgXAog
ICAgIHhtbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIFwKICAgICB4bWwvWE1MSHR0cFJlcXVl
c3QuY3BwIFwKQEAgLTI3MTEsNiArMjcxMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIHN2Zy9TVkda
b29tQW5kUGFuLmggXAogICAgIHN2Zy9TVkdab29tRXZlbnQuaCBcCiAgICAgdGVzdGluZy9JbnRl
cm5hbHMuaCBcCisgICAgdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggXAogICAgIHdvcmtlcnMv
QWJzdHJhY3RXb3JrZXIuaCBcCiAgICAgd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0Lmgg
XAogICAgIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCAwY2ZkMGU0MTA0OGI3NDJiOWVlNjQxNjJkYTAwZjBj
ODFhYTEzMzRkLi5jNWU4M2ZjNWUwN2Y4MzYyYzhlYmE3YjVkMjBkMmJlN2NlODBjOTRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMjAzNCw2ICsyMDM0LDggQEAK
ICAgICAgICAgJzxAKHdlYmNvcmVfdGVzdF9zdXBwb3J0X2ZpbGVzKScsCiAgICAgICAgICc8KFNI
QVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJjb3JlL2JpbmRpbmdzL1Y4SW50ZXJuYWxzLmNwcCcs
CiAgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MvVjhJ
bnRlcm5hbHMuaCcsCisgICAgICAgICc8KFNIQVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJjb3Jl
L2JpbmRpbmdzL1Y4SW50ZXJuYWxTZXR0aW5ncy5jcHAnLAorICAgICAgICAnPChTSEFSRURfSU5U
RVJNRURJQVRFX0RJUikvd2Via2l0L2JpbmRpbmdzL1Y4SW50ZXJuYWxzU2V0dGluZ3MuaCcsCiAg
ICAgICBdLAogICAgICAgJ3NvdXJjZXMvJzogWwogICAgICAgICBbJ2V4Y2x1ZGUnLCAndGVzdGlu
Zy9qcyddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDU2ZWQwOGY1YmU3NGRjNmI0ODk3MDQ4NGRlMGMx
ZjBkMTUwZjFlNzUuLjQ4NzdlMDE5MmM5NGUzNjgyMTRhOGIxMjg1NWVjZDlhNDY2ZTBkYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTYzODcsNiArNjM4Nyw3IEBACiAgICAgICAgIF0sCiAgICAgICAg
ICd3ZWJjb3JlX3Rlc3Rfc3VwcG9ydF9pZGxfZmlsZXMnOiBbCiAgICAgICAgICAgJ3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbCcsCisgICAgICAgICAgJ3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwn
LAogICAgICAgICBdLAogICAgICAgICAnd2ViY29yZV90ZXN0X3N1cHBvcnRfZmlsZXMnOiBbCiAg
ICAgICAgICAgICAndGVzdGluZy92OC9WOEludGVybmFsc0N1c3RvbS5jcHAnLApAQCAtNjM5Nyw2
ICs2Mzk4LDggQEAKICAgICAgICAgICAgICd0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5o
JywKICAgICAgICAgICAgICd0ZXN0aW5nL0ludGVybmFscy5jcHAnLAogICAgICAgICAgICAgJ3Rl
c3RpbmcvSW50ZXJuYWxzLmgnLAorICAgICAgICAgICAgJ3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAnLAorICAgICAgICAgICAgJ3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oJywKICAgICAg
ICAgXSwKICAgICAgICAgJ3dlYmNvcmVfcmVzb3VyY2VfZmlsZXMnOiBbCiAgICAgICAgICAgICAn
RW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVUZXN0U3VwcG9ydC52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlVGVzdFN1cHBvcnQudmNwcm9qCmluZGV4IDNm
YzJiNTRlZTg3MTNiNDYyYWNlZDQ5MWRlNDBkNmQ0YmVjNGM5ZjguLjM0YmU0MTRhY2FiZjVmNzNh
NGY4NzI5MWU2NzQ2YzIzOTI0ODg4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmVUZXN0U3VwcG9ydC52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvagpAQCAtMzQ3LDYgKzM0Nyw3
IEBACiAJCTxGaWx0ZXIKIAkJCU5hbWU9IkRlcml2ZWRTb3VyY2VzIgogCQkJPgorCiAJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJDb3Jl
XERlcml2ZWRTb3VyY2VzXEpTSW50ZXJuYWxzLmNwcCIKIAkJCQk+CkBAIC00MTUsNiArNDE2LDc0
IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdlYkNv
cmVcRGVyaXZlZFNvdXJjZXNcSlNJbnRlcm5hbHMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxXZWJD
b3JlXERlcml2ZWRTb3VyY2VzXEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAiCisJCQkJPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBpbGVk
SGVhZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1
OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJ
CURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJ
CQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2Fi
bGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3Jj
ZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJv
X0NGTGl0ZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNw
ZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNlZElu
Y2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9
IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChO
T0lOSEVSSVQpIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxl
ZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2
NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJp
dmVkU291cmNlc1xKU0ludGVybmFsU2V0dGluZ3MuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCTwv
RmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJ0ZXN0aW5nIgpAQCAtNDg4LDYgKzU1Nyw3NCBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlx0ZXN0
aW5nXEludGVybmFsU2V0dGluZ3MuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJ
CURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJ
CQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNX
YXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZp
bGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5n
cz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIk
KE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlV
c2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0
MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9J
TkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhl
YWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0
NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJ
CQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJ
CQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llx0ZXN0aW5nXEludGVybmFsU2V0dGluZ3MuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cdGVzdGluZ1xqc1xXZWJDb3JlVGVzdFN1cHBvcnQuY3Bw
IgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMWNmMmUzMjJiN2EzOGZmMjM1
OGFiMTUwMGQxNWU1ODU1NTk3NzE4Li43ZjY2ZTI2ZmE3NWQ2OWVkMGMzNWQ4YTY4MTEwYjllNWYy
NWU5ZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0zNTIwLDYgKzM1MjAsOCBAQAogCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZE
QkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4
cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3QkZF
MDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZFMDAz
MUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3NDBCNUE1
MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRDOTM0ODQwMEM4RjVCRiAv
KiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKKwkJQTc0MEI1QTcxNEM5MzVBRjAwQTc3RkE0
IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNl
dHRpbmdzLmNwcCAqLzsgfTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhv
bGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3NTJB
Q0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4OTYg
LyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwICovOyB9OwpAQCAtMzU1NSw2ICszNTU3LDggQEAKIAkJQTdCNkU2OUYw
QjI5MUE5NjAwRDA1MjlGIC8qIERyYWdEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0JC
RTI2NjExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkJFMjY0MTFBRkIzRjIwMDA1
RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwICovOyB9OwogCQlBN0JCRTI2NzExQUZCM0Yy
MDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JCRTI2NTExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1M
TWV0ZXJFbGVtZW50LmggKi87IH07CisJCUE3QkY3RURGMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRl
cm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3QkY3RURDMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmNwcCAq
LzsgfTsKKwkJQTdCRjdFRTAxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkY3RUREMTRD
OTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggKi87IH07CiAJCUE3QzlBQkY4MTM1
N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0M5QUJGNjEzNTdBM0JGMDBGNTUwM0Yg
LyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwICovOyB9OwogCQlBN0M5QUJGOTEzNTdBM0JGMDBG
NTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QzlBQkY3MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxz
TWFya2VyQ29udHJvbC5oICovOyB9OwogCQlBN0NBNTk1RDBCMjdCRDlFMDBGQTAyMUQgLyogRHJh
Z0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3Q0E1OTVCMEIyN0JEOUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDM4NSw5ICsxMDM4
OSwxNCBAQAogCQlBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGlua0hhc2guaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTdCMDcwRDAxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1
bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lQWN0aW9u
U2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCMDcwRDExMzBB
NDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZyYW1lQWN0aW9uU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE3QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGlu
Z3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcm5hbFNl
dHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCNEVBNzkxNEM5MzQ4
NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ludGVybmFsU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTdCNkU2OUQwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdEYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3QkJFMjY0MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MTWV0ZXJFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCQkUyNjUxMUFGQjNGMjAwMDVF
QTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0hUTUxNZXRlckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTdCRjdFREMxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50ZXJuYWxTZXR0aW5ncy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkY3RUREMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRl
cm5hbFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGVybmFs
U2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCRjdFREUxNEM5MTc1
QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEludGVybmFsU2V0dGluZ3MuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0M5
QUJGNjEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0M5QUJGNzEzNTdBM0JGMDBGNTUwM0YgLyog
RGV0YWlsc01hcmtlckNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGV0YWlsc01hcmtlckNvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdD
QTU5NUIwQjI3QkQ5RTAwRkEwMjFEIC8qIERyYWdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNDI3OCw2ICsxNDI4Nyw5IEBACiAJCQkJNDE3REE0Q0YxMzczNDMyNjAwN0M1
N0ZCIC8qIEludGVybmFscy5jcHAgKi8sCiAJCQkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZCIC8q
IEludGVybmFscy5oICovLAogCQkJCTQxODEzRjkxMTM4MThBRDYwMDU3QUFBNCAvKiBJbnRlcm5h
bHMuaWRsICovLAorCQkJCUE3QkY3RURDMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRp
bmdzLmNwcCAqLywKKwkJCQlBN0JGN0VERDE0QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0
aW5ncy5oICovLAorCQkJCUE3QkY3RURFMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRp
bmdzLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGVzdGluZzsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0xNDI4Nyw2ICsxNDI5OSw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0
MTdEQTcxQjEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwICovLAogCQkJCTQxN0RB
NzFDMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oICovLAorCQkJCUE3QjRFQTc4MTRD
OTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwICovLAorCQkJCUE3QjRFQTc5
MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLywKIAkJCSk7CiAJCQlu
YW1lID0gVGVzdGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMDk0Miw3ICsy
MDk1Niw5IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAo
CiAJCQkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTdCRjdFRTAxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxN0RBNzFFMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFs
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTSW50
ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MTVDMUYxMzgzMTk4MzAwNTdB
QUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yNDM5NSw5ICsyNDQxMSwx
MSBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJ
CTQxN0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQTdCRjdFREYxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE3REE3MUQxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxz
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxODE1QzFFMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJD
b3JlVGVzdFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMzBDQkMxNEMxMEVEOTAw
RjZCNzAyIC8qIEpTSW50ZXJuYWxzQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3NDBC
NUE3MTRDOTM1QUYwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDE4MTVDMUUxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE4ODkxYmVjMjRiOGExMGQ4MTU5NjAyMGNmOWU5NzA2MWY5YWUy
Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCkBAIC0wLDAgKzEsMjc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkludGVybmFsU2V0dGluZ3MuaCIKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
TG9hZGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRl
ICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworI2lmIEVOQUJMRShHRVNUVVJFX0VW
RU5UUykKKyNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVFdmVudC5oIgorI2VuZGlmCisKKyNpZiBF
TkFCTEUoU01PT1RIX1NDUk9MTElORykKKyNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgi
CisjZW5kaWYKKworI2RlZmluZSBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElOR1Nf
UkVUVVJOKHJldHVyblZhbHVlKSBcCisgICAgaWYgKCFzZXR0aW5ncygpKSB7IFwKKyAgICAgICAg
ZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7IFwKKyAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOyBc
CisgICAgfQorCisjZGVmaW5lIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygp
ICBcCisgICAgaWYgKCFzZXR0aW5ncygpKSB7IFwKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7IFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgfQorCisjZGVmaW5lIElOVEVSTkFMX1NF
VFRJTkdTX0dVQVJEX0ZPUl9GUkFNRSgpIFwKKyAgICBpZiAoIWZyYW1lKCkpIHsgXAorICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsgXAorICAgICAgICByZXR1cm47IFwKKyAgICB9CisK
KyNkZWZpbmUgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX0ZSQU1FVklFVygpIFwKKyAgICBp
ZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnZpZXcoKSkgeyBcCisgICAgICAgIGVjID0gSU5WQUxJ
RF9BQ0NFU1NfRVJSOyBcCisgICAgICAgIHJldHVybjsgXAorICAgIH0KKworI2RlZmluZSBJTlRF
Uk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfUEFHRV9SRVRVUk4ocmV0dXJuVmFsdWUpIFwKKyAgICBp
ZiAoIXBhZ2UoKSkgeyBcCisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOyBcCisgICAg
ICAgIHJldHVybiByZXR1cm5WYWx1ZTsgXAorICAgIH0KKworI2RlZmluZSBJTlRFUk5BTF9TRVRU
SU5HU19HVUFSRF9GT1JfUEFHRSgpIFwKKyAgICBpZiAoIXBhZ2UoKSkgeyBcCisgICAgICAgIGVj
ID0gSU5WQUxJRF9BQ0NFU1NfRVJSOyBcCisgICAgICAgIHJldHVybjsgXAorICAgIH0KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisKK1Bhc3NSZWZQdHI8SW50ZXJuYWxTZXR0aW5ncz4gSW50ZXJu
YWxTZXR0aW5nczo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgSW50ZXJuYWxTZXR0aW5ncyogb2xkKQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW50ZXJuYWxTZXR0aW5ncyhmcmFtZSwgb2xkKSk7
Cit9CisKK0ludGVybmFsU2V0dGluZ3M6On5JbnRlcm5hbFNldHRpbmdzKCkKK3sKK30KKworSW50
ZXJuYWxTZXR0aW5nczo6SW50ZXJuYWxTZXR0aW5ncyhGcmFtZSogZnJhbWUsIEludGVybmFsU2V0
dGluZ3MqIG9sZCkKKyAgICA6IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihmcmFtZSkKKyAgICAs
IG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXAoMCkKKyAgICAsIG1fcGFzc3dv
cmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcChmYWxzZSkKKyAgICAsIG1fcGFzc3dvcmRF
Y2hvRW5hYmxlZEJhY2tlZFVwKGZhbHNlKQoreworICAgIGlmIChvbGQgJiYgc2V0dGluZ3MoKSkg
eworICAgICAgICBpZiAob2xkLT5tX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja2Vk
VXApCisgICAgICAgICAgICBzZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vj
b25kcyhvbGQtPm1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXApOworICAgICAg
ICBpZiAob2xkLT5tX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrZWRVcCkKKyAgICAgICAgICAgIHNl
dHRpbmdzKCktPnNldFBhc3N3b3JkRWNob0VuYWJsZWQob2xkLT5tX3Bhc3N3b3JkRWNob0VuYWJs
ZWRCYWNrdXApOworICAgIH0KK30KKworU2V0dGluZ3MqIEludGVybmFsU2V0dGluZ3M6OnNldHRp
bmdzKCkgY29uc3QKK3sKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnBhZ2UoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3MoKTsK
K30KKworRG9jdW1lbnQqIEludGVybmFsU2V0dGluZ3M6OmRvY3VtZW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZnJhbWUoKSA/IGZyYW1lKCktPmRvY3VtZW50KCkgOiAwOworfQorCitQYWdlKiBJ
bnRlcm5hbFNldHRpbmdzOjpwYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKSA/
IGRvY3VtZW50KCktPnBhZ2UoKSA6IDA7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0
SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoaW50IG1heGltdW1SZXNvdXJjZXNDb250
ZW50U2l6ZSwgaW50IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmICghcGFnZSgpIHx8ICFw
YWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBwYWdlKCktPmluc3BlY3RvckNv
bnRyb2xsZXIoKS0+c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKG1heGlt
dW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplKTsK
KyAgICBVTlVTRURfUEFSQU0obWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpOworICAg
IFVOVVNFRF9QQVJBTShlYyk7CisjZW5kaWYKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRp
bmdzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGVuYWJsZWQpOworfQorCit2b2lkIEludGVy
bmFsU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VU
VElOR1MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGVu
YWJsZWQpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRpbmdzKCkt
PnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZChlbmFibGVk
KTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNj
cm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJ
TlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElOR1MoKTsKKyAgICBzZXR0aW5ncygpLT5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoZW5hYmxl
ZCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5h
YmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVSTkFMX1NF
VFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2VsZXJh
dGVkRHJhd2luZ0VuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElOR1MoKTsKKyNpZiBFTkFC
TEUoU01PT1RIX1NDUk9MTElORykKKyAgICBzZXR0aW5ncygpLT5zZXRFbmFibGVTY3JvbGxBbmlt
YXRvcihlbmFibGVkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworI2VuZGlm
Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGZs
b2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQgdHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9GUkFNRSgpOworCisjaWYgRU5BQkxFKEdFU1RV
UkVfRVZFTlRTKQorICAgIFBsYXRmb3JtR2VzdHVyZUV2ZW50IHBnZShQbGF0Zm9ybUV2ZW50OjpH
ZXN0dXJlRG91YmxlVGFwLCBJbnRQb2ludCh0eCwgdHkpLCBJbnRQb2ludCh0eCwgdHkpLCAwLCBz
Y2FsZSwgMC5mLCAwLCAwLCAwLCAwKTsKKyAgICBmcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFu
ZGxlR2VzdHVyZUV2ZW50KHBnZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzY2FsZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKHR4KTsKKyAgICBVTlVTRURfUEFSQU0odHkpOworI2VuZGlmCit9CisK
K3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Wm9vbVBhcmFtZXRlcnMoZmxvYXQgc2NhbGUsIGZs
b2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVSTkFMX1NFVFRJ
TkdTX0dVQVJEX0ZPUl9GUkFNRVZJRVcoKTsKKworI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5H
KQorICAgIGZyYW1lKCktPnZpZXcoKS0+c2Nyb2xsQW5pbWF0b3IoKS0+c2V0Wm9vbVBhcmFtZXRl
cnNGb3JUZXN0KHNjYWxlLCB4LCB5KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNjYWxlKTsK
KyAgICBVTlVTRURfUEFSQU0oeCk7CisgICAgVU5VU0VEX1BBUkFNKHkpOworI2VuZGlmCit9CisK
K3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRf
Rk9SX1NFVFRJTkdTKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVk
KGVuYWJsZWQpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBhc3N3b3JkRWNob0Vu
YWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9T
RVRUSU5HU19HVUFSRF9GT1JfU0VUVElOR1MoKTsKKyAgICBpZiAoIW1fcGFzc3dvcmRFY2hvRW5h
YmxlZEJhY2tlZFVwKSB7CisgICAgICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2t1cCA9IHNl
dHRpbmdzKCktPnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKKyAgICAgICAgbV9wYXNzd29yZEVjaG9F
bmFibGVkQmFja2VkVXAgPSB0cnVlOworICAgIH0KKyAgICBzZXR0aW5ncygpLT5zZXRQYXNzd29y
ZEVjaG9FbmFibGVkKGVuYWJsZWQpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBh
c3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX1NFVFRJ
TkdTKCk7CisgICAgaWYgKCFtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja2VkVXAp
IHsKKyAgICAgICAgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2t1cCA9IHNldHRp
bmdzKCktPnBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKCk7CisgICAgICAgIG1fcGFzc3dv
cmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcCA9IHRydWU7CisgICAgfQorICAgIHNldHRp
bmdzKCktPnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGR1cmF0aW9uSW5TZWNvbmRz
KTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1l
bnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX0ZSQU1FVklFVygpOworICAgIGZyYW1lKCkt
PnZpZXcoKS0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShlbmFi
bGVkKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRVbmlmaWVkVGV4dENoZWNraW5n
RW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVSTkFM
X1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRpbmdzKCktPnNldFVuaWZp
ZWRUZXh0Q2hlY2tlckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jvb2wgSW50ZXJuYWxTZXR0aW5n
czo6dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAg
SU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX1NFVFRJTkdTX1JFVFVSTihmYWxzZSk7CisgICAg
cmV0dXJuIHNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKTsKK30KKworZmxv
YXQgSW50ZXJuYWxTZXR0aW5nczo6cGFnZVNjYWxlRmFjdG9yKEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9QQUdFX1JFVFVSTigwKTsKKyAgICBy
ZXR1cm4gcGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRp
bmdzOjpzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX1BB
R0UoKTsKKyAgICBwYWdlKCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3RvciwgSW50UG9p
bnQoeCwgeSkpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBlclRpbGVEcmF3aW5n
RW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVSTkFM
X1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRpbmdzKCktPnNldFBlclRp
bGVEcmF3aW5nRW5hYmxlZChlbmFibGVkKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMWFhMDRhMTUxMGJiMmEwZDMyZWM0Zjdl
YjVjNjFmZjc3NTZjYjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSW50
ZXJuYWxTZXR0aW5nc19oCisjZGVmaW5lIEludGVybmFsU2V0dGluZ3NfaAorCisjaW5jbHVkZSAi
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7
CisKK2NsYXNzIEZyYW1lOworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworY2xhc3MgU2V0
dGluZ3M7CisKK2NsYXNzIEludGVybmFsU2V0dGluZ3MgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnRl
cm5hbFNldHRpbmdzPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgRnJhbWVEZXN0
cnVjdGlvbk9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnRlcm5h
bFNldHRpbmdzPiBjcmVhdGUoRnJhbWUqLCBJbnRlcm5hbFNldHRpbmdzKiBvbGQpOworICAgIHZp
cnR1YWwgfkludGVybmFsU2V0dGluZ3MoKTsKKworICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVzb3Vy
Y2VzRGF0YVNpemVMaW1pdHMoaW50IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50IG1h
eGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9p
ZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Ny
b2xsYWJsZUZyYW1lcyhib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNl
dEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7
CisgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0o
ZmxvYXQgc2NhbGUsIGZsb2F0IHR4LCBmbG9hdCB0eSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZv
aWQgc2V0Wm9vbVBhcmFtZXRlcnMoZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFBhc3N3b3JkRWNob0VuYWJsZWQoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJh
dGlvbkluU2Vjb25kcyhkb3VibGUgZHVyYXRpb25JblNlY29uZHMsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9v
bCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJs
ZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworICAgIGJvb2wgdW5pZmllZFRleHRDaGVja2luZ0Vu
YWJsZWQoRXhjZXB0aW9uQ29kZSYpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcihFeGNlcHRp
b25Db2RlJik7CisgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3Is
IGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UGVyVGlsZURyYXdp
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgorICAg
IEludGVybmFsU2V0dGluZ3MoRnJhbWUqLCBJbnRlcm5hbFNldHRpbmdzKiBvbGQpOworCisgICAg
U2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29u
c3Q7CisgICAgUGFnZSogcGFnZSgpIGNvbnN0OworCisgICAgZG91YmxlIG1fcGFzc3dvcmRFY2hv
RHVyYXRpb25JblNlY29uZHNCYWNrdXA7CisgICAgYm9vbCBtX3Bhc3N3b3JkRWNob0VuYWJsZWRC
YWNrdXAgOiAxOworICAgIGJvb2wgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tl
ZFVwIDogMTsKKyAgICBib29sIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwIDogMTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MWE3NzA4OTRjZmZjM2RjNTQ1
MDQwYWI3ZGEzZDViMGU3NDc1NTI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIHdpbmRvdyB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgT21pdENvbnN0cnVjdG9yCisg
ICAgXSBJbnRlcm5hbFNldHRpbmdzIHsKKyAgICAgICAgdm9pZCBzZXRJbnNwZWN0b3JSZXNvdXJj
ZXNEYXRhU2l6ZUxpbWl0cyhpbiBsb25nIG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW4g
bG9uZyBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoaW4gYm9vbGVhbiBlbmFi
bGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3Np
dGluZ0ZvckZpeGVkUG9zaXRpb24oaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXMoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9p
ZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxl
ZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lk
IHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGluIGZsb2F0
IHNjYWxlLCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQgdHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKGluIGZsb2F0IHNjYWxlLCBpbiBmbG9hdCB4
LCBpbiBmbG9hdCB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGluIGJvb2xlYW4gZW5hYmxl
ZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRHVy
YXRpb25JblNlY29uZHMoaW4gZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVk
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGJvb2xlYW4gdW5pZmllZFRleHRDaGVj
a2luZ0VuYWJsZWQoKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGZsb2F0IHBhZ2VT
Y2FsZUZhY3RvcigpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldFBhZ2VT
Y2FsZUZhY3RvcihpbiBmbG9hdCBzY2FsZUZhY3RvciwgaW4gbG9uZyB4LCBpbiBsb25nIHkpIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgIH07Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCA3ZTQ4MWNhNTdiMmIwNzZhOTA4MDFmZDBjNDliOGIwYzRhY2M5ZDk1Li5j
MGVmMmRiNjc2NDEwMTk2ZDU5ZjkwODExYjI3NDMxZmYyNDA1OTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJJbnRlcm5hbFNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
SW50UmVjdC5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlcmlu
Z0NvbnRleHQuaCIKQEAgLTEwNCwyMSArMTA1LDE5IEBAIHN0YXRpYyBTcGVsbENoZWNrZXIqIHNw
ZWxsY2hlY2tlcihEb2N1bWVudCogZG9jdW1lbnQpCiAKIGNvbnN0IGNoYXIqIEludGVybmFsczo6
aW50ZXJuYWxzSWQgPSAiaW50ZXJuYWxzIjsKIAotUGFzc1JlZlB0cjxJbnRlcm5hbHM+IEludGVy
bmFsczo6Y3JlYXRlKCkKK1Bhc3NSZWZQdHI8SW50ZXJuYWxzPiBJbnRlcm5hbHM6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnRlcm5hbHMp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW50ZXJuYWxzKGRvY3VtZW50KSk7CiB9CiAKIElu
dGVybmFsczo6fkludGVybmFscygpCiB7CiB9CiAKLUludGVybmFsczo6SW50ZXJuYWxzKCkKK0lu
dGVybmFsczo6SW50ZXJuYWxzKERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlcigwKQotICAgICwgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0Jh
Y2t1cCgwKQotICAgICwgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKGZh
bHNlKQotICAgICwgbV9wYXNzd29yZEVjaG9FbmFibGVkQmFja2VkVXAoZmFsc2UpCiB7CisgICAg
cmVzZXQoZG9jdW1lbnQpOwogfQogCiBib29sIEludGVybmFsczo6aXNQcmVsb2FkZWQoRG9jdW1l
bnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHVybCkKQEAgLTIyNiwxNyArMjI1LDYgQEAgdm9p
ZCBJbnRlcm5hbHM6OnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoRWxlbWVudCogZWxlbWVudCwg
Y29uc3QgU3RyaW5nJiBjb2xvclYKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikK
LXZvaWQgSW50ZXJuYWxzOjpzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhEb2N1
bWVudCogZG9jdW1lbnQsIGludCBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGludCBtYXhp
bXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAg
aWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSB8fCAhZG9jdW1lbnQtPnBhZ2UoKS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJS
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGRvY3VtZW50LT5wYWdlKCktPmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS0+c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKG1h
eGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNp
emUpOwotfQotI2VuZGlmCi0KIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gSW50ZXJuYWxzOjpib3Vu
ZGluZ0JveChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
IWVsZW1lbnQpIHsKQEAgLTI4NiwxNDEgKzI3NCw2IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IEludGVy
bmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya2Vy
CiAgICAgcmV0dXJuIFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSwgbWFya2Vy
c1tpbmRleF0tPnN0YXJ0T2Zmc2V0KCksIG5vZGUsIG1hcmtlcnNbaW5kZXhdLT5lbmRPZmZzZXQo
KSk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShEb2N1bWVu
dCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYg
KCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZB
TElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC0+
c2V0dGluZ3MoKS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZW5hYmxlZCk7Ci19Ci0KLXZvaWQg
SW50ZXJuYWxzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oRG9jdW1lbnQq
IGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJ
RF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9jdW1lbnQtPnNl
dHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxl
ZChlbmFibGVkKTsKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9y
U2Nyb2xsYWJsZUZyYW1lcyhEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdz
KCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwotfQotCi12b2lkIEludGVy
bmFsczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQsIGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAh
ZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0
QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBJbnRlcm5hbHM6
OnNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3Vt
ZW50LT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldEFjY2Vs
ZXJhdGVkRmlsdGVyc0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRF
bmFibGVTY3JvbGxBbmltYXRvcihEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRp
bmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAgICBkb2N1bWVudC0+
c2V0dGluZ3MoKS0+c2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoZW5hYmxlZCk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShlbmFibGVkKTsKLSNlbmRpZgotfQotCi12b2lkIEludGVybmFsczo6c2V0
Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKERvY3VtZW50ICpkb2N1bWVudCwgZmxvYXQgc2NhbGUsIGZs
b2F0IHR4LCBmbG9hdCB0eSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVu
dCB8fCAhZG9jdW1lbnQtPnZpZXcoKSB8fCAhZG9jdW1lbnQtPnZpZXcoKS0+ZnJhbWUoKSkgewot
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudCBw
Z2UoUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcCwgSW50UG9pbnQodHgsIHR5KSwgSW50
UG9pbnQodHgsIHR5KSwgMCwgc2NhbGUsIDAuZiwgMCwgMCwgMCwgMCk7Ci0gICAgZG9jdW1lbnQt
PnZpZXcoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChwZ2Up
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2NhbGUpOwotICAgIFVOVVNFRF9QQVJBTSh0eCk7
Ci0gICAgVU5VU0VEX1BBUkFNKHR5KTsKLSNlbmRpZgotfQotCi12b2lkIEludGVybmFsczo6c2V0
Wm9vbVBhcmFtZXRlcnMoRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9hdCBzY2FsZSwgZmxvYXQgeCwg
ZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9j
dW1lbnQtPnZpZXcoKSB8fCAhZG9jdW1lbnQtPnZpZXcoKS0+ZnJhbWUoKSkgewotICAgICAgICBl
YyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIEVO
QUJMRShTTU9PVEhfU0NST0xMSU5HKQotICAgIGRvY3VtZW50LT52aWV3KCktPnNjcm9sbEFuaW1h
dG9yKCktPnNldFpvb21QYXJhbWV0ZXJzRm9yVGVzdChzY2FsZSwgeCwgeSk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShzY2FsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAgIFVOVVNFRF9Q
QVJBTSh5KTsKLSNlbmRpZgotfQotCi12b2lkIEludGVybmFsczo6c2V0TW9ja1Njcm9sbGJhcnNF
bmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBl
YykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewotICAg
ICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoZW5hYmxl
ZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRQYXNzd29yZEVjaG9FbmFibGVkKERvY3VtZW50
KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghbV9wYXNz
d29yZEVjaG9FbmFibGVkQmFja2VkVXApIHsKLSAgICAgICAgbV9wYXNzd29yZEVjaG9FbmFibGVk
QmFja3VwID0gZG9jdW1lbnQtPnNldHRpbmdzKCktPnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKLSAg
ICAgICAgbV9wYXNzd29yZEVjaG9FbmFibGVkQmFja2VkVXAgPSB0cnVlOwotICAgIH0KLSAgICBk
b2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChlbmFibGVkKTsKLX0K
LQotdm9pZCBJbnRlcm5hbHM6OnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKERvY3Vt
ZW50KiBkb2N1bWVudCwgZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzLCBFeGNlcHRpb25Db2RlJiBl
YykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewotICAg
ICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGlmICghbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKSB7Ci0gICAg
ICAgIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXAgPSBkb2N1bWVudC0+c2V0
dGluZ3MoKS0+cGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoKTsKLSAgICAgICAgbV9wYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwID0gdHJ1ZTsKLSAgICB9Ci0gICAgZG9j
dW1lbnQtPnNldHRpbmdzKCktPnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGR1cmF0
aW9uSW5TZWNvbmRzKTsKLX0KLQogdm9pZCBJbnRlcm5hbHM6OnNldFNjcm9sbFZpZXdQb3NpdGlv
bihEb2N1bWVudCogZG9jdW1lbnQsIGxvbmcgeCwgbG9uZyB5LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygpKSB7CkBAIC00NjksMTcg
KzMyMiw3IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG9ic2VydmVGcmFtZShkb2N1bWVudC0+ZnJhbWUoKSk7Ci0KLSAg
ICBpZiAobV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKSB7Ci0gICAgICAg
IGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyht
X3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja3VwKTsKLSAgICAgICAgbV9wYXNzd29y
ZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwID0gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYg
KG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwKSB7Ci0gICAgICAgIGRvY3VtZW50LT5zZXR0
aW5ncygpLT5zZXRQYXNzd29yZEVjaG9FbmFibGVkKG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2t1
cCk7Ci0gICAgICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwID0gZmFsc2U7Ci0gICAg
fQotCisgICAgbV9zZXR0aW5ncyA9IEludGVybmFsU2V0dGluZ3M6OmNyZWF0ZShkb2N1bWVudC0+
ZnJhbWUoKSwgbV9zZXR0aW5ncy5nZXQoKSk7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVu
dC0+cGFnZSgpKQogICAgICAgICBwYWdlLT5zZXRQYWdpbmF0aW9uKFBhZ2U6OlBhZ2luYXRpb24o
KSk7CiB9CkBAIC01OTEsNTYgKzQzNCw2IEBAIHVuc2lnbmVkIEludGVybmFsczo6bGVuZ3RoRnJv
bVJhbmdlKEVsZW1lbnQqIHNjb3BlLCBjb25zdCBSYW5nZSogcmFuZ2UsIEV4Y2VwdGlvCiAgICAg
cmV0dXJuIGxlbmd0aDsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OnNldFNob3VsZExheW91dEZpeGVk
RWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52
aWV3KCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGRvY3VtZW50LT52aWV3KCk7
Ci0gICAgZnJhbWVWaWV3LT5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0Zy
YW1lKGVuYWJsZWQpOwotfQotCi12b2lkIEludGVybmFsczo6c2V0VW5pZmllZFRleHRDaGVja2lu
Z0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpIHx8ICFkb2N1
bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LT5mcmFtZSgpLT5z
ZXR0aW5ncygpLT5zZXRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKGVuYWJsZWQpOwotfQotCi1i
b29sIEludGVybmFsczo6dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVu
dC0+ZnJhbWUoKSB8fCAhZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCkpIHsKLSAgICAgICAg
ZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hl
Y2tlckVuYWJsZWQoKTsKLX0KLQotZmxvYXQgSW50ZXJuYWxzOjpwYWdlU2NhbGVGYWN0b3IoRG9j
dW1lbnQgKmRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50
IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJS
OwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2Uo
KS0+cGFnZVNjYWxlRmFjdG9yKCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVG
YWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgsIGludCB5
LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+
cGFnZSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgIGRvY3VtZW50LT5wYWdlKCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2Fs
ZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOwotfQotCiBpbnQgSW50ZXJuYWxzOjpsYXN0U3BlbGxD
aGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIFNwZWxsQ2hlY2tlciogY2hlY2tlciA9IHNwZWxsY2hlY2tlcihkb2N1bWVudCk7
CkBAIC02NjUsMTYgKzQ1OCw2IEBAIGludCBJbnRlcm5hbHM6Omxhc3RTcGVsbENoZWNrUHJvY2Vz
c2VkU2VxdWVuY2UoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlCiAgICAgcmV0dXJu
IGNoZWNrZXItPmxhc3RQcm9jZXNzZWRTZXF1ZW5jZSgpOwogfQogCi12b2lkIEludGVybmFsczo6
c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+
c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRQZXJUaWxlRHJh
d2luZ0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIFZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6dXNl
clByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdlYkNvcmU6OnVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDNl
MjgxYmRlMTI5OTllYTM5NzkyNzUwYjc3MzIyNDE3NDg5M2RjZjIuLjA0ODk5ZmE4MDg5NGM2NWFj
NGY3NWU5NzIyODg4YzgzMTIzNzA1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApA
QCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDbGllbnRSZWN0Owog
Y2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OworY2xhc3MgSW50ZXJuYWxTZXR0aW5nczsK
IGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsKIGNsYXNzIFNoYWRvd1Jvb3Q7CkBAIC00Niw3ICs0
Nyw3IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiBjbGFzcyBJbnRlcm5hbHMgOiBwdWJs
aWMgUmVmQ291bnRlZDxJbnRlcm5hbHM+LAogICAgICAgICAgICAgICAgICAgcHVibGljIEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50
ZXJuYWxzPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnRlcm5hbHM+IGNyZWF0
ZShEb2N1bWVudCopOwogICAgIHZpcnR1YWwgfkludGVybmFscygpOwogCiAgICAgdm9pZCByZXNl
dChEb2N1bWVudCopOwpAQCAtNzIsMzIgKzczLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbGVj
dENvbG9ySW5Db2xvckNob29zZXIoRWxlbWVudCosIGNvbnN0IFN0cmluZyYgY29sb3JWYWx1ZSk7
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgdm9pZCBzZXRJbnNwZWN0b3JS
ZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhEb2N1bWVudCosIGludCBtYXhpbXVtUmVzb3VyY2VzQ29u
dGVudFNpemUsIGludCBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSwgRXhjZXB0aW9u
Q29kZSYpOwotI2Vsc2UKLSAgICB2b2lkIHNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGlt
aXRzKERvY3VtZW50KiwgaW50IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50IG1heGlt
dW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplLCBFeGNlcHRpb25Db2RlJikgeyB9Ci0jZW5kaWYK
LQogICAgIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gYm91bmRpbmdCb3goRWxlbWVudCosIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogICAgIHVuc2lnbmVkIG1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiwgY29u
c3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IG1hcmtl
clJhbmdlRm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAotICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoRG9jdW1lbnQqLCBib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbihEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYp
OwotICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKERvY3Vt
ZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRBY2NlbGVy
YXRlZERyYXdpbmdFbmFibGVkKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKERvY3VtZW50KiwgYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFu
aW1hdG9yKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9p
ZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oRG9jdW1lbnQqLCBmbG9hdCBzY2FsZSwgZmxvYXQg
dHgsIGZsb2F0IHR5LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRab29tUGFyYW1ldGVy
cyhEb2N1bWVudCosIGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRpb25Db2Rl
Jik7Ci0KLSAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChEb2N1bWVudCosIGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotCi0gICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFi
bGVkKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBz
ZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhEb2N1bWVudCosIGRvdWJsZSBkdXJhdGlv
bkluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYpOwotCiAgICAgdm9pZCBzZXRTY3JvbGxWaWV3UG9z
aXRpb24oRG9jdW1lbnQqLCBsb25nIHgsIGxvbmcgeSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
dm9pZCBzZXRQYWdpbmF0aW9uKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBtb2RlLCBpbnQgZ2Fw
LCBFeGNlcHRpb25Db2RlJik7CkBAIC0xMTIsMzEgKzkyLDIxIEBAIHB1YmxpYzoKICAgICBQYXNz
UmVmUHRyPFJhbmdlPiByYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aChFbGVtZW50KiBzY29wZSwg
aW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxlbmd0aCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHVuc2lnbmVkIGxvY2F0aW9uRnJvbVJhbmdlKEVsZW1lbnQqIHNjb3BlLCBjb25zdCBSYW5nZSos
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25lZCBsZW5ndGhGcm9tUmFuZ2UoRWxlbWVudCog
c2NvcGUsIGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0U2hvdWxk
TGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShEb2N1bWVudCosIGJvb2wsIEV4Y2Vw
dGlvbkNvZGUmKTsKLQotICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9j
dW1lbnQqLCBib29sLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9vbCB1bmlmaWVkVGV4dENoZWNr
aW5nRW5hYmxlZChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGludCBsYXN0U3Bl
bGxDaGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBp
bnQgbGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZShEb2N1bWVudCosIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICAKLSAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQqLCAgRXhjZXB0
aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKERvY3VtZW50KiwgZmxvYXQg
c2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYpOwotCi0gICAgdm9pZCBz
ZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKLQogICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBj
b25zdDsKICAgICB2b2lkIHNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mKTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAorICAgIElu
dGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0aW5ncy5nZXQo
KTsgfQorCiBwcml2YXRlOgotICAgIEludGVybmFscygpOworICAgIGV4cGxpY2l0IEludGVybmFs
cyhEb2N1bWVudCopOwogCi0gICAgZG91YmxlIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29u
ZHNCYWNrdXA7Ci0gICAgYm9vbCBtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrdXAgOiAxOwotICAg
IGJvb2wgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwIDogMTsKLSAgICBi
b29sIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwIDogMTsKKyAgICBSZWZQdHI8SW50ZXJu
YWxTZXR0aW5ncz4gbV9zZXR0aW5nczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA4NzQ4NTc5MmRkNjIzODA3MzMxODRk
MWU2NDQ3YzdhMDkxN2UxMjhhLi44ZDJmMWQ1YTQwNzFkNGIwZWQ0MTI0M2MyZmQxNTk0ZDU5OWZj
OGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC00OCwyNSArNDgsMTAg
QEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3Nl
cihpbiBFbGVtZW50IGVsZW1lbnQsIGluIERPTVN0cmluZyBjb2xvclZhbHVlKTsKICNlbmRpZgog
Ci0gICAgICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgbWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplLCBpbiBs
b25nIG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLQogICAgICAgICBDbGllbnRSZWN0IGJvdW5kaW5nQm94KGluIEVsZW1lbnQgZWxlbWVudCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWFya2VyQ291bnRG
b3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3RyaW5nIG1hcmtlclR5cGUpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICBSYW5nZSBtYXJrZXJSYW5nZUZvck5vZGUoaW4gTm9kZSBub2Rl
LCBpbiBET01TdHJpbmcgbWFya2VyVHlwZSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShp
biBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24o
aW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJh
bWVzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4g
RG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChpbiBEb2N1bWVu
dCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAg
ICAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihpbiBEb2N1bWVudCBkb2N1bWVudCwg
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBz
ZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0IHNj
YWxlLCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQgdHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBmbG9h
dCBzY2FsZSwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIERvY3VtZW50IGRvY3VtZW50
LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAgICAgIHZv
aWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVh
biBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRQYXNzd29y
ZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZG91YmxlIGR1
cmF0aW9uSW5TZWNvbmRzKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLQogICAgICAgICB2b2lkIHNl
dFNjcm9sbFZpZXdQb3NpdGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyB4LCBpbiBs
b25nIHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQgc2V0UGFnaW5hdGlv
bihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRE9NU3RyaW5nIG1vZGUsIGluIGxvbmcgZ2FwKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTgzLDE3ICs2OCwxMiBAQCBtb2R1bGUgd2luZG93IHsK
ICAgICAgICAgdW5zaWduZWQgbG9uZyBsb2NhdGlvbkZyb21SYW5nZShpbiBFbGVtZW50IHNjb3Bl
LCBpbiBSYW5nZSByYW5nZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICB1bnNpZ25l
ZCBsb25nIGxlbmd0aEZyb21SYW5nZShpbiBFbGVtZW50IHNjb3BlLCBpbiBSYW5nZSByYW5nZSkg
cmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4
ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVh
biBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRVbmlmaWVk
VGV4dENoZWNraW5nRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFi
bGVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGJvb2xlYW4gdW5pZmllZFRleHRD
aGVja2luZ0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKLQogICAgICAgICBsb25nIGxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNlKGluIERvY3Vt
ZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGxvbmcgbGFzdFNw
ZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZShpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChE
T01FeGNlcHRpb24pOwogCi0gICAgICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcihpbiBEb2N1bWVu
dCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0UGFnZVNj
YWxlRmFjdG9yKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBmbG9hdCBzY2FsZUZhY3RvciwgaW4g
bG9uZyB4LCBpbiBsb25nIHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwotCiAgICAgICAgIGF0dHJp
YnV0ZSBbQ3VzdG9tXSBBcnJheSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOworCisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBJbnRlcm5hbFNldHRpbmdzIHNldHRpbmdzOwogICAgIH07CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApp
bmRleCA4YTc5NWJmMmY2YjNhY2M3MTNlMjA1YjM3YzM5Y2ViNzdmOWExNWRhLi4xZDJhNDU3NWIz
Nzc3Zjg4MzE2YjZiYTVmOWEzYzhhYWJlYTEwN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5j
bHVkZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAKICNpbmNsdWRlICJJbnRlcm5hbHMuaCIKLSNp
bmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJKU0ludGVybmFscy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KQEAgLTQzLDcgKzQyLDkgQEAgdm9pZCBpbmplY3RJbnRlcm5hbHNPYmplY3QoSlNDb250ZXh0
UmVmIGNvbnRleHQpCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKICAg
ICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQpOwogICAgIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSk7Ci0gICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBJZGVudGlmaWVyKGV4ZWMsIEludGVybmFsczo6aW50ZXJuYWxzSWQpLCB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgSW50ZXJuYWxzOjpjcmVhdGUoKSkpOworICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBnbG9iYWxPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzY3JpcHRDb250ZXh0
LT5pc0RvY3VtZW50KCkgPyBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdENvbnRleHQpIDog
MDsKKyAgICBnbG9iYWxPYmplY3QtPnB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIElkZW50
aWZpZXIoZXhlYywgSW50ZXJuYWxzOjppbnRlcm5hbHNJZCksIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBJbnRlcm5hbHM6OmNyZWF0ZShkb2N1bWVudCkpKTsKIH0KIAogdm9pZCByZXNldEludGVy
bmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvdjgvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvdjgvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCA3NjMwMmVkODJhNjlhMDAwZGQw
NmMxMjc1MzhlZDkzZjg5MDEzYTA0Li4yOGMzNzI5ZjMzMzQ5NDYwYmYwMzcxYThkZmRhNTRkYzZh
OWM4YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL3Y4L1dlYkNvcmVUZXN0
U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy92OC9XZWJDb3JlVGVzdFN1
cHBvcnQuY3BwCkBAIC00Miw3ICs0Miw5IEBAIHZvaWQgaW5qZWN0SW50ZXJuYWxzT2JqZWN0KHY4
OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCkKICAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29u
dGV4dFNjb3BlKGNvbnRleHQpOwogICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKIAotICAgIGNv
bnRleHQtPkdsb2JhbCgpLT5TZXQodjg6OlN0cmluZzo6TmV3KEludGVybmFsczo6aW50ZXJuYWxz
SWQpLCB0b1Y4KEludGVybmFsczo6Y3JlYXRlKCkpKTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IHNjcmlwdENvbnRleHQtPmlzRG9jdW1lbnQoKSA/IHN0YXRpY19j
YXN0PERvY3VtZW50Kj4oc2NyaXB0Q29udGV4dCkgOiAwOworICAgIGNvbnRleHQtPkdsb2JhbCgp
LT5TZXQodjg6OlN0cmluZzo6TmV3KEludGVybmFsczo6aW50ZXJuYWxzSWQpLCB0b1Y4KEludGVy
bmFsczo6Y3JlYXRlKGRvY3VtZW50KSkpOwogfQogCiB2b2lkIHJlc2V0SW50ZXJuYWxzT2JqZWN0
KHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjOTU4MzAyNzMwZWZlYjNjODlhYTE0OWIwMDM0
NmY2MGU4OTIxOGRiLi4zZWY2ZTAwY2JkNjI4OTIyYzA0NWQ0OTYzZDVjYjlhM2Y4Mzg4MDk4IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTItMDEtMjMgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgW1JlZmFjdG9yaW5nXVtJbnRlcm5hbHNdIFNob3VsZCBoYXZlIEludGVybmFs
U2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc2NDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgc28gbmV3IGZpbGVzLgorCiAyMDEyLTAxLTIzICBFbWls
IEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBjaGVjay13ZWJraXQtc3R5
bGUgd2hpdGVzcGFjZS9vcGVyYXRvcnMgdHJpZ2dlcnMgb24gb3ZlcmxvYWRlZCBkaXZpc2lvbiBv
cGVyYXRvcgpkaWZmIC0tZ2l0IGEvVG9vbHMvR05VbWFrZWZpbGUuYW0gYi9Ub29scy9HTlVtYWtl
ZmlsZS5hbQppbmRleCAwMjI4OTNiOWZhYzk2MTAzNDAxYTMxNjFkOWI0ODU5ZjdlZGRhYjJjLi44
YmYyYjdiYTBkNTIyZGZhYWIwZjdmYTY2Y2FjYTg3MWJjMjkyYmM2IDEwMDY0NAotLS0gYS9Ub29s
cy9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9HTlVtYWtlZmlsZS5hbQpAQCAtNDMsMTMgKzQz
LDE4IEBAIGxpYldlYkNvcmVJbnRlcm5hbHNfbGFfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIFwKKwlT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBcCiAJU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9qcy9KU0ludGVybmFsc0N1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMv
V2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJD
b3JlVGVzdFN1cHBvcnQuaAogCiBsaWJ3ZWJjb3JlaW50ZXJuYWxzX2J1aWx0X3NvdXJjZXMgKz0g
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJbnRlcm5hbHMuY3BwIFwKLQlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSW50ZXJuYWxzLmgKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSW50
ZXJuYWxzLmggICBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ludGVybmFsU2V0dGluZ3Mu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSW50ZXJuYWxTZXR0aW5ncy5oCisKIG5v
ZGlzdF9saWJXZWJDb3JlSW50ZXJuYWxzX2xhX1NPVVJDRVMgPSAkKGxpYndlYmNvcmVpbnRlcm5h
bHNfYnVpbHRfc291cmNlcykKIEJVSUxUX1NPVVJDRVMgKz0gJChsaWJ3ZWJjb3JlaW50ZXJuYWxz
X2J1aWx0X3NvdXJjZXMpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MGFiNzgxYWZiYmNiNWQyNDVhNjUxMGMwNGNmNTUz
YTFlM2NlMjlhLi40YTE2OTZkZjgyMjNiODE4MGM4ZjMzNTIyMWViZDFiZGMxZjFmNjgyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTE3IEBACisyMDEyLTAxLTIzICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVS
TCAoT09QUyEpCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtc3dpdGNoLmh0bWw6CisgICAgICAg
ICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1kb3duLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4
ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sOgorICAgICAgICAq
IGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUtZG93bi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVy
Lmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvcmVzb3VyY2VzL21vY2tfc2Nyb2xsYmFycy5q
czoKKyAgICAgICAgKiBjb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5o
dG1sOgorICAgICAgICAqIGVkaXRpbmcvaW5wdXQvcmVzb3VyY2VzL3Bhc3N3b3JkLWVjaG8uanM6
CisgICAgICAgIChpbml0KToKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2st
YXN5bmMtbXV0YXRpb24uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stYXN5bmMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZp
ZWQtZW11bGF0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdl
LWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vRWxlbWVudC9z
Y2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1JhbmdlL3Nj
YWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9S
YW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjYWxl
LWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2Fs
ZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
Y2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Njcmlw
dC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanM6CisgICAgICAgIChpZnJh
bWVMb2FkZWQpOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxl
ZC1tb3VzZS1jbGljay5qczoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVk
LXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWw6CisgICAgICAgICogZmFz
dC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0bWw6CisgICAgICAgICogZmFzdC9mcmFt
ZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sOgorICAgICAgICAqIGZhc3QvcmVw
YWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvZml4
ZWQtaW4tcGFnZS1zY2FsZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1yaWdo
dC1ib3R0b20taW4tcGFnZS1zY2FsZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9maXhl
ZC1yaWdodC1pbi1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NjYWxl
LXBhZ2Utc2hyaW5rLmh0bWw6CisgICAgICAgICogZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1i
b3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmstdGVzdC5qczoKKyAgICAgICAgKHJlc2V0SW5zcGVjdG9yUmVzb3VyY2Vz
RGF0YSk6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNv
bnRlbnQtcmVwbGFjZW1lbnQtZW1iZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL2Fs
cGhhLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxl
cmF0ZWQtZHJhd2luZy9zdmctZmlsdGVycy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvZm9yY2UtY29tcG9zaXRlLWVt
cHR5Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2Ut
Y29tcG9zaXRpbmctbW9kZS9uby1vdmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292
ZXJmbG93LWhpZGRlbi1pZnJhbWUtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1l
bnRlci1jb21wb3NpdGluZy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWw6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRp
bmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGVhdmUtY29tcG9zaXRpbmcuaHRtbDoKKworMjAxMi0w
MS0yMyAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBb
UmVmYWN0b3JpbmddW0ludGVybmFsc10gU2hvdWxkIGhhdmUgSW50ZXJuYWxTZXR0aW5ncworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MjQKKworICAg
ICAgICBVcGRhdGVkIHRvIGZvbGxvdyBBUEkgcmVjZWl2ZXIgY2hhbmdlLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi1jb21wb3NpdGVkLXN3aXRjaC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sOgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoK
KyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1l
cy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5lci5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL3Jlc291cmNlcy9tb2NrX3Njcm9sbGJhcnMuanM6CisgICAgICAgICogY29tcG9zaXRp
bmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L2lucHV0L3Jlc291cmNlcy9wYXNzd29yZC1lY2hvLmpzOgorICAgICAgICAoaW5pdCk6CisgICAg
ICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sOgorICAg
ICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVu
dC1yZWN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQt
cmVjdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWJvZHku
aHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2lu
ZG93Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91
c2UtY2xpY2staWZyYW1lLmpzOgorICAgICAgICAoaWZyYW1lTG9hZGVkKToKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanM6CisgICAg
ICAgICogZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlk
ZGVuLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gt
Z2VzdHVyZS1jbGljay5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3Rh
dGlvbi1oaXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1o
aXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRl
bnRzLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5odG1s
OgorICAgICAgICAqIGZhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0bWw6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWw6
CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbDoKKyAgICAgICAg
KiBmYXN0L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay10ZXN0LmpzOgorICAg
ICAgICAocmVzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhKToKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50
LXJlcGxhY2VtZW50LXhoci5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvYWxwaGEuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL3N2Zy1maWx0ZXJzLmh0
bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9z
aXRpbmctbW9kZS9mb3JjZS1jb21wb3NpdGUtZW1wdHkuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL25vLW92ZXJmbG93
LWlmcmFtZS1sYXllci5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaGlkZGVuLWlmcmFtZS1sYXllci5o
dG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBv
c2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWVudGVyLWNvbXBvc2l0aW5nLmh0bWw6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9k
ZS9vdmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sZWF2
ZS1jb21wb3NpdGluZy5odG1sOgorCiAyMDEyLTAxLTIzICBEYWxlIEN1cnRpcyAgPGRhbGVjdXJ0
aXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlZHVjZSB0aHJvdHRsaW5nIG9uIHZpZGVvLWJ1
ZmZlcmluZy1yZXBhaW50cy1jb250cm9scyB0ZXN0IHRvIHByZXZlbnQgdGltZW91dC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCmlu
ZGV4IDM3NzFmNWU3M2U4YWNmMDZiYzBlYzdjYjIyZjcxNmI5YzFhMmJkZjkuLmE4ZTg0YWM2YzJl
N2Y5NzE5MWQzMDU0OTAxYWRlY2U0NjBmZTYxOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApAQCAtMTksOCArMTksOCBAQAog
PHNjcmlwdD4KICAgZnVuY3Rpb24gc2NhbGUoKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBv
c2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNj
YWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7CisgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDAp
OwogICAgIH0KICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKaW5kZXggMGM1ODU0MWFmYzA3MTJjOTk4ZDhj
NGM5ZTA5ZDkwNzY5NjkwNTNiYS4uNTMyN2ExOGZhYzdkZDU2MGRjMGFmN2RiODk1YzdmNjlkMTcz
M2VkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0
bWwKQEAgLTE5LDggKzE5LDggQEAKIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CisgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQ
b3NpdGlvbih0cnVlKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNj
YWxlRmFjdG9yKDIsIDAsIDApOwogICAgIH0KICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWNvbXBvc2l0ZWQtc3dpdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXN3aXRjaC5odG1sCmluZGV4IGQxOTk3ZTNiNTBm
ZjMxOWU1ZTZmZmMxYzdiZjAxZGU3ZDJhZjMwNmIuLmRhYWQ5YzlkMjJiOWFjMjU5NmNhNTg1Mzgw
NzNjZGUxNWQ1NTFiMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtc3dpdGNoLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1zd2l0Y2gu
aHRtbApAQCAtMTksNyArMTksNyBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSAK
LSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0
aW9uKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKHRydWUpOwogCiAgICAgZnVuY3Rpb24g
ZG9UZXN0KCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFt
ZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCmluZGV4IDNjNzI1ZGFlMTQxZDVhM2M1
N2U1YTY0MjQxYzU2OTAxYjQwOGZmMDMuLmVhMzAyM2U3YTA0ZDljNmQ4Zjk3NjU4Y2E1MmE5OWRj
N2I0MDUzZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCkBAIC0xOSw4ICsxOSw4IEBACiA8c2NyaXB0
PgogICBmdW5jdGlvbiB0ZXN0KCkgewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihk
b2N1bWVudCwgdHJ1ZSk7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rv
cihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKHRydWUpOworICAgICAgd2luZG93
LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC41LCAwLCAwKTsKICAgICB9
CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNj
YWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKaW5kZXggMTZhYjA3NTFjYmQwMzBm
MjRlY2NhZDFmNTc2MTAxZjA4NTRkNjM2MS4uNDBkZDc0MzA5ZDU5MjExN2JhMDkyMmVlNzIwNTBh
NmQ2OTRiY2IwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMTksOCArMTksOCBAQAogPHNjcmlwdD4KICAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgd2luZG93
LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQs
IHRydWUpOwotICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1l
bnQsIDIsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVD
b21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAwKTsKICAgICB9CiAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQodHJ1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRy
YW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCmluZGV4IDQ1Y2UwMzVmMjky
Mjk0NjBlMzM0Mjc4MGNiZjRjMWZiNTZlYzIzNjYuLmMxMWVkZGI1Y2Y4MzM2M2I3YzYwOGQ2YzU1
YTQzZGRhNTAxMGQxMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCkBAIC0yMSw4ICsyMSw4
IEBACiA8c2NyaXB0PgogICBmdW5jdGlvbiBzY2FsZSgpIHsKICAgICBpZiAod2luZG93LmludGVy
bmFscykgewotICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZp
eGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgICAgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbih0cnVlKTsK
KyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDAuNSwg
MCwgMCk7CiAgICAgfQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCmlu
ZGV4IGRmODY2N2IxYTI0ZDkzZWQyMzE5YzljNDk1YTE1OTc2Y2FkOGRhZGQuLjRlOTljOGViM2Iy
NzljZGZkZjRiMjk0Zjk4NTA0Y2Y4NDQ2NDJmMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTIxLDgg
KzIxLDggQEAKIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewogICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbih0cnVl
KTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIs
IDAsIDApOwogICAgIH0KICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hpbGQt
aW5uZXIuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Nj
cm9sbGdyYW5kY2hpbGQtaW5uZXIuaHRtbAppbmRleCBjNDJhNWYxMjNmYjYzNWNjMjA3MDc0YTEy
MThhNmVjMjY3NmEzNWEyLi5iMGMxMDNiNzM2NDBmNWVmNjA3YTllNTFkMmU0NzgzNTFjN2Y4ODBh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9z
Y3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
aWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5lci5odG1sCkBAIC0yMyw3ICsy
Myw3IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChkb2N1bWVu
dCwgdHJ1ZSk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldE1vY2tTY3JvbGxi
YXJzRW5hYmxlZCh0cnVlKTsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvcmVzb3VyY2VzL21vY2tfc2Nyb2xsYmFycy5qcyBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL3Jlc291cmNlcy9tb2NrX3Njcm9sbGJhcnMuanMKaW5kZXggNzQyOGZiYWEw
ZmY5MjA0MDIzMTU3YTMzZDViOTkyMjRjNzQxMWMwMS4uNzFiZGY3MDNkN2NjYmMxMDIyZDQ3ZTNi
MGFlZDZkNzA2MmQ4YzU0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVz
b3VyY2VzL21vY2tfc2Nyb2xsYmFycy5qcworKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZXNvdXJjZXMvbW9ja19zY3JvbGxiYXJzLmpzCkBAIC0xLDMgKzEsMyBAQAogaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKLSAgd2luZG93LmludGVybmFscy5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQo
ZG9jdW1lbnQsIHRydWUpOworICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldE1vY2tTY3Jv
bGxiYXJzRW5hYmxlZCh0cnVlKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL3NjYWxpbmcvdGlsZWQtbGF5ZXItcmVjdXJzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5odG1sCmluZGV4IDM5OWQwZTBm
MDQ2ZWI0YWFmMThhNTNmMWVhM2UxMGNkMmViYmJmNmUuLmZkMzIxYTM4NDMyYzVlYTIyZjYzN2Qw
ODdiMDNkNzEwMjcwMjdjZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Nj
YWxpbmcvdGlsZWQtbGF5ZXItcmVjdXJzaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbApAQCAtMTcsNyArMTcsNyBA
QAogICAgIGZ1bmN0aW9uIHNjYWxlUGFnZSgpCiAgICAgewogICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3Vt
ZW50LCAxLjUwMDI1LCAwLCAwKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRQYWdlU2NhbGVGYWN0b3IoMS41MDAyNSwgMCwgMCk7CiAgICAgfQogICAKICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHNjYWxlUGFnZSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9pbnB1dC9yZXNvdXJjZXMvcGFzc3dvcmQtZWNoby5qcyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvcmVzb3VyY2VzL3Bhc3N3b3JkLWVjaG8uanMKaW5kZXgg
Nzk0NWUxMDVjNDA5YTRmOWRmMWI5OTY5MjFkOWQ4M2I0OTZlZTk2My4uYTc2NDFjMDc4Y2M0ZDc5
N2I4MTJhMDVhM2JhYTM5M2U1MGI2Y2EwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9pbnB1dC9yZXNvdXJjZXMvcGFzc3dvcmQtZWNoby5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL2lucHV0L3Jlc291cmNlcy9wYXNzd29yZC1lY2hvLmpzCkBAIC04MCw4ICs4MCw4IEBAIGZ1
bmN0aW9uIGluaXQodGVzdHMpCiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXRQYXNzd29yZEVjaG9FbmFibGVkKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoZG9jdW1lbnQs
IDAuMSk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhc3N3b3Jk
RWNob0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKDAuMSk7CiAgICAgICAgICAgICB0ZXN0
bm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0bm9kZScpOwogICAgICAgICAgICAg
cnVuKHRlc3RzLCAtMSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwKaW5kZXggMTY3
MTQwMmVhNjVmYTI2OGVlY2Q2MTk3ZGVhZTRhNWExYzMxNzEwOS4uZTYxNDRhOTE4YjliZDUzYjBh
MjIzMjIyMDY5Mzc1MzI5Y2Q1MGZhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWwKQEAgLTM2LDcg
KzM2LDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogfQogCiBpZiAod2lu
ZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJs
ZWQoZG9jdW1lbnQsIHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4
dENoZWNraW5nRW5hYmxlZCh0cnVlKTsKIAogdmFyIHNvdXJjZUlkcyA9IFsnc291cmNlJ107CiB2
YXIgZGVzdEVsZW1zID0gWyd0ZXh0YXJlYScsICdpbnB1dCcsICdjb250ZW50ZWRpdGFibGUnXTsK
QEAgLTc3LDcgKzc3LDcgQEAgZnVuY3Rpb24gZG9UZXN0SWZBbnkoKSB7CiAgICAgcmVtb3ZlQWxs
Q2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vdmUtdGFyZ2V0JykpOwogCiAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIGludGVybmFscy5zZXRVbmlmaWVkVGV4dENo
ZWNraW5nRW5hYmxlZChkb2N1bWVudCwgZmFsc2UpOworICAgICAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZmFsc2UpOwogCiAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChmYWxzZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy5odG1sCmluZGV4IDcyNzBh
MzM1MDg1MGRiNTViNzllMDQ2ODI1OTNlZDMwNjBkZjBhZWQuLjYxMTQ0ZDdkMzhhMjg1ZDU1NjAy
MzQyZTg5YmI3OGQzNGM0NzNiMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1hc3luYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1hc3luYy5odG1sCkBAIC0yNyw3ICsyNyw3IEBAIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIH0KIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAg
aW50ZXJuYWxzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50LCB0cnVlKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQodHJ1
ZSk7CiAKIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVy
Jyk7CiBmdW5jdGlvbiByZW1vdmVDaGlsZHJlbihub2RlKSB7CkBAIC01Nyw3ICs1Nyw3IEBAIGZ1
bmN0aW9uIGRvVGVzdElmQW55KCkgewogICAgIC8vIE5vIG1vcmUgdGVzdHMuCiAgICAgcmVtb3Zl
Q2hpbGRyZW4oY29udGFpbmVyKTsKICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAg
aW50ZXJuYWxzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50LCBmYWxzZSk7
CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxl
ZChmYWxzZSk7CiAKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRtbAppbmRleCAyYTllZWI3YmMyMDAxYWI4
ODM0ZTY5ZWY4ODk4NGU2MzE1ZTY2MDVlLi40OGZjZmNmMGEzNTJkYTcxYTc1MTIwOGE4YzI1ZWFi
ZjFmY2NmNjlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sCkBAIC0zMSw3ICszMSw3IEBAIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIH0KIAogaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50
LCB0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2luZ0Vu
YWJsZWQodHJ1ZSk7CiAKIHZhciB0ZXN0RGF0YSA9IFsKICAgICB7IHRleHQ6ICd6eicsIG1hcmtl
ZDogWyd6eiddIH0sCkBAIC04NSw3ICs4NSw3IEBAIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdERh
dGEubGVuZ3RoOyArK2kpIHsKIH0KIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50LCBmYWxzZSk7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGZhbHNlKTsK
IAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQt
cmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJvdW5k
aW5nLWNsaWVudC1yZWN0Lmh0bWwKaW5kZXggNjAyMjg5YjMzNTEyOTE1YWViOWRlNjUyZmVlNzU4
MjlkMDk5Y2E3My4uMzMwYjU1NzdhOTFhZTE2MWQyNDQxMGVmYWJhMzVlYmMzMTQ5MWU2NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJvdW5kaW5n
LWNsaWVudC1yZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2Fs
ZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKQEAgLTksNyArOSw3IEBAIGZ1bmN0aW9u
IHRlc3RSZWN0cygpCiAgICAgCiAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkaXYiKTsKICAgICB2YXIgcmVjdCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7
CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwg
MCk7CiAgICAgdmFyIHNjYWxlZFJlY3QgPSBkaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAK
ICAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1y
ZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVu
dC1yZWN0cy5odG1sCmluZGV4IDhmYTJhMzExMDVhYTc2ODhiYzM1OGU5YjUzOGQxMDM0OGM3ZThh
ZjMuLjE3NmFjMDY5MTRkMWE3NDlmNGVjYjBiYmE4MzAyNTc3NzZiNTVhMzAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJl
Y3RzLmh0bWwKQEAgLTksNyArOSw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiAgICAgCiAgICAg
dmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYiKTsKICAgICB2YXIgcmVjdExp
c3QgPSBkaXYuZ2V0Q2xpZW50UmVjdHMoKTsKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VT
Y2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAgICAgdmFyIHNjYWxlZFJlY3RMaXN0
ID0gZGl2LmdldENsaWVudFJlY3RzKCk7CiAKICAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlc3VsdCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
UmFuZ2Uvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCmluZGV4
IGYxMmMwZmQ3ODMxODNiYzU4YmI4NGIwOGQ2YzA4NzkyMGE1ZTY5ZTguLjE4YmQ2ZmE5NTIzMDJi
YjU4NTVhNjQ2YTRmZGE0OGExNDM4OWRiZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0
bWwKQEAgLTExLDcgKzExLDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAgICByYW5nZS5zZWxl
Y3ROb2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpKTsKICAgICB2YXIg
cmVjdCA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgCi0gICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogICAgIHZh
ciBzY2FsZWRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CiAgICAgc2NhbGVkUmFuZ2Uu
c2VsZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKSk7CiAgICAg
dmFyIHNjYWxlZFJlY3QgPSBzY2FsZWRSYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtY2xpZW50LXJl
Y3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1y
ZWN0cy5odG1sCmluZGV4IDNlZjM2Nzk1NTYzMjIzYThiNzQzZGIyMGRmODA0MDExZDhmZDA4MTMu
LmU0Y2VkMGY3YTdlYjE0ZGUzYWJjNzdmNWRlMmQyZmE2ZjkwODA5MTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRt
bApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogICAgIHZhciByZWN0TGlz
dCA9IHJhbmdlLmdldENsaWVudFJlY3RzKCk7CiAgICAgdmFyIHJlY3QgPSByZWN0TGlzdFswXTsK
ICAgIAotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAy
LCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3Rv
cigyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgp
OwogICAgIHNjYWxlZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZGl2JykpOwogICAgIHZhciBzY2FsZWRSZWN0TGlzdCA9IHNjYWxlZFJhbmdlLmdldENs
aWVudFJlY3RzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1h
bmQtc2Nyb2xsLWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1z
Y3JvbGwtYm9keS5odG1sCmluZGV4IGE1NzBkNzkzM2Y2MGFlNjhjYzdmOWNhMGZkMGQ1MzhjNzNh
OWVjYTMuLjllNmUwMDVlZTNjMGY5ZTk3NDAwMWNhYTM4MGFlYWFjMGQwMWMzODIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sCkBA
IC0xMCw3ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsK
IAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxl
LCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5v
dCBiZSBhcHBhcmVudAorICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBh
cHBhcmVudAogICAgICAgICAgIC8vIHRvIGphdmFzY3JpcHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xs
aW5nIHRvICgxMDAsMTAwKSB0byBiZSBwYWdlIGNvb3JkaW5hdGVzLCByYXRoZXIKICAgICAgICAg
ICAvLyB0aGFuIGRldmljZSBwaXhlbHMuCiAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxM
ZWZ0ID0gMTAwOwpAQCAtMjYsNyArMjYsNyBAQAogICAgICAgICAgIHZhciBzY2FsZUZhY3RvciA9
IDIuMDsKICAgICAgICAgICB2YXIgc2NhbGVPZmZzZXQgPSAwOwogICAgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2Nh
bGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQp
OworICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFj
dG9yKHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0K
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5k
LXNjcm9sbC1pZnJhbWUtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUt
YW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1sCmluZGV4IDgxOTViOTlmY2FlZWZiOGFmZWE2YTJm
ZmJiMjYyYWFmN2ZjMmEyODguLjI4NDAwMmM1YTJlYWZhMTQ1ODkxODkzYjI5MjA4M2JlZDMwOTkx
OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwt
aWZyYW1lLWJvZHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQt
c2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAKICAgICAgICAgICAgIHZh
ciBzY2FsZUZhY3RvciA9IDAuNTsKICAgICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7CiAg
ICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICAgICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNj
YWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CisgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwg
c2NhbGVPZmZzZXQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93
Lmh0bWwKaW5kZXggNzc5MzU4MTJhMTY1MDEyZjgyNTU2NjJjOWRlZjBjNjI3YjIwNjcyNS4uYTcz
NDJiNTI0MjIwYzUwZGE4NjIxZjBlOWI4MDNiMTEyOWVjOTEyNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93
Lmh0bWwKQEAgLTI0LDcgKzI0LDcgQEAKICAgICAgICAgICAgIHZhciBzY2FsZUZhY3RvciA9IDAu
NTsKICAgICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7CiAgICAgICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykgewotICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9m
ZnNldCk7CisgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFn
ZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NjYWxlLWFuZC1zY3JvbGwtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sCmluZGV4IDVjMzVlNjVjY2ExOGVhNDI3MjI0
MDhkNDI0MjEwMmFhMDU1YzU2YjEuLjliNGQzNGY1ZDEyZjUxNjg1OWUxYzc3YWE1OTQ3MGJkODE3
N2FlZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3Jv
bGwtd2luZG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNj
cm9sbC13aW5kb3cuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgICAgd2luZG93LmVuYWJsZVBp
eGVsVGVzdGluZyA9IHRydWU7CiAKICAgICAgIGZ1bmN0aW9uIHNjcm9sbCgpIHsKLSAgICAgICAg
ICAvLyBUaGUgcGFnZSBzY2FsZSwgYXMgc2V0IGJ5IHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNj
YWxlRmFjdG9yIHNob3VsZCBub3QgYmUgYXBwYXJlbnQKKyAgICAgICAgICAvLyBUaGUgcGFnZSBz
Y2FsZSwgYXMgc2V0IGJ5IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFj
dG9yIHNob3VsZCBub3QgYmUgYXBwYXJlbnQKICAgICAgICAgICAvLyB0byBqYXZhc2NyaXB0LiBT
bywgd2UgZXhwZWN0IHNjcm9sbGluZyB0byAoMTAwLDEwMCkgdG8gYmUgcGFnZSBjb29yZGluYXRl
cywgcmF0aGVyCiAgICAgICAgICAgLy8gdGhhbiBkZXZpY2UgcGl4ZWxzLgogICAgICAgICAgIHdp
bmRvdy5zY3JvbGxUbygxMDAsMTAwKTsKQEAgLTI1LDcgKzI1LDcgQEAKICAgICAgICAgICB2YXIg
c2NhbGVGYWN0b3IgPSAyLjA7CiAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKICAgICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQs
IHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsK
ICAgICAgICAgICB9CiAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2st
aWZyYW1lLmpzCmluZGV4IDM5N2Y4ZGUzN2M4NzM3NWNiOTQ0NDZmNTAyNGU1ZGI3OTRlYTYxMjIu
LmRmNDU1YTJmNmVkYmE2ZTcxMGM2ZTIwYWEzYmFmZDdlMDYwYmM4MDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGlj
ay1pZnJhbWUuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3Bh
Z2Utc2NhbGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcwpAQCAtNjAsMTUgKzYwLDE1IEBAIGZ1bmN0
aW9uIGlmcmFtZUxvYWRlZCgpIHsKIAogICAgIHRlc3RFdmVudHMoMCwgIlVuc2NhbGVkIiwgImNs
aWNrKDEwLCAxMCkiKTsKIAotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9y
KGRvY3VtZW50LCAwLjUsIDAsIDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
UGFnZVNjYWxlRmFjdG9yKDAuNSwgMCwgMCk7CiAgICAgdGVzdEV2ZW50cygwLCAic2V0UGFnZVNj
YWxlKDAuNSkiLCAiY2xpY2soMjAsIDIwKSIpOwogCi0gICAgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDEuMCwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMS4wLCAwLCAwKTsKICAgICBodG1sLnN0eWxl
WyItd2Via2l0LXRyYW5zZm9ybSJdID0gInNjYWxlKDAuNSwgMi4wKSI7CiAgICAgaHRtbC5zdHls
ZVsiLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luIl0gPSAiMCAwIjsKICAgICB0ZXN0RXZlbnRzKDAs
ICJDU1Mgc2NhbGUoMC41LCAyLjApIiwgImNsaWNrKDIwLCA1KSIpOwogCi0gICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CisgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC41LCAwLCAwKTsKICAg
ICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdlU2NhbGUoMC41KSwgQ1NTIHNjYWxlKDAuNSwgMi4wKSIs
ICJjbGljayg0MCwgMTApIik7CiAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCmlu
ZGV4IDQ0ZTY4M2NjNjRlZTliZjdiZjk1NWE2Y2YwZjcwNjgwOWQ2ZjU4YzMuLjcxYmYyN2FkOWI1
MDljYWIzOGU3MDM5YTEyMTI3ZWVlYzRjYmI3NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5qcworKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xp
Y2suanMKQEAgLTUwLDYgKzUwLDYgQEAgaWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CiAgICAgLy8gcGFydHMgb2YgdGhlIGRvY3VtZW50IGFyZSB1bmRlciB0aGUg
bW91c2UuCiAgICAgdGVzdEV2ZW50cygwLCAiVW5zY2FsZWQiLCAiY2xpY2soMTAsIDEwKSIpOwog
Ci0gICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwg
MCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Io
MC41LCAwLCAwKTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdlU2NhbGUoMC41KSIsICJjbGlj
aygyMCwgMjApIik7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3Jv
bGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRlbi5o
dG1sCmluZGV4IGZmNmQyYzk5MDlmNjkyY2Y0ZTk4NWFlNjk2ZDIzZmNmYmViMjkwNmQuLjcyYzNj
Y2UyY2JkODc1OTAyMDZlMzZhMTg4MGM1MzQ0YThlYjBkODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRl
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFn
ZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKIAogICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
LSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50
LCAyLCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFn
ZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogCiAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZG9jdW1l
bnQuYm9keS5zY3JvbGxUb3AiLCAiMCIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNr
Lmh0bWwKaW5kZXggMGRiOTU1YjAwOTk5ZWI3YjlhZWU4MmFhZmMxNjc4MTBhNDdmZDg0My4uMmU2
ZGJkZGI4NTAzMjQ0MzExOWE3MGExY2RmODVhMzZhMTdiYWM4MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNo
LWdlc3R1cmUtY2xpY2suaHRtbApAQCAtODQsNyArODQsNyBAQCBmdW5jdGlvbiBlbmRUZXN0KCkK
IAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAw
LCAwKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0
b3IoMC41LCAwLCAwKTsKICAgICB9CiAKICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RvdWNodGFyZ2V0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXNldC1zY2FsaW5nLWhpdC5odG1sCmluZGV4IDRmOWI3OTM3NDhkN2RiNTFlY2ExZjk3YTI3
ZTU4NzFhMGU2ZTg4YjEuLjQ5MWZmOTViOTIxN2E1ZWUzODdhYjc5YjYzNDEwYWQ5MGM2NWZjNmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhp
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhp
dC5odG1sCkBAIC05LDcgKzksNyBAQAogICAgICAgICAgICAgLy8gU2NhbGUgdGhlIHBhZ2UgYW5k
IHJlc2l6ZSB0aGUgZnJhbWVzIHRvIHZlcmlmeSBoaXQgdGVzdGluZyBvbiB0aGUgZnJhbWVzZXQK
ICAgICAgICAgICAgIHZhciBsZWZ0UGFuZWxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC8gODsK
ICAgICAgICAgICAgIHZhciBwYW5lbEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAvIDI7Ci0g
ICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwg
MC41LCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFn
ZVNjYWxlRmFjdG9yKDAuNSwgMCwgMCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhsZWZ0UGFuZWxXaWR0aCwgcGFuZWxIZWlnaHQgLyAyKTsKICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
MiAqIGxlZnRQYW5lbFdpZHRoLCBwYW5lbEhlaWdodCAvIDIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sCmlu
ZGV4IGQzYWY1ZjY5N2IwNzYwZjU3ZDVmMjA3NWExMDRkMjA0MTY3NWZiMDUuLmQyMjI4YWNmZjRi
OTA3ZTlkNTg3NGE5MGM2MDgzOTNiOTNlNjNmMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2lmcmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwKQEAgLTIz
LDcgKzIzLDcgQEAKICAgICAgIGZ1bmN0aW9uIHNjYWxlUGFnZShzY2FsZUZhY3RvcikgewogICAg
ICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7CiAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRv
Y3VtZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFj
dG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sCmlu
ZGV4IGU4Y2ZmMGQxNjU2YjU1YmU4Njg0NDYyNTA1NTcxMzM5NzEzODdhM2QuLjZiYjkxMWU2MDgx
NDZlOWViODA1M2Q3ZGI2ZmNjY2QzZTIwNWJlZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwKQEAgLTUsNyArNSw3IEBACiAgICAgZnVu
Y3Rpb24gcmVwYWludFRlc3QoKQogICAgIHsKICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVu
dCwgMC4yNSwgMCwgMCk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFBhZ2VTY2FsZUZhY3RvcigwLjI1LCAwLCAwKTsKICAgICB9CiA8L3NjcmlwdD4gCiA8L2hlYWQ+
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2Nh
bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0
bWwKaW5kZXggYTk1YzU3Mjg2ODY2MGM1NTNiNjg4N2FlNzA4NWJmZDQxNWNiMzAwYi4uYjc2NTdl
ZmY5ZGM4ZmU5MGM0YmQ1ZDE4NzE5Njc0OWQzMmQ4ODE4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sCkBAIC05LDcgKzksNyBAQAog
ICAgIDxzY3JpcHQ+CiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShkb2N1bWVudCwgdHJ1ZSk7
CisgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRMYXlvdXRGaXhl
ZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKHRydWUpOwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwo
KSB7CiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Ut
c2NhbGUuaHRtbAppbmRleCAxMmZjNDVhN2NhNzMzODFlZTNjOTM0ZWQ2MThjN2UyMTljNzFiZDdi
Li45NjEzODQ5NjQ3MjBlZGY4MGQwNzdiMTJlNjUyZmYyYzQ3NWY5Nzc1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Utc2NhbGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9tLWlu
LXBhZ2Utc2NhbGUuaHRtbApAQCAtOSw3ICs5LDcgQEAKICAgICA8c2NyaXB0PgogICAgICAgd2lu
ZG93LmVuYWJsZVBpeGVsVGVzdGluZyA9IHRydWU7CiAgICAgICBpZiAod2luZG93LmludGVybmFs
cykKLSAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFNob3VsZExheW91dEZpeGVkRWxlbWVu
dHNSZWxhdGl2ZVRvRnJhbWUoZG9jdW1lbnQsIHRydWUpOworICAgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFt
ZSh0cnVlKTsKIAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewogICAgICAgICAgIHdpbmRvdy5z
Y3JvbGxUbygxMDAsMTAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9m
aXhlZC1yaWdodC1pbi1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
Zml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sCmluZGV4IDkwMzgzZTg2OWI2MGVkZGNhMDgy
MjU4MjFmMWYwZmY0NTA0NTBhNmUuLmEyOGMxNDZjZWZlNzEwZmRiMDE1YzBlYjkwM2Q2OTQyNDFl
MDQ0OGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1p
bi1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJp
Z2h0LWluLXBhZ2Utc2NhbGUuaHRtbApAQCAtOSw3ICs5LDcgQEAKICAgICA8c2NyaXB0PgogICAg
ICAgd2luZG93LmVuYWJsZVBpeGVsVGVzdGluZyA9IHRydWU7CiAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKLSAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFNob3VsZExheW91dEZpeGVk
RWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZG9jdW1lbnQsIHRydWUpOworICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZl
VG9GcmFtZSh0cnVlKTsKIAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewogICAgICAgICAgIHdp
bmRvdy5zY3JvbGxUbygxMDAsMTAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9zY2FsZS1wYWdlLXNocmluay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nj
YWxlLXBhZ2Utc2hyaW5rLmh0bWwKaW5kZXggOTJmM2UzZDVmNmY2NmUxYzk5ZTE5N2JmZTdlMTRm
YWEwMmYwZDA0MC4uMDliZDIyMTgzMWQ3ZjZiZTk2YWY3NDBkYjlmOTcxODkxNjY3YjI2OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwKQEAg
LTUsNyArNSw3IEBACiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQogICAgIHsKICAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC4yNSwgMCwgMCk7CisgICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjI1LCAwLCAwKTsKICAgICB9
CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNm
b3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcu
aHRtbAppbmRleCAxMGUyNmJiODkxNzJkYmZiMDc3MDcwYjZkYjAxZDAwMGUyOTgyMDcxLi5mZjI2
MzM5MDk3MjBiOWRjNWEyMjViMjA4ZmM4ZmNkODE1MzA4YzgzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMt
aW4tdHJhbnNmb3JtZWQtdmlldy5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxzY3JpcHQ+CiAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmludGVybmFs
cykgewogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
ICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIs
IDAsIDApOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2Nh
bGVGYWN0b3IoMiwgMCwgMCk7CiAgICAgICAgIH0KIAogICAgICAgICBkb2N1bWVudC5leGVjQ29t
bWFuZCgiRmluZFN0cmluZyIsIGZhbHNlLCAidGFyZ2V0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXRlc3QuanMKaW5kZXggMTQxMzA4NGM5ODgzZDM2
YzcxNDUxNjhmMTNlMzgwMGRkN2RkNjYyNy4uMzM4MmZlZjI0Mjc1YjRjYTdhYzUyNWI4NWMzYWQ2
YTZmM2E4OWY0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmstdGVzdC5qcwpAQCAtNDQsNyArNDQsNyBAQCBmdW5jdGlvbiByZXNldEluc3BlY3RvclJl
c291cmNlc0RhdGEoKQogICAgIGlmICghd2luZG93LmludGVybmFscykKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgaW50ZXJuYWxzLnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGlt
aXRzKGRvY3VtZW50LCAxMCAqIDEwMDAgKiAxMDAwLCAxMDAwICogMTAwMCk7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKDEwICogMTAw
MCAqIDEwMDAsIDEwMDAgKiAxMDAwKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRl
bnQtcmVwbGFjZW1lbnQtZW1iZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0bWwKaW5kZXgg
MWI3NDJjYmJjZTJmM2Q0YjI0MzkzYzhkMDAwNmEyZGVlYjhiMjMzMS4uZTFkNTY5ODBhYjVlMzE3
ZWYxNDg2OTMzNTkxYzdkOGU3NTFmZmEzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQtZW1iZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstY29udGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1sCkBAIC0zMSw3ICszMSw3IEBAIGZ1bmN0
aW9uIGxvYWRVUkxzKCkKICAgICB9CiAgICAgLy8gRWFjaCAnKicgc3ltYm9sIGluIG9yaWdpbmFs
IGRhdGEgd2lsbCB1c2UgdHdvIGJ5dGVzIGluIFN0cmluZyBvYmplY3QKICAgICAvLyBhZnRlciBk
ZWNvZGluZywgaGVuY2UgbXVsdGlwbHlpbmcgYnkgdHdvLgotICAgIGludGVybmFscy5zZXRJbnNw
ZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhkb2N1bWVudCwgMiozMDAsIDIqMjAwKTsKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMo
MiozMDAsIDIqMjAwKTsKIAogICAgIC8vIEhlcmUgd2UgdGVzdCByZXBsYWNlbWVudCBsb2dpYy4g
V2Ugc2F2ZSBmaXJzdCB0d28gcmVzb3VyY2VzIGNvbnRlbnQsCiAgICAgLy8gZGlzY2FyZCB0aGly
ZCByZXNvdXJjZSBjb250ZW50IG9uY2Ugd2Ugc2VlIGl0cyBzaXplIGV4Y2VlZHMgbGltaXQsCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdv
cmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LXhoci5odG1sCmlu
ZGV4IGZiNDc1YzFiZjcyMGNkMDhmYzVmMjFhNjhhZmE1YmUxZmYzMjNmZTguLmE4OTNkMDk2MTA1
MzIzNmMwZTBhM2Y0NTY5MTVlNzZkNDcyMDMxYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LXho
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0
d29yay1jb250ZW50LXJlcGxhY2VtZW50LXhoci5odG1sCkBAIC0xMCw3ICsxMCw3IEBAIGZ1bmN0
aW9uIGxvYWREYXRhKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBFYWNoICcqJyBz
eW1ib2wgd2lsbCB1c2UgdHdvIGJ5dGVzIGluIFN0cmluZyBvYmplY3QsIGhlbmNlIG11bHRpcGx5
aW5nIGJ5IHR3by4KLSAgICBpbnRlcm5hbHMuc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVM
aW1pdHMoZG9jdW1lbnQsIDIqMzAwLCAyKjIwMCk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKDIqMzAwLCAyKjIwMCk7CiAKICAgICAv
LyBIZXJlIHdlIHRlc3QgcmVwbGFjZW1lbnQgbG9naWMuIFdlIHNhdmUgZmlyc3QgdHdvIHJlc291
cmNlcyBjb250ZW50LAogICAgIC8vIGRpc2NhcmQgdGhpcmQgcmVzb3VyY2UgY29udGVudCBvbmNl
IHdlIHNlZSBpdHMgc2l6ZSBleGNlZWRzIGxpbWl0LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtZHJhd2luZy9hbHBoYS5o
dG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0
ZWQtZHJhd2luZy9hbHBoYS5odG1sCmluZGV4IGNhNmU4MDcyMTAzY2E2Y2IyNjFhYTBjYTZkYzE1
OTdmMmZjZmRlN2UuLjhkNDM4OTZmODMwYTk4YTE3OTFiYjBmOTg0Y2VkNmJjYTg2MzZlZGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2Vs
ZXJhdGVkLWRyYXdpbmcvYWxwaGEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL2FscGhhLmh0bWwKQEAgLTIxLDcg
KzIxLDcgQEAKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOyAvLyBU
aGlzIGlzIG9ubHkgdXNlZnVsIGFzIHBpeGVsIHRlc3QuCiAKICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgd2luZG93LmludGVybmFscy5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGRv
Y3VtZW50LCB0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFjY2VsZXJh
dGVkRHJhd2luZ0VuYWJsZWQodHJ1ZSk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQt
ZHJhd2luZy9zdmctZmlsdGVycy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtZHJhd2luZy9zdmctZmlsdGVycy5odG1sCmluZGV4IDNm
MWNlMjZiODc4YzYwZGI3MzdhZWY2NTEwNTJlNTU1MzBhYTEzNmEuLjVkMjdjYjdmMjBhMGIyOWYy
ZDg1MGZkNjMxMDIyYzZhZjNjMzZiNDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvc3ZnLWZpbHRlcnMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVy
YXRlZC1kcmF3aW5nL3N2Zy1maWx0ZXJzLmh0bWwKQEAgLTYsNyArNiw3IEBACiAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsgLy8gVGhpcyBpcyBvbmx5IHVzZWZ1bCBh
cyBwaXhlbCB0ZXN0LgogCiAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CisgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKHRy
dWUpOwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvZm9yY2UtY29t
cG9zaXRlLWVtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3Np
dGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL2ZvcmNlLWNvbXBvc2l0ZS1lbXB0eS5odG1sCmlu
ZGV4IDkwOTgxYTY3ZjY4MDQyOGE0NGRkMDlmZmM0M2VjOTllNDZjYWZkNmQuLjhhMWRjMTY3NjE1
ZDVmZTIxYTg1NGY3YzgzNWI2ODAwMjU2ZDQ0MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvZm9yY2Ut
Y29tcG9zaXRlLWVtcHR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9mb3JjZS1jb21wb3NpdGUtZW1wdHku
aHRtbApAQCAtMiw4ICsyLDggQEAKICAgPGhlYWQ+CiAgICAgPHNjcmlwdD4KICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUoZG9jdW1lbnQsIHRydWUpOwotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhkb2N1bWVudCwgdHJ1ZSk7Cisg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
dHJ1ZSk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKHRydWUpOwogICAgICAgfQogICAgICAgZnVuY3Rpb24g
ZG9UZXN0KCkgewogICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3Jj
ZS1jb21wb3NpdGluZy1tb2RlL25vLW92ZXJmbG93LWlmcmFtZS1sYXllci5odG1sIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9k
ZS9uby1vdmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbAppbmRleCBkNjVlZTgwNzA3MzEzYmM0YzVh
OWVjMjFjMzI5MWM1OThiOTBmNDcxLi4xNzM4Mzk4NTYyYjE4ZGY2ODdmNTk5NjQxMTMxMGM5YjI4
Y2FiYjMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3Np
dGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL25vLW92ZXJmbG93LWlmcmFtZS1sYXllci5odG1s
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNv
bXBvc2l0aW5nLW1vZGUvbm8tb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwKQEAgLTE2LDggKzE2
LDggQEAKICAgICB9CiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBkb1Rlc3Qs
IGZhbHNlKTsKICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgaW50ZXJuYWxzLnNl
dEZvcmNlQ29tcG9zaXRpbmdNb2RlKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgIGludGVybmFscy5z
ZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoZG9jdW1lbnQsIHRydWUpOwor
ICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOwor
ICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJs
ZUZyYW1lcyh0cnVlKTsKICAgICB9CiAgIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRp
bmctbW9kZS9vdmVyZmxvdy1oaWRkZW4taWZyYW1lLWxheWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJm
bG93LWhpZGRlbi1pZnJhbWUtbGF5ZXIuaHRtbAppbmRleCBhZmUzNWU0MTEyZTNiOTM3ZmFhNWMy
NzBiNDBhMjllMzI2NTFmMGU2Li42Yjg1MTY4MDA5ZTYwZjc0NjhmNzVlNjUzMmVmZjM5N2QxNThl
NmViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGlu
Zy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWhpZGRlbi1pZnJhbWUtbGF5ZXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1j
b21wb3NpdGluZy1tb2RlL292ZXJmbG93LWhpZGRlbi1pZnJhbWUtbGF5ZXIuaHRtbApAQCAtOCw4
ICs4LDggQEAKICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KICAgICBpZiAod2luZG93LmludGVybmFs
cykgewotICAgICAgaW50ZXJuYWxzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGRvY3VtZW50LCB0
cnVlKTsKLSAgICAgIGludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVG
cmFtZXMoZG9jdW1lbnQsIHRydWUpOworICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZvcmNl
Q29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyh0cnVlKTsKICAgICB9CiAgICAgZnVuY3Rp
b24gZG9UZXN0KCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1l
bnRlci1jb21wb3NpdGluZy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtZW50ZXItY29t
cG9zaXRpbmcuaHRtbAppbmRleCBkMzM1N2ZkYTRlNzY4MjE3NmFmM2E4YmUxZWFjOTUwYzM5NjFk
MDU4Li5hZjE5YzVhOTczNWY5NDQ1NWQ0ZGQxYWI0ZmE0N2I0NDU1ZjEyYzc2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3Np
dGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1lbnRlci1jb21wb3NpdGluZy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5n
LW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWVudGVyLWNvbXBvc2l0aW5nLmh0bWwKQEAgLTgsOCArOCw4
IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
LSAgICAgIGludGVybmFscy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShkb2N1bWVudCwgdHJ1ZSk7
Ci0gICAgICBpbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVz
KGRvY3VtZW50LCB0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZUNvbXBv
c2l0aW5nTW9kZSh0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21w
b3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXModHJ1ZSk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGRv
VGVzdCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGF5ZXIu
aHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNv
bXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwKaW5kZXggYTRjNGEyMjAz
MzY4NmQyZDQ3MzJjYWJlOWYxODQ2MGYyNWMwM2I2My4uNDJiMmQ3MDJmMTFjZmViZjIzZDU5MWNl
MmY4MDRjNDBjYTZiNDQ1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGF5
ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9m
b3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sYXllci5odG1sCkBAIC04LDgg
KzgsOCBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7Ci0gICAgICBpbnRlcm5hbHMuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZG9jdW1lbnQsIHRy
dWUpOwotICAgICAgaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZy
YW1lcyhkb2N1bWVudCwgdHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rm9yY2VD
b21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKHRydWUpOwogICAgIH0KICAgICBmdW5jdGlv
biBkb1Rlc3QoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxl
YXZlLWNvbXBvc2l0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21w
b3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sZWF2ZS1jb21w
b3NpdGluZy5odG1sCmluZGV4IGJlZTNiMGE5MWYzNTI2MzU5YmVlZDA3NTA4YzA0YTc1MWRmNTdh
OWYuLjkxMWMwYTJmNmQ2NzA1YzcyNDdhY2NlMTkzYmFjZWVmZGUyNTIyZDQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0
aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxlYXZlLWNvbXBvc2l0aW5nLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmct
bW9kZS9vdmVyZmxvdy1pZnJhbWUtbGVhdmUtY29tcG9zaXRpbmcuaHRtbApAQCAtOCw4ICs4LDgg
QEAKICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KICAgICBpZiAod2luZG93LmludGVybmFscykgewot
ICAgICAgaW50ZXJuYWxzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGRvY3VtZW50LCB0cnVlKTsK
LSAgICAgIGludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMo
ZG9jdW1lbnQsIHRydWUpOworICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZvcmNlQ29tcG9z
aXRpbmdNb2RlKHRydWUpOworICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyh0cnVlKTsKICAgICB9CiAgICAgZnVuY3Rpb24gZG9U
ZXN0KCkKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123760</attachid>
            <date>2012-01-24 10:18:06 -0800</date>
            <delta_ts>2012-01-25 09:16:32 -0800</delta_ts>
            <desc>Updated to ToT for catching up new tests</desc>
            <filename>bug-76424-20120125031804.patch</filename>
            <type>text/plain</type>
            <size>99614</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI2OWIxZjc1YjYyNGVh
ODMyNDNhYjNjNTAwNDJiYzFjYzdjZTA5ZC4uYWU1Njg4ODhjMDRjYzZmNTNkYzBlMDVkZTE0ZTlm
NjcyMjczM2Y0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTAxLTIzICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtSZWZhY3RvcmluZ11b
SW50ZXJuYWxzXSBTaG91bGQgaGF2ZSBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQyNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGV4dHJhY3RlZCBzZXR0
aW5nIHJlbGF0ZWQgbWV0aG9kIGZyb20gd2luZG93LmludGVybmFscworICAgICAgICB0byB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzIG9iamVjdC4KKyAgICAgICAgLSBJbnZva2VkIEludGVybmFs
czo6cmVzZXQoKSBpbiB0aGUgY29uc3RydWN0b3IgdG8gZW1wbG95IERvY3VtZW50IG9iamVjdC4K
KyAgICAgICAgLSBNb3ZlZCBzZXR0aW5nIGFuZCBjb25maWd1cmF0aW9uIHJlbGF0ZWQgSW50ZXJu
YWxzIG1ldGhvZHMgdG8KKyAgICAgICAgICBuZXdseSBpbnRyb2R1Y2VkIEludGVybmFsU2V0dGlu
Z3Mgb2JqZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6fkludGVybmFsU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6SW50ZXJuYWxTZXR0
aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXR0aW5ncyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpkb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpwYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsU2V0dGluZ3M6OnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRmlsdGVy
c0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
U2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZVNjcm9s
bEFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFpvb21B
bmltYXRvclRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpz
ZXRab29tUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpz
ZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0
aW5nczo6c2V0UGFzc3dvcmRFY2hvRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bFNldHRpbmdzOjpzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVs
YXRpdmVUb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFVu
aWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0
dGluZ3M6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsU2V0dGluZ3M6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbFNldHRpbmdzOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxTZXR0aW5nczo6c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNl
dCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6c2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAg
ICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJD
b3JlVGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09iamVjdCk6CisgICAgICAgICogdGVzdGlu
Zy92OC9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0
OjppbmplY3RJbnRlcm5hbHNPYmplY3QpOgorCiAyMDEyLTAxLTI0ICBNYXJpbyBTYW5jaGV6IFBy
YWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZWZhY3RvciBHVEsn
cyBhY2Nlc3NpYmlsaXRpdHkgY29kZSB0byBiZSBtb3JlIG1vZHVsYXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDE3ZDNjYzFkZDZkZmRhYTk1ZmYwNWQ4ODQ4ZWJmMWFlNDE3MDQ4
ZjMuLmI5MzQ2Y2NkMzIxNWY2NzM2MTM1NWVkYTExNzcxMzYzYzkwNjlhODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTI0LDYgKzUyNCw3IEBAIEJJTkRJTkdfSURMUyA9IFwK
ICAgICAkKFdlYkNvcmUpL3N2Zy9TVkdab29tQW5kUGFuLmlkbCBcCiAgICAgJChXZWJDb3JlKS9z
dmcvU1ZHWm9vbUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL0ludGVybmFscy5p
ZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBcCiAgICAg
JChXZWJDb3JlKS93ZWJhdWRpby9BdWRpb0J1ZmZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvd2ViYXVkaW8v
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKaW5k
ZXggYzc2YTQ3MGFjNDFhYzkwMzA1YTZiNGNkYTQ1NGU3ZjFiZDc3MmYxYi4uZjkwMzgyY2FiMTlj
ODdlMGUyODEyNGExNGYwOTgxNmZiMDczMjVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
aQpAQCAtNDAxLDYgKzQwMSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0Qvc3RvcmFn
ZS9TUUxUcmFuc2FjdGlvblN5bmMuaWRsIFwKICAgICAkJFBXRC9zdG9yYWdlL1NRTFRyYW5zYWN0
aW9uU3luY0NhbGxiYWNrLmlkbCBcCiAgICAgJCRQV0QvdGVzdGluZy9JbnRlcm5hbHMuaWRsIFwK
KyAgICAkJFBXRC90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIFwKICAgICAkJFBXRC93ZWJh
dWRpby9BdWRpb0J1ZmZlci5pZGwgXAogICAgICQkUFdEL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291
cmNlTm9kZS5pZGwgXAogICAgICQkUFdEL3dlYmF1ZGlvL0F1ZGlvQ2hhbm5lbE1lcmdlci5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAyNGVlNzRkYWRlYjYxMzcxNzNkNzRhMzI3ZGVkODYy
NGQ3MTM4ZjlhLi5hODQ5YzIwYWE2OGI2NWZiZjJiYmI1YzdhMTcwOTBiZjVjYTY3MzU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtNzQ3LDYgKzc0Nyw3IEBAIElETF9QQVRIIDo9IFwKICAgICAk
KFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2NzcyBcCiAgICAgJChXZWJD
b3JlKS9kb20gXAorICAgICQoV2ViQ29yZSkvZG9tL3Rlc3RpbmcgXAogICAgICQoV2ViQ29yZSkv
ZmlsZWFwaSBcCiAgICAgJChXZWJDb3JlKS9odG1sIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2Fu
dmFzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDZlN2ExMzRlZGZjZTFlMjZj
OTAwMGYwNjY2NTE3OWUwMDhlZmRiNjAuLjE1MDdjYjM3OTNiNjc5MDQwNzZlMWNlMDIzYmNjOWE2
ZTFjYmFkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtOTEyLDYgKzkxMiw3
IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvc3RvcmFnZS9TdG9yYWdlLmlk
bCBcCiAJJChXZWJDb3JlKS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwgXAogCSQoV2ViQ29yZSkv
dGVzdGluZy9JbnRlcm5hbHMuaWRsIFwKKwkkKFdlYkNvcmUpL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwgXAogCSQoV2ViQ29yZSkvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbCBcCiAJJChX
ZWJDb3JlKS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaWRsIFwKIAkkKFdlYkNvcmUpL3dlYmF1
ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGNmOTI5MWFh
MzNhOTE5Nzg4MGQxYzZmNDhiNjFiODg5MWQzMmU1OWIuLjNkOGEwNjExMjA0MWNmNDNkOGQwZTRj
ZWZmYzVmMGU1MTU2NmRmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTMwMiw2ICsxMzAyLDcgQEAgU09V
UkNFUyArPSBcCiAgICAgc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwIFwKICAgICBzdG9y
YWdlL1N0b3JhZ2VUcmFja2VyLmNwcCBcCiAgICAgdGVzdGluZy9JbnRlcm5hbHMuY3BwIFwKKyAg
ICB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIFwKICAgICB4bWwvRE9NUGFyc2VyLmNwcCBc
CiAgICAgeG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAgXAogICAgIHhtbC9YTUxIdHRwUmVx
dWVzdC5jcHAgXApAQCAtMjcxMSw2ICsyNzEyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgc3ZnL1NW
R1pvb21BbmRQYW4uaCBcCiAgICAgc3ZnL1NWR1pvb21FdmVudC5oIFwKICAgICB0ZXN0aW5nL0lu
dGVybmFscy5oIFwKKyAgICB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBcCiAgICAgd29ya2Vy
cy9BYnN0cmFjdFdvcmtlci5oIFwKICAgICB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQu
aCBcCiAgICAgd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IDBjZmQwZTQxMDQ4Yjc0MmI5ZWU2NDE2MmRhMDBm
MGM4MWFhMTMzNGQuLmM1ZTgzZmM1ZTA3ZjgzNjJjOGViYTdiNWQyMGQyYmU3Y2U4MGM5NGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC0yMDM0LDYgKzIwMzQsOCBA
QAogICAgICAgICAnPEAod2ViY29yZV90ZXN0X3N1cHBvcnRfZmlsZXMpJywKICAgICAgICAgJzwo
U0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmNvcmUvYmluZGluZ3MvVjhJbnRlcm5hbHMuY3Bw
JywKICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5kaW5ncy9W
OEludGVybmFscy5oJywKKyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmNv
cmUvYmluZGluZ3MvVjhJbnRlcm5hbFNldHRpbmdzLmNwcCcsCisgICAgICAgICc8KFNIQVJFRF9J
TlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MvVjhJbnRlcm5hbHNTZXR0aW5ncy5oJywK
ICAgICAgIF0sCiAgICAgICAnc291cmNlcy8nOiBbCiAgICAgICAgIFsnZXhjbHVkZScsICd0ZXN0
aW5nL2pzJ10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjkzOTc4NmY3Y2M1YzY2ZDg2NmFjODllZmQy
NDc5ZGM3YzY3N2Q0ZS4uNjZiZWYxMDM4MGEyN2Q1YTc3NmFiNmMwMGRhMjVjMTQzMmYxYmJkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTk4Miw2ICs1OTgyLDcgQEAKICAgICAgICAgXSwKICAgICAg
ICAgJ3dlYmNvcmVfdGVzdF9zdXBwb3J0X2lkbF9maWxlcyc6IFsKICAgICAgICAgICAndGVzdGlu
Zy9JbnRlcm5hbHMuaWRsJywKKyAgICAgICAgICAndGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlk
bCcsCiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX3Rlc3Rfc3VwcG9ydF9maWxlcyc6IFsK
ICAgICAgICAgICAgICd0ZXN0aW5nL3Y4L1Y4SW50ZXJuYWxzQ3VzdG9tLmNwcCcsCkBAIC01OTky
LDYgKzU5OTMsOCBAQAogICAgICAgICAgICAgJ3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
LmgnLAogICAgICAgICAgICAgJ3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCcsCiAgICAgICAgICAgICAn
dGVzdGluZy9JbnRlcm5hbHMuaCcsCisgICAgICAgICAgICAndGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcCcsCisgICAgICAgICAgICAndGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgnLAogICAg
ICAgICBdLAogICAgICAgICAnd2ViY29yZV9yZXNvdXJjZV9maWxlcyc6IFsKICAgICAgICAgICAg
ICdFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVUZXN0U3VwcG9ydC52Y3Byb2oKaW5kZXgg
M2ZjMmI1NGVlODcxM2I0NjJhY2VkNDkxZGU0MGQ2ZDRiZWM0YzlmOC4uMDYwNmFkZTc0MDZiN2Nl
NmU2ZDIyMzJkYTgzODg0ZmUzZjQ4ZjEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlVGVzdFN1cHBvcnQudmNwcm9qCkBAIC00MTUsNiArNDE1
LDc0IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdl
YkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNJbnRlcm5hbHMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxX
ZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAiCisJCQkJPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBp
bGVkSGVhZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0
NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJ
CQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJ
CQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURp
c2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlG
b3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJRGlzYWJs
ZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNl
ZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4z
MiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2Fybmlu
Z3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0i
JChOT0lOSEVSSVQpIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21w
aWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7
NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxE
ZXJpdmVkU291cmNlc1xKU0ludGVybmFsU2V0dGluZ3MuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJ
CTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJ0ZXN0aW5nIgpAQCAtNDg4LDYgKzU1Niw3
NCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlx0
ZXN0aW5nXEludGVybmFsU2V0dGluZ3MuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJ
CQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJ
CQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxl
YXNlfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lm
aWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVk
ZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJu
aW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVz
PSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdz
PSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQo
Tk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxl
ZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2
NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJ
CQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgor
CQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlx0ZXN0aW5nXEludGVybmFsU2V0dGluZ3MuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cdGVzdGluZ1xqc1xXZWJDb3JlVGVzdFN1cHBvcnQu
Y3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMWNmMmUzMjJiN2EzOGZm
MjM1OGFiMTUwMGQxNWU1ODU1NTk3NzE4Li43ZjY2ZTI2ZmE3NWQ2OWVkMGMzNWQ4YTY4MTEwYjll
NWYyNWU5ZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zNTIwLDYgKzM1MjAsOCBAQAogCQlBNzIzRjc3QjE0ODRDQTRDMDA4
QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9y
bUV4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZF
MDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3NDBC
NUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRDOTM0ODQwMEM4RjVC
RiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKKwkJQTc0MEI1QTcxNEM5MzVBRjAwQTc3
RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5h
bFNldHRpbmdzLmNwcCAqLzsgfTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2Vw
dGlvbkNvZGVQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3
NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4
OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwICovOyB9OwpAQCAtMzU1NSw2ICszNTU3LDggQEAKIAkJQTdCNkU2
OUYwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0Rh
dGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
N0JCRTI2NjExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkJFMjY0MTFBRkIzRjIw
MDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwICovOyB9OwogCQlBN0JCRTI2NzExQUZC
M0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JCRTI2NTExQUZCM0YyMDAwNUVBMDMgLyogSlNI
VE1MTWV0ZXJFbGVtZW50LmggKi87IH07CisJCUE3QkY3RURGMTRDOTE3NUEwMDE0NDg5RCAvKiBJ
bnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3QkY3RURDMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmNw
cCAqLzsgfTsKKwkJQTdCRjdFRTAxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkY3RURE
MTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggKi87IH07CiAJCUE3QzlBQkY4
MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0M5QUJGNjEzNTdBM0JGMDBGNTUw
M0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwICovOyB9OwogCQlBN0M5QUJGOTEzNTdBM0JG
MDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QzlBQkY3MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRh
aWxzTWFya2VyQ29udHJvbC5oICovOyB9OwogCQlBN0NBNTk1RDBCMjdCRDlFMDBGQTAyMUQgLyog
RHJhZ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3Q0E1OTVCMEIyN0JEOUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDM4NSw5ICsx
MDM4OSwxNCBAQAogCQlBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGlua0hhc2guaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTdCMDcwRDAxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lQWN0
aW9uU2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCMDcwRDEx
MzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lQWN0aW9uU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE3QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0
dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnRlcm5h
bFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCNEVBNzkxNEM5
MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0ludGVybmFsU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTdCNkU2OUQwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdEYXRhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3QkJFMjY0MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MTWV0ZXJFbGVt
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCQkUyNjUxMUFGQjNGMjAw
MDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0hUTUxNZXRlckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTdCRjdFREMxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50ZXJuYWxTZXR0aW5ncy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkY3RUREMTRDOTE3NUEwMDE0NDg5RCAvKiBJ
bnRlcm5hbFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGVy
bmFsU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCRjdFREUxNEM5
MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEludGVybmFsU2V0dGluZ3MuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
N0M5QUJGNjEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV0YWlsc01hcmtlckNvbnRyb2wuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0M5QUJGNzEzNTdBM0JGMDBGNTUwM0Yg
LyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGV0YWlsc01hcmtlckNvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTdDQTU5NUIwQjI3QkQ5RTAwRkEwMjFEIC8qIERyYWdDb250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNDI3OCw2ICsxNDI4Nyw5IEBACiAJCQkJNDE3REE0Q0YxMzczNDMyNjAw
N0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi8sCiAJCQkJNDE3REE0Q0UxMzczNDMyNjAwN0M1N0ZC
IC8qIEludGVybmFscy5oICovLAogCQkJCTQxODEzRjkxMTM4MThBRDYwMDU3QUFBNCAvKiBJbnRl
cm5hbHMuaWRsICovLAorCQkJCUE3QkY3RURDMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNl
dHRpbmdzLmNwcCAqLywKKwkJCQlBN0JGN0VERDE0QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxT
ZXR0aW5ncy5oICovLAorCQkJCUE3QkY3RURFMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNl
dHRpbmdzLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGVzdGluZzsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC0xNDI4Nyw2ICsxNDI5OSw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQk0MTdEQTcxQjEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwICovLAogCQkJCTQx
N0RBNzFDMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oICovLAorCQkJCUE3QjRFQTc4
MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwICovLAorCQkJCUE3QjRF
QTc5MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gVGVzdGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMDk0Miw3
ICsyMDk1Niw5IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMg
PSAoCiAJCQkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTdCRjdFRTAxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxN0RBNzFFMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVy
bmFscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpT
SW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MTVDMUYxMzgzMTk4MzAw
NTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yNDM5NSw5ICsyNDQx
MSwxMSBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAog
CQkJCTQxN0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQTdCRjdFREYxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3REE3MUQxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJu
YWxzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxODE1QzFFMTM4MzE5ODMwMDU3QUFBNCAvKiBX
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMzBDQkMxNEMxMEVE
OTAwRjZCNzAyIC8qIEpTSW50ZXJuYWxzQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3
NDBCNUE3MTRDOTM1QUYwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDE4MTVDMUUxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9y
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4ODkxYmVjMjRiOGExMGQ4MTU5NjAyMGNmOWU5NzA2MWY5
YWUyY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsMjc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkludGVybmFsU2V0dGluZ3MuaCIKKworI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKKyNpbmNs
dWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworI2lmIEVOQUJMRShHRVNUVVJF
X0VWRU5UUykKKyNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVFdmVudC5oIgorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKKyNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgor
I2VuZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisjaW5jbHVkZSAiQ29sb3JDaG9vc2Vy
LmgiCisjZW5kaWYKKworI2RlZmluZSBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElO
R1NfUkVUVVJOKHJldHVyblZhbHVlKSBcCisgICAgaWYgKCFzZXR0aW5ncygpKSB7IFwKKyAgICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7IFwKKyAgICAgICAgcmV0dXJuIHJldHVyblZhbHVl
OyBcCisgICAgfQorCisjZGVmaW5lIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5H
UygpICBcCisgICAgaWYgKCFzZXR0aW5ncygpKSB7IFwKKyAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7IFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgfQorCisjZGVmaW5lIElOVEVSTkFM
X1NFVFRJTkdTX0dVQVJEX0ZPUl9GUkFNRSgpIFwKKyAgICBpZiAoIWZyYW1lKCkpIHsgXAorICAg
ICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsgXAorICAgICAgICByZXR1cm47IFwKKyAgICB9
CisKKyNkZWZpbmUgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX0ZSQU1FVklFVygpIFwKKyAg
ICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnZpZXcoKSkgeyBcCisgICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOyBcCisgICAgICAgIHJldHVybjsgXAorICAgIH0KKworI2RlZmluZSBJ
TlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfUEFHRV9SRVRVUk4ocmV0dXJuVmFsdWUpIFwKKyAg
ICBpZiAoIXBhZ2UoKSkgeyBcCisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOyBcCisg
ICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsgXAorICAgIH0KKworI2RlZmluZSBJTlRFUk5BTF9T
RVRUSU5HU19HVUFSRF9GT1JfUEFHRSgpIFwKKyAgICBpZiAoIXBhZ2UoKSkgeyBcCisgICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOyBcCisgICAgICAgIHJldHVybjsgXAorICAgIH0KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisKK1Bhc3NSZWZQdHI8SW50ZXJuYWxTZXR0aW5ncz4gSW50
ZXJuYWxTZXR0aW5nczo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgSW50ZXJuYWxTZXR0aW5ncyogb2xk
KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW50ZXJuYWxTZXR0aW5ncyhmcmFtZSwgb2xk
KSk7Cit9CisKK0ludGVybmFsU2V0dGluZ3M6On5JbnRlcm5hbFNldHRpbmdzKCkKK3sKK30KKwor
SW50ZXJuYWxTZXR0aW5nczo6SW50ZXJuYWxTZXR0aW5ncyhGcmFtZSogZnJhbWUsIEludGVybmFs
U2V0dGluZ3MqIG9sZCkKKyAgICA6IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihmcmFtZSkKKyAg
ICAsIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXAoMCkKKyAgICAsIG1fcGFz
c3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcChmYWxzZSkKKyAgICAsIG1fcGFzc3dv
cmRFY2hvRW5hYmxlZEJhY2tlZFVwKGZhbHNlKQoreworICAgIGlmIChvbGQgJiYgc2V0dGluZ3Mo
KSkgeworICAgICAgICBpZiAob2xkLT5tX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFj
a2VkVXApCisgICAgICAgICAgICBzZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9EdXJhdGlvbklu
U2Vjb25kcyhvbGQtPm1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXApOworICAg
ICAgICBpZiAob2xkLT5tX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrZWRVcCkKKyAgICAgICAgICAg
IHNldHRpbmdzKCktPnNldFBhc3N3b3JkRWNob0VuYWJsZWQob2xkLT5tX3Bhc3N3b3JkRWNob0Vu
YWJsZWRCYWNrdXApOworICAgIH0KK30KKworU2V0dGluZ3MqIEludGVybmFsU2V0dGluZ3M6OnNl
dHRpbmdzKCkgY29uc3QKK3sKKyAgICBpZiAoIWZyYW1lKCkgfHwgIWZyYW1lKCktPnBhZ2UoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGZyYW1lKCktPnBhZ2UoKS0+c2V0dGluZ3Mo
KTsKK30KKworRG9jdW1lbnQqIEludGVybmFsU2V0dGluZ3M6OmRvY3VtZW50KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZnJhbWUoKSA/IGZyYW1lKCktPmRvY3VtZW50KCkgOiAwOworfQorCitQYWdl
KiBJbnRlcm5hbFNldHRpbmdzOjpwYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQo
KSA/IGRvY3VtZW50KCktPnBhZ2UoKSA6IDA7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoaW50IG1heGltdW1SZXNvdXJjZXND
b250ZW50U2l6ZSwgaW50IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmICghcGFnZSgpIHx8
ICFwYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBwYWdlKCktPmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS0+c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKG1h
eGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNp
emUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXpl
KTsKKyAgICBVTlVTRURfUEFSQU0obWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpOwor
ICAgIFVOVVNFRF9QQVJBTShlYyk7CisjZW5kaWYKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdz
OjpzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNl
dHRpbmdzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGVuYWJsZWQpOworfQorCit2b2lkIElu
dGVybmFsU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1Jf
U0VUVElOR1MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVk
KGVuYWJsZWQpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0
aW5nRm9yRml4ZWRQb3NpdGlvbihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRpbmdz
KCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZChlbmFi
bGVkKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVDb21wb3NpdGluZ0Zv
clNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElOR1MoKTsKKyAgICBzZXR0aW5ncygp
LT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lc0VuYWJsZWQoZW5h
YmxlZCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5n
RW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVSTkFM
X1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRpbmdzKCktPnNldEFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5n
czo6c2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBJTlRFUk5BTF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElOR1MoKTsKKyNpZiBF
TkFCTEUoU01PT1RIX1NDUk9MTElORykKKyAgICBzZXR0aW5ncygpLT5zZXRFbmFibGVTY3JvbGxB
bmltYXRvcihlbmFibGVkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworI2Vu
ZGlmCit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3Jt
KGZsb2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQgdHksIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9GUkFNRSgpOworCisjaWYgRU5BQkxFKEdF
U1RVUkVfRVZFTlRTKQorICAgIFBsYXRmb3JtR2VzdHVyZUV2ZW50IHBnZShQbGF0Zm9ybUV2ZW50
OjpHZXN0dXJlRG91YmxlVGFwLCBJbnRQb2ludCh0eCwgdHkpLCBJbnRQb2ludCh0eCwgdHkpLCAw
LCBzY2FsZSwgMC5mLCAwLCAwLCAwLCAwKTsKKyAgICBmcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+
aGFuZGxlR2VzdHVyZUV2ZW50KHBnZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzY2FsZSk7
CisgICAgVU5VU0VEX1BBUkFNKHR4KTsKKyAgICBVTlVTRURfUEFSQU0odHkpOworI2VuZGlmCit9
CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Wm9vbVBhcmFtZXRlcnMoZmxvYXQgc2NhbGUs
IGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVSTkFMX1NF
VFRJTkdTX0dVQVJEX0ZPUl9GUkFNRVZJRVcoKTsKKworI2lmIEVOQUJMRShTTU9PVEhfU0NST0xM
SU5HKQorICAgIGZyYW1lKCktPnZpZXcoKS0+c2Nyb2xsQW5pbWF0b3IoKS0+c2V0Wm9vbVBhcmFt
ZXRlcnNGb3JUZXN0KHNjYWxlLCB4LCB5KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNjYWxl
KTsKKyAgICBVTlVTRURfUEFSQU0oeCk7CisgICAgVU5VU0VEX1BBUkFNKHkpOworI2VuZGlmCit9
CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSU5URVJOQUxfU0VUVElOR1NfR1VB
UkRfRk9SX1NFVFRJTkdTKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0TW9ja1Njcm9sbGJhcnNFbmFi
bGVkKGVuYWJsZWQpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBhc3N3b3JkRWNo
b0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJTlRFUk5B
TF9TRVRUSU5HU19HVUFSRF9GT1JfU0VUVElOR1MoKTsKKyAgICBpZiAoIW1fcGFzc3dvcmRFY2hv
RW5hYmxlZEJhY2tlZFVwKSB7CisgICAgICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2t1cCA9
IHNldHRpbmdzKCktPnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKKyAgICAgICAgbV9wYXNzd29yZEVj
aG9FbmFibGVkQmFja2VkVXAgPSB0cnVlOworICAgIH0KKyAgICBzZXR0aW5ncygpLT5zZXRQYXNz
d29yZEVjaG9FbmFibGVkKGVuYWJsZWQpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNl
dFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcywg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX1NF
VFRJTkdTKCk7CisgICAgaWYgKCFtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja2Vk
VXApIHsKKyAgICAgICAgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2t1cCA9IHNl
dHRpbmdzKCktPnBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKCk7CisgICAgICAgIG1fcGFz
c3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcCA9IHRydWU7CisgICAgfQorICAgIHNl
dHRpbmdzKCktPnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGR1cmF0aW9uSW5TZWNv
bmRzKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVs
ZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX0ZSQU1FVklFVygpOworICAgIGZyYW1l
KCktPnZpZXcoKS0+c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShl
bmFibGVkKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRVbmlmaWVkVGV4dENoZWNr
aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVS
TkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRpbmdzKCktPnNldFVu
aWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jvb2wgSW50ZXJuYWxTZXR0
aW5nczo6dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9SX1NFVFRJTkdTX1JFVFVSTihmYWxzZSk7Cisg
ICAgcmV0dXJuIHNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKTsKK30KKwor
ZmxvYXQgSW50ZXJuYWxTZXR0aW5nczo6cGFnZVNjYWxlRmFjdG9yKEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIElOVEVSTkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9QQUdFX1JFVFVSTigwKTsKKyAg
ICByZXR1cm4gcGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKK30KKwordm9pZCBJbnRlcm5hbFNl
dHRpbmdzOjpzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQg
eSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSU5URVJOQUxfU0VUVElOR1NfR1VBUkRfRk9S
X1BBR0UoKTsKKyAgICBwYWdlKCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3RvciwgSW50
UG9pbnQoeCwgeSkpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBlclRpbGVEcmF3
aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElOVEVS
TkFMX1NFVFRJTkdTX0dVQVJEX0ZPUl9TRVRUSU5HUygpOworICAgIHNldHRpbmdzKCktPnNldFBl
clRpbGVEcmF3aW5nRW5hYmxlZChlbmFibGVkKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMWFhMDRhMTUxMGJiMmEwZDMyZWM0
ZjdlYjVjNjFmZjc3NTZjYjgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
SW50ZXJuYWxTZXR0aW5nc19oCisjZGVmaW5lIEludGVybmFsU2V0dGluZ3NfaAorCisjaW5jbHVk
ZSAiRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworY2xhc3Mg
U2V0dGluZ3M7CisKK2NsYXNzIEludGVybmFsU2V0dGluZ3MgOiBwdWJsaWMgUmVmQ291bnRlZDxJ
bnRlcm5hbFNldHRpbmdzPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgRnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnRl
cm5hbFNldHRpbmdzPiBjcmVhdGUoRnJhbWUqLCBJbnRlcm5hbFNldHRpbmdzKiBvbGQpOworICAg
IHZpcnR1YWwgfkludGVybmFsU2V0dGluZ3MoKTsKKworICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVz
b3VyY2VzRGF0YVNpemVMaW1pdHMoaW50IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50
IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplLCBFeGNlcHRpb25Db2RlJik7CisgICAg
dm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9y
U2Nyb2xsYWJsZUZyYW1lcyhib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBl
bmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zv
cm0oZmxvYXQgc2NhbGUsIGZsb2F0IHR4LCBmbG9hdCB0eSwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZvaWQgc2V0Wm9vbVBhcmFtZXRlcnMoZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFBhc3N3b3JkRWNob0VuYWJsZWQo
Ym9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9E
dXJhdGlvbkluU2Vjb25kcyhkb3VibGUgZHVyYXRpb25JblNlY29uZHMsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB2b2lkIHNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUo
Ym9vbCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0Vu
YWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworICAgIGJvb2wgdW5pZmllZFRleHRDaGVja2lu
Z0VuYWJsZWQoRXhjZXB0aW9uQ29kZSYpOworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcihFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0
b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UGVyVGlsZURy
YXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgor
ICAgIEludGVybmFsU2V0dGluZ3MoRnJhbWUqLCBJbnRlcm5hbFNldHRpbmdzKiBvbGQpOworCisg
ICAgU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkg
Y29uc3Q7CisgICAgUGFnZSogcGFnZSgpIGNvbnN0OworCisgICAgZG91YmxlIG1fcGFzc3dvcmRF
Y2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXA7CisgICAgYm9vbCBtX3Bhc3N3b3JkRWNob0VuYWJs
ZWRCYWNrdXAgOiAxOworICAgIGJvb2wgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0Jh
Y2tlZFVwIDogMTsKKyAgICBib29sIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwIDogMTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MWE3NzA4OTRjZmZjM2Rj
NTQ1MDQwYWI3ZGEzZDViMGU3NDc1NTI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMCwwICsxLDQ5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIHdpbmRvdyB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgT21pdENvbnN0cnVjdG9y
CisgICAgXSBJbnRlcm5hbFNldHRpbmdzIHsKKyAgICAgICAgdm9pZCBzZXRJbnNwZWN0b3JSZXNv
dXJjZXNEYXRhU2l6ZUxpbWl0cyhpbiBsb25nIG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwg
aW4gbG9uZyBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRFbmFibGVDb21w
b3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVG
cmFtZXMoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
dm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2
b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGluIGZs
b2F0IHNjYWxlLCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQgdHkpIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgICAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKGluIGZsb2F0IHNjYWxlLCBpbiBmbG9h
dCB4LCBpbiBmbG9hdCB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRN
b2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGluIGJvb2xlYW4gZW5h
YmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hv
RHVyYXRpb25JblNlY29uZHMoaW4gZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVs
YXRpdmVUb0ZyYW1lKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFi
bGVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGJvb2xlYW4gdW5pZmllZFRleHRD
aGVja2luZ0VuYWJsZWQoKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGZsb2F0IHBh
Z2VTY2FsZUZhY3RvcigpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldFBh
Z2VTY2FsZUZhY3RvcihpbiBmbG9hdCBzY2FsZUZhY3RvciwgaW4gbG9uZyB4LCBpbiBsb25nIHkp
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIH07Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCA3ZTQ4MWNhNTdiMmIwNzZhOTA4MDFmZDBjNDliOGIwYzRhY2M5ZDk1
Li5jMGVmMmRiNjc2NDEwMTk2ZDU5ZjkwODExYjI3NDMxZmYyNDA1OTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3Bl
Y3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJJbnRlcm5hbFNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRl
cmluZ0NvbnRleHQuaCIKQEAgLTEwNCwyMSArMTA1LDE5IEBAIHN0YXRpYyBTcGVsbENoZWNrZXIq
IHNwZWxsY2hlY2tlcihEb2N1bWVudCogZG9jdW1lbnQpCiAKIGNvbnN0IGNoYXIqIEludGVybmFs
czo6aW50ZXJuYWxzSWQgPSAiaW50ZXJuYWxzIjsKIAotUGFzc1JlZlB0cjxJbnRlcm5hbHM+IElu
dGVybmFsczo6Y3JlYXRlKCkKK1Bhc3NSZWZQdHI8SW50ZXJuYWxzPiBJbnRlcm5hbHM6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnRlcm5h
bHMpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW50ZXJuYWxzKGRvY3VtZW50KSk7CiB9CiAK
IEludGVybmFsczo6fkludGVybmFscygpCiB7CiB9CiAKLUludGVybmFsczo6SW50ZXJuYWxzKCkK
K0ludGVybmFsczo6SW50ZXJuYWxzKERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IEZyYW1lRGVz
dHJ1Y3Rpb25PYnNlcnZlcigwKQotICAgICwgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25k
c0JhY2t1cCgwKQotICAgICwgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVw
KGZhbHNlKQotICAgICwgbV9wYXNzd29yZEVjaG9FbmFibGVkQmFja2VkVXAoZmFsc2UpCiB7Cisg
ICAgcmVzZXQoZG9jdW1lbnQpOwogfQogCiBib29sIEludGVybmFsczo6aXNQcmVsb2FkZWQoRG9j
dW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHVybCkKQEAgLTIyNiwxNyArMjI1LDYgQEAg
dm9pZCBJbnRlcm5hbHM6OnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoRWxlbWVudCogZWxlbWVu
dCwgY29uc3QgU3RyaW5nJiBjb2xvclYKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKElOU1BFQ1RP
UikKLXZvaWQgSW50ZXJuYWxzOjpzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhE
b2N1bWVudCogZG9jdW1lbnQsIGludCBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGludCBt
YXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0g
ICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSB8fCAhZG9jdW1lbnQtPnBhZ2Uo
KS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1Nf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGRvY3VtZW50LT5wYWdlKCktPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS0+c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxz
KG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVu
dFNpemUpOwotfQotI2VuZGlmCi0KIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gSW50ZXJuYWxzOjpi
b3VuZGluZ0JveChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBp
ZiAoIWVsZW1lbnQpIHsKQEAgLTI4NiwxNDEgKzI3NCw2IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IElu
dGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFy
a2VyCiAgICAgcmV0dXJuIFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSwgbWFy
a2Vyc1tpbmRleF0tPnN0YXJ0T2Zmc2V0KCksIG5vZGUsIG1hcmtlcnNbaW5kZXhdLT5lbmRPZmZz
ZXQoKSk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShEb2N1
bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAg
aWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVu
dC0+c2V0dGluZ3MoKS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZW5hYmxlZCk7Ci19Ci0KLXZv
aWQgSW50ZXJuYWxzOjpzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oRG9jdW1l
bnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlm
ICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9jdW1lbnQt
PnNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5h
YmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yU2Nyb2xsYWJsZUZyYW1lcyhEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRp
bmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwotfQotCi12b2lkIElu
dGVybmFsczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQs
IGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8
fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+
c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBJbnRlcm5h
bHM6OnNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRv
Y3VtZW50LT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldEFj
Y2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpz
ZXRFbmFibGVTY3JvbGxBbmltYXRvcihEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNl
dHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAgICBkb2N1bWVu
dC0+c2V0dGluZ3MoKS0+c2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoZW5hYmxlZCk7Ci0jZWxzZQot
ICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKLSNlbmRpZgotfQotCi12b2lkIEludGVybmFsczo6
c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKERvY3VtZW50ICpkb2N1bWVudCwgZmxvYXQgc2NhbGUs
IGZsb2F0IHR4LCBmbG9hdCB0eSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1
bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSB8fCAhZG9jdW1lbnQtPnZpZXcoKS0+ZnJhbWUoKSkg
ewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSAgICBQbGF0Zm9ybUdlc3R1cmVFdmVu
dCBwZ2UoUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcCwgSW50UG9pbnQodHgsIHR5KSwg
SW50UG9pbnQodHgsIHR5KSwgMCwgc2NhbGUsIDAuZiwgMCwgMCwgMCwgMCk7Ci0gICAgZG9jdW1l
bnQtPnZpZXcoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChw
Z2UpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2NhbGUpOwotICAgIFVOVVNFRF9QQVJBTSh0
eCk7Ci0gICAgVU5VU0VEX1BBUkFNKHR5KTsKLSNlbmRpZgotfQotCi12b2lkIEludGVybmFsczo6
c2V0Wm9vbVBhcmFtZXRlcnMoRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9hdCBzY2FsZSwgZmxvYXQg
eCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAh
ZG9jdW1lbnQtPnZpZXcoKSB8fCAhZG9jdW1lbnQtPnZpZXcoKS0+ZnJhbWUoKSkgewotICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lm
IEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQotICAgIGRvY3VtZW50LT52aWV3KCktPnNjcm9sbEFu
aW1hdG9yKCktPnNldFpvb21QYXJhbWV0ZXJzRm9yVGVzdChzY2FsZSwgeCwgeSk7Ci0jZWxzZQot
ICAgIFVOVVNFRF9QQVJBTShzY2FsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAgIFVOVVNF
RF9QQVJBTSh5KTsKLSNlbmRpZgotfQotCi12b2lkIEludGVybmFsczo6c2V0TW9ja1Njcm9sbGJh
cnNFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
JiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewot
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoZW5h
YmxlZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRQYXNzd29yZEVjaG9FbmFibGVkKERvY3Vt
ZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBp
ZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghbV9w
YXNzd29yZEVjaG9FbmFibGVkQmFja2VkVXApIHsKLSAgICAgICAgbV9wYXNzd29yZEVjaG9FbmFi
bGVkQmFja3VwID0gZG9jdW1lbnQtPnNldHRpbmdzKCktPnBhc3N3b3JkRWNob0VuYWJsZWQoKTsK
LSAgICAgICAgbV9wYXNzd29yZEVjaG9FbmFibGVkQmFja2VkVXAgPSB0cnVlOwotICAgIH0KLSAg
ICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChlbmFibGVkKTsK
LX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKERv
Y3VtZW50KiBkb2N1bWVudCwgZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzLCBFeGNlcHRpb25Db2Rl
JiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewot
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGlmICghbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKSB7Ci0g
ICAgICAgIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXAgPSBkb2N1bWVudC0+
c2V0dGluZ3MoKS0+cGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoKTsKLSAgICAgICAgbV9w
YXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwID0gdHJ1ZTsKLSAgICB9Ci0gICAg
ZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGR1
cmF0aW9uSW5TZWNvbmRzKTsKLX0KLQogdm9pZCBJbnRlcm5hbHM6OnNldFNjcm9sbFZpZXdQb3Np
dGlvbihEb2N1bWVudCogZG9jdW1lbnQsIGxvbmcgeCwgbG9uZyB5LCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygpKSB7CkBAIC00Njks
MTcgKzMyMiw3IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldChEb2N1bWVudCogZG9jdW1lbnQpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG9ic2VydmVGcmFtZShkb2N1bWVudC0+ZnJhbWUoKSk7Ci0K
LSAgICBpZiAobV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKSB7Ci0gICAg
ICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25k
cyhtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja3VwKTsKLSAgICAgICAgbV9wYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwID0gZmFsc2U7Ci0gICAgfQotCi0gICAg
aWYgKG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwKSB7Ci0gICAgICAgIGRvY3VtZW50LT5z
ZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9FbmFibGVkKG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJh
Y2t1cCk7Ci0gICAgICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwID0gZmFsc2U7Ci0g
ICAgfQotCisgICAgbV9zZXR0aW5ncyA9IEludGVybmFsU2V0dGluZ3M6OmNyZWF0ZShkb2N1bWVu
dC0+ZnJhbWUoKSwgbV9zZXR0aW5ncy5nZXQoKSk7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1
bWVudC0+cGFnZSgpKQogICAgICAgICBwYWdlLT5zZXRQYWdpbmF0aW9uKFBhZ2U6OlBhZ2luYXRp
b24oKSk7CiB9CkBAIC01OTEsNTYgKzQzNCw2IEBAIHVuc2lnbmVkIEludGVybmFsczo6bGVuZ3Ro
RnJvbVJhbmdlKEVsZW1lbnQqIHNjb3BlLCBjb25zdCBSYW5nZSogcmFuZ2UsIEV4Y2VwdGlvCiAg
ICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OnNldFNob3VsZExheW91dEZp
eGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50
LT52aWV3KCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGRvY3VtZW50LT52aWV3
KCk7Ci0gICAgZnJhbWVWaWV3LT5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVU
b0ZyYW1lKGVuYWJsZWQpOwotfQotCi12b2lkIEludGVybmFsczo6c2V0VW5pZmllZFRleHRDaGVj
a2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpIHx8ICFk
b2N1bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LT5mcmFtZSgp
LT5zZXR0aW5ncygpLT5zZXRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKGVuYWJsZWQpOwotfQot
Ci1ib29sIEludGVybmFsczo6dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRv
Y3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCkpIHsKLSAgICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCktPnVuaWZpZWRUZXh0
Q2hlY2tlckVuYWJsZWQoKTsKLX0KLQotZmxvYXQgSW50ZXJuYWxzOjpwYWdlU2NhbGVGYWN0b3Io
RG9jdW1lbnQgKmRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3Vt
ZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1Nf
RVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZG9jdW1lbnQtPnBh
Z2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRQYWdlU2Nh
bGVGYWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgsIGlu
dCB5LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVu
dC0+cGFnZSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGRvY3VtZW50LT5wYWdlKCktPnNldFBhZ2VTY2FsZUZhY3Rvcihz
Y2FsZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOwotfQotCiBpbnQgSW50ZXJuYWxzOjpsYXN0U3Bl
bGxDaGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIFNwZWxsQ2hlY2tlciogY2hlY2tlciA9IHNwZWxsY2hlY2tlcihkb2N1bWVu
dCk7CkBAIC02NjUsMTYgKzQ1OCw2IEBAIGludCBJbnRlcm5hbHM6Omxhc3RTcGVsbENoZWNrUHJv
Y2Vzc2VkU2VxdWVuY2UoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlCiAgICAgcmV0
dXJuIGNoZWNrZXItPmxhc3RQcm9jZXNzZWRTZXF1ZW5jZSgpOwogfQogCi12b2lkIEludGVybmFs
czo6c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVu
dC0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRQZXJUaWxl
RHJhd2luZ0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIFZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6
dXNlclByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdlYkNvcmU6OnVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4
IDNlMjgxYmRlMTI5OTllYTM5NzkyNzUwYjc3MzIyNDE3NDg5M2RjZjIuLjA0ODk5ZmE4MDg5NGM2
NWFjNGY3NWU5NzIyODg4YzgzMTIzNzA1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDbGllbnRSZWN0
OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OworY2xhc3MgSW50ZXJuYWxTZXR0aW5n
czsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsKIGNsYXNzIFNoYWRvd1Jvb3Q7CkBAIC00Niw3
ICs0Nyw3IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiBjbGFzcyBJbnRlcm5hbHMgOiBw
dWJsaWMgUmVmQ291bnRlZDxJbnRlcm5hbHM+LAogICAgICAgICAgICAgICAgICAgcHVibGljIEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SW50ZXJuYWxzPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnRlcm5hbHM+IGNy
ZWF0ZShEb2N1bWVudCopOwogICAgIHZpcnR1YWwgfkludGVybmFscygpOwogCiAgICAgdm9pZCBy
ZXNldChEb2N1bWVudCopOwpAQCAtNzIsMzIgKzczLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
bGVjdENvbG9ySW5Db2xvckNob29zZXIoRWxlbWVudCosIGNvbnN0IFN0cmluZyYgY29sb3JWYWx1
ZSk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgdm9pZCBzZXRJbnNwZWN0
b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhEb2N1bWVudCosIGludCBtYXhpbXVtUmVzb3VyY2Vz
Q29udGVudFNpemUsIGludCBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSwgRXhjZXB0
aW9uQ29kZSYpOwotI2Vsc2UKLSAgICB2b2lkIHNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXpl
TGltaXRzKERvY3VtZW50KiwgaW50IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50IG1h
eGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplLCBFeGNlcHRpb25Db2RlJikgeyB9Ci0jZW5k
aWYKLQogICAgIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gYm91bmRpbmdCb3goRWxlbWVudCosIEV4
Y2VwdGlvbkNvZGUmKTsKIAogICAgIHVuc2lnbmVkIG1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiwg
Y29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IG1h
cmtlclJhbmdlRm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKIAotICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoRG9jdW1lbnQqLCBi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0
aW5nRm9yRml4ZWRQb3NpdGlvbihEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKERv
Y3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRBY2Nl
bGVyYXRlZERyYXdpbmdFbmFibGVkKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKERvY3VtZW50Kiwg
Ym9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICB2b2lkIHNldEVuYWJsZVNjcm9s
bEFuaW1hdG9yKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
dm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oRG9jdW1lbnQqLCBmbG9hdCBzY2FsZSwgZmxv
YXQgdHgsIGZsb2F0IHR5LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRab29tUGFyYW1l
dGVycyhEb2N1bWVudCosIGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRpb25D
b2RlJik7Ci0KLSAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChEb2N1bWVudCosIGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotCi0gICAgdm9pZCBzZXRQYXNzd29yZEVjaG9F
bmFibGVkKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9p
ZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhEb2N1bWVudCosIGRvdWJsZSBkdXJh
dGlvbkluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYpOwotCiAgICAgdm9pZCBzZXRTY3JvbGxWaWV3
UG9zaXRpb24oRG9jdW1lbnQqLCBsb25nIHgsIGxvbmcgeSwgRXhjZXB0aW9uQ29kZSYpOwogCiAg
ICAgdm9pZCBzZXRQYWdpbmF0aW9uKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBtb2RlLCBpbnQg
Z2FwLCBFeGNlcHRpb25Db2RlJik7CkBAIC0xMTIsMzEgKzkyLDIxIEBAIHB1YmxpYzoKICAgICBQ
YXNzUmVmUHRyPFJhbmdlPiByYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aChFbGVtZW50KiBzY29w
ZSwgaW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxlbmd0aCwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHVuc2lnbmVkIGxvY2F0aW9uRnJvbVJhbmdlKEVsZW1lbnQqIHNjb3BlLCBjb25zdCBSYW5n
ZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25lZCBsZW5ndGhGcm9tUmFuZ2UoRWxlbWVu
dCogc2NvcGUsIGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0U2hv
dWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShEb2N1bWVudCosIGJvb2wsIEV4
Y2VwdGlvbkNvZGUmKTsKLQotICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQo
RG9jdW1lbnQqLCBib29sLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9vbCB1bmlmaWVkVGV4dENo
ZWNraW5nRW5hYmxlZChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGludCBsYXN0
U3BlbGxDaGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBpbnQgbGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZShEb2N1bWVudCosIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICAKLSAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQqLCAgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKERvY3VtZW50KiwgZmxv
YXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYpOwotCi0gICAgdm9p
ZCBzZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKLQogICAgIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
KSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mKTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAorICAg
IEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0aW5ncy5n
ZXQoKTsgfQorCiBwcml2YXRlOgotICAgIEludGVybmFscygpOworICAgIGV4cGxpY2l0IEludGVy
bmFscyhEb2N1bWVudCopOwogCi0gICAgZG91YmxlIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNl
Y29uZHNCYWNrdXA7Ci0gICAgYm9vbCBtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrdXAgOiAxOwot
ICAgIGJvb2wgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwIDogMTsKLSAg
ICBib29sIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVwIDogMTsKKyAgICBSZWZQdHI8SW50
ZXJuYWxTZXR0aW5ncz4gbV9zZXR0aW5nczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA4NzQ4NTc5MmRkNjIzODA3MzMx
ODRkMWU2NDQ3YzdhMDkxN2UxMjhhLi44ZDJmMWQ1YTQwNzFkNGIwZWQ0MTI0M2MyZmQxNTk0ZDU5
OWZjOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC00OCwyNSArNDgs
MTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2VsZWN0Q29sb3JJbkNvbG9yQ2hv
b3NlcihpbiBFbGVtZW50IGVsZW1lbnQsIGluIERPTVN0cmluZyBjb2xvclZhbHVlKTsKICNlbmRp
ZgogCi0gICAgICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoaW4g
RG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgbWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplLCBp
biBsb25nIG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKLQogICAgICAgICBDbGllbnRSZWN0IGJvdW5kaW5nQm94KGluIEVsZW1lbnQgZWxlbWVu
dCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWFya2VyQ291
bnRGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3RyaW5nIG1hcmtlclR5cGUpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgICAgICBSYW5nZSBtYXJrZXJSYW5nZUZvck5vZGUoaW4gTm9kZSBu
b2RlLCBpbiBET01TdHJpbmcgbWFya2VyVHlwZSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9k
ZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRp
b24oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxl
RnJhbWVzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
aW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChpbiBEb2N1
bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihpbiBEb2N1bWVudCBkb2N1bWVu
dCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9p
ZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0
IHNjYWxlLCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQgdHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwot
ICAgICAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBm
bG9hdCBzY2FsZSwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
Ci0gICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIERvY3VtZW50IGRvY3Vt
ZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAgICAg
IHZvaWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9v
bGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRQYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZG91Ymxl
IGR1cmF0aW9uSW5TZWNvbmRzKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLQogICAgICAgICB2b2lk
IHNldFNjcm9sbFZpZXdQb3NpdGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyB4LCBp
biBsb25nIHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQgc2V0UGFnaW5h
dGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRE9NU3RyaW5nIG1vZGUsIGluIGxvbmcgZ2Fw
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTgzLDE3ICs2OCwxMiBAQCBtb2R1bGUgd2luZG93
IHsKICAgICAgICAgdW5zaWduZWQgbG9uZyBsb2NhdGlvbkZyb21SYW5nZShpbiBFbGVtZW50IHNj
b3BlLCBpbiBSYW5nZSByYW5nZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICB1bnNp
Z25lZCBsb25nIGxlbmd0aEZyb21SYW5nZShpbiBFbGVtZW50IHNjb3BlLCBpbiBSYW5nZSByYW5n
ZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0
Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9v
bGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRVbmlm
aWVkVGV4dENoZWNraW5nRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGJvb2xlYW4gdW5pZmllZFRl
eHRDaGVja2luZ0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKLQogICAgICAgICBsb25nIGxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNlKGluIERv
Y3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGxvbmcgbGFz
dFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZShpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2Vz
IChET01FeGNlcHRpb24pOwogCi0gICAgICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcihpbiBEb2N1
bWVudCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0UGFn
ZVNjYWxlRmFjdG9yKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBmbG9hdCBzY2FsZUZhY3Rvciwg
aW4gbG9uZyB4LCBpbiBsb25nIHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwotCiAgICAgICAgIGF0
dHJpYnV0ZSBbQ3VzdG9tXSBBcnJheSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOworCisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBJbnRlcm5hbFNldHRpbmdzIHNldHRpbmdzOwogICAgIH07CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNw
cAppbmRleCA4YTc5NWJmMmY2YjNhY2M3MTNlMjA1YjM3YzM5Y2ViNzdmOWExNWRhLi4xZDJhNDU3
NWIzNzc3Zjg4MzE2YjZiYTVmOWEzYzhhYWJlYTEwN2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAj
aW5jbHVkZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAKICNpbmNsdWRlICJJbnRlcm5hbHMuaCIK
LSNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJKU0ludGVybmFscy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNh
c3QuaD4KQEAgLTQzLDcgKzQyLDkgQEAgdm9pZCBpbmplY3RJbnRlcm5hbHNPYmplY3QoSlNDb250
ZXh0UmVmIGNvbnRleHQpCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsK
ICAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQpOwogICAgIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0gICAgZ2xvYmFsT2JqZWN0LT5wdXREaXJlY3QoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBJZGVudGlmaWVyKGV4ZWMsIEludGVybmFsczo6aW50ZXJuYWxzSWQp
LCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgSW50ZXJuYWxzOjpjcmVhdGUoKSkpOworICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBnbG9iYWxPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzY3JpcHRDb250
ZXh0LT5pc0RvY3VtZW50KCkgPyBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHNjcmlwdENvbnRleHQp
IDogMDsKKyAgICBnbG9iYWxPYmplY3QtPnB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIElk
ZW50aWZpZXIoZXhlYywgSW50ZXJuYWxzOjppbnRlcm5hbHNJZCksIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBJbnRlcm5hbHM6OmNyZWF0ZShkb2N1bWVudCkpKTsKIH0KIAogdm9pZCByZXNldElu
dGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvdjgvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvdjgvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCA3NjMwMmVkODJhNjlhMDAw
ZGQwNmMxMjc1MzhlZDkzZjg5MDEzYTA0Li4yOGMzNzI5ZjMzMzQ5NDYwYmYwMzcxYThkZmRhNTRk
YzZhOWM4YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL3Y4L1dlYkNvcmVU
ZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy92OC9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwCkBAIC00Miw3ICs0Miw5IEBAIHZvaWQgaW5qZWN0SW50ZXJuYWxzT2JqZWN0
KHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCkKICAgICB2ODo6Q29udGV4dDo6U2NvcGUg
Y29udGV4dFNjb3BlKGNvbnRleHQpOwogICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKIAotICAg
IGNvbnRleHQtPkdsb2JhbCgpLT5TZXQodjg6OlN0cmluZzo6TmV3KEludGVybmFsczo6aW50ZXJu
YWxzSWQpLCB0b1Y4KEludGVybmFsczo6Y3JlYXRlKCkpKTsKKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHNjcmlwdENvbnRleHQtPmlzRG9jdW1lbnQoKSA/IHN0YXRp
Y19jYXN0PERvY3VtZW50Kj4oc2NyaXB0Q29udGV4dCkgOiAwOworICAgIGNvbnRleHQtPkdsb2Jh
bCgpLT5TZXQodjg6OlN0cmluZzo6TmV3KEludGVybmFsczo6aW50ZXJuYWxzSWQpLCB0b1Y4KElu
dGVybmFsczo6Y3JlYXRlKGRvY3VtZW50KSkpOwogfQogCiB2b2lkIHJlc2V0SW50ZXJuYWxzT2Jq
ZWN0KHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYjg0ZDQzOTkwMzhiOWYzYjViYzYzZDM5
OGFlNWM3ZGZkMDljZjcyLi5iN2UyMTIyOTA0MmQyZWRjYTlhY2Y1NWYwMWM5MTY2MWExZjY3MWMy
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTItMDEtMjMgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgW1JlZmFjdG9yaW5nXVtJbnRlcm5hbHNdIFNob3VsZCBoYXZlIEludGVy
bmFsU2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgc28gbmV3IGZpbGVzLgorCiAyMDEyLTAxLTI0ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhdHRl
bXB0IGFmdGVyIHIxMDU1NDMuCmRpZmYgLS1naXQgYS9Ub29scy9HTlVtYWtlZmlsZS5hbSBiL1Rv
b2xzL0dOVW1ha2VmaWxlLmFtCmluZGV4IDkyYmI3NTU2MWVhNDVjMTRiY2Y4OTg3YjA0YjQ1YmJh
MDZiODI4NDQuLmQwNDdmMDhhMGI2ZDQ0NjM2NjAxYTZiY2ZlNGQ0YTE2NzI1MmZmZDAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCkBA
IC00MywxMyArNDMsMTggQEAgbGliV2ViQ29yZUludGVybmFsc19sYV9TT1VSQ0VTID0gXAogCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmggXAorCVNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL2pzL0pTSW50ZXJuYWxzQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oCiAKIGxpYndlYmNvcmVpbnRlcm5hbHNfYnVpbHRf
c291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ludGVybmFscy5jcHAgXAot
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJbnRlcm5hbHMuaAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNJbnRlcm5hbHMuaCAgIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSW50ZXJu
YWxTZXR0aW5ncy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJbnRlcm5hbFNldHRp
bmdzLmgKKwogbm9kaXN0X2xpYldlYkNvcmVJbnRlcm5hbHNfbGFfU09VUkNFUyA9ICQobGlid2Vi
Y29yZWludGVybmFsc19idWlsdF9zb3VyY2VzKQogQlVJTFRfU09VUkNFUyArPSAkKGxpYndlYmNv
cmVpbnRlcm5hbHNfYnVpbHRfc291cmNlcykKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIzZTY1NzZkZDU0MGJlNzRiMjhh
NjIzMjQ2YTllN2IyNWY4ODU4MGMuLmQ2YjRmNzcxYWNhZmY5ZWIxMWY5YTc1ZDNiMzRlZmRhYzAx
NjljNjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAorMjAxMi0wMS0yNCAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBbUmVmYWN0b3JpbmddW0ludGVybmFsc10g
U2hvdWxkIGhhdmUgSW50ZXJuYWxTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MjQKKworICAgICAgICBVcGRhdGVkIHRvIGZvbGxvdyBB
UEkgcmVjZWl2ZXIgY2hhbmdlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXN3aXRjaC5odG1s
OgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDoK
KyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRj
aGlsZC1pbm5lci5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3Jlc291cmNlcy9tb2NrX3Nj
cm9sbGJhcnMuanM6CisgICAgICAgICogY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1y
ZWN1cnNpb24uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2lucHV0L3Jlc291cmNlcy9wYXNzd29y
ZC1lY2hvLmpzOgorICAgICAgICAoaW5pdCk6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLWFzeW5jLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVs
bGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQv
c2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9t
L0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Rv
bS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9pZnJhbWUtaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9k
b20vd2luZG93LWlubmVyLXNpemUtc2NhbGluZy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjYWxl
LWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2Fs
ZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
Y2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Njcmlw
dC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanM6CisgICAgICAgIChpZnJh
bWVMb2FkZWQpOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxl
ZC1tb3VzZS1jbGljay5qczoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVk
LXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWw6CisgICAgICAgICogZmFz
dC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sOgorICAgICAgICAqIGZhc3QvZnJh
bWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2lm
cmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
YmFja2dyb3VuZC1zY2FsaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLWlu
LXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90
dG9tLWluLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtcmln
aHQtaW4tcGFnZS1zY2FsZS5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zY2FsZS1wYWdl
LXNocmluay5odG1sOgorICAgICAgICAqIGZhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRz
LWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrLXRlc3QuanM6CisgICAgICAgIChyZXNldEluc3BlY3RvclJlc291cmNlc0RhdGEp
OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50
LXJlcGxhY2VtZW50LWVtYmVkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQteGhyLmh0bWw6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtZHJhd2luZy9hbHBoYS5o
dG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVk
LWRyYXdpbmcvc3ZnLWZpbHRlcnMuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL2ZvcmNlLWNvbXBvc2l0ZS1lbXB0eS5o
dG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBv
c2l0aW5nLW1vZGUvbm8tb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWw6CisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxv
dy1oaWRkZW4taWZyYW1lLWxheWVyLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtZW50ZXIt
Y29tcG9zaXRpbmcuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGlu
Zy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sYXllci5odG1sOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1v
ZGUvb3ZlcmZsb3ctaWZyYW1lLWxlYXZlLWNvbXBvc2l0aW5nLmh0bWw6CisKIDIwMTItMDEtMjQg
IENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVu
cmV2aWV3ZWQgZ2FyZGVuaW5nLiBVbnNraXAgbm93IHBhc3NpbmcgdGVzdHMgYW5kIGFkZC91cGRh
dGUgcGxhdGZvcm0gc3BlY2lmaWMgZXhwZWN0ZWQgZmlsZXMgZm9yIHRoZW0uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAppbmRleCAz
NzcxZjVlNzNlOGFjZjA2YmMwZWM3Y2IyMmY3MTZiOWMxYTJiZGY5Li5hOGU4NGFjNmMyZTdmOTcx
OTFkMzA1NDkwMWFkZWNlNDYwZmU2MThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTE5LDggKzE5LDggQEAKIDxzY3Jp
cHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0g
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlv
bihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZh
Y3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKHRydWUpOworICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC41LCAwLCAwKTsKICAg
ICB9CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUu
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCmluZGV4IDBjNTg1NDFhZmMwNzEyYzk5OGQ4YzRjOWUw
OWQ5MDc2OTY5MDUzYmEuLjUzMjdhMThmYWM3ZGQ1NjBkYzBhZjdkYjg5NWM3ZjY5ZDE3MzNlZGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBA
IC0xOSw4ICsxOSw4IEBACiA8c2NyaXB0PgogICBmdW5jdGlvbiBzY2FsZSgpIHsKICAgICBpZiAo
d2luZG93LmludGVybmFscykgewotICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21w
b3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRp
b24odHJ1ZSk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZh
Y3RvcigyLCAwLCAwKTsKICAgICB9CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21w
b3NpdGVkLXN3aXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4
ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1zd2l0Y2guaHRtbAppbmRleCBkMTk5N2UzYjUwZmYzMTll
NWU2ZmZjMWM3YmYwMWRlN2QyYWYzMDZiLi5kYWFkOWM5ZDIyYjlhYzI1OTZjYTU4NTM4MDczY2Rl
MTVkNTUxYjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXN3aXRjaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtc3dpdGNoLmh0bWwK
QEAgLTE5LDcgKzE5LDcgQEAKICAgPC9zdHlsZT4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KICAgICBpZiAod2luZG93LmludGVybmFscykgCi0gICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihk
b2N1bWVudCwgdHJ1ZSk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbih0cnVlKTsKIAogICAgIGZ1bmN0aW9uIGRvVGVz
dCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAppbmRleCAzYzcyNWRhZTE0MWQ1YTNjNTdlNWE2
NDI0MWM1NjkwMWI0MDhmZjAzLi5lYTMwMjNlN2EwNGQ5YzZkOGY5NzY1OGNhNTJhOTlkYzdiNDA1
M2RhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApAQCAtMTksOCArMTksOCBAQAogPHNjcmlwdD4KICAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgd2lu
ZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1l
bnQsIHRydWUpOwotICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9j
dW1lbnQsIDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVu
YWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbih0cnVlKTsKKyAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDAuNSwgMCwgMCk7CiAgICAgfQogICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZy
YW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCmluZGV4IDE2YWIwNzUxY2JkMDMwZjI0ZWNj
YWQxZjU3NjEwMWYwODU0ZDYzNjEuLjQwZGQ3NDMwOWQ1OTIxMTdiYTA5MjJlZTcyMDUwYTZkNjk0
YmNiMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTE5LDggKzE5LDggQEAKIDxzY3JpcHQ+CiAgIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVl
KTsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAy
LCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JGaXhlZFBvc2l0aW9uKHRydWUpOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAgICAgfQogICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zv
cm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAppbmRleCA0NWNlMDM1ZjI5MjI5NDYw
ZTMzNDI3ODBjYmY0YzFmYjU2ZWMyMzY2Li5jMTFlZGRiNWNmODMzNjNiN2M2MDhkNmM1NWE0M2Rk
YTUwMTBkMTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFu
c2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApAQCAtMjEsOCArMjEsOCBAQAog
PHNjcmlwdD4KICAgZnVuY3Rpb24gc2NhbGUoKSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBv
c2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNj
YWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7CisgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDAp
OwogICAgIH0KICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAppbmRleCBk
Zjg2NjdiMWEyNGQ5M2VkMjMxOWM5YzQ5NWExNTk3NmNhZDhkYWRkLi40ZTk5YzhlYjNiMjc5Y2Rm
ZGY0YjI5NGY5ODUwNGNmODQ0NjQyZjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0yMSw4ICsyMSw4
IEBACiA8c2NyaXB0PgogICBmdW5jdGlvbiBzY2FsZSgpIHsKICAgICBpZiAod2luZG93LmludGVy
bmFscykgewotICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZp
eGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgICAgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7Cisg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAw
KTsKICAgICB9CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jlc291cmNlcy9zY3JvbGxn
cmFuZGNoaWxkLWlubmVyLmh0bWwKaW5kZXggYzQyYTVmMTIzZmI2MzVjYzIwNzA3NGExMjE4YTZl
YzI2NzZhMzVhMi4uYjBjMTAzYjczNjQwZjVlZjYwN2E5ZTUxZDJlNDc4MzUxYzdmODgwYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xs
Z3JhbmRjaGlsZC1pbm5lci5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hpbGQtaW5uZXIuaHRtbApAQCAtMjMsNyArMjMsNyBA
QAogICA8L3N0eWxlPgogICA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
ICAgd2luZG93LmludGVybmFscy5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoZG9jdW1lbnQsIHRy
dWUpOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRNb2NrU2Nyb2xsYmFyc0Vu
YWJsZWQodHJ1ZSk7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL3Jlc291cmNlcy9tb2NrX3Njcm9sbGJhcnMuanMgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9yZXNvdXJjZXMvbW9ja19zY3JvbGxiYXJzLmpzCmluZGV4IDc0MjhmYmFhMGZmOTIw
NDAyMzE1N2EzM2Q1Yjk5MjI0Yzc0MTFjMDEuLjcxYmRmNzAzZDdjY2JjMTAyMmQ0N2UzYjBhZWQ2
ZDcwNjJkOGM1NGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jlc291cmNl
cy9tb2NrX3Njcm9sbGJhcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVzb3Vy
Y2VzL21vY2tfc2Nyb2xsYmFycy5qcwpAQCAtMSwzICsxLDMgQEAKIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7Ci0gIHdpbmRvdy5pbnRlcm5hbHMuc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGRvY3Vt
ZW50LCB0cnVlKTsKKyAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRNb2NrU2Nyb2xsYmFy
c0VuYWJsZWQodHJ1ZSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9z
Y2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbAppbmRleCAzOTlkMGUwZjA0NmVi
NGFhZjE4YTUzZjFlYTNlMTBjZDJlYmJiZjZlLi5mZDMyMWEzODQzMmM1ZWEyMmY2MzdkMDg3YjAz
ZDcxMDI3MDI3Y2UyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5n
L3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3NjYWxpbmcvdGlsZWQtbGF5ZXItcmVjdXJzaW9uLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAKICAg
ICBmdW5jdGlvbiBzY2FsZVBhZ2UoKQogICAgIHsKICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwg
MS41MDAyNSwgMCwgMCk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFn
ZVNjYWxlRmFjdG9yKDEuNTAwMjUsIDAsIDApOwogICAgIH0KICAgCiAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBzY2FsZVBhZ2UsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvaW5wdXQvcmVzb3VyY2VzL3Bhc3N3b3JkLWVjaG8uanMgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2lucHV0L3Jlc291cmNlcy9wYXNzd29yZC1lY2hvLmpzCmluZGV4IDc5NDVl
MTA1YzQwOWE0ZjlkZjFiOTk2OTIxZDlkODNiNDk2ZWU5NjMuLmE3NjQxYzA3OGNjNGQ3OTdiODEy
YTA1YTNiYWEzOTNlNTBiNmNhMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5w
dXQvcmVzb3VyY2VzL3Bhc3N3b3JkLWVjaG8uanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9p
bnB1dC9yZXNvdXJjZXMvcGFzc3dvcmQtZWNoby5qcwpAQCAtODAsOCArODAsOCBAQCBmdW5jdGlv
biBpbml0KHRlc3RzKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFzc3dvcmRFY2hvRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGRvY3VtZW50LCAwLjEp
OworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYXNzd29yZEVjaG9F
bmFibGVkKHRydWUpOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQ
YXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcygwLjEpOwogICAgICAgICAgICAgdGVzdG5vZGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdG5vZGUnKTsKICAgICAgICAgICAgIHJ1bih0
ZXN0cywgLTEpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sCmluZGV4IDE2NzE0MDJl
YTY1ZmEyNjhlZWNkNjE5N2RlYWU0YTVhMWMzMTcxMDkuLmU2MTQ0YTkxOGI5YmQ1M2IwYTIyMzIy
MjA2OTM3NTMyOWNkNTBmYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlvbi5odG1sCkBAIC0zNiw3ICszNiw3
IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKIH0KIAogaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRv
Y3VtZW50LCB0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVj
a2luZ0VuYWJsZWQodHJ1ZSk7CiAKIHZhciBzb3VyY2VJZHMgPSBbJ3NvdXJjZSddOwogdmFyIGRl
c3RFbGVtcyA9IFsndGV4dGFyZWEnLCAnaW5wdXQnLCAnY29udGVudGVkaXRhYmxlJ107CkBAIC03
Nyw3ICs3Nyw3IEBAIGZ1bmN0aW9uIGRvVGVzdElmQW55KCkgewogICAgIHJlbW92ZUFsbENoaWxk
cmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb3ZlLXRhcmdldCcpKTsKIAogICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2lu
Z0VuYWJsZWQoZG9jdW1lbnQsIGZhbHNlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGZhbHNlKTsKIAogICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMuaHRtbAppbmRleCA3MjcwYTMzNTA4
NTBkYjU1Yjc5ZTA0NjgyNTkzZWQzMDYwZGYwYWVkLi42MTE0NGQ3ZDM4YTI4NWQ1NTYwMjM0MmU4
OWJiNzhkMzRjNDczYjJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stYXN5bmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stYXN5bmMuaHRtbApAQCAtMjcsNyArMjcsNyBAQCBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CiB9CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVy
bmFscy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKHRydWUpOwog
CiB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwog
ZnVuY3Rpb24gcmVtb3ZlQ2hpbGRyZW4obm9kZSkgewpAQCAtNTcsNyArNTcsNyBAQCBmdW5jdGlv
biBkb1Rlc3RJZkFueSgpIHsKICAgICAvLyBObyBtb3JlIHRlc3RzLgogICAgIHJlbW92ZUNoaWxk
cmVuKGNvbnRhaW5lcik7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIGludGVy
bmFscy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChkb2N1bWVudCwgZmFsc2UpOworICAg
ICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZmFs
c2UpOwogCiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChm
YWxzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5n
LXVuaWZpZWQtZW11bGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKaW5kZXggMmE5ZWViN2JjMjAwMWFiODgzNGU2
OWVmODg5ODRlNjMxNWU2NjA1ZS4uNDhmY2ZjZjBhMzUyZGE3MWE3NTEyMDhhOGMyNWVhYmYxZmNj
ZjY5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11
bmlmaWVkLWVtdWxhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRtbApAQCAtMzEsNyArMzEsNyBAQCBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiB9CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1
ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVk
KHRydWUpOwogCiB2YXIgdGVzdERhdGEgPSBbCiAgICAgeyB0ZXh0OiAnenonLCBtYXJrZWQ6IFsn
enonXSB9LApAQCAtODUsNyArODUsNyBAQCBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3REYXRhLmxl
bmd0aDsgKytpKSB7CiB9CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChkb2N1bWVudCwgZmFsc2UpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChmYWxzZSk7CiAKIHZh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3Qu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1j
bGllbnQtcmVjdC5odG1sCmluZGV4IDYwMjI4OWIzMzUxMjkxNWFlYjlkZTY1MmZlZTc1ODI5ZDA5
OWNhNzMuLjMzMGI1NTc3YTkxYWUxNjFkMjQ0MTBlZmFiYTM1ZWJjMzE0OTFlNjYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGll
bnQtcmVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFn
ZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCkBAIC05LDcgKzksNyBAQCBmdW5jdGlvbiB0ZXN0
UmVjdHMoKQogICAgIAogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2
Iik7CiAgICAgdmFyIHJlY3QgPSBkaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgd2lu
ZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwog
ICAgIHZhciBzY2FsZWRSZWN0ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogCiAgICAg
dmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVj
dHMuaHRtbAppbmRleCA4ZmEyYTMxMTA1YWE3Njg4YmMzNThlOWI1MzhkMTAzNDhjN2U4YWYzLi4x
NzZhYzA2OTE0ZDFhNzQ5ZjRlY2IwYmJhODMwMjU3Nzc2YjU1YTMwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5o
dG1sCkBAIC05LDcgKzksNyBAQCBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogICAgIAogICAgIHZhciBk
aXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7CiAgICAgdmFyIHJlY3RMaXN0ID0g
ZGl2LmdldENsaWVudFJlY3RzKCk7Ci0gICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVG
YWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogICAgIHZhciBzY2FsZWRSZWN0TGlzdCA9IGRp
di5nZXRDbGllbnRSZWN0cygpOwogCiAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXN1bHQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Jhbmdl
L3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbAppbmRleCBmMTJj
MGZkNzgzMTgzYmM1OGJiODRiMDhkNmMwODc5MjBhNWU2OWU4Li4xOGJkNmZhOTUyMzAyYmI1ODU1
YTY0NmE0ZmRhNDhhMTQzODlkYmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9S
YW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCkBA
IC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiAgICAgcmFuZ2Uuc2VsZWN0Tm9k
ZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKSk7CiAgICAgdmFyIHJlY3Qg
PSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIAotICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKKyAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAwKTsKICAgICB2YXIgc2Nh
bGVkUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgIHNjYWxlZFJhbmdlLnNlbGVj
dE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2JykpOwogICAgIHZhciBz
Y2FsZWRSZWN0ID0gc2NhbGVkUmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMu
aHRtbAppbmRleCAzZWYzNjc5NTU2MzIyM2E4Yjc0M2RiMjBkZjgwNDAxMWQ4ZmQwODEzLi5lNGNl
ZDBmN2E3ZWIxNGRlM2FiYzc3ZjVkZTJkMmZhNmY5MDgwOTE1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKQEAg
LTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAgICB2YXIgcmVjdExpc3QgPSBy
YW5nZS5nZXRDbGllbnRSZWN0cygpOwogICAgIHZhciByZWN0ID0gcmVjdExpc3RbMF07CiAgICAK
LSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwg
MCk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwg
MCwgMCk7CiAgICAgdmFyIHNjYWxlZFJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAg
ICBzY2FsZWRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2RpdicpKTsKICAgICB2YXIgc2NhbGVkUmVjdExpc3QgPSBzY2FsZWRSYW5nZS5nZXRDbGllbnRS
ZWN0cygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWZyYW1lLWlubmVyLXNp
emUtc2NhbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWZyYW1lLWlubmVyLXNpemUt
c2NhbGluZy5odG1sCmluZGV4IDEzZDFiZGVkYTM1NDhiNjgxMGY2NjUxODRmNmJlZDI4YTVkNjg1
YzkuLmIzOTA4NjIwZGY0YzE5MGE1MWYxNTFiMTBlZDdjMDcyOWY5YTQyNTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2lmcmFtZS1pbm5lci1zaXplLXNjYWxpbmcuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pZnJhbWUtaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwKQEAg
LTEwLDcgKzEwLDcgQEAKICAgICAgICAgICAgIG9yaWdpbmFsSGVpZ2h0ID0gZnJhbWUuY29udGVu
dFdpbmRvdy5pbm5lckhlaWdodDsKIAogICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9j
dW1lbnQsIDIsIDAsIDApOworICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogCiAgICAgICAgICAgICBzaG91bGRCZU5v
blplcm8oImZyYW1lLmNvbnRlbnRXaW5kb3cuaW5uZXJXaWR0aCIpOwogICAgICAgICAgICAgc2hv
dWxkQmVOb25aZXJvKCJmcmFtZS5jb250ZW50V2luZG93LmlubmVySGVpZ2h0Iik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwKaW5k
ZXggZDA3NmM1MGIzMGViMjdhY2YwYjMzYzZmMzJiZTc0OWE5NDJiYmQ5OC4uY2YxZjk4YWI5OWUz
MmMzN2ZkZDQyZGIyZDUxNDQ1ZTJlMDJmOWFlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vd2luZG93LWlubmVyLXNpemUtc2NhbGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3dpbmRvdy1pbm5lci1zaXplLXNjYWxpbmcuaHRtbApAQCAtOCw3ICs4LDcgQEAKICAg
ICAgICAgdmFyIHNjYWxlID0gMjsKIAogICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBz
Y2FsZSwgMCwgMCk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBh
Z2VTY2FsZUZhY3RvcihzY2FsZSwgMCwgMCk7CiAKICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5p
bm5lcldpZHRoIiwgIk1hdGguZmxvb3Iob3JpZ2luYWxXaWR0aCAvIHNjYWxlKSIpOwogICAgICAg
ICBzaG91bGRCZSgid2luZG93LmlubmVySGVpZ2h0IiwgIk1hdGguZmxvb3Iob3JpZ2luYWxIZWln
aHQgLyBzY2FsZSkiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxl
LWFuZC1zY3JvbGwtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5k
LXNjcm9sbC1ib2R5Lmh0bWwKaW5kZXggYTU3MGQ3OTMzZjYwYWU2OGNjN2Y5Y2EwZmQwZDUzOGM3
M2E5ZWNhMy4uOWU2ZTAwNWVlM2MwZjllOTc0MDAxY2FhMzgwYWVhYWMwZDAxYzM4MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwK
QEAgLTEwLDcgKzEwLDcgQEAKICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVl
OwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwoKSB7Ci0gICAgICAgICAgLy8gVGhlIHBhZ2Ugc2Nh
bGUsIGFzIHNldCBieSB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3RvciBzaG91bGQg
bm90IGJlIGFwcGFyZW50CisgICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvciBzaG91bGQgbm90IGJl
IGFwcGFyZW50CiAgICAgICAgICAgLy8gdG8gamF2YXNjcmlwdC4gU28sIHdlIGV4cGVjdCBzY3Jv
bGxpbmcgdG8gKDEwMCwxMDApIHRvIGJlIHBhZ2UgY29vcmRpbmF0ZXMsIHJhdGhlcgogICAgICAg
ICAgIC8vIHRoYW4gZGV2aWNlIHBpeGVscy4KICAgICAgICAgICBkb2N1bWVudC5ib2R5LnNjcm9s
bExlZnQgPSAxMDA7CkBAIC0yNiw3ICsyNiw3IEBACiAgICAgICAgICAgdmFyIHNjYWxlRmFjdG9y
ID0gMi4wOwogICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7CiAgICAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VT
Y2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNl
dCk7CisgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVG
YWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAg
fQogICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1h
bmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2Fs
ZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwKaW5kZXggODE5NWI5OWZjYWVlZmI4YWZlYTZh
MmZmYmIyNjJhYWY3ZmMyYTI4OC4uMjg0MDAyYzVhMmVhZmExNDU4OTE4OTNiMjkyMDgzYmVkMzA5
OTE5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9s
bC1pZnJhbWUtYm9keS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFu
ZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbApAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAg
dmFyIHNjYWxlRmFjdG9yID0gMC41OwogICAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsK
ICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZUZhY3Rvciwg
c2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0
LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5k
b3cuaHRtbAppbmRleCA3NzkzNTgxMmExNjUwMTJmODI1NTY2MmM5ZGVmMGM2MjdiMjA2NzI1Li5h
NzM0MmI1MjQyMjBjNTBkYTg2MjFmMGU5YjgwM2IxMTI5ZWM5MTI3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5k
b3cuaHRtbApAQCAtMjQsNyArMjQsNyBAQAogICAgICAgICAgICAgdmFyIHNjYWxlRmFjdG9yID0g
MC41OwogICAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKICAgICAgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxl
T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQ
YWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NjYWxlLWFuZC1zY3JvbGwtd2luZG93Lmh0bWwKaW5kZXggNWMzNWU2NWNjYTE4ZWE0Mjcy
MjQwOGQ0MjQyMTAyYWEwNTVjNTZiMS4uOWI0ZDM0ZjVkMTJmNTE2ODU5ZTFjNzdhYTU5NDcwYmQ4
MTc3YWVkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNj
cm9sbC13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQt
c2Nyb2xsLXdpbmRvdy5odG1sCkBAIC0xMCw3ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxl
UGl4ZWxUZXN0aW5nID0gdHJ1ZTsKIAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAg
ICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5zZXRQYWdl
U2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAorICAgICAgICAgIC8vIFRoZSBwYWdl
IHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVG
YWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAogICAgICAgICAgIC8vIHRvIGphdmFzY3JpcHQu
IFNvLCB3ZSBleHBlY3Qgc2Nyb2xsaW5nIHRvICgxMDAsMTAwKSB0byBiZSBwYWdlIGNvb3JkaW5h
dGVzLCByYXRoZXIKICAgICAgICAgICAvLyB0aGFuIGRldmljZSBwaXhlbHMuCiAgICAgICAgICAg
d2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgIHZh
ciBzY2FsZUZhY3RvciA9IDIuMDsKICAgICAgICAgICB2YXIgc2NhbGVPZmZzZXQgPSAwOwogICAg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNl
dCwgc2NhbGVPZmZzZXQpOworICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQp
OwogICAgICAgICAgIH0KICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGlj
ay1pZnJhbWUuanMKaW5kZXggMzk3ZjhkZTM3Yzg3Mzc1Y2I5NDQ0NmY1MDI0ZTVkYjc5NGVhNjEy
Mi4uZGY0NTVhMmY2ZWRiYTZlNzEwYzZlMjBhYTNiYWZkN2UwNjBiYzgwMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNs
aWNrLWlmcmFtZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMv
cGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzCkBAIC02MCwxNSArNjAsMTUgQEAgZnVu
Y3Rpb24gaWZyYW1lTG9hZGVkKCkgewogCiAgICAgdGVzdEV2ZW50cygwLCAiVW5zY2FsZWQiLCAi
Y2xpY2soMTAsIDEwKSIpOwogCi0gICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0
b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRQYWdlU2NhbGVGYWN0b3IoMC41LCAwLCAwKTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdl
U2NhbGUoMC41KSIsICJjbGljaygyMCwgMjApIik7CiAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMS4wLCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigxLjAsIDAsIDApOwogICAgIGh0bWwuc3R5
bGVbIi13ZWJraXQtdHJhbnNmb3JtIl0gPSAic2NhbGUoMC41LCAyLjApIjsKICAgICBodG1sLnN0
eWxlWyItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iXSA9ICIwIDAiOwogICAgIHRlc3RFdmVudHMo
MCwgIkNTUyBzY2FsZSgwLjUsIDIuMCkiLCAiY2xpY2soMjAsIDUpIik7CiAKLSAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwog
ICAgIHRlc3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpLCBDU1Mgc2NhbGUoMC41LCAyLjAp
IiwgImNsaWNrKDQwLCAxMCkiKTsKICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMK
aW5kZXggNDRlNjgzY2M2NGVlOWJmN2JmOTU1YTZjZjBmNzA2ODA5ZDZmNThjMy4uNzFiZjI3YWQ5
YjUwOWNhYjM4ZTcwMzlhMTIxMjdlZWVjNGNiYjc1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1j
bGljay5qcwpAQCAtNTAsNiArNTAsNiBAQCBpZiAod2luZG93LmV2ZW50U2VuZGVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKICAgICAvLyBwYXJ0cyBvZiB0aGUgZG9jdW1lbnQgYXJlIHVuZGVyIHRo
ZSBtb3VzZS4KICAgICB0ZXN0RXZlbnRzKDAsICJVbnNjYWxlZCIsICJjbGljaygxMCwgMTApIik7
CiAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41
LCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3Rv
cigwLjUsIDAsIDApOwogICAgIHRlc3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpIiwgImNs
aWNrKDIwLCAyMCkiKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nj
cm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVu
Lmh0bWwKaW5kZXggZmY2ZDJjOTkwOWY2OTJjZjRlOTg1YWU2OTZkMjNmY2ZiZWIyOTA2ZC4uNzJj
M2NjZTJjYmQ4NzU5MDIwNmUzNmExODgwYzUzNDRhOGViMGQ4NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlk
ZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1w
YWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICAgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OwogCiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1l
bnQsIDIsIDAsIDApOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQ
YWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAKICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kb2N1
bWVudC5ib2R5LnNjcm9sbFRvcCIsICIwIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xp
Y2suaHRtbAppbmRleCAwZGI5NTViMDA5OTllYjdiOWFlZTgyYWFmYzE2NzgxMGE0N2ZkODQzLi4y
ZTZkYmRkYjg1MDMyNDQzMTE5YTcwYTFjZGY4NWEzNmExN2JhYzgzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNr
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91
Y2gtZ2VzdHVyZS1jbGljay5odG1sCkBAIC04NCw3ICs4NCw3IEBAIGZ1bmN0aW9uIGVuZFRlc3Qo
KQogCiBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0g
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUs
IDAsIDApOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZh
Y3RvcigwLjUsIDAsIDApOwogICAgIH0KIAogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndG91Y2h0YXJnZXQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbAppbmRleCBhNTc4ZjUzMzEwNTMxY2Y5NzgyNTYy
OTE1MTU1NTM0YmQwY2JkNmM4Li5mYzYzNzQyNjE3MGUxNjEwMTZiMzMwNzFkODQ5OTk1NDJhZWRm
ZmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRp
b24taGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0
aW9uLWhpdC5odG1sCkBAIC05LDcgKzksNyBAQAogICAgICAgICAgICAgLy8gU2NhbGUgdGhlIHBh
Z2UgYW5kIHJlc2l6ZSB0aGUgZnJhbWVzIHRvIHZlcmlmeSBoaXQgdGVzdGluZyBvbiB0aGUgZnJh
bWVzZXQKICAgICAgICAgICAgIHZhciBsZWZ0UGFuZWxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRo
IC8gODsKICAgICAgICAgICAgIHZhciBwYW5lbEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAv
IDI7Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1
bWVudCwgMC41LCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0UGFnZVNjYWxlRmFjdG9yKDAuNSwgMCwgMCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyhwYW5lbEhlaWdodCAvIDIsIGxlZnRQYW5lbFdpZHRoKTsKICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8ocGFuZWxIZWlnaHQgLyAyLCAyICogbGVmdFBhbmVsV2lkdGgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbAppbmRleCA0Zjli
NzkzNzQ4ZDdkYjUxZWNhMWY5N2EyN2U1ODcxYTBlNmU4OGIxLi40OTFmZjk1YjkyMTdhNWVlMzg3
YWI3OWI2MzQxMGFkOTBjNjVmYzZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbApAQCAtOSw3ICs5LDcgQEAKICAgICAgICAgICAg
IC8vIFNjYWxlIHRoZSBwYWdlIGFuZCByZXNpemUgdGhlIGZyYW1lcyB0byB2ZXJpZnkgaGl0IHRl
c3Rpbmcgb24gdGhlIGZyYW1lc2V0CiAgICAgICAgICAgICB2YXIgbGVmdFBhbmVsV2lkdGggPSB3
aW5kb3cuaW5uZXJXaWR0aCAvIDg7CiAgICAgICAgICAgICB2YXIgcGFuZWxIZWlnaHQgPSB3aW5k
b3cuaW5uZXJIZWlnaHQgLyAyOwotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdl
U2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CisgICAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obGVmdFBhbmVsV2lkdGgsIHBhbmVsSGVpZ2h0IC8g
Mik7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIgKiBsZWZ0UGFuZWxXaWR0aCwgcGFuZWxIZWlnaHQgLyAy
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kb3VibGUtc2Nh
bGUtY29udGVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kb3VibGUt
c2NhbGUtY29udGVudHMuaHRtbAppbmRleCBkM2FmNWY2OTdiMDc2MGY1N2Q1ZjIwNzVhMTA0ZDIw
NDE2NzVmYjA1Li5kMjIyOGFjZmY0YjkwN2U5ZDU4NzRhOTBjNjA4MzkzYjkzZTYzZjAzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRl
bnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2Fs
ZS1jb250ZW50cy5odG1sCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICBmdW5jdGlvbiBzY2FsZVBh
Z2Uoc2NhbGVGYWN0b3IpIHsKICAgICAgICAgICB2YXIgc2NhbGVPZmZzZXQgPSAwOwogICAgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBz
Y2FsZU9mZnNldCk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBh
Z2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKICAg
ICAgICAgICB9CiAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9iYWNr
Z3JvdW5kLXNjYWxpbmcuaHRtbAppbmRleCBlOGNmZjBkMTY1NmI1NWJlODY4NDQ2MjUwNTU3MTMz
OTcxMzg3YTNkLi42YmI5MTFlNjA4MTQ2ZTllYjgwNTNkN2RiNmZjY2NkM2UyMDViZWU0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sCkBA
IC01LDcgKzUsNyBAQAogICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKICAgICB7CiAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuMjUsIDAsIDApOworICAgICAgICAgICAgd2luZG93
LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC4yNSwgMCwgMCk7CiAgICAg
fQogPC9zY3JpcHQ+IAogPC9oZWFkPiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
Zml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sCmluZGV4IGE5NWM1NzI4Njg2NjBjNTUzYjY4ODdhZTcw
ODViZmQ0MTVjYjMwMGIuLmI3NjU3ZWZmOWRjOGZlOTBjNGJkNWQxODcxOTY3NDlkMzJkODgxODMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUu
aHRtbApAQCAtOSw3ICs5LDcgQEAKICAgICA8c2NyaXB0PgogICAgICAgd2luZG93LmVuYWJsZVBp
eGVsVGVzdGluZyA9IHRydWU7CiAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRv
RnJhbWUoZG9jdW1lbnQsIHRydWUpOworICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZSh0cnVlKTsKIAog
ICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewogICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygxMDAs
MTAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1i
b3R0b20taW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVk
LXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwKaW5kZXggMTJmYzQ1YTdjYTczMzgxZWUz
YzkzNGVkNjE4YzdlMjE5YzcxYmQ3Yi4uOTYxMzg0OTY0NzIwZWRmODBkMDc3YjEyZTY1MmZmMmM0
NzVmOTc3NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0
LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwKQEAgLTksNyArOSw3IEBACiAg
ICAgPHNjcmlwdD4KICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRT
aG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGRvY3VtZW50LCB0cnVlKTsK
KyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZExheW91dEZpeGVk
RWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUodHJ1ZSk7CiAKICAgICAgIGZ1bmN0aW9uIHNjcm9sbCgp
IHsKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLDEwMCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbAppbmRl
eCA5MDM4M2U4NjliNjBlZGRjYTA4MjI1ODIxZjFmMGZmNDUwNDUwYTZlLi5hMjhjMTQ2Y2VmZTcx
MGZkYjAxNWMwZWI5MDNkNjk0MjQxZTA0NDhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1pbi1wYWdlLXNjYWxlLmh0bWwKQEAgLTksNyArOSw3
IEBACiAgICAgPHNjcmlwdD4KICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVl
OwogICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGRvY3VtZW50LCB0
cnVlKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZExheW91
dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUodHJ1ZSk7CiAKICAgICAgIGZ1bmN0aW9uIHNj
cm9sbCgpIHsKICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLDEwMCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9zY2FsZS1wYWdlLXNocmluay5odG1sCmluZGV4IDkyZjNlM2Q1
ZjZmNjZlMWM5OWUxOTdiZmU3ZTE0ZmFhMDJmMGQwNDAuLjA5YmQyMjE4MzFkN2Y2YmU5NmFmNzQw
ZGI5Zjk3MTg5MTY2N2IyNjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9z
Y2FsZS1wYWdlLXNocmluay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zY2Fs
ZS1wYWdlLXNocmluay5odG1sCkBAIC01LDcgKzUsNyBAQAogICAgIGZ1bmN0aW9uIHJlcGFpbnRU
ZXN0KCkKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuMjUsIDAsIDAp
OworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0
b3IoMC4yNSwgMCwgMCk7CiAgICAgfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1l
ZC12aWV3Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5k
cy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwKaW5kZXggMTBlMjZiYjg5MTcyZGJmYjA3NzA3MGI2
ZGIwMWQwMDBlMjk4MjA3MS4uZmYyNjMzOTA5NzIwYjlkYzVhMjI1YjIwOGZjOGZjZDgxNTMwOGM4
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3Vu
ZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNm
b3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbApAQCAtNiw3ICs2
LDcgQEAKICAgICA8c2NyaXB0PgogICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNj
YWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogICAgICAgICB9CiAKICAg
ICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkZpbmRTdHJpbmciLCBmYWxzZSwgInRhcmdldCIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay10
ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay10ZXN0Lmpz
CmluZGV4IDE0MTMwODRjOTg4M2QzNmM3MTQ1MTY4ZjEzZTM4MDBkZDdkZDY2MjcuLjMzODJmZWYy
NDI3NWI0Y2E3YWM1MjViODVjM2FkNmE2ZjNhODlmNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmstdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXRlc3QuanMKQEAgLTQ0LDcgKzQ0LDcgQEAgZnVu
Y3Rpb24gcmVzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhKCkKICAgICBpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGludGVybmFscy5zZXRJbnNwZWN0
b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhkb2N1bWVudCwgMTAgKiAxMDAwICogMTAwMCwgMTAw
MCAqIDEwMDApOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRJbnNwZWN0b3JSZXNvdXJjZXNE
YXRhU2l6ZUxpbWl0cygxMCAqIDEwMDAgKiAxMDAwLCAxMDAwICogMTAwMCk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNl
bWVudC1lbWJlZC5odG1sCmluZGV4IDFiNzQyY2JiY2UyZjNkNGIyNDM5M2M4ZDAwMDZhMmRlZWI4
YjIzMzEuLmUxZDU2OTgwYWI1ZTMxN2VmMTQ4NjkzMzU5MWM3ZDhlNzUxZmZhM2UgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250
ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQtZW1iZWQuaHRtbApA
QCAtMzEsNyArMzEsNyBAQCBmdW5jdGlvbiBsb2FkVVJMcygpCiAgICAgfQogICAgIC8vIEVhY2gg
JyonIHN5bWJvbCBpbiBvcmlnaW5hbCBkYXRhIHdpbGwgdXNlIHR3byBieXRlcyBpbiBTdHJpbmcg
b2JqZWN0CiAgICAgLy8gYWZ0ZXIgZGVjb2RpbmcsIGhlbmNlIG11bHRpcGx5aW5nIGJ5IHR3by4K
LSAgICBpbnRlcm5hbHMuc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoZG9jdW1l
bnQsIDIqMzAwLCAyKjIwMCk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEluc3BlY3RvclJl
c291cmNlc0RhdGFTaXplTGltaXRzKDIqMzAwLCAyKjIwMCk7CiAKICAgICAvLyBIZXJlIHdlIHRl
c3QgcmVwbGFjZW1lbnQgbG9naWMuIFdlIHNhdmUgZmlyc3QgdHdvIHJlc291cmNlcyBjb250ZW50
LAogICAgIC8vIGRpc2NhcmQgdGhpcmQgcmVzb3VyY2UgY29udGVudCBvbmNlIHdlIHNlZSBpdHMg
c2l6ZSBleGNlZWRzIGxpbWl0LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFjZW1lbnQteGhyLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1y
ZXBsYWNlbWVudC14aHIuaHRtbAppbmRleCBmYjQ3NWMxYmY3MjBjZDA4ZmM1ZjIxYTY4YWZhNWJl
MWZmMzIzZmU4Li5hODkzZDA5NjEwNTMyMzZjMGUwYTNmNDU2OTE1ZTc2ZDQ3MjAzMWJmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
Y29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbApA
QCAtMTAsNyArMTAsNyBAQCBmdW5jdGlvbiBsb2FkRGF0YSgpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgLy8gRWFjaCAnKicgc3ltYm9sIHdpbGwgdXNlIHR3byBieXRlcyBpbiBTdHJpbmcg
b2JqZWN0LCBoZW5jZSBtdWx0aXBseWluZyBieSB0d28uCi0gICAgaW50ZXJuYWxzLnNldEluc3Bl
Y3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKGRvY3VtZW50LCAyKjMwMCwgMioyMDApOworICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cygy
KjMwMCwgMioyMDApOwogCiAgICAgLy8gSGVyZSB3ZSB0ZXN0IHJlcGxhY2VtZW50IGxvZ2ljLiBX
ZSBzYXZlIGZpcnN0IHR3byByZXNvdXJjZXMgY29udGVudCwKICAgICAvLyBkaXNjYXJkIHRoaXJk
IHJlc291cmNlIGNvbnRlbnQgb25jZSB3ZSBzZWUgaXRzIHNpemUgZXhjZWVkcyBsaW1pdCwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2Vs
ZXJhdGVkLWRyYXdpbmcvYWxwaGEuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvYWxwaGEuaHRtbAppbmRleCBjYTZlODA3
MjEwM2NhNmNiMjYxYWEwY2E2ZGMxNTk3ZjJmY2ZkZTdlLi44ZDQzODk2ZjgzMGE5OGExNzkxYmIw
Zjk4NGNlZDZiY2E4NjM2ZWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL2FscGhhLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtZHJhd2lu
Zy9hbHBoYS5odG1sCkBAIC0yMSw3ICsyMSw3IEBACiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCh0cnVlKTsgLy8gVGhpcyBpcyBvbmx5IHVzZWZ1bCBhcyBwaXhlbCB0ZXN0Lgog
CiAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0QWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CisgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKHRydWUpOwogPC9zY3JpcHQ+
CiA8L2hlYWQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvc3ZnLWZpbHRlcnMuaHRtbCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvc3Zn
LWZpbHRlcnMuaHRtbAppbmRleCAzZjFjZTI2Yjg3OGM2MGRiNzM3YWVmNjUxMDUyZTU1NTMwYWEx
MzZhLi41ZDI3Y2I3ZjIwYTBiMjlmMmQ4NTBmZDYzMTAyMmM2YWYzYzM2YjQxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1k
cmF3aW5nL3N2Zy1maWx0ZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtZHJhd2luZy9zdmctZmlsdGVycy5odG1sCkBAIC02
LDcgKzYsNyBAQAogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7IC8v
IFRoaXMgaXMgb25seSB1c2VmdWwgYXMgcGl4ZWwgdGVzdC4KIAogICBpZiAod2luZG93LmludGVy
bmFscykKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
ZG9jdW1lbnQsIHRydWUpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZCh0cnVlKTsKIDwvc2NyaXB0PgogPC9oZWFkPgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21w
b3NpdGluZy1tb2RlL2ZvcmNlLWNvbXBvc2l0ZS1lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9mb3JjZS1j
b21wb3NpdGUtZW1wdHkuaHRtbAppbmRleCA5MDk4MWE2N2Y2ODA0MjhhNDRkZDA5ZmZjNDNlYzk5
ZTQ2Y2FmZDZkLi44YTFkYzE2NzYxNWQ1ZmUyMWE4NTRmN2M4MzViNjgwMDI1NmQ0NDFlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1j
b21wb3NpdGluZy1tb2RlL2ZvcmNlLWNvbXBvc2l0ZS1lbXB0eS5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUv
Zm9yY2UtY29tcG9zaXRlLWVtcHR5Lmh0bWwKQEAgLTIsOCArMiw4IEBACiAgIDxoZWFkPgogICAg
IDxzY3JpcHQ+CiAgICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGRvY3VtZW50LCB0cnVlKTsKLSAgICAg
ICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXMoZG9jdW1lbnQsIHRydWUpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyh0cnVlKTsKICAg
ICAgIH0KICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpIHsKICAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9uby1vdmVyZmxvdy1pZnJh
bWUtbGF5ZXIuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
L2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvbm8tb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwKaW5k
ZXggZDY1ZWU4MDcwNzMxM2JjNGM1YTllYzIxYzMyOTFjNTk4YjkwZjQ3MS4uMTczODM5ODU2MmIx
OGRmNjg3ZjU5OTY0MTEzMTBjOWIyOGNhYmIzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9uby1vdmVy
Zmxvdy1pZnJhbWUtbGF5ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL25vLW92ZXJmbG93LWlmcmFtZS1s
YXllci5odG1sCkBAIC0xNiw4ICsxNiw4IEBACiAgICAgfQogICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgZG9UZXN0LCBmYWxzZSk7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKLSAgICAgIGludGVybmFscy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShkb2N1bWVudCwgdHJ1
ZSk7Ci0gICAgICBpbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJh
bWVzKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVD
b21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXModHJ1ZSk7CiAgICAgfQogICA8L3NjcmlwdD4K
IDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaGlkZGVuLWlmcmFtZS1sYXll
ci5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2Ut
Y29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1oaWRkZW4taWZyYW1lLWxheWVyLmh0bWwKaW5kZXgg
YWZlMzVlNDExMmUzYjkzN2ZhYTVjMjcwYjQwYTI5ZTMyNjUxZjBlNi4uNmI4NTE2ODAwOWU2MGY3
NDY4Zjc1ZTY1MzJlZmYzOTdkMTU4ZTZlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1o
aWRkZW4taWZyYW1lLWxheWVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1oaWRkZW4taWZy
YW1lLWxheWVyLmh0bWwKQEAgLTgsOCArOCw4IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+CiAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIGludGVybmFscy5zZXRGb3JjZUNvbXBv
c2l0aW5nTW9kZShkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICBpbnRlcm5hbHMuc2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXModHJ1
ZSk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmct
bW9kZS9vdmVyZmxvdy1pZnJhbWUtZW50ZXItY29tcG9zaXRpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3Zl
cmZsb3ctaWZyYW1lLWVudGVyLWNvbXBvc2l0aW5nLmh0bWwKaW5kZXggZDMzNTdmZGE0ZTc2ODIx
NzZhZjNhOGJlMWVhYzk1MGMzOTYxZDA1OC4uYWYxOWM1YTk3MzVmOTQ0NTVkNGRkMWFiNGZhNDdi
NDQ1NWYxMmM3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29t
cG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtZW50ZXItY29t
cG9zaXRpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3Np
dGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1lbnRlci1jb21wb3Np
dGluZy5odG1sCkBAIC04LDggKzgsOCBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0PgogICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICBpbnRlcm5hbHMuc2V0Rm9yY2VDb21wb3NpdGlu
Z01vZGUoZG9jdW1lbnQsIHRydWUpOwotICAgICAgaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0
aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhkb2N1bWVudCwgdHJ1ZSk7CisgICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKHRydWUpOwog
ICAgIH0KICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUv
b3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sYXll
ci5odG1sCmluZGV4IGE0YzRhMjIwMzM2ODZkMmQ0NzMyY2FiZTlmMTg0NjBmMjVjMDNiNjMuLjQy
YjJkNzAyZjExY2ZlYmYyM2Q1OTFjZTJmODA0YzQwY2E2YjQ0NTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1v
ZGUvb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJh
bWUtbGF5ZXIuaHRtbApAQCAtOCw4ICs4LDggQEAKICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KICAg
ICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgaW50ZXJuYWxzLnNldEZvcmNlQ29tcG9z
aXRpbmdNb2RlKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgIGludGVybmFscy5zZXRFbmFibGVDb21w
b3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoZG9jdW1lbnQsIHRydWUpOworICAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyh0cnVl
KTsKICAgICB9CiAgICAgZnVuY3Rpb24gZG9UZXN0KCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1t
b2RlL292ZXJmbG93LWlmcmFtZS1sZWF2ZS1jb21wb3NpdGluZy5odG1sIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVy
Zmxvdy1pZnJhbWUtbGVhdmUtY29tcG9zaXRpbmcuaHRtbAppbmRleCBiZWUzYjBhOTFmMzUyNjM1
OWJlZWQwNzUwOGMwNGE3NTFkZjU3YTlmLi45MTFjMGEyZjZkNjcwNWM3MjQ3YWNjZTE5M2JhY2Vl
ZmRlMjUyMmQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21w
b3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sZWF2ZS1jb21w
b3NpdGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxlYXZlLWNvbXBvc2l0
aW5nLmh0bWwKQEAgLTgsOCArOCw4IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+CiAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIGludGVybmFscy5zZXRGb3JjZUNvbXBvc2l0aW5n
TW9kZShkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICBpbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRp
bmdGb3JTY3JvbGxhYmxlRnJhbWVzKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXModHJ1ZSk7CiAg
ICAgfQogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123954</attachid>
            <date>2012-01-25 09:16:40 -0800</date>
            <delta_ts>2012-01-25 10:20:46 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-76424-20120126021638.patch</filename>
            <type>text/plain</type>
            <size>99473</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTljMmM4Yjk0MjhlNmI0
Mjk1OGJiMWZhMTdlMzRjMWRlZTJmZWQ3YS4uZjExMTJiYWNjZDcxY2E0MTkyZjFmZGFjMTg1MTJi
NTE4NzQxOGZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTAxLTIzICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtSZWZhY3RvcmluZ11b
SW50ZXJuYWxzXSBTaG91bGQgaGF2ZSBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQyNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IEtlbnQgVGFtdXJhLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGV4dHJhY3RlZCBzZXR0aW5n
IHJlbGF0ZWQgbWV0aG9kIGZyb20gd2luZG93LmludGVybmFscworICAgICAgICB0byB3aW5kb3cu
aW50ZXJuYWxzLnNldHRpbmdzIG9iamVjdC4KKyAgICAgICAgLSBJbnZva2VkIEludGVybmFsczo6
cmVzZXQoKSBpbiB0aGUgY29uc3RydWN0b3IgdG8gZW1wbG95IERvY3VtZW50IG9iamVjdC4KKyAg
ICAgICAgLSBNb3ZlZCBzZXR0aW5nIGFuZCBjb25maWd1cmF0aW9uIHJlbGF0ZWQgSW50ZXJuYWxz
IG1ldGhvZHMgdG8KKyAgICAgICAgICBuZXdseSBpbnRyb2R1Y2VkIEludGVybmFsU2V0dGluZ3Mg
b2JqZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0
cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6fkludGVybmFsU2V0dGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6SW50ZXJuYWxTZXR0aW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXR0aW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpkb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbFNldHRpbmdzOjpwYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
U2V0dGluZ3M6OnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRmlsdGVyc0Vu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0
dGluZ3M6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZVNjcm9sbEFu
aW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFpvb21Bbmlt
YXRvclRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRa
b29tUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRN
b2NrU2Nyb2xsYmFyc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6c2V0UGFzc3dvcmRFY2hvRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNl
dHRpbmdzOjpzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRp
dmVUb0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFVuaWZp
ZWRUZXh0Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGlu
Z3M6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsU2V0dGluZ3M6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bFNldHRpbmdzOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxTZXR0aW5nczo6c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldCk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6c2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAg
ICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3Jl
VGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09iamVjdCk6CisgICAgICAgICogdGVzdGluZy92
OC9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0Ojpp
bmplY3RJbnRlcm5hbHNPYmplY3QpOgorCiAyMDEyLTAxLTI1ICBTYW1pIEt5b3N0aWxhICA8c2t5
b3N0aWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENsaXBwaW5nIG9mIHJlbmRlciBsYXllciBi
b3VuZGFyaWVzIGRvZXMgbm90IHRha2UgcGFnZSBzY2FsZSBpbnRvIGFjY291bnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGRlMWM4YzU1OTJlZjA2MmQ3NjhiNDc3OGZlYzY4N2Q4
YTM4MmRkMTIuLmJhZmFkNGYxM2RjYWE2MDc3NzIyYzJjMDQ3MWIzM2U4NjA5NzVmYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTI0LDYgKzUyNCw3IEBAIEJJTkRJTkdfSURM
UyA9IFwKICAgICAkKFdlYkNvcmUpL3N2Zy9TVkdab29tQW5kUGFuLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9zdmcvU1ZHWm9vbUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL0ludGVy
bmFscy5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBc
CiAgICAgJChXZWJDb3JlKS93ZWJhdWRpby9BdWRpb0J1ZmZlci5pZGwgXAogICAgICQoV2ViQ29y
ZSkvd2ViYXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5w
cmkKaW5kZXggOTUyZWUwNzI2NjA2ZjZhZTFiODcxYmUwZTlhNmQyN2Q0NTY2NDlkZS4uNzc1ZTdj
MjE1MGI3MmEyMjIyMjk0YTc1NWFjM2RkN2FiNTk4N2FlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQpAQCAtNDAxLDYgKzQwMSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0Qv
c3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuaWRsIFwKICAgICAkJFBXRC9zdG9yYWdlL1NRTFRy
YW5zYWN0aW9uU3luY0NhbGxiYWNrLmlkbCBcCiAgICAgJCRQV0QvdGVzdGluZy9JbnRlcm5hbHMu
aWRsIFwKKyAgICAkJFBXRC90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIFwKICAgICAkJFBX
RC93ZWJhdWRpby9BdWRpb0J1ZmZlci5pZGwgXAogICAgICQkUFdEL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5pZGwgXAogICAgICQkUFdEL3dlYmF1ZGlvL0F1ZGlvQ2hhbm5lbE1lcmdl
ci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAyNGU5ZGUyNWE4YTEyYzJhOWNlNGY1ZjY2
YWE3Nzg3ZTNhYjgzODUzLi45YjlhMDVhMjI5ZGQwNjQ4ZmFmYzhlMTVjNzgxYjk2YjJmMWQwMmQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNzQ5LDYgKzc0OSw3IEBAIElETF9QQVRIIDo9IFwK
ICAgICAkKFdlYkNvcmUpL2JpbmRpbmdzL2pzIFwKICAgICAkKFdlYkNvcmUpL2NzcyBcCiAgICAg
JChXZWJDb3JlKS9kb20gXAorICAgICQoV2ViQ29yZSkvZG9tL3Rlc3RpbmcgXAogICAgICQoV2Vi
Q29yZSkvZmlsZWFwaSBcCiAgICAgJChXZWJDb3JlKS9odG1sIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDIxOTU4NmZkNDg5
ZTBlOTI5ZGI2YjcwMWY5NDhhMzViZjYwZGMwMzIuLmM4NDI2Mjc3YWE3NDM1YjBhM2JhYzE2ZWI5
ZWNmNzQ1ZjQ5YjRmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtOTE0LDYg
KzkxNCw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvc3RvcmFnZS9TdG9y
YWdlLmlkbCBcCiAJJChXZWJDb3JlKS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwgXAogCSQoV2Vi
Q29yZSkvdGVzdGluZy9JbnRlcm5hbHMuaWRsIFwKKwkkKFdlYkNvcmUpL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwgXAogCSQoV2ViQ29yZSkvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbCBc
CiAJJChXZWJDb3JlKS93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaWRsIFwKIAkkKFdlYkNvcmUp
L3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGNm
OTI5MWFhMzNhOTE5Nzg4MGQxYzZmNDhiNjFiODg5MWQzMmU1OWIuLjNkOGEwNjExMjA0MWNmNDNk
OGQwZTRjZWZmYzVmMGU1MTU2NmRmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTMwMiw2ICsxMzAyLDcg
QEAgU09VUkNFUyArPSBcCiAgICAgc3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwIFwKICAg
ICBzdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcCBcCiAgICAgdGVzdGluZy9JbnRlcm5hbHMuY3Bw
IFwKKyAgICB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIFwKICAgICB4bWwvRE9NUGFyc2Vy
LmNwcCBcCiAgICAgeG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAgXAogICAgIHhtbC9YTUxI
dHRwUmVxdWVzdC5jcHAgXApAQCAtMjcxMSw2ICsyNzEyLDcgQEAgSEVBREVSUyArPSBcCiAgICAg
c3ZnL1NWR1pvb21BbmRQYW4uaCBcCiAgICAgc3ZnL1NWR1pvb21FdmVudC5oIFwKICAgICB0ZXN0
aW5nL0ludGVybmFscy5oIFwKKyAgICB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBcCiAgICAg
d29ya2Vycy9BYnN0cmFjdFdvcmtlci5oIFwKICAgICB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckNv
bnRleHQuaCBcCiAgICAgd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IDgxOWY5ZGQ3ZDc0MTIzNWY3ZGI5ZjU5
YzRlMjgwZWQxOTUxODMwYzUuLjA4MjVjYTE4ZjVhYWIwZTdjMTZkMGRiYWYwZjhkMTA4OTkxOGE4
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC0yMDM2LDYgKzIw
MzYsOCBAQAogICAgICAgICAnPEAod2ViY29yZV90ZXN0X3N1cHBvcnRfZmlsZXMpJywKICAgICAg
ICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmNvcmUvYmluZGluZ3MvVjhJbnRlcm5h
bHMuY3BwJywKICAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIpL3dlYmtpdC9iaW5k
aW5ncy9WOEludGVybmFscy5oJywKKyAgICAgICAgJzwoU0hBUkVEX0lOVEVSTUVESUFURV9ESVIp
L3dlYmNvcmUvYmluZGluZ3MvVjhJbnRlcm5hbFNldHRpbmdzLmNwcCcsCisgICAgICAgICc8KFNI
QVJFRF9JTlRFUk1FRElBVEVfRElSKS93ZWJraXQvYmluZGluZ3MvVjhJbnRlcm5hbHNTZXR0aW5n
cy5oJywKICAgICAgIF0sCiAgICAgICAnc291cmNlcy8nOiBbCiAgICAgICAgIFsnZXhjbHVkZScs
ICd0ZXN0aW5nL2pzJ10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMWM4ODQyMTlhMzM3NjEwMzI4OTI0
ZWIyZWUyNmVlNmRhZjk1MmZkYS4uNzM4MDI1YzFjZGJmMTlmMGJmZTJjNjA0MjcxMWQ0NTFmNzUw
OWQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTk4NSw2ICs1OTg1LDcgQEAKICAgICAgICAgXSwK
ICAgICAgICAgJ3dlYmNvcmVfdGVzdF9zdXBwb3J0X2lkbF9maWxlcyc6IFsKICAgICAgICAgICAn
dGVzdGluZy9JbnRlcm5hbHMuaWRsJywKKyAgICAgICAgICAndGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbCcsCiAgICAgICAgIF0sCiAgICAgICAgICd3ZWJjb3JlX3Rlc3Rfc3VwcG9ydF9maWxl
cyc6IFsKICAgICAgICAgICAgICd0ZXN0aW5nL3Y4L1Y4SW50ZXJuYWxzQ3VzdG9tLmNwcCcsCkBA
IC01OTk1LDYgKzU5OTYsOCBAQAogICAgICAgICAgICAgJ3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RT
dXBwb3J0LmgnLAogICAgICAgICAgICAgJ3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCcsCiAgICAgICAg
ICAgICAndGVzdGluZy9JbnRlcm5hbHMuaCcsCisgICAgICAgICAgICAndGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcCcsCisgICAgICAgICAgICAndGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgn
LAogICAgICAgICBdLAogICAgICAgICAnd2ViY29yZV9yZXNvdXJjZV9maWxlcyc6IFsKICAgICAg
ICAgICAgICdFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVUZXN0U3VwcG9ydC52Y3Byb2oK
aW5kZXggM2ZjMmI1NGVlODcxM2I0NjJhY2VkNDkxZGU0MGQ2ZDRiZWM0YzlmOC4uMDYwNmFkZTc0
MDZiN2NlNmU2ZDIyMzJkYTgzODg0ZmUzZjQ4ZjEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZVRlc3RTdXBwb3J0LnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlVGVzdFN1cHBvcnQudmNwcm9qCkBAIC00MTUs
NiArNDE1LDc0IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNJbnRlcm5hbHMuaCIKIAkJCQk+CiAJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialxXZWJDb3JlXERlcml2ZWRTb3VyY2VzXEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAiCisJCQkJ
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCVVzZVBy
ZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7
NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVS
SVQpIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0i
MCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3
MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJ
CQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJ
CQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxl
YXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJ
RGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJ
CUZvcmNlZEluY2x1ZGVGaWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0Fs
bHxXaW4zMiIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIgorCQkJCQkJRGlzYWJsZVNwZWNpZmlj
V2FybmluZ3M9IjQwNjU7NDI3Mzs0NTY1OzQ3MDE7NDcwMiIKKwkJCQkJCUZvcmNlZEluY2x1ZGVG
aWxlcz0iJChOT0lOSEVSSVQpIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQ
cmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1
OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhF
UklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2Vi
Q29yZVxEZXJpdmVkU291cmNlc1xKU0ludGVybmFsU2V0dGluZ3MuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJ0ZXN0aW5nIgpAQCAtNDg4LDYg
KzU1Niw3NCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlx0ZXN0aW5nXEludGVybmFsU2V0dGluZ3MuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0i
MCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3
MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxl
U3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2Vk
SW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lm
aWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVk
ZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dh
cm5pbmdzPSI0MDY1OzQyNzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmls
ZXM9IiQoTk9JTkhFUklUKSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQlVc2VQcmVj
b21waWxlZEhlYWRlcj0iMCIKKwkJCQkJCURpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSI0MDY1OzQy
NzM7NDU2NTs0NzAxOzQ3MDIiCisJCQkJCQlGb3JjZWRJbmNsdWRlRmlsZXM9IiQoTk9JTkhFUklU
KSIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9
IjAiCisJCQkJCQlEaXNhYmxlU3BlY2lmaWNXYXJuaW5ncz0iNDA2NTs0MjczOzQ1NjU7NDcwMTs0
NzAyIgorCQkJCQkJRm9yY2VkSW5jbHVkZUZpbGVzPSIkKE5PSU5IRVJJVCkiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlx0ZXN0aW5nXEludGVybmFsU2V0dGluZ3MuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cdGVzdGluZ1xqc1xXZWJDb3JlVGVzdFN1
cHBvcnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5OWU4ZTNmN2Yx
ZGM2ODc2MTVkMGRhYjMxYjA1N2MyOTAxNzE2YWRjLi5jNjg1ZjlkN2E1MTZjYmJhZDE0Y2VkNWQ0
Zjg0OGNiMzJjNGNiNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTIxLDYgKzM1MjEsOCBAQAogCQlBNzIzRjc3QjE0ODRD
QTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQ
bGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVG
QzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEy
Qzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVk
UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUE3NDBCNUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRDOTM0ODQw
MEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKKwkJQTc0MEI1QTcxNEM5MzVB
RjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYgLyogSlNJ
bnRlcm5hbFNldHRpbmdzLmNwcCAqLzsgfTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8q
IEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0
OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNC
MDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovOyB9OwpAQCAtMzU1Niw2ICszNTU4LDggQEAKIAkJ
QTdCNkU2OUYwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyog
RHJhZ0RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBN0JCRTI2NjExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkJFMjY0MTFB
RkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwICovOyB9OwogCQlBN0JCRTI2
NzExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JCRTI2NTExQUZCM0YyMDAwNUVBMDMg
LyogSlNIVE1MTWV0ZXJFbGVtZW50LmggKi87IH07CisJCUE3QkY3RURGMTRDOTE3NUEwMDE0NDg5
RCAvKiBJbnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3QkY3RURDMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRp
bmdzLmNwcCAqLzsgfTsKKwkJQTdCRjdFRTAxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0
dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
QkY3RUREMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggKi87IH07CiAJCUE3
QzlBQkY4MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0M5QUJGNjEzNTdBM0JG
MDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwICovOyB9OwogCQlBN0M5QUJGOTEz
NTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QzlBQkY3MTM1N0EzQkYwMEY1NTAzRiAv
KiBEZXRhaWxzTWFya2VyQ29udHJvbC5oICovOyB9OwogCQlBN0NBNTk1RDBCMjdCRDlFMDBGQTAy
MUQgLyogRHJhZ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3Q0E1OTVCMEIyN0JEOUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDM4
OCw5ICsxMDM5MiwxNCBAQAogCQlBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2gu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGlua0hhc2guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCMDcwRDAxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0
aW9uU2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZy
YW1lQWN0aW9uU2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdC
MDcwRDExMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lQWN0aW9uU2NoZWR1bGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVy
bmFsU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJ
bnRlcm5hbFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCNEVB
NzkxNEM5MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0ludGVybmFsU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTdCNkU2OUQwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdEYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3QkJFMjY0MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MTWV0
ZXJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCQkUyNjUxMUFG
QjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0hUTUxNZXRlckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTdCRjdFREMxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50ZXJuYWxTZXR0aW5ncy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QkY3RUREMTRDOTE3NUEwMDE0NDg5
RCAvKiBJbnRlcm5hbFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEludGVybmFsU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCRjdF
REUxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGluZ3MuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEludGVybmFsU2V0dGluZ3MuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBN0M5QUJGNjEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV0YWlsc01hcmtlckNvbnRy
b2wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0M5QUJGNzEzNTdBM0JGMDBG
NTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGV0YWlsc01hcmtlckNvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTdDQTU5NUIwQjI3QkQ5RTAwRkEwMjFEIC8qIERyYWdDb250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNDI4Myw2ICsxNDI5Miw5IEBACiAJCQkJNDE3REE0Q0YxMzcz
NDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi8sCiAJCQkJNDE3REE0Q0UxMzczNDMyNjAw
N0M1N0ZCIC8qIEludGVybmFscy5oICovLAogCQkJCTQxODEzRjkxMTM4MThBRDYwMDU3QUFBNCAv
KiBJbnRlcm5hbHMuaWRsICovLAorCQkJCUE3QkY3RURDMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRl
cm5hbFNldHRpbmdzLmNwcCAqLywKKwkJCQlBN0JGN0VERDE0QzkxNzVBMDAxNDQ4OUQgLyogSW50
ZXJuYWxTZXR0aW5ncy5oICovLAorCQkJCUE3QkY3RURFMTRDOTE3NUEwMDE0NDg5RCAvKiBJbnRl
cm5hbFNldHRpbmdzLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGVzdGluZzsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNDI5Miw2ICsxNDMwNCw4IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQk0MTdEQTcxQjEzNzM1REZBMDA3QzU3RkIgLyogSlNJbnRlcm5hbHMuY3BwICovLAog
CQkJCTQxN0RBNzFDMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oICovLAorCQkJCUE3
QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwICovLAorCQkJ
CUE3QjRFQTc5MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLywKIAkJ
CSk7CiAJCQluYW1lID0gVGVzdGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0y
MDk0Nyw3ICsyMDk2MSw5IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJNDE3REE2REExMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQTdCRjdFRTAxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0
dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxN0RBNzFFMTM3MzVERkEwMDdDNTdGQiAvKiBK
U0ludGVybmFscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0
IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4MTVDMUYxMzgz
MTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yNDQwMCw5
ICsyNDQxNiwxMSBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVz
ID0gKAogCQkJCTQxN0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQTdCRjdFREYxNEM5MTc1QTAwMTQ0ODlEIC8qIEludGVybmFsU2V0dGlu
Z3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3REE3MUQxMzczNURGQTAwN0M1N0ZCIC8qIEpT
SW50ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxODE1QzFFMTM4MzE5ODMwMDU3QUFB
NCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyMzBDQkMx
NEMxMEVEOTAwRjZCNzAyIC8qIEpTSW50ZXJuYWxzQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE3NDBCNUE3MTRDOTM1QUYwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDE4MTVDMUUxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0
U3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1NjZjZDA5YTJmOTE0ODVhOGVmMTE3ZWUzZDQy
NWM4MzU0NTU3MWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuY3BwCkBAIC0wLDAgKzEsMjc0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkludGVybmFsU2V0dGluZ3MuaCIKKworI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIK
KyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworI2lmIEVOQUJMRShH
RVNUVVJFX0VWRU5UUykKKyNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVFdmVudC5oIgorI2VuZGlm
CisKKyNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKKyNpbmNsdWRlICJTY3JvbGxBbmltYXRv
ci5oIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCisjaW5jbHVkZSAiQ29sb3JD
aG9vc2VyLmgiCisjZW5kaWYKKworI2RlZmluZSBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0
aW5nc1JldHVybihyZXR1cm5WYWx1ZSkgXAorICAgIGlmICghc2V0dGluZ3MoKSkgeyBcCisgICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOyBcCisgICAgICAgIHJldHVybiByZXR1cm5WYWx1
ZTsgXAorICAgIH0KKworI2RlZmluZSBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygp
ICBcCisgICAgaWYgKCFzZXR0aW5ncygpKSB7IFwKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VT
U19FUlI7IFwKKyAgICAgICAgcmV0dXJuOyBcCisgICAgfQorCisjZGVmaW5lIEludGVybmFsU2V0
dGluZ3NHdWFyZEZvckZyYW1lKCkgXAorICAgIGlmICghZnJhbWUoKSkgeyBcCisgICAgICAgIGVj
ID0gSU5WQUxJRF9BQ0NFU1NfRVJSOyBcCisgICAgICAgIHJldHVybjsgXAorICAgIH0KKworI2Rl
ZmluZSBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JGcmFtZVZpZXcoKSBcCisgICAgaWYgKCFmcmFt
ZSgpIHx8ICFmcmFtZSgpLT52aWV3KCkpIHsgXAorICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsgXAorICAgICAgICByZXR1cm47IFwKKyAgICB9CisKKyNkZWZpbmUgSW50ZXJuYWxTZXR0
aW5nc0d1YXJkRm9yUGFnZVJldHVybihyZXR1cm5WYWx1ZSkgXAorICAgIGlmICghcGFnZSgpKSB7
IFwKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7IFwKKyAgICAgICAgcmV0dXJuIHJl
dHVyblZhbHVlOyBcCisgICAgfQorCisjZGVmaW5lIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclBh
Z2UoKSBcCisgICAgaWYgKCFwYWdlKCkpIHsgXAorICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsgXAorICAgICAgICByZXR1cm47IFwKKyAgICB9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworCitQYXNzUmVmUHRyPEludGVybmFsU2V0dGluZ3M+IEludGVybmFsU2V0dGluZ3M6OmNyZWF0
ZShGcmFtZSogZnJhbWUsIEludGVybmFsU2V0dGluZ3MqIG9sZCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEludGVybmFsU2V0dGluZ3MoZnJhbWUsIG9sZCkpOworfQorCitJbnRlcm5hbFNl
dHRpbmdzOjp+SW50ZXJuYWxTZXR0aW5ncygpCit7Cit9CisKK0ludGVybmFsU2V0dGluZ3M6Oklu
dGVybmFsU2V0dGluZ3MoRnJhbWUqIGZyYW1lLCBJbnRlcm5hbFNldHRpbmdzKiBvbGQpCisgICAg
OiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZnJhbWUpCisgICAgLCBtX3Bhc3N3b3JkRWNob0R1
cmF0aW9uSW5TZWNvbmRzQmFja3VwKDApCisgICAgLCBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5T
ZWNvbmRzQmFja2VkVXAoZmFsc2UpCisgICAgLCBtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrZWRV
cChmYWxzZSkKK3sKKyAgICBpZiAob2xkICYmIHNldHRpbmdzKCkpIHsKKyAgICAgICAgaWYgKG9s
ZC0+bV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKQorICAgICAgICAgICAg
c2V0dGluZ3MoKS0+c2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMob2xkLT5tX3Bhc3N3
b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja3VwKTsKKyAgICAgICAgaWYgKG9sZC0+bV9wYXNz
d29yZEVjaG9FbmFibGVkQmFja2VkVXApCisgICAgICAgICAgICBzZXR0aW5ncygpLT5zZXRQYXNz
d29yZEVjaG9FbmFibGVkKG9sZC0+bV9wYXNzd29yZEVjaG9FbmFibGVkQmFja3VwKTsKKyAgICB9
Cit9CisKK1NldHRpbmdzKiBJbnRlcm5hbFNldHRpbmdzOjpzZXR0aW5ncygpIGNvbnN0Cit7Cisg
ICAgaWYgKCFmcmFtZSgpIHx8ICFmcmFtZSgpLT5wYWdlKCkpCisgICAgICAgIHJldHVybiAwOwor
ICAgIHJldHVybiBmcmFtZSgpLT5wYWdlKCktPnNldHRpbmdzKCk7Cit9CisKK0RvY3VtZW50KiBJ
bnRlcm5hbFNldHRpbmdzOjpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZyYW1lKCkg
PyBmcmFtZSgpLT5kb2N1bWVudCgpIDogMDsKK30KKworUGFnZSogSW50ZXJuYWxTZXR0aW5nczo6
cGFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5wYWdl
KCkgOiAwOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEluc3BlY3RvclJlc291cmNl
c0RhdGFTaXplTGltaXRzKGludCBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGludCBtYXhp
bXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoIXBhZ2UoKSB8fCAhcGFnZSgpLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgcGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldFJl
c291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFscyhtYXhpbXVtUmVzb3VyY2VzQ29udGVu
dFNpemUsIG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSk7CisgICAgVU5VU0VEX1BBUkFN
KG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKTsKKyAgICBVTlVTRURfUEFSQU0oZWMp
OworI2VuZGlmCit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Rm9yY2VDb21wb3NpdGlu
Z01vZGUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNl
dHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldEZvcmNlQ29tcG9z
aXRpbmdNb2RlKGVuYWJsZWQpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEFjY2Vs
ZXJhdGVkRmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCkt
PnNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgSW50ZXJu
YWxTZXR0aW5nczo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9y
U2V0dGluZ3MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
Rml4ZWRQb3NpdGlvbkVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5n
czo6c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxlZCwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGlu
Z3MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yU2Nyb2xs
YWJsZUZyYW1lc0VuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAgc2V0
dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChlbmFibGVkKTsKK30KKwordm9p
ZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVTY3JvbGxBbmltYXRvcihib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRp
bmdzKCk7CisjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCisgICAgc2V0dGluZ3MoKS0+c2V0
RW5hYmxlU2Nyb2xsQW5pbWF0b3IoZW5hYmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
bmFibGVkKTsKKyNlbmRpZgorfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFpvb21Bbmlt
YXRvclRyYW5zZm9ybShmbG9hdCBzY2FsZSwgZmxvYXQgdHgsIGZsb2F0IHR5LCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JGcmFtZSgpOworCisjaWYg
RU5BQkxFKEdFU1RVUkVfRVZFTlRTKQorICAgIFBsYXRmb3JtR2VzdHVyZUV2ZW50IHBnZShQbGF0
Zm9ybUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwLCBJbnRQb2ludCh0eCwgdHkpLCBJbnRQb2ludCh0
eCwgdHkpLCAwLCBzY2FsZSwgMC5mLCAwLCAwLCAwLCAwKTsKKyAgICBmcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBnZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShzY2FsZSk7CisgICAgVU5VU0VEX1BBUkFNKHR4KTsKKyAgICBVTlVTRURfUEFSQU0odHkpOwor
I2VuZGlmCit9CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0Wm9vbVBhcmFtZXRlcnMoZmxv
YXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElu
dGVybmFsU2V0dGluZ3NHdWFyZEZvckZyYW1lVmlldygpOworCisjaWYgRU5BQkxFKFNNT09USF9T
Q1JPTExJTkcpCisgICAgZnJhbWUoKS0+dmlldygpLT5zY3JvbGxBbmltYXRvcigpLT5zZXRab29t
UGFyYW1ldGVyc0ZvclRlc3Qoc2NhbGUsIHgsIHkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
c2NhbGUpOworICAgIFVOVVNFRF9QQVJBTSh4KTsKKyAgICBVTlVTRURfUEFSQU0oeSk7CisjZW5k
aWYKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQo
Ym9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdz
R3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldE1vY2tTY3JvbGxiYXJzRW5h
YmxlZChlbmFibGVkKTsKK30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRQYXNzd29yZEVj
aG9FbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJu
YWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKKyAgICBpZiAoIW1fcGFzc3dvcmRFY2hvRW5h
YmxlZEJhY2tlZFVwKSB7CisgICAgICAgIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2t1cCA9IHNl
dHRpbmdzKCktPnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKKyAgICAgICAgbV9wYXNzd29yZEVjaG9F
bmFibGVkQmFja2VkVXAgPSB0cnVlOworICAgIH0KKyAgICBzZXR0aW5ncygpLT5zZXRQYXNzd29y
ZEVjaG9FbmFibGVkKGVuYWJsZWQpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBh
c3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcywgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3Mo
KTsKKyAgICBpZiAoIW1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrZWRVcCkgewor
ICAgICAgICBtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzQmFja3VwID0gc2V0dGluZ3Mo
KS0+cGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoKTsKKyAgICAgICAgbV9wYXNzd29yZEVj
aG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwID0gdHJ1ZTsKKyAgICB9CisgICAgc2V0dGluZ3Mo
KS0+c2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoZHVyYXRpb25JblNlY29uZHMpOwor
fQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNS
ZWxhdGl2ZVRvRnJhbWUoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJ
bnRlcm5hbFNldHRpbmdzR3VhcmRGb3JGcmFtZVZpZXcoKTsKKyAgICBmcmFtZSgpLT52aWV3KCkt
PnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZW5hYmxlZCk7Cit9
CisKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdz
R3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldFVuaWZpZWRUZXh0Q2hlY2tl
ckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jvb2wgSW50ZXJuYWxTZXR0aW5nczo6dW5pZmllZFRl
eHRDaGVja2luZ0VuYWJsZWQoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0
aW5nc0d1YXJkRm9yU2V0dGluZ3NSZXR1cm4oZmFsc2UpOworICAgIHJldHVybiBzZXR0aW5ncygp
LT51bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKCk7Cit9CisKK2Zsb2F0IEludGVybmFsU2V0dGlu
Z3M6OnBhZ2VTY2FsZUZhY3RvcihFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNl
dHRpbmdzR3VhcmRGb3JQYWdlUmV0dXJuKDApOworICAgIHJldHVybiBwYWdlKCktPnBhZ2VTY2Fs
ZUZhY3RvcigpOworfQorCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBhZ2VTY2FsZUZhY3Rv
cihmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JQYWdlKCk7CisgICAgcGFnZSgpLT5zZXRQYWdl
U2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkpKTsKK30KKwordm9pZCBJbnRl
cm5hbFNldHRpbmdzOjpzZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygp
OworICAgIHNldHRpbmdzKCktPnNldFBlclRpbGVEcmF3aW5nRW5hYmxlZChlbmFibGVkKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMWFhMDRhMTUxMGJiMmEwZDMyZWM0ZjdlYjVjNjFmZjc3NTZjYjgxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTAsMCAr
MSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgSW50ZXJuYWxTZXR0aW5nc19oCisjZGVmaW5lIEludGVy
bmFsU2V0dGluZ3NfaAorCisjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBQYWdlOworY2xhc3MgU2V0dGluZ3M7CisKK2NsYXNzIEludGVybmFsU2V0dGlu
Z3MgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnRlcm5hbFNldHRpbmdzPiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBwdWJsaWMgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJbnRlcm5hbFNldHRpbmdzPiBjcmVhdGUoRnJhbWUqLCBJbnRl
cm5hbFNldHRpbmdzKiBvbGQpOworICAgIHZpcnR1YWwgfkludGVybmFsU2V0dGluZ3MoKTsKKwor
ICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoaW50IG1heGltdW1S
ZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXpl
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhib29sIGVuYWJsZWQsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRl
cnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0RW5h
YmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9p
ZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oZmxvYXQgc2NhbGUsIGZsb2F0IHR4LCBmbG9hdCB0
eSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0Wm9vbVBhcmFtZXRlcnMoZmxvYXQgc2Nh
bGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldE1vY2tT
Y3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHNldFBhc3N3b3JkRWNob0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhkb3VibGUgZHVyYXRpb25J
blNlY29uZHMsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFNob3VsZExheW91dEZpeGVk
RWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworICAg
IGJvb2wgdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRXhjZXB0aW9uQ29kZSYpOworICAgIGZs
b2F0IHBhZ2VTY2FsZUZhY3RvcihFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRQYWdlU2Nh
bGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZvaWQgc2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIEludGVybmFsU2V0dGluZ3MoRnJhbWUqLCBJbnRl
cm5hbFNldHRpbmdzKiBvbGQpOworCisgICAgU2V0dGluZ3MqIHNldHRpbmdzKCkgY29uc3Q7Cisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisgICAgUGFnZSogcGFnZSgpIGNvbnN0Owor
CisgICAgZG91YmxlIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXA7CisgICAg
Ym9vbCBtX3Bhc3N3b3JkRWNob0VuYWJsZWRCYWNrdXAgOiAxOworICAgIGJvb2wgbV9wYXNzd29y
ZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwIDogMTsKKyAgICBib29sIG1fcGFzc3dvcmRF
Y2hvRW5hYmxlZEJhY2tlZFVwIDogMTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MWE3NzA4OTRjZmZjM2RjNTQ1MDQwYWI3ZGEzZDViMGU3NDc1NTI5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApA
QCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgT21pdENvbnN0cnVjdG9yCisgICAgXSBJbnRlcm5hbFNldHRpbmdzIHsKKyAgICAg
ICAgdm9pZCBzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhpbiBsb25nIG1heGlt
dW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW4gbG9uZyBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250
ZW50U2l6ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oaW4gYm9vbGVh
biBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRFbmFibGVD
b21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVk
KGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQg
c2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0Wm9v
bUFuaW1hdG9yVHJhbnNmb3JtKGluIGZsb2F0IHNjYWxlLCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQg
dHkpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJz
KGluIGZsb2F0IHNjYWxlLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVj
aG9FbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoaW4gZG91YmxlIGR1cmF0
aW9uSW5TZWNvbmRzKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRTaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2lu
Z0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIGJvb2xlYW4gdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIHJhaXNlcyhET01FeGNlcHRp
b24pOworICAgICAgICB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvcihpbiBmbG9hdCBzY2FsZUZhY3Rv
ciwgaW4gbG9uZyB4LCBpbiBsb25nIHkpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIH07Cit9
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAwYjRmNTNjZGNlYjczZDdl
ZmRkZGNjMWQ1OGE2OGJiOGFmMzY3MjRhLi5iNDlhMzAwNTIxODhiY2RlOTdjOWZiNjUxNTdlZWEy
YjU3MTI4OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00MCw2ICs0
MCw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxl
bWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJJbnRl
cm5hbFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxhbmd1YWdl
LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKQEAgLTEwNCwyMSArMTA1LDE5
IEBAIHN0YXRpYyBTcGVsbENoZWNrZXIqIHNwZWxsY2hlY2tlcihEb2N1bWVudCogZG9jdW1lbnQp
CiAKIGNvbnN0IGNoYXIqIEludGVybmFsczo6aW50ZXJuYWxzSWQgPSAiaW50ZXJuYWxzIjsKIAot
UGFzc1JlZlB0cjxJbnRlcm5hbHM+IEludGVybmFsczo6Y3JlYXRlKCkKK1Bhc3NSZWZQdHI8SW50
ZXJuYWxzPiBJbnRlcm5hbHM6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBJbnRlcm5hbHMpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW50
ZXJuYWxzKGRvY3VtZW50KSk7CiB9CiAKIEludGVybmFsczo6fkludGVybmFscygpCiB7CiB9CiAK
LUludGVybmFsczo6SW50ZXJuYWxzKCkKK0ludGVybmFsczo6SW50ZXJuYWxzKERvY3VtZW50KiBk
b2N1bWVudCkKICAgICA6IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcigwKQotICAgICwgbV9wYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2t1cCgwKQotICAgICwgbV9wYXNzd29yZEVjaG9E
dXJhdGlvbkluU2Vjb25kc0JhY2tlZFVwKGZhbHNlKQotICAgICwgbV9wYXNzd29yZEVjaG9FbmFi
bGVkQmFja2VkVXAoZmFsc2UpCiB7CisgICAgcmVzZXQoZG9jdW1lbnQpOwogfQogCiBib29sIElu
dGVybmFsczo6aXNQcmVsb2FkZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHVy
bCkKQEAgLTIzOSwxNyArMjM4LDYgQEAgdm9pZCBJbnRlcm5hbHM6OnNlbGVjdENvbG9ySW5Db2xv
ckNob29zZXIoRWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiBjb2xvclYKIH0KICNlbmRp
ZgogCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLXZvaWQgSW50ZXJuYWxzOjpzZXRJbnNwZWN0b3JS
ZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhEb2N1bWVudCogZG9jdW1lbnQsIGludCBtYXhpbXVtUmVz
b3VyY2VzQ29udGVudFNpemUsIGludCBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBh
Z2UoKSB8fCAhZG9jdW1lbnQtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKSB7Ci0gICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IGRvY3VtZW50LT5wYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0UmVzb3VyY2VzRGF0
YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgbWF4
aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpOwotfQotI2VuZGlmCi0KIFBhc3NSZWZQdHI8
Q2xpZW50UmVjdD4gSW50ZXJuYWxzOjpib3VuZGluZ0JveChFbGVtZW50KiBlbGVtZW50LCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWVsZW1lbnQpIHsKQEAgLTI5OSwxNDEgKzI4Nyw2
IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IEludGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUq
IG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya2VyCiAgICAgcmV0dXJuIFJhbmdlOjpjcmVhdGUobm9k
ZS0+ZG9jdW1lbnQoKSwgbm9kZSwgbWFya2Vyc1tpbmRleF0tPnN0YXJ0T2Zmc2V0KCksIG5vZGUs
IG1hcmtlcnNbaW5kZXhdLT5lbmRPZmZzZXQoKSk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpzZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZShEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRp
bmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0Rm9yY2VDb21wb3NpdGlu
Z01vZGUoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5n
cygpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBJbnRlcm5h
bHM6OnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhEb2N1bWVudCogZG9j
dW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1
bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC0+c2V0dGlu
Z3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXNFbmFibGVk
KGVuYWJsZWQpOwotfQotCi12b2lkIEludGVybmFsczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5h
YmxlZChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChlbmFi
bGVkKTsKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQo
RG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewot
ICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5zZXR0aW5ncygpKSB7Ci0gICAgICAgIGVj
ID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZG9j
dW1lbnQtPnNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoZW5hYmxlZCk7
Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRFbmFibGVTY3JvbGxBbmltYXRvcihEb2N1bWVudCog
ZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFk
b2N1bWVudCB8fCAhZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBFTkFCTEUoU01PT1RI
X1NDUk9MTElORykKLSAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0RW5hYmxlU2Nyb2xsQW5p
bWF0b3IoZW5hYmxlZCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKLSNlbmRp
ZgotfQotCi12b2lkIEludGVybmFsczo6c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKERvY3VtZW50
ICpkb2N1bWVudCwgZmxvYXQgc2NhbGUsIGZsb2F0IHR4LCBmbG9hdCB0eSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSB8fCAhZG9j
dW1lbnQtPnZpZXcoKS0+ZnJhbWUoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykK
LSAgICBQbGF0Zm9ybUdlc3R1cmVFdmVudCBwZ2UoUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJs
ZVRhcCwgSW50UG9pbnQodHgsIHR5KSwgSW50UG9pbnQodHgsIHR5KSwgMCwgc2NhbGUsIDAuZiwg
MCwgMCwgMCwgMCk7Ci0gICAgZG9jdW1lbnQtPnZpZXcoKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVy
KCktPmhhbmRsZUdlc3R1cmVFdmVudChwZ2UpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2Nh
bGUpOwotICAgIFVOVVNFRF9QQVJBTSh0eCk7Ci0gICAgVU5VU0VEX1BBUkFNKHR5KTsKLSNlbmRp
ZgotfQotCi12b2lkIEludGVybmFsczo6c2V0Wm9vbVBhcmFtZXRlcnMoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBmbG9hdCBzY2FsZSwgZmxvYXQgeCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSB8fCAhZG9jdW1lbnQtPnZp
ZXcoKS0+ZnJhbWUoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQotICAgIGRv
Y3VtZW50LT52aWV3KCktPnNjcm9sbEFuaW1hdG9yKCktPnNldFpvb21QYXJhbWV0ZXJzRm9yVGVz
dChzY2FsZSwgeCwgeSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzY2FsZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHgpOwotICAgIFVOVVNFRF9QQVJBTSh5KTsKLSNlbmRpZgotfQotCi12b2lkIElu
dGVybmFsczo6c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFk
b2N1bWVudC0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRN
b2NrU2Nyb2xsYmFyc0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgSW50ZXJuYWxzOjpzZXRQ
YXNzd29yZEVjaG9FbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGlu
Z3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGlmICghbV9wYXNzd29yZEVjaG9FbmFibGVkQmFja2VkVXApIHsKLSAg
ICAgICAgbV9wYXNzd29yZEVjaG9FbmFibGVkQmFja3VwID0gZG9jdW1lbnQtPnNldHRpbmdzKCkt
PnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKLSAgICAgICAgbV9wYXNzd29yZEVjaG9FbmFibGVkQmFj
a2VkVXAgPSB0cnVlOwotICAgIH0KLSAgICBkb2N1bWVudC0+c2V0dGluZ3MoKS0+c2V0UGFzc3dv
cmRFY2hvRW5hYmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNldFBhc3N3b3Jk
RWNob0R1cmF0aW9uSW5TZWNvbmRzKERvY3VtZW50KiBkb2N1bWVudCwgZG91YmxlIGR1cmF0aW9u
SW5TZWNvbmRzLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFk
b2N1bWVudC0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghbV9wYXNzd29yZEVjaG9EdXJhdGlv
bkluU2Vjb25kc0JhY2tlZFVwKSB7Ci0gICAgICAgIG1fcGFzc3dvcmRFY2hvRHVyYXRpb25JblNl
Y29uZHNCYWNrdXAgPSBkb2N1bWVudC0+c2V0dGluZ3MoKS0+cGFzc3dvcmRFY2hvRHVyYXRpb25J
blNlY29uZHMoKTsKLSAgICAgICAgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tl
ZFVwID0gdHJ1ZTsKLSAgICB9Ci0gICAgZG9jdW1lbnQtPnNldHRpbmdzKCktPnNldFBhc3N3b3Jk
RWNob0R1cmF0aW9uSW5TZWNvbmRzKGR1cmF0aW9uSW5TZWNvbmRzKTsKLX0KLQogdm9pZCBJbnRl
cm5hbHM6OnNldFNjcm9sbFZpZXdQb3NpdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIGxvbmcgeCwg
bG9uZyB5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+dmlldygpKSB7CkBAIC00ODIsMTcgKzMzNSw3IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNl
dChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIG9ic2VydmVGcmFt
ZShkb2N1bWVudC0+ZnJhbWUoKSk7Ci0KLSAgICBpZiAobV9wYXNzd29yZEVjaG9EdXJhdGlvbklu
U2Vjb25kc0JhY2tlZFVwKSB7Ci0gICAgICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRQYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhtX3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRz
QmFja3VwKTsKLSAgICAgICAgbV9wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2tlZFVw
ID0gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tlZFVw
KSB7Ci0gICAgICAgIGRvY3VtZW50LT5zZXR0aW5ncygpLT5zZXRQYXNzd29yZEVjaG9FbmFibGVk
KG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2t1cCk7Ci0gICAgICAgIG1fcGFzc3dvcmRFY2hvRW5h
YmxlZEJhY2tlZFVwID0gZmFsc2U7Ci0gICAgfQotCisgICAgbV9zZXR0aW5ncyA9IEludGVybmFs
U2V0dGluZ3M6OmNyZWF0ZShkb2N1bWVudC0+ZnJhbWUoKSwgbV9zZXR0aW5ncy5nZXQoKSk7CiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpKQogICAgICAgICBwYWdlLT5zZXRQ
YWdpbmF0aW9uKFBhZ2U6OlBhZ2luYXRpb24oKSk7CiB9CkBAIC02MDQsNTYgKzQ0Nyw2IEBAIHVu
c2lnbmVkIEludGVybmFsczo6bGVuZ3RoRnJvbVJhbmdlKEVsZW1lbnQqIHNjb3BlLCBjb25zdCBS
YW5nZSogcmFuZ2UsIEV4Y2VwdGlvCiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotdm9pZCBJbnRl
cm5hbHM6OnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoRG9jdW1l
bnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlm
ICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IGRvY3VtZW50LT52aWV3KCk7Ci0gICAgZnJhbWVWaWV3LT5zZXRTaG91bGRMYXlv
dXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lKGVuYWJsZWQpOwotfQotCi12b2lkIEludGVy
bmFsczo6c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5mcmFtZSgpIHx8ICFkb2N1bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKSkgewot
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGRvY3VtZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpLT5zZXRVbmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkKGVuYWJsZWQpOwotfQotCi1ib29sIEludGVybmFsczo6dW5pZmllZFRleHRDaGVj
a2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1lbnQtPmZyYW1l
KCktPnNldHRpbmdzKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCkt
PnNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKTsKLX0KLQotZmxvYXQgSW50
ZXJuYWxzOjpwYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQgKmRvY3VtZW50LCBFeGNlcHRpb25Db2Rl
JiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0K
LSAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7Ci19Ci0KLXZv
aWQgSW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9h
dCBzY2FsZUZhY3RvciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBp
ZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJ
RF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGRvY3VtZW50LT5wYWdl
KCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOwotfQot
CiBpbnQgSW50ZXJuYWxzOjpsYXN0U3BlbGxDaGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVudCog
ZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFNwZWxsQ2hlY2tlciogY2hlY2tl
ciA9IHNwZWxsY2hlY2tlcihkb2N1bWVudCk7CkBAIC02NzgsMTYgKzQ3MSw2IEBAIGludCBJbnRl
cm5hbHM6Omxhc3RTcGVsbENoZWNrUHJvY2Vzc2VkU2VxdWVuY2UoRG9jdW1lbnQqIGRvY3VtZW50
LCBFeGNlcHRpb25Db2RlCiAgICAgcmV0dXJuIGNoZWNrZXItPmxhc3RQcm9jZXNzZWRTZXF1ZW5j
ZSgpOwogfQogCi12b2lkIEludGVybmFsczo6c2V0UGVyVGlsZURyYXdpbmdFbmFibGVkKERvY3Vt
ZW50KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBp
ZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+c2V0dGluZ3MoKSkgewotICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGRvY3VtZW50
LT5zZXR0aW5ncygpLT5zZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIFZl
Y3RvcjxTdHJpbmc+IEludGVybmFsczo6dXNlclByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIFdlYkNvcmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDNiNmFhNGNiYTQ1MjFmODQ5ZGFhNGI0ZDllOWRiOWEy
MDcxMGM1YzAuLjFhODJhMjQ5MGNlZGFiYTgwNzRjNTc4M2Q5ZjA0MGJhMDFlOTMxMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBDbGllbnRSZWN0OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50
OworY2xhc3MgSW50ZXJuYWxTZXR0aW5nczsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsKIGNs
YXNzIFNoYWRvd1Jvb3Q7CkBAIC00Niw3ICs0Nyw3IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CiBjbGFzcyBJbnRlcm5hbHMgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnRlcm5hbHM+LAogICAg
ICAgICAgICAgICAgICAgcHVibGljIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW50ZXJuYWxzPiBjcmVhdGUoKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJbnRlcm5hbHM+IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHZpcnR1YWwgfklu
dGVybmFscygpOwogCiAgICAgdm9pZCByZXNldChEb2N1bWVudCopOwpAQCAtNzQsMzIgKzc1LDEx
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoRWxlbWVudCos
IGNvbnN0IFN0cmluZyYgY29sb3JWYWx1ZSk7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShJTlNQRUNU
T1IpCi0gICAgdm9pZCBzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhEb2N1bWVu
dCosIGludCBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGludCBtYXhpbXVtU2luZ2xlUmVz
b3VyY2VDb250ZW50U2l6ZSwgRXhjZXB0aW9uQ29kZSYpOwotI2Vsc2UKLSAgICB2b2lkIHNldElu
c3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKERvY3VtZW50KiwgaW50IG1heGltdW1SZXNv
dXJjZXNDb250ZW50U2l6ZSwgaW50IG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplLCBF
eGNlcHRpb25Db2RlJikgeyB9Ci0jZW5kaWYKLQogICAgIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4g
Ym91bmRpbmdCb3goRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHVuc2lnbmVkIG1h
cmtlckNvdW50Rm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIFBhc3NSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiwgY29uc3QgU3Ry
aW5nJiwgdW5zaWduZWQsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIHZvaWQgc2V0Rm9yY2VDb21w
b3NpdGluZ01vZGUoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAg
ICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihEb2N1bWVudCosIGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRp
bmdGb3JTY3JvbGxhYmxlRnJhbWVzKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKERvY3VtZW50Kiwg
Ym9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZp
bHRlcnNFbmFibGVkKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0K
LSAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKERvY3VtZW50KiwgYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oRG9j
dW1lbnQqLCBmbG9hdCBzY2FsZSwgZmxvYXQgdHgsIGZsb2F0IHR5LCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgdm9pZCBzZXRab29tUGFyYW1ldGVycyhEb2N1bWVudCosIGZsb2F0IHNjYWxlLCBmbG9h
dCB4LCBmbG9hdCB5LCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICB2b2lkIHNldE1vY2tTY3JvbGxi
YXJzRW5hYmxlZChEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotCi0g
ICAgdm9pZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25k
cyhEb2N1bWVudCosIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYpOwot
CiAgICAgdm9pZCBzZXRTY3JvbGxWaWV3UG9zaXRpb24oRG9jdW1lbnQqLCBsb25nIHgsIGxvbmcg
eSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzZXRQYWdpbmF0aW9uKERvY3VtZW50Kiwg
Y29uc3QgU3RyaW5nJiBtb2RlLCBpbnQgZ2FwLCBFeGNlcHRpb25Db2RlJik7CkBAIC0xMTQsMzEg
Kzk0LDIxIEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZUZyb21Mb2NhdGlv
bkFuZExlbmd0aChFbGVtZW50KiBzY29wZSwgaW50IHJhbmdlTG9jYXRpb24sIGludCByYW5nZUxl
bmd0aCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHVuc2lnbmVkIGxvY2F0aW9uRnJvbVJhbmdlKEVs
ZW1lbnQqIHNjb3BlLCBjb25zdCBSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25l
ZCBsZW5ndGhGcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUsIGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9u
Q29kZSYpOwotICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9G
cmFtZShEb2N1bWVudCosIGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIHZvaWQgc2V0VW5p
ZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBib29sLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgYm9vbCB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCosIEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIGludCBsYXN0U3BlbGxDaGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVu
dCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBpbnQgbGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1
ZW5jZShEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAKLSAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IoRG9jdW1lbnQqLCAgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0UGFnZVNj
YWxlRmFjdG9yKERvY3VtZW50KiwgZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhj
ZXB0aW9uQ29kZSYpOwotCi0gICAgdm9pZCBzZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoRG9jdW1l
bnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLQogICAgIFZlY3RvcjxTdHJpbmc+
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIAogICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBpbnRlcm5hbHNJZDsKIAorICAgIEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzKCkgY29u
c3QgeyByZXR1cm4gbV9zZXR0aW5ncy5nZXQoKTsgfQorCiBwcml2YXRlOgotICAgIEludGVybmFs
cygpOworICAgIGV4cGxpY2l0IEludGVybmFscyhEb2N1bWVudCopOwogCi0gICAgZG91YmxlIG1f
cGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNrdXA7Ci0gICAgYm9vbCBtX3Bhc3N3b3Jk
RWNob0VuYWJsZWRCYWNrdXAgOiAxOwotICAgIGJvb2wgbV9wYXNzd29yZEVjaG9EdXJhdGlvbklu
U2Vjb25kc0JhY2tlZFVwIDogMTsKLSAgICBib29sIG1fcGFzc3dvcmRFY2hvRW5hYmxlZEJhY2tl
ZFVwIDogMTsKKyAgICBSZWZQdHI8SW50ZXJuYWxTZXR0aW5ncz4gbV9zZXR0aW5nczsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApp
bmRleCA4ODBlZGU2OTRiNzVlMDVjYzdhODk1YjliZmU1NGNkZTQ1YmMwOGM2Li4wZTI1MmNjMTcw
ZWMyMDMyYzAwMzE5OTgxYjk2NTM3MTQ2MDlmMDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCkBAIC00OSwyNSArNDksMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZv
aWQgc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihpbiBFbGVtZW50IGVsZW1lbnQsIGluIERPTVN0
cmluZyBjb2xvclZhbHVlKTsKICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVz
b3VyY2VzRGF0YVNpemVMaW1pdHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgbWF4aW11
bVJlc291cmNlc0NvbnRlbnRTaXplLCBpbiBsb25nIG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRl
bnRTaXplKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLQogICAgICAgICBDbGllbnRSZWN0IGJvdW5k
aW5nQm94KGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IHVuc2lnbmVkIGxvbmcgbWFya2VyQ291bnRGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3Ry
aW5nIG1hcmtlclR5cGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBSYW5nZSBtYXJr
ZXJSYW5nZUZvck5vZGUoaW4gTm9kZSBub2RlLCBpbiBET01TdHJpbmcgbWFya2VyVHlwZSwgaW4g
dW5zaWduZWQgbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9p
ZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVh
biBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmFibGVD
b21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xl
YW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBi
b29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4g
ZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0
ZWRGaWx0ZXJzRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVk
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmlt
YXRvcihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0IHNjYWxlLCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQgdHkp
IHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKGlu
IERvY3VtZW50IGRvY3VtZW50LCBpbiBmbG9hdCBzY2FsZSwgaW4gZmxvYXQgeCwgaW4gZmxvYXQg
eSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNF
bmFibGVkKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotCi0gICAgICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChpbiBE
b2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhpbiBEb2N1
bWVudCBkb2N1bWVudCwgaW4gZG91YmxlIGR1cmF0aW9uSW5TZWNvbmRzKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKLQogICAgICAgICB2b2lkIHNldFNjcm9sbFZpZXdQb3NpdGlvbihpbiBEb2N1bWVu
dCBkb2N1bWVudCwgaW4gbG9uZyB4LCBpbiBsb25nIHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
CiAgICAgICAgIHZvaWQgc2V0UGFnaW5hdGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRE9N
U3RyaW5nIG1vZGUsIGluIGxvbmcgZ2FwKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTg0LDE3
ICs2OSwxMiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdW5zaWduZWQgbG9uZyBsb2NhdGlv
bkZyb21SYW5nZShpbiBFbGVtZW50IHNjb3BlLCBpbiBSYW5nZSByYW5nZSkgcmFpc2VzIChET01F
eGNlcHRpb24pOwogICAgICAgICB1bnNpZ25lZCBsb25nIGxlbmd0aEZyb21SYW5nZShpbiBFbGVt
ZW50IHNjb3BlLCBpbiBSYW5nZSByYW5nZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAg
ICAgIHZvaWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShpbiBE
b2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChpbiBEb2N1bWVu
dCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIGJvb2xlYW4gdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9j
dW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLQogICAgICAgICBsb25nIGxhc3RTcGVsbENo
ZWNrUmVxdWVzdFNlcXVlbmNlKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIGxvbmcgbGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZShpbiBE
b2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgICAgIGZsb2F0
IHBhZ2VTY2FsZUZhY3RvcihpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKGluIERvY3VtZW50IGRvY3VtZW50
LCBpbiBmbG9hdCBzY2FsZUZhY3RvciwgaW4gbG9uZyB4LCBpbiBsb25nIHkpIHJhaXNlcyhET01F
eGNlcHRpb24pOwotCiAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBBcnJheSB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJbnRlcm5hbFNldHRp
bmdzIHNldHRpbmdzOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCA4YTc5NWJmMmY2YjNhY2M3MTNlMjA1YjM3
YzM5Y2ViNzdmOWExNWRhLi4xZDJhNDU3NWIzNzc3Zjg4MzE2YjZiYTVmOWEzYzhhYWJlYTEwN2Y1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9y
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQu
Y3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCiAK
ICNpbmNsdWRlICJJbnRlcm5hbHMuaCIKLSNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgog
I2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0ludGVybmFscy5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KQEAgLTQzLDcgKzQyLDkgQEAgdm9pZCBpbmpl
Y3RJbnRlcm5hbHNPYmplY3QoSlNDb250ZXh0UmVmIGNvbnRleHQpCiAgICAgSlNMb2NrIGxvY2so
U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRl
eHQpOwogICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzdGF0aWNfY2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0gICAgZ2xv
YmFsT2JqZWN0LT5wdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBJZGVudGlmaWVyKGV4ZWMs
IEludGVybmFsczo6aW50ZXJuYWxzSWQpLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgSW50ZXJu
YWxzOjpjcmVhdGUoKSkpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRl
eHQgPSBnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBzY3JpcHRDb250ZXh0LT5pc0RvY3VtZW50KCkgPyBzdGF0aWNfY2FzdDxE
b2N1bWVudCo+KHNjcmlwdENvbnRleHQpIDogMDsKKyAgICBnbG9iYWxPYmplY3QtPnB1dERpcmVj
dChleGVjLT5nbG9iYWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgSW50ZXJuYWxzOjppbnRlcm5h
bHNJZCksIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBJbnRlcm5hbHM6OmNyZWF0ZShkb2N1bWVu
dCkpKTsKIH0KIAogdm9pZCByZXNldEludGVybmFsc09iamVjdChKU0NvbnRleHRSZWYgY29udGV4
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvdjgvV2ViQ29yZVRlc3RTdXBw
b3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvdjgvV2ViQ29yZVRlc3RTdXBwb3J0LmNw
cAppbmRleCA3NjMwMmVkODJhNjlhMDAwZGQwNmMxMjc1MzhlZDkzZjg5MDEzYTA0Li4yOGMzNzI5
ZjMzMzQ5NDYwYmYwMzcxYThkZmRhNTRkYzZhOWM4YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL3Y4L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy92OC9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBAIC00Miw3ICs0Miw5IEBAIHZv
aWQgaW5qZWN0SW50ZXJuYWxzT2JqZWN0KHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCkK
ICAgICB2ODo6Q29udGV4dDo6U2NvcGUgY29udGV4dFNjb3BlKGNvbnRleHQpOwogICAgIHY4OjpI
YW5kbGVTY29wZSBzY29wZTsKIAotICAgIGNvbnRleHQtPkdsb2JhbCgpLT5TZXQodjg6OlN0cmlu
Zzo6TmV3KEludGVybmFsczo6aW50ZXJuYWxzSWQpLCB0b1Y4KEludGVybmFsczo6Y3JlYXRlKCkp
KTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHNjcmlwdENvbnRl
eHQtPmlzRG9jdW1lbnQoKSA/IHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc2NyaXB0Q29udGV4dCkg
OiAwOworICAgIGNvbnRleHQtPkdsb2JhbCgpLT5TZXQodjg6OlN0cmluZzo6TmV3KEludGVybmFs
czo6aW50ZXJuYWxzSWQpLCB0b1Y4KEludGVybmFsczo6Y3JlYXRlKGRvY3VtZW50KSkpOwogfQog
CiB2b2lkIHJlc2V0SW50ZXJuYWxzT2JqZWN0KHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4
dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBl
ZDA5ZWRkNDk0NmFiOTExZGM5M2EzZGZiYjJhYTQzZGU4NDliOGVhLi5iZGJlNWU5MGIzYWQwZTA3
Y2JjMGI2NWFlOWUzNzk4MzBlOTJmMjQ0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDEtMjMgIE1PUklUQSBI
YWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgW1JlZmFjdG9yaW5nXVtJbnRl
cm5hbHNdIFNob3VsZCBoYXZlIEludGVybmFsU2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgc28gbmV3
IGZpbGVzLgorCiAyMDEyLTAxLTI0ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbUXRdIENsZWFudXAgdGVzdGZvbnRzIGhhbmRsaW5nCmRpZmYgLS1naXQg
YS9Ub29scy9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCmluZGV4IDkyYmI3
NTU2MWVhNDVjMTRiY2Y4OTg3YjA0YjQ1YmJhMDZiODI4NDQuLmQwNDdmMDhhMGI2ZDQ0NjM2NjAx
YTZiY2ZlNGQ0YTE2NzI1MmZmZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCisr
KyBiL1Rvb2xzL0dOVW1ha2VmaWxlLmFtCkBAIC00MywxMyArNDMsMTggQEAgbGliV2ViQ29yZUlu
dGVybmFsc19sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V3JhcHBlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggXAorCVNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL0pTSW50ZXJuYWxzQ3Vz
dG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oCiAK
IGxpYndlYmNvcmVpbnRlcm5hbHNfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0ludGVybmFscy5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJbnRl
cm5hbHMuaAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJbnRlcm5hbHMuaCAgIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSW50ZXJuYWxTZXR0aW5ncy5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNJbnRlcm5hbFNldHRpbmdzLmgKKwogbm9kaXN0X2xpYldlYkNvcmVJbnRl
cm5hbHNfbGFfU09VUkNFUyA9ICQobGlid2ViY29yZWludGVybmFsc19idWlsdF9zb3VyY2VzKQog
QlVJTFRfU09VUkNFUyArPSAkKGxpYndlYmNvcmVpbnRlcm5hbHNfYnVpbHRfc291cmNlcykKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDY4OTIzMzI4OTlhMmFjMzM4ZDQyY2MyYTc3N2I3NTFlNmNiNGU2OWQuLjQwZGQzZjk2
OTZiMThiMmMzMTk2ZjVjZTEwZGYyZjgyM2Q4ZTM2NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NCBAQAor
MjAxMi0wMS0yNCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBbUmVmYWN0b3JpbmddW0ludGVybmFsc10gU2hvdWxkIGhhdmUgSW50ZXJuYWxTZXR0aW5ncwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MjQKKwor
ICAgICAgICBVcGRhdGVkIHRvIGZvbGxvdyBBUEkgcmVjZWl2ZXIgY2hhbmdlLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1jb21wb3NpdGVkLXN3aXRjaC5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1s
OgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zv
cm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZy
YW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5lci5odG1sOgorICAgICAgICAqIGNv
bXBvc2l0aW5nL3Jlc291cmNlcy9tb2NrX3Njcm9sbGJhcnMuanM6CisgICAgICAgICogY29tcG9z
aXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL2lucHV0L3Jlc291cmNlcy9wYXNzd29yZC1lY2hvLmpzOgorICAgICAgICAoaW5pdCk6Cisg
ICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLW11dGF0aW9uLmh0bWw6
CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWw6CisgICAg
ICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVj
dC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVj
dHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNs
aWVudC1yZWN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGll
bnQtcmVjdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9pZnJhbWUtaW5uZXItc2l6ZS1zY2Fs
aW5nLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vd2luZG93LWlubmVyLXNpemUtc2NhbGluZy5o
dG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sOgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sOgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGlj
ay1pZnJhbWUuanM6CisgICAgICAgIChpZnJhbWVMb2FkZWQpOgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5qczoKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRt
bDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJl
LWNsaWNrLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhp
dC5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1s
OgorICAgICAgICAqIGZhc3QvZnJhbWVzL2lmcmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWw6CisgICAg
ICAgICogZmFzdC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtYm90dG9tLWluLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sOgorICAgICAg
ICAqIGZhc3QvcmVwYWludC9zY2FsZS1wYWdlLXNocmluay5odG1sOgorICAgICAgICAqIGZhc3Qv
dHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrLXRlc3QuanM6CisgICAgICAgIChy
ZXNldEluc3BlY3RvclJlc291cmNlc0RhdGEpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNvbnRlbnQtcmVwbGFj
ZW1lbnQteGhyLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
YWNjZWxlcmF0ZWQtZHJhd2luZy9hbHBoYS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvc3ZnLWZpbHRlcnMuaHRtbDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1t
b2RlL2ZvcmNlLWNvbXBvc2l0ZS1lbXB0eS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvbm8tb3ZlcmZsb3ctaWZyYW1l
LWxheWVyLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9y
Y2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1oaWRkZW4taWZyYW1lLWxheWVyLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmct
bW9kZS9vdmVyZmxvdy1pZnJhbWUtZW50ZXItY29tcG9zaXRpbmcuaHRtbDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJm
bG93LWlmcmFtZS1sYXllci5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxlYXZlLWNvbXBv
c2l0aW5nLmh0bWw6CisKIDIwMTItMDEtMjUgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdt
YWlsLmNvbT4KIAogICAgICAgICBbR3RrXSBVcGRhdGUgZXhwZWN0ZWQgbGF5b3V0IHRlc3QgcmVz
dWx0cyBhZnRlciByMTA1Njg2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLWRvd24uaHRtbAppbmRleCAzNzcxZjVlNzNlOGFjZjA2YmMwZWM3Y2IyMmY3
MTZiOWMxYTJiZGY5Li5hOGU4NGFjNmMyZTdmOTcxOTFkMzA1NDkwMWFkZWNlNDYwZmU2MThiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3du
Lmh0bWwKQEAgLTE5LDggKzE5LDggQEAKIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewog
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVu
YWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsK
KyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JG
aXhlZFBvc2l0aW9uKHRydWUpOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQ
YWdlU2NhbGVGYWN0b3IoMC41LCAwLCAwKTsKICAgICB9CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1
ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1w
b3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCmlu
ZGV4IDBjNTg1NDFhZmMwNzEyYzk5OGQ4YzRjOWUwOWQ5MDc2OTY5MDUzYmEuLjUzMjdhMThmYWM3
ZGQ1NjBkYzBhZjdkYjg5NWM3ZjY5ZDE3MzNlZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0xOSw4ICsxOSw4IEBACiA8c2NyaXB0Pgog
ICBmdW5jdGlvbiBzY2FsZSgpIHsKICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAg
d2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9j
dW1lbnQsIHRydWUpOwotICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3Io
ZG9jdW1lbnQsIDIsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRF
bmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7CisgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAwKTsKICAgICB9CiAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQodHJ1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXN3aXRjaC5odG1sIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1zd2l0
Y2guaHRtbAppbmRleCBkMTk5N2UzYjUwZmYzMTllNWU2ZmZjMWM3YmYwMWRlN2QyYWYzMDZiLi5k
YWFkOWM5ZDIyYjlhYzI1OTZjYTU4NTM4MDczY2RlMTVkNTUxYjBlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXN3
aXRjaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLWNvbXBvc2l0ZWQtc3dpdGNoLmh0bWwKQEAgLTE5LDcgKzE5LDcgQEAKICAgPC9zdHls
ZT4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KICAg
ICBpZiAod2luZG93LmludGVybmFscykgCi0gICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJs
ZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7CisgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlv
bih0cnVlKTsKIAogICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBv
c2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRt
bAppbmRleCAzYzcyNWRhZTE0MWQ1YTNjNTdlNWE2NDI0MWM1NjkwMWI0MDhmZjAzLi5lYTMwMjNl
N2EwNGQ5YzZkOGY5NzY1OGNhNTJhOTlkYzdiNDA1M2RhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1w
YWdlLXNjYWxlLWRvd24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbApA
QCAtMTksOCArMTksOCBAQAogPHNjcmlwdD4KICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBpZiAo
d2luZG93LmludGVybmFscykgewotICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21w
b3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CisgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3Np
dGlvbih0cnVlKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxl
RmFjdG9yKDAuNSwgMCwgMCk7CiAgICAgfQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
aWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5o
dG1sCmluZGV4IDE2YWIwNzUxY2JkMDMwZjI0ZWNjYWQxZjU3NjEwMWYwODU0ZDYzNjEuLjQwZGQ3
NDMwOWQ1OTIxMTdiYTA5MjJlZTcyMDUwYTZkNjk0YmNiMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTE5LDgg
KzE5LDggQEAKIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKHRydWUp
OworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwg
MCwgMCk7CiAgICAgfQogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRv
d24uaHRtbAppbmRleCA0NWNlMDM1ZjI5MjI5NDYwZTMzNDI3ODBjYmY0YzFmYjU2ZWMyMzY2Li5j
MTFlZGRiNWNmODMzNjNiN2M2MDhkNmM1NWE0M2RkYTUwMTBkMTM5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxl
LWRvd24uaHRtbApAQCAtMjEsOCArMjEsOCBAQAogPHNjcmlwdD4KICAgZnVuY3Rpb24gc2NhbGUo
KSB7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAs
IDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogICAgIH0KICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQogICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCh0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAppbmRleCBkZjg2NjdiMWEyNGQ5M2VkMjMxOWM5YzQ5NWEx
NTk3NmNhZDhkYWRkLi40ZTk5YzhlYjNiMjc5Y2RmZGY0YjI5NGY5ODUwNGNmODQ0NjQyZjIxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS5odG1sCkBAIC0yMSw4ICsyMSw4IEBACiA8c2NyaXB0PgogICBmdW5jdGlvbiBz
Y2FsZSgpIHsKICAgICBpZiAod2luZG93LmludGVybmFscykgewotICAgICAgd2luZG93LmludGVy
bmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUp
OwotICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIs
IDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3Np
dGluZ0ZvckZpeGVkUG9zaXRpb24odHJ1ZSk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAwKTsKICAgICB9CiAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQodHJ1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3Jl
c291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9pZnJhbWVzL3Jlc291cmNlcy9zY3JvbGxncmFuZGNoaWxkLWlubmVyLmh0bWwKaW5kZXgg
YzQyYTVmMTIzZmI2MzVjYzIwNzA3NGExMjE4YTZlYzI2NzZhMzVhMi4uYjBjMTAzYjczNjQwZjVl
ZjYwN2E5ZTUxZDJlNDc4MzUxYzdmODgwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaWZyYW1lcy9yZXNvdXJjZXMvc2Nyb2xsZ3JhbmRjaGlsZC1pbm5lci5odG1sCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcmVzb3VyY2VzL3Njcm9sbGdyYW5kY2hp
bGQtaW5uZXIuaHRtbApAQCAtMjMsNyArMjMsNyBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0Pgog
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgd2luZG93LmludGVybmFscy5zZXRNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQoZG9jdW1lbnQsIHRydWUpOworICAgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQodHJ1ZSk7CiAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCh0cnVlKTsKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jlc291cmNlcy9tb2NrX3Nj
cm9sbGJhcnMuanMgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZXNvdXJjZXMvbW9ja19zY3Jv
bGxiYXJzLmpzCmluZGV4IDc0MjhmYmFhMGZmOTIwNDAyMzE1N2EzM2Q1Yjk5MjI0Yzc0MTFjMDEu
LjcxYmRmNzAzZDdjY2JjMTAyMmQ0N2UzYjBhZWQ2ZDcwNjJkOGM1NGYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jlc291cmNlcy9tb2NrX3Njcm9sbGJhcnMuanMKKysrIGIv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVzb3VyY2VzL21vY2tfc2Nyb2xsYmFycy5qcwpAQCAt
MSwzICsxLDMgQEAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gIHdpbmRvdy5pbnRlcm5hbHMu
c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGRvY3VtZW50LCB0cnVlKTsKKyAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQodHJ1ZSk7CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lv
bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1
cnNpb24uaHRtbAppbmRleCAzOTlkMGUwZjA0NmViNGFhZjE4YTUzZjFlYTNlMTBjZDJlYmJiZjZl
Li5mZDMyMWEzODQzMmM1ZWEyMmY2MzdkMDg3YjAzZDcxMDI3MDI3Y2UyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5ZXItcmVjdXJz
aW9uLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAKICAgICBmdW5jdGlvbiBzY2FsZVBhZ2UoKQogICAg
IHsKICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMS41MDAyNSwgMCwgMCk7CisgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDEuNTAwMjUsIDAsIDAp
OwogICAgIH0KICAgCiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzY2FsZVBh
Z2UsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvcmVzb3Vy
Y2VzL3Bhc3N3b3JkLWVjaG8uanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2lucHV0L3Jlc291cmNl
cy9wYXNzd29yZC1lY2hvLmpzCmluZGV4IDc5NDVlMTA1YzQwOWE0ZjlkZjFiOTk2OTIxZDlkODNi
NDk2ZWU5NjMuLmE3NjQxYzA3OGNjNGQ3OTdiODEyYTA1YTNiYWEzOTNlNTBiNmNhMDggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5wdXQvcmVzb3VyY2VzL3Bhc3N3b3JkLWVjaG8u
anMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnB1dC9yZXNvdXJjZXMvcGFzc3dvcmQtZWNo
by5qcwpAQCAtODAsOCArODAsOCBAQCBmdW5jdGlvbiBpbml0KHRlc3RzKQogICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChkb2N1bWVu
dCwgdHJ1ZSk7Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhc3N3b3JkRWNob0R1
cmF0aW9uSW5TZWNvbmRzKGRvY3VtZW50LCAwLjEpOworICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRQYXNzd29yZEVjaG9FbmFibGVkKHRydWUpOworICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25k
cygwLjEpOwogICAgICAgICAgICAgdGVzdG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdG5vZGUnKTsKICAgICAgICAgICAgIHJ1bih0ZXN0cywgLTEpOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0
YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3lu
Yy1tdXRhdGlvbi5odG1sCmluZGV4IDE2NzE0MDJlYTY1ZmEyNjhlZWNkNjE5N2RlYWU0YTVhMWMz
MTcxMDkuLmU2MTQ0YTkxOGI5YmQ1M2IwYTIyMzIyMjA2OTM3NTMyOWNkNTBmYWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1tdXRhdGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3lu
Yy1tdXRhdGlvbi5odG1sCkBAIC0zNiw3ICszNiw3IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKIH0KIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50LCB0cnVlKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQodHJ1ZSk7CiAKIHZhciBz
b3VyY2VJZHMgPSBbJ3NvdXJjZSddOwogdmFyIGRlc3RFbGVtcyA9IFsndGV4dGFyZWEnLCAnaW5w
dXQnLCAnY29udGVudGVkaXRhYmxlJ107CkBAIC03Nyw3ICs3Nyw3IEBAIGZ1bmN0aW9uIGRvVGVz
dElmQW55KCkgewogICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdtb3ZlLXRhcmdldCcpKTsKIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICBp
bnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIGZhbHNlKTsK
KyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVk
KGZhbHNlKTsKIAogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLWFzeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stYXN5bmMuaHRtbAppbmRleCA3MjcwYTMzNTA4NTBkYjU1Yjc5ZTA0NjgyNTkzZWQzMDYwZGYw
YWVkLi42MTE0NGQ3ZDM4YTI4NWQ1NTYwMjM0MmU4OWJiNzhkMzRjNDczYjJhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMuaHRtbApAQCAt
MjcsNyArMjcsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiB9CiAKIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRVbmlmaWVkVGV4dENoZWNraW5n
RW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZp
ZWRUZXh0Q2hlY2tpbmdFbmFibGVkKHRydWUpOwogCiB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOwogZnVuY3Rpb24gcmVtb3ZlQ2hpbGRyZW4obm9k
ZSkgewpAQCAtNTcsNyArNTcsNyBAQCBmdW5jdGlvbiBkb1Rlc3RJZkFueSgpIHsKICAgICAvLyBO
byBtb3JlIHRlc3RzLgogICAgIHJlbW92ZUNoaWxkcmVuKGNvbnRhaW5lcik7CiAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIGludGVybmFscy5zZXRVbmlmaWVkVGV4dENoZWNraW5n
RW5hYmxlZChkb2N1bWVudCwgZmFsc2UpOworICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZmFsc2UpOwogCiAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChmYWxzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0
bWwKaW5kZXggMmE5ZWViN2JjMjAwMWFiODgzNGU2OWVmODg5ODRlNjMxNWU2NjA1ZS4uNDhmY2Zj
ZjBhMzUyZGE3MWE3NTEyMDhhOGMyNWVhYmYxZmNjZjY5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24u
aHRtbApAQCAtMzEsNyArMzEsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CiB9CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRVbmlmaWVkVGV4
dENoZWNraW5nRW5hYmxlZChkb2N1bWVudCwgdHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKHRydWUpOwogCiB2YXIgdGVzdERhdGEgPSBb
CiAgICAgeyB0ZXh0OiAnenonLCBtYXJrZWQ6IFsnenonXSB9LApAQCAtODUsNyArODUsNyBAQCBm
b3IgKHZhciBpID0gMDsgaSA8IHRlc3REYXRhLmxlbmd0aDsgKytpKSB7CiB9CiAKIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxl
ZChkb2N1bWVudCwgZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4
dENoZWNraW5nRW5hYmxlZChmYWxzZSk7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3Nj
YWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCmluZGV4IDYwMjI4
OWIzMzUxMjkxNWFlYjlkZTY1MmZlZTc1ODI5ZDA5OWNhNzMuLjMzMGI1NTc3YTkxYWUxNjFkMjQ0
MTBlZmFiYTM1ZWJjMzE0OTFlNjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vs
ZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1s
CkBAIC05LDcgKzksNyBAQCBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogICAgIAogICAgIHZhciBkaXYg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7CiAgICAgdmFyIHJlY3QgPSBkaXYuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVG
YWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogICAgIHZhciBzY2FsZWRSZWN0ID0gZGl2Lmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogCiAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXN1bHQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vs
ZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAppbmRleCA4ZmEyYTMxMTA1YWE3
Njg4YmMzNThlOWI1MzhkMTAzNDhjN2U4YWYzLi4xNzZhYzA2OTE0ZDFhNzQ5ZjRlY2IwYmJhODMw
MjU3Nzc2YjU1YTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3Nj
YWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxl
bWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCkBAIC05LDcgKzksNyBAQCBmdW5jdGlv
biB0ZXN0UmVjdHMoKQogICAgIAogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZGl2Iik7CiAgICAgdmFyIHJlY3RMaXN0ID0gZGl2LmdldENsaWVudFJlY3RzKCk7Ci0gICAg
d2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOwor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDAp
OwogICAgIHZhciBzY2FsZWRSZWN0TGlzdCA9IGRpdi5nZXRDbGllbnRSZWN0cygpOwogCiAgICAg
dmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50
LXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRp
bmctY2xpZW50LXJlY3QuaHRtbAppbmRleCBmMTJjMGZkNzgzMTgzYmM1OGJiODRiMDhkNmMwODc5
MjBhNWU2OWU4Li4xOGJkNmZhOTUyMzAyYmI1ODU1YTY0NmE0ZmRhNDhhMTQzODlkYmY5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNs
aWVudC1yZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFn
ZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRl
c3RSZWN0cygpCiAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdkaXYnKSk7CiAgICAgdmFyIHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKTsKICAgIAotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3Vt
ZW50LCAyLCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2Fs
ZUZhY3RvcigyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVS
YW5nZSgpOwogICAgIHNjYWxlZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZGl2JykpOwogICAgIHZhciBzY2FsZWRSZWN0ID0gc2NhbGVkUmFuZ2UuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9S
YW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
UmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAppbmRleCAzZWYzNjc5NTU2MzIyM2E4
Yjc0M2RiMjBkZjgwNDAxMWQ4ZmQwODEzLi5lNGNlZDBmN2E3ZWIxNGRlM2FiYzc3ZjVkZTJkMmZh
NmY5MDgwOTE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1w
YWdlLWNsaWVudC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3Nj
YWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gdGVz
dFJlY3RzKCkKICAgICB2YXIgcmVjdExpc3QgPSByYW5nZS5nZXRDbGllbnRSZWN0cygpOwogICAg
IHZhciByZWN0ID0gcmVjdExpc3RbMF07CiAgICAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAgICAgdmFyIHNjYWxlZFJhbmdl
ID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgICBzY2FsZWRSYW5nZS5zZWxlY3ROb2RlQ29u
dGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpKTsKICAgICB2YXIgc2NhbGVkUmVj
dExpc3QgPSBzY2FsZWRSYW5nZS5nZXRDbGllbnRSZWN0cygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vaWZyYW1lLWlubmVyLXNpemUtc2NhbGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vaWZyYW1lLWlubmVyLXNpemUtc2NhbGluZy5odG1sCmluZGV4IDEzZDFiZGVk
YTM1NDhiNjgxMGY2NjUxODRmNmJlZDI4YTVkNjg1YzkuLmIzOTA4NjIwZGY0YzE5MGE1MWYxNTFi
MTBlZDdjMDcyOWY5YTQyNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lmcmFt
ZS1pbm5lci1zaXplLXNjYWxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pZnJh
bWUtaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgICAg
IG9yaWdpbmFsSGVpZ2h0ID0gZnJhbWUuY29udGVudFdpbmRvdy5pbm5lckhlaWdodDsKIAogICAg
ICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAgICAgICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAs
IDApOwogCiAgICAgICAgICAgICBzaG91bGRCZU5vblplcm8oImZyYW1lLmNvbnRlbnRXaW5kb3cu
aW5uZXJXaWR0aCIpOwogICAgICAgICAgICAgc2hvdWxkQmVOb25aZXJvKCJmcmFtZS5jb250ZW50
V2luZG93LmlubmVySGVpZ2h0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93
aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5k
b3ctaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwKaW5kZXggZDA3NmM1MGIzMGViMjdhY2YwYjMzYzZm
MzJiZTc0OWE5NDJiYmQ5OC4uY2YxZjk4YWI5OWUzMmMzN2ZkZDQyZGIyZDUxNDQ1ZTJlMDJmOWFl
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LWlubmVyLXNpemUtc2Nh
bGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1pbm5lci1zaXplLXNj
YWxpbmcuaHRtbApAQCAtOCw3ICs4LDcgQEAKICAgICAgICAgdmFyIHNjYWxlID0gMjsKIAogICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZSwgMCwgMCk7CisgICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZSwgMCwgMCk7
CiAKICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbm5lcldpZHRoIiwgIk1hdGguZmxvb3Iob3Jp
Z2luYWxXaWR0aCAvIHNjYWxlKSIpOwogICAgICAgICBzaG91bGRCZSgid2luZG93LmlubmVySGVp
Z2h0IiwgIk1hdGguZmxvb3Iob3JpZ2luYWxIZWlnaHQgLyBzY2FsZSkiKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKaW5kZXggYTU3
MGQ3OTMzZjYwYWU2OGNjN2Y5Y2EwZmQwZDUzOGM3M2E5ZWNhMy4uOWU2ZTAwNWVlM2MwZjllOTc0
MDAxY2FhMzgwYWVhYWMwZDAxYzM4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgIHdp
bmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwo
KSB7Ci0gICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3aW5kb3cuaW50ZXJu
YWxzLnNldFBhZ2VTY2FsZUZhY3RvciBzaG91bGQgbm90IGJlIGFwcGFyZW50CisgICAgICAgICAg
Ly8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFBhZ2VTY2FsZUZhY3RvciBzaG91bGQgbm90IGJlIGFwcGFyZW50CiAgICAgICAgICAgLy8gdG8g
amF2YXNjcmlwdC4gU28sIHdlIGV4cGVjdCBzY3JvbGxpbmcgdG8gKDEwMCwxMDApIHRvIGJlIHBh
Z2UgY29vcmRpbmF0ZXMsIHJhdGhlcgogICAgICAgICAgIC8vIHRoYW4gZGV2aWNlIHBpeGVscy4K
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQgPSAxMDA7CkBAIC0yNiw3ICsyNiw3
IEBACiAgICAgICAgICAgdmFyIHNjYWxlRmFjdG9yID0gMi4wOwogICAgICAgICAgIHZhciBzY2Fs
ZU9mZnNldCA9IDA7CiAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVG
YWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CisgICAgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zm
c2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0
bWwKaW5kZXggODE5NWI5OWZjYWVlZmI4YWZlYTZhMmZmYmIyNjJhYWY3ZmMyYTI4OC4uMjg0MDAy
YzVhMmVhZmExNDU4OTE4OTNiMjkyMDgzYmVkMzA5OTE5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbApA
QCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgdmFyIHNjYWxlRmFjdG9yID0gMC41OwogICAg
ICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7Ci0gICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxl
RmFjdG9yKGRvY3VtZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsK
KyAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVG
YWN0b3Ioc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nh
bGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbAppbmRleCA3NzkzNTgxMmExNjUw
MTJmODI1NTY2MmM5ZGVmMGM2MjdiMjA2NzI1Li5hNzM0MmI1MjQyMjBjNTBkYTg2MjFmMGU5Yjgw
M2IxMTI5ZWM5MTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1h
bmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbApAQCAtMjQsNyArMjQsNyBAQAog
ICAgICAgICAgICAgdmFyIHNjYWxlRmFjdG9yID0gMC41OwogICAgICAgICAgICAgdmFyIHNjYWxl
T2Zmc2V0ID0gMDsKICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBz
Y2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3Is
IHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5k
b3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtd2luZG93
Lmh0bWwKaW5kZXggNWMzNWU2NWNjYTE4ZWE0MjcyMjQwOGQ0MjQyMTAyYWEwNTVjNTZiMS4uOWI0
ZDM0ZjVkMTJmNTE2ODU5ZTFjNzdhYTU5NDcwYmQ4MTc3YWVkNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sCkBAIC0xMCw3
ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKIAogICAg
ICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBz
ZXQgYnkgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBh
cHBhcmVudAorICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVu
dAogICAgICAgICAgIC8vIHRvIGphdmFzY3JpcHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xsaW5nIHRv
ICgxMDAsMTAwKSB0byBiZSBwYWdlIGNvb3JkaW5hdGVzLCByYXRoZXIKICAgICAgICAgICAvLyB0
aGFuIGRldmljZSBwaXhlbHMuCiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpA
QCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgIHZhciBzY2FsZUZhY3RvciA9IDIuMDsKICAgICAg
ICAgICB2YXIgc2NhbGVPZmZzZXQgPSAwOwogICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7Ci0gICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9j
dW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOworICAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKHNjYWxlRmFj
dG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2Nh
bGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcmlw
dC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanMKaW5kZXggMzk3ZjhkZTM3
Yzg3Mzc1Y2I5NDQ0NmY1MDI0ZTVkYjc5NGVhNjEyMi4uZGY0NTVhMmY2ZWRiYTZlNzEwYzZlMjBh
YTNiYWZkN2UwNjBiYzgwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Ny
aXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcworKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZy
YW1lLmpzCkBAIC02MCwxNSArNjAsMTUgQEAgZnVuY3Rpb24gaWZyYW1lTG9hZGVkKCkgewogCiAg
ICAgdGVzdEV2ZW50cygwLCAiVW5zY2FsZWQiLCAiY2xpY2soMTAsIDEwKSIpOwogCi0gICAgd2lu
ZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7Cisg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC41LCAwLCAw
KTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdlU2NhbGUoMC41KSIsICJjbGljaygyMCwgMjAp
Iik7CiAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwg
MS4wLCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZh
Y3RvcigxLjAsIDAsIDApOwogICAgIGh0bWwuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtIl0gPSAi
c2NhbGUoMC41LCAyLjApIjsKICAgICBodG1sLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybS1vcmln
aW4iXSA9ICIwIDAiOwogICAgIHRlc3RFdmVudHMoMCwgIkNTUyBzY2FsZSgwLjUsIDIuMCkiLCAi
Y2xpY2soMjAsIDUpIik7CiAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rv
cihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogICAgIHRlc3RFdmVudHMoMCwgInNldFBhZ2VT
Y2FsZSgwLjUpLCBDU1Mgc2NhbGUoMC41LCAyLjApIiwgImNsaWNrKDQwLCAxMCkiKTsKICAgfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1z
Y2FsZWQtbW91c2UtY2xpY2suanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVz
dHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMKaW5kZXggNDRlNjgzY2M2NGVlOWJmN2JmOTU1
YTZjZjBmNzA2ODA5ZDZmNThjMy4uNzFiZjI3YWQ5YjUwOWNhYjM4ZTcwMzlhMTIxMjdlZWVjNGNi
Yjc1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3Bh
Z2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nj
cmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5qcwpAQCAtNTAsNiArNTAsNiBAQCBp
ZiAod2luZG93LmV2ZW50U2VuZGVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAvLyBwYXJ0
cyBvZiB0aGUgZG9jdW1lbnQgYXJlIHVuZGVyIHRoZSBtb3VzZS4KICAgICB0ZXN0RXZlbnRzKDAs
ICJVbnNjYWxlZCIsICJjbGljaygxMCwgMTApIik7CiAKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogICAgIHRlc3RFdmVu
dHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpIiwgImNsaWNrKDIwLCAyMCkiKTsKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92
ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNj
YWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWwKaW5kZXggZmY2ZDJjOTkwOWY2OTJj
ZjRlOTg1YWU2OTZkMjNmY2ZiZWIyOTA2ZC4uNzJjM2NjZTJjYmQ4NzU5MDIwNmUzNmExODgwYzUz
NDRhOGViMGQ4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWlu
LXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0
bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0Owog
CiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOworICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAK
ICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcCIsICIwIik7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVk
LXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbAppbmRleCAwZGI5NTViMDA5OTll
YjdiOWFlZTgyYWFmYzE2NzgxMGE0N2ZkODQzLi4yZTZkYmRkYjg1MDMyNDQzMTE5YTcwYTFjZGY4
NWEzNmExN2JhYzgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9w
YWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5odG1sCkBAIC04
NCw3ICs4NCw3IEBAIGZ1bmN0aW9uIGVuZFRlc3QoKQogCiBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOworICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigwLjUsIDAsIDApOwogICAgIH0KIAog
ICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG91Y2h0YXJnZXQnKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRt
bAppbmRleCBhNTc4ZjUzMzEwNTMxY2Y5NzgyNTYyOTE1MTU1NTM0YmQwY2JkNmM4Li5mYzYzNzQy
NjE3MGUxNjEwMTZiMzMwNzFkODQ5OTk1NDJhZWRmZmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sCkBAIC05LDcgKzksNyBA
QAogICAgICAgICAgICAgLy8gU2NhbGUgdGhlIHBhZ2UgYW5kIHJlc2l6ZSB0aGUgZnJhbWVzIHRv
IHZlcmlmeSBoaXQgdGVzdGluZyBvbiB0aGUgZnJhbWVzZXQKICAgICAgICAgICAgIHZhciBsZWZ0
UGFuZWxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC8gODsKICAgICAgICAgICAgIHZhciBwYW5l
bEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAvIDI7Ci0gICAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKKyAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDAuNSwgMCwg
MCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhwYW5lbEhlaWdodCAvIDIs
IGxlZnRQYW5lbFdpZHRoKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwog
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8ocGFuZWxIZWlnaHQgLyAyLCAyICog
bGVmdFBhbmVsV2lkdGgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJh
bWUtc2V0LXNjYWxpbmctaGl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1z
ZXQtc2NhbGluZy1oaXQuaHRtbAppbmRleCA0ZjliNzkzNzQ4ZDdkYjUxZWNhMWY5N2EyN2U1ODcx
YTBlNmU4OGIxLi40OTFmZjk1YjkyMTdhNWVlMzg3YWI3OWI2MzQxMGFkOTBjNjVmYzZhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRt
bApAQCAtOSw3ICs5LDcgQEAKICAgICAgICAgICAgIC8vIFNjYWxlIHRoZSBwYWdlIGFuZCByZXNp
emUgdGhlIGZyYW1lcyB0byB2ZXJpZnkgaGl0IHRlc3Rpbmcgb24gdGhlIGZyYW1lc2V0CiAgICAg
ICAgICAgICB2YXIgbGVmdFBhbmVsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAvIDg7CiAgICAg
ICAgICAgICB2YXIgcGFuZWxIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyOwotICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwg
MCwgMCk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2Fs
ZUZhY3RvcigwLjUsIDAsIDApOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
bGVmdFBhbmVsV2lkdGgsIHBhbmVsSGVpZ2h0IC8gMik7CiAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIgKiBs
ZWZ0UGFuZWxXaWR0aCwgcGFuZWxIZWlnaHQgLyAyKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL2lmcmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbAppbmRleCBk
M2FmNWY2OTdiMDc2MGY1N2Q1ZjIwNzVhMTA0ZDIwNDE2NzVmYjA1Li5kMjIyOGFjZmY0YjkwN2U5
ZDU4NzRhOTBjNjA4MzkzYjkzZTYzZjAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sCkBAIC0yMyw3ICsy
Myw3IEBACiAgICAgICBmdW5jdGlvbiBzY2FsZVBhZ2Uoc2NhbGVGYWN0b3IpIHsKICAgICAgICAg
ICB2YXIgc2NhbGVPZmZzZXQgPSAwOwogICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVu
dCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CisgICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvciwg
c2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKICAgICAgICAgICB9CiAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbAppbmRleCBl
OGNmZjBkMTY1NmI1NWJlODY4NDQ2MjUwNTU3MTMzOTcxMzg3YTNkLi42YmI5MTFlNjA4MTQ2ZTll
YjgwNTNkN2RiNmZjY2NkM2UyMDViZWU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sCkBAIC01LDcgKzUsNyBAQAogICAgIGZ1bmN0aW9u
IHJlcGFpbnRUZXN0KCkKICAgICB7CiAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
ICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAu
MjUsIDAsIDApOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdl
U2NhbGVGYWN0b3IoMC4yNSwgMCwgMCk7CiAgICAgfQogPC9zY3JpcHQ+IAogPC9oZWFkPiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtaW4tcGFnZS1zY2FsZS5odG1sCmlu
ZGV4IGE5NWM1NzI4Njg2NjBjNTUzYjY4ODdhZTcwODViZmQ0MTVjYjMwMGIuLmI3NjU3ZWZmOWRj
OGZlOTBjNGJkNWQxODcxOTY3NDlkMzJkODgxODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC9maXhlZC1pbi1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L2ZpeGVkLWluLXBhZ2Utc2NhbGUuaHRtbApAQCAtOSw3ICs5LDcgQEAKICAgICA8
c2NyaXB0PgogICAgICAgd2luZG93LmVuYWJsZVBpeGVsVGVzdGluZyA9IHRydWU7CiAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFNob3Vs
ZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUoZG9jdW1lbnQsIHRydWUpOworICAg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZSh0cnVlKTsKIAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewog
ICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygxMDAsMTAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1ib3R0b20taW4tcGFnZS1zY2FsZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxl
Lmh0bWwKaW5kZXggMTJmYzQ1YTdjYTczMzgxZWUzYzkzNGVkNjE4YzdlMjE5YzcxYmQ3Yi4uOTYx
Mzg0OTY0NzIwZWRmODBkMDc3YjEyZTY1MmZmMmM0NzVmOTc3NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdlLXNjYWxlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVkLXJpZ2h0LWJvdHRvbS1pbi1wYWdl
LXNjYWxlLmh0bWwKQEAgLTksNyArOSw3IEBACiAgICAgPHNjcmlwdD4KICAgICAgIHdpbmRvdy5l
bmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVs
YXRpdmVUb0ZyYW1lKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWUodHJ1
ZSk7CiAKICAgICAgIGZ1bmN0aW9uIHNjcm9sbCgpIHsKICAgICAgICAgICB3aW5kb3cuc2Nyb2xs
VG8oMTAwLDEwMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQt
cmlnaHQtaW4tcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2ZpeGVk
LXJpZ2h0LWluLXBhZ2Utc2NhbGUuaHRtbAppbmRleCA5MDM4M2U4NjliNjBlZGRjYTA4MjI1ODIx
ZjFmMGZmNDUwNDUwYTZlLi5hMjhjMTQ2Y2VmZTcxMGZkYjAxNWMwZWI5MDNkNjk0MjQxZTA0NDhj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvZml4ZWQtcmlnaHQtaW4tcGFn
ZS1zY2FsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9maXhlZC1yaWdodC1p
bi1wYWdlLXNjYWxlLmh0bWwKQEAgLTksNyArOSw3IEBACiAgICAgPHNjcmlwdD4KICAgICAgIHdp
bmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1l
bnRzUmVsYXRpdmVUb0ZyYW1lKGRvY3VtZW50LCB0cnVlKTsKKyAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWUodHJ1ZSk7CiAKICAgICAgIGZ1bmN0aW9uIHNjcm9sbCgpIHsKICAgICAgICAgICB3aW5kb3cu
c2Nyb2xsVG8oMTAwLDEwMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2NhbGUtcGFnZS1zaHJpbmsuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zY2FsZS1w
YWdlLXNocmluay5odG1sCmluZGV4IDkyZjNlM2Q1ZjZmNjZlMWM5OWUxOTdiZmU3ZTE0ZmFhMDJm
MGQwNDAuLjA5YmQyMjE4MzFkN2Y2YmU5NmFmNzQwZGI5Zjk3MTg5MTY2N2IyNjkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zY2FsZS1wYWdlLXNocmluay5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zY2FsZS1wYWdlLXNocmluay5odG1sCkBAIC01LDcg
KzUsNyBAQAogICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkKICAgICB7CiAgICAgICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2Nh
bGVGYWN0b3IoZG9jdW1lbnQsIDAuMjUsIDAsIDApOworICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMC4yNSwgMCwgMCk7CiAgICAgfQogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RyYW5zZm9ybXMv
c2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwK
aW5kZXggMTBlMjZiYjg5MTcyZGJmYjA3NzA3MGI2ZGIwMWQwMDBlMjk4MjA3MS4uZmYyNjMzOTA5
NzIwYjlkYzVhMjI1YjIwOGZjOGZjZDgxNTMwOGM4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRy
YW5zZm9ybWVkLXZpZXcuaHRtbApAQCAtNiw3ICs2LDcgQEAKICAgICA8c2NyaXB0PgogICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAw
KTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFj
dG9yKDIsIDAsIDApOwogICAgICAgICB9CiAKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
IkZpbmRTdHJpbmciLCBmYWxzZSwgInRhcmdldCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay10ZXN0LmpzCmluZGV4IDE0MTMwODRjOTg4M2QzNmM3MTQ1
MTY4ZjEzZTM4MDBkZDdkZDY2MjcuLjMzODJmZWYyNDI3NWI0Y2E3YWM1MjViODVjM2FkNmE2ZjNh
ODlmNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmstdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
LXRlc3QuanMKQEAgLTQ0LDcgKzQ0LDcgQEAgZnVuY3Rpb24gcmVzZXRJbnNwZWN0b3JSZXNvdXJj
ZXNEYXRhKCkKICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIGludGVybmFscy5zZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhk
b2N1bWVudCwgMTAgKiAxMDAwICogMTAwMCwgMTAwMCAqIDEwMDApOworICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cygxMCAqIDEwMDAgKiAx
MDAwLCAxMDAwICogMTAwMCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJl
cGxhY2VtZW50LWVtYmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC1lbWJlZC5odG1sCmluZGV4IDFiNzQy
Y2JiY2UyZjNkNGIyNDM5M2M4ZDAwMDZhMmRlZWI4YjIzMzEuLmUxZDU2OTgwYWI1ZTMxN2VmMTQ4
NjkzMzU5MWM3ZDhlNzUxZmZhM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1jb250ZW50LXJlcGxhY2VtZW50LWVtYmVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNv
bnRlbnQtcmVwbGFjZW1lbnQtZW1iZWQuaHRtbApAQCAtMzEsNyArMzEsNyBAQCBmdW5jdGlvbiBs
b2FkVVJMcygpCiAgICAgfQogICAgIC8vIEVhY2ggJyonIHN5bWJvbCBpbiBvcmlnaW5hbCBkYXRh
IHdpbGwgdXNlIHR3byBieXRlcyBpbiBTdHJpbmcgb2JqZWN0CiAgICAgLy8gYWZ0ZXIgZGVjb2Rp
bmcsIGhlbmNlIG11bHRpcGx5aW5nIGJ5IHR3by4KLSAgICBpbnRlcm5hbHMuc2V0SW5zcGVjdG9y
UmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoZG9jdW1lbnQsIDIqMzAwLCAyKjIwMCk7CisgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKDIqMzAw
LCAyKjIwMCk7CiAKICAgICAvLyBIZXJlIHdlIHRlc3QgcmVwbGFjZW1lbnQgbG9naWMuIFdlIHNh
dmUgZmlyc3QgdHdvIHJlc291cmNlcyBjb250ZW50LAogICAgIC8vIGRpc2NhcmQgdGhpcmQgcmVz
b3VyY2UgY29udGVudCBvbmNlIHdlIHNlZSBpdHMgc2l6ZSBleGNlZWRzIGxpbWl0LApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9uZXR3b3JrLWNv
bnRlbnQtcmVwbGFjZW1lbnQteGhyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbAppbmRleCBm
YjQ3NWMxYmY3MjBjZDA4ZmM1ZjIxYTY4YWZhNWJlMWZmMzIzZmU4Li5hODkzZDA5NjEwNTMyMzZj
MGUwYTNmNDU2OTE1ZTc2ZDQ3MjAzMWJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstY29udGVudC1yZXBsYWNlbWVudC14aHIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmst
Y29udGVudC1yZXBsYWNlbWVudC14aHIuaHRtbApAQCAtMTAsNyArMTAsNyBAQCBmdW5jdGlvbiBs
b2FkRGF0YSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gRWFjaCAnKicgc3ltYm9s
IHdpbGwgdXNlIHR3byBieXRlcyBpbiBTdHJpbmcgb2JqZWN0LCBoZW5jZSBtdWx0aXBseWluZyBi
eSB0d28uCi0gICAgaW50ZXJuYWxzLnNldEluc3BlY3RvclJlc291cmNlc0RhdGFTaXplTGltaXRz
KGRvY3VtZW50LCAyKjMwMCwgMioyMDApOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRJbnNw
ZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cygyKjMwMCwgMioyMDApOwogCiAgICAgLy8gSGVy
ZSB3ZSB0ZXN0IHJlcGxhY2VtZW50IGxvZ2ljLiBXZSBzYXZlIGZpcnN0IHR3byByZXNvdXJjZXMg
Y29udGVudCwKICAgICAvLyBkaXNjYXJkIHRoaXJkIHJlc291cmNlIGNvbnRlbnQgb25jZSB3ZSBz
ZWUgaXRzIHNpemUgZXhjZWVkcyBsaW1pdCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvYWxwaGEuaHRtbCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRy
YXdpbmcvYWxwaGEuaHRtbAppbmRleCBjYTZlODA3MjEwM2NhNmNiMjYxYWEwY2E2ZGMxNTk3ZjJm
Y2ZkZTdlLi44ZDQzODk2ZjgzMGE5OGExNzkxYmIwZjk4NGNlZDZiY2E4NjM2ZWRmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRl
ZC1kcmF3aW5nL2FscGhhLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtZHJhd2luZy9hbHBoYS5odG1sCkBAIC0yMSw3ICsyMSw3
IEBACiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsgLy8gVGhpcyBp
cyBvbmx5IHVzZWZ1bCBhcyBwaXhlbCB0ZXN0LgogCiAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChkb2N1bWVu
dCwgdHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRBY2NlbGVyYXRlZERy
YXdpbmdFbmFibGVkKHRydWUpOwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdp
bmcvc3ZnLWZpbHRlcnMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2FjY2VsZXJhdGVkLWRyYXdpbmcvc3ZnLWZpbHRlcnMuaHRtbAppbmRleCAzZjFjZTI2
Yjg3OGM2MGRiNzM3YWVmNjUxMDUyZTU1NTMwYWExMzZhLi41ZDI3Y2I3ZjIwYTBiMjlmMmQ4NTBm
ZDYzMTAyMmM2YWYzYzM2YjQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1kcmF3aW5nL3N2Zy1maWx0ZXJzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQt
ZHJhd2luZy9zdmctZmlsdGVycy5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7IC8vIFRoaXMgaXMgb25seSB1c2VmdWwgYXMgcGl4
ZWwgdGVzdC4KIAogICBpZiAod2luZG93LmludGVybmFscykKLSAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoZG9jdW1lbnQsIHRydWUpOworICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCh0cnVlKTsK
IDwvc2NyaXB0PgogPC9oZWFkPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL2ZvcmNlLWNvbXBvc2l0
ZS1lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
Zm9yY2UtY29tcG9zaXRpbmctbW9kZS9mb3JjZS1jb21wb3NpdGUtZW1wdHkuaHRtbAppbmRleCA5
MDk4MWE2N2Y2ODA0MjhhNDRkZDA5ZmZjNDNlYzk5ZTQ2Y2FmZDZkLi44YTFkYzE2NzYxNWQ1ZmUy
MWE4NTRmN2M4MzViNjgwMDI1NmQ0NDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL2ZvcmNlLWNvbXBv
c2l0ZS1lbXB0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvZm9yY2UtY29tcG9zaXRlLWVtcHR5Lmh0bWwK
QEAgLTIsOCArMiw4IEBACiAgIDxoZWFkPgogICAgIDxzY3JpcHQ+CiAgICAgICBpZiAod2luZG93
LmludGVybmFscykgewotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEZvcmNlQ29tcG9zaXRp
bmdNb2RlKGRvY3VtZW50LCB0cnVlKTsKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFi
bGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoZG9jdW1lbnQsIHRydWUpOworICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUp
OworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yU2Nyb2xsYWJsZUZyYW1lcyh0cnVlKTsKICAgICAgIH0KICAgICAgIGZ1bmN0aW9uIGRvVGVz
dCgpIHsKICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29t
cG9zaXRpbmctbW9kZS9uby1vdmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvbm8t
b3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwKaW5kZXggZDY1ZWU4MDcwNzMxM2JjNGM1YTllYzIx
YzMyOTFjNTk4YjkwZjQ3MS4uMTczODM5ODU2MmIxOGRmNjg3ZjU5OTY0MTEzMTBjOWIyOGNhYmIz
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcv
Zm9yY2UtY29tcG9zaXRpbmctbW9kZS9uby1vdmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3Np
dGluZy1tb2RlL25vLW92ZXJmbG93LWlmcmFtZS1sYXllci5odG1sCkBAIC0xNiw4ICsxNiw4IEBA
CiAgICAgfQogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZG9UZXN0LCBmYWxz
ZSk7CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAgIGludGVybmFscy5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgICBpbnRlcm5hbHMuc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGRvY3VtZW50LCB0cnVlKTsKKyAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFt
ZXModHJ1ZSk7CiAgICAgfQogICA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1v
ZGUvb3ZlcmZsb3ctaGlkZGVuLWlmcmFtZS1sYXllci5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1o
aWRkZW4taWZyYW1lLWxheWVyLmh0bWwKaW5kZXggYWZlMzVlNDExMmUzYjkzN2ZhYTVjMjcwYjQw
YTI5ZTMyNjUxZjBlNi4uNmI4NTE2ODAwOWU2MGY3NDY4Zjc1ZTY1MzJlZmYzOTdkMTU4ZTZlYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9y
Y2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1oaWRkZW4taWZyYW1lLWxheWVyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9z
aXRpbmctbW9kZS9vdmVyZmxvdy1oaWRkZW4taWZyYW1lLWxheWVyLmh0bWwKQEAgLTgsOCArOCw4
IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
LSAgICAgIGludGVybmFscy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShkb2N1bWVudCwgdHJ1ZSk7
Ci0gICAgICBpbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVz
KGRvY3VtZW50LCB0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZUNvbXBv
c2l0aW5nTW9kZSh0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21w
b3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXModHJ1ZSk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGRv
VGVzdCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
Y29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtZW50ZXIt
Y29tcG9zaXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0
aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWVudGVyLWNvbXBvc2l0
aW5nLmh0bWwKaW5kZXggZDMzNTdmZGE0ZTc2ODIxNzZhZjNhOGJlMWVhYzk1MGMzOTYxZDA1OC4u
YWYxOWM1YTk3MzVmOTQ0NTVkNGRkMWFiNGZhNDdiNDQ1NWYxMmM3NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2UtY29tcG9zaXRpbmct
bW9kZS9vdmVyZmxvdy1pZnJhbWUtZW50ZXItY29tcG9zaXRpbmcuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2Rl
L292ZXJmbG93LWlmcmFtZS1lbnRlci1jb21wb3NpdGluZy5odG1sCkBAIC04LDggKzgsOCBAQAog
ICA8L3N0eWxlPgogICA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAg
ICBpbnRlcm5hbHMuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoZG9jdW1lbnQsIHRydWUpOwotICAg
ICAgaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhkb2N1
bWVudCwgdHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0Rm9yY2VDb21wb3NpdGlu
Z01vZGUodHJ1ZSk7CisgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RW5hYmxlQ29tcG9zaXRp
bmdGb3JTY3JvbGxhYmxlRnJhbWVzKHRydWUpOwogICAgIH0KICAgICBmdW5jdGlvbiBkb1Rlc3Qo
KQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBv
c2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3Np
dGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sYXllci5odG1sCmluZGV4IGE0YzRhMjIwMzM2ODZk
MmQ0NzMyY2FiZTlmMTg0NjBmMjVjMDNiNjMuLjQyYjJkNzAyZjExY2ZlYmYyM2Q1OTFjZTJmODA0
YzQwY2E2YjQ0NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Nv
bXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUvb3ZlcmZsb3ctaWZyYW1lLWxheWVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRpbmcvZm9yY2Ut
Y29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGF5ZXIuaHRtbApAQCAtOCw4ICs4LDgg
QEAKICAgPC9zdHlsZT4KICAgPHNjcmlwdD4KICAgICBpZiAod2luZG93LmludGVybmFscykgewot
ICAgICAgaW50ZXJuYWxzLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGRvY3VtZW50LCB0cnVlKTsK
LSAgICAgIGludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMo
ZG9jdW1lbnQsIHRydWUpOworICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZvcmNlQ29tcG9z
aXRpbmdNb2RlKHRydWUpOworICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyh0cnVlKTsKICAgICB9CiAgICAgZnVuY3Rpb24gZG9U
ZXN0KCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9j
b21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1tb2RlL292ZXJmbG93LWlmcmFtZS1sZWF2ZS1j
b21wb3NpdGluZy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vY29tcG9zaXRp
bmcvZm9yY2UtY29tcG9zaXRpbmctbW9kZS9vdmVyZmxvdy1pZnJhbWUtbGVhdmUtY29tcG9zaXRp
bmcuaHRtbAppbmRleCBiZWUzYjBhOTFmMzUyNjM1OWJlZWQwNzUwOGMwNGE3NTFkZjU3YTlmLi45
MTFjMGEyZjZkNjcwNWM3MjQ3YWNjZTE5M2JhY2VlZmRlMjUyMmQ0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9jb21wb3NpdGluZy9mb3JjZS1jb21wb3NpdGluZy1t
b2RlL292ZXJmbG93LWlmcmFtZS1sZWF2ZS1jb21wb3NpdGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5nL2ZvcmNlLWNvbXBvc2l0aW5nLW1vZGUv
b3ZlcmZsb3ctaWZyYW1lLWxlYXZlLWNvbXBvc2l0aW5nLmh0bWwKQEAgLTgsOCArOCw4IEBACiAg
IDwvc3R5bGU+CiAgIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICAg
IGludGVybmFscy5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShkb2N1bWVudCwgdHJ1ZSk7Ci0gICAg
ICBpbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGRvY3Vt
ZW50LCB0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZUNvbXBvc2l0aW5n
TW9kZSh0cnVlKTsKKyAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVDb21wb3NpdGlu
Z0ZvclNjcm9sbGFibGVGcmFtZXModHJ1ZSk7CiAgICAgfQogICAgIGZ1bmN0aW9uIGRvVGVzdCgp
CiAgICAgewo=
</data>
<flag name="commit-queue"
          id="125110"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>