<?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>163742</bug_id>
          
          <creation_ts>2016-10-20 10:28:40 -0700</creation_ts>
          <short_desc>&quot;Download Linked File&quot; context menu action should use &apos;download&apos; attribute as suggested filename</short_desc>
          <delta_ts>2016-10-20 18:18: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>DOM</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>
          
          <blocked>156056</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rmondello</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1242480</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-20 10:28:40 -0700</bug_when>
    <thetext>&quot;Download Linked File&quot; context menu action should use &apos;download&apos; attribute as suggested filename.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242481</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-20 10:28:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/28840734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242511</commentid>
    <comment_count>2</comment_count>
      <attachid>292234</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-20 12:05:34 -0700</bug_when>
    <thetext>Created attachment 292234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242535</commentid>
    <comment_count>3</comment_count>
      <attachid>292234</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-20 12:52:26 -0700</bug_when>
    <thetext>Comment on attachment 292234
Patch

This needs a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242553</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-20 13:08:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 292234 [details]
&gt; Patch
&gt; 
&gt; This needs a test.

Could you please point me to a similar test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242624</commentid>
    <comment_count>5</comment_count>
      <attachid>292270</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-20 15:36:16 -0700</bug_when>
    <thetext>Created attachment 292270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242710</commentid>
    <comment_count>6</comment_count>
      <attachid>292270</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-20 18:18:39 -0700</bug_when>
    <thetext>Comment on attachment 292270
Patch

Clearing flags on attachment: 292270

Committed r207648: &lt;http://trac.webkit.org/changeset/207648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242711</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-20 18:18:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292234</attachid>
            <date>2016-10-20 12:05:34 -0700</date>
            <delta_ts>2016-10-20 15:36:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163742-20161020120156.patch</filename>
            <type>text/plain</type>
            <size>14557</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRkMTlmZmQ0YTk2Njkx
MjQ4ZGZlMDkwNDYxMTljYjcxZTZkYjljYy4uNjczYjAzMTEwNmRkMTAxYjU1NmE2MWFhY2Q4ZjQ4
MWQwZDcxYTNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTEwLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgIkRvd25sb2FkIExpbmtlZCBG
aWxlIiBjb250ZXh0IG1lbnUgYWN0aW9uIHNob3VsZCB1c2UgJ2Rvd25sb2FkJyBhdHRyaWJ1dGUg
YXMgc3VnZ2VzdGVkIGZpbGVuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjM3NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4ODQwNzM0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb252
ZW5pZW5jZSBtZXRob2QgdG8gSGl0VGVzdFJlc3VsdCB0byByZXR1cm4gdGhlIFVSTCBlbGVtZW50
J3MKKyAgICAgICAgZG93bmxvYWQgYXR0cmlidXRlLgorCisgICAgICAgICogcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6VVJMRWxl
bWVudERvd25sb2FkQXR0cmlidXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3Vs
dC5oOgorCiAyMDE2LTEwLTIwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIENSQVNIIGluIFdlYkNvcmU6Ok1lZGlhU291cmNlOjpzZWVrVG9UaW1lICsgMTg1CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggNDg1ZWQxYTMzMmFhYzI3YTc0YWRhNDQ1YmY3YTZiYjFhZjIxOGJkMS4uZTc4
MTBiZDQ1MDg4MjcyYmFhOTEzMDQ0ZDkzNmZkZDQ5YWZjYjgzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMxIEBACisyMDE2LTEwLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgIkRvd25sb2FkIExpbmtlZCBGaWxlIiBjb250ZXh0IG1lbnUgYWN0aW9uIHNob3Vs
ZCB1c2UgJ2Rvd25sb2FkJyBhdHRyaWJ1dGUgYXMgc3VnZ2VzdGVkIGZpbGVuYW1lCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM3NDIKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI4ODQwNzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZSAiRG93bmxvYWQgTGlua2VkIEZpbGUiIGNvbnRleHQg
bWVudSBhY3Rpb24gdG8gdXNlIHRoZSBhbmNob3IKKyAgICAgICAgZWxlbWVudCdzICdkb3dubG9h
ZCcgYXR0cmlidXRlIGFzIHN1Z2dlc3RlZCBmaWxlbmFtZSBmb3IgdGhlIGRvd25sb2FkLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0
RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhOjpXZWJIaXRU
ZXN0UmVzdWx0RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhOjpl
bmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpj
b250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRvd25sb2FkKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6bGlua1N1Z2dlc3RlZEZpbGVu
YW1lKToKKwogMjAxNi0xMC0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS10gQXZvaWQgc3Ryc3RyKCkgd2hlbiBjaGVja2luZyAoRSlH
TCBleHRlbnNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAK
aW5kZXggMDQ1NzI1YzVjZjg0ODRkZmFlZTYwOThkOTFjOGFhY2I5NDExZDEzMC4uOGFjZGE1YjU0
YjE0OTkzOTcwZTc4NmJkNTI1ZWFiY2MwZWM2ZmVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAtNzg2LDYgKzc4NiwxNCBAQCBFbGVtZW50KiBIaXRU
ZXN0UmVzdWx0Ojppbm5lck5vblNoYXJlZEVsZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBub2Rl
LT5wYXJlbnRFbGVtZW50KCk7CiB9CiAKK2NvbnN0IEF0b21pY1N0cmluZyYgSGl0VGVzdFJlc3Vs
dDo6VVJMRWxlbWVudERvd25sb2FkQXR0cmlidXRlKCkgY29uc3QKK3sKKyAgICBhdXRvKiB1cmxF
bGVtZW50ID0gVVJMRWxlbWVudCgpOworICAgIGlmICghaXM8SFRNTEFuY2hvckVsZW1lbnQ+KHVy
bEVsZW1lbnQpKQorICAgICAgICByZXR1cm4gbnVsbEF0b207CisgICAgcmV0dXJuIHVybEVsZW1l
bnQtPmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpkb3dubG9hZEF0
dHIpOworfQorCiBib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhU3VwcG9ydHNFbmhhbmNlZEZ1bGxz
Y3JlZW4oKSBjb25zdAogewogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPKSAmJiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuaAppbmRleCBiY2M5ODI3YWI1OTAyNDYyNzBhM2M5YTg2YWMwYjllMTFhZjhh
NDRhLi5iMDM3NmY1ZDUwNzQxOTYxNGVhOTkzOGY4ZmEwZDgwNTRlZjdhZTM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGlj
OgogICAgIFNjcm9sbGJhciogc2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXIu
Z2V0KCk7IH0KICAgICBib29sIGlzT3ZlcldpZGdldCgpIGNvbnN0IHsgcmV0dXJuIG1faXNPdmVy
V2lkZ2V0OyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBBdG9taWNTdHJpbmcmIFVSTEVs
ZW1lbnREb3dubG9hZEF0dHJpYnV0ZSgpIGNvbnN0OworCiAgICAgLy8gRm9yd2FyZGVkIGZyb20g
SGl0VGVzdExvY2F0aW9uCiAgICAgYm9vbCBpc1JlY3RCYXNlZFRlc3QoKSBjb25zdCB7IHJldHVy
biBtX2hpdFRlc3RMb2NhdGlvbi5pc1JlY3RCYXNlZFRlc3QoKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNmVmMTc0NDUx
NzdhODRmY2QxMjcwN2IwMThkOThjNDNjNTM3NjkzNS4uOGU5N2YwNzhjZjY4YWQ4OTFmOGY5OWM4
ZWNkZDBlYzE3YWRjMDY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDU5LDkgKzQ1OSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8CiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZG93bmxvYWRSZXF1ZXN0KFNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxv
YWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBOZXR3b3JrUHJvY2Vz
czo6ZG93bmxvYWRSZXF1ZXN0KFNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxv
YWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dl
c3RlZEZpbGVuYW1lKQogewotICAgIGRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoc2Vz
c2lvbklELCBkb3dubG9hZElELCByZXF1ZXN0KTsKKyAgICBkb3dubG9hZE1hbmFnZXIoKS5zdGFy
dERvd25sb2FkKHNlc3Npb25JRCwgZG93bmxvYWRJRCwgcmVxdWVzdCwgc3VnZ2VzdGVkRmlsZW5h
bWUpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXN1bWVEb3dubG9hZChTZXNzaW9uSUQg
c2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDI2ODY0NmRmODk1MTJi
OTEyMTQ5MGJjNTI1ODI5YzA3NTRjZTYyMjkuLjViYzQzMWQzZTM0NTc5YjBjOWY3ZWU3ZGE0Mzc1
MWIwYzdiYWVjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaApAQCAtMTcwLDcgKzE3MCw3IEBAIHByaXZhdGU6CiAgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIHRha2UgYSBzZXNzaW9uIElEIHNvIHdlIGNhbiBpZGVudGlmeSB3aGljaCBkaXNr
IGNhY2hlIHRvIGRlbGV0ZS4KICAgICB2b2lkIGNsZWFyRGlza0NhY2hlKHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiBjb21wbGV0aW9uSGFuZGxlcik7CiAKLSAgICB2b2lkIGRvd25sb2FkUmVxdWVzdChXZWJD
b3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpOworICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0KFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxv
YWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWRGaWxlbmFtZSk7CiAgICAgdm9pZCByZXN1bWVEb3dubG9hZChXZWJDb3JlOjpTZXNzaW9u
SUQsIERvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29u
c3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICAgICB2
b2lkIGNhbmNlbERvd25sb2FkKERvd25sb2FkSUQpOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNF
X0FVVEhfQ0FMTEJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDBhZWE3YzhiMzgxZTRlNGI3Mzcz
YmNlYTRhOGRjNjk3YTM1MjJjZGMuLjJhNDgyZGU1ZmEwNzUyM2VkYWE4NDRjOTY3NDdlYmNmNDli
MGM5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC00MSw3ICs0MSw3IEBAIG1lc3NhZ2VzIC0+IE5l
dHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5
cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBEZWxldGVXZWJzaXRl
RGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zLCBWZWN0b3I8U3RyaW5nPiBjb29raWVIb3N0TmFt
ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKLSAgICBEb3dubG9hZFJlcXVlc3QoV2ViQ29yZTo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KQorICAgIERvd25sb2FkUmVxdWVzdChXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSkK
ICAgICBSZXN1bWVEb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgSVBDOjpEYXRhUmVmZXJlbmNlIHJlc3VtZURhdGEsIFN0
cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKQogICAgIENhbmNlbERvd25sb2FkKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9h
ZElEKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3Vs
dERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNw
cAppbmRleCBhMjRjMGU0NTU1ZDVmNWQxNzY0OWNlOGE1N2M5YmU5NWY1YzNkZmU5Li41N2QyZDEx
NzFkM2Y4OTE0OWViYTJiYmU2NGEzZWZmZjhkYmE2MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgV2ViSGl0
VGVzdFJlc3VsdERhdGE6OldlYkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0IFdlYkNvcmU6OkhpdFRl
c3RSZXN1bHQmIGhpdFRlc3QKICAgICAsIGFic29sdXRlTWVkaWFVUkwoaGl0VGVzdFJlc3VsdC5h
YnNvbHV0ZU1lZGlhVVJMKCkuc3RyaW5nKCkpCiAgICAgLCBsaW5rTGFiZWwoaGl0VGVzdFJlc3Vs
dC50ZXh0Q29udGVudCgpKQogICAgICwgbGlua1RpdGxlKGhpdFRlc3RSZXN1bHQudGl0bGVEaXNw
bGF5U3RyaW5nKCkpCisgICAgLCBsaW5rU3VnZ2VzdGVkRmlsZW5hbWUoaGl0VGVzdFJlc3VsdC5V
UkxFbGVtZW50RG93bmxvYWRBdHRyaWJ1dGUoKSkKICAgICAsIGlzQ29udGVudEVkaXRhYmxlKGhp
dFRlc3RSZXN1bHQuaXNDb250ZW50RWRpdGFibGUoKSkKICAgICAsIGVsZW1lbnRCb3VuZGluZ0Jv
eChlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzKGhpdFRlc3RSZXN1bHQpKQog
ICAgICwgaXNTY3JvbGxiYXIoaGl0VGVzdFJlc3VsdC5zY3JvbGxiYXIoKSkKQEAgLTY1LDYgKzY2
LDcgQEAgV2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0IFdl
YkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3QKICAgICAsIGFic29sdXRlTWVkaWFVUkwoaGl0
VGVzdFJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCkuc3RyaW5nKCkpCiAgICAgLCBsaW5rTGFiZWwo
aGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgpKQogICAgICwgbGlua1RpdGxlKGhpdFRlc3RSZXN1
bHQudGl0bGVEaXNwbGF5U3RyaW5nKCkpCisgICAgLCBsaW5rU3VnZ2VzdGVkRmlsZW5hbWUoaGl0
VGVzdFJlc3VsdC5VUkxFbGVtZW50RG93bmxvYWRBdHRyaWJ1dGUoKSkKICAgICAsIGlzQ29udGVu
dEVkaXRhYmxlKGhpdFRlc3RSZXN1bHQuaXNDb250ZW50RWRpdGFibGUoKSkKICAgICAsIGVsZW1l
bnRCb3VuZGluZ0JveChlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzKGhpdFRl
c3RSZXN1bHQpKQogICAgICwgaXNTY3JvbGxiYXIoaGl0VGVzdFJlc3VsdC5zY3JvbGxiYXIoKSkK
QEAgLTEwMCw2ICsxMDIsNyBAQCB2b2lkIFdlYkhpdFRlc3RSZXN1bHREYXRhOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgYWJzb2x1dGVNZWRpYVVS
TDsKICAgICBlbmNvZGVyIDw8IGxpbmtMYWJlbDsKICAgICBlbmNvZGVyIDw8IGxpbmtUaXRsZTsK
KyAgICBlbmNvZGVyIDw8IGxpbmtTdWdnZXN0ZWRGaWxlbmFtZTsKICAgICBlbmNvZGVyIDw8IGlz
Q29udGVudEVkaXRhYmxlOwogICAgIGVuY29kZXIgPDwgZWxlbWVudEJvdW5kaW5nQm94OwogICAg
IGVuY29kZXIgPDwgaXNTY3JvbGxiYXI7CkBAIC0xMzMsNiArMTM2LDcgQEAgYm9vbCBXZWJIaXRU
ZXN0UmVzdWx0RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViSGl0VGVzdFJl
c3VsdERhdGEmIGgKICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRh
LmFic29sdXRlTWVkaWFVUkwpCiAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVz
dWx0RGF0YS5saW5rTGFiZWwpCiAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVz
dWx0RGF0YS5saW5rVGl0bGUpCisgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVz
dWx0RGF0YS5saW5rU3VnZ2VzdGVkRmlsZW5hbWUpCiAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29k
ZShoaXRUZXN0UmVzdWx0RGF0YS5pc0NvbnRlbnRFZGl0YWJsZSkKICAgICAgICAgfHwgIWRlY29k
ZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmVsZW1lbnRCb3VuZGluZ0JveCkKICAgICAgICAg
fHwgIWRlY29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmlzU2Nyb2xsYmFyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuaAppbmRleCAwOGIxMDZmZWNi
MDRiYjA1YTNmMGQ0MmY1ZjA2YmZlMzJlMTZiYTJjLi4zMjQ2OGFiYTljNzU2MzE3OTBhODAwYzgy
YjE4ZTBkMDBhZWQ5MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0
VGVzdFJlc3VsdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJl
c3VsdERhdGEuaApAQCAtNTAsNiArNTAsNyBAQCBzdHJ1Y3QgV2ViSGl0VGVzdFJlc3VsdERhdGEg
ewogICAgIFN0cmluZyBhYnNvbHV0ZU1lZGlhVVJMOwogICAgIFN0cmluZyBsaW5rTGFiZWw7CiAg
ICAgU3RyaW5nIGxpbmtUaXRsZTsKKyAgICBTdHJpbmcgbGlua1N1Z2dlc3RlZEZpbGVuYW1lOwog
ICAgIGJvb2wgaXNDb250ZW50RWRpdGFibGU7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50
Qm91bmRpbmdCb3g7CiAgICAgYm9vbCBpc1Njcm9sbGJhcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOWZlZTE4NWIwZmUyNDk2NTEyMTU0ZWUyZWIyZjk2
ODk3ZTMxYTc4Ni4uZjljMzc0Y2ZmYzEyZDc1NDExMWYxZTFjYTQxMjg2N2FiOGY3MzJhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ1ODcsNyArNDU4
Nyw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBX
ZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQogICAgICAgICByZXR1cm47ICAgIAogICAgIH0K
ICAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtU
b0Rpc2spIHsKLSAgICAgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmRvd25sb2FkKHRoaXMs
IFVSTChVUkwoKSwgbV9hY3RpdmVDb250ZXh0TWVudUNvbnRleHREYXRhLndlYkhpdFRlc3RSZXN1
bHREYXRhKCkuYWJzb2x1dGVMaW5rVVJMKSk7CisgICAgICAgIGF1dG8mIGhpdFRlc3RSZXN1bHQg
PSBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4dERhdGEud2ViSGl0VGVzdFJlc3VsdERhdGEoKTsK
KyAgICAgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmRvd25sb2FkKHRoaXMsIFVSTChVUkwo
KSwgaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZUxpbmtVUkwpLCBoaXRUZXN0UmVzdWx0LmxpbmtTdWdn
ZXN0ZWRGaWxlbmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGl0ZW0uYWN0
aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRNZWRpYVRvRGlzaykgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggN2M0ODMzZmY0NWU1
OGFlMzkxZTk2Mjg5MmIxY2I1NmU4MWZjZGZlMi4uYWQ3NTAyYmViMGJkZTU0ZjM5ODQxMTk5YzE5
NjRmZTk0NDUxMzM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCkBAIC04MTQsNyArODE0LDcgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Bv
b2w6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgUmVmPEFQSToKICAgICBy
ZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2ViUGFnZShwYWdlQ2xpZW50LCBXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uKSk7CiB9CiAKLURvd25sb2FkUHJveHkqIFdlYlByb2Nlc3NQb29sOjpkb3dubG9h
ZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpCitEb3dubG9hZFByb3h5KiBXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQoV2ViUGFnZVBy
b3h5KiBpbml0aWF0aW5nUGFnZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQogewogICAgIERvd25sb2FkUHJveHkqIGRvd25s
b2FkUHJveHkgPSBjcmVhdGVEb3dubG9hZFByb3h5KHJlcXVlc3QpOwogICAgIFNlc3Npb25JRCBz
ZXNzaW9uSUQgPSBpbml0aWF0aW5nUGFnZSA/IGluaXRpYXRpbmdQYWdlLT5zZXNzaW9uSUQoKSA6
IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwpAQCAtODI3LDcgKzgyNyw3IEBAIERvd25s
b2FkUHJveHkqIFdlYlByb2Nlc3NQb29sOjpkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRp
bmdQYWdlLCBjb25zdCBSZXNvCiAgICAgICAgICAgICB1cGRhdGVkUmVxdWVzdC5zZXRGaXJzdFBh
cnR5Rm9yQ29va2llcyhVUkwoVVJMKCksIGluaXRpYXRpbmdQYWdlLT5wYWdlTG9hZFN0YXRlKCku
dXJsKCkpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdXBkYXRlZFJlcXVlc3Quc2V0Rmly
c3RQYXJ0eUZvckNvb2tpZXMoVVJMKCkpOwotICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RG93bmxvYWRSZXF1ZXN0KHNlc3Npb25JRCwgZG93
bmxvYWRQcm94eS0+ZG93bmxvYWRJRCgpLCB1cGRhdGVkUmVxdWVzdCksIDApOworICAgICAgICBu
ZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RG93bmxvYWRS
ZXF1ZXN0KHNlc3Npb25JRCwgZG93bmxvYWRQcm94eS0+ZG93bmxvYWRJRCgpLCB1cGRhdGVkUmVx
dWVzdCwgc3VnZ2VzdGVkRmlsZW5hbWUpLCAwKTsKICAgICAgICAgcmV0dXJuIGRvd25sb2FkUHJv
eHk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmlu
ZGV4IGQxZDI0MjljY2FiMDkzOTRiN2FlMDk4NzNiYTQ1MGFiMTYzYTMxYWUuLmZjZGU5YTAzYjBl
MWZmMTM0M2E3ODlkMzMzNzNmNzJiNDVkOWVmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0xNjYsNyArMTY2LDcgQEAgcHVibGljOgogCiAgICAgY29u
c3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ3Vy
YXRpb24tPmluamVjdGVkQnVuZGxlUGF0aCgpOyB9CiAKLSAgICBEb3dubG9hZFByb3h5KiBkb3du
bG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKKyAgICBEb3dubG9hZFByb3h5KiBkb3dubG9hZChXZWJQYWdlUHJveHkqIGlu
aXRpYXRpbmdQYWdlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJp
bmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9KTsKICAgICBEb3dubG9hZFByb3h5KiByZXN1bWVE
b3dubG9hZChjb25zdCBBUEk6OkRhdGEqIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCk7
CiAKICAgICB2b2lkIHNldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YShQYXNz
UmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YSkgeyBtX2luamVjdGVkQnVuZGxlSW5pdGlhbGl6
YXRpb25Vc2VyRGF0YSA9IHVzZXJEYXRhOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNjJlNWJkM2M2ODA5MThjNzdmNDQyZjI2MjUzYTFlYmIz
NzI0MDIzNS4uM2VlY2Y1MTFhY2Y2NGYwMjBhN2I0OWQyNDlkY2YzM2E1ZDM1NWNlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcApAQCAtMzQsOCArMzQs
NiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxBbmNob3JFbGVtZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9IVE1MTmFtZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC0xNDMsMTAgKzE0MSw3IEBAIFN0cmluZyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHQ6OmxpbmtUaXRsZSgpIGNvbnN0CiAKIFN0cmluZyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHQ6OmxpbmtTdWdnZXN0ZWRGaWxlbmFtZSgpIGNvbnN0CiB7Ci0gICAgYXV0byogdXJsRWxlbWVu
dCA9IG1faGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50KCk7Ci0gICAgaWYgKCFpczxIVE1MQW5jaG9y
RWxlbWVudD4odXJsRWxlbWVudCkpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1
cm4gdXJsRWxlbWVudC0+YXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6
OmRvd25sb2FkQXR0cik7CisgICAgcmV0dXJuIG1faGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50RG93
bmxvYWRBdHRyaWJ1dGUoKTsKIH0KIAogSW50UmVjdCBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHQ6OmltYWdlUmVjdCgpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292270</attachid>
            <date>2016-10-20 15:36:16 -0700</date>
            <delta_ts>2016-10-20 18:18:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163742-20161020153239.patch</filename>
            <type>text/plain</type>
            <size>26803</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRmNjNhNTA4YzM1MmM2
ZDFhYTJjZjljYWU5NDU1OGU1YTgyYjc4NS4uY2M0NGZlNWZkZmRmOTEwYmU2ODA0ZjJhMmM1ODVk
NWJiOTc2NTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTEwLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgIkRvd25sb2FkIExpbmtlZCBG
aWxlIiBjb250ZXh0IG1lbnUgYWN0aW9uIHNob3VsZCB1c2UgJ2Rvd25sb2FkJyBhdHRyaWJ1dGUg
YXMgc3VnZ2VzdGVkIGZpbGVuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjM3NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4ODQwNzM0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb252
ZW5pZW5jZSBtZXRob2QgdG8gSGl0VGVzdFJlc3VsdCB0byByZXR1cm4gdGhlIFVSTCBlbGVtZW50
J3MKKyAgICAgICAgZG93bmxvYWQgYXR0cmlidXRlLgorCisgICAgICAgICogcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6VVJMRWxl
bWVudERvd25sb2FkQXR0cmlidXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3Vs
dC5oOgorCiAyMDE2LTEwLTIwICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gcGFzc2luZyBhIG51bGwg
QXJyYXlCdWZmZXIgdG8gYnVmZmVyRGF0YSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDg1ZWQxYTMzMmFhYzI3
YTc0YWRhNDQ1YmY3YTZiYjFhZjIxOGJkMS4uZTc4MTBiZDQ1MDg4MjcyYmFhOTEzMDQ0ZDkzNmZk
ZDQ5YWZjYjgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE2LTEwLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgIkRvd25sb2FkIExpbmtlZCBG
aWxlIiBjb250ZXh0IG1lbnUgYWN0aW9uIHNob3VsZCB1c2UgJ2Rvd25sb2FkJyBhdHRyaWJ1dGUg
YXMgc3VnZ2VzdGVkIGZpbGVuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjM3NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4ODQwNzM0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSAi
RG93bmxvYWQgTGlua2VkIEZpbGUiIGNvbnRleHQgbWVudSBhY3Rpb24gdG8gdXNlIHRoZSBhbmNo
b3IKKyAgICAgICAgZWxlbWVudCdzICdkb3dubG9hZCcgYXR0cmlidXRlIGFzIHN1Z2dlc3RlZCBm
aWxlbmFtZSBmb3IgdGhlIGRvd25sb2FkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZG93bmxv
YWRSZXF1ZXN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkhpdFRlc3RSZXN1bHREYXRhOjpXZWJIaXRUZXN0UmVzdWx0RGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJIaXRUZXN0UmVzdWx0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViSGl0VGVz
dFJlc3VsdERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OmRvd25sb2FkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdDo6bGlua1N1Z2dlc3RlZEZpbGVuYW1lKToKKwogMjAxNi0xMC0yMCAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQXZv
aWQgc3Ryc3RyKCkgd2hlbiBjaGVja2luZyAoRSlHTCBleHRlbnNpb25zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggMDQ1NzI1YzVjZjg0ODRkZmFlZTYw
OThkOTFjOGFhY2I5NDExZDEzMC4uOGFjZGE1YjU0YjE0OTkzOTcwZTc4NmJkNTI1ZWFiY2MwZWM2
ZmVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAt
Nzg2LDYgKzc4NiwxNCBAQCBFbGVtZW50KiBIaXRUZXN0UmVzdWx0Ojppbm5lck5vblNoYXJlZEVs
ZW1lbnQoKSBjb25zdAogICAgIHJldHVybiBub2RlLT5wYXJlbnRFbGVtZW50KCk7CiB9CiAKK2Nv
bnN0IEF0b21pY1N0cmluZyYgSGl0VGVzdFJlc3VsdDo6VVJMRWxlbWVudERvd25sb2FkQXR0cmli
dXRlKCkgY29uc3QKK3sKKyAgICBhdXRvKiB1cmxFbGVtZW50ID0gVVJMRWxlbWVudCgpOworICAg
IGlmICghaXM8SFRNTEFuY2hvckVsZW1lbnQ+KHVybEVsZW1lbnQpKQorICAgICAgICByZXR1cm4g
bnVsbEF0b207CisgICAgcmV0dXJuIHVybEVsZW1lbnQtPmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oSFRNTE5hbWVzOjpkb3dubG9hZEF0dHIpOworfQorCiBib29sIEhpdFRlc3RSZXN1
bHQ6Om1lZGlhU3VwcG9ydHNFbmhhbmNlZEZ1bGxzY3JlZW4oKSBjb25zdAogewogI2lmIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFZJREVPKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaAppbmRleCBiY2M5ODI3
YWI1OTAyNDYyNzBhM2M5YTg2YWMwYjllMTFhZjhhNDRhLi5iMDM3NmY1ZDUwNzQxOTYxNGVhOTkz
OGY4ZmEwZDgwNTRlZjdhZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVz
dWx0LmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogICAgIFNjcm9sbGJhciogc2Nyb2xsYmFy
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KICAgICBib29sIGlzT3Zlcldp
ZGdldCgpIGNvbnN0IHsgcmV0dXJuIG1faXNPdmVyV2lkZ2V0OyB9CiAKKyAgICBXRUJDT1JFX0VY
UE9SVCBjb25zdCBBdG9taWNTdHJpbmcmIFVSTEVsZW1lbnREb3dubG9hZEF0dHJpYnV0ZSgpIGNv
bnN0OworCiAgICAgLy8gRm9yd2FyZGVkIGZyb20gSGl0VGVzdExvY2F0aW9uCiAgICAgYm9vbCBp
c1JlY3RCYXNlZFRlc3QoKSBjb25zdCB7IHJldHVybiBtX2hpdFRlc3RMb2NhdGlvbi5pc1JlY3RC
YXNlZFRlc3QoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKaW5kZXggNmVmMTc0NDUxNzdhODRmY2QxMjcwN2IwMThkOThjNDNjNTM3
NjkzNS4uOGU5N2YwNzhjZjY4YWQ4OTFmOGY5OWM4ZWNkZDBlYzE3YWRjMDY1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDU5
LDkgKzQ1OSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3Jp
Z2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8CiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRSZXF1ZXN0KFNlc3Npb25J
RCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZG93bmxvYWRSZXF1ZXN0KFNlc3Npb25J
RCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQogewotICAgIGRvd25s
b2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoc2Vzc2lvbklELCBkb3dubG9hZElELCByZXF1ZXN0
KTsKKyAgICBkb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKHNlc3Npb25JRCwgZG93bmxv
YWRJRCwgcmVxdWVzdCwgc3VnZ2VzdGVkRmlsZW5hbWUpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpyZXN1bWVEb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25s
b2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5n
JiBwYXRoLCBjb25zdCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4
dGVuc2lvbkhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCmluZGV4IDI2ODY0NmRmODk1MTJiOTEyMTQ5MGJjNTI1ODI5YzA3NTRjZTYyMjku
LjViYzQzMWQzZTM0NTc5YjBjOWY3ZWU3ZGE0Mzc1MWIwYzdiYWVjYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTcwLDcgKzE3MCw3
IEBAIHByaXZhdGU6CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSBzZXNzaW9uIElE
IHNvIHdlIGNhbiBpZGVudGlmeSB3aGljaCBkaXNrIGNhY2hlIHRvIGRlbGV0ZS4KICAgICB2b2lk
IGNsZWFyRGlza0NhY2hlKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9k
aWZpZWRTaW5jZSwgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjb21wbGV0aW9uSGFuZGxlcik7CiAK
LSAgICB2b2lkIGRvd25sb2FkUmVxdWVzdChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgZG93bmxvYWRSZXF1
ZXN0KFdlYkNvcmU6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSk7CiAgICAgdm9pZCBy
ZXN1bWVEb3dubG9hZChXZWJDb3JlOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKICAgICB2b2lkIGNhbmNlbERvd25sb2FkKERvd25sb2Fk
SUQpOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDBhZWE3YzhiMzgxZTRlNGI3MzczYmNlYTRhOGRjNjk3YTM1MjJjZGMuLjJhNDgy
ZGU1ZmEwNzUyM2VkYWE4NDRjOTY3NDdlYmNmNDliMGM5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBA
IC00MSw3ICs0MSw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBEZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6
Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKICAgICBEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJz
aXRlRGF0YVR5cGVzLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5z
LCBWZWN0b3I8U3RyaW5nPiBjb29raWVIb3N0TmFtZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAK
LSAgICBEb3dubG9hZFJlcXVlc3QoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0
OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KQorICAgIERvd25sb2FkUmVxdWVzdChXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJL
aXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSkKICAgICBSZXN1bWVEb3dubG9hZChXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgSVBD
OjpEYXRhUmVmZXJlbmNlIHJlc3VtZURhdGEsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogICAgIENhbmNlbERvd25s
b2FkKFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElEKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcAppbmRleCBhMjRjMGU0NTU1ZDVmNWQxNzY0
OWNlOGE1N2M5YmU5NWY1YzNkZmU5Li41N2QyZDExNzFkM2Y4OTE0OWViYTJiYmU2NGEzZWZmZjhk
YmE2MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3Vs
dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0RGF0
YS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAgV2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRlc3RS
ZXN1bHREYXRhKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3QKICAgICAsIGFi
c29sdXRlTWVkaWFVUkwoaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCkuc3RyaW5nKCkp
CiAgICAgLCBsaW5rTGFiZWwoaGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgpKQogICAgICwgbGlu
a1RpdGxlKGhpdFRlc3RSZXN1bHQudGl0bGVEaXNwbGF5U3RyaW5nKCkpCisgICAgLCBsaW5rU3Vn
Z2VzdGVkRmlsZW5hbWUoaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50RG93bmxvYWRBdHRyaWJ1dGUo
KSkKICAgICAsIGlzQ29udGVudEVkaXRhYmxlKGhpdFRlc3RSZXN1bHQuaXNDb250ZW50RWRpdGFi
bGUoKSkKICAgICAsIGVsZW1lbnRCb3VuZGluZ0JveChlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRv
d0Nvb3JkaW5hdGVzKGhpdFRlc3RSZXN1bHQpKQogICAgICwgaXNTY3JvbGxiYXIoaGl0VGVzdFJl
c3VsdC5zY3JvbGxiYXIoKSkKQEAgLTY1LDYgKzY2LDcgQEAgV2ViSGl0VGVzdFJlc3VsdERhdGE6
OldlYkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRl
c3QKICAgICAsIGFic29sdXRlTWVkaWFVUkwoaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJM
KCkuc3RyaW5nKCkpCiAgICAgLCBsaW5rTGFiZWwoaGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgp
KQogICAgICwgbGlua1RpdGxlKGhpdFRlc3RSZXN1bHQudGl0bGVEaXNwbGF5U3RyaW5nKCkpCisg
ICAgLCBsaW5rU3VnZ2VzdGVkRmlsZW5hbWUoaGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50RG93bmxv
YWRBdHRyaWJ1dGUoKSkKICAgICAsIGlzQ29udGVudEVkaXRhYmxlKGhpdFRlc3RSZXN1bHQuaXND
b250ZW50RWRpdGFibGUoKSkKICAgICAsIGVsZW1lbnRCb3VuZGluZ0JveChlbGVtZW50Qm91bmRp
bmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzKGhpdFRlc3RSZXN1bHQpKQogICAgICwgaXNTY3JvbGxi
YXIoaGl0VGVzdFJlc3VsdC5zY3JvbGxiYXIoKSkKQEAgLTEwMCw2ICsxMDIsNyBAQCB2b2lkIFdl
YkhpdFRlc3RSZXN1bHREYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgYWJzb2x1dGVNZWRpYVVSTDsKICAgICBlbmNvZGVyIDw8IGxpbmtMYWJl
bDsKICAgICBlbmNvZGVyIDw8IGxpbmtUaXRsZTsKKyAgICBlbmNvZGVyIDw8IGxpbmtTdWdnZXN0
ZWRGaWxlbmFtZTsKICAgICBlbmNvZGVyIDw8IGlzQ29udGVudEVkaXRhYmxlOwogICAgIGVuY29k
ZXIgPDwgZWxlbWVudEJvdW5kaW5nQm94OwogICAgIGVuY29kZXIgPDwgaXNTY3JvbGxiYXI7CkBA
IC0xMzMsNiArMTM2LDcgQEAgYm9vbCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlciwgV2ViSGl0VGVzdFJlc3VsdERhdGEmIGgKICAgICAgICAgfHwgIWRl
Y29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmFic29sdXRlTWVkaWFVUkwpCiAgICAgICAg
IHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVzdWx0RGF0YS5saW5rTGFiZWwpCiAgICAgICAg
IHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVzdWx0RGF0YS5saW5rVGl0bGUpCisgICAgICAg
IHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVzdWx0RGF0YS5saW5rU3VnZ2VzdGVkRmlsZW5h
bWUpCiAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVzdWx0RGF0YS5pc0NvbnRl
bnRFZGl0YWJsZSkKICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRh
LmVsZW1lbnRCb3VuZGluZ0JveCkKICAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGhpdFRlc3RS
ZXN1bHREYXRhLmlzU2Nyb2xsYmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVz
dFJlc3VsdERhdGEuaAppbmRleCAwOGIxMDZmZWNiMDRiYjA1YTNmMGQ0MmY1ZjA2YmZlMzJlMTZi
YTJjLi4zMjQ2OGFiYTljNzU2MzE3OTBhODAwYzgyYjE4ZTBkMDBhZWQ5MGM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuaApAQCAtNTAsNiArNTAsNyBA
QCBzdHJ1Y3QgV2ViSGl0VGVzdFJlc3VsdERhdGEgewogICAgIFN0cmluZyBhYnNvbHV0ZU1lZGlh
VVJMOwogICAgIFN0cmluZyBsaW5rTGFiZWw7CiAgICAgU3RyaW5nIGxpbmtUaXRsZTsKKyAgICBT
dHJpbmcgbGlua1N1Z2dlc3RlZEZpbGVuYW1lOwogICAgIGJvb2wgaXNDb250ZW50RWRpdGFibGU7
CiAgICAgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50Qm91bmRpbmdCb3g7CiAgICAgYm9vbCBpc1Nj
cm9sbGJhcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
OWZlZTE4NWIwZmUyNDk2NTEyMTU0ZWUyZWIyZjk2ODk3ZTMxYTc4Ni4uZjljMzc0Y2ZmYzEyZDc1
NDExMWYxZTFjYTQxMjg2N2FiOGY3MzJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTQ1ODcsNyArNDU4Nyw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpj
b250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVt
KQogICAgICAgICByZXR1cm47ICAgIAogICAgIH0KICAgICBpZiAoaXRlbS5hY3Rpb24oKSA9PSBD
b250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2spIHsKLSAgICAgICAgbV9wcm9jZXNz
LT5wcm9jZXNzUG9vbCgpLmRvd25sb2FkKHRoaXMsIFVSTChVUkwoKSwgbV9hY3RpdmVDb250ZXh0
TWVudUNvbnRleHREYXRhLndlYkhpdFRlc3RSZXN1bHREYXRhKCkuYWJzb2x1dGVMaW5rVVJMKSk7
CisgICAgICAgIGF1dG8mIGhpdFRlc3RSZXN1bHQgPSBtX2FjdGl2ZUNvbnRleHRNZW51Q29udGV4
dERhdGEud2ViSGl0VGVzdFJlc3VsdERhdGEoKTsKKyAgICAgICAgbV9wcm9jZXNzLT5wcm9jZXNz
UG9vbCgpLmRvd25sb2FkKHRoaXMsIFVSTChVUkwoKSwgaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZUxp
bmtVUkwpLCBoaXRUZXN0UmVzdWx0LmxpbmtTdWdnZXN0ZWRGaWxlbmFtZSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgaWYgKGl0ZW0uYWN0aW9uKCkgPT0gQ29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRNZWRpYVRvRGlzaykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKaW5kZXggN2M0ODMzZmY0NWU1OGFlMzkxZTk2Mjg5MmIxY2I1NmU4MWZjZGZl
Mi4uYWQ3NTAyYmViMGJkZTU0ZjM5ODQxMTk5YzE5NjRmZTk0NDUxMzM0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC04MTQsNyArODE0LDcgQEAg
UmVmPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVu
dCYgcGFnZUNsaWVudCwgUmVmPEFQSToKICAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2ViUGFn
ZShwYWdlQ2xpZW50LCBXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CiB9CiAKLURvd25sb2Fk
UHJveHkqIFdlYlByb2Nlc3NQb29sOjpkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQ
YWdlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitEb3dubG9hZFByb3h5KiBXZWJQ
cm9jZXNzUG9vbDo6ZG93bmxvYWQoV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1l
KQogewogICAgIERvd25sb2FkUHJveHkqIGRvd25sb2FkUHJveHkgPSBjcmVhdGVEb3dubG9hZFBy
b3h5KHJlcXVlc3QpOwogICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBpbml0aWF0aW5nUGFnZSA/
IGluaXRpYXRpbmdQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpOwpAQCAtODI3LDcgKzgyNyw3IEBAIERvd25sb2FkUHJveHkqIFdlYlByb2Nlc3NQb29sOjpk
b3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBSZXNvCiAgICAgICAg
ICAgICB1cGRhdGVkUmVxdWVzdC5zZXRGaXJzdFBhcnR5Rm9yQ29va2llcyhVUkwoVVJMKCksIGlu
aXRpYXRpbmdQYWdlLT5wYWdlTG9hZFN0YXRlKCkudXJsKCkpKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgdXBkYXRlZFJlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMoVVJMKCkpOwot
ICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
RG93bmxvYWRSZXF1ZXN0KHNlc3Npb25JRCwgZG93bmxvYWRQcm94eS0+ZG93bmxvYWRJRCgpLCB1
cGRhdGVkUmVxdWVzdCksIDApOworICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RG93bmxvYWRSZXF1ZXN0KHNlc3Npb25JRCwgZG93bmxvYWRQ
cm94eS0+ZG93bmxvYWRJRCgpLCB1cGRhdGVkUmVxdWVzdCwgc3VnZ2VzdGVkRmlsZW5hbWUpLCAw
KTsKICAgICAgICAgcmV0dXJuIGRvd25sb2FkUHJveHk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGQxZDI0MjljY2FiMDkzOTRiN2FlMDk4
NzNiYTQ1MGFiMTYzYTMxYWUuLmZjZGU5YTAzYjBlMWZmMTM0M2E3ODlkMzMzNzNmNzJiNDVkOWVm
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0xNjYs
NyArMTY2LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBh
dGgoKSBjb25zdCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24tPmluamVjdGVkQnVuZGxlUGF0aCgp
OyB9CiAKLSAgICBEb3dubG9hZFByb3h5KiBkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRp
bmdQYWdlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBEb3dubG9hZFBy
b3h5KiBkb3dubG9hZChXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lID0geyB9
KTsKICAgICBEb3dubG9hZFByb3h5KiByZXN1bWVEb3dubG9hZChjb25zdCBBUEk6OkRhdGEqIHJl
c3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCk7CiAKICAgICB2b2lkIHNldEluamVjdGVkQnVu
ZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YShQYXNzUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0
YSkgeyBtX2luamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSA9IHVzZXJEYXRhOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNjJl
NWJkM2M2ODA5MThjNzdmNDQyZjI2MjUzYTFlYmIzNzI0MDIzNS4uM2VlY2Y1MTFhY2Y2NGYwMjBh
N2I0OWQyNDlkY2YzM2E1ZDM1NWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVI
aXRUZXN0UmVzdWx0LmNwcApAQCAtMzQsOCArMzQsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZVZpZXcuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0hUTUxBbmNob3JFbGVtZW50Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xNDMsMTAgKzE0MSw3IEBAIFN0
cmluZyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmxpbmtUaXRsZSgpIGNvbnN0CiAKIFN0
cmluZyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmxpbmtTdWdnZXN0ZWRGaWxlbmFtZSgp
IGNvbnN0CiB7Ci0gICAgYXV0byogdXJsRWxlbWVudCA9IG1faGl0VGVzdFJlc3VsdC5VUkxFbGVt
ZW50KCk7Ci0gICAgaWYgKCFpczxIVE1MQW5jaG9yRWxlbWVudD4odXJsRWxlbWVudCkpCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gdXJsRWxlbWVudC0+YXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmRvd25sb2FkQXR0cik7CisgICAgcmV0dXJu
IG1faGl0VGVzdFJlc3VsdC5VUkxFbGVtZW50RG93bmxvYWRBdHRyaWJ1dGUoKTsKIH0KIAogSW50
UmVjdCBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlUmVjdCgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGEyNDMzYWZj
MGM4ZmM3OTk3MWY4MDlmYWMxOWMwYTg2YTEwYzYyOS4uMjIwMzVjNDMzYzQzMDVmYmI4M2NkMjBk
ZjVjZjFhNDViMGFmYTRlMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTEwLTIwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgIkRvd25sb2FkIExpbmtlZCBGaWxlIiBjb250ZXh0
IG1lbnUgYWN0aW9uIHNob3VsZCB1c2UgJ2Rvd25sb2FkJyBhdHRyaWJ1dGUgYXMgc3VnZ2VzdGVk
IGZpbGVuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjM3NDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4ODQwNzM0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFn
ZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9saW5r
LXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbTogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6Z2V0Q29udGV4dE1lbnVGcm9tUHJvcG9zZWRNZW51KToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE2LTEwLTIwICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRo
YXQgY29tYmluZXMgV1RGOjp2aXNpdCguLi4pIHdpdGggV1RGOjptYWtlVmlzaXRvciguLi4pCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRjMjZhNWY4NDMyMjYxZjMwOWU1MzMwYjA4YTZmOTFm
NGM1MGVhODMuLmE4MGM0NTM0NTc2Yzk1ZjAwN2ViZGQwZjNkNDYwYzhjY2YxNjRjYjMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MDMsNiArNDAzLDggQEAKIAkJN0NDRTdGMkYxQTQxMUIx
MDAwNDQ3QzRDIC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0M0QzcwMTQ1NzVCNkEw
MDI1RkI2MiAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0gKi87IH07CiAJ
CTdDRUZBOTY2MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFRkE5
NjQxQUMwQjlFMjAwQjkxMEZEIC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0gKi87
IH07CiAJCTdDRkJDQUU1MTc0MzIzOEYwMEIyQkZDRiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGQkNBRTMxNzQz
MjM4RTAwQjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5jcHAgKi87IH07CisJCTgzNDlEM0MyMURC
OTZEREUwMDRBOUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0OUQzQzExREI5NkREQTAwNEE5RjY1IC8q
IENvbnRleHRNZW51RG93bmxvYWQubW0gKi87IH07CisJCTgzNDlEM0M0MURCOTcyOEUwMDRBOUY2
NSAvKiBsaW5rLXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0OUQzQzMxREI5NzI0RjAwNEE5
RjY1IC8qIGxpbmstd2l0aC1kb3dubG9hZC1hdHRyaWJ1dGUuaHRtbCAqLzsgfTsKIAkJODM1Q0Y5
NjcxRDI1RkNENjAwMUE2NUQ0IC8qIFJlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVD
Rjk2NjFEMjVGQ0Q2MDAxQTY1RDQgLyogUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0
aW9uLmNwcCAqLzsgfTsKIAkJODM3QTM1RjExRDlBMUU3RDAwNjYzQzU3IC8qIERvd25sb2FkUmVx
dWVzdEJsb2JVUkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzdBMzVGMDFEOUExRTY0MDA2NjNDNTcgLyogRG93bmxvYWRSZXF1ZXN0
QmxvYlVSTC5odG1sICovOyB9OwogCQk4M0NGMUMzMDFDNEYxQjhCMDA2ODg0NDcgLyogU3RyaW5n
VXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODNDRjFDMkMxQzRGMTlBRTAwNjg4NDQ3IC8qIFN0cmluZ1V0aWxpdGllcy5tbSAqLzsgfTsK
QEAgLTU2Miw2ICs1NjQsNyBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
OwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQk4MzQ5RDNDNDFE
Qjk3MjhFMDA0QTlGNjUgLyogbGluay13aXRoLWRvd25sb2FkLWF0dHJpYnV0ZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCUFENTdBQzIyMURBNzQ2NkUwMEZGMUJERSAvKiBtYW55LWlm
cmFtZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDE1MDg2RDFEQTA0MEM1MDA0
NEJFOUIgLyogcGxheS1hdWRpby1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5
aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMDA1LDYgKzEwMDgsOCBAQAogCQk3
Q0ZCQ0FERDE3NDMyMzRGMDBCMkJGQ0YgLyogV2lsbExvYWQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2lsbExvYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3Q0ZCQ0FFMzE3NDMyMzhFMDBCMkJGQ0YgLyogV2lsbExvYWRfQnVuZGxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpbGxMb2FkX0J1bmRsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAv
KiBTdHJpbmdCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0cmluZ0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzQ5RDND
MTFEQjk2RERBMDA0QTlGNjUgLyogQ29udGV4dE1lbnVEb3dubG9hZC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvbnRleHRNZW51RG93bmxvYWQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzNDlEM0MzMURCOTcyNEYwMDRBOUY2NSAvKiBsaW5r
LXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAibGluay13aXRoLWRvd25sb2FkLWF0dHJpYnV0ZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODM1Q0Y5NjYxRDI1RkNENjAwMUE2NUQ0IC8qIFJlc3RvcmVTZXNzaW9uU3Rh
dGVXaXRob3V0TmF2aWdhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4MzdBMzVGMDFEOUExRTY0MDA2NjNDNTcgLyogRG93bmxvYWRS
ZXF1ZXN0QmxvYlVSTC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRG93bmxvYWRS
ZXF1ZXN0QmxvYlVSTC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0I4OEEz
MzFDODAwNTZEMDBCQjI0MTggLyogSFRNTFBhcnNlcklkaW9tcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGFyc2VySWRpb21zLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDIsNiArMTg0Nyw3IEBACiAJCQkJNEE0MTBGNEQxOUFGN0JF
RjAwMkVCQUI1IC8qIGdldFVzZXJNZWRpYS5odG1sICovLAogCQkJCUJDQkQzNzJFMTI1QUJCRTYw
MEQyQzI5RiAvKiBpY29uLnBuZyAqLywKIAkJCQlDRTM1MjRGNTFCMTQyQkJCMDAyOEE3QzUgLyog
aW5wdXQtZm9jdXMtYmx1ci5odG1sICovLAorCQkJCTgzNDlEM0MzMURCOTcyNEYwMDRBOUY2NSAv
KiBsaW5rLXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0bWwgKi8sCiAJCQkJMzc4RTY0NzgxNjMy
NkZERjAwQjZDNjc2IC8qIGxpbmstd2l0aC10aXRsZS5odG1sICovLAogCQkJCTkzNjEwMDI4MTRE
Qzk1N0IwMDYxMzc5RCAvKiBsb3RzLW9mLWlmcmFtZXMuaHRtbCAqLywKIAkJCQk5M0FGNEVDRjE1
MDZGMTIzMDA3RkQ1N0UgLyogbG90cy1vZi1pbWFnZXMuaHRtbCAqLywKQEAgLTIwMzEsNiArMjAz
Nyw3IEBACiAJCUMwQzVEM0JCMTQ1OThCNkYwMEE4MDJBNiAvKiBtYWMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTgzNDlEM0MxMURCOTZEREEwMDRBOUY2
NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tICovLAogCQkJCUJDQUE0ODU3MTRBMDQ0RDQwMDg4
RkFDNCAvKiBFZGl0b3JDb21tYW5kcy5tbSAqLywKIAkJCQlDMEM1RDNCQzE0NTk4QjZGMDBBODAy
QTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICovLAogCQkJCUMwQzVEM0JEMTQ1OThCNkYw
MEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tICovLApAQCAtMjQxNSw2
ICsyNDIyLDcgQEAKIAkJCQk3QzgzRTBCRTFEMEE2NTEzMDBGRUJDRjMgLyogSW5kZXhlZERCTXVs
dGlQcm9jZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQkYxRDBBNjUyMjAwRkVCQ0Yz
IC8qIEluZGV4ZWREQlBlcnNpc3RlbmNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkIx
QTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJODM0OUQzQzIxREI5NkRERTAwNEE5RjY1IC8qIENvbnRleHRNZW51RG93bmxvYWQubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGQzFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRC
dW5kbGVGcmFtZUhpdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkQxQTQxMUFF
NjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNr
V2lucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRUZGMDZENDFEOEFFREJCMDAwNEJCMzAgLyog
VGVzdFdLV2ViVmlld01hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL2xpbmstd2l0aC1kb3dubG9hZC1hdHRyaWJ1dGUuaHRt
bCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9saW5rLXdpdGgtZG93bmxvYWQt
YXR0cmlidXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA1NTk0NTE4NDRhODVmNWRkOGI3ZWMxNTI5MjM0
MjQ5MDFmNjQyMQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9saW5rLXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSwxMCBA
QAorPGh0bWw+CisgICAgPGJvZHk+CisgICAgICAgIDxhIGlkPSJ0ZXN0QW5jaG9yIiBzdHlsZT0i
ZGlzcGxheTogYmxvY2s7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCUiIGRvd25sb2FkPSJkb3du
bG9hZEF0dHJpYnV0ZVZhbHVlLnR4dCI+PC9hPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAg
ICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbIkhlbGxvIHdvcmxkISJdLCB7dHlwZTogImFwcGxpY2F0
aW9uL29jdGV0LXN0cmVhbSJ9KTsKKyAgICAgICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3RBbmNob3IiKTsKKyAgICAgICAgICAgIGxpbmsuaHJlZiA9IHdpbmRv
dy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvbWFjL0NvbnRleHRNZW51RG93bmxvYWQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE2ZTg3Yjcw
MzI1YmQwZGYzY2ExZGMyZDlkOWIxOGYxZjI5ZWNiOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbQpA
QCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJKYXZhU2NyaXB0VGVzdC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dE1l
bnVJdGVtLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRG93bmxvYWQuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tQYWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGlj
IGJvb2wgZGlkRmluaXNoTG9hZDsKK3N0YXRpYyBib29sIGRpZERlY2lkZURvd25sb2FkRGVzdGlu
YXRpb247CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdL
RnJhbWVSZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgZGlkRmluaXNoTG9hZCA9
IHRydWU7Cit9CisKK3N0YXRpYyB2b2lkIGdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudShX
S1BhZ2VSZWYgcGFnZSwgV0tBcnJheVJlZiBwcm9wb3NlZE1lbnUsIFdLQXJyYXlSZWYqIG5ld01l
bnUsIFdLSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0LCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgc2l6ZV90IGNvdW50ID0gV0tBcnJheUdl
dFNpemUocHJvcG9zZWRNZW51KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyAr
K2kpIHsKKyAgICAgICAgV0tDb250ZXh0TWVudUl0ZW1SZWYgY29udGV4dE1lbnVJdGVtID0gc3Rh
dGljX2Nhc3Q8V0tDb250ZXh0TWVudUl0ZW1SZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleChwcm9w
b3NlZE1lbnUsIGkpKTsKKyAgICAgICAgc3dpdGNoIChXS0NvbnRleHRNZW51SXRlbUdldFRhZyhj
b250ZXh0TWVudUl0ZW0pKSB7CisgICAgICAgIGNhc2Uga1dLQ29udGV4dE1lbnVJdGVtVGFnRG93
bmxvYWRMaW5rVG9EaXNrOgorICAgICAgICAgICAgLy8gQ2xpY2sgIkRvd25sb2FkIExpbmtlZCBG
aWxlIiBjb250ZXh0IG1lbnUgZW50cnkuCisgICAgICAgICAgICBXS1BhZ2VTZWxlY3RDb250ZXh0
TWVudUl0ZW0ocGFnZSwgY29udGV4dE1lbnVJdGVtKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisK
K3N0YXRpYyBXS1N0cmluZ1JlZiBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFt
ZShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgZG93bmxvYWQsIFdLU3RyaW5nUmVmIHN1Z2dl
c3RlZEZpbGVuYW1lLCBib29sKiwgY29uc3Qgdm9pZCopCit7CisgICAgLy8gTWFrZSBzdXJlIHRo
ZSBzdWdnZXN0ZWQgZmlsZW5hbWUgaXMgcHJvdmlkZWQgYW5kIG1hdGNoZXMgdGhlIHZhbHVlIG9m
IHRoZSBkb3dubG9hZCBhdHRyaWJ1dGUgaW4gdGhlIEhUTUwuCisgICAgRVhQRUNUX1dLX1NUUkVR
KCJkb3dubG9hZEF0dHJpYnV0ZVZhbHVlLnR4dCIsIHN1Z2dlc3RlZEZpbGVuYW1lKTsKKworICAg
IFdLRG93bmxvYWRDYW5jZWwoZG93bmxvYWQpOworICAgIGRpZERlY2lkZURvd25sb2FkRGVzdGlu
YXRpb24gPSB0cnVlOworCisgICAgcmV0dXJuIFV0aWw6OnRvV0soIi90bXAvV2ViS2l0QVBJVGVz
dC9Db250ZXh0TWVudURvd25sb2FkIikubGVha1JlZigpOworfQorCisvLyBDaGVja3MgdGhhdCB0
aGUgSFRNTCBkb3dubG9hZCBhdHRyaWJ1dGUgaXMgdXNlZCBhcyBzdWdnZXN0ZWQgZmlsZW5hbWUg
d2hlbiBzZWxlY3RpbmcKKy8vIHRoZSAiRG93bmxvYWQgTGlua2VkIEZpbGUiIGl0ZW0gaW4gdGhl
IGNvbnRleHQgbWVudS4KK1RFU1QoV2ViS2l0MiwgQ29udGV4dE1lbnVEb3dubG9hZEhUTUxEb3du
bG9hZEF0dHJpYnV0ZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQo
QWRvcHRXSywgVXRpbDo6Y3JlYXRlQ29udGV4dFdpdGhJbmplY3RlZEJ1bmRsZSgpKTsKKworICAg
IFdLQ29udGV4dERvd25sb2FkQ2xpZW50VjAgY2xpZW50OworICAgIG1lbXNldCgmY2xpZW50LCAw
LCBzaXplb2YoY2xpZW50KSk7CisgICAgY2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAgY2xp
ZW50LmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lID0gZGVjaWRlRGVzdGlu
YXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWU7CisgICAgV0tDb250ZXh0U2V0RG93bmxvYWRDbGll
bnQoY29udGV4dC5nZXQoKSwgJmNsaWVudC5iYXNlKTsKKworICAgIFdLUmV0YWluUHRyPFdLUGFn
ZUdyb3VwUmVmPiBwYWdlR3JvdXAoQWRvcHRXSywgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRlbnRp
ZmllcihVdGlsOjp0b1dLKCJNeUdyb3VwIikuZ2V0KCkpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcg
d2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworCisgICAgV0tQYWdlTG9h
ZGVyQ2xpZW50VjAgbG9hZGVyQ2xpZW50OworICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBz
aXplb2YobG9hZGVyQ2xpZW50KSk7CisgICAgbG9hZGVyQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7
CisgICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IGRpZEZpbmlzaExvYWRG
b3JGcmFtZTsKKyAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAm
bG9hZGVyQ2xpZW50LmJhc2UpOworCisgICAgV0tQYWdlQ29udGV4dE1lbnVDbGllbnRWMyBjb250
ZXh0TWVudUNsaWVudDsKKyAgICBtZW1zZXQoJmNvbnRleHRNZW51Q2xpZW50LCAwLCBzaXplb2Yo
Y29udGV4dE1lbnVDbGllbnQpKTsKKyAgICBjb250ZXh0TWVudUNsaWVudC5iYXNlLnZlcnNpb24g
PSAzOworICAgIGNvbnRleHRNZW51Q2xpZW50LmdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVu
dSA9IGdldENvbnRleHRNZW51RnJvbVByb3Bvc2VkTWVudTsKKyAgICBXS1BhZ2VTZXRQYWdlQ29u
dGV4dE1lbnVDbGllbnQod2ViVmlldy5wYWdlKCksICZjb250ZXh0TWVudUNsaWVudC5iYXNlKTsK
KworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJM
Rm9yUmVzb3VyY2UoImxpbmstd2l0aC1kb3dubG9hZC1hdHRyaWJ1dGUiLCAiaHRtbCIpKTsKKwor
ICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CisgICAgVXRpbDo6
cnVuKCZkaWRGaW5pc2hMb2FkKTsKKworICAgIC8vIFJpZ2h0IGNsaWNrIG9uIGxpbmsuCisgICAg
d2ViVmlldy5zaW11bGF0ZUJ1dHRvbkNsaWNrKGtXS0V2ZW50TW91c2VCdXR0b25SaWdodEJ1dHRv
biwgNTAsIDUwLCAwKTsKKyAgICBVdGlsOjpydW4oJmRpZERlY2lkZURvd25sb2FkRGVzdGluYXRp
b24pOworfQorCit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>