<?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>212870</bug_id>
          
          <creation_ts>2020-06-06 09:25:15 -0700</creation_ts>
          <short_desc>[IPC] Adopt enum class for DragOperation</short_desc>
          <delta_ts>2020-06-11 13:38:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>Other</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=212885</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=213093</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>
          <dependson>212605</dependson>
          <blocked>211988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1659977</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-06 09:25:15 -0700</bug_when>
    <thetext>Adopt enum class for DragOperation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659978</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-06 09:25:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/64069940&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659984</commentid>
    <comment_count>2</comment_count>
      <attachid>401264</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-06 09:43:29 -0700</bug_when>
    <thetext>Created attachment 401264
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660004</commentid>
    <comment_count>3</comment_count>
      <attachid>401270</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-06 11:30:35 -0700</bug_when>
    <thetext>Created attachment 401270
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660005</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-06 11:31:00 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #3)
&gt; Created attachment 401270 [details]
&gt; Patch v2

Removed FIXME in Source/WebKit/Scripts/webkit/messages.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660246</commentid>
    <comment_count>5</comment_count>
      <attachid>401270</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-08 09:34:23 -0700</bug_when>
    <thetext>Comment on attachment 401270
Patch v2

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

Ready for review.  I called out non-mechanical changes via comments.

&gt; Source/WebCore/ChangeLog:19
&gt; +        * page/DragActions.h:
&gt; +        (WebCore::DragOperation):
&gt; +        - Convert to enum class.

This is not a mechanical change.

&gt; Source/WebKit/ChangeLog:10
&gt; +        * Scripts/webkit/messages.py:
&gt; +        - Remove FIXME now that it&apos;s not needed.

This is not a mechanical change.

&gt; Tools/ChangeLog:10
&gt; +        * Scripts/do-webcore-rename:
&gt; +        - Do DragOperation renames.

Not a mechanical change.  (Do we normally update the script like this?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660273</commentid>
    <comment_count>6</comment_count>
      <attachid>401270</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-08 11:20:22 -0700</bug_when>
    <thetext>Comment on attachment 401270
Patch v2

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

&gt;&gt; Tools/ChangeLog:10
&gt;&gt; +        - Do DragOperation renames.
&gt; 
&gt; Not a mechanical change.  (Do we normally update the script like this?)

We do; it’s fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660334</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-08 13:07:05 -0700</bug_when>
    <thetext>Committed r262735: &lt;https://trac.webkit.org/changeset/262735&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401270.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401264</attachid>
            <date>2020-06-06 09:43:29 -0700</date>
            <delta_ts>2020-06-06 11:30:33 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-212870-20200606094358.patch</filename>
            <type>text/plain</type>
            <size>38030</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVmNjBlMjIwMjM3YTNh
MjlmMTAzNjkzMzAzZjE3OTUzMTIwN2JkMi4uNDJhODMwZDliZThiZjhlZDY4YzEzMDFkYTc0OGMz
YzRlZGJmOGQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA2LTA2ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgW0lQQ10gQWRvcHQgZW51
bSBjbGFzcyBmb3IgRHJhZ09wZXJhdGlvbgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MjEyODcwPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQwNjk5NDA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYWdPcEZyb21JRU9wKToKKyAgICAgICAgKFdlYkNvcmU6
OklFT3BGcm9tRHJhZ09wKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6c291cmNl
T3BlcmF0aW9uTWFzayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmRl
c3RpbmF0aW9uT3BlcmF0aW9uTWFzayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJh
bnNmZXI6OnNldFNvdXJjZU9wZXJhdGlvbk1hc2spOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVyOjpzZXREZXN0aW5hdGlvbk9wZXJhdGlvbk1hc2spOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YVRyYW5zZmVyOjpzZXRFZmZlY3RBbGxvd2VkKToKKyAgICAgICAgKiBwYWdlL0RyYWdBY3Rp
b25zLmg6CisgICAgICAgIChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uKToKKyAgICAgICAgLSBDb252
ZXJ0IHRvIGVudW0gY2xhc3MuCisgICAgICAgIChXZWJDb3JlOjphbnlEcmFnT3BlcmF0aW9uKToK
KyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRy
YWdDb250cm9sbGVyOjpwbGF0Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKToKKyAgICAgICAgKFdlYkNv
cmU6OmRlZmF1bHRPcGVyYXRpb25Gb3JEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250
cm9sbGVyOjpzdGFydERyYWcpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnREcm9wWm9uZU9wZXJhdGlvblRvRHJhZ09wZXJhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RHJhZ09wZXJhdGlvblRvRHJvcFpvbmVPcGVyYXRp
b24pOgorICAgICAgICAqIHBhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKiBwYWdl
L21hYy9EcmFnQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9s
bGVyOjpkcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpw
bGF0Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKiBwYWdlL3dpbi9EcmFnQ29u
dHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZHJhZ09w
ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpnZGtEcmFnQWN0aW9uVG9EcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OmRyYWdPcGVyYXRpb25Ub0dka0RyYWdBY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OmRyYWdPcGVyYXRpb25Ub1NpbmdsZUdka0RyYWdBY3Rpb24pOgorCiAyMDIwLTA2LTA2ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwOiBVc2Ug
T3B0aW9uU2V0PERyYWdPcGVyYXRpb24+IGZvciBtYXNrIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjN2Uz
MTQzODdkMDdiOWE2OGQ1YjFhZmI1ZjYwZWUzMzBlOWQ5MjBiLi4wNTY0NDUwNjFhNjYzYzRkMTNj
MzMwMmUxNDFmZGUwYWI4MDIwODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA2
LTA2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgW0lQQ10g
QWRvcHQgZW51bSBjbGFzcyBmb3IgRHJhZ09wZXJhdGlvbgorICAgICAgICA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMjEyODcwPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQwNjk5NDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0NvY29hL19XS0RyYWdBY3Rpb25zSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYktpdDo6Y29yZURy
YWdPcGVyYXRpb25NYXNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW06CisgICAgICAgIChXZWJLaXQ6OmtpdCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgIChkcm9wT3BlcmF0aW9uRm9yV2ViQ29y
ZURyYWdPcGVyYXRpb24pOgorICAgICAgICAoY29yZURyYWdPcGVyYXRpb25Gb3JVSURyb3BPcGVy
YXRpb24pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRyYWdEYXRhRm9yRHJvcFNlc3Npb246
ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOl0pOgorCiAyMDIwLTA2LTA2ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIE9wdGlvblNldDxEcmFnT3BlcmF0aW9u
PiBmb3IgbWFzayB2YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBmZDZhYWQ0
YTgyOWEwYWJkNmZjOWNhNGY5Yzc3MmQ4OWYyZDc2NTI5Li40NmI5NjBhOTg1ZjkyNTI4YzA5ZDQ0
NGRhY2I5OWJlMjU2NDM3YmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMjAtMDYtMDYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4K
KworICAgICAgICBbSVBDXSBBZG9wdCBlbnVtIGNsYXNzIGZvciBEcmFnT3BlcmF0aW9uCisgICAg
ICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8yMTI4NzA+CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDA2OTk0MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgIChraXQpOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKGNvcmVEcmFnT3BlcmF0aW9uTWFzayk6Cisg
ICAgICAgIChraXQpOgorCiAyMDIwLTA2LTA2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPiBmb3IgbWFzayB2
YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA0OGMxNTRmMjdlMDJjMmRhYTUy
OThiMTJjNjA1MzRmNzJhZmZhMzNmLi42YmMxOTcwNDRlNDY1ZjIyMzQ1Yjg3ZjNmNDI2NjhlNTFk
OWNlN2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjAtMDYtMDYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBb
SVBDXSBBZG9wdCBlbnVtIGNsYXNzIGZvciBEcmFnT3BlcmF0aW9uCisgICAgICAgIDxodHRwczov
L3dlYmtpdC5vcmcvYi8yMTI4NzA+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDA2OTk0MD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwOgorICAgICAgICAoZHJhZ2dpbmdTb3VyY2VPcGVy
YXRpb25NYXNrVG9EcmFnQ3Vyc29ycyk6CisgICAgICAgIChXZWJEcmFnQ2xpZW50OjpzdGFydERy
YWcpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoZHJhZ09wZXJhdGlvblRvRHJh
Z0N1cnNvcik6CisgICAgICAgIChXZWJWaWV3OjprZXlTdGF0ZVRvRHJhZ09wZXJhdGlvbiBjb25z
dCk6CisKIDIwMjAtMDYtMDYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGb2xsb3ctdXA6IFVzZSBPcHRpb25TZXQ8RHJhZ09wZXJhdGlvbj4gZm9yIG1hc2sg
dmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCmluZGV4IGU2ZWI5Nzk4NTM4YmM0
NjI1NzE5ZGFmZmYxMTBiMTMxMWY1NjJjODguLmI0NWExM2RiMDhhMDY0Yzg0MTAzZDZlN2I4YWQz
ZmIyZWUwMzBmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCkBAIC02MDMsMzkg
KzYwMywzOSBAQCBzdGF0aWMgT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+IGRyYWdPcEZyb21JRU9w
KGNvbnN0IFN0cmluZyYgb3BlcmF0aW9uKQogICAgIGlmIChvcGVyYXRpb24gPT0gIm5vbmUiKQog
ICAgICAgICByZXR1cm4geyB9OwogICAgIGlmIChvcGVyYXRpb24gPT0gImNvcHkiKQotICAgICAg
ICByZXR1cm4geyBEcmFnT3BlcmF0aW9uQ29weSB9OworICAgICAgICByZXR1cm4geyBEcmFnT3Bl
cmF0aW9uOjpDb3B5IH07CiAgICAgaWYgKG9wZXJhdGlvbiA9PSAibGluayIpCi0gICAgICAgIHJl
dHVybiB7IERyYWdPcGVyYXRpb25MaW5rIH07CisgICAgICAgIHJldHVybiB7IERyYWdPcGVyYXRp
b246OkxpbmsgfTsKICAgICBpZiAob3BlcmF0aW9uID09ICJtb3ZlIikKLSAgICAgICAgcmV0dXJu
IHsgRHJhZ09wZXJhdGlvbkdlbmVyaWMsIERyYWdPcGVyYXRpb25Nb3ZlIH07CisgICAgICAgIHJl
dHVybiB7IERyYWdPcGVyYXRpb246OkdlbmVyaWMsIERyYWdPcGVyYXRpb246Ok1vdmUgfTsKICAg
ICBpZiAob3BlcmF0aW9uID09ICJjb3B5TGluayIpCi0gICAgICAgIHJldHVybiB7IERyYWdPcGVy
YXRpb25Db3B5LCBEcmFnT3BlcmF0aW9uTGluayB9OworICAgICAgICByZXR1cm4geyBEcmFnT3Bl
cmF0aW9uOjpDb3B5LCBEcmFnT3BlcmF0aW9uOjpMaW5rIH07CiAgICAgaWYgKG9wZXJhdGlvbiA9
PSAiY29weU1vdmUiKQotICAgICAgICByZXR1cm4geyBEcmFnT3BlcmF0aW9uQ29weSwgRHJhZ09w
ZXJhdGlvbkdlbmVyaWMsIERyYWdPcGVyYXRpb25Nb3ZlIH07CisgICAgICAgIHJldHVybiB7IERy
YWdPcGVyYXRpb246OkNvcHksIERyYWdPcGVyYXRpb246OkdlbmVyaWMsIERyYWdPcGVyYXRpb246
Ok1vdmUgfTsKICAgICBpZiAob3BlcmF0aW9uID09ICJsaW5rTW92ZSIpCi0gICAgICAgIHJldHVy
biB7IERyYWdPcGVyYXRpb25MaW5rLCBEcmFnT3BlcmF0aW9uR2VuZXJpYywgRHJhZ09wZXJhdGlv
bk1vdmUgfTsKKyAgICAgICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbjo6TGluaywgRHJhZ09wZXJh
dGlvbjo6R2VuZXJpYywgRHJhZ09wZXJhdGlvbjo6TW92ZSB9OwogICAgIGlmIChvcGVyYXRpb24g
PT0gImFsbCIpCiAgICAgICAgIHJldHVybiBhbnlEcmFnT3BlcmF0aW9uKCk7Ci0gICAgcmV0dXJu
IHsgRHJhZ09wZXJhdGlvblByaXZhdGUgfTsgLy8gUmVhbGx5IGEgbWFya2VyIGZvciAibm8gY29u
dmVyc2lvbiIuCisgICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbjo6UHJpdmF0ZSB9OyAvLyBSZWFs
bHkgYSBtYXJrZXIgZm9yICJubyBjb252ZXJzaW9uIi4KIH0KIAogc3RhdGljIGNvbnN0IGNoYXIq
IElFT3BGcm9tRHJhZ09wKE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPiBvcGVyYXRpb25NYXNrKQog
ewotICAgIGJvb2wgaXNHZW5lcmljTW92ZSA9IG9wZXJhdGlvbk1hc2suY29udGFpbnNBbnkoeyBE
cmFnT3BlcmF0aW9uR2VuZXJpYywgRHJhZ09wZXJhdGlvbk1vdmUgfSk7CisgICAgYm9vbCBpc0dl
bmVyaWNNb3ZlID0gb3BlcmF0aW9uTWFzay5jb250YWluc0FueSh7IERyYWdPcGVyYXRpb246Okdl
bmVyaWMsIERyYWdPcGVyYXRpb246Ok1vdmUgfSk7CiAKLSAgICBpZiAoKGlzR2VuZXJpY01vdmUg
JiYgb3BlcmF0aW9uTWFzay5jb250YWluc0FsbCh7IERyYWdPcGVyYXRpb25Db3B5LCBEcmFnT3Bl
cmF0aW9uTGluayB9KSkgfHwgb3BlcmF0aW9uTWFzay5jb250YWluc0FsbCh7IERyYWdPcGVyYXRp
b25Db3B5LCBEcmFnT3BlcmF0aW9uTGluaywgRHJhZ09wZXJhdGlvbkdlbmVyaWMsIERyYWdPcGVy
YXRpb25Qcml2YXRlLCBEcmFnT3BlcmF0aW9uTW92ZSwgRHJhZ09wZXJhdGlvbkRlbGV0ZSB9KSkK
KyAgICBpZiAoKGlzR2VuZXJpY01vdmUgJiYgb3BlcmF0aW9uTWFzay5jb250YWluc0FsbCh7IERy
YWdPcGVyYXRpb246OkNvcHksIERyYWdPcGVyYXRpb246OkxpbmsgfSkpIHx8IG9wZXJhdGlvbk1h
c2suY29udGFpbnNBbGwoeyBEcmFnT3BlcmF0aW9uOjpDb3B5LCBEcmFnT3BlcmF0aW9uOjpMaW5r
LCBEcmFnT3BlcmF0aW9uOjpHZW5lcmljLCBEcmFnT3BlcmF0aW9uOjpQcml2YXRlLCBEcmFnT3Bl
cmF0aW9uOjpNb3ZlLCBEcmFnT3BlcmF0aW9uOjpEZWxldGUgfSkpCiAgICAgICAgIHJldHVybiAi
YWxsIjsKLSAgICBpZiAoaXNHZW5lcmljTW92ZSAmJiBvcGVyYXRpb25NYXNrLmNvbnRhaW5zKERy
YWdPcGVyYXRpb25Db3B5KSkKKyAgICBpZiAoaXNHZW5lcmljTW92ZSAmJiBvcGVyYXRpb25NYXNr
LmNvbnRhaW5zKERyYWdPcGVyYXRpb246OkNvcHkpKQogICAgICAgICByZXR1cm4gImNvcHlNb3Zl
IjsKLSAgICBpZiAoaXNHZW5lcmljTW92ZSAmJiBvcGVyYXRpb25NYXNrLmNvbnRhaW5zKERyYWdP
cGVyYXRpb25MaW5rKSkKKyAgICBpZiAoaXNHZW5lcmljTW92ZSAmJiBvcGVyYXRpb25NYXNrLmNv
bnRhaW5zKERyYWdPcGVyYXRpb246OkxpbmspKQogICAgICAgICByZXR1cm4gImxpbmtNb3ZlIjsK
LSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWluc0FsbCh7IERyYWdPcGVyYXRpb25Db3B5LCBE
cmFnT3BlcmF0aW9uTGluayB9KSkKKyAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWluc0FsbCh7
IERyYWdPcGVyYXRpb246OkNvcHksIERyYWdPcGVyYXRpb246OkxpbmsgfSkpCiAgICAgICAgIHJl
dHVybiAiY29weUxpbmsiOwogICAgIGlmIChpc0dlbmVyaWNNb3ZlKQogICAgICAgICByZXR1cm4g
Im1vdmUiOwotICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zKERyYWdPcGVyYXRpb25Db3B5
KSkKKyAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhEcmFnT3BlcmF0aW9uOjpDb3B5KSkK
ICAgICAgICAgcmV0dXJuICJjb3B5IjsKLSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhE
cmFnT3BlcmF0aW9uTGluaykpCisgICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09w
ZXJhdGlvbjo6TGluaykpCiAgICAgICAgIHJldHVybiAibGluayI7CiAgICAgcmV0dXJuICJub25l
IjsKIH0KQEAgLTY0MywyNiArNjQzLDI2IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBJRU9wRnJvbURy
YWdPcChPcHRpb25TZXQ8RHJhZ09wZXJhdGlvbj4gb3BlcmF0aW9uTWFzaykKIE9wdGlvblNldDxE
cmFnT3BlcmF0aW9uPiBEYXRhVHJhbnNmZXI6OnNvdXJjZU9wZXJhdGlvbk1hc2soKSBjb25zdAog
ewogICAgIGF1dG8gb3BlcmF0aW9uTWFzayA9IGRyYWdPcEZyb21JRU9wKG1fZWZmZWN0QWxsb3dl
ZCk7Ci0gICAgQVNTRVJUKG9wZXJhdGlvbk1hc2sgIT0gRHJhZ09wZXJhdGlvblByaXZhdGUpOwor
ICAgIEFTU0VSVChvcGVyYXRpb25NYXNrICE9IERyYWdPcGVyYXRpb246OlByaXZhdGUpOwogICAg
IHJldHVybiBvcGVyYXRpb25NYXNrOwogfQogCiBPcHRpb25TZXQ8RHJhZ09wZXJhdGlvbj4gRGF0
YVRyYW5zZmVyOjpkZXN0aW5hdGlvbk9wZXJhdGlvbk1hc2soKSBjb25zdAogewogICAgIGF1dG8g
b3BlcmF0aW9uTWFzayA9IGRyYWdPcEZyb21JRU9wKG1fZHJvcEVmZmVjdCk7Ci0gICAgQVNTRVJU
KG9wZXJhdGlvbk1hc2sgPT0gRHJhZ09wZXJhdGlvbkNvcHkgfHwgb3BlcmF0aW9uTWFzay5pc0Vt
cHR5KCkgfHwgb3BlcmF0aW9uTWFzayA9PSBEcmFnT3BlcmF0aW9uTGluayB8fCBvcGVyYXRpb25N
YXNrID09IE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPih7IERyYWdPcGVyYXRpb25HZW5lcmljLCBE
cmFnT3BlcmF0aW9uTW92ZSB9KSB8fCBvcGVyYXRpb25NYXNrLmNvbnRhaW5zQWxsKHsgRHJhZ09w
ZXJhdGlvbkNvcHksIERyYWdPcGVyYXRpb25MaW5rLCBEcmFnT3BlcmF0aW9uR2VuZXJpYywgRHJh
Z09wZXJhdGlvblByaXZhdGUsIERyYWdPcGVyYXRpb25Nb3ZlLCBEcmFnT3BlcmF0aW9uRGVsZXRl
IH0pKTsKKyAgICBBU1NFUlQob3BlcmF0aW9uTWFzayA9PSBEcmFnT3BlcmF0aW9uOjpDb3B5IHx8
IG9wZXJhdGlvbk1hc2suaXNFbXB0eSgpIHx8IG9wZXJhdGlvbk1hc2sgPT0gRHJhZ09wZXJhdGlv
bjo6TGluayB8fCBvcGVyYXRpb25NYXNrID09IE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPih7IERy
YWdPcGVyYXRpb246OkdlbmVyaWMsIERyYWdPcGVyYXRpb246Ok1vdmUgfSkgfHwgb3BlcmF0aW9u
TWFzay5jb250YWluc0FsbCh7IERyYWdPcGVyYXRpb246OkNvcHksIERyYWdPcGVyYXRpb246Okxp
bmssIERyYWdPcGVyYXRpb246OkdlbmVyaWMsIERyYWdPcGVyYXRpb246OlByaXZhdGUsIERyYWdP
cGVyYXRpb246Ok1vdmUsIERyYWdPcGVyYXRpb246OkRlbGV0ZSB9KSk7CiAgICAgcmV0dXJuIG9w
ZXJhdGlvbk1hc2s7CiB9CiAKIHZvaWQgRGF0YVRyYW5zZmVyOjpzZXRTb3VyY2VPcGVyYXRpb25N
YXNrKE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPiBvcGVyYXRpb25NYXNrKQogewotICAgIEFTU0VS
VF9BUkcob3BlcmF0aW9uTWFzaywgb3BlcmF0aW9uTWFzayAhPSBEcmFnT3BlcmF0aW9uUHJpdmF0
ZSk7CisgICAgQVNTRVJUX0FSRyhvcGVyYXRpb25NYXNrLCBvcGVyYXRpb25NYXNrICE9IERyYWdP
cGVyYXRpb246OlByaXZhdGUpOwogICAgIG1fZWZmZWN0QWxsb3dlZCA9IElFT3BGcm9tRHJhZ09w
KG9wZXJhdGlvbk1hc2spOwogfQogCiB2b2lkIERhdGFUcmFuc2Zlcjo6c2V0RGVzdGluYXRpb25P
cGVyYXRpb25NYXNrKE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPiBvcGVyYXRpb25NYXNrKQogewot
ICAgIEFTU0VSVF9BUkcob3BlcmF0aW9uTWFzaywgb3BlcmF0aW9uTWFzayA9PSBEcmFnT3BlcmF0
aW9uQ29weSB8fCBvcGVyYXRpb25NYXNrLmlzRW1wdHkoKSB8fCBvcGVyYXRpb25NYXNrID09IERy
YWdPcGVyYXRpb25MaW5rIHx8IG9wZXJhdGlvbk1hc2sgPT0gRHJhZ09wZXJhdGlvbkdlbmVyaWMg
fHwgb3BlcmF0aW9uTWFzayA9PSBEcmFnT3BlcmF0aW9uTW92ZSB8fCBvcGVyYXRpb25NYXNrID09
IE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPih7IERyYWdPcGVyYXRpb25HZW5lcmljLCBEcmFnT3Bl
cmF0aW9uTW92ZSB9KSk7CisgICAgQVNTRVJUX0FSRyhvcGVyYXRpb25NYXNrLCBvcGVyYXRpb25N
YXNrID09IERyYWdPcGVyYXRpb246OkNvcHkgfHwgb3BlcmF0aW9uTWFzay5pc0VtcHR5KCkgfHwg
b3BlcmF0aW9uTWFzayA9PSBEcmFnT3BlcmF0aW9uOjpMaW5rIHx8IG9wZXJhdGlvbk1hc2sgPT0g
RHJhZ09wZXJhdGlvbjo6R2VuZXJpYyB8fCBvcGVyYXRpb25NYXNrID09IERyYWdPcGVyYXRpb246
Ok1vdmUgfHwgb3BlcmF0aW9uTWFzayA9PSBPcHRpb25TZXQ8RHJhZ09wZXJhdGlvbj4oeyBEcmFn
T3BlcmF0aW9uOjpHZW5lcmljLCBEcmFnT3BlcmF0aW9uOjpNb3ZlIH0pKTsKICAgICBtX2Ryb3BF
ZmZlY3QgPSBJRU9wRnJvbURyYWdPcChvcGVyYXRpb25NYXNrKTsKIH0KIApAQCAtNjk4LDcgKzY5
OCw3IEBAIHZvaWQgRGF0YVRyYW5zZmVyOjpzZXRFZmZlY3RBbGxvd2VkKGNvbnN0IFN0cmluZyYg
ZWZmZWN0KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBJZ25vcmUgYW55IGF0dGVtcHRzIHRv
IHNldCBpdCB0byBhbiB1bmtub3duIHZhbHVlLgotICAgIGlmIChkcmFnT3BGcm9tSUVPcChlZmZl
Y3QpID09IERyYWdPcGVyYXRpb25Qcml2YXRlKQorICAgIGlmIChkcmFnT3BGcm9tSUVPcChlZmZl
Y3QpID09IERyYWdPcGVyYXRpb246OlByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghY2FuV3JpdGVEYXRhKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdB
Y3Rpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdBY3Rpb25zLmgKaW5kZXggZjNkZDNl
NWVhMzlkMmYyY2YwZGQyN2I2YTU5NTc1NTBkMGU2MjI3NC4uZTc0NTYzNTIzMWE5YmVhMDllODc4
ODc4NzJlZDljZTRkMjNmMWJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
QWN0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0FjdGlvbnMuaApAQCAtNjEs
MTggKzYxLDE4IEBAIHR5cGVkZWYgZW51bSB7CiB9IERyYWdTb3VyY2VBY3Rpb247CiAKIC8vIFNl
ZSBOU0RyYWdPcGVyYXRpb24sIF9VSURyYWdPcGVyYXRpb24gYW5kIFVJRHJvcE9wZXJhdGlvbi4K
LWVudW0gRHJhZ09wZXJhdGlvbiB7Ci0gICAgRHJhZ09wZXJhdGlvbkNvcHkgICAgPSAxLAotICAg
IERyYWdPcGVyYXRpb25MaW5rICAgID0gMiwKLSAgICBEcmFnT3BlcmF0aW9uR2VuZXJpYyA9IDQs
Ci0gICAgRHJhZ09wZXJhdGlvblByaXZhdGUgPSA4LAotICAgIERyYWdPcGVyYXRpb25Nb3ZlICAg
ID0gMTYsCi0gICAgRHJhZ09wZXJhdGlvbkRlbGV0ZSAgPSAzMiwKK2VudW0gY2xhc3MgRHJhZ09w
ZXJhdGlvbiA6IHVpbnQ4X3QgeworICAgIENvcHkgICAgPSAxLAorICAgIExpbmsgICAgPSAyLAor
ICAgIEdlbmVyaWMgPSA0LAorICAgIFByaXZhdGUgPSA4LAorICAgIE1vdmUgICAgPSAxNiwKKyAg
ICBEZWxldGUgID0gMzIsCiB9OwogCiBjb25zdGV4cHIgT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+
IGFueURyYWdPcGVyYXRpb24oKQogewotICAgIHJldHVybiB7IERyYWdPcGVyYXRpb25Db3B5LCBE
cmFnT3BlcmF0aW9uTGluaywgRHJhZ09wZXJhdGlvbkdlbmVyaWMsIERyYWdPcGVyYXRpb25Qcml2
YXRlLCBEcmFnT3BlcmF0aW9uTW92ZSwgRHJhZ09wZXJhdGlvbkRlbGV0ZSB9OworICAgIHJldHVy
biB7IERyYWdPcGVyYXRpb246OkNvcHksIERyYWdPcGVyYXRpb246OkxpbmssIERyYWdPcGVyYXRp
b246OkdlbmVyaWMsIERyYWdPcGVyYXRpb246OlByaXZhdGUsIERyYWdPcGVyYXRpb246Ok1vdmUs
IERyYWdPcGVyYXRpb246OkRlbGV0ZSB9OwogfQogCiBlbnVtIGNsYXNzIE1heUV4dGVuZERyYWdT
ZXNzaW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKQEAgLTk5LDEyICs5OSwxMiBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRyYWdIYW5kbGluZ01ldGhvZD4gewogdGVtcGxh
dGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEcmFnT3BlcmF0aW9uPiB7CiAgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbiwK
LSAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbkNvcHksCi0gICAgICAgIFdlYkNvcmU6OkRy
YWdPcGVyYXRpb25MaW5rLAotICAgICAgICBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uR2VuZXJpYywK
LSAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvblByaXZhdGUsCi0gICAgICAgIFdlYkNvcmU6
OkRyYWdPcGVyYXRpb25Nb3ZlLAotICAgICAgICBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uRGVsZXRl
CisgICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OkNvcHksCisgICAgICAgIFdlYkNvcmU6
OkRyYWdPcGVyYXRpb246OkxpbmssCisgICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246Okdl
bmVyaWMsCisgICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OlByaXZhdGUsCisgICAgICAg
IFdlYkNvcmU6OkRyYWdPcGVyYXRpb246Ok1vdmUsCisgICAgICAgIFdlYkNvcmU6OkRyYWdPcGVy
YXRpb246OkRlbGV0ZQogICAgID47CiB9OwogCkBAIC0xMjAsMTIgKzEyMCwxMiBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBPcHRpb25TZXRUcmFpdHM8V2ViQ29yZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
PiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBPcHRpb25TZXRUcmFpdHM8V2ViQ29yZTo6RHJhZ09wZXJh
dGlvbj4gewogICAgIHVzaW5nIHZhbHVlcyA9IE9wdGlvblNldFZhbHVlczwKICAgICAgICAgV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbiwKLSAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbkNvcHks
Ci0gICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25MaW5rLAotICAgICAgICBXZWJDb3JlOjpE
cmFnT3BlcmF0aW9uR2VuZXJpYywKLSAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvblByaXZh
dGUsCi0gICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Nb3ZlLAotICAgICAgICBXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uRGVsZXRlCisgICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OkNv
cHksCisgICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OkxpbmssCisgICAgICAgIFdlYkNv
cmU6OkRyYWdPcGVyYXRpb246OkdlbmVyaWMsCisgICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRp
b246OlByaXZhdGUsCisgICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246Ok1vdmUsCisgICAg
ICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OkRlbGV0ZQogICAgID47CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGJmYmE5MDg4NDZjYWIzMzlkM2ZlYmNh
ZWQ0MTg1ZTk1Y2U5ZmY5ZTguLjJmMzAyMDhlNTAxNTZhNTU0MGE0MzUzOTc3ZWVjM2ExNDM5MzA5
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xODEsNyArMTgx
LDcgQEAgc3RhdGljIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJv
bURyYWdEYXRhKGNvbnN0IERyYWdEYXRhJiBkcmEKIAogRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJv
bGxlcjo6cGxhdGZvcm1HZW5lcmljRHJhZ09wZXJhdGlvbigpCiB7Ci0gICAgcmV0dXJuIERyYWdP
cGVyYXRpb25Nb3ZlOworICAgIHJldHVybiBEcmFnT3BlcmF0aW9uOjpNb3ZlOwogfQogCiAjZW5k
aWYKQEAgLTMyMSw3ICszMjEsNyBAQCBPcHRpb25hbDxEcmFnT3BlcmF0aW9uPiBEcmFnQ29udHJv
bGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQoY29uc3QgRHJhZ0RhdGEmIGRyYQogICAgICAgICBp
ZiAoZHJhZ09wZXJhdGlvbikKICAgICAgICAgICAgIG1fZHJhZ0hhbmRsaW5nTWV0aG9kID0gRHJh
Z0hhbmRsaW5nTWV0aG9kOjpQYWdlTG9hZDsKICAgICB9IGVsc2UgaWYgKG1fZHJhZ0hhbmRsaW5n
TWV0aG9kID09IERyYWdIYW5kbGluZ01ldGhvZDo6U2V0Q29sb3IpCi0gICAgICAgIGRyYWdPcGVy
YXRpb24gPSBEcmFnT3BlcmF0aW9uQ29weTsKKyAgICAgICAgZHJhZ09wZXJhdGlvbiA9IERyYWdP
cGVyYXRpb246OkNvcHk7CiAKICAgICB1cGRhdGVTdXBwb3J0ZWRUeXBlSWRlbnRpZmllcnNGb3JE
cmFnSGFuZGxpbmdNZXRob2QobV9kcmFnSGFuZGxpbmdNZXRob2QsIGRyYWdEYXRhKTsKICAgICBy
ZXR1cm4gZHJhZ09wZXJhdGlvbjsKQEAgLTQyMiw3ICs0MjIsNyBAQCBEcmFnSGFuZGxpbmdNZXRo
b2QgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFnRGF0YSYgZHJhZ0Rh
dGEsIE9wdAogCiAgICAgaWYgKGRlc3RpbmF0aW9uQWN0aW9uTWFzay5jb250YWlucyhEcmFnRGVz
dGluYXRpb25BY3Rpb246OkVkaXQpICYmIGNhblByb2Nlc3NEcmFnKGRyYWdEYXRhKSkgewogICAg
ICAgICBpZiAoZHJhZ0RhdGEuY29udGFpbnNDb2xvcigpKSB7Ci0gICAgICAgICAgICBkcmFnT3Bl
cmF0aW9uID0gRHJhZ09wZXJhdGlvbkdlbmVyaWM7CisgICAgICAgICAgICBkcmFnT3BlcmF0aW9u
ID0gRHJhZ09wZXJhdGlvbjo6R2VuZXJpYzsKICAgICAgICAgICAgIHJldHVybiBEcmFnSGFuZGxp
bmdNZXRob2Q6OlNldENvbG9yOwogICAgICAgICB9CiAKQEAgLTQ0NCw3ICs0NDQsNyBAQCBEcmFn
SGFuZGxpbmdNZXRob2QgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFn
RGF0YSYgZHJhZ0RhdGEsIE9wdAogICAgICAgICAgICAgY2xlYXJEcmFnQ2FyZXQoKTsKIAogICAg
ICAgICBGcmFtZSogaW5uZXJGcmFtZSA9IGVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKTsKLSAg
ICAgICAgZHJhZ09wZXJhdGlvbiA9IGRyYWdJc01vdmUoaW5uZXJGcmFtZS0+c2VsZWN0aW9uKCks
IGRyYWdEYXRhKSA/IERyYWdPcGVyYXRpb25Nb3ZlIDogRHJhZ09wZXJhdGlvbkNvcHk7CisgICAg
ICAgIGRyYWdPcGVyYXRpb24gPSBkcmFnSXNNb3ZlKGlubmVyRnJhbWUtPnNlbGVjdGlvbigpLCBk
cmFnRGF0YSkgPyBEcmFnT3BlcmF0aW9uOjpNb3ZlIDogRHJhZ09wZXJhdGlvbjo6Q29weTsKIAog
ICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkZpbGVzID0gZHJhZ0RhdGEubnVtYmVyT2ZGaWxlcygp
OwogICAgICAgICBpZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSkgewpAQCAtNjk3LDIx
ICs2OTcsMjEgQEAgc3RhdGljIE9wdGlvbmFsPERyYWdPcGVyYXRpb24+IGRlZmF1bHRPcGVyYXRp
b25Gb3JEcmFnKE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPgogewogICAgIC8vIFRoaXMgaXMgZGVz
aWduZWQgdG8gbWF0Y2ggSUUncyBvcGVyYXRpb24gZmFsbGJhY2sgZm9yIHRoZSBjYXNlIHdoZXJl
CiAgICAgLy8gdGhlIHBhZ2UgY2FsbHMgcHJldmVudERlZmF1bHQoKSBpbiBhIGRyYWcgZXZlbnQg
YnV0IGRvZXNuJ3Qgc2V0IGRyb3BFZmZlY3QuCi0gICAgaWYgKHNvdXJjZU9wZXJhdGlvbk1hc2su
Y29udGFpbnNBbGwoeyBEcmFnT3BlcmF0aW9uQ29weSwgRHJhZ09wZXJhdGlvbkxpbmssIERyYWdP
cGVyYXRpb25HZW5lcmljLCBEcmFnT3BlcmF0aW9uUHJpdmF0ZSwgRHJhZ09wZXJhdGlvbk1vdmUs
IERyYWdPcGVyYXRpb25EZWxldGUgfSkpCi0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uQ29w
eTsKKyAgICBpZiAoc291cmNlT3BlcmF0aW9uTWFzay5jb250YWluc0FsbCh7IERyYWdPcGVyYXRp
b246OkNvcHksIERyYWdPcGVyYXRpb246OkxpbmssIERyYWdPcGVyYXRpb246OkdlbmVyaWMsIERy
YWdPcGVyYXRpb246OlByaXZhdGUsIERyYWdPcGVyYXRpb246Ok1vdmUsIERyYWdPcGVyYXRpb246
OkRlbGV0ZSB9KSkKKyAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb246OkNvcHk7CiAgICAgaWYg
KHNvdXJjZU9wZXJhdGlvbk1hc2suaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotICAgIGlmIChzb3VyY2VPcGVyYXRpb25NYXNrLmNvbnRhaW5zKERyYWdPcGVyYXRpb25N
b3ZlKSkKLSAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Nb3ZlOwotICAgIGlmIChzb3VyY2VP
cGVyYXRpb25NYXNrLmNvbnRhaW5zKERyYWdPcGVyYXRpb25HZW5lcmljKSkKKyAgICBpZiAoc291
cmNlT3BlcmF0aW9uTWFzay5jb250YWlucyhEcmFnT3BlcmF0aW9uOjpNb3ZlKSkKKyAgICAgICAg
cmV0dXJuIERyYWdPcGVyYXRpb246Ok1vdmU7CisgICAgaWYgKHNvdXJjZU9wZXJhdGlvbk1hc2su
Y29udGFpbnMoRHJhZ09wZXJhdGlvbjo6R2VuZXJpYykpCiAgICAgICAgIHJldHVybiBEcmFnQ29u
dHJvbGxlcjo6cGxhdGZvcm1HZW5lcmljRHJhZ09wZXJhdGlvbigpOwotICAgIGlmIChzb3VyY2VP
cGVyYXRpb25NYXNrLmNvbnRhaW5zKERyYWdPcGVyYXRpb25Db3B5KSkKLSAgICAgICAgcmV0dXJu
IERyYWdPcGVyYXRpb25Db3B5OwotICAgIGlmIChzb3VyY2VPcGVyYXRpb25NYXNrLmNvbnRhaW5z
KERyYWdPcGVyYXRpb25MaW5rKSkKLSAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25MaW5rOwor
ICAgIGlmIChzb3VyY2VPcGVyYXRpb25NYXNrLmNvbnRhaW5zKERyYWdPcGVyYXRpb246OkNvcHkp
KQorICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbjo6Q29weTsKKyAgICBpZiAoc291cmNlT3Bl
cmF0aW9uTWFzay5jb250YWlucyhEcmFnT3BlcmF0aW9uOjpMaW5rKSkKKyAgICAgICAgcmV0dXJu
IERyYWdPcGVyYXRpb246Okxpbms7CiAgICAgCiAgICAgLy8gRklYTUU6IERvZXMgSUUgcmVhbGx5
IHJldHVybiAiZ2VuZXJpYyIgZXZlbiBpZiBubyBvcGVyYXRpb25zIHdlcmUgYWxsb3dlZCBieSB0
aGUgc291cmNlPwotICAgIHJldHVybiBEcmFnT3BlcmF0aW9uR2VuZXJpYzsKKyAgICByZXR1cm4g
RHJhZ09wZXJhdGlvbjo6R2VuZXJpYzsKIH0KIAogYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5REhU
TUxEcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgT3B0aW9uYWw8RHJhZ09wZXJhdGlvbj4m
IG9wZXJhdGlvbikKQEAgLTk5Nyw3ICs5OTcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFy
dERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgT3B0aW9uU2V0PERyYQog
ICAgICAgICAvLyBTZWxlY3Rpb24sIGltYWdlLCBhbmQgbGluayBkcmFncyByZWNlaXZlIGEgZGVm
YXVsdCBzZXQgb2YgYWxsb3dlZCBkcmFnIG9wZXJhdGlvbnMgdGhhdAogICAgICAgICAvLyBmb2xs
b3dzIGZyb206CiAgICAgICAgIC8vIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVu
ay9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0/cmV2PTQ4NTI2I0wzNDMwCi0gICAg
ICAgIG1fc291cmNlRHJhZ09wZXJhdGlvbk1hc2suYWRkKHsgRHJhZ09wZXJhdGlvbkdlbmVyaWMs
IERyYWdPcGVyYXRpb25Db3B5IH0pOworICAgICAgICBtX3NvdXJjZURyYWdPcGVyYXRpb25NYXNr
LmFkZCh7IERyYWdPcGVyYXRpb246OkdlbmVyaWMsIERyYWdPcGVyYXRpb246OkNvcHkgfSk7CiAg
ICAgfQogCiAgICAgQVNTRVJUKHN0YXRlLnNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKaW5kZXggMGUwMTM0NWFiMjQ2ZjU5ODA5MzViNmQ2YTg2MWZmOGIzNTEzYzY5NC4u
MTRiY2M1YjhmMmVjZmEyZWI0NWQ0NzM5ZDZhZjY3MDA3Mzg4YjUwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjMzNywxMSArMjMzNywxMSBAQCBzdGF0aWMgYm9vbCB0
YXJnZXRJc0ZyYW1lKE5vZGUqIHRhcmdldCwgRnJhbWUqJiBmcmFtZSkKIHN0YXRpYyBPcHRpb25h
bDxEcmFnT3BlcmF0aW9uPiBjb252ZXJ0RHJvcFpvbmVPcGVyYXRpb25Ub0RyYWdPcGVyYXRpb24o
Y29uc3QgU3RyaW5nJiBkcmFnT3BlcmF0aW9uKQogewogICAgIGlmIChkcmFnT3BlcmF0aW9uID09
ICJjb3B5IikKLSAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Db3B5OworICAgICAgICByZXR1
cm4gRHJhZ09wZXJhdGlvbjo6Q29weTsKICAgICBpZiAoZHJhZ09wZXJhdGlvbiA9PSAibW92ZSIp
Ci0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTW92ZTsKKyAgICAgICAgcmV0dXJuIERyYWdP
cGVyYXRpb246Ok1vdmU7CiAgICAgaWYgKGRyYWdPcGVyYXRpb24gPT0gImxpbmsiKQotICAgICAg
ICByZXR1cm4gRHJhZ09wZXJhdGlvbkxpbms7CisgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9u
OjpMaW5rOwogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKQEAgLTIzNDksOSArMjM0OSw5
IEBAIHN0YXRpYyBTdHJpbmcgY29udmVydERyYWdPcGVyYXRpb25Ub0Ryb3Bab25lT3BlcmF0aW9u
KE9wdGlvbmFsPERyYWdPcGVyYXRpb24+IG9wCiB7CiAgICAgaWYgKG9wZXJhdGlvbikgewogICAg
ICAgICBzd2l0Y2ggKCpvcGVyYXRpb24pIHsKLSAgICAgICAgY2FzZSBEcmFnT3BlcmF0aW9uTW92
ZToKKyAgICAgICAgY2FzZSBEcmFnT3BlcmF0aW9uOjpNb3ZlOgogICAgICAgICAgICAgcmV0dXJu
ICJtb3ZlIl9zOwotICAgICAgICBjYXNlIERyYWdPcGVyYXRpb25MaW5rOgorICAgICAgICBjYXNl
IERyYWdPcGVyYXRpb246Okxpbms6CiAgICAgICAgICAgICByZXR1cm4gImxpbmsiX3M7CiAgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Z3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAppbmRleCBkNzFhYjFkZmU0NGFhYjZhMmM5NWNjNjI1
ZTJhZjg2YjQzNDQ3OTZiLi42NjBiYTk1ZTRlMjEwMjA0MzJlNjhhZjRhYzhiMzA2NTBjYTM1NjNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwCkBA
IC01NCw3ICs1NCw3IEBAIE9wdGlvbmFsPERyYWdPcGVyYXRpb24+IERyYWdDb250cm9sbGVyOjpk
cmFnT3BlcmF0aW9uKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKICAgICAvLyBGSVhNRTog
VGhpcyBsb2dpYyBpcyBpbmNvbXBsZXRlCiAgICAgaWYgKGRyYWdEYXRhLmNvbnRhaW5zVVJMKCkp
Ci0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uQ29weTsKKyAgICAgICAgcmV0dXJuIERyYWdP
cGVyYXRpb246OkNvcHk7CiAKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9EcmFnQ29udHJvbGxlck1hYy5tbQppbmRleCBjNjAzZmJkZGE0Mzdj
ZGE4YWQzODQ1M2E3ZDU1NmZkNGY1NDk0Zjc2Li5iZDk4NTA3YjBhMzc0ODk2NTNmOGFmYjc5OGQ3
OTI4MzE1YTgzMGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9EcmFnQ29u
dHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9EcmFnQ29udHJvbGxl
ck1hYy5tbQpAQCAtNzksNyArNzksNyBAQCBPcHRpb25hbDxEcmFnT3BlcmF0aW9uPiBEcmFnQ29u
dHJvbGxlcjo6ZHJhZ09wZXJhdGlvbihjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBpZiAoIW1fZG9jdW1lbnRVbmRlck1vdXNlIHx8
ICghKGRyYWdEYXRhLmZsYWdzKCkgJiAoRHJhZ0FwcGxpY2F0aW9uSGFzQXR0YWNoZWRTaGVldCB8
IERyYWdBcHBsaWNhdGlvbklzU291cmNlKSkpKQotICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlv
bkNvcHk7CisgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uOjpDb3B5OwogCiAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIH0KQEAgLTExMSw3ICsxMTEsNyBAQCBEcmFnT3BlcmF0aW9uIERyYWdD
b250cm9sbGVyOjpwbGF0Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKCkKIHsKICAgICAvLyBPbiBp
T1MsIFVJS2l0IHNraXBzIHRoZSAtcGVyZm9ybURyb3AgaW52b2NhdGlvbiBhbHRvZ2V0aGVyIGlm
IE1PVkUgaXMgZm9yYmlkZGVuLgogICAgIC8vIFRodXMsIGlmIE1PVkUgaXMgbm90IGFsbG93ZWQg
aW4gdGhlIGRyYWcgc291cmNlIG9wZXJhdGlvbiBtYXNrLCBmYWxsIGJhY2sgdG8gb25seSBvdGhl
ciBhbGxvd2FibGUgYWN0aW9uLCBDT1BZLgotICAgIHJldHVybiBEcmFnT3BlcmF0aW9uQ29weTsK
KyAgICByZXR1cm4gRHJhZ09wZXJhdGlvbjo6Q29weTsKIH0KIAogdm9pZCBEcmFnQ29udHJvbGxl
cjo6dXBkYXRlU3VwcG9ydGVkVHlwZUlkZW50aWZpZXJzRm9yRHJhZ0hhbmRsaW5nTWV0aG9kKERy
YWdIYW5kbGluZ01ldGhvZCBkcmFnSGFuZGxpbmdNZXRob2QsIGNvbnN0IERyYWdEYXRhJiBkcmFn
RGF0YSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250
cm9sbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2lu
LmNwcAppbmRleCA4ZGI4YzlkNWJiNmY0NmU2YTg1OWU3ZWE5MjI2YTIzYzI5YjcxYzg3Li4zMmY1
YjNhZTQxNTRhMzdmZDhjMjI3OWNhMDE1OWI1NjdjYjY5NDViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCkBAIC00OSw3ICs0OSw3IEBAIE9wdGlv
bmFsPERyYWdPcGVyYXRpb24+IERyYWdDb250cm9sbGVyOjpkcmFnT3BlcmF0aW9uKGNvbnN0IERy
YWdEYXRhJiBkcmFnRGF0YSkKICAgICAvLyBJZiB0aGlzIGNhbiBiZSBkZXRlcm1pbmVkIGZyb20g
d2l0aGluIFdlYkNvcmUgb3BlcmF0aW9uRm9yRHJhZyBjYW4gYmUgcHVsbGVkIGludG8KICAgICAv
LyBXZWJDb3JlIGl0c2VsZi4KICAgICBpZiAoZHJhZ0RhdGEuY29udGFpbnNVUkwoKSAmJiAhbV9k
aWRJbml0aWF0ZURyYWcpCi0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uQ29weTsKKyAgICAg
ICAgcmV0dXJuIERyYWdPcGVyYXRpb246OkNvcHk7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGll
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAppbmRl
eCA1ZTdmMmYzNjI3OTk0MGJjMWJlYTFmOTU2MzBlOGQxNjM2Zjc2MzgwLi44MTYwZjYzNTdiMGQ2
MDY3ZDFiZGZjNzdiMzhlMzIxMThiZjY5MzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR3RrVXRpbGl0aWVzLmNwcApAQCAtMTUzLDExICsxNTMsMTEgQEAgT3B0aW9uU2V0PERy
YWdPcGVyYXRpb24+IGdka0RyYWdBY3Rpb25Ub0RyYWdPcGVyYXRpb24oR2RrRHJhZ0FjdGlvbiBn
ZGtBY3Rpb24pCiB7CiAgICAgT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+IGFjdGlvbjsKICAgICBp
ZiAoZ2RrQWN0aW9uICYgR0RLX0FDVElPTl9DT1BZKQotICAgICAgICBhY3Rpb24uYWRkKERyYWdP
cGVyYXRpb25Db3B5KTsKKyAgICAgICAgYWN0aW9uLmFkZChEcmFnT3BlcmF0aW9uOjpDb3B5KTsK
ICAgICBpZiAoZ2RrQWN0aW9uICYgR0RLX0FDVElPTl9NT1ZFKQotICAgICAgICBhY3Rpb24uYWRk
KERyYWdPcGVyYXRpb25Nb3ZlKTsKKyAgICAgICAgYWN0aW9uLmFkZChEcmFnT3BlcmF0aW9uOjpN
b3ZlKTsKICAgICBpZiAoZ2RrQWN0aW9uICYgR0RLX0FDVElPTl9MSU5LKQotICAgICAgICBhY3Rp
b24uYWRkKERyYWdPcGVyYXRpb25MaW5rKTsKKyAgICAgICAgYWN0aW9uLmFkZChEcmFnT3BlcmF0
aW9uOjpMaW5rKTsKIAogICAgIHJldHVybiBhY3Rpb247CiB9CkBAIC0xNjYsMTEgKzE2NiwxMSBA
QCBHZGtEcmFnQWN0aW9uIGRyYWdPcGVyYXRpb25Ub0dka0RyYWdBY3Rpb25zKE9wdGlvblNldDxE
cmFnT3BlcmF0aW9uPiBjb3JlQWN0aW9uKQogewogICAgIHVuc2lnbmVkIGdka0FjdGlvbiA9IDA7
CiAKLSAgICBpZiAoY29yZUFjdGlvbi5jb250YWlucyhEcmFnT3BlcmF0aW9uQ29weSkpCisgICAg
aWYgKGNvcmVBY3Rpb24uY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6Q29weSkpCiAgICAgICAgIGdk
a0FjdGlvbiB8PSBHREtfQUNUSU9OX0NPUFk7Ci0gICAgaWYgKGNvcmVBY3Rpb24uY29udGFpbnMo
RHJhZ09wZXJhdGlvbk1vdmUpKQorICAgIGlmIChjb3JlQWN0aW9uLmNvbnRhaW5zKERyYWdPcGVy
YXRpb246Ok1vdmUpKQogICAgICAgICBnZGtBY3Rpb24gfD0gR0RLX0FDVElPTl9NT1ZFOwotICAg
IGlmIChjb3JlQWN0aW9uLmNvbnRhaW5zKERyYWdPcGVyYXRpb25MaW5rKSkKKyAgICBpZiAoY29y
ZUFjdGlvbi5jb250YWlucyhEcmFnT3BlcmF0aW9uOjpMaW5rKSkKICAgICAgICAgZ2RrQWN0aW9u
IHw9IEdES19BQ1RJT05fTElOSzsKIAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxHZGtEcmFnQWN0
aW9uPihnZGtBY3Rpb24pOwpAQCAtMTc4LDExICsxNzgsMTEgQEAgR2RrRHJhZ0FjdGlvbiBkcmFn
T3BlcmF0aW9uVG9HZGtEcmFnQWN0aW9ucyhPcHRpb25TZXQ8RHJhZ09wZXJhdGlvbj4gY29yZUFj
dGlvbikKIAogR2RrRHJhZ0FjdGlvbiBkcmFnT3BlcmF0aW9uVG9TaW5nbGVHZGtEcmFnQWN0aW9u
KE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPiBjb3JlQWN0aW9uKQogewotICAgIGlmIChjb3JlQWN0
aW9uLmNvbnRhaW5zKERyYWdPcGVyYXRpb25Db3B5KSkKKyAgICBpZiAoY29yZUFjdGlvbi5jb250
YWlucyhEcmFnT3BlcmF0aW9uOjpDb3B5KSkKICAgICAgICAgcmV0dXJuIEdES19BQ1RJT05fQ09Q
WTsKLSAgICBpZiAoY29yZUFjdGlvbi5jb250YWlucyhEcmFnT3BlcmF0aW9uTW92ZSkpCisgICAg
aWYgKGNvcmVBY3Rpb24uY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6TW92ZSkpCiAgICAgICAgIHJl
dHVybiBHREtfQUNUSU9OX01PVkU7Ci0gICAgaWYgKGNvcmVBY3Rpb24uY29udGFpbnMoRHJhZ09w
ZXJhdGlvbkxpbmspKQorICAgIGlmIChjb3JlQWN0aW9uLmNvbnRhaW5zKERyYWdPcGVyYXRpb246
OkxpbmspKQogICAgICAgICByZXR1cm4gR0RLX0FDVElPTl9MSU5LOwogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxHZGtEcmFnQWN0aW9uPigwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9fV0tEcmFnQWN0aW9uc0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQ29jb2EvX1dLRHJhZ0FjdGlvbnNJbnRlcm5hbC5oCmluZGV4IDg5Nzg5ZjM4
MmE5ZTY3NGY5MTFlOWM4OTE0Y2JhNzZhOWZlYzkwMWUuLmQ2ZDFhM2JlNDAxZTEyODJiMTkwZjhk
MTMxYzk3NThkNWFiM2MwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9fV0tEcmFnQWN0aW9uc0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS0RyYWdBY3Rpb25zSW50ZXJuYWwuaApAQCAtNDUsMTcgKzQ1LDE3IEBAIGlu
bGluZSBPcHRpb25TZXQ8V2ViQ29yZTo6RHJhZ09wZXJhdGlvbj4gY29yZURyYWdPcGVyYXRpb25N
YXNrKE5TRHJhZ09wZXJhdGlvbiBvCiB7CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkRyYWdPcGVy
YXRpb24+IHJlc3VsdDsKICAgICBpZiAob3BlcmF0aW9uICYgTlNEcmFnT3BlcmF0aW9uQ29weSkK
LSAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uQ29weSk7CisgICAgICAg
IHJlc3VsdC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6Q29weSk7CiAgICAgaWYgKG9wZXJh
dGlvbiAmIE5TRHJhZ09wZXJhdGlvbkxpbmspCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbkxpbmspOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVy
YXRpb246OkxpbmspOwogICAgIGlmIChvcGVyYXRpb24gJiBOU0RyYWdPcGVyYXRpb25HZW5lcmlj
KQotICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb25HZW5lcmljKTsKKyAg
ICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpHZW5lcmljKTsKICAgICBp
ZiAob3BlcmF0aW9uICYgTlNEcmFnT3BlcmF0aW9uUHJpdmF0ZSkKLSAgICAgICAgcmVzdWx0LmFk
ZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uUHJpdmF0ZSk7CisgICAgICAgIHJlc3VsdC5hZGQoV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbjo6UHJpdmF0ZSk7CiAgICAgaWYgKG9wZXJhdGlvbiAmIE5TRHJh
Z09wZXJhdGlvbk1vdmUpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlv
bk1vdmUpOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb246Ok1vdmUp
OwogICAgIGlmIChvcGVyYXRpb24gJiBOU0RyYWdPcGVyYXRpb25EZWxldGUpCi0gICAgICAgIHJl
c3VsdC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlvbkRlbGV0ZSk7CisgICAgICAgIHJlc3VsdC5h
ZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6RGVsZXRlKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQogI2VuZGlmIC8vIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCmluZGV4IDY5YjYyZGUyNTJmMWQzMGY5MmI1MTgxNzY4NmJmMTA4MmQ4
NDA0NzAuLjExNDViZDQ0MDA3NzAzNzdhNjg3NTk2NjRlZjNkYjkxMDIwNDhjMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0zOTYyLDE3ICsz
OTYyLDE3IEBAIHN0YXRpYyBOU0RyYWdPcGVyYXRpb24ga2l0KE9wdGlvbmFsPFdlYkNvcmU6OkRy
YWdPcGVyYXRpb24+IGRyYWdPcGVyYXRpb24pCiAgICAgICAgIHJldHVybiBOU0RyYWdPcGVyYXRp
b25Ob25lOwogCiAgICAgc3dpdGNoICgqZHJhZ09wZXJhdGlvbikgewotICAgIGNhc2UgV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbkNvcHk6CisgICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpD
b3B5OgogICAgICAgICByZXR1cm4gTlNEcmFnT3BlcmF0aW9uQ29weTsKLSAgICBjYXNlIFdlYkNv
cmU6OkRyYWdPcGVyYXRpb25MaW5rOgorICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6
TGluazoKICAgICAgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlvbkxpbms7Ci0gICAgY2FzZSBXZWJD
b3JlOjpEcmFnT3BlcmF0aW9uR2VuZXJpYzoKKyAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRp
b246OkdlbmVyaWM6CiAgICAgICAgIHJldHVybiBOU0RyYWdPcGVyYXRpb25HZW5lcmljOwotICAg
IGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvblByaXZhdGU6CisgICAgY2FzZSBXZWJDb3JlOjpE
cmFnT3BlcmF0aW9uOjpQcml2YXRlOgogICAgICAgICByZXR1cm4gTlNEcmFnT3BlcmF0aW9uUHJp
dmF0ZTsKLSAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Nb3ZlOgorICAgIGNhc2UgV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbjo6TW92ZToKICAgICAgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlv
bk1vdmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uRGVsZXRlOgorICAgIGNhc2Ug
V2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6RGVsZXRlOgogICAgICAgICByZXR1cm4gTlNEcmFnT3Bl
cmF0aW9uRGVsZXRlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMjkyNzYxY2M4NTNlNzg5
Yzc5MmUyYTliOTA4NmE0ZmRlZGQxNTE0OC4uZDJiNGY3MzhlZDRlOTk2ZTY4NWIzNmNlMDc5NzJl
YmYyY2NjOTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03MzEwLDkgKzczMTAsOSBAQCAtICh2b2lk
KWNvbXB1dGVDbGllbnRBbmRHbG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNl
c3Npb24+KXNlc3Npb24gbwogc3RhdGljIFVJRHJvcE9wZXJhdGlvbiBkcm9wT3BlcmF0aW9uRm9y
V2ViQ29yZURyYWdPcGVyYXRpb24oT3B0aW9uYWw8V2ViQ29yZTo6RHJhZ09wZXJhdGlvbj4gb3Bl
cmF0aW9uKQogewogICAgIGlmIChvcGVyYXRpb24pIHsKLSAgICAgICAgaWYgKCpvcGVyYXRpb24g
PT0gV2ViQ29yZTo6RHJhZ09wZXJhdGlvbk1vdmUpCisgICAgICAgIGlmICgqb3BlcmF0aW9uID09
IFdlYkNvcmU6OkRyYWdPcGVyYXRpb246Ok1vdmUpCiAgICAgICAgICAgICByZXR1cm4gVUlEcm9w
T3BlcmF0aW9uTW92ZTsKLSAgICAgICAgaWYgKCpvcGVyYXRpb24gPT0gV2ViQ29yZTo6RHJhZ09w
ZXJhdGlvbkNvcHkpCisgICAgICAgIGlmICgqb3BlcmF0aW9uID09IFdlYkNvcmU6OkRyYWdPcGVy
YXRpb246OkNvcHkpCiAgICAgICAgICAgICByZXR1cm4gVUlEcm9wT3BlcmF0aW9uQ29weTsKICAg
ICB9CiAgICAgcmV0dXJuIFVJRHJvcE9wZXJhdGlvbkNhbmNlbDsKQEAgLTczMjQsMTEgKzczMjQs
MTEgQEAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+IGNvcmVEcmFnT3Bl
cmF0aW9uRm9yVUlEcm9wT3BlcmF0aW9uKFVJRHIKICAgICBjYXNlIFVJRHJvcE9wZXJhdGlvbkNh
bmNlbDoKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBjYXNlIFVJRHJvcE9wZXJh
dGlvbkZvcmJpZGRlbjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Qcml2
YXRlOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6UHJpdmF0ZTsKICAg
ICBjYXNlIFVJRHJvcE9wZXJhdGlvbkNvcHk6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpEcmFn
T3BlcmF0aW9uQ29weTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OkNv
cHk7CiAgICAgY2FzZSBVSURyb3BPcGVyYXRpb25Nb3ZlOgotICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbk1vdmU7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpEcmFnT3BlcmF0
aW9uOjpNb3ZlOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwpAQCAtNzM0Miw3ICs3MzQyLDcgQEAgLSAoV2ViQ29yZTo6RHJhZ0RhdGEp
ZHJhZ0RhdGFGb3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gZHJhZ0Rl
c3QKIAogICAgIGF1dG8gZHJhZ09wZXJhdGlvbk1hc2sgPSBXZWJDb3JlOjphbnlEcmFnT3BlcmF0
aW9uKCk7CiAgICAgaWYgKCFzZXNzaW9uLmFsbG93c01vdmVPcGVyYXRpb24pCi0gICAgICAgIGRy
YWdPcGVyYXRpb25NYXNrLnJlbW92ZShXZWJDb3JlOjpEcmFnT3BlcmF0aW9uTW92ZSk7CisgICAg
ICAgIGRyYWdPcGVyYXRpb25NYXNrLnJlbW92ZShXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpNb3Zl
KTsKICAgICByZXR1cm4geyBzZXNzaW9uLCBXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQoY2xpZW50
KSwgV2ViQ29yZTo6cm91bmRlZEludFBvaW50KGdsb2JhbCksIGRyYWdPcGVyYXRpb25NYXNrLCBX
ZWJDb3JlOjpEcmFnQXBwbGljYXRpb25Ob25lLCBXZWJLaXQ6OmNvcmVEcmFnRGVzdGluYXRpb25B
Y3Rpb25NYXNrKGRyYWdEZXN0aW5hdGlvbkFjdGlvbikgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMzhlNzkwOTE1MWJmNzg2
ZWU1MmUwZjE3ODcwM2FhMWRiM2I1NGI2Ny4uODU0YzA0ZmUyYTEwNGVhZjhhMjQwODdiNzQzNGRj
ZjhhMDY1OWNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCkBAIC00MjMzLDE3ICs0MjMzLDE3IEBAIC0gKHZvaWQpdG91Y2g6KFdlYkV2ZW50
ICopZXZlbnQKIHN0YXRpYyBOU0RyYWdPcGVyYXRpb24ga2l0KE9wdGlvblNldDxXZWJDb3JlOjpE
cmFnT3BlcmF0aW9uPiBvcGVyYXRpb25NYXNrKQogewogICAgIE5TRHJhZ09wZXJhdGlvbiByZXN1
bHQgPSBOU0RyYWdPcGVyYXRpb25Ob25lOwotICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5z
KFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Db3B5KSkKKyAgICBpZiAob3BlcmF0aW9uTWFzay5jb250
YWlucyhXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpDb3B5KSkKICAgICAgICAgcmVzdWx0IHw9IE5T
RHJhZ09wZXJhdGlvbkNvcHk7Ci0gICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbkxpbmspKQorICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zKFdl
YkNvcmU6OkRyYWdPcGVyYXRpb246OkxpbmspKQogICAgICAgICByZXN1bHQgfD0gTlNEcmFnT3Bl
cmF0aW9uTGluazsKLSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhXZWJDb3JlOjpEcmFn
T3BlcmF0aW9uR2VuZXJpYykpCisgICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbjo6R2VuZXJpYykpCiAgICAgICAgIHJlc3VsdCB8PSBOU0RyYWdPcGVy
YXRpb25HZW5lcmljOwotICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zKFdlYkNvcmU6OkRy
YWdPcGVyYXRpb25Qcml2YXRlKSkKKyAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhXZWJD
b3JlOjpEcmFnT3BlcmF0aW9uOjpQcml2YXRlKSkKICAgICAgICAgcmVzdWx0IHw9IE5TRHJhZ09w
ZXJhdGlvblByaXZhdGU7Ci0gICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbk1vdmUpKQorICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zKFdlYkNv
cmU6OkRyYWdPcGVyYXRpb246Ok1vdmUpKQogICAgICAgICByZXN1bHQgfD0gTlNEcmFnT3BlcmF0
aW9uTW92ZTsKLSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhXZWJDb3JlOjpEcmFnT3Bl
cmF0aW9uRGVsZXRlKSkKKyAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhXZWJDb3JlOjpE
cmFnT3BlcmF0aW9uOjpEZWxldGUpKQogICAgICAgICByZXN1bHQgfD0gTlNEcmFnT3BlcmF0aW9u
RGVsZXRlOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMDk3Njc3ZDlkYWJjODc4MDljMWNjMGRkNGQ1NzhlNzNj
Y2M3YzFkMy4uMmMyODY5YjljNTM5YTdmMzAyMmFhMWI5NjAyZTA1ZjQwMTZmNDhhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNjA1LDIyICs2MDUs
MjIgQEAgT3B0aW9uU2V0PFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+IGNvcmVEcmFnT3BlcmF0aW9u
TWFzayhDb2NvYURyYWdPcGVyYXRpb24gb3BlcmEKIAogI2lmIFVTRShBUFBLSVQpCiAgICAgaWYg
KG9wZXJhdGlvbiAmIE5TRHJhZ09wZXJhdGlvbkNvcHkpCi0gICAgICAgIHJlc3VsdC5hZGQoV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbkNvcHkpOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRy
YWdPcGVyYXRpb246OkNvcHkpOwogICAgIGlmIChvcGVyYXRpb24gJiBOU0RyYWdPcGVyYXRpb25M
aW5rKQotICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb25MaW5rKTsKKyAg
ICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpMaW5rKTsKICAgICBpZiAo
b3BlcmF0aW9uICYgTlNEcmFnT3BlcmF0aW9uR2VuZXJpYykKLSAgICAgICAgcmVzdWx0LmFkZChX
ZWJDb3JlOjpEcmFnT3BlcmF0aW9uR2VuZXJpYyk7CisgICAgICAgIHJlc3VsdC5hZGQoV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbjo6R2VuZXJpYyk7CiAgICAgaWYgKG9wZXJhdGlvbiAmIE5TRHJhZ09w
ZXJhdGlvblByaXZhdGUpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlv
blByaXZhdGUpOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OlBy
aXZhdGUpOwogICAgIGlmIChvcGVyYXRpb24gJiBOU0RyYWdPcGVyYXRpb25Nb3ZlKQotICAgICAg
ICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Nb3ZlKTsKKyAgICAgICAgcmVzdWx0
LmFkZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpNb3ZlKTsKICAgICBpZiAob3BlcmF0aW9uICYg
TlNEcmFnT3BlcmF0aW9uRGVsZXRlKQotICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdP
cGVyYXRpb25EZWxldGUpOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRp
b246OkRlbGV0ZSk7CiAjZWxzZQogICAgIGlmIChvcGVyYXRpb24gJiBfVUlEcmFnT3BlcmF0aW9u
Q29weSkKLSAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uQ29weSk7Cisg
ICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6Q29weSk7CiAgICAgaWYg
KG9wZXJhdGlvbiAmIF9VSURyYWdPcGVyYXRpb25Nb3ZlKQotICAgICAgICByZXN1bHQuYWRkKFdl
YkNvcmU6OkRyYWdPcGVyYXRpb25Nb3ZlKTsKKyAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpE
cmFnT3BlcmF0aW9uOjpNb3ZlKTsKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQogCiAgICAgcmV0dXJu
IHJlc3VsdDsKQEAgLTYzMywxNyArNjMzLDE3IEBAIHN0YXRpYyBOU0RyYWdPcGVyYXRpb24ga2l0
KE9wdGlvbmFsPFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+IGRyYWdPcGVyYXRpb24pCiAgICAgICAg
IHJldHVybiBOU0RyYWdPcGVyYXRpb25Ob25lOwogCiAgICAgc3dpdGNoICgqZHJhZ09wZXJhdGlv
bikgewotICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbkNvcHk6CisgICAgY2FzZSBXZWJD
b3JlOjpEcmFnT3BlcmF0aW9uOjpDb3B5OgogICAgICAgICByZXR1cm4gTlNEcmFnT3BlcmF0aW9u
Q29weTsKLSAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25MaW5rOgorICAgIGNhc2UgV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbjo6TGluazoKICAgICAgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlv
bkxpbms7Ci0gICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uR2VuZXJpYzoKKyAgICBjYXNl
IFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OkdlbmVyaWM6CiAgICAgICAgIHJldHVybiBOU0RyYWdP
cGVyYXRpb25HZW5lcmljOwotICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvblByaXZhdGU6
CisgICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpQcml2YXRlOgogICAgICAgICByZXR1
cm4gTlNEcmFnT3BlcmF0aW9uUHJpdmF0ZTsKLSAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRp
b25Nb3ZlOgorICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6TW92ZToKICAgICAgICAg
cmV0dXJuIE5TRHJhZ09wZXJhdGlvbk1vdmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0
aW9uRGVsZXRlOgorICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6RGVsZXRlOgogICAg
ICAgICByZXR1cm4gTlNEcmFnT3BlcmF0aW9uRGVsZXRlOwogICAgIH0KIApAQCAtNjU3LDE3ICs2
NTcsMTcgQEAgc3RhdGljIF9VSURyYWdPcGVyYXRpb24ga2l0KE9wdGlvbmFsPFdlYkNvcmU6OkRy
YWdPcGVyYXRpb24+IGRyYWdPcGVyYXRpb24pCiAgICAgICAgIHJldHVybiBfVUlEcmFnT3BlcmF0
aW9uTm9uZTsKIAogICAgIHN3aXRjaCAoKmRyYWdPcGVyYXRpb24pIHsKLSAgICBjYXNlIFdlYkNv
cmU6OkRyYWdPcGVyYXRpb25Db3B5OgorICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6
Q29weToKICAgICAgICAgcmV0dXJuIF9VSURyYWdPcGVyYXRpb25Db3B5OwotICAgIGNhc2UgV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbkxpbms6CisgICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9u
OjpMaW5rOgogICAgICAgICByZXR1cm4gX1VJRHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpEcmFnT3BlcmF0aW9uR2VuZXJpYzoKKyAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVy
YXRpb246OkdlbmVyaWM6CiAgICAgICAgIHJldHVybiBfVUlEcmFnT3BlcmF0aW9uTW92ZTsKLSAg
ICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Qcml2YXRlOgorICAgIGNhc2UgV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbjo6UHJpdmF0ZToKICAgICAgICAgcmV0dXJuIF9VSURyYWdPcGVyYXRpb25O
b25lOwotICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbk1vdmU6CisgICAgY2FzZSBXZWJD
b3JlOjpEcmFnT3BlcmF0aW9uOjpNb3ZlOgogICAgICAgICByZXR1cm4gX1VJRHJhZ09wZXJhdGlv
bk1vdmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uRGVsZXRlOgorICAgIGNhc2Ug
V2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6RGVsZXRlOgogICAgICAgICByZXR1cm4gX1VJRHJhZ09w
ZXJhdGlvbk5vbmU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCmluZGV4IGU5YjY1ZmE3NTliZDUx
NDA0YTM3MjY3YTEwOWFlZmEwNDg1ZTVkMzAuLjViMTkzYTdkYWEzMDZmNjUzZTkwM2NiZmE3MmUx
ZWEzM2YwMTVlY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCkBAIC00NywxMyArNDcsMTMgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiBzdGF0aWMgRFdPUkQgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25N
YXNrVG9EcmFnQ3Vyc29ycyhPcHRpb25TZXQ8RHJhZ09wZXJhdGlvbj4gb3BlcmF0aW9uTWFzaykK
IHsKICAgICBEV09SRCByZXN1bHQgPSBEUk9QRUZGRUNUX05PTkU7Ci0gICAgaWYgKG9wZXJhdGlv
bk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbkNvcHkpKQorICAgIGlmIChvcGVyYXRpb25NYXNr
LmNvbnRhaW5zKERyYWdPcGVyYXRpb246OkNvcHkpKQogICAgICAgICByZXN1bHQgfD0gRFJPUEVG
RkVDVF9DT1BZOyAKLSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhEcmFnT3BlcmF0aW9u
TGluaykpCisgICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6TGlu
aykpCiAgICAgICAgIHJlc3VsdCB8PSBEUk9QRUZGRUNUX0xJTks7IAotICAgIGlmIChvcGVyYXRp
b25NYXNrLmNvbnRhaW5zKERyYWdPcGVyYXRpb25Nb3ZlKSkKKyAgICBpZiAob3BlcmF0aW9uTWFz
ay5jb250YWlucyhEcmFnT3BlcmF0aW9uOjpNb3ZlKSkKICAgICAgICAgcmVzdWx0IHw9IERST1BF
RkZFQ1RfTU9WRTsKLSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhEcmFnT3BlcmF0aW9u
R2VuZXJpYykpCisgICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6
R2VuZXJpYykpCiAgICAgICAgIHJlc3VsdCB8PSBEUk9QRUZGRUNUX01PVkU7CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KQEAgLTE2NSwxMSArMTY1LDExIEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6c3Rh
cnREcmFnKERyYWdJdGVtIGl0ZW0sIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYK
ICAgICAgICAgT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+IG9wZXJhdGlvbjsKICAgICAgICAgaWYg
KGhyID09IERSQUdEUk9QX1NfRFJPUCkgewogICAgICAgICAgICAgaWYgKGVmZmVjdCAmIERST1BF
RkZFQ1RfQ09QWSkKLSAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uQ29w
eTsKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uOjpDb3B5OwogICAg
ICAgICAgICAgZWxzZSBpZiAoZWZmZWN0ICYgRFJPUEVGRkVDVF9MSU5LKQotICAgICAgICAgICAg
ICAgIG9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25MaW5rOworICAgICAgICAgICAgICAgIG9wZXJh
dGlvbiA9IERyYWdPcGVyYXRpb246Okxpbms7CiAgICAgICAgICAgICBlbHNlIGlmIChlZmZlY3Qg
JiBEUk9QRUZGRUNUX01PVkUpCi0gICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gRHJhZ09wZXJh
dGlvbk1vdmU7CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbjo6TW92
ZTsKICAgICAgICAgfQogICAgICAgICBmcmFtZS5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5k
ZWRBdChnZW5lcmF0ZU1vdXNlRXZlbnQobV93ZWJWaWV3LCBmYWxzZSksIG9wZXJhdGlvbik7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA0MmRjZDI4OGJkYTZkYTIx
ODExZGIzMmEyNTNhMTk3MjBmYzkxNDVlLi4zN2UxZTAyZTI3NTgyMzE3YTE2ZWQzYWMxODA5ZDE1
MmE1MTQ3MzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtNTg0OCwxMyAr
NTg0OCwxMyBAQCBzdGF0aWMgRFdPUkQgZHJhZ09wZXJhdGlvblRvRHJhZ0N1cnNvcihPcHRpb25h
bDxEcmFnT3BlcmF0aW9uPiBvcGVyYXRpb24pCiAgICAgICAgIHJldHVybiBEUk9QRUZGRUNUX05P
TkU7CiAKICAgICBEV09SRCByZXN1bHQgPSBEUk9QRUZGRUNUX05PTkU7Ci0gICAgaWYgKCpvcGVy
YXRpb24gPT0gRHJhZ09wZXJhdGlvbkNvcHkpCisgICAgaWYgKCpvcGVyYXRpb24gPT0gRHJhZ09w
ZXJhdGlvbjo6Q29weSkKICAgICAgICAgcmVzdWx0ID0gRFJPUEVGRkVDVF9DT1BZOwotICAgIGVs
c2UgaWYgKCpvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkxpbmspCisgICAgZWxzZSBpZiAoKm9w
ZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uOjpMaW5rKQogICAgICAgICByZXN1bHQgPSBEUk9QRUZG
RUNUX0xJTks7Ci0gICAgZWxzZSBpZiAoKm9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTW92ZSkK
KyAgICBlbHNlIGlmICgqb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb246Ok1vdmUpCiAgICAgICAg
IHJlc3VsdCA9IERST1BFRkZFQ1RfTU9WRTsKLSAgICBlbHNlIGlmICgqb3BlcmF0aW9uID09IERy
YWdPcGVyYXRpb25HZW5lcmljKQorICAgIGVsc2UgaWYgKCpvcGVyYXRpb24gPT0gRHJhZ09wZXJh
dGlvbjo6R2VuZXJpYykKICAgICAgICAgcmVzdWx0ID0gRFJPUEVGRkVDVF9NT1ZFOyAvLyBUaGlz
IGFwcGVhcnMgdG8gYmUgdGhlIEZpcmVmb3ggYmVoYXZpb3VyLgogICAgIHJldHVybiByZXN1bHQ7
CiB9CkBAIC01ODcxLDExICs1ODcxLDExIEBAIE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPiBXZWJW
aWV3OjprZXlTdGF0ZVRvRHJhZ09wZXJhdGlvbihEV09SRCBncmZLZXlTdGF0ZSkgY29uCiAgICAg
YXV0byBvcGVyYXRpb25NYXNrID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLnNvdXJjZURyYWdP
cGVyYXRpb25NYXNrKCk7CiAKICAgICBpZiAoKGdyZktleVN0YXRlICYgKE1LX0NPTlRST0wgfCBN
S19TSElGVCkpID09IChNS19DT05UUk9MIHwgTUtfU0hJRlQpKQotICAgICAgICBvcGVyYXRpb25N
YXNrID0geyBEcmFnT3BlcmF0aW9uTGluayB9OworICAgICAgICBvcGVyYXRpb25NYXNrID0geyBE
cmFnT3BlcmF0aW9uOjpMaW5rIH07CiAgICAgZWxzZSBpZiAoKGdyZktleVN0YXRlICYgTUtfQ09O
VFJPTCkgPT0gTUtfQ09OVFJPTCkKLSAgICAgICAgb3BlcmF0aW9uTWFzayA9IHsgRHJhZ09wZXJh
dGlvbkNvcHkgfTsKKyAgICAgICAgb3BlcmF0aW9uTWFzayA9IHsgRHJhZ09wZXJhdGlvbjo6Q29w
eSB9OwogICAgIGVsc2UgaWYgKChncmZLZXlTdGF0ZSAmIE1LX1NISUZUKSA9PSBNS19TSElGVCkK
LSAgICAgICAgb3BlcmF0aW9uTWFzayA9IHsgRHJhZ09wZXJhdGlvbkdlbmVyaWMgfTsKKyAgICAg
ICAgb3BlcmF0aW9uTWFzayA9IHsgRHJhZ09wZXJhdGlvbjo6R2VuZXJpYyB9OwogCiAgICAgcmV0
dXJuIG9wZXJhdGlvbk1hc2s7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMjI5NzViYjZkNzJmZGNmM2Q2MWFiMzIzYzU2YzMyMDVkOGJhY2M1
Yi4uMzE5MmIxOWNjMWFiMmNkNDI1NDZkOWIwNDYzYjU3ZmIzOTBlM2MwZSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIwLTA2LTA2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAg
W0lQQ10gQWRvcHQgZW51bSBjbGFzcyBmb3IgRHJhZ09wZXJhdGlvbgorICAgICAgICA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMjEyODcwPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQwNjk5NDA+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL2RvLXdlYmNvcmUtcmVuYW1lOgorICAgICAgICAtIERvIERyYWdPcGVyYXRpb24gcmVuYW1l
cy4KKwogMjAyMC0wNi0wNiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyNjI0NTYpOiBbaU9TIERlYnVnXSBUZXN0V2ViS2l0QVBJLldLV2Vi
Vmlld0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLlBpY3R1cmVJblBpY3R1cmUgaXMgZnJlcXVl
bnRseSB0aW1pbmcgb3V0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2RvLXdlYmNvcmUtcmVu
YW1lIGIvVG9vbHMvU2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZQppbmRleCAwY2NkZGEyYTA2ZTEw
ZDk3YWQyM2Y5M2JkZGRmZWJmMzdiMmQxOTI4Li4yYTkxZTU3ZTVhZjA1OGYxMWVlM2IxMGY0Yzhi
ZjVjZTk2ODIyYzQzIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1l
CisrKyBiL1Rvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUKQEAgLTEsNiArMSw2IEBACiAj
IS91c3IvYmluL2VudiBwZXJsCiAKLSMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA2LTIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMDIsNyArMTAyLDEyIEBAIHN1YiB3YW50ZWQKIG15ICRpc0RPTVR5cGVSZW5hbWUg
PSAwOwogbXkgJXJlbmFtZXMgPSAoCiAgICAgIyBSZW5hbWVzIGdvIGhlcmUgaW4gdGhlIGZvcm0g
b2Y6Ci0gICAgImZsYWdJc0F0b21pYyIgPT4gImZsYWdJc0F0b20iLAorICAgICJEcmFnT3BlcmF0
aW9uQ29weSIgPT4gIkRyYWdPcGVyYXRpb246OkNvcHkiLAorICAgICJEcmFnT3BlcmF0aW9uTGlu
ayIgPT4gIkRyYWdPcGVyYXRpb246OkxpbmsiLAorICAgICJEcmFnT3BlcmF0aW9uR2VuZXJpYyIg
PT4gIkRyYWdPcGVyYXRpb246OkdlbmVyaWMiLAorICAgICJEcmFnT3BlcmF0aW9uUHJpdmF0ZSIg
PT4gIkRyYWdPcGVyYXRpb246OlByaXZhdGUiLAorICAgICJEcmFnT3BlcmF0aW9uTW92ZSIgPT4g
IkRyYWdPcGVyYXRpb246Ok1vdmUiLAorICAgICJEcmFnT3BlcmF0aW9uRGVsZXRlIiA9PiAiRHJh
Z09wZXJhdGlvbjo6RGVsZXRlIiwKICk7CiAKIG15ICVyZW5hbWVzQ29udGVtcGxhdGVkRm9yVGhl
RnV0dXJlID0gKAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401270</attachid>
            <date>2020-06-06 11:30:35 -0700</date>
            <delta_ts>2020-06-08 13:07:06 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-212870-20200606113104.patch</filename>
            <type>text/plain</type>
            <size>38825</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVmNjBlMjIwMjM3YTNh
MjlmMTAzNjkzMzAzZjE3OTUzMTIwN2JkMi4uNDJhODMwZDliZThiZjhlZDY4YzEzMDFkYTc0OGMz
YzRlZGJmOGQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA2LTA2ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgW0lQQ10gQWRvcHQgZW51
bSBjbGFzcyBmb3IgRHJhZ09wZXJhdGlvbgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2Iv
MjEyODcwPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQwNjk5NDA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRyYWdPcEZyb21JRU9wKToKKyAgICAgICAgKFdlYkNvcmU6
OklFT3BGcm9tRHJhZ09wKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlcjo6c291cmNl
T3BlcmF0aW9uTWFzayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXI6OmRl
c3RpbmF0aW9uT3BlcmF0aW9uTWFzayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJh
bnNmZXI6OnNldFNvdXJjZU9wZXJhdGlvbk1hc2spOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVyOjpzZXREZXN0aW5hdGlvbk9wZXJhdGlvbk1hc2spOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YVRyYW5zZmVyOjpzZXRFZmZlY3RBbGxvd2VkKToKKyAgICAgICAgKiBwYWdlL0RyYWdBY3Rp
b25zLmg6CisgICAgICAgIChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uKToKKyAgICAgICAgLSBDb252
ZXJ0IHRvIGVudW0gY2xhc3MuCisgICAgICAgIChXZWJDb3JlOjphbnlEcmFnT3BlcmF0aW9uKToK
KyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRy
YWdDb250cm9sbGVyOjpwbGF0Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKToKKyAgICAgICAgKFdlYkNv
cmU6OmRlZmF1bHRPcGVyYXRpb25Gb3JEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250
cm9sbGVyOjpzdGFydERyYWcpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnREcm9wWm9uZU9wZXJhdGlvblRvRHJhZ09wZXJhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RHJhZ09wZXJhdGlvblRvRHJvcFpvbmVPcGVyYXRp
b24pOgorICAgICAgICAqIHBhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKiBwYWdl
L21hYy9EcmFnQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9s
bGVyOjpkcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpw
bGF0Zm9ybUdlbmVyaWNEcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKiBwYWdlL3dpbi9EcmFnQ29u
dHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZHJhZ09w
ZXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpnZGtEcmFnQWN0aW9uVG9EcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OmRyYWdPcGVyYXRpb25Ub0dka0RyYWdBY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OmRyYWdPcGVyYXRpb25Ub1NpbmdsZUdka0RyYWdBY3Rpb24pOgorCiAyMDIwLTA2LTA2ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwOiBVc2Ug
T3B0aW9uU2V0PERyYWdPcGVyYXRpb24+IGZvciBtYXNrIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjN2Uz
MTQzODdkMDdiOWE2OGQ1YjFhZmI1ZjYwZWUzMzBlOWQ5MjBiLi4wYjQ2OWUzY2I1ODcxYmJhN2U1
NGM3NjFlNTA1ZTI0ZTkzMWZjMDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA2
LTA2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgW0lQQ10g
QWRvcHQgZW51bSBjbGFzcyBmb3IgRHJhZ09wZXJhdGlvbgorICAgICAgICA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMjEyODcwPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQwNjk5NDA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgLSBSZW1vdmUgRklYTUUgbm93IHRoYXQgaXQncyBu
b3QgbmVlZGVkLgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLRHJhZ0FjdGlvbnNJbnRl
cm5hbC5oOgorICAgICAgICAoV2ViS2l0Ojpjb3JlRHJhZ09wZXJhdGlvbk1hc2spOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6a2l0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToK
KyAgICAgICAgKGRyb3BPcGVyYXRpb25Gb3JXZWJDb3JlRHJhZ09wZXJhdGlvbik6CisgICAgICAg
IChjb3JlRHJhZ09wZXJhdGlvbkZvclVJRHJvcE9wZXJhdGlvbik6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZHJhZ0RhdGFGb3JEcm9wU2Vzc2lvbjpkcmFnRGVzdGluYXRpb25BY3Rpb246XSk6
CisKIDIwMjAtMDYtMDYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVc2UgT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+IGZvciBtYXNrIHZhbHVlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGZkNmFhZDRhODI5YTBhYmQ2ZmM5Y2E0ZjljNzcyZDg5
ZjJkNzY1MjkuLjQ2Yjk2MGE5ODVmOTI1MjhjMDlkNDQ0ZGFjYjk5YmUyNTY0MzdiYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNi0wNiAgRGF2
aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtJUENdIEFkb3B0IGVu
dW0gY2xhc3MgZm9yIERyYWdPcGVyYXRpb24KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzIxMjg3MD4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MDY5OTQwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmll
dy5tbToKKyAgICAgICAgKGtpdCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoY29yZURyYWdPcGVyYXRpb25NYXNrKToKKyAgICAgICAgKGtpdCk6CisKIDIwMjAtMDYt
MDYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgT3B0
aW9uU2V0PERyYWdPcGVyYXRpb24+IGZvciBtYXNrIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IDQ4YzE1NGYyN2UwMmMyZGFhNTI5OGIxMmM2MDUzNGY3MmFmZmEzM2YuLjZi
YzE5NzA0NGU0NjVmMjIzNDViODdmM2Y0MjY2OGU1MWQ5Y2U3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNi0wNiAgRGF2aWQgS2lsemVyICA8
ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtJUENdIEFkb3B0IGVudW0gY2xhc3MgZm9y
IERyYWdPcGVyYXRpb24KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIxMjg3MD4KKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0MDY5OTQwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5j
cHA6CisgICAgICAgIChkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tUb0RyYWdDdXJzb3JzKToK
KyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6CisgICAgICAgICogV2ViVmlldy5j
cHA6CisgICAgICAgIChkcmFnT3BlcmF0aW9uVG9EcmFnQ3Vyc29yKToKKyAgICAgICAgKFdlYlZp
ZXc6OmtleVN0YXRlVG9EcmFnT3BlcmF0aW9uIGNvbnN0KToKKwogMjAyMC0wNi0wNiAgRGF2aWQg
S2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZvbGxvdy11cDogVXNlIE9w
dGlvblNldDxEcmFnT3BlcmF0aW9uPiBmb3IgbWFzayB2YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlci5jcHAKaW5kZXggZTZlYjk3OTg1MzhiYzQ2MjU3MTlkYWZmZjExMGIxMzExZjU2MmM4
OC4uYjQ1YTEzZGIwOGEwNjRjODQxMDNkNmU3YjhhZDNmYjJlZTAzMGY3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlci5jcHAKQEAgLTYwMywzOSArNjAzLDM5IEBAIHN0YXRpYyBPcHRpb25T
ZXQ8RHJhZ09wZXJhdGlvbj4gZHJhZ09wRnJvbUlFT3AoY29uc3QgU3RyaW5nJiBvcGVyYXRpb24p
CiAgICAgaWYgKG9wZXJhdGlvbiA9PSAibm9uZSIpCiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
aWYgKG9wZXJhdGlvbiA9PSAiY29weSIpCi0gICAgICAgIHJldHVybiB7IERyYWdPcGVyYXRpb25D
b3B5IH07CisgICAgICAgIHJldHVybiB7IERyYWdPcGVyYXRpb246OkNvcHkgfTsKICAgICBpZiAo
b3BlcmF0aW9uID09ICJsaW5rIikKLSAgICAgICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbkxpbmsg
fTsKKyAgICAgICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbjo6TGluayB9OwogICAgIGlmIChvcGVy
YXRpb24gPT0gIm1vdmUiKQotICAgICAgICByZXR1cm4geyBEcmFnT3BlcmF0aW9uR2VuZXJpYywg
RHJhZ09wZXJhdGlvbk1vdmUgfTsKKyAgICAgICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbjo6R2Vu
ZXJpYywgRHJhZ09wZXJhdGlvbjo6TW92ZSB9OwogICAgIGlmIChvcGVyYXRpb24gPT0gImNvcHlM
aW5rIikKLSAgICAgICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbkNvcHksIERyYWdPcGVyYXRpb25M
aW5rIH07CisgICAgICAgIHJldHVybiB7IERyYWdPcGVyYXRpb246OkNvcHksIERyYWdPcGVyYXRp
b246OkxpbmsgfTsKICAgICBpZiAob3BlcmF0aW9uID09ICJjb3B5TW92ZSIpCi0gICAgICAgIHJl
dHVybiB7IERyYWdPcGVyYXRpb25Db3B5LCBEcmFnT3BlcmF0aW9uR2VuZXJpYywgRHJhZ09wZXJh
dGlvbk1vdmUgfTsKKyAgICAgICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbjo6Q29weSwgRHJhZ09w
ZXJhdGlvbjo6R2VuZXJpYywgRHJhZ09wZXJhdGlvbjo6TW92ZSB9OwogICAgIGlmIChvcGVyYXRp
b24gPT0gImxpbmtNb3ZlIikKLSAgICAgICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbkxpbmssIERy
YWdPcGVyYXRpb25HZW5lcmljLCBEcmFnT3BlcmF0aW9uTW92ZSB9OworICAgICAgICByZXR1cm4g
eyBEcmFnT3BlcmF0aW9uOjpMaW5rLCBEcmFnT3BlcmF0aW9uOjpHZW5lcmljLCBEcmFnT3BlcmF0
aW9uOjpNb3ZlIH07CiAgICAgaWYgKG9wZXJhdGlvbiA9PSAiYWxsIikKICAgICAgICAgcmV0dXJu
IGFueURyYWdPcGVyYXRpb24oKTsKLSAgICByZXR1cm4geyBEcmFnT3BlcmF0aW9uUHJpdmF0ZSB9
OyAvLyBSZWFsbHkgYSBtYXJrZXIgZm9yICJubyBjb252ZXJzaW9uIi4KKyAgICByZXR1cm4geyBE
cmFnT3BlcmF0aW9uOjpQcml2YXRlIH07IC8vIFJlYWxseSBhIG1hcmtlciBmb3IgIm5vIGNvbnZl
cnNpb24iLgogfQogCiBzdGF0aWMgY29uc3QgY2hhciogSUVPcEZyb21EcmFnT3AoT3B0aW9uU2V0
PERyYWdPcGVyYXRpb24+IG9wZXJhdGlvbk1hc2spCiB7Ci0gICAgYm9vbCBpc0dlbmVyaWNNb3Zl
ID0gb3BlcmF0aW9uTWFzay5jb250YWluc0FueSh7IERyYWdPcGVyYXRpb25HZW5lcmljLCBEcmFn
T3BlcmF0aW9uTW92ZSB9KTsKKyAgICBib29sIGlzR2VuZXJpY01vdmUgPSBvcGVyYXRpb25NYXNr
LmNvbnRhaW5zQW55KHsgRHJhZ09wZXJhdGlvbjo6R2VuZXJpYywgRHJhZ09wZXJhdGlvbjo6TW92
ZSB9KTsKIAotICAgIGlmICgoaXNHZW5lcmljTW92ZSAmJiBvcGVyYXRpb25NYXNrLmNvbnRhaW5z
QWxsKHsgRHJhZ09wZXJhdGlvbkNvcHksIERyYWdPcGVyYXRpb25MaW5rIH0pKSB8fCBvcGVyYXRp
b25NYXNrLmNvbnRhaW5zQWxsKHsgRHJhZ09wZXJhdGlvbkNvcHksIERyYWdPcGVyYXRpb25MaW5r
LCBEcmFnT3BlcmF0aW9uR2VuZXJpYywgRHJhZ09wZXJhdGlvblByaXZhdGUsIERyYWdPcGVyYXRp
b25Nb3ZlLCBEcmFnT3BlcmF0aW9uRGVsZXRlIH0pKQorICAgIGlmICgoaXNHZW5lcmljTW92ZSAm
JiBvcGVyYXRpb25NYXNrLmNvbnRhaW5zQWxsKHsgRHJhZ09wZXJhdGlvbjo6Q29weSwgRHJhZ09w
ZXJhdGlvbjo6TGluayB9KSkgfHwgb3BlcmF0aW9uTWFzay5jb250YWluc0FsbCh7IERyYWdPcGVy
YXRpb246OkNvcHksIERyYWdPcGVyYXRpb246OkxpbmssIERyYWdPcGVyYXRpb246OkdlbmVyaWMs
IERyYWdPcGVyYXRpb246OlByaXZhdGUsIERyYWdPcGVyYXRpb246Ok1vdmUsIERyYWdPcGVyYXRp
b246OkRlbGV0ZSB9KSkKICAgICAgICAgcmV0dXJuICJhbGwiOwotICAgIGlmIChpc0dlbmVyaWNN
b3ZlICYmIG9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbkNvcHkpKQorICAgIGlm
IChpc0dlbmVyaWNNb3ZlICYmIG9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6
Q29weSkpCiAgICAgICAgIHJldHVybiAiY29weU1vdmUiOwotICAgIGlmIChpc0dlbmVyaWNNb3Zl
ICYmIG9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbkxpbmspKQorICAgIGlmIChp
c0dlbmVyaWNNb3ZlICYmIG9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6TGlu
aykpCiAgICAgICAgIHJldHVybiAibGlua01vdmUiOwotICAgIGlmIChvcGVyYXRpb25NYXNrLmNv
bnRhaW5zQWxsKHsgRHJhZ09wZXJhdGlvbkNvcHksIERyYWdPcGVyYXRpb25MaW5rIH0pKQorICAg
IGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zQWxsKHsgRHJhZ09wZXJhdGlvbjo6Q29weSwgRHJh
Z09wZXJhdGlvbjo6TGluayB9KSkKICAgICAgICAgcmV0dXJuICJjb3B5TGluayI7CiAgICAgaWYg
KGlzR2VuZXJpY01vdmUpCiAgICAgICAgIHJldHVybiAibW92ZSI7Ci0gICAgaWYgKG9wZXJhdGlv
bk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbkNvcHkpKQorICAgIGlmIChvcGVyYXRpb25NYXNr
LmNvbnRhaW5zKERyYWdPcGVyYXRpb246OkNvcHkpKQogICAgICAgICByZXR1cm4gImNvcHkiOwot
ICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zKERyYWdPcGVyYXRpb25MaW5rKSkKKyAgICBp
ZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhEcmFnT3BlcmF0aW9uOjpMaW5rKSkKICAgICAgICAg
cmV0dXJuICJsaW5rIjsKICAgICByZXR1cm4gIm5vbmUiOwogfQpAQCAtNjQzLDI2ICs2NDMsMjYg
QEAgc3RhdGljIGNvbnN0IGNoYXIqIElFT3BGcm9tRHJhZ09wKE9wdGlvblNldDxEcmFnT3BlcmF0
aW9uPiBvcGVyYXRpb25NYXNrKQogT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+IERhdGFUcmFuc2Zl
cjo6c291cmNlT3BlcmF0aW9uTWFzaygpIGNvbnN0CiB7CiAgICAgYXV0byBvcGVyYXRpb25NYXNr
ID0gZHJhZ09wRnJvbUlFT3AobV9lZmZlY3RBbGxvd2VkKTsKLSAgICBBU1NFUlQob3BlcmF0aW9u
TWFzayAhPSBEcmFnT3BlcmF0aW9uUHJpdmF0ZSk7CisgICAgQVNTRVJUKG9wZXJhdGlvbk1hc2sg
IT0gRHJhZ09wZXJhdGlvbjo6UHJpdmF0ZSk7CiAgICAgcmV0dXJuIG9wZXJhdGlvbk1hc2s7CiB9
CiAKIE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPiBEYXRhVHJhbnNmZXI6OmRlc3RpbmF0aW9uT3Bl
cmF0aW9uTWFzaygpIGNvbnN0CiB7CiAgICAgYXV0byBvcGVyYXRpb25NYXNrID0gZHJhZ09wRnJv
bUlFT3AobV9kcm9wRWZmZWN0KTsKLSAgICBBU1NFUlQob3BlcmF0aW9uTWFzayA9PSBEcmFnT3Bl
cmF0aW9uQ29weSB8fCBvcGVyYXRpb25NYXNrLmlzRW1wdHkoKSB8fCBvcGVyYXRpb25NYXNrID09
IERyYWdPcGVyYXRpb25MaW5rIHx8IG9wZXJhdGlvbk1hc2sgPT0gT3B0aW9uU2V0PERyYWdPcGVy
YXRpb24+KHsgRHJhZ09wZXJhdGlvbkdlbmVyaWMsIERyYWdPcGVyYXRpb25Nb3ZlIH0pIHx8IG9w
ZXJhdGlvbk1hc2suY29udGFpbnNBbGwoeyBEcmFnT3BlcmF0aW9uQ29weSwgRHJhZ09wZXJhdGlv
bkxpbmssIERyYWdPcGVyYXRpb25HZW5lcmljLCBEcmFnT3BlcmF0aW9uUHJpdmF0ZSwgRHJhZ09w
ZXJhdGlvbk1vdmUsIERyYWdPcGVyYXRpb25EZWxldGUgfSkpOworICAgIEFTU0VSVChvcGVyYXRp
b25NYXNrID09IERyYWdPcGVyYXRpb246OkNvcHkgfHwgb3BlcmF0aW9uTWFzay5pc0VtcHR5KCkg
fHwgb3BlcmF0aW9uTWFzayA9PSBEcmFnT3BlcmF0aW9uOjpMaW5rIHx8IG9wZXJhdGlvbk1hc2sg
PT0gT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+KHsgRHJhZ09wZXJhdGlvbjo6R2VuZXJpYywgRHJh
Z09wZXJhdGlvbjo6TW92ZSB9KSB8fCBvcGVyYXRpb25NYXNrLmNvbnRhaW5zQWxsKHsgRHJhZ09w
ZXJhdGlvbjo6Q29weSwgRHJhZ09wZXJhdGlvbjo6TGluaywgRHJhZ09wZXJhdGlvbjo6R2VuZXJp
YywgRHJhZ09wZXJhdGlvbjo6UHJpdmF0ZSwgRHJhZ09wZXJhdGlvbjo6TW92ZSwgRHJhZ09wZXJh
dGlvbjo6RGVsZXRlIH0pKTsKICAgICByZXR1cm4gb3BlcmF0aW9uTWFzazsKIH0KIAogdm9pZCBE
YXRhVHJhbnNmZXI6OnNldFNvdXJjZU9wZXJhdGlvbk1hc2soT3B0aW9uU2V0PERyYWdPcGVyYXRp
b24+IG9wZXJhdGlvbk1hc2spCiB7Ci0gICAgQVNTRVJUX0FSRyhvcGVyYXRpb25NYXNrLCBvcGVy
YXRpb25NYXNrICE9IERyYWdPcGVyYXRpb25Qcml2YXRlKTsKKyAgICBBU1NFUlRfQVJHKG9wZXJh
dGlvbk1hc2ssIG9wZXJhdGlvbk1hc2sgIT0gRHJhZ09wZXJhdGlvbjo6UHJpdmF0ZSk7CiAgICAg
bV9lZmZlY3RBbGxvd2VkID0gSUVPcEZyb21EcmFnT3Aob3BlcmF0aW9uTWFzayk7CiB9CiAKIHZv
aWQgRGF0YVRyYW5zZmVyOjpzZXREZXN0aW5hdGlvbk9wZXJhdGlvbk1hc2soT3B0aW9uU2V0PERy
YWdPcGVyYXRpb24+IG9wZXJhdGlvbk1hc2spCiB7Ci0gICAgQVNTRVJUX0FSRyhvcGVyYXRpb25N
YXNrLCBvcGVyYXRpb25NYXNrID09IERyYWdPcGVyYXRpb25Db3B5IHx8IG9wZXJhdGlvbk1hc2su
aXNFbXB0eSgpIHx8IG9wZXJhdGlvbk1hc2sgPT0gRHJhZ09wZXJhdGlvbkxpbmsgfHwgb3BlcmF0
aW9uTWFzayA9PSBEcmFnT3BlcmF0aW9uR2VuZXJpYyB8fCBvcGVyYXRpb25NYXNrID09IERyYWdP
cGVyYXRpb25Nb3ZlIHx8IG9wZXJhdGlvbk1hc2sgPT0gT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+
KHsgRHJhZ09wZXJhdGlvbkdlbmVyaWMsIERyYWdPcGVyYXRpb25Nb3ZlIH0pKTsKKyAgICBBU1NF
UlRfQVJHKG9wZXJhdGlvbk1hc2ssIG9wZXJhdGlvbk1hc2sgPT0gRHJhZ09wZXJhdGlvbjo6Q29w
eSB8fCBvcGVyYXRpb25NYXNrLmlzRW1wdHkoKSB8fCBvcGVyYXRpb25NYXNrID09IERyYWdPcGVy
YXRpb246OkxpbmsgfHwgb3BlcmF0aW9uTWFzayA9PSBEcmFnT3BlcmF0aW9uOjpHZW5lcmljIHx8
IG9wZXJhdGlvbk1hc2sgPT0gRHJhZ09wZXJhdGlvbjo6TW92ZSB8fCBvcGVyYXRpb25NYXNrID09
IE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPih7IERyYWdPcGVyYXRpb246OkdlbmVyaWMsIERyYWdP
cGVyYXRpb246Ok1vdmUgfSkpOwogICAgIG1fZHJvcEVmZmVjdCA9IElFT3BGcm9tRHJhZ09wKG9w
ZXJhdGlvbk1hc2spOwogfQogCkBAIC02OTgsNyArNjk4LDcgQEAgdm9pZCBEYXRhVHJhbnNmZXI6
OnNldEVmZmVjdEFsbG93ZWQoY29uc3QgU3RyaW5nJiBlZmZlY3QpCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIElnbm9yZSBhbnkgYXR0ZW1wdHMgdG8gc2V0IGl0IHRvIGFuIHVua25vd24gdmFs
dWUuCi0gICAgaWYgKGRyYWdPcEZyb21JRU9wKGVmZmVjdCkgPT0gRHJhZ09wZXJhdGlvblByaXZh
dGUpCisgICAgaWYgKGRyYWdPcEZyb21JRU9wKGVmZmVjdCkgPT0gRHJhZ09wZXJhdGlvbjo6UHJp
dmF0ZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFjYW5Xcml0ZURhdGEoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0FjdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0FjdGlvbnMuaAppbmRleCBmM2RkM2U1ZWEzOWQyZjJjZjBkZDI3YjZhNTk1NzU1
MGQwZTYyMjc0Li5lNzQ1NjM1MjMxYTliZWEwOWU4Nzg4Nzg3MmVkOWNlNGQyM2YxYmJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdBY3Rpb25zLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQWN0aW9ucy5oCkBAIC02MSwxOCArNjEsMTggQEAgdHlwZWRlZiBlbnVt
IHsKIH0gRHJhZ1NvdXJjZUFjdGlvbjsKIAogLy8gU2VlIE5TRHJhZ09wZXJhdGlvbiwgX1VJRHJh
Z09wZXJhdGlvbiBhbmQgVUlEcm9wT3BlcmF0aW9uLgotZW51bSBEcmFnT3BlcmF0aW9uIHsKLSAg
ICBEcmFnT3BlcmF0aW9uQ29weSAgICA9IDEsCi0gICAgRHJhZ09wZXJhdGlvbkxpbmsgICAgPSAy
LAotICAgIERyYWdPcGVyYXRpb25HZW5lcmljID0gNCwKLSAgICBEcmFnT3BlcmF0aW9uUHJpdmF0
ZSA9IDgsCi0gICAgRHJhZ09wZXJhdGlvbk1vdmUgICAgPSAxNiwKLSAgICBEcmFnT3BlcmF0aW9u
RGVsZXRlICA9IDMyLAorZW51bSBjbGFzcyBEcmFnT3BlcmF0aW9uIDogdWludDhfdCB7CisgICAg
Q29weSAgICA9IDEsCisgICAgTGluayAgICA9IDIsCisgICAgR2VuZXJpYyA9IDQsCisgICAgUHJp
dmF0ZSA9IDgsCisgICAgTW92ZSAgICA9IDE2LAorICAgIERlbGV0ZSAgPSAzMiwKIH07CiAKIGNv
bnN0ZXhwciBPcHRpb25TZXQ8RHJhZ09wZXJhdGlvbj4gYW55RHJhZ09wZXJhdGlvbigpCiB7Ci0g
ICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbkNvcHksIERyYWdPcGVyYXRpb25MaW5rLCBEcmFnT3Bl
cmF0aW9uR2VuZXJpYywgRHJhZ09wZXJhdGlvblByaXZhdGUsIERyYWdPcGVyYXRpb25Nb3ZlLCBE
cmFnT3BlcmF0aW9uRGVsZXRlIH07CisgICAgcmV0dXJuIHsgRHJhZ09wZXJhdGlvbjo6Q29weSwg
RHJhZ09wZXJhdGlvbjo6TGluaywgRHJhZ09wZXJhdGlvbjo6R2VuZXJpYywgRHJhZ09wZXJhdGlv
bjo6UHJpdmF0ZSwgRHJhZ09wZXJhdGlvbjo6TW92ZSwgRHJhZ09wZXJhdGlvbjo6RGVsZXRlIH07
CiB9CiAKIGVudW0gY2xhc3MgTWF5RXh0ZW5kRHJhZ1Nlc3Npb24gOiBib29sIHsgTm8sIFllcyB9
OwpAQCAtOTksMTIgKzk5LDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6RHJhZ0hhbmRsaW5nTWV0aG9kPiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OkRyYWdPcGVyYXRpb24+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAog
ICAgICAgICBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uLAotICAgICAgICBXZWJDb3JlOjpEcmFnT3Bl
cmF0aW9uQ29weSwKLSAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbkxpbmssCi0gICAgICAg
IFdlYkNvcmU6OkRyYWdPcGVyYXRpb25HZW5lcmljLAotICAgICAgICBXZWJDb3JlOjpEcmFnT3Bl
cmF0aW9uUHJpdmF0ZSwKLSAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbk1vdmUsCi0gICAg
ICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25EZWxldGUKKyAgICAgICAgV2ViQ29yZTo6RHJhZ09w
ZXJhdGlvbjo6Q29weSwKKyAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6TGluaywKKyAg
ICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6R2VuZXJpYywKKyAgICAgICAgV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbjo6UHJpdmF0ZSwKKyAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6
TW92ZSwKKyAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6RGVsZXRlCiAgICAgPjsKIH07
CiAKQEAgLTEyMCwxMiArMTIwLDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IE9wdGlvblNldFRyYWl0
czxXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24+IHsKIHRlbXBsYXRlPD4gc3RydWN0IE9w
dGlvblNldFRyYWl0czxXZWJDb3JlOjpEcmFnT3BlcmF0aW9uPiB7CiAgICAgdXNpbmcgdmFsdWVz
ID0gT3B0aW9uU2V0VmFsdWVzPAogICAgICAgICBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uLAotICAg
ICAgICBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uQ29weSwKLSAgICAgICAgV2ViQ29yZTo6RHJhZ09w
ZXJhdGlvbkxpbmssCi0gICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25HZW5lcmljLAotICAg
ICAgICBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uUHJpdmF0ZSwKLSAgICAgICAgV2ViQ29yZTo6RHJh
Z09wZXJhdGlvbk1vdmUsCi0gICAgICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25EZWxldGUKKyAg
ICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6Q29weSwKKyAgICAgICAgV2ViQ29yZTo6RHJh
Z09wZXJhdGlvbjo6TGluaywKKyAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6R2VuZXJp
YywKKyAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6UHJpdmF0ZSwKKyAgICAgICAgV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbjo6TW92ZSwKKyAgICAgICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlv
bjo6RGVsZXRlCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAKaW5kZXggYmZiYTkwODg0NmNhYjMzOWQzZmViY2FlZDQxODVlOTVjZTlmZjllOC4uMmYzMDIw
OGU1MDE1NmE1NTQwYTQzNTM5NzdlZWMzYTE0MzkzMDlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCBzdGF0aWMgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoY29uc3QgRHJhZ0RhdGEm
IGRyYQogCiBEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpwbGF0Zm9ybUdlbmVyaWNEcmFn
T3BlcmF0aW9uKCkKIHsKLSAgICByZXR1cm4gRHJhZ09wZXJhdGlvbk1vdmU7CisgICAgcmV0dXJu
IERyYWdPcGVyYXRpb246Ok1vdmU7CiB9CiAKICNlbmRpZgpAQCAtMzIxLDcgKzMyMSw3IEBAIE9w
dGlvbmFsPERyYWdPcGVyYXRpb24+IERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRl
ZChjb25zdCBEcmFnRGF0YSYgZHJhCiAgICAgICAgIGlmIChkcmFnT3BlcmF0aW9uKQogICAgICAg
ICAgICAgbV9kcmFnSGFuZGxpbmdNZXRob2QgPSBEcmFnSGFuZGxpbmdNZXRob2Q6OlBhZ2VMb2Fk
OwogICAgIH0gZWxzZSBpZiAobV9kcmFnSGFuZGxpbmdNZXRob2QgPT0gRHJhZ0hhbmRsaW5nTWV0
aG9kOjpTZXRDb2xvcikKLSAgICAgICAgZHJhZ09wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25Db3B5
OworICAgICAgICBkcmFnT3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbjo6Q29weTsKIAogICAgIHVw
ZGF0ZVN1cHBvcnRlZFR5cGVJZGVudGlmaWVyc0ZvckRyYWdIYW5kbGluZ01ldGhvZChtX2RyYWdI
YW5kbGluZ01ldGhvZCwgZHJhZ0RhdGEpOwogICAgIHJldHVybiBkcmFnT3BlcmF0aW9uOwpAQCAt
NDIyLDcgKzQyMiw3IEBAIERyYWdIYW5kbGluZ01ldGhvZCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9j
dW1lbnREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgT3B0CiAKICAgICBpZiAoZGVzdGlu
YXRpb25BY3Rpb25NYXNrLmNvbnRhaW5zKERyYWdEZXN0aW5hdGlvbkFjdGlvbjo6RWRpdCkgJiYg
Y2FuUHJvY2Vzc0RyYWcoZHJhZ0RhdGEpKSB7CiAgICAgICAgIGlmIChkcmFnRGF0YS5jb250YWlu
c0NvbG9yKCkpIHsKLSAgICAgICAgICAgIGRyYWdPcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uR2Vu
ZXJpYzsKKyAgICAgICAgICAgIGRyYWdPcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uOjpHZW5lcmlj
OwogICAgICAgICAgICAgcmV0dXJuIERyYWdIYW5kbGluZ01ldGhvZDo6U2V0Q29sb3I7CiAgICAg
ICAgIH0KIApAQCAtNDQ0LDcgKzQ0NCw3IEBAIERyYWdIYW5kbGluZ01ldGhvZCBEcmFnQ29udHJv
bGxlcjo6dHJ5RG9jdW1lbnREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgT3B0CiAgICAg
ICAgICAgICBjbGVhckRyYWdDYXJldCgpOwogCiAgICAgICAgIEZyYW1lKiBpbm5lckZyYW1lID0g
ZWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpOwotICAgICAgICBkcmFnT3BlcmF0aW9uID0gZHJh
Z0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24oKSwgZHJhZ0RhdGEpID8gRHJhZ09wZXJhdGlv
bk1vdmUgOiBEcmFnT3BlcmF0aW9uQ29weTsKKyAgICAgICAgZHJhZ09wZXJhdGlvbiA9IGRyYWdJ
c01vdmUoaW5uZXJGcmFtZS0+c2VsZWN0aW9uKCksIGRyYWdEYXRhKSA/IERyYWdPcGVyYXRpb246
Ok1vdmUgOiBEcmFnT3BlcmF0aW9uOjpDb3B5OwogCiAgICAgICAgIHVuc2lnbmVkIG51bWJlck9m
RmlsZXMgPSBkcmFnRGF0YS5udW1iZXJPZkZpbGVzKCk7CiAgICAgICAgIGlmIChtX2ZpbGVJbnB1
dEVsZW1lbnRVbmRlck1vdXNlKSB7CkBAIC02OTcsMjEgKzY5NywyMSBAQCBzdGF0aWMgT3B0aW9u
YWw8RHJhZ09wZXJhdGlvbj4gZGVmYXVsdE9wZXJhdGlvbkZvckRyYWcoT3B0aW9uU2V0PERyYWdP
cGVyYXRpb24+CiB7CiAgICAgLy8gVGhpcyBpcyBkZXNpZ25lZCB0byBtYXRjaCBJRSdzIG9wZXJh
dGlvbiBmYWxsYmFjayBmb3IgdGhlIGNhc2Ugd2hlcmUKICAgICAvLyB0aGUgcGFnZSBjYWxscyBw
cmV2ZW50RGVmYXVsdCgpIGluIGEgZHJhZyBldmVudCBidXQgZG9lc24ndCBzZXQgZHJvcEVmZmVj
dC4KLSAgICBpZiAoc291cmNlT3BlcmF0aW9uTWFzay5jb250YWluc0FsbCh7IERyYWdPcGVyYXRp
b25Db3B5LCBEcmFnT3BlcmF0aW9uTGluaywgRHJhZ09wZXJhdGlvbkdlbmVyaWMsIERyYWdPcGVy
YXRpb25Qcml2YXRlLCBEcmFnT3BlcmF0aW9uTW92ZSwgRHJhZ09wZXJhdGlvbkRlbGV0ZSB9KSkK
LSAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb25Db3B5OworICAgIGlmIChzb3VyY2VPcGVyYXRp
b25NYXNrLmNvbnRhaW5zQWxsKHsgRHJhZ09wZXJhdGlvbjo6Q29weSwgRHJhZ09wZXJhdGlvbjo6
TGluaywgRHJhZ09wZXJhdGlvbjo6R2VuZXJpYywgRHJhZ09wZXJhdGlvbjo6UHJpdmF0ZSwgRHJh
Z09wZXJhdGlvbjo6TW92ZSwgRHJhZ09wZXJhdGlvbjo6RGVsZXRlIH0pKQorICAgICAgICByZXR1
cm4gRHJhZ09wZXJhdGlvbjo6Q29weTsKICAgICBpZiAoc291cmNlT3BlcmF0aW9uTWFzay5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgaWYgKHNvdXJjZU9wZXJh
dGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbk1vdmUpKQotICAgICAgICByZXR1cm4gRHJh
Z09wZXJhdGlvbk1vdmU7Ci0gICAgaWYgKHNvdXJjZU9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJh
Z09wZXJhdGlvbkdlbmVyaWMpKQorICAgIGlmIChzb3VyY2VPcGVyYXRpb25NYXNrLmNvbnRhaW5z
KERyYWdPcGVyYXRpb246Ok1vdmUpKQorICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbjo6TW92
ZTsKKyAgICBpZiAoc291cmNlT3BlcmF0aW9uTWFzay5jb250YWlucyhEcmFnT3BlcmF0aW9uOjpH
ZW5lcmljKSkKICAgICAgICAgcmV0dXJuIERyYWdDb250cm9sbGVyOjpwbGF0Zm9ybUdlbmVyaWNE
cmFnT3BlcmF0aW9uKCk7Ci0gICAgaWYgKHNvdXJjZU9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJh
Z09wZXJhdGlvbkNvcHkpKQotICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbkNvcHk7Ci0gICAg
aWYgKHNvdXJjZU9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbkxpbmspKQotICAg
ICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbkxpbms7CisgICAgaWYgKHNvdXJjZU9wZXJhdGlvbk1h
c2suY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6Q29weSkpCisgICAgICAgIHJldHVybiBEcmFnT3Bl
cmF0aW9uOjpDb3B5OworICAgIGlmIChzb3VyY2VPcGVyYXRpb25NYXNrLmNvbnRhaW5zKERyYWdP
cGVyYXRpb246OkxpbmspKQorICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbjo6TGluazsKICAg
ICAKICAgICAvLyBGSVhNRTogRG9lcyBJRSByZWFsbHkgcmV0dXJuICJnZW5lcmljIiBldmVuIGlm
IG5vIG9wZXJhdGlvbnMgd2VyZSBhbGxvd2VkIGJ5IHRoZSBzb3VyY2U/Ci0gICAgcmV0dXJuIERy
YWdPcGVyYXRpb25HZW5lcmljOworICAgIHJldHVybiBEcmFnT3BlcmF0aW9uOjpHZW5lcmljOwog
fQogCiBib29sIERyYWdDb250cm9sbGVyOjp0cnlESFRNTERyYWcoY29uc3QgRHJhZ0RhdGEmIGRy
YWdEYXRhLCBPcHRpb25hbDxEcmFnT3BlcmF0aW9uPiYgb3BlcmF0aW9uKQpAQCAtOTk3LDcgKzk5
Nyw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3JjLCBjb25zdCBE
cmFnU3RhdGUmIHN0YXRlLCBPcHRpb25TZXQ8RHJhCiAgICAgICAgIC8vIFNlbGVjdGlvbiwgaW1h
Z2UsIGFuZCBsaW5rIGRyYWdzIHJlY2VpdmUgYSBkZWZhdWx0IHNldCBvZiBhbGxvd2VkIGRyYWcg
b3BlcmF0aW9ucyB0aGF0CiAgICAgICAgIC8vIGZvbGxvd3MgZnJvbToKICAgICAgICAgLy8gaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL1dlYktpdC9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbT9yZXY9NDg1MjYjTDM0MzAKLSAgICAgICAgbV9zb3VyY2VEcmFnT3BlcmF0aW9u
TWFzay5hZGQoeyBEcmFnT3BlcmF0aW9uR2VuZXJpYywgRHJhZ09wZXJhdGlvbkNvcHkgfSk7Cisg
ICAgICAgIG1fc291cmNlRHJhZ09wZXJhdGlvbk1hc2suYWRkKHsgRHJhZ09wZXJhdGlvbjo6R2Vu
ZXJpYywgRHJhZ09wZXJhdGlvbjo6Q29weSB9KTsKICAgICB9CiAKICAgICBBU1NFUlQoc3RhdGUu
c291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwZTAxMzQ1YWIy
NDZmNTk4MDkzNWI2ZDZhODYxZmY4YjM1MTNjNjk0Li4xNGJjYzViOGYyZWNmYTJlYjQ1ZDQ3Mzlk
NmFmNjcwMDczODhiNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0y
MzM3LDExICsyMzM3LDExIEBAIHN0YXRpYyBib29sIHRhcmdldElzRnJhbWUoTm9kZSogdGFyZ2V0
LCBGcmFtZSomIGZyYW1lKQogc3RhdGljIE9wdGlvbmFsPERyYWdPcGVyYXRpb24+IGNvbnZlcnRE
cm9wWm9uZU9wZXJhdGlvblRvRHJhZ09wZXJhdGlvbihjb25zdCBTdHJpbmcmIGRyYWdPcGVyYXRp
b24pCiB7CiAgICAgaWYgKGRyYWdPcGVyYXRpb24gPT0gImNvcHkiKQotICAgICAgICByZXR1cm4g
RHJhZ09wZXJhdGlvbkNvcHk7CisgICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uOjpDb3B5Owog
ICAgIGlmIChkcmFnT3BlcmF0aW9uID09ICJtb3ZlIikKLSAgICAgICAgcmV0dXJuIERyYWdPcGVy
YXRpb25Nb3ZlOworICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbjo6TW92ZTsKICAgICBpZiAo
ZHJhZ09wZXJhdGlvbiA9PSAibGluayIpCi0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTGlu
azsKKyAgICAgICAgcmV0dXJuIERyYWdPcGVyYXRpb246Okxpbms7CiAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKIH0KIApAQCAtMjM0OSw5ICsyMzQ5LDkgQEAgc3RhdGljIFN0cmluZyBjb252ZXJ0
RHJhZ09wZXJhdGlvblRvRHJvcFpvbmVPcGVyYXRpb24oT3B0aW9uYWw8RHJhZ09wZXJhdGlvbj4g
b3AKIHsKICAgICBpZiAob3BlcmF0aW9uKSB7CiAgICAgICAgIHN3aXRjaCAoKm9wZXJhdGlvbikg
ewotICAgICAgICBjYXNlIERyYWdPcGVyYXRpb25Nb3ZlOgorICAgICAgICBjYXNlIERyYWdPcGVy
YXRpb246Ok1vdmU6CiAgICAgICAgICAgICByZXR1cm4gIm1vdmUiX3M7Ci0gICAgICAgIGNhc2Ug
RHJhZ09wZXJhdGlvbkxpbms6CisgICAgICAgIGNhc2UgRHJhZ09wZXJhdGlvbjo6TGluazoKICAg
ICAgICAgICAgIHJldHVybiAibGluayJfczsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xs
ZXJHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3Bw
CmluZGV4IGQ3MWFiMWRmZTQ0YWFiNmEyYzk1Y2M2MjVlMmFmODZiNDM0NDc5NmIuLjY2MGJhOTVl
NGUyMTAyMDQzMmU2OGFmNGFjOGIzMDY1MGNhMzU2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgT3B0aW9uYWw8
RHJhZ09wZXJhdGlvbj4gRHJhZ0NvbnRyb2xsZXI6OmRyYWdPcGVyYXRpb24oY29uc3QgRHJhZ0Rh
dGEmIGRyYWdEYXRhKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIGlzIGluY29tcGxldGUK
ICAgICBpZiAoZHJhZ0RhdGEuY29udGFpbnNVUkwoKSkKLSAgICAgICAgcmV0dXJuIERyYWdPcGVy
YXRpb25Db3B5OworICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbjo6Q29weTsKIAogICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9EcmFnQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250
cm9sbGVyTWFjLm1tCmluZGV4IGM2MDNmYmRkYTQzN2NkYThhZDM4NDUzYTdkNTU2ZmQ0ZjU0OTRm
NzYuLmJkOTg1MDdiMGEzNzQ4OTY1M2Y4YWZiNzk4ZDc5MjgzMTVhODMwY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCkBAIC03OSw3ICs3OSw3IEBA
IE9wdGlvbmFsPERyYWdPcGVyYXRpb24+IERyYWdDb250cm9sbGVyOjpkcmFnT3BlcmF0aW9uKGNv
bnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAog
ICAgIGlmICghbV9kb2N1bWVudFVuZGVyTW91c2UgfHwgKCEoZHJhZ0RhdGEuZmxhZ3MoKSAmIChE
cmFnQXBwbGljYXRpb25IYXNBdHRhY2hlZFNoZWV0IHwgRHJhZ0FwcGxpY2F0aW9uSXNTb3VyY2Up
KSkpCi0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uQ29weTsKKyAgICAgICAgcmV0dXJuIERy
YWdPcGVyYXRpb246OkNvcHk7CiAKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQpAQCAtMTEx
LDcgKzExMSw3IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OnBsYXRmb3JtR2VuZXJp
Y0RyYWdPcGVyYXRpb24oKQogewogICAgIC8vIE9uIGlPUywgVUlLaXQgc2tpcHMgdGhlIC1wZXJm
b3JtRHJvcCBpbnZvY2F0aW9uIGFsdG9nZXRoZXIgaWYgTU9WRSBpcyBmb3JiaWRkZW4uCiAgICAg
Ly8gVGh1cywgaWYgTU9WRSBpcyBub3QgYWxsb3dlZCBpbiB0aGUgZHJhZyBzb3VyY2Ugb3BlcmF0
aW9uIG1hc2ssIGZhbGwgYmFjayB0byBvbmx5IG90aGVyIGFsbG93YWJsZSBhY3Rpb24sIENPUFku
Ci0gICAgcmV0dXJuIERyYWdPcGVyYXRpb25Db3B5OworICAgIHJldHVybiBEcmFnT3BlcmF0aW9u
OjpDb3B5OwogfQogCiB2b2lkIERyYWdDb250cm9sbGVyOjp1cGRhdGVTdXBwb3J0ZWRUeXBlSWRl
bnRpZmllcnNGb3JEcmFnSGFuZGxpbmdNZXRob2QoRHJhZ0hhbmRsaW5nTWV0aG9kIGRyYWdIYW5k
bGluZ01ldGhvZCwgY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDhkYjhjOWQ1YmI2ZjQ2
ZTZhODU5ZTdlYTkyMjZhMjNjMjliNzFjODcuLjMyZjViM2FlNDE1NGEzN2ZkOGMyMjc5Y2EwMTU5
YjU2N2NiNjk0NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250
cm9sbGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxl
cldpbi5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgT3B0aW9uYWw8RHJhZ09wZXJhdGlvbj4gRHJhZ0Nv
bnRyb2xsZXI6OmRyYWdPcGVyYXRpb24oY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgIC8v
IElmIHRoaXMgY2FuIGJlIGRldGVybWluZWQgZnJvbSB3aXRoaW4gV2ViQ29yZSBvcGVyYXRpb25G
b3JEcmFnIGNhbiBiZSBwdWxsZWQgaW50bwogICAgIC8vIFdlYkNvcmUgaXRzZWxmLgogICAgIGlm
IChkcmFnRGF0YS5jb250YWluc1VSTCgpICYmICFtX2RpZEluaXRpYXRlRHJhZykKLSAgICAgICAg
cmV0dXJuIERyYWdPcGVyYXRpb25Db3B5OworICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbjo6
Q29weTsKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwCmluZGV4IDVlN2YyZjM2Mjc5OTQwYmMxYmVhMWY5
NTYzMGU4ZDE2MzZmNzYzODAuLjgxNjBmNjM1N2IwZDYwNjdkMWJkZmM3N2IzOGUzMjExOGJmNjkz
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwCkBA
IC0xNTMsMTEgKzE1MywxMSBAQCBPcHRpb25TZXQ8RHJhZ09wZXJhdGlvbj4gZ2RrRHJhZ0FjdGlv
blRvRHJhZ09wZXJhdGlvbihHZGtEcmFnQWN0aW9uIGdka0FjdGlvbikKIHsKICAgICBPcHRpb25T
ZXQ8RHJhZ09wZXJhdGlvbj4gYWN0aW9uOwogICAgIGlmIChnZGtBY3Rpb24gJiBHREtfQUNUSU9O
X0NPUFkpCi0gICAgICAgIGFjdGlvbi5hZGQoRHJhZ09wZXJhdGlvbkNvcHkpOworICAgICAgICBh
Y3Rpb24uYWRkKERyYWdPcGVyYXRpb246OkNvcHkpOwogICAgIGlmIChnZGtBY3Rpb24gJiBHREtf
QUNUSU9OX01PVkUpCi0gICAgICAgIGFjdGlvbi5hZGQoRHJhZ09wZXJhdGlvbk1vdmUpOworICAg
ICAgICBhY3Rpb24uYWRkKERyYWdPcGVyYXRpb246Ok1vdmUpOwogICAgIGlmIChnZGtBY3Rpb24g
JiBHREtfQUNUSU9OX0xJTkspCi0gICAgICAgIGFjdGlvbi5hZGQoRHJhZ09wZXJhdGlvbkxpbmsp
OworICAgICAgICBhY3Rpb24uYWRkKERyYWdPcGVyYXRpb246OkxpbmspOwogCiAgICAgcmV0dXJu
IGFjdGlvbjsKIH0KQEAgLTE2NiwxMSArMTY2LDExIEBAIEdka0RyYWdBY3Rpb24gZHJhZ09wZXJh
dGlvblRvR2RrRHJhZ0FjdGlvbnMoT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+IGNvcmVBY3Rpb24p
CiB7CiAgICAgdW5zaWduZWQgZ2RrQWN0aW9uID0gMDsKIAotICAgIGlmIChjb3JlQWN0aW9uLmNv
bnRhaW5zKERyYWdPcGVyYXRpb25Db3B5KSkKKyAgICBpZiAoY29yZUFjdGlvbi5jb250YWlucyhE
cmFnT3BlcmF0aW9uOjpDb3B5KSkKICAgICAgICAgZ2RrQWN0aW9uIHw9IEdES19BQ1RJT05fQ09Q
WTsKLSAgICBpZiAoY29yZUFjdGlvbi5jb250YWlucyhEcmFnT3BlcmF0aW9uTW92ZSkpCisgICAg
aWYgKGNvcmVBY3Rpb24uY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6TW92ZSkpCiAgICAgICAgIGdk
a0FjdGlvbiB8PSBHREtfQUNUSU9OX01PVkU7Ci0gICAgaWYgKGNvcmVBY3Rpb24uY29udGFpbnMo
RHJhZ09wZXJhdGlvbkxpbmspKQorICAgIGlmIChjb3JlQWN0aW9uLmNvbnRhaW5zKERyYWdPcGVy
YXRpb246OkxpbmspKQogICAgICAgICBnZGtBY3Rpb24gfD0gR0RLX0FDVElPTl9MSU5LOwogCiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KGdka0FjdGlvbik7CkBAIC0xNzgs
MTEgKzE3OCwxMSBAQCBHZGtEcmFnQWN0aW9uIGRyYWdPcGVyYXRpb25Ub0dka0RyYWdBY3Rpb25z
KE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPiBjb3JlQWN0aW9uKQogCiBHZGtEcmFnQWN0aW9uIGRy
YWdPcGVyYXRpb25Ub1NpbmdsZUdka0RyYWdBY3Rpb24oT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+
IGNvcmVBY3Rpb24pCiB7Ci0gICAgaWYgKGNvcmVBY3Rpb24uY29udGFpbnMoRHJhZ09wZXJhdGlv
bkNvcHkpKQorICAgIGlmIChjb3JlQWN0aW9uLmNvbnRhaW5zKERyYWdPcGVyYXRpb246OkNvcHkp
KQogICAgICAgICByZXR1cm4gR0RLX0FDVElPTl9DT1BZOwotICAgIGlmIChjb3JlQWN0aW9uLmNv
bnRhaW5zKERyYWdPcGVyYXRpb25Nb3ZlKSkKKyAgICBpZiAoY29yZUFjdGlvbi5jb250YWlucyhE
cmFnT3BlcmF0aW9uOjpNb3ZlKSkKICAgICAgICAgcmV0dXJuIEdES19BQ1RJT05fTU9WRTsKLSAg
ICBpZiAoY29yZUFjdGlvbi5jb250YWlucyhEcmFnT3BlcmF0aW9uTGluaykpCisgICAgaWYgKGNv
cmVBY3Rpb24uY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6TGluaykpCiAgICAgICAgIHJldHVybiBH
REtfQUNUSU9OX0xJTks7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KDAp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjg3YmJm
ZjkyNWJlNjE0OTI1YjI3MWFlY2YyYzQ3MjY5MTJjYjg1ZS4uMWJmZDI4MjU5ZjhmYTFkOWMzNmFj
YmNiMzA0Y2VjNjNiMWQ0NzYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CkBAIC0yMDksNyArMjA5LDYgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zvcndh
cmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQnLAogICAg
ICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkRv
Y3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJywKLSAgICAgICAgJ1dlYkNvcmU6OkRyYWdPcGVyYXRp
b24nLCAgIyBGSVhNRTogUmVtb3ZlIGFmdGVyIGNvbnZlcnRpbmcgV2ViQ29yZTo6RHJhZ09wZXJh
dGlvbiB0byBlbnVtIGNsYXNzLgogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpM
aWJXZWJSVENTb2NrZXRJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9Db2NvYS9fV0tEcmFnQWN0aW9uc0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQ29jb2EvX1dLRHJhZ0FjdGlvbnNJbnRlcm5hbC5oCmluZGV4IDg5Nzg5ZjM4MmE5
ZTY3NGY5MTFlOWM4OTE0Y2JhNzZhOWZlYzkwMWUuLmQ2ZDFhM2JlNDAxZTEyODJiMTkwZjhkMTMx
Yzk3NThkNWFiM2MwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tEcmFnQWN0aW9uc0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0NvY29hL19XS0RyYWdBY3Rpb25zSW50ZXJuYWwuaApAQCAtNDUsMTcgKzQ1LDE3IEBAIGlubGlu
ZSBPcHRpb25TZXQ8V2ViQ29yZTo6RHJhZ09wZXJhdGlvbj4gY29yZURyYWdPcGVyYXRpb25NYXNr
KE5TRHJhZ09wZXJhdGlvbiBvCiB7CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkRyYWdPcGVyYXRp
b24+IHJlc3VsdDsKICAgICBpZiAob3BlcmF0aW9uICYgTlNEcmFnT3BlcmF0aW9uQ29weSkKLSAg
ICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uQ29weSk7CisgICAgICAgIHJl
c3VsdC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6Q29weSk7CiAgICAgaWYgKG9wZXJhdGlv
biAmIE5TRHJhZ09wZXJhdGlvbkxpbmspCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6RHJh
Z09wZXJhdGlvbkxpbmspOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRp
b246OkxpbmspOwogICAgIGlmIChvcGVyYXRpb24gJiBOU0RyYWdPcGVyYXRpb25HZW5lcmljKQot
ICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb25HZW5lcmljKTsKKyAgICAg
ICAgcmVzdWx0LmFkZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpHZW5lcmljKTsKICAgICBpZiAo
b3BlcmF0aW9uICYgTlNEcmFnT3BlcmF0aW9uUHJpdmF0ZSkKLSAgICAgICAgcmVzdWx0LmFkZChX
ZWJDb3JlOjpEcmFnT3BlcmF0aW9uUHJpdmF0ZSk7CisgICAgICAgIHJlc3VsdC5hZGQoV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbjo6UHJpdmF0ZSk7CiAgICAgaWYgKG9wZXJhdGlvbiAmIE5TRHJhZ09w
ZXJhdGlvbk1vdmUpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlvbk1v
dmUpOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb246Ok1vdmUpOwog
ICAgIGlmIChvcGVyYXRpb24gJiBOU0RyYWdPcGVyYXRpb25EZWxldGUpCi0gICAgICAgIHJlc3Vs
dC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlvbkRlbGV0ZSk7CisgICAgICAgIHJlc3VsdC5hZGQo
V2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6RGVsZXRlKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog
I2VuZGlmIC8vIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tCmluZGV4IDY5YjYyZGUyNTJmMWQzMGY5MmI1MTgxNzY4NmJmMTA4MmQ4NDA0
NzAuLjExNDViZDQ0MDA3NzAzNzdhNjg3NTk2NjRlZjNkYjkxMDIwNDhjMTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0zOTYyLDE3ICszOTYy
LDE3IEBAIHN0YXRpYyBOU0RyYWdPcGVyYXRpb24ga2l0KE9wdGlvbmFsPFdlYkNvcmU6OkRyYWdP
cGVyYXRpb24+IGRyYWdPcGVyYXRpb24pCiAgICAgICAgIHJldHVybiBOU0RyYWdPcGVyYXRpb25O
b25lOwogCiAgICAgc3dpdGNoICgqZHJhZ09wZXJhdGlvbikgewotICAgIGNhc2UgV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbkNvcHk6CisgICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpDb3B5
OgogICAgICAgICByZXR1cm4gTlNEcmFnT3BlcmF0aW9uQ29weTsKLSAgICBjYXNlIFdlYkNvcmU6
OkRyYWdPcGVyYXRpb25MaW5rOgorICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6TGlu
azoKICAgICAgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlvbkxpbms7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uR2VuZXJpYzoKKyAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246
OkdlbmVyaWM6CiAgICAgICAgIHJldHVybiBOU0RyYWdPcGVyYXRpb25HZW5lcmljOwotICAgIGNh
c2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvblByaXZhdGU6CisgICAgY2FzZSBXZWJDb3JlOjpEcmFn
T3BlcmF0aW9uOjpQcml2YXRlOgogICAgICAgICByZXR1cm4gTlNEcmFnT3BlcmF0aW9uUHJpdmF0
ZTsKLSAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Nb3ZlOgorICAgIGNhc2UgV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbjo6TW92ZToKICAgICAgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlvbk1v
dmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uRGVsZXRlOgorICAgIGNhc2UgV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbjo6RGVsZXRlOgogICAgICAgICByZXR1cm4gTlNEcmFnT3BlcmF0
aW9uRGVsZXRlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMjkyNzYxY2M4NTNlNzg5Yzc5
MmUyYTliOTA4NmE0ZmRlZGQxNTE0OC4uZDJiNGY3MzhlZDRlOTk2ZTY4NWIzNmNlMDc5NzJlYmYy
Y2NjOTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03MzEwLDkgKzczMTAsOSBAQCAtICh2b2lkKWNv
bXB1dGVDbGllbnRBbmRHbG9iYWxQb2ludHNGb3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Np
b24+KXNlc3Npb24gbwogc3RhdGljIFVJRHJvcE9wZXJhdGlvbiBkcm9wT3BlcmF0aW9uRm9yV2Vi
Q29yZURyYWdPcGVyYXRpb24oT3B0aW9uYWw8V2ViQ29yZTo6RHJhZ09wZXJhdGlvbj4gb3BlcmF0
aW9uKQogewogICAgIGlmIChvcGVyYXRpb24pIHsKLSAgICAgICAgaWYgKCpvcGVyYXRpb24gPT0g
V2ViQ29yZTo6RHJhZ09wZXJhdGlvbk1vdmUpCisgICAgICAgIGlmICgqb3BlcmF0aW9uID09IFdl
YkNvcmU6OkRyYWdPcGVyYXRpb246Ok1vdmUpCiAgICAgICAgICAgICByZXR1cm4gVUlEcm9wT3Bl
cmF0aW9uTW92ZTsKLSAgICAgICAgaWYgKCpvcGVyYXRpb24gPT0gV2ViQ29yZTo6RHJhZ09wZXJh
dGlvbkNvcHkpCisgICAgICAgIGlmICgqb3BlcmF0aW9uID09IFdlYkNvcmU6OkRyYWdPcGVyYXRp
b246OkNvcHkpCiAgICAgICAgICAgICByZXR1cm4gVUlEcm9wT3BlcmF0aW9uQ29weTsKICAgICB9
CiAgICAgcmV0dXJuIFVJRHJvcE9wZXJhdGlvbkNhbmNlbDsKQEAgLTczMjQsMTEgKzczMjQsMTEg
QEAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+IGNvcmVEcmFnT3BlcmF0
aW9uRm9yVUlEcm9wT3BlcmF0aW9uKFVJRHIKICAgICBjYXNlIFVJRHJvcE9wZXJhdGlvbkNhbmNl
bDoKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBjYXNlIFVJRHJvcE9wZXJhdGlv
bkZvcmJpZGRlbjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Qcml2YXRl
OworICAgICAgICByZXR1cm4gV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6UHJpdmF0ZTsKICAgICBj
YXNlIFVJRHJvcE9wZXJhdGlvbkNvcHk6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpEcmFnT3Bl
cmF0aW9uQ29weTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OkNvcHk7
CiAgICAgY2FzZSBVSURyb3BPcGVyYXRpb25Nb3ZlOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbk1vdmU7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpEcmFnT3BlcmF0aW9u
OjpNb3ZlOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwpAQCAtNzM0Miw3ICs3MzQyLDcgQEAgLSAoV2ViQ29yZTo6RHJhZ0RhdGEpZHJh
Z0RhdGFGb3JEcm9wU2Vzc2lvbjooaWQgPFVJRHJvcFNlc3Npb24+KXNlc3Npb24gZHJhZ0Rlc3QK
IAogICAgIGF1dG8gZHJhZ09wZXJhdGlvbk1hc2sgPSBXZWJDb3JlOjphbnlEcmFnT3BlcmF0aW9u
KCk7CiAgICAgaWYgKCFzZXNzaW9uLmFsbG93c01vdmVPcGVyYXRpb24pCi0gICAgICAgIGRyYWdP
cGVyYXRpb25NYXNrLnJlbW92ZShXZWJDb3JlOjpEcmFnT3BlcmF0aW9uTW92ZSk7CisgICAgICAg
IGRyYWdPcGVyYXRpb25NYXNrLnJlbW92ZShXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpNb3ZlKTsK
ICAgICByZXR1cm4geyBzZXNzaW9uLCBXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQoY2xpZW50KSwg
V2ViQ29yZTo6cm91bmRlZEludFBvaW50KGdsb2JhbCksIGRyYWdPcGVyYXRpb25NYXNrLCBXZWJD
b3JlOjpEcmFnQXBwbGljYXRpb25Ob25lLCBXZWJLaXQ6OmNvcmVEcmFnRGVzdGluYXRpb25BY3Rp
b25NYXNrKGRyYWdEZXN0aW5hdGlvbkFjdGlvbikgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMzhlNzkwOTE1MWJmNzg2ZWU1
MmUwZjE3ODcwM2FhMWRiM2I1NGI2Ny4uODU0YzA0ZmUyYTEwNGVhZjhhMjQwODdiNzQzNGRjZjhh
MDY1OWNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCkBAIC00MjMzLDE3ICs0MjMzLDE3IEBAIC0gKHZvaWQpdG91Y2g6KFdlYkV2ZW50ICop
ZXZlbnQKIHN0YXRpYyBOU0RyYWdPcGVyYXRpb24ga2l0KE9wdGlvblNldDxXZWJDb3JlOjpEcmFn
T3BlcmF0aW9uPiBvcGVyYXRpb25NYXNrKQogewogICAgIE5TRHJhZ09wZXJhdGlvbiByZXN1bHQg
PSBOU0RyYWdPcGVyYXRpb25Ob25lOwotICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zKFdl
YkNvcmU6OkRyYWdPcGVyYXRpb25Db3B5KSkKKyAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlu
cyhXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpDb3B5KSkKICAgICAgICAgcmVzdWx0IHw9IE5TRHJh
Z09wZXJhdGlvbkNvcHk7Ci0gICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbkxpbmspKQorICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zKFdlYkNv
cmU6OkRyYWdPcGVyYXRpb246OkxpbmspKQogICAgICAgICByZXN1bHQgfD0gTlNEcmFnT3BlcmF0
aW9uTGluazsKLSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhXZWJDb3JlOjpEcmFnT3Bl
cmF0aW9uR2VuZXJpYykpCisgICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbjo6R2VuZXJpYykpCiAgICAgICAgIHJlc3VsdCB8PSBOU0RyYWdPcGVyYXRp
b25HZW5lcmljOwotICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zKFdlYkNvcmU6OkRyYWdP
cGVyYXRpb25Qcml2YXRlKSkKKyAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uOjpQcml2YXRlKSkKICAgICAgICAgcmVzdWx0IHw9IE5TRHJhZ09wZXJh
dGlvblByaXZhdGU7Ci0gICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoV2ViQ29yZTo6RHJh
Z09wZXJhdGlvbk1vdmUpKQorICAgIGlmIChvcGVyYXRpb25NYXNrLmNvbnRhaW5zKFdlYkNvcmU6
OkRyYWdPcGVyYXRpb246Ok1vdmUpKQogICAgICAgICByZXN1bHQgfD0gTlNEcmFnT3BlcmF0aW9u
TW92ZTsKLSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhXZWJDb3JlOjpEcmFnT3BlcmF0
aW9uRGVsZXRlKSkKKyAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhXZWJDb3JlOjpEcmFn
T3BlcmF0aW9uOjpEZWxldGUpKQogICAgICAgICByZXN1bHQgfD0gTlNEcmFnT3BlcmF0aW9uRGVs
ZXRlOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggMDk3Njc3ZDlkYWJjODc4MDljMWNjMGRkNGQ1NzhlNzNjY2M3
YzFkMy4uMmMyODY5YjljNTM5YTdmMzAyMmFhMWI5NjAyZTA1ZjQwMTZmNDhhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNjA1LDIyICs2MDUsMjIg
QEAgT3B0aW9uU2V0PFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+IGNvcmVEcmFnT3BlcmF0aW9uTWFz
ayhDb2NvYURyYWdPcGVyYXRpb24gb3BlcmEKIAogI2lmIFVTRShBUFBLSVQpCiAgICAgaWYgKG9w
ZXJhdGlvbiAmIE5TRHJhZ09wZXJhdGlvbkNvcHkpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbkNvcHkpOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdP
cGVyYXRpb246OkNvcHkpOwogICAgIGlmIChvcGVyYXRpb24gJiBOU0RyYWdPcGVyYXRpb25MaW5r
KQotICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb25MaW5rKTsKKyAgICAg
ICAgcmVzdWx0LmFkZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpMaW5rKTsKICAgICBpZiAob3Bl
cmF0aW9uICYgTlNEcmFnT3BlcmF0aW9uR2VuZXJpYykKLSAgICAgICAgcmVzdWx0LmFkZChXZWJD
b3JlOjpEcmFnT3BlcmF0aW9uR2VuZXJpYyk7CisgICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6
RHJhZ09wZXJhdGlvbjo6R2VuZXJpYyk7CiAgICAgaWYgKG9wZXJhdGlvbiAmIE5TRHJhZ09wZXJh
dGlvblByaXZhdGUpCi0gICAgICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlvblBy
aXZhdGUpOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb246OlByaXZh
dGUpOwogICAgIGlmIChvcGVyYXRpb24gJiBOU0RyYWdPcGVyYXRpb25Nb3ZlKQotICAgICAgICBy
ZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Nb3ZlKTsKKyAgICAgICAgcmVzdWx0LmFk
ZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpNb3ZlKTsKICAgICBpZiAob3BlcmF0aW9uICYgTlNE
cmFnT3BlcmF0aW9uRGVsZXRlKQotICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVy
YXRpb25EZWxldGUpOworICAgICAgICByZXN1bHQuYWRkKFdlYkNvcmU6OkRyYWdPcGVyYXRpb246
OkRlbGV0ZSk7CiAjZWxzZQogICAgIGlmIChvcGVyYXRpb24gJiBfVUlEcmFnT3BlcmF0aW9uQ29w
eSkKLSAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpEcmFnT3BlcmF0aW9uQ29weSk7CisgICAg
ICAgIHJlc3VsdC5hZGQoV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6Q29weSk7CiAgICAgaWYgKG9w
ZXJhdGlvbiAmIF9VSURyYWdPcGVyYXRpb25Nb3ZlKQotICAgICAgICByZXN1bHQuYWRkKFdlYkNv
cmU6OkRyYWdPcGVyYXRpb25Nb3ZlKTsKKyAgICAgICAgcmVzdWx0LmFkZChXZWJDb3JlOjpEcmFn
T3BlcmF0aW9uOjpNb3ZlKTsKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQogCiAgICAgcmV0dXJuIHJl
c3VsdDsKQEAgLTYzMywxNyArNjMzLDE3IEBAIHN0YXRpYyBOU0RyYWdPcGVyYXRpb24ga2l0KE9w
dGlvbmFsPFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+IGRyYWdPcGVyYXRpb24pCiAgICAgICAgIHJl
dHVybiBOU0RyYWdPcGVyYXRpb25Ob25lOwogCiAgICAgc3dpdGNoICgqZHJhZ09wZXJhdGlvbikg
ewotICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbkNvcHk6CisgICAgY2FzZSBXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uOjpDb3B5OgogICAgICAgICByZXR1cm4gTlNEcmFnT3BlcmF0aW9uQ29w
eTsKLSAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25MaW5rOgorICAgIGNhc2UgV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbjo6TGluazoKICAgICAgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlvbkxp
bms7Ci0gICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uR2VuZXJpYzoKKyAgICBjYXNlIFdl
YkNvcmU6OkRyYWdPcGVyYXRpb246OkdlbmVyaWM6CiAgICAgICAgIHJldHVybiBOU0RyYWdPcGVy
YXRpb25HZW5lcmljOwotICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvblByaXZhdGU6Cisg
ICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpQcml2YXRlOgogICAgICAgICByZXR1cm4g
TlNEcmFnT3BlcmF0aW9uUHJpdmF0ZTsKLSAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25N
b3ZlOgorICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6TW92ZToKICAgICAgICAgcmV0
dXJuIE5TRHJhZ09wZXJhdGlvbk1vdmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9u
RGVsZXRlOgorICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6RGVsZXRlOgogICAgICAg
ICByZXR1cm4gTlNEcmFnT3BlcmF0aW9uRGVsZXRlOwogICAgIH0KIApAQCAtNjU3LDE3ICs2NTcs
MTcgQEAgc3RhdGljIF9VSURyYWdPcGVyYXRpb24ga2l0KE9wdGlvbmFsPFdlYkNvcmU6OkRyYWdP
cGVyYXRpb24+IGRyYWdPcGVyYXRpb24pCiAgICAgICAgIHJldHVybiBfVUlEcmFnT3BlcmF0aW9u
Tm9uZTsKIAogICAgIHN3aXRjaCAoKmRyYWdPcGVyYXRpb24pIHsKLSAgICBjYXNlIFdlYkNvcmU6
OkRyYWdPcGVyYXRpb25Db3B5OgorICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbjo6Q29w
eToKICAgICAgICAgcmV0dXJuIF9VSURyYWdPcGVyYXRpb25Db3B5OwotICAgIGNhc2UgV2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbkxpbms6CisgICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uOjpM
aW5rOgogICAgICAgICByZXR1cm4gX1VJRHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgY2FzZSBXZWJD
b3JlOjpEcmFnT3BlcmF0aW9uR2VuZXJpYzoKKyAgICBjYXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRp
b246OkdlbmVyaWM6CiAgICAgICAgIHJldHVybiBfVUlEcmFnT3BlcmF0aW9uTW92ZTsKLSAgICBj
YXNlIFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Qcml2YXRlOgorICAgIGNhc2UgV2ViQ29yZTo6RHJh
Z09wZXJhdGlvbjo6UHJpdmF0ZToKICAgICAgICAgcmV0dXJuIF9VSURyYWdPcGVyYXRpb25Ob25l
OwotICAgIGNhc2UgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbk1vdmU6CisgICAgY2FzZSBXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uOjpNb3ZlOgogICAgICAgICByZXR1cm4gX1VJRHJhZ09wZXJhdGlvbk1v
dmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uRGVsZXRlOgorICAgIGNhc2UgV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbjo6RGVsZXRlOgogICAgICAgICByZXR1cm4gX1VJRHJhZ09wZXJh
dGlvbk5vbmU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCmluZGV4IGU5YjY1ZmE3NTliZDUxNDA0
YTM3MjY3YTEwOWFlZmEwNDg1ZTVkMzAuLjViMTkzYTdkYWEzMDZmNjUzZTkwM2NiZmE3MmUxZWEz
M2YwMTVlY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCkBAIC00NywxMyArNDcsMTMgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiBzdGF0aWMgRFdPUkQgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNr
VG9EcmFnQ3Vyc29ycyhPcHRpb25TZXQ8RHJhZ09wZXJhdGlvbj4gb3BlcmF0aW9uTWFzaykKIHsK
ICAgICBEV09SRCByZXN1bHQgPSBEUk9QRUZGRUNUX05PTkU7Ci0gICAgaWYgKG9wZXJhdGlvbk1h
c2suY29udGFpbnMoRHJhZ09wZXJhdGlvbkNvcHkpKQorICAgIGlmIChvcGVyYXRpb25NYXNrLmNv
bnRhaW5zKERyYWdPcGVyYXRpb246OkNvcHkpKQogICAgICAgICByZXN1bHQgfD0gRFJPUEVGRkVD
VF9DT1BZOyAKLSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhEcmFnT3BlcmF0aW9uTGlu
aykpCisgICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6TGluaykp
CiAgICAgICAgIHJlc3VsdCB8PSBEUk9QRUZGRUNUX0xJTks7IAotICAgIGlmIChvcGVyYXRpb25N
YXNrLmNvbnRhaW5zKERyYWdPcGVyYXRpb25Nb3ZlKSkKKyAgICBpZiAob3BlcmF0aW9uTWFzay5j
b250YWlucyhEcmFnT3BlcmF0aW9uOjpNb3ZlKSkKICAgICAgICAgcmVzdWx0IHw9IERST1BFRkZF
Q1RfTU9WRTsKLSAgICBpZiAob3BlcmF0aW9uTWFzay5jb250YWlucyhEcmFnT3BlcmF0aW9uR2Vu
ZXJpYykpCisgICAgaWYgKG9wZXJhdGlvbk1hc2suY29udGFpbnMoRHJhZ09wZXJhdGlvbjo6R2Vu
ZXJpYykpCiAgICAgICAgIHJlc3VsdCB8PSBEUk9QRUZGRUNUX01PVkU7CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KQEAgLTE2NSwxMSArMTY1LDExIEBAIHZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnRE
cmFnKERyYWdJdGVtIGl0ZW0sIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBGcmFtZSYKICAg
ICAgICAgT3B0aW9uU2V0PERyYWdPcGVyYXRpb24+IG9wZXJhdGlvbjsKICAgICAgICAgaWYgKGhy
ID09IERSQUdEUk9QX1NfRFJPUCkgewogICAgICAgICAgICAgaWYgKGVmZmVjdCAmIERST1BFRkZF
Q1RfQ09QWSkKLSAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uQ29weTsK
KyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uOjpDb3B5OwogICAgICAg
ICAgICAgZWxzZSBpZiAoZWZmZWN0ICYgRFJPUEVGRkVDVF9MSU5LKQotICAgICAgICAgICAgICAg
IG9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25MaW5rOworICAgICAgICAgICAgICAgIG9wZXJhdGlv
biA9IERyYWdPcGVyYXRpb246Okxpbms7CiAgICAgICAgICAgICBlbHNlIGlmIChlZmZlY3QgJiBE
Uk9QRUZGRUNUX01PVkUpCi0gICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlv
bk1vdmU7CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbjo6TW92ZTsK
ICAgICAgICAgfQogICAgICAgICBmcmFtZS5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRB
dChnZW5lcmF0ZU1vdXNlRXZlbnQobV93ZWJWaWV3LCBmYWxzZSksIG9wZXJhdGlvbik7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA0MmRjZDI4OGJkYTZkYTIxODEx
ZGIzMmEyNTNhMTk3MjBmYzkxNDVlLi4zN2UxZTAyZTI3NTgyMzE3YTE2ZWQzYWMxODA5ZDE1MmE1
MTQ3MzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtNTg0OCwxMyArNTg0
OCwxMyBAQCBzdGF0aWMgRFdPUkQgZHJhZ09wZXJhdGlvblRvRHJhZ0N1cnNvcihPcHRpb25hbDxE
cmFnT3BlcmF0aW9uPiBvcGVyYXRpb24pCiAgICAgICAgIHJldHVybiBEUk9QRUZGRUNUX05PTkU7
CiAKICAgICBEV09SRCByZXN1bHQgPSBEUk9QRUZGRUNUX05PTkU7Ci0gICAgaWYgKCpvcGVyYXRp
b24gPT0gRHJhZ09wZXJhdGlvbkNvcHkpCisgICAgaWYgKCpvcGVyYXRpb24gPT0gRHJhZ09wZXJh
dGlvbjo6Q29weSkKICAgICAgICAgcmVzdWx0ID0gRFJPUEVGRkVDVF9DT1BZOwotICAgIGVsc2Ug
aWYgKCpvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlvbkxpbmspCisgICAgZWxzZSBpZiAoKm9wZXJh
dGlvbiA9PSBEcmFnT3BlcmF0aW9uOjpMaW5rKQogICAgICAgICByZXN1bHQgPSBEUk9QRUZGRUNU
X0xJTks7Ci0gICAgZWxzZSBpZiAoKm9wZXJhdGlvbiA9PSBEcmFnT3BlcmF0aW9uTW92ZSkKKyAg
ICBlbHNlIGlmICgqb3BlcmF0aW9uID09IERyYWdPcGVyYXRpb246Ok1vdmUpCiAgICAgICAgIHJl
c3VsdCA9IERST1BFRkZFQ1RfTU9WRTsKLSAgICBlbHNlIGlmICgqb3BlcmF0aW9uID09IERyYWdP
cGVyYXRpb25HZW5lcmljKQorICAgIGVsc2UgaWYgKCpvcGVyYXRpb24gPT0gRHJhZ09wZXJhdGlv
bjo6R2VuZXJpYykKICAgICAgICAgcmVzdWx0ID0gRFJPUEVGRkVDVF9NT1ZFOyAvLyBUaGlzIGFw
cGVhcnMgdG8gYmUgdGhlIEZpcmVmb3ggYmVoYXZpb3VyLgogICAgIHJldHVybiByZXN1bHQ7CiB9
CkBAIC01ODcxLDExICs1ODcxLDExIEBAIE9wdGlvblNldDxEcmFnT3BlcmF0aW9uPiBXZWJWaWV3
OjprZXlTdGF0ZVRvRHJhZ09wZXJhdGlvbihEV09SRCBncmZLZXlTdGF0ZSkgY29uCiAgICAgYXV0
byBvcGVyYXRpb25NYXNrID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLnNvdXJjZURyYWdPcGVy
YXRpb25NYXNrKCk7CiAKICAgICBpZiAoKGdyZktleVN0YXRlICYgKE1LX0NPTlRST0wgfCBNS19T
SElGVCkpID09IChNS19DT05UUk9MIHwgTUtfU0hJRlQpKQotICAgICAgICBvcGVyYXRpb25NYXNr
ID0geyBEcmFnT3BlcmF0aW9uTGluayB9OworICAgICAgICBvcGVyYXRpb25NYXNrID0geyBEcmFn
T3BlcmF0aW9uOjpMaW5rIH07CiAgICAgZWxzZSBpZiAoKGdyZktleVN0YXRlICYgTUtfQ09OVFJP
TCkgPT0gTUtfQ09OVFJPTCkKLSAgICAgICAgb3BlcmF0aW9uTWFzayA9IHsgRHJhZ09wZXJhdGlv
bkNvcHkgfTsKKyAgICAgICAgb3BlcmF0aW9uTWFzayA9IHsgRHJhZ09wZXJhdGlvbjo6Q29weSB9
OwogICAgIGVsc2UgaWYgKChncmZLZXlTdGF0ZSAmIE1LX1NISUZUKSA9PSBNS19TSElGVCkKLSAg
ICAgICAgb3BlcmF0aW9uTWFzayA9IHsgRHJhZ09wZXJhdGlvbkdlbmVyaWMgfTsKKyAgICAgICAg
b3BlcmF0aW9uTWFzayA9IHsgRHJhZ09wZXJhdGlvbjo6R2VuZXJpYyB9OwogCiAgICAgcmV0dXJu
IG9wZXJhdGlvbk1hc2s7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggMjI5NzViYjZkNzJmZGNmM2Q2MWFiMzIzYzU2YzMyMDVkOGJhY2M1Yi4u
MzE5MmIxOWNjMWFiMmNkNDI1NDZkOWIwNDYzYjU3ZmIzOTBlM2MwZSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTA2LTA2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgW0lQ
Q10gQWRvcHQgZW51bSBjbGFzcyBmb3IgRHJhZ09wZXJhdGlvbgorICAgICAgICA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMjEyODcwPgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQwNjk5NDA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L2RvLXdlYmNvcmUtcmVuYW1lOgorICAgICAgICAtIERvIERyYWdPcGVyYXRpb24gcmVuYW1lcy4K
KwogMjAyMC0wNi0wNiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKHIyNjI0NTYpOiBbaU9TIERlYnVnXSBUZXN0V2ViS2l0QVBJLldLV2ViVmll
d0Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zLlBpY3R1cmVJblBpY3R1cmUgaXMgZnJlcXVlbnRs
eSB0aW1pbmcgb3V0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1l
IGIvVG9vbHMvU2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZQppbmRleCAwY2NkZGEyYTA2ZTEwZDk3
YWQyM2Y5M2JkZGRmZWJmMzdiMmQxOTI4Li4yYTkxZTU3ZTVhZjA1OGYxMWVlM2IxMGY0YzhiZjVj
ZTk2ODIyYzQzIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1lCisr
KyBiL1Rvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUKQEAgLTEsNiArMSw2IEBACiAjIS91
c3IvYmluL2VudiBwZXJsCiAKLSMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA2LTIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xMDIsNyArMTAyLDEyIEBAIHN1YiB3YW50ZWQKIG15ICRpc0RPTVR5cGVSZW5hbWUgPSAw
OwogbXkgJXJlbmFtZXMgPSAoCiAgICAgIyBSZW5hbWVzIGdvIGhlcmUgaW4gdGhlIGZvcm0gb2Y6
Ci0gICAgImZsYWdJc0F0b21pYyIgPT4gImZsYWdJc0F0b20iLAorICAgICJEcmFnT3BlcmF0aW9u
Q29weSIgPT4gIkRyYWdPcGVyYXRpb246OkNvcHkiLAorICAgICJEcmFnT3BlcmF0aW9uTGluayIg
PT4gIkRyYWdPcGVyYXRpb246OkxpbmsiLAorICAgICJEcmFnT3BlcmF0aW9uR2VuZXJpYyIgPT4g
IkRyYWdPcGVyYXRpb246OkdlbmVyaWMiLAorICAgICJEcmFnT3BlcmF0aW9uUHJpdmF0ZSIgPT4g
IkRyYWdPcGVyYXRpb246OlByaXZhdGUiLAorICAgICJEcmFnT3BlcmF0aW9uTW92ZSIgPT4gIkRy
YWdPcGVyYXRpb246Ok1vdmUiLAorICAgICJEcmFnT3BlcmF0aW9uRGVsZXRlIiA9PiAiRHJhZ09w
ZXJhdGlvbjo6RGVsZXRlIiwKICk7CiAKIG15ICVyZW5hbWVzQ29udGVtcGxhdGVkRm9yVGhlRnV0
dXJlID0gKAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>