<?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>208434</bug_id>
          
          <creation_ts>2020-03-01 16:42:55 -0800</creation_ts>
          <short_desc>Fix for LayoutTests/accessibility/mac/search-text/search-text.html in IsolatedTree mode.</short_desc>
          <delta_ts>2020-03-03 11:33:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=208488</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=208520</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1624437</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-03-01 16:42:55 -0800</bug_when>
    <thetext>Fix for LayoutTests/accessibility/mac/search-text/search-text.html in IsolatedTree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624443</commentid>
    <comment_count>1</comment_count>
      <attachid>392111</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-03-01 17:02:36 -0800</bug_when>
    <thetext>Created attachment 392111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624463</commentid>
    <comment_count>2</comment_count>
      <attachid>392111</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2020-03-01 22:43:27 -0800</bug_when>
    <thetext>Comment on attachment 392111
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityObject.h:759
&gt; +    AccessibilityObject* webAreaObject() const override { return nullptr; }

the type here is AccessibilityObject, but in the interface it&apos;s AXCoreObject

&gt; Source/WebCore/accessibility/AccessibilityScrollView.h:44
&gt; +    AccessibilityObject* webAreaObject() const override;

interface class defines this as AXCoreObject

&gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:229
&gt; +            &amp;&amp; item.m_wrapper)

this line can go on the last one. it looks like it&apos;s short enough</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624509</commentid>
    <comment_count>3</comment_count>
      <attachid>392134</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-03-02 05:32:02 -0800</bug_when>
    <thetext>Created attachment 392134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624513</commentid>
    <comment_count>4</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-03-02 05:43:09 -0800</bug_when>
    <thetext>(In reply to chris fleizach from comment #2)
&gt; Comment on attachment 392111 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392111&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.h:759
&gt; &gt; +    AccessibilityObject* webAreaObject() const override { return nullptr; }
&gt; 
&gt; the type here is AccessibilityObject, but in the interface it&apos;s AXCoreObject

It is a long chain to change this since callers are assigning the return value to AccessibilityObject. It works because the override is returning a subclass. There are other methods whose overrides also return a subclass. I propose we leave it like this for now, and make a complete pass through to clean them up all at once in a separate patch.
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityScrollView.h:44
&gt; &gt; +    AccessibilityObject* webAreaObject() const override;
&gt; 
&gt; interface class defines this as AXCoreObject

Same comment as above.
&gt; 
&gt; &gt; Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:229
&gt; &gt; +            &amp;&amp; item.m_wrapper)
&gt; 
&gt; this line can go on the last one. it looks like it&apos;s short enough

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624717</commentid>
    <comment_count>5</comment_count>
      <attachid>392180</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-03-02 13:30:02 -0800</bug_when>
    <thetext>Created attachment 392180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624720</commentid>
    <comment_count>6</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2020-03-02 13:31:54 -0800</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #5)
&gt; Created attachment 392180 [details]
&gt; Patch

Fix for GTK build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624757</commentid>
    <comment_count>7</comment_count>
      <attachid>392180</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-02 14:50:37 -0800</bug_when>
    <thetext>Comment on attachment 392180
Patch

Clearing flags on attachment: 392180

Committed r257739: &lt;https://trac.webkit.org/changeset/257739&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624758</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-02 14:50:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624762</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-02 14:51:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/59969174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624852</commentid>
    <comment_count>10</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-03-02 17:16:16 -0800</bug_when>
    <thetext>This change appears to have introduced layout test crashes, as indicated by EWS: https://ews-build.webkit.org/#/builders/31/builds/4027

See: https://bugs.webkit.org/show_bug.cgi?id=208488</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392111</attachid>
            <date>2020-03-01 17:02:36 -0800</date>
            <delta_ts>2020-03-02 05:31:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208434-20200301200235.patch</filename>
            <type>text/plain</type>
            <size>32923</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhMWExNGJiN2NkMmQ2
OTU5MTZiODFkYWI1Y2I0MjgxZDZjMWI5ZC4uYmQ3OTkzOTIzNDc3MDJkMmM3YzJhZmY5YzY2OTE1
ZGJhY2E5OTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTAzLTAxICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlYXJjaC10ZXh0L3NlYXJjaC10ZXh0Lmh0bWwg
aW4gSXNvbGF0ZWRUcmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg0MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb3ZlcmVkIGJ5IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Nl
YXJjaC10ZXh0L3NlYXJjaC10ZXh0Lmh0bWwKKworICAgICAgICAtIFVwZGF0ZXMgSXNvbGF0ZWRU
cmVlIGZvciBBWFNlbGVjdGVkVGV4dENoYW5nZWQgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgLSBF
eHBvc2VzIHdlYkFyZWFPYmplY3QgdGhyb3VnaCB0aGUgQVhDb3JlT2JqZWN0IGludGVyZmFjZS4K
KyAgICAgICAgLSBBWElzb2xhdGVkT2JqZWN0IGltcGxlbWVudGF0aW9uIGZvciBoYXNBcHBsZVBE
RkFubm90YXRpb25BdHRyaWJ1dGUsCisgICAgICAgIHdlYkFyZWFPYmplY3QgYW5kIHN0cmluZ0Zv
clJhbmdlLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6aXNMb2FkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzS2V5IGNvbnN0KToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2wpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6c3RyaW5nRm9yUmFuZ2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aGFzQXBwbGVQREZBbm5vdGF0aW9u
QXR0cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OnJlbW92ZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmFw
cGx5UGVuZGluZ0NoYW5nZXMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0
Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6YWRkVGV4
dE1hcmtlckZvcik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0
aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RVc2VySW5mb0ZvckNoYW5nZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbkZvclRleHRDb250cm9sKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToK
KyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgdGV4dE1hcmtlclJhbmdl
RnJvbVZpc2libGVQb3NpdGlvbnM6ZW5kUG9zaXRpb246XSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIGFzc29jaWF0ZWRQbHVnaW5QYXJlbnRdKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOl0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6Zm9yUGFyYW1ldGVyOl0pOgorCiAyMDIwLTAyLTI4ICBBbGJl
cnRvIEdhcmNpYSAgPGJlcnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gVW5y
ZXZpZXdlZC4gRml4IGJ1aWxkIHdhcm5pbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAzZjE4NTQ0YTc0YmM5ZDljZjM2NjU4MzMzOWM1
ZTdlMzI3OTk3Mjg3Li5kMzc0MDAzN2RjYWU4OWRlNzg4NWYyZmM3MjFkMjc5YjNmNWNkNjc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTEzNjQsNiArMTM2NCwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBjbwogICAgICAgICB9CiAg
ICAgfQogCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICB1cGRh
dGVJc29sYXRlZFRyZWUob2JqZWN0LCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworI2VuZGlmCisK
ICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxl
Y3Rpb24pOwogI2Vsc2UKICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUs
IGludGVudCwgc2VsZWN0aW9uKTsKQEAgLTMxMzksNiArMzE0Myw3IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFYQ29yZU9iamVjdCogb2JqZWN0LCBBWE5vdGlmaWNh
dGlvbiBub3RpCiAgICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsKICAgICBjYXNlIEFYQ2hlY2tl
ZFN0YXRlQ2hhbmdlZDoKICAgICBjYXNlIEFYQ2hpbGRyZW5DaGFuZ2VkOgorICAgIGNhc2UgQVhT
ZWxlY3RlZFRleHRDaGFuZ2VkOgogICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6IHsKICAgICAgICAg
dHJlZS0+cmVtb3ZlU3VidHJlZShvYmplY3QtPm9iamVjdElEKCkpOwogICAgICAgICBhdXRvKiBw
YXJlbnQgPSBvYmplY3QtPnBhcmVudE9iamVjdCgpOwpAQCAtMzIzOSwxMiArMzI0NCwxMiBAQCBi
b29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuICFyZXF1aXJlc0Fy
aWFIaWRkZW5GYWxzZSB8fCBhcmlhSGlkZGVuRmFsc2VQcmVzZW50OwogfQogCi1BY2Nlc3NpYmls
aXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCitBWENvcmVPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKIHsKICAgICBBWENvcmVPYmplY3QqIHJvb3RPYmpl
Y3QgPSB0aGlzLT5yb290T2JqZWN0KCk7CiAgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2Jq
ZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmpl
Y3QpLndlYkFyZWFPYmplY3QoKTsKKyAgICByZXR1cm4gcm9vdE9iamVjdC0+d2ViQXJlYU9iamVj
dCgpOwogfQogCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJs
ZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCmluZGV4IGJlZTliYTFjYTY2ZmM1ZTcyM2NjNDZmNjg2MmMzNDQ0ZjUy
YjRiZjMuLjI5ODdlYWUwZDU1NDE4ZTkzZWY1Njc3ODI0MDViNmIwYWViYWY0NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0zNjgsMTAgKzM2
OCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwbGF0Zm9ybVBlcmZvcm1EZWZlcnJlZENhY2hl
VXBkYXRlKCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIHBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9p
ZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0Kiwg
Y29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7
CiAgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKLSAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbkZvclRleHRDb250cm9sKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQmKTsKLSAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbkZvclRl
eHRDb250cm9sKEFYQ29yZU9iamVjdCosIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIGNvbnN0
IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYpOworICAg
IHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAjZWxzZQogICAgIHN0YXRpYyBBWFRl
eHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKTsKICAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwpAQCAtNDEyLDcgKzQxMiw3
IEBAIHByb3RlY3RlZDoKICAgICBib29sIHNob3VsZFNraXBCb3VuZGFyeShjb25zdCBDaGFyYWN0
ZXJPZmZzZXQmLCBjb25zdCBDaGFyYWN0ZXJPZmZzZXQmKTsKIAogcHJpdmF0ZToKLSAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIEFYQ29yZU9iamVjdCogcm9vdFdl
YkFyZWEoKTsKIAogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VN
YXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgc3RhdGljIEFYQ29yZU9iamVjdCog
Zm9jdXNlZE9iamVjdChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBhMTMzMDliNzYxNWQ3MDJhYWNmYTBl
YmM3MzBiMjAxNDcwNzFmZDg0Li5kYzM1YWE5YzFkOGUzN2Y1MmZhYTAxMWFlM2I0ZGZiMTg1ZWM2
YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaApAQCAtNzU2LDYgKzc1Niw3IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBoaWdoZXN0RWRpdGFibGVBbmNlc3RvcigpIG92ZXJyaWRlOwogCiAgICAgY29uc3Qg
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcqIGFuY2VzdG9yQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXco
Ym9vbCBpbmNsdWRlU2VsZikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogd2ViQXJlYU9iamVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KIAog
ICAgIHZvaWQgY2xlYXJJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSgpIG92ZXJyaWRlIHsgbV9pc0ln
bm9yZWRGcm9tUGFyZW50RGF0YSA9IEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFyZW50RGF0
YSgpOyB9CiAgICAgdm9pZCBzZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YUZvckNoaWxkKEFYQ29y
ZU9iamVjdCopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA3NTllM2YxMDI0
YzFlMjkzNmE5NzgwNjI1M2Q2YmJmMDQwZDIzYjg5Li5jYWZkZDY2NjFkN2RiNmIzNTM2OGIwYWZm
NzRjNGNlNjdhOWUzMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMTE2MCw2ICsxMTYw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiBoaWdoZXN0RWRpdGFibGVB
bmNlc3RvcigpID0gMDsKIAogICAgIHZpcnR1YWwgY29uc3QgQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcqIGFuY2VzdG9yQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoYm9vbCBpbmNsdWRlU2VsZikgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Qg
PSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhKEFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IDE1OTdlOTE2YmM3NmJiOGZlYTViMjRkODU5Y2NkMGViNGFjZjEyOTMuLjkwZGExYTdjMTlk
MGRkYmIxZTk2MWY2YTg1Y2E0MWJhMmRiMTRjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAt
MTQ5Miw3ICsxNDkyLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6aXNMb2FkZWQoKSBjb25zdAogewotICAgIHJldHVybiAhbV9yZW5kZXJlci0+ZG9j
dW1lbnQoKS5wYXJzZXIoKTsKKyAgICByZXR1cm4gbV9yZW5kZXJlciA/ICFtX3JlbmRlcmVyLT5k
b2N1bWVudCgpLnBhcnNlcigpIDogZmFsc2U7CiB9CiAKIGRvdWJsZSBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojplc3RpbWF0ZWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdApAQCAtMTU3Miw5ICsx
NTcyLDEzIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQo
KSBjb25zdAogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzS2V5KCkg
Y29uc3QKIHsKKyAgICBpZiAoIW1fcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KwogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7CiAgICAgaWYgKCFpczxFbGVt
ZW50Pihub2RlKSkKLSAgICAgICAgcmV0dXJuIG51bGxBdG9tKCk7CisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKwogICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuYXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihhY2Nlc3NrZXlBdHRyKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCmlu
ZGV4IDM5YjNmYWFiNTExYWMxYTNiZWU2MzZlMmEyNWE0OWMxMjlhNTAzNzQuLjRiYTU5M2IzZGVh
NmZjZWQ5ODQ3YTQ0YTg5YzE0ODI4MzkyNjA1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsK
IAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKKyAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2Fj
aGVJT1MubW0KaW5kZXggY2MzM2EyYmNlMmVkNDQ3NDY2MjM1YjI5OTE0YzQ4Zjc5OWMyMjg4Zi4u
OTAyNjkzZGJjNDg1NTUzZGY3NTM5YWZiZTFhMGU2Yzc1OGM2NmRhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05
Miw3ICs5Miw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFYQ29yZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBuCiAgICAgICAgIFtvYmotPndyYXBw
ZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107
CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCog
b2JqZWN0LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mKQogewogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0
ZWRUZXh0Q2hhbmdlZCk7CiB9CkBAIC0xMDIsMTIgKzEwMiwxMiBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KgogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYVmFsdWVDaGFu
Z2VkKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKQogewogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFY
VmFsdWVDaGFuZ2VkKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb25Gb3JUZXh0Q29udHJvbChBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50JikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRm
b3JtTm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2woQVhDb3JlT2JqZWN0KiBvYmplY3QsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JikKIHsK
ICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDhmYzc0NGRiMGUzNGMzZWQyNzI2YTg3
NzU1OTM3MDhjNzIzY2YzOGIuLmMzYmZhMjYyODhmYzBmMmZlNDJhMDk3NzE0OWNjODhhMzgxZDUy
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC01OSw2ICs1OSw4IEBAIHZvaWQg
QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBv
YmplY3QsIGJvb2wgaXNSb290CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkJvdW5k
aW5nQm94UmVjdCwgb2JqZWN0LmJvdW5kaW5nQm94UmVjdCgpKTsKICAgICBzZXRQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6RGVzY3JpcHRpb24sIG9iamVjdC5kZXNjcmlwdGlvbkF0dHJpYnV0ZVZh
bHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpF
bGVtZW50UmVjdCwgb2JqZWN0LmVsZW1lbnRSZWN0KCkpOworICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpIYXNBUklBVmFsdWVOb3csIG9iamVjdC5oYXNBUklBVmFsdWVOb3coKSk7Cisg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJp
YnV0ZSwgb2JqZWN0Lmhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSgpKTsKICAgICBzZXRQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGVscFRleHQsIG9iamVjdC5oZWxwVGV4dEF0dHJpYnV0
ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpJc0FjY2Vzc2liaWxpdHlJZ25vcmVkLCBvYmplY3QuYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
KTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBY3RpdmVEZXNjZW5kYW50T2ZG
b2N1c2VkQ29udGFpbmVyLCBvYmplY3QuaXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFp
bmVyKCkpOwpAQCAtMjA2LDcgKzIwOCw2IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlh
bGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkhpZXJhcmNoaWNhbExldmVsLCBvYmplY3QuaGll
cmFyY2hpY2FsTGV2ZWwoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okxhbmd1
YWdlLCBvYmplY3QubGFuZ3VhZ2UoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OkNhbkhhdmVTZWxlY3RlZENoaWxkcmVuLCBvYmplY3QuY2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4o
KSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okhhc0FSSUFWYWx1ZU5vdywgb2Jq
ZWN0Lmhhc0FSSUFWYWx1ZU5vdygpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
VGFnTmFtZSwgb2JqZWN0LnRhZ05hbWUoKS5pc29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzTGl2ZVJlZ2lvbiwgb2JqZWN0LnN1cHBvcnRzTGl2
ZVJlZ2lvbigpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNJbnNpZGVMaXZl
UmVnaW9uLCBvYmplY3QuaXNJbnNpZGVMaXZlUmVnaW9uKCkpOwpAQCAtMzc4LDYgKzM3OSw3IEBA
IHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2Jq
ZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAgfQogICAgIAogICAgIGlmIChpc1Jvb3QpIHsK
KyAgICAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OldlYkFyZWEsIG9iamVj
dC53ZWJBcmVhT2JqZWN0KCkpOwogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCwgb2JqZWN0LnByZXZlbnRLZXlib2FyZERP
TUV2ZW50RGlzcGF0Y2goKSk7CiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpT
ZXNzaW9uSUQsIG9iamVjdC5zZXNzaW9uSUQoKSk7CiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpEb2N1bWVudFVSSSwgb2JqZWN0LmRvY3VtZW50VVJJKCkpOwpAQCAtODY0LDYg
Kzg2NiwxNSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnVwZGF0ZUJhY2tpbmdTdG9yZSgpCiAg
ICAgfQogfQogCitTdHJpbmcgQVhJc29sYXRlZE9iamVjdDo6c3RyaW5nRm9yUmFuZ2UoUmVmUHRy
PFJhbmdlPiByYW5nZSkgY29uc3QKK3sKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmll
dmVWYWx1ZUZyb21NYWluVGhyZWFkPFN0cmluZz4oWyZyYW5nZSwgdGhpc10gKCkgLT4gU3RyaW5n
IHsKKyAgICAgICAgaWYgKGF1dG8qIG9iamVjdCA9IGFzc29jaWF0ZWRBWE9iamVjdCgpKQorICAg
ICAgICAgICAgcmV0dXJuIG9iamVjdC0+c3RyaW5nRm9yUmFuZ2UocmFuZ2UpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgfSk7Cit9CisKIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBBWElz
b2xhdGVkT2JqZWN0OjpmaW5kVGV4dFJhbmdlcyhBY2Nlc3NpYmlsaXR5U2VhcmNoVGV4dENyaXRl
cmlhIGNvbnN0JiBjcml0ZXJpYSkgY29uc3QKIHsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6
cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPFZlY3RvcjxSZWZQdHI8UmFuZ2U+Pj4oWyZjcml0
ZXJpYSwgdGhpc10gKCkgLT4gVmVjdG9yPFJlZlB0cjxSYW5nZT4+IHsKQEAgLTE4NzAsMTIgKzE4
ODEsNiBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFYSXNvbGF0ZWRPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZQogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
T2JqZWN0SW5jbHVzaW9uOjpEZWZhdWx0QmVoYXZpb3I7CiB9CiAKLWJvb2wgQVhJc29sYXRlZE9i
amVjdDo6aGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkgY29uc3QKLXsKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGNvbnN0IEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KiBBWElzb2xhdGVkT2JqZWN0OjphbmNlc3RvckFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3KGJvb2wpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmgKaW5kZXggMTM3MTg5NTgzNmY3YzM2YWVmNTQ5MTE5NjdmYzVmZDM4
ZmRkNTQwMS4uMzQ3NmM3OTg1NjcxYjc0Zjg2Y2Y5NTU0OWYzZTIwNmIxNjE3OGRmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IEZpbGVVcGxvYWRCdXR0b25SZXR1cm5zVmFsdWVJblRpdGxlLAogICAgICAgICBGb2N1c2FibGVB
bmNlc3RvciwKICAgICAgICAgSGFzQVJJQVZhbHVlTm93LAorICAgICAgICBIYXNBcHBsZVBERkFu
bm90YXRpb25BdHRyaWJ1dGUsCiAgICAgICAgIEhhc0NoaWxkcmVuLAogICAgICAgICBIYXNQb3B1
cCwKICAgICAgICAgSGVhZGVyQ29udGFpbmVyLApAQCAtMzI4LDYgKzMyOSw3IEBAIHByaXZhdGU6
CiAgICAgICAgIFZlcnRpY2FsU2Nyb2xsQmFyLAogICAgICAgICBWaXNpYmxlQ2hpbGRyZW4sCiAg
ICAgICAgIFZpc2libGVSb3dzLAorICAgICAgICBXZWJBcmVhLAogICAgIH07CiAgICAgCiAgICAg
dHlwZWRlZiBzdGQ6OnBhaXI8QVhJRCwgQVhJRD4gQWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1h
dGhNdWx0aXNjcmlwdFBhaXI7CkBAIC02NDMsNyArNjQ1LDcgQEAgcHJpdmF0ZToKICAgICBWaXNp
YmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZUZvclJhbmdlKGNvbnN0IFBsYWlu
VGV4dFJhbmdlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uUmFuZ2Uo
KTsgfQogICAgIFZpc2libGVQb3NpdGlvblJhbmdlIGxpbmVSYW5nZUZvclBvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZpc2libGVQb3NpdGlv
blJhbmdlKCk7IH0KICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlRm9yUGxhaW5UZXh0UmFuZ2UoY29u
c3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9Ci0g
ICAgU3RyaW5nIHN0cmluZ0ZvclJhbmdlKFJlZlB0cjxSYW5nZT4pIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFN0cmluZygpOyB9CisgICAgU3RyaW5nIHN0cmluZ0ZvclJhbmdlKFJlZlB0cjxSYW5n
ZT4pIGNvbnN0IG92ZXJyaWRlOwogICAgIEludFJlY3QgYm91bmRzRm9yVmlzaWJsZVBvc2l0aW9u
UmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBJbnRSZWN0KCk7IH0KICAgICBJbnRSZWN0IGJvdW5kc0ZvclJhbmdlKGNvbnN0IFJlZlB0cjxS
YW5nZT4pIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFJlY3QoKTsgfQogICAgIGludCBsZW5n
dGhGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KQEAgLTg3NSw4ICs4NzcsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgb3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KEFYQ29yZU9iamVjdCogcGFyZW50KSBv
dmVycmlkZTsKICAgICBib29sIGFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBhY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaGFzQXBw
bGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNB
cHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6Okhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJp
YnV0ZSk7IH0KICAgICBjb25zdCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyogYW5jZXN0b3JBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldyhib29sIGluY2x1ZGVTZWxmKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBBWENvcmVPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBv
YmplY3RBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6V2ViQXJlYSk7IH0KICAgICB2b2lk
IHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhKEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFy
ZW50RGF0YSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJJc0lnbm9yZWRGcm9tUGFyZW50RGF0
YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0SXNJZ25vcmVkRnJvbVBhcmVudERhdGFGb3JDaGls
ZChBWENvcmVPYmplY3QqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCBl
ODBjZjQzYzI5MTAxZmEyY2IxMjczMDAzMzg4MGFmZTdiMGM1ZTM3Li44MGZhMWE2ODcyZTRjNzIy
ZjMwNzFiZDk3ZTFmZTBmOGQyM2NlMzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC0x
NzQsNyArMTc0LDYgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRChBWElE
IGF4SUQpCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKEFYSUQgYXhJRCkKIHsKICAg
ICBMb2NrSG9sZGVyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9jayB9OwotICAgIEFTU0VSVChtX3Jl
YWRlclRocmVhZE5vZGVNYXAuY29udGFpbnMoYXhJRCkpOwogICAgIG1fcGVuZGluZ1JlbW92YWxz
LmFwcGVuZChheElEKTsKIH0KIApAQCAtMjE1LDE3ICsyMTQsMjUgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygpCiAgICAgbV9wZW5kaW5nUmVtb3ZhbHMuY2xlYXIo
KTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IG1fcGVuZGluZ0FwcGVuZHMpIHsKLSAg
ICAgICAgQVNTRVJUKCFtX3JlYWRlclRocmVhZE5vZGVNYXAuY29udGFpbnMoaXRlbS5tX2lzb2xh
dGVkT2JqZWN0LT5vYmplY3RJRCgpKQotICAgICAgICAgICAgfHwgaXRlbS5tX2lzb2xhdGVkT2Jq
ZWN0LT5vYmplY3RJRCgpID09IG1fcm9vdE5vZGVJRCk7CisgICAgICAgIEFYSUQgYXhJRCA9IGl0
ZW0ubV9pc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKTsKKworICAgICAgICBpZiAobV9yZWFkZXJU
aHJlYWROb2RlTWFwLmdldChheElEKSAhPSAmaXRlbS5tX2lzb2xhdGVkT2JqZWN0LmdldCgpKSB7
CisgICAgICAgICAgICAvLyBUaGUgbmV3IElzb2xhdGVkT2JqZWN0IGlzIGEgcmVwbGFjZW1lbnQg
Zm9yIGFuIGV4aXN0aW5nIG9iamVjdAorICAgICAgICAgICAgLy8gYXMgdGhlIHJlc3VsdCBvZiBh
biB1cGRhdGUuIFRodXMgZGV0YWNoIHRoZSBleGlzdGluZyBvbmUgYmVmb3JlCisgICAgICAgICAg
ICAvLyBhZGRpbmcgdGhlIG5ldyBvbmUuCisgICAgICAgICAgICBpZiAoYXV0byBvYmplY3QgPSBu
b2RlRm9ySUQoYXhJRCkpCisgICAgICAgICAgICAgICAgb2JqZWN0LT5kZXRhY2goQWNjZXNzaWJp
bGl0eURldGFjaG1lbnRUeXBlOjpFbGVtZW50RGVzdHJveWVkKTsKKyAgICAgICAgICAgIG1fcmVh
ZGVyVGhyZWFkTm9kZU1hcC5yZW1vdmUoYXhJRCk7CisgICAgICAgIH0KIAotICAgICAgICBpZiAo
aXRlbS5tX3dyYXBwZXIpCi0gICAgICAgICAgICBpdGVtLm1faXNvbGF0ZWRPYmplY3QtPmF0dGFj
aFBsYXRmb3JtV3JhcHBlcihpdGVtLm1fd3JhcHBlcik7CisgICAgICAgIGlmIChtX3JlYWRlclRo
cmVhZE5vZGVNYXAuYWRkKGF4SUQsIGl0ZW0ubV9pc29sYXRlZE9iamVjdC5nZXQoKSkKKyAgICAg
ICAgICAgICYmIGl0ZW0ubV93cmFwcGVyKQorICAgICAgICAgICAgbV9yZWFkZXJUaHJlYWROb2Rl
TWFwLmdldChheElEKS0+YXR0YWNoUGxhdGZvcm1XcmFwcGVyKGl0ZW0ubV93cmFwcGVyKTsKIAot
ICAgICAgICBtX3JlYWRlclRocmVhZE5vZGVNYXAuYWRkKGl0ZW0ubV9pc29sYXRlZE9iamVjdC0+
b2JqZWN0SUQoKSwgaXRlbS5tX2lzb2xhdGVkT2JqZWN0LmdldCgpKTsKICAgICAgICAgLy8gVGhl
IHJlZmVyZW5jZSBjb3VudCBvZiB0aGUganVzdCBhZGRlZCBJc29sYXRlZE9iamVjdCBtdXN0IGJl
IDIKICAgICAgICAgLy8gYmVjYXVzZSBpdCBpcyByZWZlcmVuY2VkIGJ5IG1fcmVhZGVyVGhyZWFk
Tm9kZU1hcCBhbmQgbV9wZW5kaW5nQXBwZW5kcy4KICAgICAgICAgLy8gV2hlbiBtX3BlbmRpbmdB
cHBlbmRzIGlzIGNsZWFyZWQsIHRoZSBvYmplY3Qgd2lsbCBiZSBoZWxkIG9ubHkgYnkgbV9yZWFk
ZXJUaHJlYWROb2RlTWFwLgotICAgICAgICBBU1NFUlQobV9yZWFkZXJUaHJlYWROb2RlTWFwLmdl
dChpdGVtLm1faXNvbGF0ZWRPYmplY3QtPm9iamVjdElEKCkpLT5yZWZDb3VudCgpID09IDIpOwor
ICAgICAgICBBU1NFUlQobV9yZWFkZXJUaHJlYWROb2RlTWFwLmdldChheElEKS0+cmVmQ291bnQo
KSA9PSAyKTsKICAgICB9CiAgICAgbV9wZW5kaW5nQXBwZW5kcy5jbGVhcigpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0K
aW5kZXggY2JiOGNkOWQ1ODljOTEwZmViYzhmNzRhODc4Y2U2NWMzNjY5YTUyMC4uNjIyOTMwNmM5
NTk1ODRlNjc0MGFhOGMwOWE4MTM5N2NmYWUzNmIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCkBAIC0zNjQsNyArMzY0
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3Jl
T2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG4KICAgICBBWFBvc3ROb3RpZmljYXRpb25XaXRo
VXNlckluZm8ob2JqLT53cmFwcGVyKCksIG1hY05vdGlmaWNhdGlvbiwgbmlsLCBza2lwU3lzdGVt
Tm90aWZpY2F0aW9uKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBjb25z
dCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24pCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0
Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQog
ewogICAgIGlmICghb2JqZWN0KQogICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOwpAQCAt
NDE5LDcgKzQxOSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBs
YXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqCiAgICAgW3VzZXJJbmZvIHJl
bGVhc2VdOwogfQogCi1zdGF0aWMgdm9pZCBhZGRUZXh0TWFya2VyRm9yKE5TTXV0YWJsZURpY3Rp
b25hcnkqIGNoYW5nZSwgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQorc3RhdGljIHZvaWQgYWRkVGV4dE1hcmtlckZvcihOU011dGFi
bGVEaWN0aW9uYXJ5KiBjaGFuZ2UsIEFYQ29yZU9iamVjdCYgb2JqZWN0LCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIGlmIChwb3NpdGlvbi5pc051bGwoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNDI3LDE0ICs0MjcsMTQgQEAgc3RhdGljIHZvaWQgYWRkVGV4dE1hcmtl
ckZvcihOU011dGFibGVEaWN0aW9uYXJ5KiBjaGFuZ2UsIEFjY2Vzc2liaWxpdHlPYmplY3QmIG8K
ICAgICAgICAgW2NoYW5nZSBzZXRPYmplY3Q6dGV4dE1hcmtlciBmb3JLZXk6TlNBY2Nlc3NpYmls
aXR5VGV4dENoYW5nZVZhbHVlU3RhcnRNYXJrZXJdOwogfQogCi1zdGF0aWMgdm9pZCBhZGRUZXh0
TWFya2VyRm9yKE5TTXV0YWJsZURpY3Rpb25hcnkqIGNoYW5nZSwgQWNjZXNzaWJpbGl0eU9iamVj
dCYgb2JqZWN0LCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wpCitzdGF0
aWMgdm9pZCBhZGRUZXh0TWFya2VyRm9yKE5TTXV0YWJsZURpY3Rpb25hcnkqIGNoYW5nZSwgQVhD
b3JlT2JqZWN0JiBvYmplY3QsIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJv
bCkKIHsKICAgICBpZiAoaWQgdGV4dE1hcmtlciA9IFtvYmplY3Qud3JhcHBlcigpIHRleHRNYXJr
ZXJGb3JGaXJzdFBvc2l0aW9uSW5UZXh0Q29udHJvbDp0ZXh0Q29udHJvbF0pCiAgICAgICAgIFtj
aGFuZ2Ugc2V0T2JqZWN0OnRleHRNYXJrZXIgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRDaGFu
Z2VWYWx1ZVN0YXJ0TWFya2VyXTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFRleHRNYXJrZXJU
YXJnZXRUeXBlPgotc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGlj
dGlvbmFyeShBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgc3RyaW5nLCBUZXh0TWFya2VyVGFyZ2V0VHlwZSYgbWFya2VyVGFyZ2V0
KQorc3RhdGljIE5TRGljdGlvbmFyeSAqdGV4dFJlcGxhY2VtZW50Q2hhbmdlRGljdGlvbmFyeShB
WENvcmVPYmplY3QmIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBz
dHJpbmcsIFRleHRNYXJrZXJUYXJnZXRUeXBlJiBtYXJrZXJUYXJnZXQpCiB7CiAgICAgTlNTdHJp
bmcgKnRleHQgPSAoTlNTdHJpbmcgKilzdHJpbmc7CiAgICAgTlNVSW50ZWdlciBsZW5ndGggPSBb
dGV4dCBsZW5ndGhdOwpAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
CiAgICAgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKG9iamVjdCwgQVhU
ZXh0RWRpdFR5cGVVbmtub3duLCBlbXB0eVN0cmluZygpLCB0eXBlLCB0ZXh0LCBwb3NpdGlvbik7
CiB9CiAKLXN0YXRpYyB2b2lkIHBvc3RVc2VySW5mb0ZvckNoYW5nZXMoQWNjZXNzaWJpbGl0eU9i
amVjdCYgcm9vdFdlYkFyZWEsIEFjY2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCwgTlNNdXRhYmxl
QXJyYXkqIGNoYW5nZXMpCitzdGF0aWMgdm9pZCBwb3N0VXNlckluZm9Gb3JDaGFuZ2VzKEFYQ29y
ZU9iamVjdCYgcm9vdFdlYkFyZWEsIEFYQ29yZU9iamVjdCYgb2JqZWN0LCBOU011dGFibGVBcnJh
eSogY2hhbmdlcykKIHsKICAgICBOU011dGFibGVEaWN0aW9uYXJ5ICp1c2VySW5mbyA9IFtbTlNN
dXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTo0XTsKICAgICBbdXNlcklu
Zm8gc2V0T2JqZWN0OkAocGxhdGZvcm1DaGFuZ2VUeXBlRm9yV2ViQ29yZUNoYW5nZVR5cGUoQVhU
ZXh0U3RhdGVDaGFuZ2VUeXBlRWRpdCkpIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0U3RhdGVD
aGFuZ2VUeXBlS2V5XTsKQEAgLTQ3Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCBwb3N0VXNlcklu
Zm9Gb3JDaGFuZ2VzKEFjY2Vzc2liaWxpdHlPYmplY3QmIHJvb3RXZWJBcmVhLCBBY2Nlc3NpYmls
aQogICAgIFt1c2VySW5mbyByZWxlYXNlXTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqZWN0LCBBWFRleHRFZGl0VHlwZSBkZWxldGlvblR5cGUsIGNvbnN0IFN0cmluZyYgZGVsZXRl
ZFRleHQsIEFYVGV4dEVkaXRUeXBlIGluc2VydGlvblR5cGUsIGNvbnN0IFN0cmluZyYgaW5zZXJ0
ZWRUZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQordm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0
KiBvYmplY3QsIEFYVGV4dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxl
dGVkVGV4dCwgQVhUZXh0RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNl
cnRlZFRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7CiAgICAgaWYgKCFv
YmplY3QpCiAgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CkBAIC00OTMsNyArNDkzLDcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCoKICAgICBbY2hhbmdlcyByZWxlYXNlXTsKIH0KIAot
dm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRp
b25Gb3JUZXh0Q29udHJvbChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IFN0cmlu
ZyYgZGVsZXRlZFRleHQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbkZvclRleHRDb250cm9sKEFYQ29yZU9iamVj
dCogb2JqZWN0LCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGluc2Vy
dGVkVGV4dCwgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sKQogewogICAg
IGlmICghb2JqZWN0KQogICAgICAgICBvYmplY3QgPSByb290V2ViQXJlYSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCAyZmJhY2Y0N2ZhYjdmYTc5YjQ3N2Fk
MWY0NThkMDZkOTdmMDQ2MzIxLi40ODMyNWM4NjYzNDc2ZjgwOTk5ZmQwNWM1Y2RkYmM5NGZjNzRi
YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTMzNCw3
ICsxMzM0LDExIEBAIHN0YXRpYyBpZCB0ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9u
cyhBWE9iamVjdENhY2hlKiBjYWNoZSwgY29uc3QgVmlzaWJsCiAKIC0gKGlkKXRleHRNYXJrZXJS
YW5nZUZyb21WaXNpYmxlUG9zaXRpb25zOihjb25zdCBWaXNpYmxlUG9zaXRpb24mKXN0YXJ0UG9z
aXRpb24gZW5kUG9zaXRpb246KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpZW5kUG9zaXRpb24KIHsK
LSAgICByZXR1cm4gdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMoc2VsZi5heEJh
Y2tpbmdPYmplY3QtPmF4T2JqZWN0Q2FjaGUoKSwgc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24p
OworICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBzZWxmLnVwZGF0ZU9iamVjdEJhY2tpbmdTdG9y
ZTsKKyAgICBpZiAoIWJhY2tpbmdPYmplY3QpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBy
ZXR1cm4gdGV4dE1hcmtlclJhbmdlRnJvbVZpc2libGVQb3NpdGlvbnMoYmFja2luZ09iamVjdC0+
YXhPYmplY3RDYWNoZSgpLCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7CiB9CiAKIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0JFR0lOCkBAIC0xOTU1LDE3ICsxOTU5LDE4IEBA
IHN0YXRpYyBOU011dGFibGVBcnJheSAqY29udmVydFN0cmluZ3NUb05TQXJyYXkoY29uc3QgVmVj
dG9yPFN0cmluZz4mIHZlY3RvcikKIC0gKGlkKWFzc29jaWF0ZWRQbHVnaW5QYXJlbnQKIHsKICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZyb21NYWlu
VGhyZWFkPGlkPihbcHJvdGVjdGVkU2VsZiA9IFJldGFpblB0cjxXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcj4oc2VsZildICgpIC0+IFJldGFpblB0cjxpZD4gewotICAgICAgICBpZiAoIXBy
b3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2JqZWN0IHx8ICFwcm90ZWN0ZWRTZWxmLmdldCgp
LmF4QmFja2luZ09iamVjdC0+aGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkpCisgICAg
ICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRTZWxmLmdldCgpLmF4QmFja2luZ09i
amVjdDsKKyAgICAgICAgaWYgKCFiYWNraW5nT2JqZWN0IHx8ICFiYWNraW5nT2JqZWN0LT5oYXNB
cHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSkKICAgICAgICAgICAgIHJldHVybiBuaWw7Ci0g
ICAgCi0gICAgICAgIGlmICghcHJvdGVjdGVkU2VsZi5nZXQoKS5heEJhY2tpbmdPYmplY3QtPmRv
Y3VtZW50KCktPmlzUGx1Z2luRG9jdW1lbnQoKSkKKworICAgICAgICBpZiAoIWJhY2tpbmdPYmpl
Y3QtPmRvY3VtZW50KCktPmlzUGx1Z2luRG9jdW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiBu
aWw7Ci0gICAgICAgIAotICAgICAgICBXaWRnZXQqIHBsdWdpbldpZGdldCA9IHN0YXRpY19jYXN0
PFBsdWdpbkRvY3VtZW50Kj4ocHJvdGVjdGVkU2VsZi5nZXQoKS5heEJhY2tpbmdPYmplY3QtPmRv
Y3VtZW50KCkpLT5wbHVnaW5XaWRnZXQoKTsKKworICAgICAgICBXaWRnZXQqIHBsdWdpbldpZGdl
dCA9IHN0YXRpY19jYXN0PFBsdWdpbkRvY3VtZW50Kj4oYmFja2luZ09iamVjdC0+ZG9jdW1lbnQo
KSktPnBsdWdpbldpZGdldCgpOwogICAgICAgICBpZiAoIXBsdWdpbldpZGdldCB8fCAhcGx1Z2lu
V2lkZ2V0LT5pc1BsdWdpblZpZXdCYXNlKCkpCiAgICAgICAgICAgICByZXR1cm4gbmlsOwotICAg
ICAgICAKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsdWdpblZpZXdCYXNlKj4ocGx1Z2lu
V2lkZ2V0KS0+YWNjZXNzaWJpbGl0eUFzc29jaWF0ZWRQbHVnaW5QYXJlbnRGb3JFbGVtZW50KHBy
b3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2JqZWN0LT5lbGVtZW50KCkpOworCisgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3QmFzZSo+KHBsdWdpbldpZGdldCktPmFjY2Vz
c2liaWxpdHlBc3NvY2lhdGVkUGx1Z2luUGFyZW50Rm9yRWxlbWVudChiYWNraW5nT2JqZWN0LT5l
bGVtZW50KCkpOwogICAgIH0pOwogfQogCkBAIC0zMDcxLDcgKzMwNzYsNyBAQCBBTExPV19ERVBS
RUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVh
bFRvU3RyaW5nOkAiQVhEUlRTcGVlY2hBdHRyaWJ1dGUiXSkKICAgICAgICAgcmV0dXJuIFtzZWxm
IGJhc2VBY2Nlc3NpYmlsaXR5U3BlZWNoSGludF07CiAKLSAgICAvLyBVc2VkIGJ5IERSVCB0byBm
aW5kIGFuIGFjY2Vzc2libGUgbm9kZSBieSBpdHMgZWxlbWVudCBpZC4KKyAgICAvLyBVc2VkIGJ5
IFRlc3RSdW5uZXIgYW5kIERSVCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciB0byBmaW5kIGFuIGFj
Y2Vzc2libGUgbm9kZSBieSBpdHMgZWxlbWVudCBpZC4KICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUg
aXNFcXVhbFRvU3RyaW5nOkAiQVhEUlRFbGVtZW50SWRBdHRyaWJ1dGUiXSkKICAgICAgICAgcmV0
dXJuIGJhY2tpbmdPYmplY3QtPmlkZW50aWZpZXJBdHRyaWJ1dGUoKTsKIApAQCAtMzk4Nyw4ICsz
OTkyLDExIEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIH0KIAog
ICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpAIkFYU3RyaW5nRm9yVGV4dE1hcmtl
clJhbmdlIl0pIHsKLSAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFtzZWxmIHJhbmdlRm9y
VGV4dE1hcmtlclJhbmdlOnRleHRNYXJrZXJSYW5nZV07Ci0gICAgICAgIHJldHVybiBiYWNraW5n
T2JqZWN0LT5zdHJpbmdGb3JSYW5nZShyYW5nZSk7CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8U3RyaW5nPihbJnRleHRNYXJrZXJSYW5n
ZSwgcHJvdGVjdGVkU2VsZiA9IFJldGFpblB0cjxXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
cj4oc2VsZildICgpIC0+IFN0cmluZyB7CisgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdl
ID0gW3Byb3RlY3RlZFNlbGYgcmFuZ2VGb3JUZXh0TWFya2VyUmFuZ2U6dGV4dE1hcmtlclJhbmdl
XTsKKyAgICAgICAgICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRTZWxmLmdldCgp
LmF4QmFja2luZ09iamVjdDsKKyAgICAgICAgICAgIHJldHVybiBiYWNraW5nT2JqZWN0ID8gYmFj
a2luZ09iamVjdC0+c3RyaW5nRm9yUmFuZ2UocmFuZ2UpIDogU3RyaW5nKCk7CisgICAgICAgIH0p
OwogICAgIH0KIAogICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpAIkFYVGV4dE1h
cmtlckZvclBvc2l0aW9uIl0pIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA5YWVhMmY0ZDMzNTMwYWExZmNiYjUxZGYyOTYyMGU2ZjZhYWYwZTcx
Li5hYzM0ZmYyZDY1NTRiYTNmZjdlMjE4NTRmZWE4MzQ5MjM1YWU1NDI0IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjAtMDMtMDEgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCBmb3IgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvc2VhcmNoLXRleHQvc2Vh
cmNoLXRleHQuaHRtbCBpbiBJc29sYXRlZFRyZWUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODQzNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6IEluaXRpYWxpemVzIG1f
dXNlQVhUaHJlYWQuCisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290
RWxlbWVudCk6IE5vIG5lZWQgdG8gc2V0IG1fdXNlQVhUaHJlYWQgaGVyZSBzaW5jZSBpdCBpcyBp
bml0aWFsaXplIGluIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFjY2Vzc2libGVFbGVtZW50QnlJZCk6
IFNhbWUgYXMgYWJvdmUuCisKIDIwMjAtMDItMjggIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBteSB3YXRjaCBsaXN0IHByZWZlcmVuY2VzIGFuZCBj
b250cmlidXRvcidzIGVudHJ5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAppbmRl
eCBjOTY2OWMxZmRiYjUyZDIwNmRjNDMwNzIzYWM4ODNkZmU5MDI0YmYwLi5kYWFmYWRkYWZhZWY3
MzI1YzQ1Yzg0YzllODIwZjc0NDc0YTFkY2E0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmNwcApAQCAtNDYsNiArNDYsNyBAQCBSZWY8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI+IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpjcmVhdGUoKQogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKQogeworICAgIG1fdXNlQVhUaHJlYWQgPSBXS0Fj
Y2Vzc2liaWxpdHlDYW5Vc2VTZWNvbmRhcnlBWFRocmVhZChJbmplY3RlZEJ1bmRsZTo6c2luZ2xl
dG9uKCkucGFnZSgpLT5wYWdlKCkpOwogfQogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKCkKQEAgLTc4LDExICs3OSw2IEBAIFJlZjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQoKQogICAg
IFdLQnVuZGxlUGFnZVJlZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2Uo
KS0+cGFnZSgpOwogICAgIFBsYXRmb3JtVUlFbGVtZW50IHJvb3QgPSBzdGF0aWNfY2FzdDxQbGF0
Zm9ybVVJRWxlbWVudD4oV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChwYWdlKSk7CiAKLSAgICAv
LyBOb3cgdGhhdCB3ZSBoYXZlIGEgcm9vdCBhbmQgdGhlIGlzb2xhdGVkIHRyZWUgaXMgZ2VuZXJh
dGVkLCBzZXQKLSAgICAvLyBtX3VzZUFYVGhyZWFkIHRvIHRydWUgZm9yIG5leHQgcmVxdWVzdCB0
byBiZSBoYW5kbGVkIGluIHRoZSBzZWNvbmRhcnkgdGhyZWFkLgotICAgIGlmIChXS0FjY2Vzc2li
aWxpdHlDYW5Vc2VTZWNvbmRhcnlBWFRocmVhZChJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCku
cGFnZSgpLT5wYWdlKCkpKQotICAgICAgICBtX3VzZUFYVGhyZWFkID0gdHJ1ZTsKLQogICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUocm9vdCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KaW5kZXggYTk0ZGUzODYwZDljYzQx
ZTZiZjhjZjBmZTM3ZDc5YjUzYmNiYmU2My4uODFmZjBmNGI4NzMzYTcxYzhkYTkxNTNjYzk2ZWVl
NTI2YzI5MTY5NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMu
bW0KQEAgLTEwMywxMSArMTAzLDYgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlMKICAgICAgICAg
cm9vdCA9IHN0YXRpY19jYXN0PFBsYXRmb3JtVUlFbGVtZW50PihXS0FjY2Vzc2liaWxpdHlSb290
T2JqZWN0KHBhZ2UpKTsKICAgICB9KTsKIAotICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgYSByb290
IGFuZCB0aGUgaXNvbGF0ZWQgdHJlZSBpcyBnZW5lcmF0ZWQsIHNldAotICAgIC8vIG1fdXNlQVhU
aHJlYWQgdG8gdHJ1ZSBmb3IgbmV4dCByZXF1ZXN0IHRvIGJlIGhhbmRsZWQgaW4gdGhlIHNlY29u
ZGFyeSB0aHJlYWQuCi0gICAgaWYgKFdLQWNjZXNzaWJpbGl0eUNhblVzZVNlY29uZGFyeUFYVGhy
ZWFkKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKSkpCi0gICAgICAg
IG1fdXNlQVhUaHJlYWQgPSB0cnVlOwotCiAgICAgaWQgcmVzdWx0OwogICAgIGV4ZWN1dGVPbkFY
VGhyZWFkSWZQb3NzaWJsZShbJnJvb3QsICZpZEF0dHJpYnV0ZSwgJnJlc3VsdF0gewogICAgICAg
ICByZXN1bHQgPSBmaW5kQWNjZXNzaWJsZU9iamVjdEJ5SWQocm9vdCwgW05TU3RyaW5nIHN0cmlu
Z1dpdGhKU1N0cmluZ1JlZjppZEF0dHJpYnV0ZV0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEyYzllZWZjYzMzNGNjY2Q1
ODBjZTEyNWE2YTEwOGEyYTQxZDNiYjcuLjI2NTBmMjUyOWQ3MjZiZjEzMTI3ZDg5YTVmNWQ4N2Ri
ZDU5NzYzMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMy0wMSAgQW5kcmVzIEdvbnph
bGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGZvciBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWFyY2gtdGV4dC9zZWFyY2gtdGV4dC5odG1sIGluIElzb2xh
dGVkVHJlZSBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4NDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLW5vdGlmaWNhdGlvbnMuaHRt
bDoKKyAgICAgICAgV2l0aCB0aGlzIGNoYW5nZSwgd2Ugbm93IGdldCB0aGUgRm9jdXNDaGFuZ2Vk
IG5vdGlmaWNhdGlvbiB3aGVuIHRoZQorICAgICAgICBzY3JpcHQgc2V0cyBmb2N1cyB0byBhIHRy
ZWUgaXRlbS4KKwogMjAyMC0wMi0yOCAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdIEdhcmRlbmluZywgdXBkYXRlIFRlc3RFeHBlY3RhdGlvbnMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQt
bm90aWZpY2F0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1l
eHBhbmRlZC1ub3RpZmljYXRpb25zLmh0bWwKaW5kZXggOTUzZTVhNmYxMmJiMmNkMmM2OWE1ZWNl
NjFlMWZkYjRlNmZlNDRlNC4uYmQ5OGFjMWYxN2EyODllY2VkMTI5ZTcwY2JiZDY2ZjgxYzZiMDBm
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBhbmRl
ZC1ub3RpZmljYXRpb25zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMv
YXJpYS1leHBhbmRlZC1ub3RpZmljYXRpb25zLmh0bWwKQEAgLTMwLDcgKzMwLDkgQEAKICAgICB2
YXIgbm90aWZ5TmFtZSA9IDA7CiAgICAgLy8gVGhlIG9yZGVyIG9mIG5vdGlmaWNhdGlvbnMgc2hv
dWxkIGJlIFJvdyBDb3VudCwgUm93IENvbGxhcHNlZCwgUm93IENvdW50LCBSb3cgRXhwYW5kZWQK
ICAgICBmdW5jdGlvbiBub3RpZnlDYWxsYmFjayhlbGVtZW50LCBub3RpZmljYXRpb24pIHsgIAot
ICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWExvYWRDb21wbGV0ZSIgfHwgbm90aWZpY2F0
aW9uID09ICJBWExheW91dENvbXBsZXRlIikKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSAi
QVhMb2FkQ29tcGxldGUiCisgICAgICAgICAgICB8fCBub3RpZmljYXRpb24gPT0gIkFYTGF5b3V0
Q29tcGxldGUiCisgICAgICAgICAgICB8fCBub3RpZmljYXRpb24gPT0gIkFYRm9jdXNDaGFuZ2Vk
IikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbm90aWZ5TmFtZSA9IG5vdGlmaWNhdGlv
bjsKICAgICAgICAgaWYgKG5vdGlmeUNvdW50ID09IDApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392134</attachid>
            <date>2020-03-02 05:32:02 -0800</date>
            <delta_ts>2020-03-02 13:29:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208434-20200302083200.patch</filename>
            <type>text/plain</type>
            <size>33309</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhMWExNGJiN2NkMmQ2
OTU5MTZiODFkYWI1Y2I0MjgxZDZjMWI5ZC4uYmQ3OTkzOTIzNDc3MDJkMmM3YzJhZmY5YzY2OTE1
ZGJhY2E5OTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTAzLTAxICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlYXJjaC10ZXh0L3NlYXJjaC10ZXh0Lmh0bWwg
aW4gSXNvbGF0ZWRUcmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg0MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb3ZlcmVkIGJ5IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Nl
YXJjaC10ZXh0L3NlYXJjaC10ZXh0Lmh0bWwKKworICAgICAgICAtIFVwZGF0ZXMgSXNvbGF0ZWRU
cmVlIGZvciBBWFNlbGVjdGVkVGV4dENoYW5nZWQgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgLSBF
eHBvc2VzIHdlYkFyZWFPYmplY3QgdGhyb3VnaCB0aGUgQVhDb3JlT2JqZWN0IGludGVyZmFjZS4K
KyAgICAgICAgLSBBWElzb2xhdGVkT2JqZWN0IGltcGxlbWVudGF0aW9uIGZvciBoYXNBcHBsZVBE
RkFubm90YXRpb25BdHRyaWJ1dGUsCisgICAgICAgIHdlYkFyZWFPYmplY3QgYW5kIHN0cmluZ0Zv
clJhbmdlLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6aXNMb2FkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzS2V5IGNvbnN0KToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2wpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6c3RyaW5nRm9yUmFuZ2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aGFzQXBwbGVQREZBbm5vdGF0aW9u
QXR0cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OnJlbW92ZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmFw
cGx5UGVuZGluZ0NoYW5nZXMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0
Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6YWRkVGV4
dE1hcmtlckZvcik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0
aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RVc2VySW5mb0ZvckNoYW5nZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbkZvclRleHRDb250cm9sKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToK
KyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgdGV4dE1hcmtlclJhbmdl
RnJvbVZpc2libGVQb3NpdGlvbnM6ZW5kUG9zaXRpb246XSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIGFzc29jaWF0ZWRQbHVnaW5QYXJlbnRdKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOl0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6Zm9yUGFyYW1ldGVyOl0pOgorCiAyMDIwLTAyLTI4ICBBbGJl
cnRvIEdhcmNpYSAgPGJlcnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gVW5y
ZXZpZXdlZC4gRml4IGJ1aWxkIHdhcm5pbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAzZjE4NTQ0YTc0YmM5ZDljZjM2NjU4MzMzOWM1
ZTdlMzI3OTk3Mjg3Li5kMzc0MDAzN2RjYWU4OWRlNzg4NWYyZmM3MjFkMjc5YjNmNWNkNjc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTEzNjQsNiArMTM2NCwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBjbwogICAgICAgICB9CiAg
ICAgfQogCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICB1cGRh
dGVJc29sYXRlZFRyZWUob2JqZWN0LCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworI2VuZGlmCisK
ICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxl
Y3Rpb24pOwogI2Vsc2UKICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUs
IGludGVudCwgc2VsZWN0aW9uKTsKQEAgLTMxMzksNiArMzE0Myw3IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFYQ29yZU9iamVjdCogb2JqZWN0LCBBWE5vdGlmaWNh
dGlvbiBub3RpCiAgICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsKICAgICBjYXNlIEFYQ2hlY2tl
ZFN0YXRlQ2hhbmdlZDoKICAgICBjYXNlIEFYQ2hpbGRyZW5DaGFuZ2VkOgorICAgIGNhc2UgQVhT
ZWxlY3RlZFRleHRDaGFuZ2VkOgogICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6IHsKICAgICAgICAg
dHJlZS0+cmVtb3ZlU3VidHJlZShvYmplY3QtPm9iamVjdElEKCkpOwogICAgICAgICBhdXRvKiBw
YXJlbnQgPSBvYmplY3QtPnBhcmVudE9iamVjdCgpOwpAQCAtMzIzOSwxMiArMzI0NCwxMiBAQCBi
b29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuICFyZXF1aXJlc0Fy
aWFIaWRkZW5GYWxzZSB8fCBhcmlhSGlkZGVuRmFsc2VQcmVzZW50OwogfQogCi1BY2Nlc3NpYmls
aXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCitBWENvcmVPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKIHsKICAgICBBWENvcmVPYmplY3QqIHJvb3RPYmpl
Y3QgPSB0aGlzLT5yb290T2JqZWN0KCk7CiAgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2Jq
ZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmpl
Y3QpLndlYkFyZWFPYmplY3QoKTsKKyAgICByZXR1cm4gcm9vdE9iamVjdC0+d2ViQXJlYU9iamVj
dCgpOwogfQogCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJs
ZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCmluZGV4IGJlZTliYTFjYTY2ZmM1ZTcyM2NjNDZmNjg2MmMzNDQ0ZjUy
YjRiZjMuLjI5ODdlYWUwZDU1NDE4ZTkzZWY1Njc3ODI0MDViNmIwYWViYWY0NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0zNjgsMTAgKzM2
OCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwbGF0Zm9ybVBlcmZvcm1EZWZlcnJlZENhY2hl
VXBkYXRlKCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIHBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9p
ZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0Kiwg
Y29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7
CiAgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKLSAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbkZvclRleHRDb250cm9sKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQmKTsKLSAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbkZvclRl
eHRDb250cm9sKEFYQ29yZU9iamVjdCosIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIGNvbnN0
IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYpOworICAg
IHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAjZWxzZQogICAgIHN0YXRpYyBBWFRl
eHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKTsKICAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwpAQCAtNDEyLDcgKzQxMiw3
IEBAIHByb3RlY3RlZDoKICAgICBib29sIHNob3VsZFNraXBCb3VuZGFyeShjb25zdCBDaGFyYWN0
ZXJPZmZzZXQmLCBjb25zdCBDaGFyYWN0ZXJPZmZzZXQmKTsKIAogcHJpdmF0ZToKLSAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIEFYQ29yZU9iamVjdCogcm9vdFdl
YkFyZWEoKTsKIAogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VN
YXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgc3RhdGljIEFYQ29yZU9iamVjdCog
Zm9jdXNlZE9iamVjdChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBhMTMzMDliNzYxNWQ3MDJhYWNmYTBl
YmM3MzBiMjAxNDcwNzFmZDg0Li5kYzM1YWE5YzFkOGUzN2Y1MmZhYTAxMWFlM2I0ZGZiMTg1ZWM2
YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaApAQCAtNzU2LDYgKzc1Niw3IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBoaWdoZXN0RWRpdGFibGVBbmNlc3RvcigpIG92ZXJyaWRlOwogCiAgICAgY29uc3Qg
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcqIGFuY2VzdG9yQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXco
Ym9vbCBpbmNsdWRlU2VsZikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogd2ViQXJlYU9iamVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KIAog
ICAgIHZvaWQgY2xlYXJJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSgpIG92ZXJyaWRlIHsgbV9pc0ln
bm9yZWRGcm9tUGFyZW50RGF0YSA9IEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFyZW50RGF0
YSgpOyB9CiAgICAgdm9pZCBzZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YUZvckNoaWxkKEFYQ29y
ZU9iamVjdCopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA3NTllM2YxMDI0
YzFlMjkzNmE5NzgwNjI1M2Q2YmJmMDQwZDIzYjg5Li5jYWZkZDY2NjFkN2RiNmIzNTM2OGIwYWZm
NzRjNGNlNjdhOWUzMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMTE2MCw2ICsxMTYw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiBoaWdoZXN0RWRpdGFibGVB
bmNlc3RvcigpID0gMDsKIAogICAgIHZpcnR1YWwgY29uc3QgQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcqIGFuY2VzdG9yQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoYm9vbCBpbmNsdWRlU2VsZikgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Qg
PSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhKEFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IDE1OTdlOTE2YmM3NmJiOGZlYTViMjRkODU5Y2NkMGViNGFjZjEyOTMuLjkwZGExYTdjMTlk
MGRkYmIxZTk2MWY2YTg1Y2E0MWJhMmRiMTRjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAt
MTQ5Miw3ICsxNDkyLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6aXNMb2FkZWQoKSBjb25zdAogewotICAgIHJldHVybiAhbV9yZW5kZXJlci0+ZG9j
dW1lbnQoKS5wYXJzZXIoKTsKKyAgICByZXR1cm4gbV9yZW5kZXJlciA/ICFtX3JlbmRlcmVyLT5k
b2N1bWVudCgpLnBhcnNlcigpIDogZmFsc2U7CiB9CiAKIGRvdWJsZSBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojplc3RpbWF0ZWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdApAQCAtMTU3Miw5ICsx
NTcyLDEzIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQo
KSBjb25zdAogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzS2V5KCkg
Y29uc3QKIHsKKyAgICBpZiAoIW1fcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KwogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7CiAgICAgaWYgKCFpczxFbGVt
ZW50Pihub2RlKSkKLSAgICAgICAgcmV0dXJuIG51bGxBdG9tKCk7CisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKwogICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuYXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihhY2Nlc3NrZXlBdHRyKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCmlu
ZGV4IDM5YjNmYWFiNTExYWMxYTNiZWU2MzZlMmEyNWE0OWMxMjlhNTAzNzQuLjZmMTk5OWM4MTcw
YjY3OTg0NzJkZDE5NWRkYTI3ZWI0YmU2Y2YyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsK
IAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKKyAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyop
OwpAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIExheW91dFJlY3QgZWxlbWVudFJlY3Qo
KSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3Qo
KSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3RJ
ZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIAorCiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogZmlyc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmplY3QoKTsg
fQogICAgIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJh
ciopOwogICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9iamVjdCop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2Fj
aGVJT1MubW0KaW5kZXggY2MzM2EyYmNlMmVkNDQ3NDY2MjM1YjI5OTE0YzQ4Zjc5OWMyMjg4Zi4u
OTAyNjkzZGJjNDg1NTUzZGY3NTM5YWZiZTFhMGU2Yzc1OGM2NmRhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05
Miw3ICs5Miw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFYQ29yZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBuCiAgICAgICAgIFtvYmotPndyYXBw
ZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107
CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCog
b2JqZWN0LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mKQogewogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0
ZWRUZXh0Q2hhbmdlZCk7CiB9CkBAIC0xMDIsMTIgKzEwMiwxMiBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KgogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYVmFsdWVDaGFu
Z2VkKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKQogewogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFY
VmFsdWVDaGFuZ2VkKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb25Gb3JUZXh0Q29udHJvbChBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50JikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRm
b3JtTm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2woQVhDb3JlT2JqZWN0KiBvYmplY3QsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JikKIHsK
ICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDhmYzc0NGRiMGUzNGMzZWQyNzI2YTg3
NzU1OTM3MDhjNzIzY2YzOGIuLmMzYmZhMjYyODhmYzBmMmZlNDJhMDk3NzE0OWNjODhhMzgxZDUy
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC01OSw2ICs1OSw4IEBAIHZvaWQg
QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBv
YmplY3QsIGJvb2wgaXNSb290CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkJvdW5k
aW5nQm94UmVjdCwgb2JqZWN0LmJvdW5kaW5nQm94UmVjdCgpKTsKICAgICBzZXRQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6RGVzY3JpcHRpb24sIG9iamVjdC5kZXNjcmlwdGlvbkF0dHJpYnV0ZVZh
bHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpF
bGVtZW50UmVjdCwgb2JqZWN0LmVsZW1lbnRSZWN0KCkpOworICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpIYXNBUklBVmFsdWVOb3csIG9iamVjdC5oYXNBUklBVmFsdWVOb3coKSk7Cisg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJp
YnV0ZSwgb2JqZWN0Lmhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSgpKTsKICAgICBzZXRQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGVscFRleHQsIG9iamVjdC5oZWxwVGV4dEF0dHJpYnV0
ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpJc0FjY2Vzc2liaWxpdHlJZ25vcmVkLCBvYmplY3QuYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
KTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBY3RpdmVEZXNjZW5kYW50T2ZG
b2N1c2VkQ29udGFpbmVyLCBvYmplY3QuaXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFp
bmVyKCkpOwpAQCAtMjA2LDcgKzIwOCw2IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlh
bGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkhpZXJhcmNoaWNhbExldmVsLCBvYmplY3QuaGll
cmFyY2hpY2FsTGV2ZWwoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okxhbmd1
YWdlLCBvYmplY3QubGFuZ3VhZ2UoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OkNhbkhhdmVTZWxlY3RlZENoaWxkcmVuLCBvYmplY3QuY2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4o
KSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okhhc0FSSUFWYWx1ZU5vdywgb2Jq
ZWN0Lmhhc0FSSUFWYWx1ZU5vdygpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
VGFnTmFtZSwgb2JqZWN0LnRhZ05hbWUoKS5pc29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzTGl2ZVJlZ2lvbiwgb2JqZWN0LnN1cHBvcnRzTGl2
ZVJlZ2lvbigpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNJbnNpZGVMaXZl
UmVnaW9uLCBvYmplY3QuaXNJbnNpZGVMaXZlUmVnaW9uKCkpOwpAQCAtMzc4LDYgKzM3OSw3IEBA
IHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2Jq
ZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAgfQogICAgIAogICAgIGlmIChpc1Jvb3QpIHsK
KyAgICAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OldlYkFyZWEsIG9iamVj
dC53ZWJBcmVhT2JqZWN0KCkpOwogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCwgb2JqZWN0LnByZXZlbnRLZXlib2FyZERP
TUV2ZW50RGlzcGF0Y2goKSk7CiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpT
ZXNzaW9uSUQsIG9iamVjdC5zZXNzaW9uSUQoKSk7CiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpEb2N1bWVudFVSSSwgb2JqZWN0LmRvY3VtZW50VVJJKCkpOwpAQCAtODY0LDYg
Kzg2NiwxNSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnVwZGF0ZUJhY2tpbmdTdG9yZSgpCiAg
ICAgfQogfQogCitTdHJpbmcgQVhJc29sYXRlZE9iamVjdDo6c3RyaW5nRm9yUmFuZ2UoUmVmUHRy
PFJhbmdlPiByYW5nZSkgY29uc3QKK3sKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmll
dmVWYWx1ZUZyb21NYWluVGhyZWFkPFN0cmluZz4oWyZyYW5nZSwgdGhpc10gKCkgLT4gU3RyaW5n
IHsKKyAgICAgICAgaWYgKGF1dG8qIG9iamVjdCA9IGFzc29jaWF0ZWRBWE9iamVjdCgpKQorICAg
ICAgICAgICAgcmV0dXJuIG9iamVjdC0+c3RyaW5nRm9yUmFuZ2UocmFuZ2UpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgfSk7Cit9CisKIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBBWElz
b2xhdGVkT2JqZWN0OjpmaW5kVGV4dFJhbmdlcyhBY2Nlc3NpYmlsaXR5U2VhcmNoVGV4dENyaXRl
cmlhIGNvbnN0JiBjcml0ZXJpYSkgY29uc3QKIHsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6
cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPFZlY3RvcjxSZWZQdHI8UmFuZ2U+Pj4oWyZjcml0
ZXJpYSwgdGhpc10gKCkgLT4gVmVjdG9yPFJlZlB0cjxSYW5nZT4+IHsKQEAgLTE4NzAsMTIgKzE4
ODEsNiBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFYSXNvbGF0ZWRPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZQogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
T2JqZWN0SW5jbHVzaW9uOjpEZWZhdWx0QmVoYXZpb3I7CiB9CiAKLWJvb2wgQVhJc29sYXRlZE9i
amVjdDo6aGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkgY29uc3QKLXsKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGNvbnN0IEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KiBBWElzb2xhdGVkT2JqZWN0OjphbmNlc3RvckFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3KGJvb2wpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmgKaW5kZXggMTM3MTg5NTgzNmY3YzM2YWVmNTQ5MTE5NjdmYzVmZDM4
ZmRkNTQwMS4uMzQ3NmM3OTg1NjcxYjc0Zjg2Y2Y5NTU0OWYzZTIwNmIxNjE3OGRmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IEZpbGVVcGxvYWRCdXR0b25SZXR1cm5zVmFsdWVJblRpdGxlLAogICAgICAgICBGb2N1c2FibGVB
bmNlc3RvciwKICAgICAgICAgSGFzQVJJQVZhbHVlTm93LAorICAgICAgICBIYXNBcHBsZVBERkFu
bm90YXRpb25BdHRyaWJ1dGUsCiAgICAgICAgIEhhc0NoaWxkcmVuLAogICAgICAgICBIYXNQb3B1
cCwKICAgICAgICAgSGVhZGVyQ29udGFpbmVyLApAQCAtMzI4LDYgKzMyOSw3IEBAIHByaXZhdGU6
CiAgICAgICAgIFZlcnRpY2FsU2Nyb2xsQmFyLAogICAgICAgICBWaXNpYmxlQ2hpbGRyZW4sCiAg
ICAgICAgIFZpc2libGVSb3dzLAorICAgICAgICBXZWJBcmVhLAogICAgIH07CiAgICAgCiAgICAg
dHlwZWRlZiBzdGQ6OnBhaXI8QVhJRCwgQVhJRD4gQWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1h
dGhNdWx0aXNjcmlwdFBhaXI7CkBAIC02NDMsNyArNjQ1LDcgQEAgcHJpdmF0ZToKICAgICBWaXNp
YmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZUZvclJhbmdlKGNvbnN0IFBsYWlu
VGV4dFJhbmdlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uUmFuZ2Uo
KTsgfQogICAgIFZpc2libGVQb3NpdGlvblJhbmdlIGxpbmVSYW5nZUZvclBvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZpc2libGVQb3NpdGlv
blJhbmdlKCk7IH0KICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlRm9yUGxhaW5UZXh0UmFuZ2UoY29u
c3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9Ci0g
ICAgU3RyaW5nIHN0cmluZ0ZvclJhbmdlKFJlZlB0cjxSYW5nZT4pIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFN0cmluZygpOyB9CisgICAgU3RyaW5nIHN0cmluZ0ZvclJhbmdlKFJlZlB0cjxSYW5n
ZT4pIGNvbnN0IG92ZXJyaWRlOwogICAgIEludFJlY3QgYm91bmRzRm9yVmlzaWJsZVBvc2l0aW9u
UmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBJbnRSZWN0KCk7IH0KICAgICBJbnRSZWN0IGJvdW5kc0ZvclJhbmdlKGNvbnN0IFJlZlB0cjxS
YW5nZT4pIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFJlY3QoKTsgfQogICAgIGludCBsZW5n
dGhGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KQEAgLTg3NSw4ICs4NzcsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgb3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KEFYQ29yZU9iamVjdCogcGFyZW50KSBv
dmVycmlkZTsKICAgICBib29sIGFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBhY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaGFzQXBw
bGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNB
cHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6Okhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJp
YnV0ZSk7IH0KICAgICBjb25zdCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyogYW5jZXN0b3JBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldyhib29sIGluY2x1ZGVTZWxmKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBBWENvcmVPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBv
YmplY3RBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6V2ViQXJlYSk7IH0KICAgICB2b2lk
IHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhKEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFy
ZW50RGF0YSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJJc0lnbm9yZWRGcm9tUGFyZW50RGF0
YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0SXNJZ25vcmVkRnJvbVBhcmVudERhdGFGb3JDaGls
ZChBWENvcmVPYmplY3QqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCBl
ODBjZjQzYzI5MTAxZmEyY2IxMjczMDAzMzg4MGFmZTdiMGM1ZTM3Li4wMTQ0ZThkMjY1ODQwOWEx
ZmZhNTIxZjU1MTJlZjJkMGI1ZTllZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC0x
NzQsNyArMTc0LDYgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRChBWElE
IGF4SUQpCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKEFYSUQgYXhJRCkKIHsKICAg
ICBMb2NrSG9sZGVyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9jayB9OwotICAgIEFTU0VSVChtX3Jl
YWRlclRocmVhZE5vZGVNYXAuY29udGFpbnMoYXhJRCkpOwogICAgIG1fcGVuZGluZ1JlbW92YWxz
LmFwcGVuZChheElEKTsKIH0KIApAQCAtMjE1LDE3ICsyMTQsMjQgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygpCiAgICAgbV9wZW5kaW5nUmVtb3ZhbHMuY2xlYXIo
KTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IG1fcGVuZGluZ0FwcGVuZHMpIHsKLSAg
ICAgICAgQVNTRVJUKCFtX3JlYWRlclRocmVhZE5vZGVNYXAuY29udGFpbnMoaXRlbS5tX2lzb2xh
dGVkT2JqZWN0LT5vYmplY3RJRCgpKQotICAgICAgICAgICAgfHwgaXRlbS5tX2lzb2xhdGVkT2Jq
ZWN0LT5vYmplY3RJRCgpID09IG1fcm9vdE5vZGVJRCk7CisgICAgICAgIEFYSUQgYXhJRCA9IGl0
ZW0ubV9pc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKTsKKworICAgICAgICBpZiAobV9yZWFkZXJU
aHJlYWROb2RlTWFwLmdldChheElEKSAhPSAmaXRlbS5tX2lzb2xhdGVkT2JqZWN0LmdldCgpKSB7
CisgICAgICAgICAgICAvLyBUaGUgbmV3IElzb2xhdGVkT2JqZWN0IGlzIGEgcmVwbGFjZW1lbnQg
Zm9yIGFuIGV4aXN0aW5nIG9iamVjdAorICAgICAgICAgICAgLy8gYXMgdGhlIHJlc3VsdCBvZiBh
biB1cGRhdGUuIFRodXMgZGV0YWNoIHRoZSBleGlzdGluZyBvbmUgYmVmb3JlCisgICAgICAgICAg
ICAvLyBhZGRpbmcgdGhlIG5ldyBvbmUuCisgICAgICAgICAgICBpZiAoYXV0byBvYmplY3QgPSBu
b2RlRm9ySUQoYXhJRCkpCisgICAgICAgICAgICAgICAgb2JqZWN0LT5kZXRhY2goQWNjZXNzaWJp
bGl0eURldGFjaG1lbnRUeXBlOjpFbGVtZW50RGVzdHJveWVkKTsKKyAgICAgICAgICAgIG1fcmVh
ZGVyVGhyZWFkTm9kZU1hcC5yZW1vdmUoYXhJRCk7CisgICAgICAgIH0KIAotICAgICAgICBpZiAo
aXRlbS5tX3dyYXBwZXIpCi0gICAgICAgICAgICBpdGVtLm1faXNvbGF0ZWRPYmplY3QtPmF0dGFj
aFBsYXRmb3JtV3JhcHBlcihpdGVtLm1fd3JhcHBlcik7CisgICAgICAgIGlmIChtX3JlYWRlclRo
cmVhZE5vZGVNYXAuYWRkKGF4SUQsIGl0ZW0ubV9pc29sYXRlZE9iamVjdC5nZXQoKSkgJiYgaXRl
bS5tX3dyYXBwZXIpCisgICAgICAgICAgICBtX3JlYWRlclRocmVhZE5vZGVNYXAuZ2V0KGF4SUQp
LT5hdHRhY2hQbGF0Zm9ybVdyYXBwZXIoaXRlbS5tX3dyYXBwZXIpOwogCi0gICAgICAgIG1fcmVh
ZGVyVGhyZWFkTm9kZU1hcC5hZGQoaXRlbS5tX2lzb2xhdGVkT2JqZWN0LT5vYmplY3RJRCgpLCBp
dGVtLm1faXNvbGF0ZWRPYmplY3QuZ2V0KCkpOwogICAgICAgICAvLyBUaGUgcmVmZXJlbmNlIGNv
dW50IG9mIHRoZSBqdXN0IGFkZGVkIElzb2xhdGVkT2JqZWN0IG11c3QgYmUgMgogICAgICAgICAv
LyBiZWNhdXNlIGl0IGlzIHJlZmVyZW5jZWQgYnkgbV9yZWFkZXJUaHJlYWROb2RlTWFwIGFuZCBt
X3BlbmRpbmdBcHBlbmRzLgogICAgICAgICAvLyBXaGVuIG1fcGVuZGluZ0FwcGVuZHMgaXMgY2xl
YXJlZCwgdGhlIG9iamVjdCB3aWxsIGJlIGhlbGQgb25seSBieSBtX3JlYWRlclRocmVhZE5vZGVN
YXAuCi0gICAgICAgIEFTU0VSVChtX3JlYWRlclRocmVhZE5vZGVNYXAuZ2V0KGl0ZW0ubV9pc29s
YXRlZE9iamVjdC0+b2JqZWN0SUQoKSktPnJlZkNvdW50KCkgPT0gMik7CisgICAgICAgIEFTU0VS
VChtX3JlYWRlclRocmVhZE5vZGVNYXAuZ2V0KGF4SUQpLT5yZWZDb3VudCgpID09IDIpOwogICAg
IH0KICAgICBtX3BlbmRpbmdBcHBlbmRzLmNsZWFyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBjYmI4Y2Q5
ZDU4OWM5MTBmZWJjOGY3NGE4NzhjZTY1YzM2NjlhNTIwLi42MjI5MzA2Yzk1OTU4NGU2NzQwYWE4
YzA5YTgxMzk3Y2ZhZTM2YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iaiwg
QVhOb3RpZmljYXRpb24gbgogICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmot
PndyYXBwZXIoKSwgbWFjTm90aWZpY2F0aW9uLCBuaWwsIHNraXBTeXN0ZW1Ob3RpZmljYXRpb24p
OwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYg
aW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFv
YmplY3QpCiAgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CkBAIC00MTksNyArNDE5LDcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCoKICAgICBbdXNlckluZm8gcmVsZWFzZV07CiB9CiAK
LXN0YXRpYyB2b2lkIGFkZFRleHRNYXJrZXJGb3IoTlNNdXRhYmxlRGljdGlvbmFyeSogY2hhbmdl
LCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCitzdGF0aWMgdm9pZCBhZGRUZXh0TWFya2VyRm9yKE5TTXV0YWJsZURpY3Rpb25hcnkq
IGNoYW5nZSwgQVhDb3JlT2JqZWN0JiBvYmplY3QsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCiB7CiAgICAgaWYgKHBvc2l0aW9uLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CkBA
IC00MjcsMTQgKzQyNywxNCBAQCBzdGF0aWMgdm9pZCBhZGRUZXh0TWFya2VyRm9yKE5TTXV0YWJs
ZURpY3Rpb25hcnkqIGNoYW5nZSwgQWNjZXNzaWJpbGl0eU9iamVjdCYgbwogICAgICAgICBbY2hh
bmdlIHNldE9iamVjdDp0ZXh0TWFya2VyIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVTdGFydE1hcmtlcl07CiB9CiAKLXN0YXRpYyB2b2lkIGFkZFRleHRNYXJrZXJGb3IoTlNN
dXRhYmxlRGljdGlvbmFyeSogY2hhbmdlLCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QsIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCkKK3N0YXRpYyB2b2lkIGFkZFRl
eHRNYXJrZXJGb3IoTlNNdXRhYmxlRGljdGlvbmFyeSogY2hhbmdlLCBBWENvcmVPYmplY3QmIG9i
amVjdCwgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sKQogewogICAgIGlm
IChpZCB0ZXh0TWFya2VyID0gW29iamVjdC53cmFwcGVyKCkgdGV4dE1hcmtlckZvckZpcnN0UG9z
aXRpb25JblRleHRDb250cm9sOnRleHRDb250cm9sXSkKICAgICAgICAgW2NoYW5nZSBzZXRPYmpl
Y3Q6dGV4dE1hcmtlciBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRN
YXJrZXJdOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dE1hcmtlclRhcmdldFR5cGU+Ci1z
dGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vz
c2liaWxpdHlPYmplY3QmIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiBzdHJpbmcsIFRleHRNYXJrZXJUYXJnZXRUeXBlJiBtYXJrZXJUYXJnZXQpCitzdGF0aWMgTlNE
aWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFYQ29yZU9iamVjdCYg
b2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgVGV4dE1h
cmtlclRhcmdldFR5cGUmIG1hcmtlclRhcmdldCkKIHsKICAgICBOU1N0cmluZyAqdGV4dCA9IChO
U1N0cmluZyAqKXN0cmluZzsKICAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFt0ZXh0IGxlbmd0aF07
CkBAIC00NTksNyArNDU5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCoKICAgICBwb3N0VGV4
dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFRleHRFZGl0VHlwZVVu
a25vd24sIGVtcHR5U3RyaW5nKCksIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKIH0KIAotc3RhdGlj
IHZvaWQgcG9zdFVzZXJJbmZvRm9yQ2hhbmdlcyhBY2Nlc3NpYmlsaXR5T2JqZWN0JiByb290V2Vi
QXJlYSwgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0LCBOU011dGFibGVBcnJheSogY2hhbmdl
cykKK3N0YXRpYyB2b2lkIHBvc3RVc2VySW5mb0ZvckNoYW5nZXMoQVhDb3JlT2JqZWN0JiByb290
V2ViQXJlYSwgQVhDb3JlT2JqZWN0JiBvYmplY3QsIE5TTXV0YWJsZUFycmF5KiBjaGFuZ2VzKQog
ewogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOwogICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6
QChwbGF0Zm9ybUNoYW5nZVR5cGVGb3JXZWJDb3JlQ2hhbmdlVHlwZShBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0KSkgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXld
OwpAQCAtNDc2LDcgKzQ3Niw3IEBAIHN0YXRpYyB2b2lkIHBvc3RVc2VySW5mb0ZvckNoYW5nZXMo
QWNjZXNzaWJpbGl0eU9iamVjdCYgcm9vdFdlYkFyZWEsIEFjY2Vzc2liaWxpCiAgICAgW3VzZXJJ
bmZvIHJlbGVhc2VdOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4
dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0
RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwgQVhU
ZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRl
eHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBpZiAoIW9iamVjdCkKICAgICAg
ICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEoKTsKQEAgLTQ5Myw3ICs0OTMsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KgogICAgIFtjaGFuZ2VzIHJlbGVhc2VdOwogfQogCi12b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbkZvclRleHRDb250
cm9sKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
JiB0ZXh0Q29udHJvbCkKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2woQVhDb3JlT2JqZWN0KiBvYmplY3QsIGNv
bnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wpCiB7CiAgICAgaWYgKCFvYmplY3Qp
CiAgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCmluZGV4IDJmYmFjZjQ3ZmFiN2ZhNzliNDc3YWQxZjQ1OGQwNmQ5N2Yw
NDYzMjEuLjQ4MzI1Yzg2NjM0NzZmODA5OTlmZDA1YzVjZGRiYzk0ZmM3NGJhYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xMzM0LDcgKzEzMzQsMTEgQEAg
c3RhdGljIGlkIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlLCBjb25zdCBWaXNpYmwKIAogLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2li
bGVQb3NpdGlvbnM6KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3Np
dGlvbjooY29uc3QgVmlzaWJsZVBvc2l0aW9uJillbmRQb3NpdGlvbgogewotICAgIHJldHVybiB0
ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhzZWxmLmF4QmFja2luZ09iamVjdC0+
YXhPYmplY3RDYWNoZSgpLCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7CisgICAgYXV0byog
YmFja2luZ09iamVjdCA9IHNlbGYudXBkYXRlT2JqZWN0QmFja2luZ1N0b3JlOworICAgIGlmICgh
YmFja2luZ09iamVjdCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiB0ZXh0TWFy
a2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhiYWNraW5nT2JqZWN0LT5heE9iamVjdENhY2hl
KCksIHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsKIH0KIAogQUxMT1dfREVQUkVDQVRFRF9J
TVBMRU1FTlRBVElPTlNfQkVHSU4KQEAgLTE5NTUsMTcgKzE5NTksMTggQEAgc3RhdGljIE5TTXV0
YWJsZUFycmF5ICpjb252ZXJ0U3RyaW5nc1RvTlNBcnJheShjb25zdCBWZWN0b3I8U3RyaW5nPiYg
dmVjdG9yKQogLSAoaWQpYXNzb2NpYXRlZFBsdWdpblBhcmVudAogewogICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5OjpyZXRyaWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYWQ8aWQ+KFtw
cm90ZWN0ZWRTZWxmID0gUmV0YWluUHRyPFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPihz
ZWxmKV0gKCkgLT4gUmV0YWluUHRyPGlkPiB7Ci0gICAgICAgIGlmICghcHJvdGVjdGVkU2VsZi5n
ZXQoKS5heEJhY2tpbmdPYmplY3QgfHwgIXByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2Jq
ZWN0LT5oYXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSkKKyAgICAgICAgYXV0byogYmFj
a2luZ09iamVjdCA9IHByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2JqZWN0OworICAgICAg
ICBpZiAoIWJhY2tpbmdPYmplY3QgfHwgIWJhY2tpbmdPYmplY3QtPmhhc0FwcGxlUERGQW5ub3Rh
dGlvbkF0dHJpYnV0ZSgpKQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAKLSAgICAgICAg
aWYgKCFwcm90ZWN0ZWRTZWxmLmdldCgpLmF4QmFja2luZ09iamVjdC0+ZG9jdW1lbnQoKS0+aXNQ
bHVnaW5Eb2N1bWVudCgpKQorCisgICAgICAgIGlmICghYmFja2luZ09iamVjdC0+ZG9jdW1lbnQo
KS0+aXNQbHVnaW5Eb2N1bWVudCgpKQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAg
Ci0gICAgICAgIFdpZGdldCogcGx1Z2luV2lkZ2V0ID0gc3RhdGljX2Nhc3Q8UGx1Z2luRG9jdW1l
bnQqPihwcm90ZWN0ZWRTZWxmLmdldCgpLmF4QmFja2luZ09iamVjdC0+ZG9jdW1lbnQoKSktPnBs
dWdpbldpZGdldCgpOworCisgICAgICAgIFdpZGdldCogcGx1Z2luV2lkZ2V0ID0gc3RhdGljX2Nh
c3Q8UGx1Z2luRG9jdW1lbnQqPihiYWNraW5nT2JqZWN0LT5kb2N1bWVudCgpKS0+cGx1Z2luV2lk
Z2V0KCk7CiAgICAgICAgIGlmICghcGx1Z2luV2lkZ2V0IHx8ICFwbHVnaW5XaWRnZXQtPmlzUGx1
Z2luVmlld0Jhc2UoKSkKICAgICAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgICAgIAotICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UGx1Z2luVmlld0Jhc2UqPihwbHVnaW5XaWRnZXQpLT5hY2Nl
c3NpYmlsaXR5QXNzb2NpYXRlZFBsdWdpblBhcmVudEZvckVsZW1lbnQocHJvdGVjdGVkU2VsZi5n
ZXQoKS5heEJhY2tpbmdPYmplY3QtPmVsZW1lbnQoKSk7CisKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFBsdWdpblZpZXdCYXNlKj4ocGx1Z2luV2lkZ2V0KS0+YWNjZXNzaWJpbGl0eUFzc29j
aWF0ZWRQbHVnaW5QYXJlbnRGb3JFbGVtZW50KGJhY2tpbmdPYmplY3QtPmVsZW1lbnQoKSk7CiAg
ICAgfSk7CiB9CiAKQEAgLTMwNzEsNyArMzA3Niw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVN
RU5UQVRJT05TX0VORAogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJB
WERSVFNwZWVjaEF0dHJpYnV0ZSJdKQogICAgICAgICByZXR1cm4gW3NlbGYgYmFzZUFjY2Vzc2li
aWxpdHlTcGVlY2hIaW50XTsKIAotICAgIC8vIFVzZWQgYnkgRFJUIHRvIGZpbmQgYW4gYWNjZXNz
aWJsZSBub2RlIGJ5IGl0cyBlbGVtZW50IGlkLgorICAgIC8vIFVzZWQgYnkgVGVzdFJ1bm5lciBh
bmQgRFJUIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIHRvIGZpbmQgYW4gYWNjZXNzaWJsZSBub2Rl
IGJ5IGl0cyBlbGVtZW50IGlkLgogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJp
bmc6QCJBWERSVEVsZW1lbnRJZEF0dHJpYnV0ZSJdKQogICAgICAgICByZXR1cm4gYmFja2luZ09i
amVjdC0+aWRlbnRpZmllckF0dHJpYnV0ZSgpOwogCkBAIC0zOTg3LDggKzM5OTIsMTEgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYgKFthdHRy
aWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiXSkgewot
ICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gW3NlbGYgcmFuZ2VGb3JUZXh0TWFya2VyUmFu
Z2U6dGV4dE1hcmtlclJhbmdlXTsKLSAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPnN0cmlu
Z0ZvclJhbmdlKHJhbmdlKTsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZl
VmFsdWVGcm9tTWFpblRocmVhZDxTdHJpbmc+KFsmdGV4dE1hcmtlclJhbmdlLCBwcm90ZWN0ZWRT
ZWxmID0gUmV0YWluUHRyPFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPihzZWxmKV0gKCkg
LT4gU3RyaW5nIHsKKyAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBbcHJvdGVjdGVk
U2VsZiByYW5nZUZvclRleHRNYXJrZXJSYW5nZTp0ZXh0TWFya2VyUmFuZ2VdOworICAgICAgICAg
ICAgYXV0byogYmFja2luZ09iamVjdCA9IHByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2Jq
ZWN0OworICAgICAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QgPyBiYWNraW5nT2JqZWN0LT5z
dHJpbmdGb3JSYW5nZShyYW5nZSkgOiBTdHJpbmcoKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAg
ICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhUZXh0TWFya2VyRm9yUG9zaXRp
b24iXSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDlhZWEyZjRkMzM1MzBhYTFmY2JiNTFkZjI5NjIwZTZmNmFhZjBlNzEuLmFjMzRmZjJkNjU1
NGJhM2ZmN2UyMTg1NGZlYTgzNDkyMzVhZTU0MjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0wMSAgQW5k
cmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGZvciBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9zZWFyY2gtdGV4dC9zZWFyY2gtdGV4dC5odG1s
IGluIElzb2xhdGVkVHJlZSBtb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4NDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKTogSW5pdGlhbGl6ZXMgbV91c2VBWFRocmVhZC4K
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KTogTm8g
bmVlZCB0byBzZXQgbV91c2VBWFRocmVhZCBoZXJlIHNpbmNlIGl0IGlzIGluaXRpYWxpemUgaW4g
dGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKTogU2FtZSBhcyBhYm92
ZS4KKwogMjAyMC0wMi0yOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVXBkYXRlIG15IHdhdGNoIGxpc3QgcHJlZmVyZW5jZXMgYW5kIGNvbnRyaWJ1dG9yJ3Mg
ZW50cnkuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4IGM5NjY5YzFmZGJi
NTJkMjA2ZGM0MzA3MjNhYzg4M2RmZTkwMjRiZjAuLmRhYWZhZGRhZmFlZjczMjVjNDVjODRjOWU4
MjBmNzQ0NzRhMWRjYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC00
Niw2ICs0Niw3IEBAIFJlZjxBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcj4gQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OmNyZWF0ZSgpCiAKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcigpCiB7CisgICAgbV91c2VBWFRocmVhZCA9IFdLQWNjZXNzaWJpbGl0eUNh
blVzZVNlY29uZGFyeUFYVGhyZWFkKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCkt
PnBhZ2UoKSk7CiB9CiAKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjp+QWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIoKQpAQCAtNzgsMTEgKzc5LDYgQEAgUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiAgICAgV0tCdW5kbGVQYWdl
UmVmIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCk7CiAg
ICAgUGxhdGZvcm1VSUVsZW1lbnQgcm9vdCA9IHN0YXRpY19jYXN0PFBsYXRmb3JtVUlFbGVtZW50
PihXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KHBhZ2UpKTsKIAotICAgIC8vIE5vdyB0aGF0IHdl
IGhhdmUgYSByb290IGFuZCB0aGUgaXNvbGF0ZWQgdHJlZSBpcyBnZW5lcmF0ZWQsIHNldAotICAg
IC8vIG1fdXNlQVhUaHJlYWQgdG8gdHJ1ZSBmb3IgbmV4dCByZXF1ZXN0IHRvIGJlIGhhbmRsZWQg
aW4gdGhlIHNlY29uZGFyeSB0aHJlYWQuCi0gICAgaWYgKFdLQWNjZXNzaWJpbGl0eUNhblVzZVNl
Y29uZGFyeUFYVGhyZWFkKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2Uo
KSkpCi0gICAgICAgIG1fdXNlQVhUaHJlYWQgPSB0cnVlOwotCiAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShyb290KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJN
YWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlck1hYy5tbQppbmRleCBhOTRkZTM4NjBkOWNjNDFlNmJmOGNmMGZlMzdk
NzliNTNiY2JiZTYzLi44MWZmMGY0Yjg3MzNhNzFjOGRhOTE1M2NjOTZlZWU1MjZjMjkxNjk2IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQpAQCAtMTAzLDEx
ICsxMDMsNiBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OmFjY2Vzc2libGVFbGVtZW50QnlJZChKUwogICAgICAgICByb290ID0gc3RhdGlj
X2Nhc3Q8UGxhdGZvcm1VSUVsZW1lbnQ+KFdLQWNjZXNzaWJpbGl0eVJvb3RPYmplY3QocGFnZSkp
OwogICAgIH0pOwogCi0gICAgLy8gTm93IHRoYXQgd2UgaGF2ZSBhIHJvb3QgYW5kIHRoZSBpc29s
YXRlZCB0cmVlIGlzIGdlbmVyYXRlZCwgc2V0Ci0gICAgLy8gbV91c2VBWFRocmVhZCB0byB0cnVl
IGZvciBuZXh0IHJlcXVlc3QgdG8gYmUgaGFuZGxlZCBpbiB0aGUgc2Vjb25kYXJ5IHRocmVhZC4K
LSAgICBpZiAoV0tBY2Nlc3NpYmlsaXR5Q2FuVXNlU2Vjb25kYXJ5QVhUaHJlYWQoSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKSkKLSAgICAgICAgbV91c2VBWFRocmVh
ZCA9IHRydWU7Ci0KICAgICBpZCByZXN1bHQ7CiAgICAgZXhlY3V0ZU9uQVhUaHJlYWRJZlBvc3Np
YmxlKFsmcm9vdCwgJmlkQXR0cmlidXRlLCAmcmVzdWx0XSB7CiAgICAgICAgIHJlc3VsdCA9IGZp
bmRBY2Nlc3NpYmxlT2JqZWN0QnlJZChyb290LCBbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5n
UmVmOmlkQXR0cmlidXRlXSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTJjOWVlZmNjMzM0Y2NjZDU4MGNlMTI1YTZhMTA4
YTJhNDFkM2JiNy4uMjY1MGYyNTI5ZDcyNmJmMTMxMjdkODlhNWY1ZDg3ZGJkNTk3NjMwMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTAxICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNn
XzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvbWFjL3NlYXJjaC10ZXh0L3NlYXJjaC10ZXh0Lmh0bWwgaW4gSXNvbGF0ZWRUcmVlIG1vZGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg0MzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5odG1sOgorICAgICAgICBX
aXRoIHRoaXMgY2hhbmdlLCB3ZSBub3cgZ2V0IHRoZSBGb2N1c0NoYW5nZWQgbm90aWZpY2F0aW9u
IHdoZW4gdGhlCisgICAgICAgIHNjcmlwdCBzZXRzIGZvY3VzIHRvIGEgdHJlZSBpdGVtLgorCiAy
MDIwLTAyLTI4ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gR2FyZGVuaW5nLCB1cGRhdGUgVGVzdEV4cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBhbmRlZC1ub3RpZmljYXRpb25z
Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLW5vdGlm
aWNhdGlvbnMuaHRtbAppbmRleCA5NTNlNWE2ZjEyYmIyY2QyYzY5YTVlY2U2MWUxZmRiNGU2ZmU0
NGU0Li5iZDk4YWMxZjE3YTI4OWVjZWQxMjllNzBjYmJkNjZmODFjNmIwMGY1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLW5vdGlmaWNhdGlv
bnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVk
LW5vdGlmaWNhdGlvbnMuaHRtbApAQCAtMzAsNyArMzAsOSBAQAogICAgIHZhciBub3RpZnlOYW1l
ID0gMDsKICAgICAvLyBUaGUgb3JkZXIgb2Ygbm90aWZpY2F0aW9ucyBzaG91bGQgYmUgUm93IENv
dW50LCBSb3cgQ29sbGFwc2VkLCBSb3cgQ291bnQsIFJvdyBFeHBhbmRlZAogICAgIGZ1bmN0aW9u
IG5vdGlmeUNhbGxiYWNrKGVsZW1lbnQsIG5vdGlmaWNhdGlvbikgeyAgCi0gICAgICAgIGlmIChu
b3RpZmljYXRpb24gPT0gIkFYTG9hZENvbXBsZXRlIiB8fCBub3RpZmljYXRpb24gPT0gIkFYTGF5
b3V0Q29tcGxldGUiKQorICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWExvYWRDb21wbGV0
ZSIKKyAgICAgICAgICAgIHx8IG5vdGlmaWNhdGlvbiA9PSAiQVhMYXlvdXRDb21wbGV0ZSIKKyAg
ICAgICAgICAgIHx8IG5vdGlmaWNhdGlvbiA9PSAiQVhGb2N1c0NoYW5nZWQiKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBub3RpZnlOYW1lID0gbm90aWZpY2F0aW9uOwogICAgICAgICBp
ZiAobm90aWZ5Q291bnQgPT0gMCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392180</attachid>
            <date>2020-03-02 13:30:02 -0800</date>
            <delta_ts>2020-03-02 14:50:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208434-20200302163000.patch</filename>
            <type>text/plain</type>
            <size>35376</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhMWExNGJiN2NkMmQ2
OTU5MTZiODFkYWI1Y2I0MjgxZDZjMWI5ZC4uOWVmNmFkZWM1NTRiYjI0ZjM2Mzk1MDM2OGUxMGM4
ODNjYWM4NWQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTAzLTAxICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlYXJjaC10ZXh0L3NlYXJjaC10ZXh0Lmh0bWwg
aW4gSXNvbGF0ZWRUcmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDg0MzQKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFj
aC4KKworICAgICAgICBDb3ZlcmVkIGJ5IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Nl
YXJjaC10ZXh0L3NlYXJjaC10ZXh0Lmh0bWwKKworICAgICAgICAtIFVwZGF0ZXMgSXNvbGF0ZWRU
cmVlIGZvciBBWFNlbGVjdGVkVGV4dENoYW5nZWQgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgLSBF
eHBvc2VzIHdlYkFyZWFPYmplY3QgdGhyb3VnaCB0aGUgQVhDb3JlT2JqZWN0IGludGVyZmFjZS4K
KyAgICAgICAgLSBBWElzb2xhdGVkT2JqZWN0IGltcGxlbWVudGF0aW9uIGZvciBoYXNBcHBsZVBE
RkFubm90YXRpb25BdHRyaWJ1dGUsCisgICAgICAgIHdlYkFyZWFPYmplY3QgYW5kIHN0cmluZ0Zv
clJhbmdlLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6aXNMb2FkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzS2V5IGNvbnN0KToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Lmg6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3Rp
ZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2wpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6c3RyaW5nRm9yUmFuZ2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aGFzQXBwbGVQREZBbm5vdGF0aW9u
QXR0cmlidXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OnJlbW92ZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmFw
cGx5UGVuZGluZ0NoYW5nZXMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0
Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6YWRkVGV4
dE1hcmtlckZvcik6CisgICAgICAgIChXZWJDb3JlOjp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0
aW9uYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnBvc3RVc2VySW5mb0ZvckNoYW5nZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3Jt
Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbkZvclRleHRDb250cm9sKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToK
KyAgICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgdGV4dE1hcmtlclJhbmdl
RnJvbVZpc2libGVQb3NpdGlvbnM6ZW5kUG9zaXRpb246XSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIGFzc29jaWF0ZWRQbHVnaW5QYXJlbnRdKToKKyAgICAgICAg
KC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOl0pOgorICAgICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6Zm9yUGFyYW1ldGVyOl0pOgorCiAyMDIwLTAyLTI4ICBBbGJl
cnRvIEdhcmNpYSAgPGJlcnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gVW5y
ZXZpZXdlZC4gRml4IGJ1aWxkIHdhcm5pbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCAzZjE4NTQ0YTc0YmM5ZDljZjM2NjU4MzMzOWM1
ZTdlMzI3OTk3Mjg3Li5kMzc0MDAzN2RjYWU4OWRlNzg4NWYyZmM3MjFkMjc5YjNmNWNkNjc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTEzNjQsNiArMTM2NCwxMCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBjbwogICAgICAgICB9CiAg
ICAgfQogCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICB1cGRh
dGVJc29sYXRlZFRyZWUob2JqZWN0LCBBWFNlbGVjdGVkVGV4dENoYW5nZWQpOworI2VuZGlmCisK
ICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG9iamVjdCwgaW50ZW50LCBzZWxl
Y3Rpb24pOwogI2Vsc2UKICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKG5vZGUs
IGludGVudCwgc2VsZWN0aW9uKTsKQEAgLTMxMzksNiArMzE0Myw3IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFYQ29yZU9iamVjdCogb2JqZWN0LCBBWE5vdGlmaWNh
dGlvbiBub3RpCiAgICAgc3dpdGNoIChub3RpZmljYXRpb24pIHsKICAgICBjYXNlIEFYQ2hlY2tl
ZFN0YXRlQ2hhbmdlZDoKICAgICBjYXNlIEFYQ2hpbGRyZW5DaGFuZ2VkOgorICAgIGNhc2UgQVhT
ZWxlY3RlZFRleHRDaGFuZ2VkOgogICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6IHsKICAgICAgICAg
dHJlZS0+cmVtb3ZlU3VidHJlZShvYmplY3QtPm9iamVjdElEKCkpOwogICAgICAgICBhdXRvKiBw
YXJlbnQgPSBvYmplY3QtPnBhcmVudE9iamVjdCgpOwpAQCAtMzIzOSwxMiArMzI0NCwxMiBAQCBi
b29sIGlzTm9kZUFyaWFWaXNpYmxlKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuICFyZXF1aXJlc0Fy
aWFIaWRkZW5GYWxzZSB8fCBhcmlhSGlkZGVuRmFsc2VQcmVzZW50OwogfQogCi1BY2Nlc3NpYmls
aXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290V2ViQXJlYSgpCitBWENvcmVPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6OnJvb3RXZWJBcmVhKCkKIHsKICAgICBBWENvcmVPYmplY3QqIHJvb3RPYmpl
Y3QgPSB0aGlzLT5yb290T2JqZWN0KCk7CiAgICAgaWYgKCFyb290T2JqZWN0IHx8ICFyb290T2Jq
ZWN0LT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldz4oKnJvb3RPYmpl
Y3QpLndlYkFyZWFPYmplY3QoKTsKKyAgICByZXR1cm4gcm9vdE9iamVjdC0+d2ViQXJlYU9iamVj
dCgpOwogfQogCiBBWEF0dHJpYnV0ZUNhY2hlRW5hYmxlcjo6QVhBdHRyaWJ1dGVDYWNoZUVuYWJs
ZXIoQVhPYmplY3RDYWNoZSogY2FjaGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oCmluZGV4IGJlZTliYTFjYTY2ZmM1ZTcyM2NjNDZmNjg2MmMzNDQ0ZjUy
YjRiZjMuLjI5ODdlYWUwZDU1NDE4ZTkzZWY1Njc3ODI0MDViNmIwYWViYWY0NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0zNjgsMTAgKzM2
OCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwbGF0Zm9ybVBlcmZvcm1EZWZlcnJlZENhY2hl
VXBkYXRlKCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIHBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgY29uc3QgQVhU
ZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CisgICAgdm9p
ZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQVhDb3JlT2JqZWN0Kiwg
Y29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7
CiAgICAgdm9pZCBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKLSAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbkZvclRleHRDb250cm9sKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBjb25zdCBTdHJpbmcm
IGRlbGV0ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQmKTsKLSAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmlu
ZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24m
KTsKKyAgICB2b2lkIHBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbkZvclRl
eHRDb250cm9sKEFYQ29yZU9iamVjdCosIGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIGNvbnN0
IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYpOworICAg
IHZvaWQgcG9zdFRleHRSZXBsYWNlbWVudFBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVj
dCosIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBBWFRleHRFZGl0VHlwZSwgY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CiAjZWxzZQogICAgIHN0YXRpYyBBWFRl
eHRDaGFuZ2UgdGV4dENoYW5nZUZvckVkaXRUeXBlKEFYVGV4dEVkaXRUeXBlKTsKICAgICB2b2lk
IG5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpOwpAQCAtNDEyLDcgKzQxMiw3
IEBAIHByb3RlY3RlZDoKICAgICBib29sIHNob3VsZFNraXBCb3VuZGFyeShjb25zdCBDaGFyYWN0
ZXJPZmZzZXQmLCBjb25zdCBDaGFyYWN0ZXJPZmZzZXQmKTsKIAogcHJpdmF0ZToKLSAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiByb290V2ViQXJlYSgpOworICAgIEFYQ29yZU9iamVjdCogcm9vdFdl
YkFyZWEoKTsKIAogICAgIHN0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkSW1hZ2VN
YXBVSUVsZW1lbnQoSFRNTEFyZWFFbGVtZW50Kik7CiAgICAgc3RhdGljIEFYQ29yZU9iamVjdCog
Zm9jdXNlZE9iamVjdChEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCBhMTMzMDliNzYxNWQ3MDJhYWNmYTBl
YmM3MzBiMjAxNDcwNzFmZDg0Li5kYzM1YWE5YzFkOGUzN2Y1MmZhYTAxMWFlM2I0ZGZiMTg1ZWM2
YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaApAQCAtNzU2LDYgKzc1Niw3IEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBoaWdoZXN0RWRpdGFibGVBbmNlc3RvcigpIG92ZXJyaWRlOwogCiAgICAgY29uc3Qg
QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcqIGFuY2VzdG9yQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXco
Ym9vbCBpbmNsdWRlU2VsZikgY29uc3Qgb3ZlcnJpZGU7CisgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogd2ViQXJlYU9iamVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KIAog
ICAgIHZvaWQgY2xlYXJJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSgpIG92ZXJyaWRlIHsgbV9pc0ln
bm9yZWRGcm9tUGFyZW50RGF0YSA9IEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFyZW50RGF0
YSgpOyB9CiAgICAgdm9pZCBzZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YUZvckNoaWxkKEFYQ29y
ZU9iamVjdCopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA3NTllM2YxMDI0
YzFlMjkzNmE5NzgwNjI1M2Q2YmJmMDQwZDIzYjg5Li5jYWZkZDY2NjFkN2RiNmIzNTM2OGIwYWZm
NzRjNGNlNjdhOWUzMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMTE2MCw2ICsxMTYw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiBoaWdoZXN0RWRpdGFibGVB
bmNlc3RvcigpID0gMDsKIAogICAgIHZpcnR1YWwgY29uc3QgQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXcqIGFuY2VzdG9yQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoYm9vbCBpbmNsdWRlU2VsZikgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgQVhDb3JlT2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Qg
PSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhKEFjY2Vz
c2liaWxpdHlJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJJc0lnbm9yZWRGcm9tUGFyZW50RGF0YSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IDE1OTdlOTE2YmM3NmJiOGZlYTViMjRkODU5Y2NkMGViNGFjZjEyOTMuLjkwZGExYTdjMTlk
MGRkYmIxZTk2MWY2YTg1Y2E0MWJhMmRiMTRjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAt
MTQ5Miw3ICsxNDkyLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRl
QWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6aXNMb2FkZWQoKSBjb25zdAogewotICAgIHJldHVybiAhbV9yZW5kZXJlci0+ZG9j
dW1lbnQoKS5wYXJzZXIoKTsKKyAgICByZXR1cm4gbV9yZW5kZXJlciA/ICFtX3JlbmRlcmVyLT5k
b2N1bWVudCgpLnBhcnNlcigpIDogZmFsc2U7CiB9CiAKIGRvdWJsZSBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0Ojplc3RpbWF0ZWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdApAQCAtMTU3Miw5ICsx
NTcyLDEzIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQo
KSBjb25zdAogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWNjZXNzS2V5KCkg
Y29uc3QKIHsKKyAgICBpZiAoIW1fcmVuZGVyZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KwogICAgIE5vZGUqIG5vZGUgPSBtX3JlbmRlcmVyLT5ub2RlKCk7CiAgICAgaWYgKCFpczxFbGVt
ZW50Pihub2RlKSkKLSAgICAgICAgcmV0dXJuIG51bGxBdG9tKCk7CisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKwogICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuYXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihhY2Nlc3NrZXlBdHRyKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oCmlu
ZGV4IDM5YjNmYWFiNTExYWMxYTNiZWU2MzZlMmEyNWE0OWMxMjlhNTAzNzQuLjZmMTk5OWM4MTcw
YjY3OTg0NzJkZDE5NWRkYTI3ZWI0YmU2Y2YyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsK
IAotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdDsKKyAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoU2Nyb2xsVmlldyop
OwpAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIExheW91dFJlY3QgZWxlbWVudFJlY3Qo
KSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3Qo
KSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3RJ
ZkV4aXN0cygpIGNvbnN0IG92ZXJyaWRlOwotICAgIAorCiAgICAgQWNjZXNzaWJpbGl0eU9iamVj
dCogZmlyc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdlYkFyZWFPYmplY3QoKTsg
fQogICAgIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqIGFkZENoaWxkU2Nyb2xsYmFyKFNjcm9sbGJh
ciopOwogICAgIHZvaWQgcmVtb3ZlQ2hpbGRTY3JvbGxiYXIoQWNjZXNzaWJpbGl0eU9iamVjdCop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RD
YWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FYT2JqZWN0Q2Fj
aGVJT1MubW0KaW5kZXggY2MzM2EyYmNlMmVkNDQ3NDY2MjM1YjI5OTE0YzQ4Zjc5OWMyMjg4Zi4u
OTAyNjkzZGJjNDg1NTUzZGY3NTM5YWZiZTFhMGU2Yzc1OGM2NmRhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BWE9iamVjdENhY2hlSU9TLm1tCkBAIC05
Miw3ICs5Miw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KEFYQ29yZU9iamVjdCogb2JqLCBBWE5vdGlmaWNhdGlvbiBuCiAgICAgICAgIFtvYmotPndyYXBw
ZXIoKSBhY2Nlc3NpYmlsaXR5UG9zdGVkTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvblN0cmluZ107
CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikKK3ZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCog
b2JqZWN0LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYsIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mKQogewogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYU2VsZWN0
ZWRUZXh0Q2hhbmdlZCk7CiB9CkBAIC0xMDIsMTIgKzEwMiwxMiBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KgogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFYVmFsdWVDaGFu
Z2VkKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50UGxhdGZv
cm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBWFRleHRFZGl0VHlw
ZSwgY29uc3QgU3RyaW5nJiwgQVhUZXh0RWRpdFR5cGUsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZp
c2libGVQb3NpdGlvbiYpCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQ
bGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUs
IGNvbnN0IFN0cmluZyYsIEFYVGV4dEVkaXRUeXBlLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWaXNp
YmxlUG9zaXRpb24mKQogewogICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmplY3QsIEFY
VmFsdWVDaGFuZ2VkKTsKIH0KIAotdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50UGxhdGZvcm1Ob3RpZmljYXRpb25Gb3JUZXh0Q29udHJvbChBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBvYmplY3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50JikKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBsYXRm
b3JtTm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2woQVhDb3JlT2JqZWN0KiBvYmplY3QsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JikKIHsK
ICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFZhbHVlQ2hhbmdlZCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDhmYzc0NGRiMGUzNGMzZWQyNzI2YTg3
NzU1OTM3MDhjNzIzY2YzOGIuLmMzYmZhMjYyODhmYzBmMmZlNDJhMDk3NzE0OWNjODhhMzgxZDUy
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC01OSw2ICs1OSw4IEBAIHZvaWQg
QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBv
YmplY3QsIGJvb2wgaXNSb290CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkJvdW5k
aW5nQm94UmVjdCwgb2JqZWN0LmJvdW5kaW5nQm94UmVjdCgpKTsKICAgICBzZXRQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6RGVzY3JpcHRpb24sIG9iamVjdC5kZXNjcmlwdGlvbkF0dHJpYnV0ZVZh
bHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpF
bGVtZW50UmVjdCwgb2JqZWN0LmVsZW1lbnRSZWN0KCkpOworICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpIYXNBUklBVmFsdWVOb3csIG9iamVjdC5oYXNBUklBVmFsdWVOb3coKSk7Cisg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJp
YnV0ZSwgb2JqZWN0Lmhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSgpKTsKICAgICBzZXRQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGVscFRleHQsIG9iamVjdC5oZWxwVGV4dEF0dHJpYnV0
ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpJc0FjY2Vzc2liaWxpdHlJZ25vcmVkLCBvYmplY3QuYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgp
KTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBY3RpdmVEZXNjZW5kYW50T2ZG
b2N1c2VkQ29udGFpbmVyLCBvYmplY3QuaXNBY3RpdmVEZXNjZW5kYW50T2ZGb2N1c2VkQ29udGFp
bmVyKCkpOwpAQCAtMjA2LDcgKzIwOCw2IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlh
bGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkhpZXJhcmNoaWNhbExldmVsLCBvYmplY3QuaGll
cmFyY2hpY2FsTGV2ZWwoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okxhbmd1
YWdlLCBvYmplY3QubGFuZ3VhZ2UoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OkNhbkhhdmVTZWxlY3RlZENoaWxkcmVuLCBvYmplY3QuY2FuSGF2ZVNlbGVjdGVkQ2hpbGRyZW4o
KSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Okhhc0FSSUFWYWx1ZU5vdywgb2Jq
ZWN0Lmhhc0FSSUFWYWx1ZU5vdygpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
VGFnTmFtZSwgb2JqZWN0LnRhZ05hbWUoKS5pc29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OlN1cHBvcnRzTGl2ZVJlZ2lvbiwgb2JqZWN0LnN1cHBvcnRzTGl2
ZVJlZ2lvbigpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNJbnNpZGVMaXZl
UmVnaW9uLCBvYmplY3QuaXNJbnNpZGVMaXZlUmVnaW9uKCkpOwpAQCAtMzc4LDYgKzM3OSw3IEBA
IHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2Jq
ZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAgfQogICAgIAogICAgIGlmIChpc1Jvb3QpIHsK
KyAgICAgICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OldlYkFyZWEsIG9iamVj
dC53ZWJBcmVhT2JqZWN0KCkpOwogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCwgb2JqZWN0LnByZXZlbnRLZXlib2FyZERP
TUV2ZW50RGlzcGF0Y2goKSk7CiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpT
ZXNzaW9uSUQsIG9iamVjdC5zZXNzaW9uSUQoKSk7CiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpEb2N1bWVudFVSSSwgb2JqZWN0LmRvY3VtZW50VVJJKCkpOwpAQCAtODY0LDYg
Kzg2NiwxNSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnVwZGF0ZUJhY2tpbmdTdG9yZSgpCiAg
ICAgfQogfQogCitTdHJpbmcgQVhJc29sYXRlZE9iamVjdDo6c3RyaW5nRm9yUmFuZ2UoUmVmUHRy
PFJhbmdlPiByYW5nZSkgY29uc3QKK3sKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmll
dmVWYWx1ZUZyb21NYWluVGhyZWFkPFN0cmluZz4oWyZyYW5nZSwgdGhpc10gKCkgLT4gU3RyaW5n
IHsKKyAgICAgICAgaWYgKGF1dG8qIG9iamVjdCA9IGFzc29jaWF0ZWRBWE9iamVjdCgpKQorICAg
ICAgICAgICAgcmV0dXJuIG9iamVjdC0+c3RyaW5nRm9yUmFuZ2UocmFuZ2UpOworICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgfSk7Cit9CisKIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBBWElz
b2xhdGVkT2JqZWN0OjpmaW5kVGV4dFJhbmdlcyhBY2Nlc3NpYmlsaXR5U2VhcmNoVGV4dENyaXRl
cmlhIGNvbnN0JiBjcml0ZXJpYSkgY29uc3QKIHsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6
cmV0cmlldmVWYWx1ZUZyb21NYWluVGhyZWFkPFZlY3RvcjxSZWZQdHI8UmFuZ2U+Pj4oWyZjcml0
ZXJpYSwgdGhpc10gKCkgLT4gVmVjdG9yPFJlZlB0cjxSYW5nZT4+IHsKQEAgLTE4NzAsMTIgKzE4
ODEsNiBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFYSXNvbGF0ZWRPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZQogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
T2JqZWN0SW5jbHVzaW9uOjpEZWZhdWx0QmVoYXZpb3I7CiB9CiAKLWJvb2wgQVhJc29sYXRlZE9i
amVjdDo6aGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkgY29uc3QKLXsKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGNvbnN0IEFjY2Vzc2li
aWxpdHlTY3JvbGxWaWV3KiBBWElzb2xhdGVkT2JqZWN0OjphbmNlc3RvckFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3KGJvb2wpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkT2JqZWN0LmgKaW5kZXggMTM3MTg5NTgzNmY3YzM2YWVmNTQ5MTE5NjdmYzVmZDM4
ZmRkNTQwMS4uMzQ3NmM3OTg1NjcxYjc0Zjg2Y2Y5NTU0OWYzZTIwNmIxNjE3OGRmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IEZpbGVVcGxvYWRCdXR0b25SZXR1cm5zVmFsdWVJblRpdGxlLAogICAgICAgICBGb2N1c2FibGVB
bmNlc3RvciwKICAgICAgICAgSGFzQVJJQVZhbHVlTm93LAorICAgICAgICBIYXNBcHBsZVBERkFu
bm90YXRpb25BdHRyaWJ1dGUsCiAgICAgICAgIEhhc0NoaWxkcmVuLAogICAgICAgICBIYXNQb3B1
cCwKICAgICAgICAgSGVhZGVyQ29udGFpbmVyLApAQCAtMzI4LDYgKzMyOSw3IEBAIHByaXZhdGU6
CiAgICAgICAgIFZlcnRpY2FsU2Nyb2xsQmFyLAogICAgICAgICBWaXNpYmxlQ2hpbGRyZW4sCiAg
ICAgICAgIFZpc2libGVSb3dzLAorICAgICAgICBXZWJBcmVhLAogICAgIH07CiAgICAgCiAgICAg
dHlwZWRlZiBzdGQ6OnBhaXI8QVhJRCwgQVhJRD4gQWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJlZU1h
dGhNdWx0aXNjcmlwdFBhaXI7CkBAIC02NDMsNyArNjQ1LDcgQEAgcHJpdmF0ZToKICAgICBWaXNp
YmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZUZvclJhbmdlKGNvbnN0IFBsYWlu
VGV4dFJhbmdlJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmlzaWJsZVBvc2l0aW9uUmFuZ2Uo
KTsgfQogICAgIFZpc2libGVQb3NpdGlvblJhbmdlIGxpbmVSYW5nZUZvclBvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZpc2libGVQb3NpdGlv
blJhbmdlKCk7IH0KICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlRm9yUGxhaW5UZXh0UmFuZ2UoY29u
c3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9Ci0g
ICAgU3RyaW5nIHN0cmluZ0ZvclJhbmdlKFJlZlB0cjxSYW5nZT4pIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFN0cmluZygpOyB9CisgICAgU3RyaW5nIHN0cmluZ0ZvclJhbmdlKFJlZlB0cjxSYW5n
ZT4pIGNvbnN0IG92ZXJyaWRlOwogICAgIEludFJlY3QgYm91bmRzRm9yVmlzaWJsZVBvc2l0aW9u
UmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2UmKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBJbnRSZWN0KCk7IH0KICAgICBJbnRSZWN0IGJvdW5kc0ZvclJhbmdlKGNvbnN0IFJlZlB0cjxS
YW5nZT4pIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFJlY3QoKTsgfQogICAgIGludCBsZW5n
dGhGb3JWaXNpYmxlUG9zaXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KQEAgLTg3NSw4ICs4NzcsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgb3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KEFYQ29yZU9iamVjdCogcGFyZW50KSBv
dmVycmlkZTsKICAgICBib29sIGFjY2Vzc2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBhY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaGFzQXBw
bGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNB
cHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6Okhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJp
YnV0ZSk7IH0KICAgICBjb25zdCBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldyogYW5jZXN0b3JBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldyhib29sIGluY2x1ZGVTZWxmKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBBWENvcmVPYmplY3QqIHdlYkFyZWFPYmplY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBv
YmplY3RBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6V2ViQXJlYSk7IH0KICAgICB2b2lk
IHNldElzSWdub3JlZEZyb21QYXJlbnREYXRhKEFjY2Vzc2liaWxpdHlJc0lnbm9yZWRGcm9tUGFy
ZW50RGF0YSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2xlYXJJc0lnbm9yZWRGcm9tUGFyZW50RGF0
YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0SXNJZ25vcmVkRnJvbVBhcmVudERhdGFGb3JDaGls
ZChBWENvcmVPYmplY3QqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCBl
ODBjZjQzYzI5MTAxZmEyY2IxMjczMDAzMzg4MGFmZTdiMGM1ZTM3Li4wMTQ0ZThkMjY1ODQwOWEx
ZmZhNTIxZjU1MTJlZjJkMGI1ZTllZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC0x
NzQsNyArMTc0LDYgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRChBWElE
IGF4SUQpCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKEFYSUQgYXhJRCkKIHsKICAg
ICBMb2NrSG9sZGVyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9jayB9OwotICAgIEFTU0VSVChtX3Jl
YWRlclRocmVhZE5vZGVNYXAuY29udGFpbnMoYXhJRCkpOwogICAgIG1fcGVuZGluZ1JlbW92YWxz
LmFwcGVuZChheElEKTsKIH0KIApAQCAtMjE1LDE3ICsyMTQsMjQgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygpCiAgICAgbV9wZW5kaW5nUmVtb3ZhbHMuY2xlYXIo
KTsKIAogICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6IG1fcGVuZGluZ0FwcGVuZHMpIHsKLSAg
ICAgICAgQVNTRVJUKCFtX3JlYWRlclRocmVhZE5vZGVNYXAuY29udGFpbnMoaXRlbS5tX2lzb2xh
dGVkT2JqZWN0LT5vYmplY3RJRCgpKQotICAgICAgICAgICAgfHwgaXRlbS5tX2lzb2xhdGVkT2Jq
ZWN0LT5vYmplY3RJRCgpID09IG1fcm9vdE5vZGVJRCk7CisgICAgICAgIEFYSUQgYXhJRCA9IGl0
ZW0ubV9pc29sYXRlZE9iamVjdC0+b2JqZWN0SUQoKTsKKworICAgICAgICBpZiAobV9yZWFkZXJU
aHJlYWROb2RlTWFwLmdldChheElEKSAhPSAmaXRlbS5tX2lzb2xhdGVkT2JqZWN0LmdldCgpKSB7
CisgICAgICAgICAgICAvLyBUaGUgbmV3IElzb2xhdGVkT2JqZWN0IGlzIGEgcmVwbGFjZW1lbnQg
Zm9yIGFuIGV4aXN0aW5nIG9iamVjdAorICAgICAgICAgICAgLy8gYXMgdGhlIHJlc3VsdCBvZiBh
biB1cGRhdGUuIFRodXMgZGV0YWNoIHRoZSBleGlzdGluZyBvbmUgYmVmb3JlCisgICAgICAgICAg
ICAvLyBhZGRpbmcgdGhlIG5ldyBvbmUuCisgICAgICAgICAgICBpZiAoYXV0byBvYmplY3QgPSBu
b2RlRm9ySUQoYXhJRCkpCisgICAgICAgICAgICAgICAgb2JqZWN0LT5kZXRhY2goQWNjZXNzaWJp
bGl0eURldGFjaG1lbnRUeXBlOjpFbGVtZW50RGVzdHJveWVkKTsKKyAgICAgICAgICAgIG1fcmVh
ZGVyVGhyZWFkTm9kZU1hcC5yZW1vdmUoYXhJRCk7CisgICAgICAgIH0KIAotICAgICAgICBpZiAo
aXRlbS5tX3dyYXBwZXIpCi0gICAgICAgICAgICBpdGVtLm1faXNvbGF0ZWRPYmplY3QtPmF0dGFj
aFBsYXRmb3JtV3JhcHBlcihpdGVtLm1fd3JhcHBlcik7CisgICAgICAgIGlmIChtX3JlYWRlclRo
cmVhZE5vZGVNYXAuYWRkKGF4SUQsIGl0ZW0ubV9pc29sYXRlZE9iamVjdC5nZXQoKSkgJiYgaXRl
bS5tX3dyYXBwZXIpCisgICAgICAgICAgICBtX3JlYWRlclRocmVhZE5vZGVNYXAuZ2V0KGF4SUQp
LT5hdHRhY2hQbGF0Zm9ybVdyYXBwZXIoaXRlbS5tX3dyYXBwZXIpOwogCi0gICAgICAgIG1fcmVh
ZGVyVGhyZWFkTm9kZU1hcC5hZGQoaXRlbS5tX2lzb2xhdGVkT2JqZWN0LT5vYmplY3RJRCgpLCBp
dGVtLm1faXNvbGF0ZWRPYmplY3QuZ2V0KCkpOwogICAgICAgICAvLyBUaGUgcmVmZXJlbmNlIGNv
dW50IG9mIHRoZSBqdXN0IGFkZGVkIElzb2xhdGVkT2JqZWN0IG11c3QgYmUgMgogICAgICAgICAv
LyBiZWNhdXNlIGl0IGlzIHJlZmVyZW5jZWQgYnkgbV9yZWFkZXJUaHJlYWROb2RlTWFwIGFuZCBt
X3BlbmRpbmdBcHBlbmRzLgogICAgICAgICAvLyBXaGVuIG1fcGVuZGluZ0FwcGVuZHMgaXMgY2xl
YXJlZCwgdGhlIG9iamVjdCB3aWxsIGJlIGhlbGQgb25seSBieSBtX3JlYWRlclRocmVhZE5vZGVN
YXAuCi0gICAgICAgIEFTU0VSVChtX3JlYWRlclRocmVhZE5vZGVNYXAuZ2V0KGl0ZW0ubV9pc29s
YXRlZE9iamVjdC0+b2JqZWN0SUQoKSktPnJlZkNvdW50KCkgPT0gMik7CisgICAgICAgIEFTU0VS
VChtX3JlYWRlclRocmVhZE5vZGVNYXAuZ2V0KGF4SUQpLT5yZWZDb3VudCgpID09IDIpOwogICAg
IH0KICAgICBtX3BlbmRpbmdBcHBlbmRzLmNsZWFyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQppbmRleCBjYmI4Y2Q5
ZDU4OWM5MTBmZWJjOGY3NGE4NzhjZTY1YzM2NjlhNTIwLi42MjI5MzA2Yzk1OTU4NGU2NzQwYWE4
YzA5YTgxMzk3Y2ZhZTM2YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iaiwg
QVhOb3RpZmljYXRpb24gbgogICAgIEFYUG9zdE5vdGlmaWNhdGlvbldpdGhVc2VySW5mbyhvYmot
PndyYXBwZXIoKSwgbWFjTm90aWZpY2F0aW9uLCBuaWwsIHNraXBTeXN0ZW1Ob3RpZmljYXRpb24p
OwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEFYVGV4dFN0YXRl
Q2hhbmdlSW50ZW50JiBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikK
K3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0
aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYg
aW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7CiAgICAgaWYgKCFv
YmplY3QpCiAgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CkBAIC00MTksNyArNDE5LDcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCoKICAgICBbdXNlckluZm8gcmVsZWFzZV07CiB9CiAK
LXN0YXRpYyB2b2lkIGFkZFRleHRNYXJrZXJGb3IoTlNNdXRhYmxlRGljdGlvbmFyeSogY2hhbmdl
LCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCitzdGF0aWMgdm9pZCBhZGRUZXh0TWFya2VyRm9yKE5TTXV0YWJsZURpY3Rpb25hcnkq
IGNoYW5nZSwgQVhDb3JlT2JqZWN0JiBvYmplY3QsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9z
aXRpb24pCiB7CiAgICAgaWYgKHBvc2l0aW9uLmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CkBA
IC00MjcsMTQgKzQyNywxNCBAQCBzdGF0aWMgdm9pZCBhZGRUZXh0TWFya2VyRm9yKE5TTXV0YWJs
ZURpY3Rpb25hcnkqIGNoYW5nZSwgQWNjZXNzaWJpbGl0eU9iamVjdCYgbwogICAgICAgICBbY2hh
bmdlIHNldE9iamVjdDp0ZXh0TWFya2VyIGZvcktleTpOU0FjY2Vzc2liaWxpdHlUZXh0Q2hhbmdl
VmFsdWVTdGFydE1hcmtlcl07CiB9CiAKLXN0YXRpYyB2b2lkIGFkZFRleHRNYXJrZXJGb3IoTlNN
dXRhYmxlRGljdGlvbmFyeSogY2hhbmdlLCBBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QsIEhU
TUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCkKK3N0YXRpYyB2b2lkIGFkZFRl
eHRNYXJrZXJGb3IoTlNNdXRhYmxlRGljdGlvbmFyeSogY2hhbmdlLCBBWENvcmVPYmplY3QmIG9i
amVjdCwgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sKQogewogICAgIGlm
IChpZCB0ZXh0TWFya2VyID0gW29iamVjdC53cmFwcGVyKCkgdGV4dE1hcmtlckZvckZpcnN0UG9z
aXRpb25JblRleHRDb250cm9sOnRleHRDb250cm9sXSkKICAgICAgICAgW2NoYW5nZSBzZXRPYmpl
Y3Q6dGV4dE1hcmtlciBmb3JLZXk6TlNBY2Nlc3NpYmlsaXR5VGV4dENoYW5nZVZhbHVlU3RhcnRN
YXJrZXJdOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dE1hcmtlclRhcmdldFR5cGU+Ci1z
dGF0aWMgTlNEaWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFjY2Vz
c2liaWxpdHlPYmplY3QmIG9iamVjdCwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiBzdHJpbmcsIFRleHRNYXJrZXJUYXJnZXRUeXBlJiBtYXJrZXJUYXJnZXQpCitzdGF0aWMgTlNE
aWN0aW9uYXJ5ICp0ZXh0UmVwbGFjZW1lbnRDaGFuZ2VEaWN0aW9uYXJ5KEFYQ29yZU9iamVjdCYg
b2JqZWN0LCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZywgVGV4dE1h
cmtlclRhcmdldFR5cGUmIG1hcmtlclRhcmdldCkKIHsKICAgICBOU1N0cmluZyAqdGV4dCA9IChO
U1N0cmluZyAqKXN0cmluZzsKICAgICBOU1VJbnRlZ2VyIGxlbmd0aCA9IFt0ZXh0IGxlbmd0aF07
CkBAIC00NTksNyArNDU5LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCoKICAgICBwb3N0VGV4
dFJlcGxhY2VtZW50UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqZWN0LCBBWFRleHRFZGl0VHlwZVVu
a25vd24sIGVtcHR5U3RyaW5nKCksIHR5cGUsIHRleHQsIHBvc2l0aW9uKTsKIH0KIAotc3RhdGlj
IHZvaWQgcG9zdFVzZXJJbmZvRm9yQ2hhbmdlcyhBY2Nlc3NpYmlsaXR5T2JqZWN0JiByb290V2Vi
QXJlYSwgQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0LCBOU011dGFibGVBcnJheSogY2hhbmdl
cykKK3N0YXRpYyB2b2lkIHBvc3RVc2VySW5mb0ZvckNoYW5nZXMoQVhDb3JlT2JqZWN0JiByb290
V2ViQXJlYSwgQVhDb3JlT2JqZWN0JiBvYmplY3QsIE5TTXV0YWJsZUFycmF5KiBjaGFuZ2VzKQog
ewogICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnVzZXJJbmZvID0gW1tOU011dGFibGVEaWN0aW9u
YXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjRdOwogICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6
QChwbGF0Zm9ybUNoYW5nZVR5cGVGb3JXZWJDb3JlQ2hhbmdlVHlwZShBWFRleHRTdGF0ZUNoYW5n
ZVR5cGVFZGl0KSkgZm9yS2V5Ok5TQWNjZXNzaWJpbGl0eVRleHRTdGF0ZUNoYW5nZVR5cGVLZXld
OwpAQCAtNDc2LDcgKzQ3Niw3IEBAIHN0YXRpYyB2b2lkIHBvc3RVc2VySW5mb0ZvckNoYW5nZXMo
QWNjZXNzaWJpbGl0eU9iamVjdCYgcm9vdFdlYkFyZWEsIEFjY2Vzc2liaWxpCiAgICAgW3VzZXJJ
bmZvIHJlbGVhc2VdOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1l
bnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIEFYVGV4
dEVkaXRUeXBlIGRlbGV0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4dCwgQVhUZXh0
RWRpdFR5cGUgaW5zZXJ0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwgQVhU
ZXh0RWRpdFR5cGUgZGVsZXRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGRlbGV0ZWRUZXh0LCBBWFRl
eHRFZGl0VHlwZSBpbnNlcnRpb25UeXBlLCBjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBpZiAoIW9iamVjdCkKICAgICAg
ICAgb2JqZWN0ID0gcm9vdFdlYkFyZWEoKTsKQEAgLTQ5Myw3ICs0OTMsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KgogICAgIFtjaGFuZ2VzIHJlbGVhc2VdOwogfQogCi12b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRQbGF0Zm9ybU5vdGlmaWNhdGlvbkZvclRleHRDb250
cm9sKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgU3RyaW5nJiBkZWxldGVkVGV4
dCwgY29uc3QgU3RyaW5nJiBpbnNlcnRlZFRleHQsIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
JiB0ZXh0Q29udHJvbCkKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBsYWNlbWVudFBs
YXRmb3JtTm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2woQVhDb3JlT2JqZWN0KiBvYmplY3QsIGNv
bnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBIVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wpCiB7CiAgICAgaWYgKCFvYmplY3Qp
CiAgICAgICAgIG9iamVjdCA9IHJvb3RXZWJBcmVhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCmluZGV4IDJmYmFjZjQ3ZmFiN2ZhNzliNDc3YWQxZjQ1OGQwNmQ5N2Yw
NDYzMjEuLjQ4MzI1Yzg2NjM0NzZmODA5OTlmZDA1YzVjZGRiYzk0ZmM3NGJhYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xMzM0LDcgKzEzMzQsMTEgQEAg
c3RhdGljIGlkIHRleHRNYXJrZXJSYW5nZUZyb21WaXNpYmxlUG9zaXRpb25zKEFYT2JqZWN0Q2Fj
aGUqIGNhY2hlLCBjb25zdCBWaXNpYmwKIAogLSAoaWQpdGV4dE1hcmtlclJhbmdlRnJvbVZpc2li
bGVQb3NpdGlvbnM6KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpc3RhcnRQb3NpdGlvbiBlbmRQb3Np
dGlvbjooY29uc3QgVmlzaWJsZVBvc2l0aW9uJillbmRQb3NpdGlvbgogewotICAgIHJldHVybiB0
ZXh0TWFya2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhzZWxmLmF4QmFja2luZ09iamVjdC0+
YXhPYmplY3RDYWNoZSgpLCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7CisgICAgYXV0byog
YmFja2luZ09iamVjdCA9IHNlbGYudXBkYXRlT2JqZWN0QmFja2luZ1N0b3JlOworICAgIGlmICgh
YmFja2luZ09iamVjdCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiB0ZXh0TWFy
a2VyUmFuZ2VGcm9tVmlzaWJsZVBvc2l0aW9ucyhiYWNraW5nT2JqZWN0LT5heE9iamVjdENhY2hl
KCksIHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsKIH0KIAogQUxMT1dfREVQUkVDQVRFRF9J
TVBMRU1FTlRBVElPTlNfQkVHSU4KQEAgLTE5NTUsMTcgKzE5NTksMTggQEAgc3RhdGljIE5TTXV0
YWJsZUFycmF5ICpjb252ZXJ0U3RyaW5nc1RvTlNBcnJheShjb25zdCBWZWN0b3I8U3RyaW5nPiYg
dmVjdG9yKQogLSAoaWQpYXNzb2NpYXRlZFBsdWdpblBhcmVudAogewogICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5OjpyZXRyaWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYWQ8aWQ+KFtw
cm90ZWN0ZWRTZWxmID0gUmV0YWluUHRyPFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPihz
ZWxmKV0gKCkgLT4gUmV0YWluUHRyPGlkPiB7Ci0gICAgICAgIGlmICghcHJvdGVjdGVkU2VsZi5n
ZXQoKS5heEJhY2tpbmdPYmplY3QgfHwgIXByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2Jq
ZWN0LT5oYXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSkKKyAgICAgICAgYXV0byogYmFj
a2luZ09iamVjdCA9IHByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2JqZWN0OworICAgICAg
ICBpZiAoIWJhY2tpbmdPYmplY3QgfHwgIWJhY2tpbmdPYmplY3QtPmhhc0FwcGxlUERGQW5ub3Rh
dGlvbkF0dHJpYnV0ZSgpKQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAKLSAgICAgICAg
aWYgKCFwcm90ZWN0ZWRTZWxmLmdldCgpLmF4QmFja2luZ09iamVjdC0+ZG9jdW1lbnQoKS0+aXNQ
bHVnaW5Eb2N1bWVudCgpKQorCisgICAgICAgIGlmICghYmFja2luZ09iamVjdC0+ZG9jdW1lbnQo
KS0+aXNQbHVnaW5Eb2N1bWVudCgpKQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAg
Ci0gICAgICAgIFdpZGdldCogcGx1Z2luV2lkZ2V0ID0gc3RhdGljX2Nhc3Q8UGx1Z2luRG9jdW1l
bnQqPihwcm90ZWN0ZWRTZWxmLmdldCgpLmF4QmFja2luZ09iamVjdC0+ZG9jdW1lbnQoKSktPnBs
dWdpbldpZGdldCgpOworCisgICAgICAgIFdpZGdldCogcGx1Z2luV2lkZ2V0ID0gc3RhdGljX2Nh
c3Q8UGx1Z2luRG9jdW1lbnQqPihiYWNraW5nT2JqZWN0LT5kb2N1bWVudCgpKS0+cGx1Z2luV2lk
Z2V0KCk7CiAgICAgICAgIGlmICghcGx1Z2luV2lkZ2V0IHx8ICFwbHVnaW5XaWRnZXQtPmlzUGx1
Z2luVmlld0Jhc2UoKSkKICAgICAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgICAgIAotICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UGx1Z2luVmlld0Jhc2UqPihwbHVnaW5XaWRnZXQpLT5hY2Nl
c3NpYmlsaXR5QXNzb2NpYXRlZFBsdWdpblBhcmVudEZvckVsZW1lbnQocHJvdGVjdGVkU2VsZi5n
ZXQoKS5heEJhY2tpbmdPYmplY3QtPmVsZW1lbnQoKSk7CisKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFBsdWdpblZpZXdCYXNlKj4ocGx1Z2luV2lkZ2V0KS0+YWNjZXNzaWJpbGl0eUFzc29j
aWF0ZWRQbHVnaW5QYXJlbnRGb3JFbGVtZW50KGJhY2tpbmdPYmplY3QtPmVsZW1lbnQoKSk7CiAg
ICAgfSk7CiB9CiAKQEAgLTMwNzEsNyArMzA3Niw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVN
RU5UQVRJT05TX0VORAogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJB
WERSVFNwZWVjaEF0dHJpYnV0ZSJdKQogICAgICAgICByZXR1cm4gW3NlbGYgYmFzZUFjY2Vzc2li
aWxpdHlTcGVlY2hIaW50XTsKIAotICAgIC8vIFVzZWQgYnkgRFJUIHRvIGZpbmQgYW4gYWNjZXNz
aWJsZSBub2RlIGJ5IGl0cyBlbGVtZW50IGlkLgorICAgIC8vIFVzZWQgYnkgVGVzdFJ1bm5lciBh
bmQgRFJUIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIHRvIGZpbmQgYW4gYWNjZXNzaWJsZSBub2Rl
IGJ5IGl0cyBlbGVtZW50IGlkLgogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJp
bmc6QCJBWERSVEVsZW1lbnRJZEF0dHJpYnV0ZSJdKQogICAgICAgICByZXR1cm4gYmFja2luZ09i
amVjdC0+aWRlbnRpZmllckF0dHJpYnV0ZSgpOwogCkBAIC0zOTg3LDggKzM5OTIsMTEgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYgKFthdHRy
aWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UiXSkgewot
ICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gW3NlbGYgcmFuZ2VGb3JUZXh0TWFya2VyUmFu
Z2U6dGV4dE1hcmtlclJhbmdlXTsKLSAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QtPnN0cmlu
Z0ZvclJhbmdlKHJhbmdlKTsKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZl
VmFsdWVGcm9tTWFpblRocmVhZDxTdHJpbmc+KFsmdGV4dE1hcmtlclJhbmdlLCBwcm90ZWN0ZWRT
ZWxmID0gUmV0YWluUHRyPFdlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPihzZWxmKV0gKCkg
LT4gU3RyaW5nIHsKKyAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBbcHJvdGVjdGVk
U2VsZiByYW5nZUZvclRleHRNYXJrZXJSYW5nZTp0ZXh0TWFya2VyUmFuZ2VdOworICAgICAgICAg
ICAgYXV0byogYmFja2luZ09iamVjdCA9IHByb3RlY3RlZFNlbGYuZ2V0KCkuYXhCYWNraW5nT2Jq
ZWN0OworICAgICAgICAgICAgcmV0dXJuIGJhY2tpbmdPYmplY3QgPyBiYWNraW5nT2JqZWN0LT5z
dHJpbmdGb3JSYW5nZShyYW5nZSkgOiBTdHJpbmcoKTsKKyAgICAgICAgfSk7CiAgICAgfQogCiAg
ICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOkAiQVhUZXh0TWFya2VyRm9yUG9zaXRp
b24iXSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRr
L1dlYktpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJLaXRXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
aW5kZXggMDkxZmI4ZjI0MTQ4MzNlOWU5MTE5NzJlOGE5NjEwZjIyNDYwYmVjNy4uNDQ3NzNiNTYx
MTc0NDJlYmJjZjRlZGZjMTEyMTAyNTMzOThhZjJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYktpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViS2l0V2Vi
UGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC01NSwxMCArNTUsMTAgQEAgc3RhdGljIHZv
aWQgY29yZVJvb3RPYmplY3RXcmFwcGVyRGV0YWNoZWRDYWxsYmFjayhBdGtPYmplY3QqIHdyYXBw
ZXIsIGNvbnN0IGNoYXIKIAogc3RhdGljIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKiByb290
V2ViQXJlYVdyYXBwZXIoQVhDb3JlT2JqZWN0JiByb290T2JqZWN0KQogewotICAgIGlmICghcm9v
dE9iamVjdC5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCisgICAgaWYgKCFyb290T2JqZWN0
LmlzU2Nyb2xsVmlldygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmIChhdXRv
KiB3ZWJBcmVhT2JqZWN0ID0gZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc+KHJvb3RP
YmplY3QpLndlYkFyZWFPYmplY3QoKSkKKyAgICBpZiAoYXV0byogd2ViQXJlYU9iamVjdCA9IHJv
b3RPYmplY3Qud2ViQXJlYU9iamVjdCgpKQogICAgICAgICByZXR1cm4gd2ViQXJlYU9iamVjdC0+
d3JhcHBlcigpOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWFlYTJmNGQzMzUzMGFhMWZjYmI1MWRmMjk2
MjBlNmY2YWFmMGU3MS4uMjI5Y2Y5MzQ0ZTA0N2NkODM2ZjMwYzZkZmRiZWQ0ZTFmYTNkOGQyNSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTAzLTAxICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxl
LmNvbT4KKworICAgICAgICBGaXggZm9yIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Nl
YXJjaC10ZXh0L3NlYXJjaC10ZXh0Lmh0bWwgaW4gSXNvbGF0ZWRUcmVlIG1vZGUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg0MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpOiBJ
bml0aWFsaXplcyBtX3VzZUFYVGhyZWFkLgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6cm9vdEVsZW1lbnQpOiBObyBuZWVkIHRvIHNldCBtX3VzZUFYVGhyZWFkIGhlcmUg
c2luY2UgaXQgaXMgaW5pdGlhbGl6ZSBpbiB0aGUgY29uc3RydWN0b3IuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJN
YWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxl
RWxlbWVudEJ5SWQpOiBTYW1lIGFzIGFib3ZlLgorCiAyMDIwLTAyLTI4ICBEYW5pZWwgQmF0ZXMg
IDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgbXkgd2F0Y2ggbGlzdCBwcmVm
ZXJlbmNlcyBhbmQgY29udHJpYnV0b3IncyBlbnRyeS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5jcHAKaW5kZXggYzk2NjljMWZkYmI1MmQyMDZkYzQzMDcyM2FjODgzZGZlOTAyNGJmMC4u
MTdhYzZhZWUyMzYwOGFjYmY5YjdhMDRkNGI0ZGYyNTE1YTg2OTE2OSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5jcHAKQEAgLTQ2LDYgKzQ2LDkgQEAgUmVmPEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyPiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Y3JlYXRlKCkKIAogQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCkKIHsKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBtX3VzZUFYVGhyZWFkID0gV0tBY2Nlc3NpYmlsaXR5Q2FuVXNlU2Vjb25k
YXJ5QVhUaHJlYWQoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKTsK
KyNlbmRpZgogfQogCiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKCkKQEAgLTc4LDExICs4MSw2IEBAIFJlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQoKQogICAgIFdLQnVuZGxlUGFnZVJl
ZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpOwogICAg
IFBsYXRmb3JtVUlFbGVtZW50IHJvb3QgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxlbWVudD4o
V0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChwYWdlKSk7CiAKLSAgICAvLyBOb3cgdGhhdCB3ZSBo
YXZlIGEgcm9vdCBhbmQgdGhlIGlzb2xhdGVkIHRyZWUgaXMgZ2VuZXJhdGVkLCBzZXQKLSAgICAv
LyBtX3VzZUFYVGhyZWFkIHRvIHRydWUgZm9yIG5leHQgcmVxdWVzdCB0byBiZSBoYW5kbGVkIGlu
IHRoZSBzZWNvbmRhcnkgdGhyZWFkLgotICAgIGlmIChXS0FjY2Vzc2liaWxpdHlDYW5Vc2VTZWNv
bmRhcnlBWFRocmVhZChJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCkp
KQotICAgICAgICBtX3VzZUFYVGhyZWFkID0gdHJ1ZTsKLQogICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjcmVhdGUocm9vdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaAppbmRleCBjZWZhYTQzYmRmZTIwM2FlNGRjNmEwNDk2MzEwZWFhOTVkNzY0ZWIzLi5lYTRj
YTI4YmMxOGU1MWVkYWQyZjhjNjM0MTE2NjI2NGYwMjQzMDllIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5oCkBAIC05NiwxMSArOTYsNiBAQCBwcml2YXRlOgogICAgIC8vIGRvIG5vdCB3
b3JrIGZvciBXZWJLaXRUZXN0UnVubmVyIHNpbmNlIHRoaXMgaXMgY2FsbGluZyBkaXJlY3RseSBp
bnRvCiAgICAgLy8gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5IHZpYSBKYXZhU2NyaXB0IHdpdGhvdXQg
Z29pbmcgdGhyb3VnaCBISVNlcnZpY2VzLgogICAgIC8vIFRodXMgdG8gc2ltdWxhdGUgdGhlIGJl
aGF2aW9yIG9mIEhJU2VydmljZXMsIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIGlzIHNwYXduaW5n
IGEgc2Vjb25kYXJ5IHRocmVhZCB0byBzZXJ2aWNlIHRoZSBKYXZhU2NyaXB0IHJlcXVlc3RzLgot
ICAgIC8vIFRoZSBmb2xsb3dpbmcgZmxhZyBhbGxvd3MgdG8gcnVuIHRoZSB2ZXJ5IGZpcnN0IHJl
cXVlc3QgaW4gdGhlIG1haW4KLSAgICAvLyB0aHJlYWQgYW5kIGFsbCBzdWJzZXF1ZW50IHJlcXVl
c3RzIGluIHRoZSBzZWNvbmRhcnkgdGhyZWFkLiB0aGlzIGlzIHdoYXQKLSAgICAvLyB0aGUgYmVo
YXZpb3Igd291bGQgYmUgaWYgdXNpbmcgSElTZXJ2aWNlcy4KLSAgICAvLyBUaGUgZmlyc3QgcmVx
dWVzdCBoYXMgdG8gYmUgc2VydmVkIGluIHRoZSBtYWluIHRocmVhZCBpbiBvcmRlciB0byBidWls
ZAotICAgIC8vIHRoZSBBWElzb2xhdGVkVHJlZS4KICAgICBib29sIG1fdXNlQVhUaHJlYWQgeyBm
YWxzZSB9OwogICAgIEJpbmFyeVNlbWFwaG9yZSBtX3NlbWFwaG9yZTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQppbmRleCBhOTRkZTM4NjBkOWNj
NDFlNmJmOGNmMGZlMzdkNzliNTNiY2JiZTYzLi44MWZmMGY0Yjg3MzNhNzFjOGRhOTE1M2NjOTZl
ZWU1MjZjMjkxNjk2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1h
Yy5tbQpAQCAtMTAzLDExICsxMDMsNiBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFjY2Vzc2libGVFbGVtZW50QnlJZChKUwogICAgICAg
ICByb290ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1VSUVsZW1lbnQ+KFdLQWNjZXNzaWJpbGl0eVJv
b3RPYmplY3QocGFnZSkpOwogICAgIH0pOwogCi0gICAgLy8gTm93IHRoYXQgd2UgaGF2ZSBhIHJv
b3QgYW5kIHRoZSBpc29sYXRlZCB0cmVlIGlzIGdlbmVyYXRlZCwgc2V0Ci0gICAgLy8gbV91c2VB
WFRocmVhZCB0byB0cnVlIGZvciBuZXh0IHJlcXVlc3QgdG8gYmUgaGFuZGxlZCBpbiB0aGUgc2Vj
b25kYXJ5IHRocmVhZC4KLSAgICBpZiAoV0tBY2Nlc3NpYmlsaXR5Q2FuVXNlU2Vjb25kYXJ5QVhU
aHJlYWQoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpKSkKLSAgICAg
ICAgbV91c2VBWFRocmVhZCA9IHRydWU7Ci0KICAgICBpZCByZXN1bHQ7CiAgICAgZXhlY3V0ZU9u
QVhUaHJlYWRJZlBvc3NpYmxlKFsmcm9vdCwgJmlkQXR0cmlidXRlLCAmcmVzdWx0XSB7CiAgICAg
ICAgIHJlc3VsdCA9IGZpbmRBY2Nlc3NpYmxlT2JqZWN0QnlJZChyb290LCBbTlNTdHJpbmcgc3Ry
aW5nV2l0aEpTU3RyaW5nUmVmOmlkQXR0cmlidXRlXSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTJjOWVlZmNjMzM0Y2Nj
ZDU4MGNlMTI1YTZhMTA4YTJhNDFkM2JiNy4uZGJmNjIxMzI4YzJjODcyODdhNDgwNWRmYjNjNDIz
YTViODBlMTY0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTAxICBBbmRyZXMgR29u
emFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL3NlYXJjaC10ZXh0L3NlYXJjaC10ZXh0Lmh0bWwgaW4gSXNv
bGF0ZWRUcmVlIG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDg0MzQKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZXhwYW5kZWQtbm90aWZpY2F0aW9ucy5o
dG1sOgorICAgICAgICBXaXRoIHRoaXMgY2hhbmdlLCB3ZSBub3cgZ2V0IHRoZSBGb2N1c0NoYW5n
ZWQgbm90aWZpY2F0aW9uIHdoZW4gdGhlCisgICAgICAgIHNjcmlwdCBzZXRzIGZvY3VzIHRvIGEg
dHJlZSBpdGVtLgorCiAyMDIwLTAyLTI4ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS10gR2FyZGVuaW5nLCB1cGRhdGUgVGVzdEV4cGVjdGF0aW9u
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBhbmRl
ZC1ub3RpZmljYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlh
LWV4cGFuZGVkLW5vdGlmaWNhdGlvbnMuaHRtbAppbmRleCA5NTNlNWE2ZjEyYmIyY2QyYzY5YTVl
Y2U2MWUxZmRiNGU2ZmU0NGU0Li5iZDk4YWMxZjE3YTI4OWVjZWQxMjllNzBjYmJkNjZmODFjNmIw
MGY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFu
ZGVkLW5vdGlmaWNhdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21h
Yy9hcmlhLWV4cGFuZGVkLW5vdGlmaWNhdGlvbnMuaHRtbApAQCAtMzAsNyArMzAsOSBAQAogICAg
IHZhciBub3RpZnlOYW1lID0gMDsKICAgICAvLyBUaGUgb3JkZXIgb2Ygbm90aWZpY2F0aW9ucyBz
aG91bGQgYmUgUm93IENvdW50LCBSb3cgQ29sbGFwc2VkLCBSb3cgQ291bnQsIFJvdyBFeHBhbmRl
ZAogICAgIGZ1bmN0aW9uIG5vdGlmeUNhbGxiYWNrKGVsZW1lbnQsIG5vdGlmaWNhdGlvbikgeyAg
Ci0gICAgICAgIGlmIChub3RpZmljYXRpb24gPT0gIkFYTG9hZENvbXBsZXRlIiB8fCBub3RpZmlj
YXRpb24gPT0gIkFYTGF5b3V0Q29tcGxldGUiKQorICAgICAgICBpZiAobm90aWZpY2F0aW9uID09
ICJBWExvYWRDb21wbGV0ZSIKKyAgICAgICAgICAgIHx8IG5vdGlmaWNhdGlvbiA9PSAiQVhMYXlv
dXRDb21wbGV0ZSIKKyAgICAgICAgICAgIHx8IG5vdGlmaWNhdGlvbiA9PSAiQVhGb2N1c0NoYW5n
ZWQiKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBub3RpZnlOYW1lID0gbm90aWZpY2F0
aW9uOwogICAgICAgICBpZiAobm90aWZ5Q291bnQgPT0gMCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>