<?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>199232</bug_id>
          
          <creation_ts>2019-06-26 13:28:36 -0700</creation_ts>
          <short_desc>SubFrameSOAuthorizationSession should preserve the referrer header when falling back to web path</short_desc>
          <delta_ts>2019-06-26 23:33:58 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1548100</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-26 13:28:36 -0700</bug_when>
    <thetext>SubFrameSOAuthorizationSession should preserve the referrer header when fall back to web path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548101</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-26 13:29:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/51718328&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548113</commentid>
    <comment_count>2</comment_count>
      <attachid>372947</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-26 13:48:50 -0700</bug_when>
    <thetext>Created attachment 372947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548115</commentid>
    <comment_count>3</comment_count>
      <attachid>372947</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-06-26 13:51:51 -0700</bug_when>
    <thetext>Comment on attachment 372947
Patch

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

&gt; Source/WebKit/UIProcess/WebFrameProxy.cpp:82
&gt; +void WebFrameProxy::loadURL(const URL&amp; url, const Optional&lt;String&gt;&amp; referrer)

We normally do not use Optional&lt;String&gt; because the String class already has a null state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548117</commentid>
    <comment_count>4</comment_count>
      <attachid>372947</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-06-26 13:53:35 -0700</bug_when>
    <thetext>Comment on attachment 372947
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:71
&gt; +                if (!navigationActionPtr-&gt;request().hasHTTPReferrer()) {

This if check would not be needed if you did not use Optional. navigationActionPtr-&gt;request().httpReferrer() would return a null String and the normal code path would do the right thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548158</commentid>
    <comment_count>5</comment_count>
      <attachid>372947</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-06-26 15:59:40 -0700</bug_when>
    <thetext>Comment on attachment 372947
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1497
&gt; +    if (!referrer) {

Ditto, this if check is likely not needed either if you stop using Optional&lt;String&gt; and use a simple String instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548161</commentid>
    <comment_count>6</comment_count>
      <attachid>372947</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-26 16:07:27 -0700</bug_when>
    <thetext>Comment on attachment 372947
Patch

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

&gt; Source/WebCore/platform/network/ResourceRequestBase.h:123
&gt; +    WEBCORE_EXPORT bool hasHTTPReferrer() const;

Removed.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:71
&gt;&gt; +                if (!navigationActionPtr-&gt;request().hasHTTPReferrer()) {
&gt; 
&gt; This if check would not be needed if you did not use Optional. navigationActionPtr-&gt;request().httpReferrer() would return a null String and the normal code path would do the right thing.

It does!

&gt;&gt; Source/WebKit/UIProcess/WebFrameProxy.cpp:82
&gt;&gt; +void WebFrameProxy::loadURL(const URL&amp; url, const Optional&lt;String&gt;&amp; referrer)
&gt; 
&gt; We normally do not use Optional&lt;String&gt; because the String class already has a null state.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548165</commentid>
    <comment_count>7</comment_count>
      <attachid>372947</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-26 16:08:01 -0700</bug_when>
    <thetext>Comment on attachment 372947
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1497
&gt;&gt; +    if (!referrer) {
&gt; 
&gt; Ditto, this if check is likely not needed either if you stop using Optional&lt;String&gt; and use a simple String instead.

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548175</commentid>
    <comment_count>8</comment_count>
      <attachid>372962</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-26 16:14:51 -0700</bug_when>
    <thetext>Created attachment 372962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548356</commentid>
    <comment_count>9</comment_count>
      <attachid>372962</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-26 21:42:41 -0700</bug_when>
    <thetext>Comment on attachment 372962
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:71
&gt; +                frame-&gt;loadURL(navigationActionPtr-&gt;request().url(), navigationActionPtr-&gt;request().httpReferrer());

I wonder whether other parameters might be needed in the future (cache policy, user agent...).
Maybe we should pass navigationActionPtr-&gt;request() directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548371</commentid>
    <comment_count>10</comment_count>
      <attachid>372962</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-06-26 23:02:52 -0700</bug_when>
    <thetext>Comment on attachment 372962
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm:71
&gt;&gt; +                frame-&gt;loadURL(navigationActionPtr-&gt;request().url(), navigationActionPtr-&gt;request().httpReferrer());
&gt; 
&gt; I wonder whether other parameters might be needed in the future (cache policy, user agent...).
&gt; Maybe we should pass navigationActionPtr-&gt;request() directly.

Thanks, Youenn. That’s in my mind as well. However, I’m not sure if there will be any side effects to load the same request again. We will find out later if it is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548376</commentid>
    <comment_count>11</comment_count>
      <attachid>372962</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-26 23:33:56 -0700</bug_when>
    <thetext>Comment on attachment 372962
Patch

Clearing flags on attachment: 372962

Committed r246872: &lt;https://trac.webkit.org/changeset/246872&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548377</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-26 23:33:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372947</attachid>
            <date>2019-06-26 13:48:50 -0700</date>
            <delta_ts>2019-06-26 16:14:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199232-20190626134849.patch</filename>
            <type>text/plain</type>
            <size>14615</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNjODZmNjM4OGZhNWEx
YzIwZWIxNTVhOTgxY2U2OTA3NmJhMDQxNC4uMGJlZDdiYzNkYzkyODc5ZmUzNjRhMTFkZjAyMjRh
NGEzMzUyMTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA2LTI2ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3ViRnJhbWVTT0F1dGhv
cml6YXRpb25TZXNzaW9uIHNob3VsZCBwcmVzZXJ2ZSB0aGUgcmVmZXJyZXIgaGVhZGVyIHdoZW4g
ZmFsbCBiYWNrIHRvIHdlYiBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkyMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNzE4MzI4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQg
YnkgbmV3IHRlc3RzIGluIGV4aXN0aW5nIGZpbGVzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmg6CisgICAgICAgIEV4cG9ydCBoYXNIVFRQUmVmZXJy
ZXIoKS4KKwogMjAxOS0wNi0yNSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIGluY29ycmVjdCBmb250IGhlaWdodCBmb3IgJ0dv
b2dsZSBTYW5zIERpc3BsYXknIGZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMGI2OTJlNzFmYzRkZDZiYjE5NDlm
N2IzM2FhMmRhN2ExNzdhMjljMy4uZjZlYmE4MDkxYjA0YWExNDY3MzlkZDk1NGE0MWQxOWYyMjZm
MDFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxOS0wNi0yNiAgSmlld2VuIFRhbiAg
PGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFN1YkZyYW1lU09BdXRob3JpemF0aW9u
U2Vzc2lvbiBzaG91bGQgcHJlc2VydmUgdGhlIHJlZmVycmVyIGhlYWRlciB3aGVuIGZhbGwgYmFj
ayB0byB3ZWIgcGF0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk5MjMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTcxODMyOD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZmFsbCBiYWNrIHRv
IHdlYiBwYXRoIG1lY2hhbmlzbSBpbiBTdWJGcmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb24gZG9l
c24ndCBhY3R1YWxseSByZXN1bWUKKyAgICAgICAgdGhlIHByZXZpb3VzIG5hdmlnYXRpb24uIElu
c3RlYWQgaXQgc3RhcnRzIGEgbmV3IG9uZS4gVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9l
c24ndCBjYXJyeQorICAgICAgICBhbnkgaW5mb3JtYXRpb24gZnJvbSB0aGUgcHJldmlvdXMgbmF2
aWdhdGlvbi4gSXQgaXMgcHJvYmxlbWF0aWMgd2hlbiBpdCBjb21lcyB0byBodHRwIHJlZmVycmVy
CisgICAgICAgIGFzIHRoZSBzZXJ2ZXIgbWlnaHQgdXNlIHRoYXQgdG8gZGV0ZXJtaW5lIHdoYXQg
a2luZCBvZiByZXNwb25zZXMgdG8gc2VuZCBiYWNrLiBUaGVyZWZvcmUsIHdlCisgICAgICAgIGFk
ZCB0aGF0IGluZm9ybWF0aW9uIG5vdy4KKworICAgICAgICBUbyBhY2NvbXBsaXNoIHRoZSBhYm92
ZSwgdGhlIHBhdGNoIHRlYWNoZXMgV2ViRnJhbWVQcm94eTo6bG9hZFVSTCB0byBjYXJyeSByZWZl
cnJlciBpbmZvcm1hdGlvbgorICAgICAgICB3aGVuIGl0IGlzIGF2YWlsYWJsZS4gVGhlbiBTdWJG
cmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb24gY2FuIHJldXNlcyB0aGUgcmVmZXJyZXIgZnJvbSB0
aGUKKyAgICAgICAgb3JpZ2luYWwgcmVxdWVzdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9TT0F1dGhvcml6YXRpb24vU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLm1tOgorICAg
ICAgICAoV2ViS2l0OjpTdWJGcmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb246OmZhbGxCYWNrVG9X
ZWJQYXRoSW50ZXJuYWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6bG9hZFVSTCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkZyYW1lUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDE5LTA2LTI2ICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0g
RGlzcGF0Y2ggc3ludGhldGljIG1vdXNlIGV2ZW50IGFzeW5jaHJvbm91c2x5IGluIGNvbXBsZXRl
UGVuZGluZ1N5bnRoZXRpY0NsaWNrRm9yQ29udGVudENoYW5nZU9ic2VydmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCmlu
ZGV4IGRkNDQ2YTg5MGNkYjlkY2VhNzc3OGIxYmMyODE1NWFmNmZiNmMwNzkuLmQzODBkNjk2OGE3
MDgxY2Q5MGYyNTIwN2I0NjBjZWNlMzYzZmNmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0xMjAsNyArMTIw
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzSFRUUEhlYWRlcihIVFRQSGVhZGVyTmFtZSkgY29u
c3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaHR0cFJlZmVycmVyKCkgY29uc3Q7Ci0g
ICAgYm9vbCBoYXNIVFRQUmVmZXJyZXIoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGhhc0hUVFBSZWZlcnJlcigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SFRU
UFJlZmVycmVyKGNvbnN0IFN0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RXhp
c3RpbmdIVFRQUmVmZXJyZXJUb09yaWdpblN0cmluZygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgY2xlYXJIVFRQUmVmZXJyZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1NPQXV0aG9yaXphdGlvbi9TdWJGcmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU3ViRnJh
bWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLm1tCmluZGV4IDA2NTY2MTQzMGZlYzFjMjdjMGJjM2Ri
OGJkMGQwN2I5ZWFlOWYyNGQuLmVkNWIxMzM2YzI3OTRiN2MyZmE2Y2RmMjk1NDY3YTBhZDU3MDlm
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1NPQXV0aG9yaXph
dGlvbi9TdWJGcmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1N1YkZyYW1lU09BdXRob3JpemF0aW9u
U2Vzc2lvbi5tbQpAQCAtNjgsNyArNjgsMTEgQEAgdm9pZCBTdWJGcmFtZVNPQXV0aG9yaXphdGlv
blNlc3Npb246OmZhbGxCYWNrVG9XZWJQYXRoSW50ZXJuYWwoKQogICAgICAgICAgICAgaWYgKGF1
dG8qIGZyYW1lID0gcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKHRhcmdldEZyYW1lLT5oYW5kbGUo
KS5mcmFtZUlEKCkpKSB7CiAgICAgICAgICAgICAgICAgcGFnZS0+c2V0U2hvdWxkU3VwcHJlc3NT
T0F1dGhvcml6YXRpb25Jbk5leHROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oKTsKICAgICAgICAg
ICAgICAgICAvLyBJc3N1ZSBhIG5ldyBsb2FkIHRvIHRoZSBvcmlnaW5hbCBVUkwgYXMgdGhlIG9y
aWdpbmFsIGxvYWQgaXMgYWJvcnRlZCBiZWZvcmUgc3RhcnQuCi0gICAgICAgICAgICAgICAgZnJh
bWUtPmxvYWRVUkwobmF2aWdhdGlvbkFjdGlvblB0ci0+cmVxdWVzdCgpLnVybCgpKTsKKyAgICAg
ICAgICAgICAgICBpZiAoIW5hdmlnYXRpb25BY3Rpb25QdHItPnJlcXVlc3QoKS5oYXNIVFRQUmVm
ZXJyZXIoKSkgeworICAgICAgICAgICAgICAgICAgICBmcmFtZS0+bG9hZFVSTChuYXZpZ2F0aW9u
QWN0aW9uUHRyLT5yZXF1ZXN0KCkudXJsKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyYW1lLT5sb2FkVVJMKG5hdmln
YXRpb25BY3Rpb25QdHItPnJlcXVlc3QoKS51cmwoKSwgbmF2aWdhdGlvbkFjdGlvblB0ci0+cmVx
dWVzdCgpLmh0dHBSZWZlcnJlcigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAppbmRleCBiNDM5MjZj
OWM0MjA2YzkzZDg4YzE2ODQyYTQyNGRiY2U2NjY5MWZjLi5kZjdjMWZhMGUzNDg0NjllZmVmNTcw
ODlhZTIwZDA3Y2U2MjY4MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBy
b3h5LmNwcApAQCAtNzksMTIgKzc5LDEyIEBAIGJvb2wgV2ViRnJhbWVQcm94eTo6aXNNYWluRnJh
bWUoKSBjb25zdAogICAgIHJldHVybiB0aGlzID09IG1fcGFnZS0+bWFpbkZyYW1lKCkgfHwgKG1f
cGFnZS0+cHJvdmlzaW9uYWxQYWdlUHJveHkoKSAmJiB0aGlzID09IG1fcGFnZS0+cHJvdmlzaW9u
YWxQYWdlUHJveHkoKS0+bWFpbkZyYW1lKCkpOwogfQogCi12b2lkIFdlYkZyYW1lUHJveHk6Omxv
YWRVUkwoY29uc3QgVVJMJiB1cmwpCit2b2lkIFdlYkZyYW1lUHJveHk6OmxvYWRVUkwoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIHJlZmVycmVyKQogewogICAgIGlmICgh
bV9wYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2UtPnByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpMb2FkVVJMSW5GcmFtZSh1cmwsIG1fZnJhbWVJRCksIG1fcGFnZS0+
cGFnZUlEKCkpOworICAgIG1fcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkxvYWRVUkxJbkZyYW1lKHVybCwgcmVmZXJyZXIsIG1fZnJhbWVJRCksIG1fcGFnZS0+cGFnZUlE
KCkpOwogfQogCiB2b2lkIFdlYkZyYW1lUHJveHk6OmxvYWREYXRhKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgZGF0YSwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNv
ZGluZ05hbWUsIGNvbnN0IFVSTCYgYmFzZVVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZy
YW1lUHJveHkuaAppbmRleCA2ODA5ZTU0NGM3Y2M2ZmVkYzg3MjQ0ZGUwNzE0YjZiMzYxOTFkYWFi
Li43ZDgyMTM5MzY1MzVhMDBlNTYxNDIzMjA5MjY4NWMyYjEwMGM3YTMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKIAog
ICAgIEZyYW1lTG9hZFN0YXRlJiBmcmFtZUxvYWRTdGF0ZSgpIHsgcmV0dXJuIG1fZnJhbWVMb2Fk
U3RhdGU7IH0KIAotICAgIHZvaWQgbG9hZFVSTChjb25zdCBVUkwmKTsKKyAgICB2b2lkIGxvYWRV
UkwoY29uc3QgVVJMJiwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgcmVmZXJyZXIgPSBXVEY6Om51
bGxvcHQpOwogICAgIC8vIFN1YiBmcmFtZXMgb25seS4gRm9yIG1haW4gZnJhbWVzLCB1c2UgV2Vi
UGFnZVByb3h5Ojpsb2FkRGF0YS4KICAgICB2b2lkIGxvYWREYXRhKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmdO
YW1lLCBjb25zdCBVUkwmIGJhc2VVUkwpOwogICAgIHZvaWQgc3RvcExvYWRpbmcoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggN2Yw
ZGU4YzgyYjBkMmVhODRjMzIyMDlhYTQ1NWIwZWM0NzcwZWYyNy4uZWU3Y2ZjZDgzYWYyYzQ5YzUw
OWRiMzI1NDcxNjIyYzRlZjFkYTc0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE0ODgsMTMgKzE0ODgsMTcgQEAgdm9pZCBXZWJQYWdlOjpz
dXNwZW5kRm9yUHJvY2Vzc1N3YXAoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkU3VzcGVuZEFmdGVyUHJvY2Vzc1N3YXAoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6bG9hZFVS
TEluRnJhbWUoVVJMJiYgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpsb2Fk
VVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIHJlZmVycmVyLCB1
aW50NjRfdCBmcmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZChGcmFtZUxvYWRS
ZXF1ZXN0KCpmcmFtZS0+Y29yZUZyYW1lKCksIFJlc291cmNlUmVxdWVzdCh1cmwpLCBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykpOworICAgIGlmICghcmVmZXJy
ZXIpIHsKKyAgICAgICAgZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9h
ZFJlcXVlc3QoKmZyYW1lLT5jb3JlRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCksIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9h
ZFJlcXVlc3QoKmZyYW1lLT5jb3JlRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCwgKnJlZmVy
cmVyKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpKTsKIH0K
IAogdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0
YSwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYgYmFzZVVS
TCwgdWludDY0X3QgZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBkNTQyM2JiYjNjNWZkZjgzMmE2NThjMjg2OTBiNGE2Mzk5YzlmMzE1Li5l
YWEzZjdiNjNhZTkxNjhlODJjODcyMmY4YTdkMjQ1ZTY4MmM4OTRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzM3LDcgKzEzMzcsNyBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBib29sIHNjcm9sbChXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6U2Ny
b2xsRGlyZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSk7CiAgICAgc3RhdGljIGJv
b2wgbG9naWNhbFNjcm9sbChXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6U2Nyb2xsTG9naWNhbERp
cmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkpOwogCi0gICAgdm9pZCBsb2FkVVJM
SW5GcmFtZShVUkwmJiwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBsb2FkVVJMSW5GcmFt
ZShVUkwmJiwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1l
SUQpOwogICAgIHZvaWQgbG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJp
bmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50
NjRfdCBmcmFtZUlEKTsKIAogICAgIGVudW0gY2xhc3MgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3Qg
eyBObywgWWVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkOTgyMmQzODgwYjg4YTVlNTU4NDY5OGZlOTZhY2Ni
NzM3YjgwNDU0Li41MGU1MjQ3NTU1Y2I4ZGY1NGQ2ZDhmZWIxYTZkZWJiMTVkOGIzMjEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KQEAgLTE1OCw3ICsxNTgsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
KGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIEdv
VG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90
IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMp
CiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKIAotICAgIExvYWRVUkxJbkZyYW1lKFVS
TCB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwgT3B0
aW9uYWw8U3RyaW5nPiByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCkKICAgICBMb2FkRGF0YUlu
RnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyBNSU1FVHlwZSwgU3RyaW5nIGVu
Y29kaW5nTmFtZSwgVVJMIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgTG9hZFJlcXVl
c3Qoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpCiAgICAgTG9h
ZERhdGEoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDllZTM3MDM5
YTYyMDA5ODczZTEwNjQxZmQ2YmM1NjY3ZmIyNjM3NC4uMDBlOTJiZDc2ZDNhYjg1ZDllNzExYWM2
OTlkNDBiZWU4MmY2MjhmNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA2LTI2ICBKaWV3ZW4gVGFuICA8amll
d2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNz
aW9uIHNob3VsZCBwcmVzZXJ2ZSB0aGUgcmVmZXJyZXIgaGVhZGVyIHdoZW4gZmFsbCBiYWNrIHRv
IHdlYiBwYXRoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTkyMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNzE4MzI4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9UZXN0U09BdXRob3JpemF0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgIEFkZCBhIHRlc3QgdGhhdCB1dGlsaXplcyBUQ1BTZXJ2ZXIg
YXMgbG9jYWwgZmlsZXMgYWx3YXlzIG9taXQgcmVmZXJyZXIuCisKIDIwMTktMDYtMjUgIEppZXdl
biBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgYSBuZXcg
U1BJIHRvIGluZm9ybSBjbGllbnRzIGFib3V0IEFwcFNTTwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXN0U09BdXRob3JpemF0aW9uLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9UZXN0U09BdXRob3JpemF0aW9uLm1t
CmluZGV4IGU3M2QyMGIzYjRlNWEzY2MxZjMwYzMzOTA2NTZlOWY4NTZlNGEzZTQuLmFiMTUzMzFm
NzdjZjcyNjk4OGI2YzgyOWNhNTg5YzE4NzAzYmNiOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGVzdFNPQXV0aG9yaXphdGlvbi5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Rlc3RTT0F1dGhvcml6YXRpb24u
bW0KQEAgLTMxLDE2ICszMSwxOSBAQAogI2ltcG9ydCAiQ2xhc3NNZXRob2RTd2l6emxlci5oIgog
I2ltcG9ydCAiSW5zdGFuY2VNZXRob2RTd2l6emxlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGls
aXRpZXMuaCIKKyNpbXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5o
IgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9X
S05hdmlnYXRpb25Qcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgogI2ltcG9ydCA8cGFsL2NvY29hL0FwcFNTT1NvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL0F1dGhLaXRTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjaW1w
b3J0IDx3dGYvVVJMLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJl
cnMuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBzdGF0aWMgYm9vbCBuYXZp
Z2F0aW9uQ29tcGxldGVkID0gZmFsc2U7CkBAIC05NSw2ICs5OCw3IEBAIHN0YXRpYyBjb25zdCBj
aGFyKiBuZXdXaW5kb3dSZXNwb25zZVRlbXBsYXRlID0KIAogc3RhdGljIGNvbnN0IGNoYXIqIHBh
cmVudFRlbXBsYXRlID0KICI8aHRtbD4iCisiPG1ldGEgbmFtZT0ncmVmZXJyZXInIGNvbnRlbnQ9
J29yaWdpbicgLz4iCiAiPGlmcmFtZSBzcmM9JyVzJz48L2lmcmFtZT4iCiAiPHNjcmlwdD4iCiAi
ZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIgpAQCAtMTEwLDYgKzExNCw3IEBAIHN0YXRp
YyBjb25zdCBjaGFyKiBpZnJhbWVUZW1wbGF0ZSA9CiAiPGh0bWw+IgogIjxzY3JpcHQ+IgogInBh
cmVudC5wb3N0TWVzc2FnZSgnSGVsbG8uJywgJyonKTsiCisiJXMiCiAiPC9zY3JpcHQ+IgogIjwv
aHRtbD4iOwogCkBAIC0yMTI0LDYgKzIxMjksNTEgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJG
cmFtZSwgU09BdXRob3JpemF0aW9uTG9hZFBvbGljeUlnbm9yZUFzeW5jKQogICAgIEVYUEVDVF9G
QUxTRShhdXRob3JpemF0aW9uUGVyZm9ybWVkKTsKIH0KIAorVEVTVChTT0F1dGhvcml6YXRpb25T
dWJGcmFtZSwgSW50ZXJjZXB0aW9uRXJyb3JXaXRoUmVmZXJyZXIpCit7CisgICAgcmVzZXRTdGF0
ZSgpOworICAgIENsYXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXIxKFBBTDo6Z2V0U09BdXRob3Jp
emF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGNhblBlcmZvcm1BdXRob3JpemF0aW9uV2l0aFVSTDpy
ZXNwb25zZUNvZGU6KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlQ2FuUGVyZm9ybUF1
dGhvcml6YXRpb25XaXRoVVJMKSk7CisgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxl
cjIoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3Ioc2V0RGVsZWdhdGU6
KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlU2V0RGVsZWdhdGUpKTsKKyAgICBJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyMyhQQUw6OmdldFNPQXV0aG9yaXphdGlvbkNsYXNz
KCksIEBzZWxlY3RvcihiZWdpbkF1dGhvcml6YXRpb25XaXRoVVJMOmh0dHBIZWFkZXJzOmh0dHBC
b2R5OiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUJlZ2luQXV0aG9yaXphdGlvbldp
dGhVUkwpKTsKKyAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyNChbQUtBdXRob3JpemF0
aW9uQ29udHJvbGxlciBjbGFzc10sIEBzZWxlY3Rvcihpc1VSTEZyb21BcHBsZU93bmVkRG9tYWlu
OiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihvdmVycmlkZUlzVVJMRnJvbUFwcGxlT3duZWREb21h
aW4pKTsKKworICAgIFRDUFNlcnZlciBzZXJ2ZXIoW3BhcmVudEh0bWwgPSBnZW5lcmF0ZUh0bWwo
cGFyZW50VGVtcGxhdGUsICJzaW1wbGUuaHRtbCIpLCBmcmFtZUh0bWwgPSBnZW5lcmF0ZUh0bWwo
aWZyYW1lVGVtcGxhdGUsICJwYXJlbnQucG9zdE1lc3NhZ2UoJ1JlZmVycmVyOiAnICsgZG9jdW1l
bnQucmVmZXJyZXIsICcqJyk7IildIChpbnQgc29ja2V0KSB7CisgICAgICAgIE5TU3RyaW5nICpm
aXJzdFJlc3BvbnNlID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6CisgICAgICAgICAgICBA
IkhUVFAvMS4xIDIwMCBPS1xyXG4iCisgICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6ICVkXHJc
blxyXG4iCisgICAgICAgICAgICAiJUAiLAorICAgICAgICAgICAgcGFyZW50SHRtbC5sZW5ndGgo
KSwKKyAgICAgICAgICAgIChpZClwYXJlbnRIdG1sCisgICAgICAgIF07CisgICAgICAgIE5TU3Ry
aW5nICpzZWNvbmRSZXNwb25zZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OgorICAgICAg
ICAgICAgQCJIVFRQLzEuMSAyMDAgT0tcclxuIgorICAgICAgICAgICAgIkNvbnRlbnQtTGVuZ3Ro
OiAlZFxyXG5cclxuIgorICAgICAgICAgICAgIiVAIiwKKyAgICAgICAgICAgIGZyYW1lSHRtbC5s
ZW5ndGgoKSwKKyAgICAgICAgICAgIChpZClmcmFtZUh0bWwKKyAgICAgICAgXTsKKworICAgICAg
ICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsKKyAgICAgICAgVENQU2VydmVyOjp3cml0ZShzb2Nr
ZXQsIGZpcnN0UmVzcG9uc2UuVVRGOFN0cmluZywgZmlyc3RSZXNwb25zZS5sZW5ndGgpOworICAg
ICAgICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsKKyAgICAgICAgVENQU2VydmVyOjp3cml0ZShz
b2NrZXQsIHNlY29uZFJlc3BvbnNlLlVURjhTdHJpbmcsIHNlY29uZFJlc3BvbnNlLmxlbmd0aCk7
CisgICAgfSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXco
d2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCkpOworCisgICAgYXV0byBvcmlnaW4gPSBtYWtl
U3RyaW5nKCJodHRwOi8vMTI3LjAuMC4xOiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzZXJ2ZXIu
cG9ydCgpKSk7CisgICAgW3dlYlZpZXcgX2xvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6KGlkKW9yaWdpbl1dIHNob3VsZE9wZW5FeHRl
cm5hbFVSTHM6Tk9dOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOihpZClvcmlnaW5dOwor
ICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiU09BdXRob3JpemF0aW9uRGlkU3RhcnQiXTsK
KworICAgIFtnRGVsZWdhdGUgYXV0aG9yaXphdGlvbjpnQXV0aG9yaXphdGlvbiBkaWRDb21wbGV0
ZVdpdGhFcnJvcjphZG9wdE5TKFtbTlNFcnJvciBhbGxvY10gaW5pdFdpdGhEb21haW46TlNDb2Nv
YUVycm9yRG9tYWluIGNvZGU6MCB1c2VySW5mbzpuaWxdKS5nZXQoKV07CisgICAgW3dlYlZpZXcg
d2FpdEZvck1lc3NhZ2U6KGlkKW9yaWdpbl07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6
QCJTT0F1dGhvcml6YXRpb25EaWRDYW5jZWwiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2Fn
ZTooaWQpbWFrZVN0cmluZygiUmVmZXJyZXI6ICIsIG9yaWdpbiwgIi8iKV07IC8vIFJlZmVycmVy
IHBvbGljeSByZXF1aXJlcyAnLycgYWZ0ZXIgb3JpZ2luLgorfQorCiB9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372962</attachid>
            <date>2019-06-26 16:14:51 -0700</date>
            <delta_ts>2019-06-26 23:33:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199232-20190626161450.patch</filename>
            <type>text/plain</type>
            <size>12652</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiNjkyZTcxZmM0ZGQ2YmIx
OTQ5ZjdiMzNhYTJkYTdhMTc3YTI5YzMuLmY2ZWJhODA5MWIwNGFhMTQ2NzM5ZGQ5NTRhNDFkMTlm
MjI2ZjAxYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMDYtMjYgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBTdWJGcmFtZVNPQXV0aG9yaXph
dGlvblNlc3Npb24gc2hvdWxkIHByZXNlcnZlIHRoZSByZWZlcnJlciBoZWFkZXIgd2hlbiBmYWxs
IGJhY2sgdG8gd2ViIHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5OTIzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE3MTgzMjg+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGZhbGwgYmFj
ayB0byB3ZWIgcGF0aCBtZWNoYW5pc20gaW4gU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9u
IGRvZXNuJ3QgYWN0dWFsbHkgcmVzdW1lCisgICAgICAgIHRoZSBwcmV2aW91cyBuYXZpZ2F0aW9u
LiBJbnN0ZWFkIGl0IHN0YXJ0cyBhIG5ldyBvbmUuIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9u
IGRvZXNuJ3QgY2FycnkKKyAgICAgICAgYW55IGluZm9ybWF0aW9uIGZyb20gdGhlIHByZXZpb3Vz
IG5hdmlnYXRpb24uIEl0IGlzIHByb2JsZW1hdGljIHdoZW4gaXQgY29tZXMgdG8gaHR0cCByZWZl
cnJlcgorICAgICAgICBhcyB0aGUgc2VydmVyIG1pZ2h0IHVzZSB0aGF0IHRvIGRldGVybWluZSB3
aGF0IGtpbmQgb2YgcmVzcG9uc2VzIHRvIHNlbmQgYmFjay4gVGhlcmVmb3JlLCB3ZQorICAgICAg
ICBhZGQgdGhhdCBpbmZvcm1hdGlvbiBub3cuCisKKyAgICAgICAgVG8gYWNjb21wbGlzaCB0aGUg
YWJvdmUsIHRoZSBwYXRjaCB0ZWFjaGVzIFdlYkZyYW1lUHJveHk6OmxvYWRVUkwgdG8gY2Fycnkg
cmVmZXJyZXIgaW5mb3JtYXRpb24KKyAgICAgICAgd2hlbiBpdCBpcyBhdmFpbGFibGUuIFRoZW4g
U3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uIGNhbiByZXVzZXMgdGhlIHJlZmVycmVyIGZy
b20gdGhlCisgICAgICAgIG9yaWdpbmFsIHJlcXVlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvU09BdXRob3JpemF0aW9uL1N1YkZyYW1lU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbToK
KyAgICAgICAgKFdlYktpdDo6U3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uOjpmYWxsQmFj
a1RvV2ViUGF0aEludGVybmFsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmxvYWRVUkwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOS0wNi0yNiAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50Q2hhbmdlT2JzZXJ2
ZXJdIERpc3BhdGNoIHN5bnRoZXRpYyBtb3VzZSBldmVudCBhc3luY2hyb25vdXNseSBpbiBjb21w
bGV0ZVBlbmRpbmdTeW50aGV0aWNDbGlja0ZvckNvbnRlbnRDaGFuZ2VPYnNlcnZlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1N1YkZy
YW1lU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1NPQXV0aG9yaXphdGlvbi9TdWJGcmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb24ubW0KaW5k
ZXggMDY1NjYxNDMwZmVjMWMyN2MwYmMzZGI4YmQwZDA3YjllYWU5ZjI0ZC4uYWExNGJjMzQxYTBm
MWMwOTUzOGMxNjEyNWZmYzI5MjU2MmUwZDEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9uL1N1YkZyYW1lU09BdXRob3JpemF0aW9uU2Vz
c2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRp
b24vU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uLm1tCkBAIC02OCw3ICs2OCw3IEBAIHZv
aWQgU3ViRnJhbWVTT0F1dGhvcml6YXRpb25TZXNzaW9uOjpmYWxsQmFja1RvV2ViUGF0aEludGVy
bmFsKCkKICAgICAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IHBhZ2UtPnByb2Nlc3MoKS53ZWJG
cmFtZSh0YXJnZXRGcmFtZS0+aGFuZGxlKCkuZnJhbWVJRCgpKSkgewogICAgICAgICAgICAgICAg
IHBhZ2UtPnNldFNob3VsZFN1cHByZXNzU09BdXRob3JpemF0aW9uSW5OZXh0TmF2aWdhdGlvblBv
bGljeURlY2lzaW9uKCk7CiAgICAgICAgICAgICAgICAgLy8gSXNzdWUgYSBuZXcgbG9hZCB0byB0
aGUgb3JpZ2luYWwgVVJMIGFzIHRoZSBvcmlnaW5hbCBsb2FkIGlzIGFib3J0ZWQgYmVmb3JlIHN0
YXJ0LgotICAgICAgICAgICAgICAgIGZyYW1lLT5sb2FkVVJMKG5hdmlnYXRpb25BY3Rpb25QdHIt
PnJlcXVlc3QoKS51cmwoKSk7CisgICAgICAgICAgICAgICAgZnJhbWUtPmxvYWRVUkwobmF2aWdh
dGlvbkFjdGlvblB0ci0+cmVxdWVzdCgpLnVybCgpLCBuYXZpZ2F0aW9uQWN0aW9uUHRyLT5yZXF1
ZXN0KCkuaHR0cFJlZmVycmVyKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCmluZGV4IGI0MzkyNmM5
YzQyMDZjOTNkODhjMTY4NDJhNDI0ZGJjZTY2NjkxZmMuLjA3MTRiNDFlYjY3NzY4ZDllMGM5ZDQx
MmUyMGU4OThmODFlNzNkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJv
eHkuY3BwCkBAIC03OSwxMiArNzksMTIgQEAgYm9vbCBXZWJGcmFtZVByb3h5Ojppc01haW5GcmFt
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRoaXMgPT0gbV9wYWdlLT5tYWluRnJhbWUoKSB8fCAobV9w
YWdlLT5wcm92aXNpb25hbFBhZ2VQcm94eSgpICYmIHRoaXMgPT0gbV9wYWdlLT5wcm92aXNpb25h
bFBhZ2VQcm94eSgpLT5tYWluRnJhbWUoKSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVQcm94eTo6bG9h
ZFVSTChjb25zdCBVUkwmIHVybCkKK3ZvaWQgV2ViRnJhbWVQcm94eTo6bG9hZFVSTChjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKIHsKICAgICBpZiAoIW1fcGFnZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6TG9hZFVSTEluRnJhbWUodXJsLCBtX2ZyYW1lSUQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsK
KyAgICBtX3BhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkVVJMSW5G
cmFtZSh1cmwsIHJlZmVycmVyLCBtX2ZyYW1lSUQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAog
dm9pZCBXZWJGcmFtZVByb3h5Ojpsb2FkRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRh
dGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmdOYW1lLCBj
b25zdCBVUkwmIGJhc2VVUkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgK
aW5kZXggNjgwOWU1NDRjN2NjNmZlZGM4NzI0NGRlMDcxNGI2YjM2MTkxZGFhYi4uNDQ2MDBmMWMy
NzI5MGU1ZTRjMTY4ZWE4Y2QzY2MzOTYzNmZkYmJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkZyYW1lUHJveHkuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAKICAgICBGcmFtZUxv
YWRTdGF0ZSYgZnJhbWVMb2FkU3RhdGUoKSB7IHJldHVybiBtX2ZyYW1lTG9hZFN0YXRlOyB9CiAK
LSAgICB2b2lkIGxvYWRVUkwoY29uc3QgVVJMJik7CisgICAgdm9pZCBsb2FkVVJMKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIgPSBTdHJpbmcoKSk7CiAgICAgLy8gU3ViIGZyYW1l
cyBvbmx5LiBGb3IgbWFpbiBmcmFtZXMsIHVzZSBXZWJQYWdlUHJveHk6OmxvYWREYXRhLgogICAg
IHZvaWQgbG9hZERhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZ05hbWUsIGNvbnN0IFVSTCYgYmFzZVVSTCk7
CiAgICAgdm9pZCBzdG9wTG9hZGluZygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ZjBkZThjODJiMGQyZWE4NGMzMjIwOWFhNDU1
YjBlYzQ3NzBlZjI3Li4zOTYyZTI4MmY1NTI5NDBhNDgzYTRiYmJiMDc0NmI0OWZiN2ExYTRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTQ4
OCwxMyArMTQ4OCwxMyBAQCB2b2lkIFdlYlBhZ2U6OnN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRTdXNwZW5kQWZ0ZXJQcm9jZXNzU3dh
cCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZShVUkwmJiB1cmwsIHVpbnQ2
NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29u
c3QgU3RyaW5nJiByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSog
ZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFtZS0+Y29yZUZyYW1lKCktPmxv
YWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgqZnJhbWUtPmNvcmVGcmFtZSgpLCBSZXNvdXJj
ZVJlcXVlc3QodXJsKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3cpKTsKKyAgICBmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCgqZnJhbWUtPmNvcmVGcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QodXJsLCByZWZlcnJlciks
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9CiAKIHZv
aWQgV2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0
cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIHVp
bnQ2NF90IGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKaW5kZXggZDU0MjNiYmIzYzVmZGY4MzJhNjU4YzI4NjkwYjRhNjM5OWM5ZjMxNS4uMzlkMGMy
MTk2MTZmY2IyN2MyMDdmYWViODQxMjBiOTUyYzZkYmMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTMzNyw3ICsxMzM3LDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgYm9vbCBzY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbERp
cmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHN0YXRpYyBib29sIGxv
Z2ljYWxTY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbExvZ2ljYWxEaXJlY3Rp
b24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKIAotICAgIHZvaWQgbG9hZFVSTEluRnJh
bWUoVVJMJiYsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgbG9hZFVSTEluRnJhbWUoVVJM
JiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQg
bG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwg
U3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50NjRfdCBmcmFtZUlEKTsK
IAogICAgIGVudW0gY2xhc3MgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3QgeyBObywgWWVzIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgppbmRleCBkOTgyMmQzODgwYjg4YTVlNTU4NDY5OGZlOTZhY2NiNzM3YjgwNDU0Li42MzQ2
Y2QwMzJlMmIxOTI4YjRkYmEzNzU1MGQ5ODI3NTU3NTVhYWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE1OCw3
ICsxNTgsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIEdvVG9CYWNrRm9yd2FyZEl0
ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZyYW1l
TG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vi
S2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9y
ZVNjcm9sbFBvc2l0aW9uKCkKIAotICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIHVpbnQ2NF90
IGZyYW1lSUQpCisgICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwgU3RyaW5nIHJlZmVycmVyLCB1
aW50NjRfdCBmcmFtZUlEKQogICAgIExvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YSwgU3RyaW5nIE1JTUVUeXBlLCBTdHJpbmcgZW5jb2RpbmdOYW1lLCBVUkwgYmFzZVVSTCwg
dWludDY0X3QgZnJhbWVJRCkKICAgICBMb2FkUmVxdWVzdChzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFy
YW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBMb2FkRGF0YShzdHJ1Y3QgV2ViS2l0OjpMb2Fk
UGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwOWVlMzcwMzlhNjIwMDk4NzNlMTA2NDFmZDZiYzU2Njdm
YjI2Mzc0Li4wMGU5MmJkNzZkM2FiODVkOWU3MTFhYzY5OWQ0MGJlZTgyZjYyOGY3IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTktMDYtMjYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAg
ICAgICBTdWJGcmFtZVNPQXV0aG9yaXphdGlvblNlc3Npb24gc2hvdWxkIHByZXNlcnZlIHRoZSBy
ZWZlcnJlciBoZWFkZXIgd2hlbiBmYWxsIGJhY2sgdG8gd2ViIHBhdGgKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTIzMgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE3MTgzMjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Rlc3RTT0F1dGhv
cml6YXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgQWRk
IGEgdGVzdCB0aGF0IHV0aWxpemVzIFRDUFNlcnZlciBhcyBsb2NhbCBmaWxlcyBhbHdheXMgb21p
dCByZWZlcnJlci4KKwogMjAxOS0wNi0yNSAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEltcGxlbWVudCBhIG5ldyBTUEkgdG8gaW5mb3JtIGNsaWVudHMgYWJv
dXQgQXBwU1NPCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Rlc3RTT0F1dGhvcml6YXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Rlc3RTT0F1dGhvcml6YXRpb24ubW0KaW5kZXggZTczZDIwYjNiNGU1YTNjYzFm
MzBjMzM5MDY1NmU5Zjg1NmU0YTNlNC4uYWIxNTMzMWY3N2NmNzI2OTg4YjZjODI5Y2E1ODljMTg3
MDNiY2I4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9UZXN0U09BdXRob3JpemF0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVGVzdFNPQXV0aG9yaXphdGlvbi5tbQpAQCAtMzEsMTYgKzMxLDE5IEBACiAj
aW1wb3J0ICJDbGFzc01ldGhvZFN3aXp6bGVyLmgiCiAjaW1wb3J0ICJJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVENQU2Vy
dmVyLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZp
Z2F0aW9uQWN0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkRlbGVn
YXRlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvblByaXZhdGUuaD4KKyNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQXBw
U1NPU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQXV0aEtpdFNQSS5oPgogI2lt
cG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0
IDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KICNpbXBvcnQgPHd0Zi9VUkwuaD4KKyNpbXBvcnQg
PHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2ltcG9ydCA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIHN0YXRpYyBib29sIG5hdmlnYXRpb25Db21wbGV0ZWQgPSBmYWxzZTsK
QEAgLTk1LDYgKzk4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIG5ld1dpbmRvd1Jlc3BvbnNlVGVt
cGxhdGUgPQogCiBzdGF0aWMgY29uc3QgY2hhciogcGFyZW50VGVtcGxhdGUgPQogIjxodG1sPiIK
KyI8bWV0YSBuYW1lPSdyZWZlcnJlcicgY29udGVudD0nb3JpZ2luJyAvPiIKICI8aWZyYW1lIHNy
Yz0nJXMnPjwvaWZyYW1lPiIKICI8c2NyaXB0PiIKICJmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShl
dmVudCkiCkBAIC0xMTAsNiArMTE0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGlmcmFtZVRlbXBs
YXRlID0KICI8aHRtbD4iCiAiPHNjcmlwdD4iCiAicGFyZW50LnBvc3RNZXNzYWdlKCdIZWxsby4n
LCAnKicpOyIKKyIlcyIKICI8L3NjcmlwdD4iCiAiPC9odG1sPiI7CiAKQEAgLTIxMjQsNiArMjEy
OSw1MSBAQCBURVNUKFNPQXV0aG9yaXphdGlvblN1YkZyYW1lLCBTT0F1dGhvcml6YXRpb25Mb2Fk
UG9saWN5SWdub3JlQXN5bmMpCiAgICAgRVhQRUNUX0ZBTFNFKGF1dGhvcml6YXRpb25QZXJmb3Jt
ZWQpOwogfQogCitURVNUKFNPQXV0aG9yaXphdGlvblN1YkZyYW1lLCBJbnRlcmNlcHRpb25FcnJv
cldpdGhSZWZlcnJlcikKK3sKKyAgICByZXNldFN0YXRlKCk7CisgICAgQ2xhc3NNZXRob2RTd2l6
emxlciBzd2l6emxlcjEoUEFMOjpnZXRTT0F1dGhvcml6YXRpb25DbGFzcygpLCBAc2VsZWN0b3Io
Y2FuUGVyZm9ybUF1dGhvcml6YXRpb25XaXRoVVJMOnJlc3BvbnNlQ29kZTopLCByZWludGVycHJl
dF9jYXN0PElNUD4ob3ZlcnJpZGVDYW5QZXJmb3JtQXV0aG9yaXphdGlvbldpdGhVUkwpKTsKKyAg
ICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGVyMihQQUw6OmdldFNPQXV0aG9yaXphdGlv
bkNsYXNzKCksIEBzZWxlY3RvcihzZXREZWxlZ2F0ZTopLCByZWludGVycHJldF9jYXN0PElNUD4o
b3ZlcnJpZGVTZXREZWxlZ2F0ZSkpOworICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dpenps
ZXIzKFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGJlZ2luQXV0aG9y
aXphdGlvbldpdGhVUkw6aHR0cEhlYWRlcnM6aHR0cEJvZHk6KSwgcmVpbnRlcnByZXRfY2FzdDxJ
TVA+KG92ZXJyaWRlQmVnaW5BdXRob3JpemF0aW9uV2l0aFVSTCkpOworICAgIENsYXNzTWV0aG9k
U3dpenpsZXIgc3dpenpsZXI0KFtBS0F1dGhvcml6YXRpb25Db250cm9sbGVyIGNsYXNzXSwgQHNl
bGVjdG9yKGlzVVJMRnJvbUFwcGxlT3duZWREb21haW46KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+
KG92ZXJyaWRlSXNVUkxGcm9tQXBwbGVPd25lZERvbWFpbikpOworCisgICAgVENQU2VydmVyIHNl
cnZlcihbcGFyZW50SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgInNpbXBsZS5o
dG1sIiksIGZyYW1lSHRtbCA9IGdlbmVyYXRlSHRtbChpZnJhbWVUZW1wbGF0ZSwgInBhcmVudC5w
b3N0TWVzc2FnZSgnUmVmZXJyZXI6ICcgKyBkb2N1bWVudC5yZWZlcnJlciwgJyonKTsiKV0gKGlu
dCBzb2NrZXQpIHsKKyAgICAgICAgTlNTdHJpbmcgKmZpcnN0UmVzcG9uc2UgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDoKKyAgICAgICAgICAgIEAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAg
ICAgICAgICAgICJDb250ZW50LUxlbmd0aDogJWRcclxuXHJcbiIKKyAgICAgICAgICAgICIlQCIs
CisgICAgICAgICAgICBwYXJlbnRIdG1sLmxlbmd0aCgpLAorICAgICAgICAgICAgKGlkKXBhcmVu
dEh0bWwKKyAgICAgICAgXTsKKyAgICAgICAgTlNTdHJpbmcgKnNlY29uZFJlc3BvbnNlID0gW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6CisgICAgICAgICAgICBAIkhUVFAvMS4xIDIwMCBPS1xy
XG4iCisgICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6ICVkXHJcblxyXG4iCisgICAgICAgICAg
ICAiJUAiLAorICAgICAgICAgICAgZnJhbWVIdG1sLmxlbmd0aCgpLAorICAgICAgICAgICAgKGlk
KWZyYW1lSHRtbAorICAgICAgICBdOworCisgICAgICAgIFRDUFNlcnZlcjo6cmVhZChzb2NrZXQp
OworICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwgZmlyc3RSZXNwb25zZS5VVEY4U3Ry
aW5nLCBmaXJzdFJlc3BvbnNlLmxlbmd0aCk7CisgICAgICAgIFRDUFNlcnZlcjo6cmVhZChzb2Nr
ZXQpOworICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwgc2Vjb25kUmVzcG9uc2UuVVRG
OFN0cmluZywgc2Vjb25kUmVzcG9uc2UubGVuZ3RoKTsKKyAgICB9KTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0U09BdXRob3JpemF0aW9uTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
Y29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5n
ZXQoKSk7CisKKyAgICBhdXRvIG9yaWdpbiA9IG1ha2VTdHJpbmcoImh0dHA6Ly8xMjcuMC4wLjE6
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNlcnZlci5wb3J0KCkpKTsKKyAgICBbd2ViVmlldyBf
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzooaWQpb3JpZ2luXV0gc2hvdWxkT3BlbkV4dGVybmFsVVJMczpOT107CisgICAgW3dlYlZp
ZXcgd2FpdEZvck1lc3NhZ2U6KGlkKW9yaWdpbl07CisgICAgW3dlYlZpZXcgd2FpdEZvck1lc3Nh
Z2U6QCJTT0F1dGhvcml6YXRpb25EaWRTdGFydCJdOworCisgICAgW2dEZWxlZ2F0ZSBhdXRob3Jp
emF0aW9uOmdBdXRob3JpemF0aW9uIGRpZENvbXBsZXRlV2l0aEVycm9yOmFkb3B0TlMoW1tOU0Vy
cm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpOU0NvY29hRXJyb3JEb21haW4gY29kZTowIHVzZXJJ
bmZvOm5pbF0pLmdldCgpXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTooaWQpb3JpZ2lu
XTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIlNPQXV0aG9yaXphdGlvbkRpZENhbmNl
bCJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JNZXNzYWdlOihpZCltYWtlU3RyaW5nKCJSZWZlcnJl
cjogIiwgb3JpZ2luLCAiLyIpXTsgLy8gUmVmZXJyZXIgcG9saWN5IHJlcXVpcmVzICcvJyBhZnRl
ciBvcmlnaW4uCit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>