<?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>203090</bug_id>
          
          <creation_ts>2019-10-17 09:43:10 -0700</creation_ts>
          <short_desc>FileSystemDirectoryReader / FileSystemEntry should not prevent entering the back/forward cache</short_desc>
          <delta_ts>2019-10-24 12:09:21 -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>WebCore 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>
          
          <blocked>202293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1580998</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-17 09:43:10 -0700</bug_when>
    <thetext>FileSystemDirectoryReader should not prevent entering the back/forward cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582965</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-23 13:01:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/56550805&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582973</commentid>
    <comment_count>2</comment_count>
      <attachid>381717</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-23 13:09:51 -0700</bug_when>
    <thetext>Created attachment 381717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582985</commentid>
    <comment_count>3</comment_count>
      <attachid>381720</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-23 13:17:24 -0700</bug_when>
    <thetext>Created attachment 381720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583001</commentid>
    <comment_count>4</comment_count>
      <attachid>381723</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-23 13:39:07 -0700</bug_when>
    <thetext>Created attachment 381723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583013</commentid>
    <comment_count>5</comment_count>
      <attachid>381723</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-10-23 14:09:35 -0700</bug_when>
    <thetext>Comment on attachment 381723
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583136</commentid>
    <comment_count>6</comment_count>
      <attachid>381723</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-23 16:25:38 -0700</bug_when>
    <thetext>Comment on attachment 381723
Patch

Clearing flags on attachment: 381723

Committed r251509: &lt;https://trac.webkit.org/changeset/251509&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583137</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-23 16:25:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583446</commentid>
    <comment_count>8</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-10-24 12:03:10 -0700</bug_when>
    <thetext>The two new tests added in https://trac.webkit.org/changeset/251509/webkit
are timing out on windows constantly and slowing down win EWS.

History:
https://results.webkit.org/?suite=layout-tests&amp;suite=layout-tests&amp;test=editing%2Fpasteboard%2Fentries-api%2FDirectoryEntry-getFile-back-forward-cache.html&amp;test=editing%2Fpasteboard%2Fentries-api%2FDirectoryReader-readEntries-back-forward-cache.html

We missed this earlier due to Windows testing being broken yesterday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1583448</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-24 12:09:21 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #8)
&gt; The two new tests added in https://trac.webkit.org/changeset/251509/webkit
&gt; are timing out on windows constantly and slowing down win EWS.
&gt; 
&gt; History:
&gt; https://results.webkit.org/?suite=layout-tests&amp;suite=layout-
&gt; tests&amp;test=editing%2Fpasteboard%2Fentries-api%2FDirectoryEntry-getFile-back-
&gt; forward-cache.html&amp;test=editing%2Fpasteboard%2Fentries-api%2FDirectoryReader-
&gt; readEntries-back-forward-cache.html
&gt; 
&gt; We missed this earlier due to Windows testing being broken yesterday.

Fixed in &lt;https://trac.webkit.org/changeset/251550&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381717</attachid>
            <date>2019-10-23 13:09:51 -0700</date>
            <delta_ts>2019-10-23 13:17:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203090-20191023130951.patch</filename>
            <type>text/plain</type>
            <size>23718</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMxMWUxZmY1MjIzMWU4
Y2FmNzMwOTMwM2E2OTA0YTA3NTJiYmRjNS4uMzQyZTk3Y2JiMmU0OGU3NDY1NjllMTdhMmJiMDVl
ZTY5MzQxNmNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbURpcmVjdG9y
eVJlYWRlciAvIEZpbGVTeXN0ZW1FbnRyeSBzaG91bGQgbm90IHByZXZlbnQgZW50ZXJpbmcgdGhl
IGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1MDgwNT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyIC8gRmlsZVN5c3RlbUVudHJ5IG5vIGxvbmdlciBwcmV2ZW50IGVudGVy
aW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgICAgIFdlIG5vdyBkaXNwYXRjaCB0YXNr
cyB0byB0aGUgd2luZG93IGV2ZW50IGxvb3Agd2hlbmV2ZXIgd2UgbmVlZCB0byBjYWxsIGEgSlMg
Y2FsbGJhY2sgc2luY2UgdGhlCisgICAgICAgIHdpbmRvdyBldmVudCBsb29wIHRha2VzIGNhcmUg
b2Ygc3VzcGVuZGluZyB0YXNrcyB3aGlsZSBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorCisg
ICAgICAgIFRlc3RzOiBlZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5RW50
cnktZ2V0RmlsZS1iYWNrLWZvcndhcmQtY2FjaGUuaHRtbAorICAgICAgICAgICAgICAgZWRpdGlu
Zy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeVJlYWRlci1yZWFkRW50cmllcy1iYWNr
LWZvcndhcmQtY2FjaGUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnk6OmdldEVudHJ5KToKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmls
ZVN5c3RlbURpcmVjdG9yeVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyOjpkb2N1bWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtRGlyZWN0b3J5UmVhZGVyOjpyZWFkRW50cmllcyk6CisgICAgICAgICogTW9kdWxlcy9l
bnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1FbnRyeTo6ZG9jdW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUVudHJ5OjpnZXRQYXJlbnQpOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lz
dGVtRW50cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVF
bnRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUVudHJ5OjpmaWxlKToK
KyAgICAgICAgKiBkb20vQWJzdHJhY3RFdmVudExvb3AuaDoKKyAgICAgICAgKiBoaXN0b3J5L0Jh
Y2tGb3J3YXJkQ2FjaGUuY3BwOgorCiAyMDE5LTEwLTIzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgTmF2aWdhdG9yQmFzZTo6c2VydmljZVdvcmtl
cklmRXhpc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkv
RmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50
cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuY3BwCmluZGV4IDAyMTMwYTRhOTAxZGI4
OGJlZTUxMmZiNGJmZTM5ZTBhZWEwMTA2YWEuLjBhYTIxZGEwYTA0YTk1ZjdhMmI3NDA4NmE4N2U1
OGUyNTA2OWFlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2Fw
aS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuY3BwCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJGaWxl
U3lzdGVtRmlsZUVudHJ5LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgor
I2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTUxLDIwICs1MiwzMCBAQCB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeTo6Z2V0RW50cnko
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgUwogICAgIGlmICghc3VjY2Vz
c0NhbGxiYWNrICYmICFlcnJvckNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAgICBmaWxl
c3lzdGVtKCkuZ2V0RW50cnkoY29udGV4dCwgKnRoaXMsIHBhdGgsIGZsYWdzLCBbcGVuZGluZ0Fj
dGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIG1hdGNoZXMgPSBXVEZNb3ZlKG1h
dGNoZXMpLCBzdWNjZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIGVycm9y
Q2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSB7CisgICAg
ZmlsZXN5c3RlbSgpLmdldEVudHJ5KGNvbnRleHQsICp0aGlzLCBwYXRoLCBmbGFncywgW3RoaXMs
IHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBtYXRjaGVzID0g
V1RGTW92ZShtYXRjaGVzKSwgc3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJh
Y2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKV0oYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsK
ICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgaWYgKGVy
cm9yQ2FsbGJhY2spCi0gICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQo
RE9NRXhjZXB0aW9uOjpjcmVhdGUocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSkpOworICAgICAg
ICAgICAgaWYgKGVycm9yQ2FsbGJhY2sgJiYgZG9jdW1lbnQpIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsICpk
b2N1bWVudCwgW2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBleGNlcHRp
b24gPSByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3Zl
KHBlbmRpbmdBY3Rpdml0eSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIGVycm9y
Q2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRlKFdURk1vdmUoZXhjZXB0
aW9uKSkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGF1dG8gZW50cnkgPSByZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCk7CiAgICAgICAgIGlmICghbWF0Y2hlcyhlbnRyeSkpIHsKLSAgICAgICAgICAg
IGlmIChlcnJvckNhbGxiYWNrKQotICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRs
ZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRlKEV4Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9y
LCAiRW50cnkgYXQgZ2l2ZW4gcGF0aCBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZCB0eXBlIl9zIH0p
KTsKKyAgICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrICYmIGRvY3VtZW50KSB7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3
b3JraW5nLCAqZG9jdW1lbnQsIFtlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNr
KSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXSgpIG11dGFibGUg
eworICAgICAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01FeGNl
cHRpb246OmNyZWF0ZShFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciwgIkVudHJ5IGF0IGdp
dmVuIHBhdGggZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQgdHlwZSJfcyB9KSk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKHN1Y2Nlc3NDYWxsYmFjaykKLSAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFj
ay0+aGFuZGxlRXZlbnQoV1RGTW92ZShlbnRyeSkpOworICAgICAgICBpZiAoc3VjY2Vzc0NhbGxi
YWNrICYmIGRvY3VtZW50KSB7CisgICAgICAgICAgICBkb2N1bWVudC0+ZXZlbnRMb29wKCkucXVl
dWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsICpkb2N1bWVudCwgW3N1Y2Nlc3NDYWxsYmFj
ayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZW50cnkgPSBXVEZNb3ZlKGVudHJ5KSwgcGVu
ZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXSgpIG11dGFibGUgeworICAg
ICAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoV1RGTW92ZShlbnRyeSkp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJl
Y3RvcnlSZWFkZXIuY3BwCmluZGV4IDYzYWEwZmVhOTA5NTdkNTNhZTY0Yjg1MjcwNTY5MTRlMjlk
NWFmNTcuLmE4NDg4NDNiYzc3MWUwNDVhOTI4Y2M5ZTNkOTA5MjIzMzA1Y2JiNGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5
UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5
c3RlbURpcmVjdG9yeVJlYWRlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnkuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtRW50cmllc0NhbGxi
YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldp
bmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtNTMsMTAgKzU0LDkgQEAgY29uc3QgY2hhciog
RmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAg
ICAgcmV0dXJuICJGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyIjsKIH0KIAotLy8gRklYTUU6IFRo
aXMgc2hvdWxkIG5ldmVyIHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4K
LWJvb2wgRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlcjo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFj
a0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3QKK0RvY3VtZW50KiBGaWxlU3lzdGVtRGly
ZWN0b3J5UmVhZGVyOjpkb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGhhc1BlbmRpbmdB
Y3Rpdml0eSgpOworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9lbnRyaWVzLWFwaS8j
ZG9tLWZpbGVzeXN0ZW1kaXJlY3RvcnllbnRyeS1yZWFkZW50cmllcwpAQCAtODMsMTUgKzgzLDIz
IEBAIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlcjo6cmVhZEVudHJpZXMoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmCiAgICAgYXV0byBwZW5kaW5nQWN0aXZpdHkgPSBt
YWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBj
b250ZXh0ID0gbWFrZVJlZihjb250ZXh0KSwgc3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNj
ZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgcGVu
ZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXSgpIG11dGFibGUgewogICAg
ICAgICBtX2lzUmVhZGluZyA9IGZhbHNlOwotICAgICAgICBtX2RpcmVjdG9yeS0+ZmlsZXN5c3Rl
bSgpLmxpc3REaXJlY3RvcnkoY29udGV4dCwgbV9kaXJlY3RvcnksIFt0aGlzLCBzdWNjZXNzQ2Fs
bGJhY2sgPSBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIGVycm9yQ2FsbGJhY2sgPSBXVEZNb3Zl
KGVycm9yQ2FsbGJhY2spLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0
eSldKEV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8RmlsZVN5c3RlbUVudHJ5Pj4+JiYgcmVzdWx0KSB7
CisgICAgICAgIG1fZGlyZWN0b3J5LT5maWxlc3lzdGVtKCkubGlzdERpcmVjdG9yeShjb250ZXh0
LCBtX2RpcmVjdG9yeSwgW3RoaXMsIHN1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0Nh
bGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayksIHBlbmRpbmdB
Y3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oRXhjZXB0aW9uT3I8VmVjdG9yPFJl
ZjxGaWxlU3lzdGVtRW50cnk+Pj4mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgYXV0
byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkgewogICAgICAgICAgICAgICAgIG1fZXJyb3IgPSByZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpOwotICAgICAgICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrKQotICAgICAg
ICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01FeGNlcHRpb246OmNy
ZWF0ZSgqbV9lcnJvcikpOworICAgICAgICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrICYmIGRv
Y3VtZW50KSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LT5ldmVudExvb3AoKS5xdWV1
ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgKmRvY3VtZW50LCBbdGhpcywgZXJyb3JDYWxs
YmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUo
cGVuZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVy
cm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRlKCptX2Vycm9yKSk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBtX2lzRG9uZSA9IHRydWU7
Ci0gICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKSk7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQpIHsKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtp
bmcsICpkb2N1bWVudCwgW3N1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNr
KSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpLCByZXN1bHQgPSBy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAg
ICAgIHN1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURp
cmVjdG9yeVJlYWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlSZWFkZXIuaAppbmRleCBiOTAwZGU3MzcxYTQxYmYyMDFlZGY5ZDg1NjE3
M2Y1ZDg3ZDE4NDYzLi4xYTA5OThhY2FlZWFhMjYwZWE4MzE0ZjZhMDNmMzZiNjhhOTg0YzViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURp
cmVjdG9yeVJlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9G
aWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAg
ICBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnkmKTsKIAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVj
dE5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tG
b3J3YXJkQ2FjaGVfREVQUkVDQVRFRCgpIGNvbnN0IGZpbmFsOworICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0OwogCiAgICAgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeT4gbV9kaXJl
Y3Rvcnk7CiAgICAgT3B0aW9uYWw8RXhjZXB0aW9uPiBtX2Vycm9yOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcAppbmRleCBk
MjUxNmEzNzI0NWNmYzdkMjBkMDg5YTI3MGVhNDNmZDI2N2MxZjY0Li5hODZkYjc2ZmJhNTEzN2Rl
MWM0MzgwYjU3NGEwM2IwMDQyMTgyODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIgogI2luY2x1ZGUgIkZpbGVTeXN0
ZW1FbnRyeUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgor
I2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtNjAsMTAgKzYxLDkgQEAg
Y29uc3QgY2hhciogRmlsZVN5c3RlbUVudHJ5OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
ICAgICByZXR1cm4gIkZpbGVTeXN0ZW1FbnRyeSI7CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBuZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCi1ib29sIEZp
bGVTeXN0ZW1FbnRyeTo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBS
RUNBVEVEKCkgY29uc3QKK0RvY3VtZW50KiBGaWxlU3lzdGVtRW50cnk6OmRvY3VtZW50KCkgY29u
c3QKIHsKLSAgICByZXR1cm4gaGFzUGVuZGluZ0FjdGl2aXR5KCk7CisgICAgcmV0dXJuIGRvd25j
YXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiB2b2lkIEZpbGVT
eXN0ZW1FbnRyeTo6Z2V0UGFyZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJl
ZlB0cjxGaWxlU3lzdGVtRW50cnlDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2ssIFJlZlB0cjxF
cnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2spCkBAIC03MSwxNCArNzEsMjAgQEAgdm9pZCBG
aWxlU3lzdGVtRW50cnk6OmdldFBhcmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBSZWZQdHI8RmlsZVN5c3QKICAgICBpZiAoIXN1Y2Nlc3NDYWxsYmFjayAmJiAhZXJyb3JDYWxs
YmFjaykKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmlsZXN5c3RlbSgpLmdldFBhcmVudChjb250
ZXh0LCAqdGhpcywgW3BlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMp
LCBzdWNjZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIGVycm9yQ2FsbGJh
Y2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSB7Ci0gICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNr
KQotICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlv
bjo6Y3JlYXRlKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpKTsKKyAgICBmaWxlc3lzdGVtKCku
Z2V0UGFyZW50KGNvbnRleHQsICp0aGlzLCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBl
bmRpbmdBY3Rpdml0eSgqdGhpcyksIHN1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0Nh
bGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayldKGF1dG8mJiBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50
KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKHN1Y2Nlc3NDYWxsYmFjaykKLSAgICAgICAgICAgIHN1Y2Nlc3NDYWxs
YmFjay0+aGFuZGxlRXZlbnQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKworICAgICAg
ICBkb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcs
ICpkb2N1bWVudCwgW3N1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwg
ZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayksIHJlc3VsdCA9IFdURk1vdmUo
cmVzdWx0KSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXSgpIG11
dGFibGUgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAg
ICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrKQorICAgICAgICAgICAgICAgICAgICBlcnJvckNh
bGxiYWNrLT5oYW5kbGVFdmVudChET01FeGNlcHRpb246OmNyZWF0ZShyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaWYgKHN1Y2Nlc3NDYWxsYmFjaykKKyAgICAgICAgICAgICAgICBzdWNjZXNzQ2Fs
bGJhY2stPmhhbmRsZUV2ZW50KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisgICAgICAg
IH0pOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
dHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJp
ZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmgKaW5kZXggZDk3NjNlZmZlYjBiNmYxNDI1NDA2YTAzMDc2
OGIyYTk2YTMwMDgwZS4uYWYyOGNlMDlkZTYxM2MwYWFhOTg0NGRiYzE1ZDljMzNlZTMyMTRiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1F
bnRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVt
RW50cnkuaApAQCAtNTIsMTAgKzUyLDEwIEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIEZp
bGVTeXN0ZW1FbnRyeShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRE9NRmlsZVN5c3RlbSYsIGNv
bnN0IFN0cmluZyYgdmlydHVhbFBhdGgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0
OwogCiBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dCBmaW5hbDsKLSAgICBib29sIHNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGVf
REVQUkVDQVRFRCgpIGNvbnN0IGZpbmFsOwogCiAgICAgUmVmPERPTUZpbGVTeXN0ZW0+IG1fZmls
ZXN5c3RlbTsKICAgICBTdHJpbmcgbV9uYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCmluZGV4IGU4Yzll
ZjM4ZTkzMmU0ZTdhNTZjZDlkZjQ0OGE2MmM3NWM5NzFiY2EuLjQwZjQ3MjRiYWFmOWQxOGFlNDQ1
MGVjZDU1OGM4MmUzOTdlZDBhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAKQEAgLTI4LDggKzI4LDEw
IEBACiAKICNpbmNsdWRlICJET01FeGNlcHRpb24uaCIKICNpbmNsdWRlICJET01GaWxlU3lzdGVt
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCiAj
aW5jbHVkZSAiRmlsZUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiV2luZG93RXZlbnRMb29wLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAsMTMgKzQyLDE5IEBAIEZpbGVTeXN0ZW1GaWxl
RW50cnk6OkZpbGVTeXN0ZW1GaWxlRW50cnkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgRE9NRmlsCiAKIHZvaWQgRmlsZVN5c3RlbUZpbGVFbnRyeTo6ZmlsZShSZWY8RmlsZUNhbGxi
YWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaywgUmVmUHRyPEVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxs
YmFjaykKIHsKLSAgICBmaWxlc3lzdGVtKCkuZ2V0RmlsZSgqdGhpcywgW3N1Y2Nlc3NDYWxsYmFj
ayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJy
b3JDYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIHsKLSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkgewotICAgICAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2spCi0gICAgICAgICAgICAg
ICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXhjZXB0aW9uOjpjcmVhdGUocmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKSkpOworICAgIGZpbGVzeXN0ZW0oKS5nZXRGaWxlKCp0aGlzLCBb
dGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIHN1Y2Nl
c3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdU
Rk1vdmUoZXJyb3JDYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBh
dXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQp
CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgc3VjY2Vzc0NhbGxiYWNr
LT5oYW5kbGVFdmVudChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworCisgICAgICAgIGRv
Y3VtZW50LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgKmRv
Y3VtZW50LCBbc3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJv
ckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1
bHQpLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKGVycm9yQ2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJh
Y2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRlKHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBzdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQWJzdHJhY3RFdmVudExvb3AuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BYnN0cmFj
dEV2ZW50TG9vcC5oCmluZGV4IGRkZjg4ODQyNDUxMDVjMDNkOWFmNmNkNzRjYjQ4NWJhYjE3ZWJk
ZGEuLjc4YWQ2NzAyZWRiYzA4MThmNDVmY2M5ZWIyODljMmFkMGFlMDg0NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9BYnN0cmFjdEV2ZW50TG9vcC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9BYnN0cmFjdEV2ZW50TG9vcC5oCkBAIC0zNCw2ICszNCw3IEBAIGNsYXNzIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGVudW0gY2xhc3MgVGFza1NvdXJjZSA6IHVpbnQ4X3Qgewog
ICAgIElkbGVUYXNrLAorICAgIE5ldHdvcmtpbmcsCiB9OwogCiAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjZXZlbnQtbG9vcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDYWNoZS5jcHAKaW5kZXggMDJhY2Q5NTlhNDUy
Y2RkMzY5OTA1NmY1YzQ2YThlZDFiOTZhYzcwOC4uZWYyNTFlY2IzMjRiZTYxM2FkMjRlZjIwNGU5
ZjQxMzA2NjJmZDgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9y
d2FyZENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2Fj
aGUuY3BwCkBAIC01Nyw3ICs1Nyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2RlZmlu
ZSBQQ0xPRyguLi4pIExPRyhCYWNrRm9yd2FyZENhY2hlLCAiJSpzJXMiLCBpbmRlbnRMZXZlbCo0
LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgpLmRhdGEoKSkKKyNkZWZpbmUgUENM
T0coLi4uKSBXVEZMb2dBbHdheXMoIkNIUklTOiAlKnMlcyIsIGluZGVudExldmVsKjQsICIiLCBt
YWtlU3RyaW5nKF9fVkFfQVJHU19fKS51dGY4KCkuZGF0YSgpKQogCiBzdGF0aWMgaW5saW5lIHZv
aWQgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIHJlYXNvbikKIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBh
NDE1NTA0ODc3M2QyN2IyOWRhNjI2OTRkYjYzYjQ4Mjk1YmViMTNkLi5kMmY0YzYzYzY0YmZjMjJk
MTFlNDNiZGMyMmQ3NDc2YmUwYzU3NDRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMTAt
MjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyIC8gRmlsZVN5c3RlbUVudHJ5IHNob3VsZCBub3QgcHJldmVudCBlbnRl
cmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMwOTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2NTUw
ODA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9l
bnRyaWVzLWFwaS9EaXJlY3RvcnlFbnRyeS1nZXRGaWxlLWJhY2stZm9yd2FyZC1jYWNoZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9lbnRyaWVzLWFw
aS9EaXJlY3RvcnlFbnRyeS1nZXRGaWxlLWJhY2stZm9yd2FyZC1jYWNoZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5UmVhZGVy
LXJlYWRFbnRyaWVzLWJhY2stZm9yd2FyZC1jYWNoZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlSZWFkZXItcmVh
ZEVudHJpZXMtYmFjay1mb3J3YXJkLWNhY2hlLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEwLTIzICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFsgTWFjIFdLMSBdIFJF
R1JFU1NJT04gKHIyNTEyNjEpOiBMYXlvdXQgVGVzdCBpbnNwZWN0b3IvY29uc29sZS93ZWJjb3Jl
LWxvZ2dpbmcuaHRtbCBpcyBjb25zaXN0ZW50bHkgRmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeUVudHJ5LWdldEZp
bGUtYmFjay1mb3J3YXJkLWNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlFbnRyeS1nZXRGaWxlLWJhY2stZm9yd2Fy
ZC1jYWNoZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdhZjE4MzQyMTlkNjljMzgxMTE3ZWJh
NzE4ODdhOWRhNjY0YjVjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlFbnRyeS1nZXRGaWxlLWJhY2stZm9yd2Fy
ZC1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorTWFrZSBzdXJlIHRoYXQgZmls
ZVN5c3RlbURpcmVjdG9yeUVudHJ5LmdldEZpbGUoKSBkb2VzIG5vdCBwcmV2ZW50IGEgcGFnZSBm
cm9tIGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVy
aW5nIGNhY2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5k
IHdhcyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlCitQQVNTIFN1Y2Nlc3MgY2FsbGJhY2sg
d2FzIGNhbGxlZAorUEFTUyByZXN0b3JlZEZyb21QYWdlQ2FjaGUgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlFbnRyeS1n
ZXRGaWxlLWJhY2stZm9yd2FyZC1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeUVudHJ5LWdldEZpbGUtYmFjay1mb3J3YXJkLWNh
Y2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQ2YWVlODJlZGRlZGU0YjhjYTg0YWU3MzY5YjE5NDZiZjNm
ZTZhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9l
bnRyaWVzLWFwaS9EaXJlY3RvcnlFbnRyeS1nZXRGaWxlLWJhY2stZm9yd2FyZC1jYWNoZS5odG1s
CkBAIC0wLDAgKzEsNjAgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkcm9wem9uZSIgc3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgYmFj
a2dyb3VuZC1jb2xvcjogZ3JleTsiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJNYWtl
IHN1cmUgdGhhdCBmaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuZ2V0RmlsZSgpIGRvZXMgbm90IHBy
ZXZlbnQgYSBwYWdlIGZyb20gZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4iKTsKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gZmFsc2U7CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ZGVidWcoInBhZ2VzaG93IC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAi
ZnJvbSBjYWNoZSIpOworICAgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdFBh
c3NlZCgiUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hl
Iik7CisgICAgICAgIHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSA9IHRydWU7CisgICAgfQorfSwgZmFs
c2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVu
dCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAi
bm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsK
KyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBkaWQgbm90IGVudGVyIHRoZSBwYWdlIGNhY2hlLiIp
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBlbnRyeS5n
ZXRGaWxlKCcvdGVzdEZpbGVzL3N1YmZvbGRlcjEvZmlsZTMudHh0Jywge30sIGZ1bmN0aW9uKGZp
bGUpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3MgY2FsbGJhY2sgd2FzIGNhbGxl
ZCIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJyZXN0b3JlZEZyb21QYWdlQ2FjaGUiKTsK
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9LCBmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJFcnJvciBjYWxsYmFjayB3YXMgY2FsbGVkIik7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorfSwgZmFsc2UpOwor
Cit2YXIgZHJvcHpvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJvcHpvbmUnKTsKK2Ry
b3B6b25lLm9uZHJvcCA9IGZ1bmN0aW9uKGUpIHsKKyAgICBlLnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgZGF0YVRyYW5zZmVyID0gZS5kYXRhVHJhbnNmZXI7CisKKyAgICBlbnRyeSA9IGRhdGFUcmFu
c2Zlci5pdGVtc1swXS53ZWJraXRHZXRBc0VudHJ5KCk7CisgICAgd2luZG93LmxvY2F0aW9uLmhy
ZWYgPSAiLi4vLi4vLi4vZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5o
dG1sIjsKK307CisKK2Ryb3B6b25lLm9uZHJhZ292ZXIgPSBmdW5jdGlvbihldikgeworICAgIGV2
LnByZXZlbnREZWZhdWx0KCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHNldFRp
bWVvdXQoKCkgPT4geworICAgICAgICBkcmFnRmlsZXNPbnRvRWxlbWVudChkcm9wem9uZSwgWycu
Li8uLi8uLi9mYXN0L2Zvcm1zL2ZpbGUvZW50cmllcy1hcGkvcmVzb3VyY2VzL3Rlc3RGaWxlcydd
KTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeVJl
YWRlci1yZWFkRW50cmllcy1iYWNrLWZvcndhcmQtY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeVJlYWRlci1yZWFk
RW50cmllcy1iYWNrLWZvcndhcmQtY2FjaGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NTQy
ODg4Zjc2YjYwN2RkNTY2YmJmZTZmOTA0MDU2Y2U5OWEyZTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5UmVhZGVy
LXJlYWRFbnRyaWVzLWJhY2stZm9yd2FyZC1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NSBAQAorQmFzaWMgdGVzdCBjb3ZlcmFnZSBmb3IgZmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5y
ZWFkRW50cmllcygpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAt
IG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCitwYWdlc2hvdyAtIGZy
b20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBw
YWdlIGNhY2hlCitQQVNTIFN1Y2Nlc3MgY2FsbGJhY2sgd2FzIGNhbGxlZAorUEFTUyByZXN0b3Jl
ZEZyb21QYWdlQ2FjaGUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlSZWFkZXItcmVhZEVudHJpZXMtYmFjay1mb3J3YXJk
LWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkv
RGlyZWN0b3J5UmVhZGVyLXJlYWRFbnRyaWVzLWJhY2stZm9yd2FyZC1jYWNoZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFkNjAyNzk5YTQzM2Q1NzU1ZWI5MjBmYTkzNzU3NTA1MTAxNWQ5NDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGly
ZWN0b3J5UmVhZGVyLXJlYWRFbnRyaWVzLWJhY2stZm9yd2FyZC1jYWNoZS5odG1sCkBAIC0wLDAg
KzEsODQgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJk
cm9wem9uZSIgc3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1j
b2xvcjogZ3JleTsiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0IGNv
dmVyYWdlIGZvciBmaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLnJlYWRFbnRyaWVzKCkiKTsKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gZmFsc2U7CisKK2Z1
bmN0aW9uIGdldEVudHJpZXNBc1Byb21pc2UoZGlyRW50cnkpIHsKKyAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBsZXQgcmVzdWx0ID0gW107Cisg
ICAgICAgIHJlYWRlciA9IGRpckVudHJ5LmNyZWF0ZVJlYWRlcigpOworICAgICAgICBsZXQgZG9C
YXRjaCA9ICgpID0+IHsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkRW50cmllcyhlbnRyaWVzID0+
IHsKKyAgICAgICAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAg
ICBlbnRyaWVzLmZvckVhY2goZSA9PiByZXN1bHQucHVzaChlKSk7CisgICAgICAgICAgICAgICAg
ZG9CYXRjaCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXNvbHZl
KHJlc3VsdC5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChh
Lm5hbWUgPiBiLm5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoYS5uYW1lIDwgYi5uYW1lKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgICAgICAgICB9KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sIHJlamVjdCk7CisgICAg
fTsKKyAgICBkb0JhdGNoKCk7CisgIH0pOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
cGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAo
ZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImZyb20gY2FjaGUiKTsKKyAgICBpZiAo
ZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIGVudGVyIGFu
ZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZSIpOworICAgICAgICByZXN0b3JlZEZy
b21QYWdlQ2FjaGUgPSB0cnVlOworICAgIH0KK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFnZWhp
ZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJlbnRlcmluZyBjYWNo
ZSIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlBh
Z2UgZGlkIG5vdCBlbnRlciB0aGUgcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZ2V0RW50cmllc0FzUHJvbWlzZShlbnRyeSkudGhl
bihmdW5jdGlvbihlbnRyaWVzKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzIGNh
bGxiYWNrIHdhcyBjYWxsZWQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgicmVzdG9yZWRG
cm9tUGFnZUNhY2hlIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwg
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiRXJyb3IgY2FsbGJhY2sgd2Fz
IGNhbGxlZCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAg
IH0KK30sIGZhbHNlKTsKKwordmFyIGRyb3B6b25lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2Ryb3B6b25lJyk7Citkcm9wem9uZS5vbmRyb3AgPSBmdW5jdGlvbihlKSB7CisgICAgZS5wcmV2
ZW50RGVmYXVsdCgpOworICAgIGRhdGFUcmFuc2ZlciA9IGUuZGF0YVRyYW5zZmVyOworCisgICAg
ZW50cnkgPSBkYXRhVHJhbnNmZXIuaXRlbXNbMF0ud2Via2l0R2V0QXNFbnRyeSgpOworICAgIHdp
bmRvdy5sb2NhdGlvbi5ocmVmID0gIi4uLy4uLy4uL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFn
ZS1jYWNoZS1oZWxwZXIuaHRtbCI7Cit9OworCitkcm9wem9uZS5vbmRyYWdvdmVyID0gZnVuY3Rp
b24oZXYpIHsKKyAgICBldi5wcmV2ZW50RGVmYXVsdCgpOworfQorCitvbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgZHJhZ0ZpbGVzT250b0VsZW1l
bnQoZHJvcHpvbmUsIFsnLi4vLi4vLi4vZmFzdC9mb3Jtcy9maWxlL2VudHJpZXMtYXBpL3Jlc291
cmNlcy90ZXN0RmlsZXMnXSk7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381720</attachid>
            <date>2019-10-23 13:17:24 -0700</date>
            <delta_ts>2019-10-23 13:39:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203090-20191023131723.patch</filename>
            <type>text/plain</type>
            <size>23828</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMxMWUxZmY1MjIzMWU4
Y2FmNzMwOTMwM2E2OTA0YTA3NTJiYmRjNS4uMzQyZTk3Y2JiMmU0OGU3NDY1NjllMTdhMmJiMDVl
ZTY5MzQxNmNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbURpcmVjdG9y
eVJlYWRlciAvIEZpbGVTeXN0ZW1FbnRyeSBzaG91bGQgbm90IHByZXZlbnQgZW50ZXJpbmcgdGhl
IGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1MDgwNT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyIC8gRmlsZVN5c3RlbUVudHJ5IG5vIGxvbmdlciBwcmV2ZW50IGVudGVy
aW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgICAgIFdlIG5vdyBkaXNwYXRjaCB0YXNr
cyB0byB0aGUgd2luZG93IGV2ZW50IGxvb3Agd2hlbmV2ZXIgd2UgbmVlZCB0byBjYWxsIGEgSlMg
Y2FsbGJhY2sgc2luY2UgdGhlCisgICAgICAgIHdpbmRvdyBldmVudCBsb29wIHRha2VzIGNhcmUg
b2Ygc3VzcGVuZGluZyB0YXNrcyB3aGlsZSBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorCisg
ICAgICAgIFRlc3RzOiBlZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5RW50
cnktZ2V0RmlsZS1iYWNrLWZvcndhcmQtY2FjaGUuaHRtbAorICAgICAgICAgICAgICAgZWRpdGlu
Zy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeVJlYWRlci1yZWFkRW50cmllcy1iYWNr
LWZvcndhcmQtY2FjaGUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnk6OmdldEVudHJ5KToKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmls
ZVN5c3RlbURpcmVjdG9yeVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyOjpkb2N1bWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtRGlyZWN0b3J5UmVhZGVyOjpyZWFkRW50cmllcyk6CisgICAgICAgICogTW9kdWxlcy9l
bnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1FbnRyeTo6ZG9jdW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUVudHJ5OjpnZXRQYXJlbnQpOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lz
dGVtRW50cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVF
bnRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUVudHJ5OjpmaWxlKToK
KyAgICAgICAgKiBkb20vQWJzdHJhY3RFdmVudExvb3AuaDoKKyAgICAgICAgKiBoaXN0b3J5L0Jh
Y2tGb3J3YXJkQ2FjaGUuY3BwOgorCiAyMDE5LTEwLTIzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgTmF2aWdhdG9yQmFzZTo6c2VydmljZVdvcmtl
cklmRXhpc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkv
RmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50
cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuY3BwCmluZGV4IDAyMTMwYTRhOTAxZGI4
OGJlZTUxMmZiNGJmZTM5ZTBhZWEwMTA2YWEuLjBhYTIxZGEwYTA0YTk1ZjdhMmI3NDA4NmE4N2U1
OGUyNTA2OWFlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2Fw
aS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuY3BwCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJGaWxl
U3lzdGVtRmlsZUVudHJ5LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgor
I2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTUxLDIwICs1MiwzMCBAQCB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeTo6Z2V0RW50cnko
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgUwogICAgIGlmICghc3VjY2Vz
c0NhbGxiYWNrICYmICFlcnJvckNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAgICBmaWxl
c3lzdGVtKCkuZ2V0RW50cnkoY29udGV4dCwgKnRoaXMsIHBhdGgsIGZsYWdzLCBbcGVuZGluZ0Fj
dGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIG1hdGNoZXMgPSBXVEZNb3ZlKG1h
dGNoZXMpLCBzdWNjZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIGVycm9y
Q2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSB7CisgICAg
ZmlsZXN5c3RlbSgpLmdldEVudHJ5KGNvbnRleHQsICp0aGlzLCBwYXRoLCBmbGFncywgW3RoaXMs
IHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBtYXRjaGVzID0g
V1RGTW92ZShtYXRjaGVzKSwgc3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJh
Y2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKV0oYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsK
ICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgaWYgKGVy
cm9yQ2FsbGJhY2spCi0gICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQo
RE9NRXhjZXB0aW9uOjpjcmVhdGUocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSkpOworICAgICAg
ICAgICAgaWYgKGVycm9yQ2FsbGJhY2sgJiYgZG9jdW1lbnQpIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsICpk
b2N1bWVudCwgW2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBleGNlcHRp
b24gPSByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3Zl
KHBlbmRpbmdBY3Rpdml0eSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIGVycm9y
Q2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRlKFdURk1vdmUoZXhjZXB0
aW9uKSkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGF1dG8gZW50cnkgPSByZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCk7CiAgICAgICAgIGlmICghbWF0Y2hlcyhlbnRyeSkpIHsKLSAgICAgICAgICAg
IGlmIChlcnJvckNhbGxiYWNrKQotICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRs
ZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRlKEV4Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9y
LCAiRW50cnkgYXQgZ2l2ZW4gcGF0aCBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZCB0eXBlIl9zIH0p
KTsKKyAgICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrICYmIGRvY3VtZW50KSB7CisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3
b3JraW5nLCAqZG9jdW1lbnQsIFtlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNr
KSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXSgpIG11dGFibGUg
eworICAgICAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01FeGNl
cHRpb246OmNyZWF0ZShFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciwgIkVudHJ5IGF0IGdp
dmVuIHBhdGggZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQgdHlwZSJfcyB9KSk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKHN1Y2Nlc3NDYWxsYmFjaykKLSAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFj
ay0+aGFuZGxlRXZlbnQoV1RGTW92ZShlbnRyeSkpOworICAgICAgICBpZiAoc3VjY2Vzc0NhbGxi
YWNrICYmIGRvY3VtZW50KSB7CisgICAgICAgICAgICBkb2N1bWVudC0+ZXZlbnRMb29wKCkucXVl
dWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsICpkb2N1bWVudCwgW3N1Y2Nlc3NDYWxsYmFj
ayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZW50cnkgPSBXVEZNb3ZlKGVudHJ5KSwgcGVu
ZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXSgpIG11dGFibGUgeworICAg
ICAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoV1RGTW92ZShlbnRyeSkp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJl
Y3RvcnlSZWFkZXIuY3BwCmluZGV4IDYzYWEwZmVhOTA5NTdkNTNhZTY0Yjg1MjcwNTY5MTRlMjlk
NWFmNTcuLjVkZGRjZjVkNTQ2NDI5YTZiNjNlZTQ4ZmZkYzliYWU1NzNhYTY2MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5
UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5
c3RlbURpcmVjdG9yeVJlYWRlci5jcHAKQEAgLTI4LDEwICsyOCwxMiBAQAogCiAjaW5jbHVkZSAi
RE9NRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiRE9NRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRXJyb3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIkZpbGVTeXN0
ZW1EaXJlY3RvcnlFbnRyeS5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2su
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV2luZG93
RXZlbnRMb29wLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC01MywxMCArNTUsOSBAQCBjb25zdCBjaGFyKiBGaWxl
U3lzdGVtRGlyZWN0b3J5UmVhZGVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKICAgICBy
ZXR1cm4gIkZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIiOwogfQogCi0vLyBGSVhNRTogVGhpcyBz
aG91bGQgbmV2ZXIgcHJldmVudCBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgotYm9v
bCBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyOjpzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9y
d2FyZENhY2hlX0RFUFJFQ0FURUQoKSBjb25zdAorRG9jdW1lbnQqIEZpbGVTeXN0ZW1EaXJlY3Rv
cnlSZWFkZXI6OmRvY3VtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUGVuZGluZ0FjdGl2
aXR5KCk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2VudHJpZXMtYXBpLyNkb20t
ZmlsZXN5c3RlbWRpcmVjdG9yeWVudHJ5LXJlYWRlbnRyaWVzCkBAIC04MywxNSArODQsMjMgQEAg
dm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyOjpyZWFkRW50cmllcyhTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBSZWYKICAgICBhdXRvIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQ
ZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIGNvbnRl
eHQgPSBtYWtlUmVmKGNvbnRleHQpLCBzdWNjZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHN1Y2Nlc3ND
YWxsYmFjayksIGVycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBwZW5kaW5n
QWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKCkgbXV0YWJsZSB7CiAgICAgICAg
IG1faXNSZWFkaW5nID0gZmFsc2U7Ci0gICAgICAgIG1fZGlyZWN0b3J5LT5maWxlc3lzdGVtKCku
bGlzdERpcmVjdG9yeShjb250ZXh0LCBtX2RpcmVjdG9yeSwgW3RoaXMsIHN1Y2Nlc3NDYWxsYmFj
ayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJy
b3JDYWxsYmFjayksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0o
RXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxGaWxlU3lzdGVtRW50cnk+Pj4mJiByZXN1bHQpIHsKKyAg
ICAgICAgbV9kaXJlY3RvcnktPmZpbGVzeXN0ZW0oKS5saXN0RGlyZWN0b3J5KGNvbnRleHQsIG1f
ZGlyZWN0b3J5LCBbdGhpcywgc3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJh
Y2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgcGVuZGluZ0FjdGl2
aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXShFeGNlcHRpb25PcjxWZWN0b3I8UmVmPEZp
bGVTeXN0ZW1FbnRyeT4+PiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvKiBk
b2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgbV9lcnJvciA9IHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2spCi0gICAgICAgICAg
ICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRl
KCptX2Vycm9yKSk7CisgICAgICAgICAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2sgJiYgZG9jdW1l
bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFz
ayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCAqZG9jdW1lbnQsIFt0aGlzLCBlcnJvckNhbGxiYWNr
ID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5k
aW5nQWN0aXZpdHkpXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JD
YWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXhjZXB0aW9uOjpjcmVhdGUoKm1fZXJyb3IpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1faXNEb25lID0gdHJ1ZTsKLSAg
ICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQocmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpKTsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudCkgeworICAgICAgICAgICAgICAg
IGRvY3VtZW50LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywg
KmRvY3VtZW50LCBbc3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBw
ZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSksIHJlc3VsdCA9IHJlc3Vs
dC5yZWxlYXNlUmV0dXJuVmFsdWUoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAg
c3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfQogICAgICAgICB9KTsKICAgICB9KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0
b3J5UmVhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3Rl
bURpcmVjdG9yeVJlYWRlci5oCmluZGV4IGI5MDBkZTczNzFhNDFiZjIwMWVkZjlkODU2MTczZjVk
ODdkMTg0NjMuLjFhMDk5OGFjYWVlYWEyNjBlYTgzMTRmNmEwM2YzNmI2OGE5ODRjNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0
b3J5UmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlSZWFkZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogICAgIEZp
bGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZpbGVTeXN0
ZW1EaXJlY3RvcnlFbnRyeSYpOwogCiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgc2hvdWxkUHJldmVudEVudGVyaW5nQmFja0Zvcndh
cmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3QgZmluYWw7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50
KCkgY29uc3Q7CiAKICAgICBSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5PiBtX2RpcmVjdG9y
eTsKICAgICBPcHRpb25hbDxFeGNlcHRpb24+IG1fZXJyb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRW50cnkuY3BwCmluZGV4IGQyNTE2
YTM3MjQ1Y2ZjN2QyMGQwODlhMjcwZWE0M2ZkMjY3YzFmNjQuLmE4NmRiNzZmYmE1MTM3ZGUxYzQz
ODBiNTc0YTAzYjAwNDIxODI4NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW50cmllc2FwaS9GaWxlU3lzdGVtRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRW50cnkuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUVu
dHJ5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSAiV2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC02MCwxMCArNjEsOSBAQCBjb25z
dCBjaGFyKiBGaWxlU3lzdGVtRW50cnk6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogICAg
IHJldHVybiAiRmlsZVN5c3RlbUVudHJ5IjsKIH0KIAotLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5l
dmVyIHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KLWJvb2wgRmlsZVN5
c3RlbUVudHJ5OjpzaG91bGRQcmV2ZW50RW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlX0RFUFJFQ0FU
RUQoKSBjb25zdAorRG9jdW1lbnQqIEZpbGVTeXN0ZW1FbnRyeTo6ZG9jdW1lbnQoKSBjb25zdAog
ewotICAgIHJldHVybiBoYXNQZW5kaW5nQWN0aXZpdHkoKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8
RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIHZvaWQgRmlsZVN5c3Rl
bUVudHJ5OjpnZXRQYXJlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRy
PEZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaywgUmVmUHRyPEVycm9y
Q2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaykKQEAgLTcxLDE0ICs3MSwyMCBAQCB2b2lkIEZpbGVT
eXN0ZW1FbnRyeTo6Z2V0UGFyZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJl
ZlB0cjxGaWxlU3lzdAogICAgIGlmICghc3VjY2Vzc0NhbGxiYWNrICYmICFlcnJvckNhbGxiYWNr
KQogICAgICAgICByZXR1cm47CiAKLSAgICBmaWxlc3lzdGVtKCkuZ2V0UGFyZW50KGNvbnRleHQs
ICp0aGlzLCBbcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIHN1
Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9
IFdURk1vdmUoZXJyb3JDYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIHsKLSAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2spCi0g
ICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXhjZXB0aW9uOjpj
cmVhdGUocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSkpOworICAgIGZpbGVzeXN0ZW0oKS5nZXRQ
YXJlbnQoY29udGV4dCwgKnRoaXMsIFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGlu
Z0FjdGl2aXR5KCp0aGlzKSwgc3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJh
Y2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKV0oYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsK
KyAgICAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgICAgICBpZiAoc3VjY2Vzc0NhbGxiYWNrKQotICAgICAgICAgICAgc3VjY2Vzc0NhbGxiYWNr
LT5oYW5kbGVFdmVudChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworCisgICAgICAgIGRv
Y3VtZW50LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgKmRv
Y3VtZW50LCBbc3VjY2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJv
ckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1
bHQpLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKGVycm9yQ2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJh
Y2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRlKHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAoc3VjY2Vzc0NhbGxiYWNrKQorICAgICAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFj
ay0+aGFuZGxlRXZlbnQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICAgICAgfSk7
CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmll
c2FwaS9GaWxlU3lzdGVtRW50cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2Fw
aS9GaWxlU3lzdGVtRW50cnkuaAppbmRleCBkOTc2M2VmZmViMGI2ZjE0MjU0MDZhMDMwNzY4YjJh
OTZhMzAwODBlLi5hZjI4Y2UwOWRlNjEzYzBhYWE5ODQ0ZGJjMTVkOWMzM2VlMzIxNGIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRy
eS5oCkBAIC01MiwxMCArNTIsMTAgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgRmlsZVN5
c3RlbUVudHJ5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBET01GaWxlU3lzdGVtJiwgY29uc3Qg
U3RyaW5nJiB2aXJ0dWFsUGF0aCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAK
IHByaXZhdGU6CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZp
bmFsOwotICAgIGJvb2wgc2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBS
RUNBVEVEKCkgY29uc3QgZmluYWw7CiAKICAgICBSZWY8RE9NRmlsZVN5c3RlbT4gbV9maWxlc3lz
dGVtOwogICAgIFN0cmluZyBtX25hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAKaW5kZXggZThjOWVmMzhl
OTMyZTRlN2E1NmNkOWRmNDQ4YTYyYzc1Yzk3MWJjYS4uNDBmNDcyNGJhYWY5ZDE4YWU0NDUwZWNk
NTU4YzgyZTM5N2VkMGFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRy
aWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmNwcApAQCAtMjgsOCArMjgsMTAgQEAK
IAogI2luY2x1ZGUgIkRPTUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW0uaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVycm9yQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJGaWxlQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCwxMyArNDIsMTkgQEAgRmlsZVN5c3RlbUZpbGVFbnRy
eTo6RmlsZVN5c3RlbUZpbGVFbnRyeShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBE
T01GaWwKIAogdm9pZCBGaWxlU3lzdGVtRmlsZUVudHJ5OjpmaWxlKFJlZjxGaWxlQ2FsbGJhY2s+
JiYgc3VjY2Vzc0NhbGxiYWNrLCBSZWZQdHI8RXJyb3JDYWxsYmFjaz4mJiBlcnJvckNhbGxiYWNr
KQogewotICAgIGZpbGVzeXN0ZW0oKS5nZXRGaWxlKCp0aGlzLCBbc3VjY2Vzc0NhbGxiYWNrID0g
V1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNh
bGxiYWNrKV0oYXV0byYmIHJlc3VsdCkgewotICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3JDYWxsYmFjaykKLSAgICAgICAgICAgICAgICBl
cnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01FeGNlcHRpb246OmNyZWF0ZShyZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpKSk7CisgICAgZmlsZXN5c3RlbSgpLmdldEZpbGUoKnRoaXMsIFt0aGlz
LCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKSwgc3VjY2Vzc0Nh
bGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92
ZShlcnJvckNhbGxiYWNrKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8q
IGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudCkKICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBzdWNjZXNzQ2FsbGJhY2stPmhh
bmRsZUV2ZW50KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisKKyAgICAgICAgZG9jdW1l
bnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCAqZG9jdW1l
bnQsIFtzdWNjZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIGVycm9yQ2Fs
bGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCks
IHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoZXJyb3JDYWxsYmFjaykKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+
aGFuZGxlRXZlbnQoRE9NRXhjZXB0aW9uOjpjcmVhdGUocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24o
KSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHN1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BYnN0cmFjdEV2ZW50TG9vcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Fic3RyYWN0RXZl
bnRMb29wLmgKaW5kZXggZGRmODg4NDI0NTEwNWMwM2Q5YWY2Y2Q3NGNiNDg1YmFiMTdlYmRkYS4u
NzhhZDY3MDJlZGJjMDgxOGY0NWZjYzllYjI4OWMyYWQwYWUwODQ0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0Fic3RyYWN0RXZlbnRMb29wLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0Fic3RyYWN0RXZlbnRMb29wLmgKQEAgLTM0LDYgKzM0LDcgQEAgY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKIAogZW51bSBjbGFzcyBUYXNrU291cmNlIDogdWludDhfdCB7CiAgICAg
SWRsZVRhc2ssCisgICAgTmV0d29ya2luZywKIH07CiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNldmVudC1sb29wCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcAppbmRleCAwMmFjZDk1OWE0NTJjZGQz
Njk5MDU2ZjVjNDZhOGVkMWI5NmFjNzA4Li5lZjI1MWVjYjMyNGJlNjEzYWQyNGVmMjA0ZTlmNDEz
MDY2MmZkODAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJk
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDYWNoZS5j
cHAKQEAgLTU3LDcgKzU3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jZGVmaW5lIFBD
TE9HKC4uLikgTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICIlKnMlcyIsIGluZGVudExldmVsKjQsICIi
LCBtYWtlU3RyaW5nKF9fVkFfQVJHU19fKS51dGY4KCkuZGF0YSgpKQorI2RlZmluZSBQQ0xPRygu
Li4pIFdURkxvZ0Fsd2F5cygiQ0hSSVM6ICUqcyVzIiwgaW5kZW50TGV2ZWwqNCwgIiIsIG1ha2VT
dHJpbmcoX19WQV9BUkdTX18pLnV0ZjgoKS5kYXRhKCkpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBs
b2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50JiBjbGllbnQsIGNvbnN0IFN0cmluZyYgcmVhc29uKQogewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE0MTU1
MDQ4NzczZDI3YjI5ZGE2MjY5NGRiNjNiNDgyOTViZWIxM2QuLmQyZjRjNjNjNjRiZmMyMmQxMWU0
M2JkYzIyZDc0NzZiZTBjNTc0NGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOS0xMC0yMyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1EaXJl
Y3RvcnlSZWFkZXIgLyBGaWxlU3lzdGVtRW50cnkgc2hvdWxkIG5vdCBwcmV2ZW50IGVudGVyaW5n
IHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzA5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTY1NTA4MDU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxh
eW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJp
ZXMtYXBpL0RpcmVjdG9yeUVudHJ5LWdldEZpbGUtYmFjay1mb3J3YXJkLWNhY2hlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0Rp
cmVjdG9yeUVudHJ5LWdldEZpbGUtYmFjay1mb3J3YXJkLWNhY2hlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlSZWFkZXItcmVh
ZEVudHJpZXMtYmFjay1mb3J3YXJkLWNhY2hlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeVJlYWRlci1yZWFkRW50
cmllcy1iYWNrLWZvcndhcmQtY2FjaGUuaHRtbDogQWRkZWQuCisKIDIwMTktMTAtMjMgIFNpaHVp
IExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgWyBNYWMgV0sxIF0gUkVHUkVT
U0lPTiAocjI1MTI2MSk6IExheW91dCBUZXN0IGluc3BlY3Rvci9jb25zb2xlL3dlYmNvcmUtbG9n
Z2luZy5odG1sIGlzIGNvbnNpc3RlbnRseSBGYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5RW50cnktZ2V0RmlsZS1i
YWNrLWZvcndhcmQtY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeUVudHJ5LWdldEZpbGUtYmFjay1mb3J3YXJkLWNh
Y2hlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2FmMTgzNDIxOWQ2OWMzODExMTdlYmE3MTg4
N2E5ZGE2NjRiNWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeUVudHJ5LWdldEZpbGUtYmFjay1mb3J3YXJkLWNh
Y2hlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitNYWtlIHN1cmUgdGhhdCBmaWxlU3lz
dGVtRGlyZWN0b3J5RW50cnkuZ2V0RmlsZSgpIGRvZXMgbm90IHByZXZlbnQgYSBwYWdlIGZyb20g
ZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK3BhZ2VzaG93IC0gbm90IGZyb20gY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJpbmcg
Y2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBjYWNoZQorUEFTUyBQYWdlIGRpZCBlbnRlciBhbmQgd2Fz
IHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUKK1BBU1MgU3VjY2VzcyBjYWxsYmFjayB3YXMg
Y2FsbGVkCitQQVNTIHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeUVudHJ5LWdldEZp
bGUtYmFjay1mb3J3YXJkLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvZW50cmllcy1hcGkvRGlyZWN0b3J5RW50cnktZ2V0RmlsZS1iYWNrLWZvcndhcmQtY2FjaGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZDZhZWU4MmVkZGVkZTRiOGNhODRhZTczNjliMTk0NmJmM2ZlNmE0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJp
ZXMtYXBpL0RpcmVjdG9yeUVudHJ5LWdldEZpbGUtYmFjay1mb3J3YXJkLWNhY2hlLmh0bWwKQEAg
LTAsMCArMSw2MCBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImRyb3B6b25lIiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmV5OyI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIk1ha2Ugc3Vy
ZSB0aGF0IGZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5nZXRGaWxlKCkgZG9lcyBub3QgcHJldmVu
dCBhIHBhZ2UgZnJvbSBlbnRlcmluZyB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLiIpOworanNUZXN0
SXNBc3luYyA9IHRydWU7CityZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKKword2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1
ZygicGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9t
IGNhY2hlIik7CisgICAgaWYgKGV2ZW50LnBlcnNpc3RlZCkgeworICAgICAgICB0ZXN0UGFzc2Vk
KCJQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUiKTsK
KyAgICAgICAgcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgICB9Cit9LCBmYWxzZSk7
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlaGlkZSIsIGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgZGVidWcoInBhZ2VoaWRlIC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3Qg
IikgKyAiZW50ZXJpbmcgY2FjaGUiKTsKKyAgICBpZiAoIWV2ZW50LnBlcnNpc3RlZCkgeworICAg
ICAgICB0ZXN0RmFpbGVkKCJQYWdlIGRpZCBub3QgZW50ZXIgdGhlIHBhZ2UgY2FjaGUuIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGVudHJ5LmdldEZp
bGUoJy90ZXN0RmlsZXMvc3ViZm9sZGVyMS9maWxlMy50eHQnLCB7fSwgZnVuY3Rpb24oZmlsZSkg
eworICAgICAgICAgICAgdGVzdFBhc3NlZCgiU3VjY2VzcyBjYWxsYmFjayB3YXMgY2FsbGVkIik7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoInJlc3RvcmVkRnJvbVBhZ2VDYWNoZSIpOworICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkVycm9yIGNhbGxiYWNrIHdhcyBjYWxsZWQiKTsKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cit9LCBmYWxzZSk7CisKK3Zh
ciBkcm9wem9uZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkcm9wem9uZScpOworZHJvcHpv
bmUub25kcm9wID0gZnVuY3Rpb24oZSkgeworICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICBk
YXRhVHJhbnNmZXIgPSBlLmRhdGFUcmFuc2ZlcjsKKworICAgIGVudHJ5ID0gZGF0YVRyYW5zZmVy
Lml0ZW1zWzBdLndlYmtpdEdldEFzRW50cnkoKTsKKyAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9
ICIuLi8uLi8uLi9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtaGVscGVyLmh0bWwi
OworfTsKKworZHJvcHpvbmUub25kcmFnb3ZlciA9IGZ1bmN0aW9uKGV2KSB7CisgICAgZXYucHJl
dmVudERlZmF1bHQoKTsKK30KKworb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgc2V0VGltZW91
dCgoKSA9PiB7CisgICAgICAgIGRyYWdGaWxlc09udG9FbGVtZW50KGRyb3B6b25lLCBbJy4uLy4u
Ly4uL2Zhc3QvZm9ybXMvZmlsZS9lbnRyaWVzLWFwaS9yZXNvdXJjZXMvdGVzdEZpbGVzJ10pOwor
ICAgIH0sIDApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5UmVhZGVy
LXJlYWRFbnRyaWVzLWJhY2stZm9yd2FyZC1jYWNoZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5UmVhZGVyLXJlYWRFbnRy
aWVzLWJhY2stZm9yd2FyZC1jYWNoZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk1NDI4ODhm
NzZiNjA3ZGQ1NjZiYmZlNmY5MDQwNTZjZTk5YTJlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlSZWFkZXItcmVh
ZEVudHJpZXMtYmFjay1mb3J3YXJkLWNhY2hlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBA
CitCYXNpYyB0ZXN0IGNvdmVyYWdlIGZvciBmaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLnJlYWRF
bnRyaWVzKCkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK3BhZ2VzaG93IC0gbm90
IGZyb20gY2FjaGUKK3BhZ2VoaWRlIC0gZW50ZXJpbmcgY2FjaGUKK3BhZ2VzaG93IC0gZnJvbSBj
YWNoZQorUEFTUyBQYWdlIGRpZCBlbnRlciBhbmQgd2FzIHJlc3RvcmVkIGZyb20gdGhlIHBhZ2Ug
Y2FjaGUKK1BBU1MgU3VjY2VzcyBjYWxsYmFjayB3YXMgY2FsbGVkCitQQVNTIHJlc3RvcmVkRnJv
bVBhZ2VDYWNoZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L2VudHJpZXMtYXBpL0RpcmVjdG9yeVJlYWRlci1yZWFkRW50cmllcy1iYWNrLWZvcndhcmQtY2Fj
aGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJl
Y3RvcnlSZWFkZXItcmVhZEVudHJpZXMtYmFjay1mb3J3YXJkLWNhY2hlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWQ2MDI3OTlhNDMzZDU3NTVlYjkyMGZhOTM3NTc1MDUxMDE1ZDk0MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3Rv
cnlSZWFkZXItcmVhZEVudHJpZXMtYmFjay1mb3J3YXJkLWNhY2hlLmh0bWwKQEAgLTAsMCArMSw4
NCBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRyb3B6
b25lIiBzdHlsZT0id2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIwMHB4OyBiYWNrZ3JvdW5kLWNvbG9y
OiBncmV5OyI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3QgY292ZXJh
Z2UgZm9yIGZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIucmVhZEVudHJpZXMoKSIpOworanNUZXN0
SXNBc3luYyA9IHRydWU7CityZXN0b3JlZEZyb21QYWdlQ2FjaGUgPSBmYWxzZTsKKworZnVuY3Rp
b24gZ2V0RW50cmllc0FzUHJvbWlzZShkaXJFbnRyeSkgeworICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGxldCByZXN1bHQgPSBbXTsKKyAgICAg
ICAgcmVhZGVyID0gZGlyRW50cnkuY3JlYXRlUmVhZGVyKCk7CisgICAgICAgIGxldCBkb0JhdGNo
ID0gKCkgPT4geworICAgICAgICAgICAgcmVhZGVyLnJlYWRFbnRyaWVzKGVudHJpZXMgPT4gewor
ICAgICAgICAgICAgaWYgKGVudHJpZXMubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIGVu
dHJpZXMuZm9yRWFjaChlID0+IHJlc3VsdC5wdXNoKGUpKTsKKyAgICAgICAgICAgICAgICBkb0Jh
dGNoKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc29sdmUocmVz
dWx0LnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEubmFt
ZSA+IGIubmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAg
ICAgICAgICAgICBlbHNlIGlmIChhLm5hbWUgPCBiLm5hbWUpCisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAg
ICAgICAgIH0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwgcmVqZWN0KTsKKyAgICB9Owor
ICAgIGRvQmF0Y2goKTsKKyAgfSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdl
c2hvdyIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZGVidWcoInBhZ2VzaG93IC0gIiArIChldmVu
dC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAiZnJvbSBjYWNoZSIpOworICAgIGlmIChldmVu
dC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiUGFnZSBkaWQgZW50ZXIgYW5kIHdh
cyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlIik7CisgICAgICAgIHJlc3RvcmVkRnJvbVBh
Z2VDYWNoZSA9IHRydWU7CisgICAgfQorfSwgZmFsc2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAt
ICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7
CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBk
aWQgbm90IGVudGVyIHRoZSBwYWdlIGNhY2hlLiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBnZXRFbnRyaWVzQXNQcm9taXNlKGVudHJ5KS50aGVuKGZ1
bmN0aW9uKGVudHJpZXMpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3MgY2FsbGJh
Y2sgd2FzIGNhbGxlZCIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJyZXN0b3JlZEZyb21Q
YWdlQ2FjaGUiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9LCBmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJFcnJvciBjYWxsYmFjayB3YXMgY2Fs
bGVkIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQor
fSwgZmFsc2UpOworCit2YXIgZHJvcHpvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJv
cHpvbmUnKTsKK2Ryb3B6b25lLm9uZHJvcCA9IGZ1bmN0aW9uKGUpIHsKKyAgICBlLnByZXZlbnRE
ZWZhdWx0KCk7CisgICAgZGF0YVRyYW5zZmVyID0gZS5kYXRhVHJhbnNmZXI7CisKKyAgICBlbnRy
eSA9IGRhdGFUcmFuc2Zlci5pdGVtc1swXS53ZWJraXRHZXRBc0VudHJ5KCk7CisgICAgd2luZG93
LmxvY2F0aW9uLmhyZWYgPSAiLi4vLi4vLi4vZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNh
Y2hlLWhlbHBlci5odG1sIjsKK307CisKK2Ryb3B6b25lLm9uZHJhZ292ZXIgPSBmdW5jdGlvbihl
dikgeworICAgIGV2LnByZXZlbnREZWZhdWx0KCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkg
eworICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICBkcmFnRmlsZXNPbnRvRWxlbWVudChk
cm9wem9uZSwgWycuLi8uLi8uLi9mYXN0L2Zvcm1zL2ZpbGUvZW50cmllcy1hcGkvcmVzb3VyY2Vz
L3Rlc3RGaWxlcyddKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381723</attachid>
            <date>2019-10-23 13:39:07 -0700</date>
            <delta_ts>2019-10-23 16:25:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203090-20191023133906.patch</filename>
            <type>text/plain</type>
            <size>22635</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGJhMDAyZTExZDkzZGY1
Y2FlYTg5ZDg1YmVjOTkxNDM0OWIzZTA3OS4uMWJiYjcwYmI1Zjg1NWNmNGYyMTliZTVmNDdkZDkw
ZmY3MmI2Y2NjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbURpcmVjdG9y
eVJlYWRlciAvIEZpbGVTeXN0ZW1FbnRyeSBzaG91bGQgbm90IHByZXZlbnQgZW50ZXJpbmcgdGhl
IGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjU1MDgwNT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyIC8gRmlsZVN5c3RlbUVudHJ5IG5vIGxvbmdlciBwcmV2ZW50IGVudGVy
aW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgICAgIFdlIG5vdyBkaXNwYXRjaCB0YXNr
cyB0byB0aGUgd2luZG93IGV2ZW50IGxvb3Agd2hlbmV2ZXIgd2UgbmVlZCB0byBjYWxsIGEgSlMg
Y2FsbGJhY2sgc2luY2UgdGhlCisgICAgICAgIHdpbmRvdyBldmVudCBsb29wIHRha2VzIGNhcmUg
b2Ygc3VzcGVuZGluZyB0YXNrcyB3aGlsZSBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorCisg
ICAgICAgIFRlc3RzOiBlZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5RW50
cnktZ2V0RmlsZS1iYWNrLWZvcndhcmQtY2FjaGUuaHRtbAorICAgICAgICAgICAgICAgZWRpdGlu
Zy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeVJlYWRlci1yZWFkRW50cmllcy1iYWNr
LWZvcndhcmQtY2FjaGUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnk6OmdldEVudHJ5KToKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmls
ZVN5c3RlbURpcmVjdG9yeVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyOjpkb2N1bWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtRGlyZWN0b3J5UmVhZGVyOjpyZWFkRW50cmllcyk6CisgICAgICAgICogTW9kdWxlcy9l
bnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1FbnRyeTo6ZG9jdW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bUVudHJ5OjpnZXRQYXJlbnQpOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lz
dGVtRW50cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVF
bnRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUVudHJ5OjpmaWxlKToK
KwogMjAxOS0xMC0yMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBub3RpZnkgaW5zcGVjdG9yIHdoZW4gcHJvdmlzaW9uYWwg
cGFnZSBpcyBjcmVhdGVkLCBjb21taXR0ZWQgYW5kIGRlc3Ryb3llZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9y
eUVudHJ5LmNwcAppbmRleCAwMjEzMGE0YTkwMWRiODhiZWU1MTJmYjRiZmUzOWUwYWVhMDEwNmFh
Li4wYWEyMWRhMGEwNGE5NWY3YTJiNzQwODZhODdlNThlMjUwNjlhZTQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURp
cmVjdG9yeUVudHJ5LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1F
bnRyeUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVFbnRyeS5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXaW5kb3dFdmVudExvb3Au
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSwyMCArNTIsMzAgQEAgdm9pZCBGaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnk6OmdldEVudHJ5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFMKICAgICBpZiAoIXN1Y2Nlc3NDYWxsYmFjayAmJiAhZXJyb3JDYWxsYmFj
aykKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmlsZXN5c3RlbSgpLmdldEVudHJ5KGNvbnRleHQs
ICp0aGlzLCBwYXRoLCBmbGFncywgW3BlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZp
dHkoKnRoaXMpLCBtYXRjaGVzID0gV1RGTW92ZShtYXRjaGVzKSwgc3VjY2Vzc0NhbGxiYWNrID0g
V1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNh
bGxiYWNrKV0oYXV0byYmIHJlc3VsdCkgeworICAgIGZpbGVzeXN0ZW0oKS5nZXRFbnRyeShjb250
ZXh0LCAqdGhpcywgcGF0aCwgZmxhZ3MsIFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVu
ZGluZ0FjdGl2aXR5KCp0aGlzKSwgbWF0Y2hlcyA9IFdURk1vdmUobWF0Y2hlcyksIHN1Y2Nlc3ND
YWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1v
dmUoZXJyb3JDYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBhdXRv
KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpIHsKLSAgICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrKQotICAgICAgICAgICAg
ICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRlKHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCkpKTsKKyAgICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrICYm
IGRvY3VtZW50KSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVl
VGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCAqZG9jdW1lbnQsIFtlcnJvckNhbGxiYWNrID0g
V1RGTW92ZShlcnJvckNhbGxiYWNrKSwgZXhjZXB0aW9uID0gcmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5nQWN0aXZpdHkpXSgpIG11dGFi
bGUgeworICAgICAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01F
eGNlcHRpb246OmNyZWF0ZShXVEZNb3ZlKGV4Y2VwdGlvbikpKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICBhdXRvIGVudHJ5ID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgICAgICBpZiAo
IW1hdGNoZXMoZW50cnkpKSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3JDYWxsYmFjaykKLSAgICAg
ICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01FeGNlcHRpb246OmNyZWF0
ZShFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciwgIkVudHJ5IGF0IGdpdmVuIHBhdGggZG9l
cyBub3QgbWF0Y2ggZXhwZWN0ZWQgdHlwZSJfcyB9KSk7CisgICAgICAgICAgICBpZiAoZXJyb3JD
YWxsYmFjayAmJiBkb2N1bWVudCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LT5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgKmRvY3VtZW50LCBbZXJyb3JD
YWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1v
dmUocGVuZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJy
b3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoRE9NRXhjZXB0aW9uOjpjcmVhdGUoRXhjZXB0aW9uIHsg
VHlwZU1pc21hdGNoRXJyb3IsICJFbnRyeSBhdCBnaXZlbiBwYXRoIGRvZXMgbm90IG1hdGNoIGV4
cGVjdGVkIHR5cGUiX3MgfSkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChzdWNjZXNzQ2FsbGJh
Y2spCi0gICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFdURk1vdmUoZW50
cnkpKTsKKyAgICAgICAgaWYgKHN1Y2Nlc3NDYWxsYmFjayAmJiBkb2N1bWVudCkgeworICAgICAg
ICAgICAgZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3Jr
aW5nLCAqZG9jdW1lbnQsIFtzdWNjZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFj
ayksIGVudHJ5ID0gV1RGTW92ZShlbnRyeSksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVu
ZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBzdWNjZXNzQ2FsbGJh
Y2stPmhhbmRsZUV2ZW50KFdURk1vdmUoZW50cnkpKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50
cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmNwcAppbmRleCA2M2Fh
MGZlYTkwOTU3ZDUzYWU2NGI4NTI3MDU2OTE0ZTI5ZDVhZjU3Li41ZGRkY2Y1ZDU0NjQyOWE2YjYz
ZWU0OGZmZGM5YmFlNTczYWE2NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuY3BwCkBA
IC0yOCwxMCArMjgsMTIgQEAKIAogI2luY2x1ZGUgIkRPTUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUg
IkRPTUZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVycm9y
Q2FsbGJhY2suaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCIKICNpbmNs
dWRlICJGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAt
NTMsMTAgKzU1LDkgQEAgY29uc3QgY2hhciogRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlcjo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJGaWxlU3lzdGVtRGlyZWN0b3J5
UmVhZGVyIjsKIH0KIAotLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5ldmVyIHByZXZlbnQgZW50ZXJp
bmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KLWJvb2wgRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRl
cjo6c2hvdWxkUHJldmVudEVudGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29u
c3QKK0RvY3VtZW50KiBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyOjpkb2N1bWVudCgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGhhc1BlbmRpbmdBY3Rpdml0eSgpOworICAgIHJldHVybiBkb3duY2Fz
dDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAogLy8gaHR0cHM6Ly93
aWNnLmdpdGh1Yi5pby9lbnRyaWVzLWFwaS8jZG9tLWZpbGVzeXN0ZW1kaXJlY3RvcnllbnRyeS1y
ZWFkZW50cmllcwpAQCAtODMsMTUgKzg0LDIzIEBAIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeVJl
YWRlcjo6cmVhZEVudHJpZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmCiAg
ICAgYXV0byBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKICAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBjb250ZXh0ID0gbWFrZVJlZihjb250ZXh0KSwgc3Vj
Y2Vzc0NhbGxiYWNrID0gV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNrID0g
V1RGTW92ZShlcnJvckNhbGxiYWNrKSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShwZW5kaW5n
QWN0aXZpdHkpXSgpIG11dGFibGUgewogICAgICAgICBtX2lzUmVhZGluZyA9IGZhbHNlOwotICAg
ICAgICBtX2RpcmVjdG9yeS0+ZmlsZXN5c3RlbSgpLmxpc3REaXJlY3RvcnkoY29udGV4dCwgbV9k
aXJlY3RvcnksIFt0aGlzLCBzdWNjZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFj
ayksIGVycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBwZW5kaW5nQWN0aXZp
dHkgPSBXVEZNb3ZlKHBlbmRpbmdBY3Rpdml0eSldKEV4Y2VwdGlvbk9yPFZlY3RvcjxSZWY8Rmls
ZVN5c3RlbUVudHJ5Pj4+JiYgcmVzdWx0KSB7CisgICAgICAgIG1fZGlyZWN0b3J5LT5maWxlc3lz
dGVtKCkubGlzdERpcmVjdG9yeShjb250ZXh0LCBtX2RpcmVjdG9yeSwgW3RoaXMsIHN1Y2Nlc3ND
YWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1v
dmUoZXJyb3JDYWxsYmFjayksIHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2
aXR5KV0oRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxGaWxlU3lzdGVtRW50cnk+Pj4mJiByZXN1bHQp
IG11dGFibGUgeworICAgICAgICAgICAgYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgp
OwogICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewogICAgICAgICAgICAg
ICAgIG1fZXJyb3IgPSByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwotICAgICAgICAgICAgICAg
IGlmIChlcnJvckNhbGxiYWNrKQotICAgICAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5o
YW5kbGVFdmVudChET01FeGNlcHRpb246OmNyZWF0ZSgqbV9lcnJvcikpOworICAgICAgICAgICAg
ICAgIGlmIChlcnJvckNhbGxiYWNrICYmIGRvY3VtZW50KSB7CisgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywg
KmRvY3VtZW50LCBbdGhpcywgZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayks
IHBlbmRpbmdBY3Rpdml0eSA9IFdURk1vdmUocGVuZGluZ0FjdGl2aXR5KV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUV4
Y2VwdGlvbjo6Y3JlYXRlKCptX2Vycm9yKSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBtX2lzRG9uZSA9IHRydWU7Ci0gICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2st
PmhhbmRsZUV2ZW50KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisgICAgICAgICAgICBp
ZiAoZG9jdW1lbnQpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC0+ZXZlbnRMb29wKCkucXVl
dWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsICpkb2N1bWVudCwgW3N1Y2Nlc3NDYWxsYmFj
ayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RGTW92ZShw
ZW5kaW5nQWN0aXZpdHkpLCByZXN1bHQgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCldKCkg
bXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZl
bnQoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaAppbmRleCBi
OTAwZGU3MzcxYTQxYmYyMDFlZGY5ZDg1NjE3M2Y1ZDg3ZDE4NDYzLi4xYTA5OThhY2FlZWFhMjYw
ZWE4MzE0ZjZhMDNmMzZiNjhhOTg0YzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmgKQEAg
LTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkmKTsKIAogICAg
IGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICBib29s
IHNob3VsZFByZXZlbnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCgpIGNvbnN0
IGZpbmFsOworICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCiAgICAgUmVmPEZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeT4gbV9kaXJlY3Rvcnk7CiAgICAgT3B0aW9uYWw8RXhjZXB0aW9u
PiBtX2Vycm9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBp
L0ZpbGVTeXN0ZW1FbnRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkv
RmlsZVN5c3RlbUVudHJ5LmNwcAppbmRleCBkMjUxNmEzNzI0NWNmYzdkMjBkMDg5YTI3MGVhNDNm
ZDI2N2MxZjY0Li5hODZkYjc2ZmJhNTEzN2RlMWM0MzgwYjU3NGEwM2IwMDQyMTgyODVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVu
dHJ5LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlF
bnRyeS5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1FbnRyeUNhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9vcC5oIgog
I2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KIApAQCAtNjAsMTAgKzYxLDkgQEAgY29uc3QgY2hhciogRmlsZVN5c3RlbUVudHJ5Ojph
Y3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKICAgICByZXR1cm4gIkZpbGVTeXN0ZW1FbnRyeSI7
CiB9CiAKLS8vIEZJWE1FOiBUaGlzIHNob3VsZCBuZXZlciBwcmV2ZW50IGVudGVyaW5nIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUuCi1ib29sIEZpbGVTeXN0ZW1FbnRyeTo6c2hvdWxkUHJldmVudEVu
dGVyaW5nQmFja0ZvcndhcmRDYWNoZV9ERVBSRUNBVEVEKCkgY29uc3QKK0RvY3VtZW50KiBGaWxl
U3lzdGVtRW50cnk6OmRvY3VtZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUGVuZGluZ0Fj
dGl2aXR5KCk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1FbnRyeTo6Z2V0UGFyZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZlB0cjxGaWxlU3lzdGVtRW50cnlDYWxsYmFjaz4m
JiBzdWNjZXNzQ2FsbGJhY2ssIFJlZlB0cjxFcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2sp
CkBAIC03MSwxNCArNzEsMjAgQEAgdm9pZCBGaWxlU3lzdGVtRW50cnk6OmdldFBhcmVudChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8RmlsZVN5c3QKICAgICBpZiAoIXN1
Y2Nlc3NDYWxsYmFjayAmJiAhZXJyb3JDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCi0gICAg
ZmlsZXN5c3RlbSgpLmdldFBhcmVudChjb250ZXh0LCAqdGhpcywgW3BlbmRpbmdBY3Rpdml0eSA9
IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBzdWNjZXNzQ2FsbGJhY2sgPSBXVEZNb3ZlKHN1
Y2Nlc3NDYWxsYmFjayksIGVycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spXShh
dXRvJiYgcmVzdWx0KSB7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAg
ICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrKQotICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJh
Y2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlvbjo6Y3JlYXRlKHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCkpKTsKKyAgICBmaWxlc3lzdGVtKCkuZ2V0UGFyZW50KGNvbnRleHQsICp0aGlzLCBbdGhp
cywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIHN1Y2Nlc3ND
YWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1v
dmUoZXJyb3JDYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBhdXRv
KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQpCiAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN1Y2Nlc3NDYWxsYmFj
aykKLSAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQocmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKTsKKworICAgICAgICBkb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVU
YXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsICpkb2N1bWVudCwgW3N1Y2Nlc3NDYWxsYmFjayA9
IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JD
YWxsYmFjayksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KSwgcGVuZGluZ0FjdGl2aXR5ID0gV1RG
TW92ZShwZW5kaW5nQWN0aXZpdHkpXSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrKQor
ICAgICAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChET01FeGNlcHRp
b246OmNyZWF0ZShyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN1Y2Nlc3NDYWxsYmFjaykK
KyAgICAgICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHJlc3VsdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKSk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmgKaW5kZXgg
ZDk3NjNlZmZlYjBiNmYxNDI1NDA2YTAzMDc2OGIyYTk2YTMwMDgwZS4uYWYyOGNlMDlkZTYxM2Mw
YWFhOTg0NGRiYzE1ZDljMzNlZTMyMTRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRW50cnkuaApAQCAtNTIsMTAgKzUyLDEwIEBAIHB1
YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIEZpbGVTeXN0ZW1FbnRyeShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgRE9NRmlsZVN5c3RlbSYsIGNvbnN0IFN0cmluZyYgdmlydHVhbFBhdGgpOworICAg
IERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIq
IGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNob3VsZFByZXZl
bnRFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGVfREVQUkVDQVRFRCgpIGNvbnN0IGZpbmFsOwogCiAg
ICAgUmVmPERPTUZpbGVTeXN0ZW0+IG1fZmlsZXN5c3RlbTsKICAgICBTdHJpbmcgbV9uYW1lOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1G
aWxlRW50cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0
ZW1GaWxlRW50cnkuY3BwCmluZGV4IGU4YzllZjM4ZTkzMmU0ZTdhNTZjZDlkZjQ0OGE2MmM3NWM5
NzFiY2EuLjQwZjQ3MjRiYWFmOWQxOGFlNDQ1MGVjZDU1OGM4MmUzOTdlZDBhZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZp
bGVFbnRyeS5jcHAKQEAgLTI4LDggKzI4LDEwIEBACiAKICNpbmNsdWRlICJET01FeGNlcHRpb24u
aCIKICNpbmNsdWRlICJET01GaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiRmlsZUNhbGxiYWNrLmgiCisjaW5j
bHVkZSAiV2luZG93RXZlbnRMb29wLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDAs
MTMgKzQyLDE5IEBAIEZpbGVTeXN0ZW1GaWxlRW50cnk6OkZpbGVTeXN0ZW1GaWxlRW50cnkoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRE9NRmlsCiAKIHZvaWQgRmlsZVN5c3RlbUZp
bGVFbnRyeTo6ZmlsZShSZWY8RmlsZUNhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaywgUmVmUHRy
PEVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaykKIHsKLSAgICBmaWxlc3lzdGVtKCkuZ2V0
RmlsZSgqdGhpcywgW3N1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwg
ZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIHsK
LSAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgaWYgKGVy
cm9yQ2FsbGJhY2spCi0gICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQo
RE9NRXhjZXB0aW9uOjpjcmVhdGUocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSkpOworICAgIGZp
bGVzeXN0ZW0oKS5nZXRGaWxlKCp0aGlzLCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBl
bmRpbmdBY3Rpdml0eSgqdGhpcyksIHN1Y2Nlc3NDYWxsYmFjayA9IFdURk1vdmUoc3VjY2Vzc0Nh
bGxiYWNrKSwgZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayldKGF1dG8mJiBy
ZXN1bHQpIG11dGFibGUgeworICAgICAgICBhdXRvKiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50
KCk7CisgICAgICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgc3VjY2Vzc0NhbGxiYWNrLT5oYW5kbGVFdmVudChyZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCkpOworCisgICAgICAgIGRvY3VtZW50LT5ldmVudExvb3AoKS5xdWV1ZVRhc2so
VGFza1NvdXJjZTo6TmV0d29ya2luZywgKmRvY3VtZW50LCBbc3VjY2Vzc0NhbGxiYWNrID0gV1RG
TW92ZShzdWNjZXNzQ2FsbGJhY2spLCBlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNhbGxi
YWNrKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpLCBwZW5kaW5nQWN0aXZpdHkgPSBXVEZNb3Zl
KHBlbmRpbmdBY3Rpdml0eSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2spCisgICAg
ICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KERPTUV4Y2VwdGlvbjo6
Y3JlYXRlKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2
ZW50KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisgICAgICAgIH0pOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZGUxMzgxMTBlODYxZjc2YmY4YTA2NGJkNTAzYjU2Y2RhMDE4NzllMy4uMDY0
ZThjZDIwZTMxZjZhYTllYWQ5MzVhMGYxYjcxYWM5MGM0YjhlZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE5LTEwLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlciAvIEZpbGVTeXN0ZW1FbnRyeSBzaG91bGQgbm90
IHByZXZlbnQgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDkwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81NjU1MDgwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBlZGl0aW5n
L3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5RW50cnktZ2V0RmlsZS1iYWNrLWZvcndh
cmQtY2FjaGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZW50cmllcy1hcGkvRGlyZWN0b3J5RW50cnktZ2V0RmlsZS1iYWNrLWZvcndhcmQtY2FjaGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0Rp
cmVjdG9yeVJlYWRlci1yZWFkRW50cmllcy1iYWNrLWZvcndhcmQtY2FjaGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0
b3J5UmVhZGVyLXJlYWRFbnRyaWVzLWJhY2stZm9yd2FyZC1jYWNoZS5odG1sOiBBZGRlZC4KKwog
MjAxOS0xMC0yMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBub3RpZnkgaW5zcGVjdG9yIHdoZW4gcHJvdmlzaW9uYWwgcGFn
ZSBpcyBjcmVhdGVkLCBjb21taXR0ZWQgYW5kIGRlc3Ryb3llZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeUVudHJ5LWdldEZp
bGUtYmFjay1mb3J3YXJkLWNhY2hlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlFbnRyeS1nZXRGaWxlLWJhY2stZm9yd2Fy
ZC1jYWNoZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdhZjE4MzQyMTlkNjljMzgxMTE3ZWJh
NzE4ODdhOWRhNjY0YjVjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlFbnRyeS1nZXRGaWxlLWJhY2stZm9yd2Fy
ZC1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorTWFrZSBzdXJlIHRoYXQgZmls
ZVN5c3RlbURpcmVjdG9yeUVudHJ5LmdldEZpbGUoKSBkb2VzIG5vdCBwcmV2ZW50IGEgcGFnZSBm
cm9tIGVudGVyaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitwYWdlc2hvdyAtIG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVy
aW5nIGNhY2hlCitwYWdlc2hvdyAtIGZyb20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5k
IHdhcyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlCitQQVNTIFN1Y2Nlc3MgY2FsbGJhY2sg
d2FzIGNhbGxlZAorUEFTUyByZXN0b3JlZEZyb21QYWdlQ2FjaGUgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlFbnRyeS1n
ZXRGaWxlLWJhY2stZm9yd2FyZC1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeUVudHJ5LWdldEZpbGUtYmFjay1mb3J3YXJkLWNh
Y2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQ2YWVlODJlZGRlZGU0YjhjYTg0YWU3MzY5YjE5NDZiZjNm
ZTZhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9l
bnRyaWVzLWFwaS9EaXJlY3RvcnlFbnRyeS1nZXRGaWxlLWJhY2stZm9yd2FyZC1jYWNoZS5odG1s
CkBAIC0wLDAgKzEsNjAgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkcm9wem9uZSIgc3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgYmFj
a2dyb3VuZC1jb2xvcjogZ3JleTsiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJNYWtl
IHN1cmUgdGhhdCBmaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuZ2V0RmlsZSgpIGRvZXMgbm90IHBy
ZXZlbnQgYSBwYWdlIGZyb20gZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4iKTsKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gZmFsc2U7CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ZGVidWcoInBhZ2VzaG93IC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6ICJub3QgIikgKyAi
ZnJvbSBjYWNoZSIpOworICAgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgdGVzdFBh
c3NlZCgiUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hl
Iik7CisgICAgICAgIHJlc3RvcmVkRnJvbVBhZ2VDYWNoZSA9IHRydWU7CisgICAgfQorfSwgZmFs
c2UpOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCBmdW5jdGlvbihldmVu
dCkgeworICAgIGRlYnVnKCJwYWdlaGlkZSAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAi
bm90ICIpICsgImVudGVyaW5nIGNhY2hlIik7CisgICAgaWYgKCFldmVudC5wZXJzaXN0ZWQpIHsK
KyAgICAgICAgdGVzdEZhaWxlZCgiUGFnZSBkaWQgbm90IGVudGVyIHRoZSBwYWdlIGNhY2hlLiIp
OworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBlbnRyeS5n
ZXRGaWxlKCcvdGVzdEZpbGVzL3N1YmZvbGRlcjEvZmlsZTMudHh0Jywge30sIGZ1bmN0aW9uKGZp
bGUpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3MgY2FsbGJhY2sgd2FzIGNhbGxl
ZCIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJyZXN0b3JlZEZyb21QYWdlQ2FjaGUiKTsK
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9LCBmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJFcnJvciBjYWxsYmFjayB3YXMgY2FsbGVkIik7CisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorfSwgZmFsc2UpOwor
Cit2YXIgZHJvcHpvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJvcHpvbmUnKTsKK2Ry
b3B6b25lLm9uZHJvcCA9IGZ1bmN0aW9uKGUpIHsKKyAgICBlLnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgZGF0YVRyYW5zZmVyID0gZS5kYXRhVHJhbnNmZXI7CisKKyAgICBlbnRyeSA9IGRhdGFUcmFu
c2Zlci5pdGVtc1swXS53ZWJraXRHZXRBc0VudHJ5KCk7CisgICAgd2luZG93LmxvY2F0aW9uLmhy
ZWYgPSAiLi4vLi4vLi4vZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLWhlbHBlci5o
dG1sIjsKK307CisKK2Ryb3B6b25lLm9uZHJhZ292ZXIgPSBmdW5jdGlvbihldikgeworICAgIGV2
LnByZXZlbnREZWZhdWx0KCk7Cit9CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHNldFRp
bWVvdXQoKCkgPT4geworICAgICAgICBkcmFnRmlsZXNPbnRvRWxlbWVudChkcm9wem9uZSwgWycu
Li8uLi8uLi9mYXN0L2Zvcm1zL2ZpbGUvZW50cmllcy1hcGkvcmVzb3VyY2VzL3Rlc3RGaWxlcydd
KTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeVJl
YWRlci1yZWFkRW50cmllcy1iYWNrLWZvcndhcmQtY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2VudHJpZXMtYXBpL0RpcmVjdG9yeVJlYWRlci1yZWFk
RW50cmllcy1iYWNrLWZvcndhcmQtY2FjaGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NTQy
ODg4Zjc2YjYwN2RkNTY2YmJmZTZmOTA0MDU2Y2U5OWEyZTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGlyZWN0b3J5UmVhZGVy
LXJlYWRFbnRyaWVzLWJhY2stZm9yd2FyZC1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NSBAQAorQmFzaWMgdGVzdCBjb3ZlcmFnZSBmb3IgZmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5y
ZWFkRW50cmllcygpCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitwYWdlc2hvdyAt
IG5vdCBmcm9tIGNhY2hlCitwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCitwYWdlc2hvdyAtIGZy
b20gY2FjaGUKK1BBU1MgUGFnZSBkaWQgZW50ZXIgYW5kIHdhcyByZXN0b3JlZCBmcm9tIHRoZSBw
YWdlIGNhY2hlCitQQVNTIFN1Y2Nlc3MgY2FsbGJhY2sgd2FzIGNhbGxlZAorUEFTUyByZXN0b3Jl
ZEZyb21QYWdlQ2FjaGUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9lbnRyaWVzLWFwaS9EaXJlY3RvcnlSZWFkZXItcmVhZEVudHJpZXMtYmFjay1mb3J3YXJk
LWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkv
RGlyZWN0b3J5UmVhZGVyLXJlYWRFbnRyaWVzLWJhY2stZm9yd2FyZC1jYWNoZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFkNjAyNzk5YTQzM2Q1NzU1ZWI5MjBmYTkzNzU3NTA1MTAxNWQ5NDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZW50cmllcy1hcGkvRGly
ZWN0b3J5UmVhZGVyLXJlYWRFbnRyaWVzLWJhY2stZm9yd2FyZC1jYWNoZS5odG1sCkBAIC0wLDAg
KzEsODQgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJk
cm9wem9uZSIgc3R5bGU9IndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweDsgYmFja2dyb3VuZC1j
b2xvcjogZ3JleTsiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0IGNv
dmVyYWdlIGZvciBmaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLnJlYWRFbnRyaWVzKCkiKTsKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworcmVzdG9yZWRGcm9tUGFnZUNhY2hlID0gZmFsc2U7CisKK2Z1
bmN0aW9uIGdldEVudHJpZXNBc1Byb21pc2UoZGlyRW50cnkpIHsKKyAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBsZXQgcmVzdWx0ID0gW107Cisg
ICAgICAgIHJlYWRlciA9IGRpckVudHJ5LmNyZWF0ZVJlYWRlcigpOworICAgICAgICBsZXQgZG9C
YXRjaCA9ICgpID0+IHsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkRW50cmllcyhlbnRyaWVzID0+
IHsKKyAgICAgICAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAg
ICBlbnRyaWVzLmZvckVhY2goZSA9PiByZXN1bHQucHVzaChlKSk7CisgICAgICAgICAgICAgICAg
ZG9CYXRjaCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXNvbHZl
KHJlc3VsdC5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChh
Lm5hbWUgPiBiLm5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoYS5uYW1lIDwgYi5uYW1lKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgICAgICAgICB9KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sIHJlamVjdCk7CisgICAg
fTsKKyAgICBkb0JhdGNoKCk7CisgIH0pOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
cGFnZXNob3ciLCBmdW5jdGlvbihldmVudCkgeworICAgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAo
ZXZlbnQucGVyc2lzdGVkID8gIiIgOiAibm90ICIpICsgImZyb20gY2FjaGUiKTsKKyAgICBpZiAo
ZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlBhZ2UgZGlkIGVudGVyIGFu
ZCB3YXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNoZSIpOworICAgICAgICByZXN0b3JlZEZy
b21QYWdlQ2FjaGUgPSB0cnVlOworICAgIH0KK30sIGZhbHNlKTsKKword2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoInBhZ2VoaWRlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkZWJ1ZygicGFnZWhp
ZGUgLSAiICsgKGV2ZW50LnBlcnNpc3RlZCA/ICIiIDogIm5vdCAiKSArICJlbnRlcmluZyBjYWNo
ZSIpOworICAgIGlmICghZXZlbnQucGVyc2lzdGVkKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlBh
Z2UgZGlkIG5vdCBlbnRlciB0aGUgcGFnZSBjYWNoZS4iKTsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZ2V0RW50cmllc0FzUHJvbWlzZShlbnRyeSkudGhl
bihmdW5jdGlvbihlbnRyaWVzKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzIGNh
bGxiYWNrIHdhcyBjYWxsZWQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgicmVzdG9yZWRG
cm9tUGFnZUNhY2hlIik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSwg
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiRXJyb3IgY2FsbGJhY2sgd2Fz
IGNhbGxlZCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0pOworICAg
IH0KK30sIGZhbHNlKTsKKwordmFyIGRyb3B6b25lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2Ryb3B6b25lJyk7Citkcm9wem9uZS5vbmRyb3AgPSBmdW5jdGlvbihlKSB7CisgICAgZS5wcmV2
ZW50RGVmYXVsdCgpOworICAgIGRhdGFUcmFuc2ZlciA9IGUuZGF0YVRyYW5zZmVyOworCisgICAg
ZW50cnkgPSBkYXRhVHJhbnNmZXIuaXRlbXNbMF0ud2Via2l0R2V0QXNFbnRyeSgpOworICAgIHdp
bmRvdy5sb2NhdGlvbi5ocmVmID0gIi4uLy4uLy4uL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFn
ZS1jYWNoZS1oZWxwZXIuaHRtbCI7Cit9OworCitkcm9wem9uZS5vbmRyYWdvdmVyID0gZnVuY3Rp
b24oZXYpIHsKKyAgICBldi5wcmV2ZW50RGVmYXVsdCgpOworfQorCitvbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgZHJhZ0ZpbGVzT250b0VsZW1l
bnQoZHJvcHpvbmUsIFsnLi4vLi4vLi4vZmFzdC9mb3Jtcy9maWxlL2VudHJpZXMtYXBpL3Jlc291
cmNlcy90ZXN0RmlsZXMnXSk7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>