<?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>198947</bug_id>
          
          <creation_ts>2019-06-17 17:55:43 -0700</creation_ts>
          <short_desc>NetworkSession::networkStorageSession can return null</short_desc>
          <delta_ts>2019-06-18 14:40:35 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1545500</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-17 17:55:43 -0700</bug_when>
    <thetext>NetworkSession::networkStorageSession can return null</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545501</commentid>
    <comment_count>1</comment_count>
      <attachid>372304</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-17 17:57:44 -0700</bug_when>
    <thetext>Created attachment 372304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545502</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-17 17:57:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/51394449&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545507</commentid>
    <comment_count>3</comment_count>
      <attachid>372307</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-17 18:01:59 -0700</bug_when>
    <thetext>Created attachment 372307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545659</commentid>
    <comment_count>4</comment_count>
      <attachid>372307</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-06-18 10:28:05 -0700</bug_when>
    <thetext>Comment on attachment 372307
Patch

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

&gt; Source/WebKit/ChangeLog:22
&gt; +        (WebKit::WebResourceLoadStatisticsStore::removePrevalentDomains):

ResourceLoadStatisticsStore.cpp/WebResourceLoadStatisticsStore changes should probably not be needed after changes landed in https://bugs.webkit.org/show_bug.cgi?id=198814.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545804</commentid>
    <comment_count>5</comment_count>
      <attachid>372307</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-18 14:20:13 -0700</bug_when>
    <thetext>Comment on attachment 372307
Patch

They&apos;re just null checks, and a syntax change is needed no matter what, so I&apos;ll just land this.  When we fix bug 194926 we&apos;ll be back to having references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545817</commentid>
    <comment_count>6</comment_count>
      <attachid>372307</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-18 14:40:33 -0700</bug_when>
    <thetext>Comment on attachment 372307
Patch

Clearing flags on attachment: 372307

Committed r246569: &lt;https://trac.webkit.org/changeset/246569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545818</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-18 14:40:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372304</attachid>
            <date>2019-06-17 17:57:44 -0700</date>
            <delta_ts>2019-06-17 18:01:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198947-20190617175743.patch</filename>
            <type>text/plain</type>
            <size>17317</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDY1MjgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE5LTA2LTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTmV0d29ya1Nlc3Np
b246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBjYW4gcmV0dXJuIG51bGwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODk0NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTEzOTQ0NDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2UgYXJlIHNlZWluZyBldmlkZW5jZSBvZiBjcmFzaGVzIGZyb20gdGhlIG1h
cCBvd25pbmcgTmV0d29ya1Nlc3Npb25zIGFuZCB0aGUgbWFwIG93bmluZyBOZXR3b3JrU3RvcmFn
ZVNlc3Npb25zIGJlY29taW5nIG91dCBvZiBzeW5jCisgICAgICAgIGJlY2F1c2UgTmV0d29ya1Nl
c3Npb24gaXMgcmVmY291bnRlZCBidXQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIGlzIG5vdC4gIEkg
c3RhcnRlZCB0aGUgY29tcGxldGUgZml4IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTQ5MjYKKyAgICAgICAgYnV0IGZvciBub3cgbGV0J3MgYWRkIGxlc3Mgcmlz
a3kgbnVsbCBjaGVja3MgdG8gcHJldmVudCBmYWxsb3V0LgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNsaWVudFNpZGVD
b29raWVzQWdlQ2FwKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNo
ZU1heEFnZUNhcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2FsbFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvckhhbmRsZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92
ZVByZXZhbGVudERvbWFpbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3
b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6bmV0d29ya1N0b3JhZ2VTZXNzaW9u
IGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6YXBwbHlDb29raWVCbG9ja2luZ1Bv
bGljeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0
YVRhc2tDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxs
UGVyZm9ybUhUVFBSZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFz
a0NvY29hOjp0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24pOgorCiAyMDE5LTA2LTE3ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUg
YnVpbGQgd2l0aCBjYXNlLXNlbnNpdGl2ZSBpbmNsdWRlcwpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI0NjUxNikK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMzUsOCArMzM1LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlh
bGl6ZU5ldHdvcmtQcgogICAgIGluaXRpYWxpemVTdG9yYWdlUXVvdGEocGFyYW1ldGVycy5kZWZh
dWx0RGF0YVN0b3JlUGFyYW1ldGVycyk7CiAKICAgICBhdXRvKiBkZWZhdWx0U2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIGF1
dG8qIGRlZmF1bHRTdG9yYWdlU2Vzc2lvbiA9IGRlZmF1bHRTZXNzaW9uLT5uZXR3b3JrU3RvcmFn
ZVNlc3Npb24oKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvb2tpZSA6IHBhcmFtZXRlcnMuZGVm
YXVsdERhdGFTdG9yZVBhcmFtZXRlcnMucGVuZGluZ0Nvb2tpZXMpCi0gICAgICAgIGRlZmF1bHRT
ZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zZXRDb29raWUoY29va2llKTsKKyAgICAg
ICAgZGVmYXVsdFN0b3JhZ2VTZXNzaW9uLT5zZXRDb29raWUoY29va2llKTsKIAogICAgIGZvciAo
YXV0byYgc3VwcGxlbWVudCA6IG1fc3VwcGxlbWVudHMudmFsdWVzKCkpCiAgICAgICAgIHN1cHBs
ZW1lbnQtPmluaXRpYWxpemUocGFyYW1ldGVycyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAkocmV2aXNpb24gMjQ2NTE2KQorKysg
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY4LDExICs2OCwxMyBAQCBSZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNz
aW9uOjpjcmVhCiAjZW5kaWYKIH0KIAotTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3b3JrU2Vz
c2lvbjo6bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgY29uc3QKK05ldHdvcmtTdG9yYWdlU2Vzc2lv
biogTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CisgICAg
Ly8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ5MjYg
TmV0d29ya1Nlc3Npb24gc2hvdWxkIG93biBOZXR3b3JrU3RvcmFnZVNlc3Npb24KKyAgICAvLyBp
bnN0ZWFkIG9mIGhhdmluZyBzZXBhcmF0ZSBtYXBzIHdpdGggdGhlIHNhbWUga2V5IGFuZCBkaWZm
ZXJlbnQgbWFuYWdlbWVudC4KICAgICBhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fbmV0d29ya1By
b2Nlc3MtPnN0b3JhZ2VTZXNzaW9uKG1fc2Vzc2lvbklEKTsKLSAgICBSRUxFQVNFX0FTU0VSVChz
dG9yYWdlU2Vzc2lvbik7Ci0gICAgcmV0dXJuICpzdG9yYWdlU2Vzc2lvbjsKKyAgICBBU1NFUlQo
c3RvcmFnZVNlc3Npb24pOworICAgIHJldHVybiBzdG9yYWdlU2Vzc2lvbjsKIH0KIAogTmV0d29y
a1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vzcywg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVj
dG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCShyZXZpc2lvbiAyNDY1MTYp
CisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogCiAgICAgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzOyB9Ci0gICAg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKSBj
b25zdDsKKyAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpIGNvbnN0OwogCiAgICAgdm9pZCByZWdpc3Rlck5ldHdvcmtEYXRhVGFzayhOZXR3
b3JrRGF0YVRhc2smIHRhc2spIHsgbV9kYXRhVGFza1NldC5hZGQoJnRhc2spOyB9CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtEYXRhVGFzayYgdGFzaykgeyBtX2Rh
dGFUYXNrU2V0LnJlbW92ZSgmdGFzayk7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwCShyZXZpc2lvbiAyNDY1MTYpCisrKyBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzg5LDggKzM4OSwxMCBAQCB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6dXBkYXRlCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbc3RvcmUgPSBtYWtlUmVmKG1fc3Rv
cmUpLCBzZWNvbmRzID0gbV9wYXJhbWV0ZXJzLmNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGltZV0g
KCkgewotICAgICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBzdG9yZS0+bmV0d29ya1Nl
c3Npb24oKSkKLSAgICAgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Np
b24oKS5zZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhzZWNvbmRzKTsKKyAgICAgICAgaWYg
KGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gc3RvcmUtPm5ldHdvcmtTZXNzaW9uKCkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uLT5uZXR3b3Jr
U3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+c2V0QWdl
Q2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoc2Vjb25kcyk7CisgICAgICAgIH0KICAgICB9KTsKICNl
bmRpZgogfQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAJKHJldmlzaW9uIDI0NjUxNikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMDAsNyArMzAwLDExIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpoYXMKIAogYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7Ci0gICAgcmV0dXJuIG1fbmV0d29ya1Nl
c3Npb24gPyBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5oYXNTdG9y
YWdlQWNjZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdl
SUQpIDogZmFsc2U7CisgICAgaWYgKG1fbmV0d29ya1Nlc3Npb24pIHsKKyAgICAgICAgaWYgKGF1
dG8qIHN0b3JhZ2VTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNz
aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gc3RvcmFnZVNlc3Npb24tPmhhc1N0b3JhZ2VBY2Nl
c3MocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCk7Cisg
ICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZp
cnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCkBAIC0z
MDgsOCArMzEyLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWwK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKG1fbmV0d29ya1Nlc3Np
b24pIHsKLSAgICAgICAgY2FsbGJhY2sobV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCkuaGFzU3RvcmFnZUFjY2VzcyhyZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURvbWFp
biwgZnJhbWVJRCwgcGFnZUlEKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1dG8q
IHN0b3JhZ2VTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9u
KCkpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHN0b3JhZ2VTZXNzaW9uLT5oYXNTdG9yYWdlQWNj
ZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQpKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGNhbGxiYWNrKGZh
bHNlKTsKQEAgLTQwMSw5ICs0MDcsMTEgQEAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVz
b3VyY2VMb2FkUwogICAgIGJvb2wgaXNTdG9yYWdlR3JhbnRlZCA9IGZhbHNlOwogCiAgICAgaWYg
KG1fbmV0d29ya1Nlc3Npb24pIHsKLSAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCkuZ3JhbnRTdG9yYWdlQWNjZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBh
cnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQpOwotICAgICAgICBBU1NFUlQobV9uZXR3b3JrU2Vz
c2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuaGFzU3RvcmFnZUFjY2VzcyhyZXNvdXJjZURv
bWFpbiwgZmlyc3RQYXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlEKSk7Ci0gICAgICAgIGlzU3Rv
cmFnZUdyYW50ZWQgPSB0cnVlOworICAgICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBt
X25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkgeworICAgICAgICAgICAg
c3RvcmFnZVNlc3Npb24tPmdyYW50U3RvcmFnZUFjY2VzcyhyZXNvdXJjZURvbWFpbiwgZmlyc3RQ
YXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlEKTsKKyAgICAgICAgICAgIEFTU0VSVChzdG9yYWdl
U2Vzc2lvbi0+aGFzU3RvcmFnZUFjY2VzcyhyZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURvbWFp
biwgZnJhbWVJRCwgcGFnZUlEKSk7CisgICAgICAgICAgICBpc1N0b3JhZ2VHcmFudGVkID0gdHJ1
ZTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiBpc1N0b3JhZ2VHcmFudGVkID8gU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQ6OlllcyA6IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObzsK
QEAgLTQzMSw4ICs0MzksMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OnJlbQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAobV9uZXR3
b3JrU2Vzc2lvbikKLSAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNz
aW9uKCkucmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpOworICAgIGlmIChtX25ldHdvcmtTZXNzaW9u
KSB7CisgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpKQorICAgICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJl
bW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKTsKKyAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogfQpAQCAtOTM2LDggKzk0NiwxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6c2V0CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoc2Vj
b25kcyA+PSAwX3MpOwogICAgIAotICAgIGlmIChtX25ldHdvcmtTZXNzaW9uKQotICAgICAgICBt
X25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zZXRDYWNoZU1heEFnZUNh
cEZvclByZXZhbGVudFJlc291cmNlcyhzZWNvbmRzKTsKKyAgICBpZiAobV9uZXR3b3JrU2Vzc2lv
bikgeworICAgICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9u
LT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5z
ZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhzZWNvbmRzKTsKKyAgICB9CiAK
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQpAQCAtOTQ2LDE2ICs5NTgsMjAgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbAogewogICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CiAKLSAgICBpZiAobV9uZXR3b3JrU2Vzc2lvbikKLSAgICAgICAgbV9uZXR3
b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2V0UHJldmFsZW50RG9tYWluc1Rv
QmxvY2tDb29raWVzRm9yKGRvbWFpbnNUb0Jsb2NrKTsKKyAgICBpZiAobV9uZXR3b3JrU2Vzc2lv
bikgeworICAgICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9u
LT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5z
ZXRQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoZG9tYWluc1RvQmxvY2spOworICAg
IH0KIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpyZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxSZWdp
c3RyYWJsZURvbWFpbj4mIGRvbWFpbnMpCiB7Ci0gICAgaWYgKG1fbmV0d29ya1Nlc3Npb24pCi0g
ICAgICAgIG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLnJlbW92ZVBy
ZXZhbGVudERvbWFpbnMoZG9tYWlucyk7CisgICAgaWYgKG1fbmV0d29ya1Nlc3Npb24pIHsKKyAg
ICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29y
a1N0b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+cmVtb3ZlUHJl
dmFsZW50RG9tYWlucyhkb21haW5zKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIoY29uc3QgVmVjdG9yPFJl
Z2lzdHJhYmxlRG9tYWluPiYgZG9tYWlucykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQkocmV2
aXNpb24gMjQ2NTE2KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTM4LDkgKzEzOCwxNSBAQCB2
b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseUNvb2tpZUJsCiAgICAgaWYgKHNob3VsZEJs
b2NrID09IG1faGFzQmVlblNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgTlNIVFRQQ29va2llU3RvcmFnZSAqc3RvcmFnZSA9IHNob3VsZEJsb2Nr
ID8gc3RhdGVsZXNzQ29va2llU3RvcmFnZSgpIDogbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNl
c3Npb24oKS5uc0Nvb2tpZVN0b3JhZ2UoKTsKLSAgICBbbV90YXNrIF9zZXRFeHBsaWNpdENvb2tp
ZVN0b3JhZ2U6c3RvcmFnZS5fY29va2llU3RvcmFnZV07Ci0gICAgbV9oYXNCZWVuU2V0VG9Vc2VT
dGF0ZWxlc3NDb29raWVTdG9yYWdlID0gc2hvdWxkQmxvY2s7CisgICAgTlNIVFRQQ29va2llU3Rv
cmFnZSAqc3RvcmFnZSA9IG5pbDsKKyAgICBpZiAoc2hvdWxkQmxvY2spCisgICAgICAgIHN0b3Jh
Z2UgPSBzdGF0ZWxlc3NDb29raWVTdG9yYWdlKCk7CisgICAgZWxzZSBpZiAoYXV0byogc3RvcmFn
ZVNlc3Npb24gPSBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpKQorICAgICAgICBz
dG9yYWdlID0gc3RvcmFnZVNlc3Npb24tPm5zQ29va2llU3RvcmFnZSgpOworICAgIGlmIChzdG9y
YWdlKSB7CisgICAgICAgIFttX3Rhc2sgX3NldEV4cGxpY2l0Q29va2llU3RvcmFnZTpzdG9yYWdl
Ll9jb29raWVTdG9yYWdlXTsKKyAgICAgICAgbV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29r
aWVTdG9yYWdlID0gc2hvdWxkQmxvY2s7CisgICAgfQogfQogI2VuZGlmCiAKQEAgLTE4MCwxMCAr
MTg2LDEyIEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2MKICAgICAg
ICAgdXJsID0gcmVxdWVzdC51cmwoKTsKICAgICAKICNpZiBVU0UoQ1JFREVOVElBTF9TVE9SQUdF
X1dJVEhfTkVUV09SS19TRVNTSU9OKQotICAgICAgICBpZiAobV91c2VyLmlzRW1wdHkoKSAmJiBt
X3Bhc3N3b3JkLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1faW5pdGlhbENyZWRlbnRpYWwgPSBt
X3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmNyZWRlbnRpYWxTdG9yYWdlKCkuZ2V0
KG1fcGFydGl0aW9uLCB1cmwpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0
aW9uLCBXZWJDb3JlOjpDcmVkZW50aWFsKG1fdXNlciwgbV9wYXNzd29yZCwgV2ViQ29yZTo6Q3Jl
ZGVudGlhbFBlcnNpc3RlbmNlTm9uZSksIHVybCk7CisgICAgICAgIGlmIChhdXRvKiBzdG9yYWdl
U2Vzc2lvbiA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpIHsKKyAgICAgICAg
ICAgIGlmIChtX3VzZXIuaXNFbXB0eSgpICYmIG1fcGFzc3dvcmQuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIG1faW5pdGlhbENyZWRlbnRpYWwgPSBzdG9yYWdlU2Vzc2lvbi0+Y3JlZGVudGlh
bFN0b3JhZ2UoKS5nZXQobV9wYXJ0aXRpb24sIHVybCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFy
dGl0aW9uLCBXZWJDb3JlOjpDcmVkZW50aWFsKG1fdXNlciwgbV9wYXNzd29yZCwgV2ViQ29yZTo6
Q3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSksIHVybCk7CisgICAgICAgIH0KICNlbmRpZgogICAg
IH0KIApAQCAtMTk2LDcgKzIwNCw4IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0
YVRhc2tDb2MKIAogICAgIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzID0gZmFsc2U7CiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBzaG91bGRCbG9ja0Nvb2tpZXMgPSBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6RXBoZW1lcmFsU3RhdGVsZXNzQ29va2llbGVzcyB8fCBzZXNzaW9uLm5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpLnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQpOwor
ICAgIHNob3VsZEJsb2NrQ29va2llcyA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3NDb29raWVsZXNz
CisgICAgICAgIHx8IChzZXNzaW9uLm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpICYmIHNlc3Npb24u
bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBmcmFt
ZUlELCBwYWdlSUQpKTsKICNlbmRpZgogICAgIHJlc3RyaWN0UmVxdWVzdFJlZmVycmVyVG9Pcmln
aW5JZk5lZWRlZChyZXF1ZXN0LCBzaG91bGRCbG9ja0Nvb2tpZXMpOwogCkBAIC0zNTEsNyArMzYw
LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVAogICAgICAgICAv
LyBPbmx5IGNvbnNpZGVyIGFwcGx5aW5nIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzIGlmIHRo
aXMgaXMgYWN0dWFsbHkgYSByZWRpcmVjdCBhbmQgdGhlIHJlZGlyZWN0CiAgICAgICAgIC8vIFVS
TCBkaWRuJ3QgaW5jbHVkZSBjcmVkZW50aWFscyBvZiBpdHMgb3duLgogICAgICAgICBpZiAobV91
c2VyLmlzRW1wdHkoKSAmJiBtX3Bhc3N3b3JkLmlzRW1wdHkoKSAmJiAhcmVkaXJlY3RSZXNwb25z
ZS5pc051bGwoKSkgewotICAgICAgICAgICAgYXV0byBjcmVkZW50aWFsID0gbV9zZXNzaW9uLT5u
ZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlv
biwgcmVxdWVzdC51cmwoKSk7CisgICAgICAgICAgICBhdXRvIGNyZWRlbnRpYWwgPSBtX3Nlc3Np
b24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpID8gbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNl
c3Npb24oKS0+Y3JlZGVudGlhbFN0b3JhZ2UoKS5nZXQobV9wYXJ0aXRpb24sIHJlcXVlc3QudXJs
KCkpIDogV2ViQ29yZTo6Q3JlZGVudGlhbCgpOwogICAgICAgICAgICAgaWYgKCFjcmVkZW50aWFs
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIG1faW5pdGlhbENyZWRlbnRpYWwgPSBjcmVk
ZW50aWFsOwogCkBAIC0zNjYsNyArMzc1LDggQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
d2lsbFBlcmZvcm1IVAogICAgICAgICByZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKHJl
cXVlc3QudXJsKCkpOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAg
ICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0g
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzc0Nvb2tp
ZWxlc3MgfHwgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zaG91bGRCbG9ja0Nv
b2tpZXMocmVxdWVzdCwgbV9mcmFtZUlELCBtX3BhZ2VJRCk7CisgICAgYm9vbCBzaG91bGRCbG9j
a0Nvb2tpZXMgPSBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3NDb29raWVsZXNzCisgICAgICAgIHx8
IChtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpICYmIG1fc2Vzc2lvbi0+bmV0d29y
a1N0b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBtX2ZyYW1lSUQs
IG1fcGFnZUlEKSk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKG1fc2Vzc2lv
bi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKICAgICAgICAgUkVMRUFTRV9MT0dfSUYo
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3JtYXRpb246
IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6ICVzIGNvb2tpZXMg
Zm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIG1fZnJhbWVJ
RCwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChzaG91bGRCbG9ja0Nv
b2tpZXMgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMzk3LDcgKzQwNyw3IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrQ29jb2E6OndpbGxQZXJmb3JtSFQKICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoeyB9KTsKICAgICAgICAgICAgIGlmICghcmVxdWVzdC5pc051bGwoKSkgewogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgICAgICAgICAgICAgYm9vbCBz
aG91bGRCbG9ja0Nvb2tpZXMgPSBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLnNo
b3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBtX2ZyYW1lSUQsIG1fcGFnZUlEKTsKKyAgICAgICAg
ICAgICAgICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKCkgJiYgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS0+c2hvdWxk
QmxvY2tDb29raWVzKHJlcXVlc3QsIG1fZnJhbWVJRCwgbV9wYWdlSUQpOwogI2Vsc2UKICAgICAg
ICAgICAgICAgICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IGZhbHNlOwogI2VuZGlmCkBAIC00
NDUsMTYgKzQ1NSwxOCBAQCBib29sIE5ldHdvcmtEYXRhVGFza0NvY29hOjp0cnlQYXNzd29yZEJh
CiAgICAgICAgICAgICAvLyBUaGUgc3RvcmVkIGNyZWRlbnRpYWwgd2Fzbid0IGFjY2VwdGVkLCBz
dG9wIHVzaW5nIGl0LgogICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbiBo
ZXJlLCBzaW5jZSBhIGRpZmZlcmVudCBjcmVkZW50aWFsIG1pZ2h0IGhhdmUgYWxyZWFkeSBiZWVu
IHN0b3JlZCBieSBhbm90aGVyIFJlc291cmNlSGFuZGxlLAogICAgICAgICAgICAgLy8gYnV0IHRo
ZSBvYnNlcnZhYmxlIGVmZmVjdCBzaG91bGQgYmUgdmVyeSBtaW5vciwgaWYgYW55LgotICAgICAg
ICAgICAgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3RvcmFn
ZSgpLnJlbW92ZShtX3BhcnRpdGlvbiwgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmNyZWRlbnRp
YWxTdG9yYWdlKCkucmVtb3ZlKG1fcGFydGl0aW9uLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNl
KCkpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFjaGFsbGVuZ2UucHJldmlvdXNGYWlsdXJl
Q291bnQoKSkgewotICAgICAgICAgICAgYXV0byBjcmVkZW50aWFsID0gbV9zZXNzaW9uLT5uZXR3
b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlvbiwg
Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKTsKKyAgICAgICAgICAgIGF1dG8gY3JlZGVudGlh
bCA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgPyBtX3Nlc3Npb24tPm5ldHdv
cmtTdG9yYWdlU2Vzc2lvbigpLT5jcmVkZW50aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlvbiwg
Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKSA6IFdlYkNvcmU6OkNyZWRlbnRpYWwoKTsKICAg
ICAgICAgICAgIGlmICghY3JlZGVudGlhbC5pc0VtcHR5KCkgJiYgY3JlZGVudGlhbCAhPSBtX2lu
aXRpYWxDcmVkZW50aWFsKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGNyZWRlbnRpYWwucGVy
c2lzdGVuY2UoKSA9PSBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKICAgICAg
ICAgICAgICAgICBpZiAoY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLmh0dHBTdGF0dXNDb2Rl
KCkgPT0gNDAxKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSBjcmVkZW50aWFs
IGJhY2ssIHBvc3NpYmx5IGFkZGluZyBpdCBhcyBhIGRlZmF1bHQgZm9yIHRoaXMgZGlyZWN0b3J5
LgotICAgICAgICAgICAgICAgICAgICBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
LmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0aW9uLCBjcmVkZW50aWFsLCBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCksIGNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS51cmwoKSk7
CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fc2Vzc2lv
bi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBzdG9y
YWdlU2Vzc2lvbi0+Y3JlZGVudGlhbFN0b3JhZ2UoKS5zZXQobV9wYXJ0aXRpb24sIGNyZWRlbnRp
YWwsIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25z
ZSgpLnVybCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlh
bCwgY3JlZGVudGlhbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372307</attachid>
            <date>2019-06-17 18:01:59 -0700</date>
            <delta_ts>2019-06-18 14:40:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198947-20190617180158.patch</filename>
            <type>text/plain</type>
            <size>31676</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDY1MjgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE5LTA2LTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTmV0d29ya1Nlc3Np
b246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbiBjYW4gcmV0dXJuIG51bGwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODk0NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTEzOTQ0NDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2UgYXJlIHNlZWluZyBldmlkZW5jZSBvZiBjcmFzaGVzIGZyb20gdGhlIG1h
cCBvd25pbmcgTmV0d29ya1Nlc3Npb25zIGFuZCB0aGUgbWFwIG93bmluZyBOZXR3b3JrU3RvcmFn
ZVNlc3Npb25zIGJlY29taW5nIG91dCBvZiBzeW5jCisgICAgICAgIGJlY2F1c2UgTmV0d29ya1Nl
c3Npb24gaXMgcmVmY291bnRlZCBidXQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIGlzIG5vdC4gIEkg
c3RhcnRlZCB0aGUgY29tcGxldGUgZml4IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTQ5MjYKKyAgICAgICAgYnV0IGZvciBub3cgbGV0J3MgYWRkIGxlc3Mgcmlz
a3kgbnVsbCBjaGVja3MgdG8gcHJldmVudCBmYWxsb3V0LgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnVwZGF0ZUNsaWVudFNpZGVD
b29raWVzQWdlQ2FwKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZW1vdmVBbGxTdG9yYWdlQWNjZXNzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRDYWNo
ZU1heEFnZUNhcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y2FsbFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvckhhbmRsZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlbW92
ZVByZXZhbGVudERvbWFpbnMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3
b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6bmV0d29ya1N0b3JhZ2VTZXNzaW9u
IGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6YXBwbHlDb29raWVCbG9ja2luZ1Bv
bGljeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0
YVRhc2tDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxs
UGVyZm9ybUhUVFBSZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFz
a0NvY29hOjp0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24pOgorCiAyMDE5LTA2LTE3ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUg
YnVpbGQgd2l0aCBjYXNlLXNlbnNpdGl2ZSBpbmNsdWRlcwpJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI0NjUxNikK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMzUsOCArMzM1LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlh
bGl6ZU5ldHdvcmtQcgogICAgIGluaXRpYWxpemVTdG9yYWdlUXVvdGEocGFyYW1ldGVycy5kZWZh
dWx0RGF0YVN0b3JlUGFyYW1ldGVycyk7CiAKICAgICBhdXRvKiBkZWZhdWx0U2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOworICAgIGF1
dG8qIGRlZmF1bHRTdG9yYWdlU2Vzc2lvbiA9IGRlZmF1bHRTZXNzaW9uLT5uZXR3b3JrU3RvcmFn
ZVNlc3Npb24oKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNvb2tpZSA6IHBhcmFtZXRlcnMuZGVm
YXVsdERhdGFTdG9yZVBhcmFtZXRlcnMucGVuZGluZ0Nvb2tpZXMpCi0gICAgICAgIGRlZmF1bHRT
ZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zZXRDb29raWUoY29va2llKTsKKyAgICAg
ICAgZGVmYXVsdFN0b3JhZ2VTZXNzaW9uLT5zZXRDb29raWUoY29va2llKTsKIAogICAgIGZvciAo
YXV0byYgc3VwcGxlbWVudCA6IG1fc3VwcGxlbWVudHMudmFsdWVzKCkpCiAgICAgICAgIHN1cHBs
ZW1lbnQtPmluaXRpYWxpemUocGFyYW1ldGVycyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAkocmV2aXNpb24gMjQ2NTE2KQorKysg
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY4LDExICs2OCwxMyBAQCBSZWY8TmV0d29ya1Nlc3Npb24+IE5ldHdvcmtTZXNz
aW9uOjpjcmVhCiAjZW5kaWYKIH0KIAotTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3b3JrU2Vz
c2lvbjo6bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgY29uc3QKK05ldHdvcmtTdG9yYWdlU2Vzc2lv
biogTmV0d29ya1Nlc3Npb246Om5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CisgICAg
Ly8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ5MjYg
TmV0d29ya1Nlc3Npb24gc2hvdWxkIG93biBOZXR3b3JrU3RvcmFnZVNlc3Npb24KKyAgICAvLyBp
bnN0ZWFkIG9mIGhhdmluZyBzZXBhcmF0ZSBtYXBzIHdpdGggdGhlIHNhbWUga2V5IGFuZCBkaWZm
ZXJlbnQgbWFuYWdlbWVudC4KICAgICBhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fbmV0d29ya1By
b2Nlc3MtPnN0b3JhZ2VTZXNzaW9uKG1fc2Vzc2lvbklEKTsKLSAgICBSRUxFQVNFX0FTU0VSVChz
dG9yYWdlU2Vzc2lvbik7Ci0gICAgcmV0dXJuICpzdG9yYWdlU2Vzc2lvbjsKKyAgICBBU1NFUlQo
c3RvcmFnZVNlc3Npb24pOworICAgIHJldHVybiBzdG9yYWdlU2Vzc2lvbjsKIH0KIAogTmV0d29y
a1Nlc3Npb246Ok5ldHdvcmtTZXNzaW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vzcywg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVj
dG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBoYW5kbGUpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCShyZXZpc2lvbiAyNDY1MTYp
CisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogCiAgICAgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MoKSB7IHJldHVybiBtX25ldHdvcmtQcm9jZXNzOyB9Ci0gICAg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKSBj
b25zdDsKKyAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24qIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpIGNvbnN0OwogCiAgICAgdm9pZCByZWdpc3Rlck5ldHdvcmtEYXRhVGFzayhOZXR3
b3JrRGF0YVRhc2smIHRhc2spIHsgbV9kYXRhVGFza1NldC5hZGQoJnRhc2spOyB9CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtEYXRhVGFzayYgdGFzaykgeyBtX2Rh
dGFUYXNrU2V0LnJlbW92ZSgmdGFzayk7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwCShyZXZpc2lvbiAyNDY1MTYpCisrKyBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzg5LDggKzM4OSwxMCBAQCB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6dXBkYXRlCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbc3RvcmUgPSBtYWtlUmVmKG1fc3Rv
cmUpLCBzZWNvbmRzID0gbV9wYXJhbWV0ZXJzLmNsaWVudFNpZGVDb29raWVzQWdlQ2FwVGltZV0g
KCkgewotICAgICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBzdG9yZS0+bmV0d29ya1Nl
c3Npb24oKSkKLSAgICAgICAgICAgIG5ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Np
b24oKS5zZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhzZWNvbmRzKTsKKyAgICAgICAgaWYg
KGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gc3RvcmUtPm5ldHdvcmtTZXNzaW9uKCkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uLT5uZXR3b3Jr
U3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+c2V0QWdl
Q2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoc2Vjb25kcyk7CisgICAgICAgIH0KICAgICB9KTsKICNl
bmRpZgogfQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAJKHJldmlzaW9uIDI0NjUxNikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMDAsNyArMzAwLDExIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpoYXMKIAogYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7Ci0gICAgcmV0dXJuIG1fbmV0d29ya1Nl
c3Npb24gPyBtX25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5oYXNTdG9y
YWdlQWNjZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdl
SUQpIDogZmFsc2U7CisgICAgaWYgKG1fbmV0d29ya1Nlc3Npb24pIHsKKyAgICAgICAgaWYgKGF1
dG8qIHN0b3JhZ2VTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNz
aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gc3RvcmFnZVNlc3Npb24tPmhhc1N0b3JhZ2VBY2Nl
c3MocmVzb3VyY2VEb21haW4sIGZpcnN0UGFydHlEb21haW4sIGZyYW1lSUQsIHBhZ2VJRCk7Cisg
ICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZp
cnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCkBAIC0z
MDgsOCArMzEyLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWwK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgaWYgKG1fbmV0d29ya1Nlc3Np
b24pIHsKLSAgICAgICAgY2FsbGJhY2sobV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKCkuaGFzU3RvcmFnZUFjY2VzcyhyZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURvbWFp
biwgZnJhbWVJRCwgcGFnZUlEKSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGF1dG8q
IHN0b3JhZ2VTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9u
KCkpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHN0b3JhZ2VTZXNzaW9uLT5oYXNTdG9yYWdlQWNj
ZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBhcnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQpKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGNhbGxiYWNrKGZh
bHNlKTsKQEAgLTQwMSw5ICs0MDcsMTEgQEAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVz
b3VyY2VMb2FkUwogICAgIGJvb2wgaXNTdG9yYWdlR3JhbnRlZCA9IGZhbHNlOwogCiAgICAgaWYg
KG1fbmV0d29ya1Nlc3Npb24pIHsKLSAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCkuZ3JhbnRTdG9yYWdlQWNjZXNzKHJlc291cmNlRG9tYWluLCBmaXJzdFBh
cnR5RG9tYWluLCBmcmFtZUlELCBwYWdlSUQpOwotICAgICAgICBBU1NFUlQobV9uZXR3b3JrU2Vz
c2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuaGFzU3RvcmFnZUFjY2VzcyhyZXNvdXJjZURv
bWFpbiwgZmlyc3RQYXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlEKSk7Ci0gICAgICAgIGlzU3Rv
cmFnZUdyYW50ZWQgPSB0cnVlOworICAgICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBt
X25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkgeworICAgICAgICAgICAg
c3RvcmFnZVNlc3Npb24tPmdyYW50U3RvcmFnZUFjY2VzcyhyZXNvdXJjZURvbWFpbiwgZmlyc3RQ
YXJ0eURvbWFpbiwgZnJhbWVJRCwgcGFnZUlEKTsKKyAgICAgICAgICAgIEFTU0VSVChzdG9yYWdl
U2Vzc2lvbi0+aGFzU3RvcmFnZUFjY2VzcyhyZXNvdXJjZURvbWFpbiwgZmlyc3RQYXJ0eURvbWFp
biwgZnJhbWVJRCwgcGFnZUlEKSk7CisgICAgICAgICAgICBpc1N0b3JhZ2VHcmFudGVkID0gdHJ1
ZTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiBpc1N0b3JhZ2VHcmFudGVkID8gU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQ6OlllcyA6IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObzsK
QEAgLTQzMSw4ICs0MzksMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OnJlbQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAobV9uZXR3
b3JrU2Vzc2lvbikKLSAgICAgICAgbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNz
aW9uKCkucmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpOworICAgIGlmIChtX25ldHdvcmtTZXNzaW9u
KSB7CisgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpKQorICAgICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJl
bW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKTsKKyAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogfQpAQCAtOTM2LDggKzk0NiwxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6c2V0CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQoc2Vj
b25kcyA+PSAwX3MpOwogICAgIAotICAgIGlmIChtX25ldHdvcmtTZXNzaW9uKQotICAgICAgICBt
X25ldHdvcmtTZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zZXRDYWNoZU1heEFnZUNh
cEZvclByZXZhbGVudFJlc291cmNlcyhzZWNvbmRzKTsKKyAgICBpZiAobV9uZXR3b3JrU2Vzc2lv
bikgeworICAgICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9u
LT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5z
ZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhzZWNvbmRzKTsKKyAgICB9CiAK
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQpAQCAtOTQ2LDE2ICs5NTgsMjAgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbAogewogICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CiAKLSAgICBpZiAobV9uZXR3b3JrU2Vzc2lvbikKLSAgICAgICAgbV9uZXR3
b3JrU2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2V0UHJldmFsZW50RG9tYWluc1Rv
QmxvY2tDb29raWVzRm9yKGRvbWFpbnNUb0Jsb2NrKTsKKyAgICBpZiAobV9uZXR3b3JrU2Vzc2lv
bikgeworICAgICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9u
LT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKSkKKyAgICAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5z
ZXRQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoZG9tYWluc1RvQmxvY2spOworICAg
IH0KIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpyZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxSZWdp
c3RyYWJsZURvbWFpbj4mIGRvbWFpbnMpCiB7Ci0gICAgaWYgKG1fbmV0d29ya1Nlc3Npb24pCi0g
ICAgICAgIG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLnJlbW92ZVBy
ZXZhbGVudERvbWFpbnMoZG9tYWlucyk7CisgICAgaWYgKG1fbmV0d29ya1Nlc3Npb24pIHsKKyAg
ICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbi0+bmV0d29y
a1N0b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+cmVtb3ZlUHJl
dmFsZW50RG9tYWlucyhkb21haW5zKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIoY29uc3QgVmVjdG9yPFJl
Z2lzdHJhYmxlRG9tYWluPiYgZG9tYWlucykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQkocmV2
aXNpb24gMjQ2NTE2KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTM4LDkgKzEzOCwxNSBAQCB2
b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjphcHBseUNvb2tpZUJsCiAgICAgaWYgKHNob3VsZEJs
b2NrID09IG1faGFzQmVlblNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgTlNIVFRQQ29va2llU3RvcmFnZSAqc3RvcmFnZSA9IHNob3VsZEJsb2Nr
ID8gc3RhdGVsZXNzQ29va2llU3RvcmFnZSgpIDogbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNl
c3Npb24oKS5uc0Nvb2tpZVN0b3JhZ2UoKTsKLSAgICBbbV90YXNrIF9zZXRFeHBsaWNpdENvb2tp
ZVN0b3JhZ2U6c3RvcmFnZS5fY29va2llU3RvcmFnZV07Ci0gICAgbV9oYXNCZWVuU2V0VG9Vc2VT
dGF0ZWxlc3NDb29raWVTdG9yYWdlID0gc2hvdWxkQmxvY2s7CisgICAgTlNIVFRQQ29va2llU3Rv
cmFnZSAqc3RvcmFnZSA9IG5pbDsKKyAgICBpZiAoc2hvdWxkQmxvY2spCisgICAgICAgIHN0b3Jh
Z2UgPSBzdGF0ZWxlc3NDb29raWVTdG9yYWdlKCk7CisgICAgZWxzZSBpZiAoYXV0byogc3RvcmFn
ZVNlc3Npb24gPSBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpKQorICAgICAgICBz
dG9yYWdlID0gc3RvcmFnZVNlc3Npb24tPm5zQ29va2llU3RvcmFnZSgpOworICAgIGlmIChzdG9y
YWdlKSB7CisgICAgICAgIFttX3Rhc2sgX3NldEV4cGxpY2l0Q29va2llU3RvcmFnZTpzdG9yYWdl
Ll9jb29raWVTdG9yYWdlXTsKKyAgICAgICAgbV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29r
aWVTdG9yYWdlID0gc2hvdWxkQmxvY2s7CisgICAgfQogfQogI2VuZGlmCiAKQEAgLTE4MCwxMCAr
MTg2LDEyIEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2MKICAgICAg
ICAgdXJsID0gcmVxdWVzdC51cmwoKTsKICAgICAKICNpZiBVU0UoQ1JFREVOVElBTF9TVE9SQUdF
X1dJVEhfTkVUV09SS19TRVNTSU9OKQotICAgICAgICBpZiAobV91c2VyLmlzRW1wdHkoKSAmJiBt
X3Bhc3N3b3JkLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1faW5pdGlhbENyZWRlbnRpYWwgPSBt
X3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmNyZWRlbnRpYWxTdG9yYWdlKCkuZ2V0
KG1fcGFydGl0aW9uLCB1cmwpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0
aW9uLCBXZWJDb3JlOjpDcmVkZW50aWFsKG1fdXNlciwgbV9wYXNzd29yZCwgV2ViQ29yZTo6Q3Jl
ZGVudGlhbFBlcnNpc3RlbmNlTm9uZSksIHVybCk7CisgICAgICAgIGlmIChhdXRvKiBzdG9yYWdl
U2Vzc2lvbiA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpIHsKKyAgICAgICAg
ICAgIGlmIChtX3VzZXIuaXNFbXB0eSgpICYmIG1fcGFzc3dvcmQuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIG1faW5pdGlhbENyZWRlbnRpYWwgPSBzdG9yYWdlU2Vzc2lvbi0+Y3JlZGVudGlh
bFN0b3JhZ2UoKS5nZXQobV9wYXJ0aXRpb24sIHVybCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFy
dGl0aW9uLCBXZWJDb3JlOjpDcmVkZW50aWFsKG1fdXNlciwgbV9wYXNzd29yZCwgV2ViQ29yZTo6
Q3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSksIHVybCk7CisgICAgICAgIH0KICNlbmRpZgogICAg
IH0KIApAQCAtMTk2LDcgKzIwNCw4IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0
YVRhc2tDb2MKIAogICAgIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzID0gZmFsc2U7CiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBzaG91bGRCbG9ja0Nvb2tpZXMgPSBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6RXBoZW1lcmFsU3RhdGVsZXNzQ29va2llbGVzcyB8fCBzZXNzaW9uLm5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpLnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQpOwor
ICAgIHNob3VsZEJsb2NrQ29va2llcyA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3NDb29raWVsZXNz
CisgICAgICAgIHx8IChzZXNzaW9uLm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpICYmIHNlc3Npb24u
bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBmcmFt
ZUlELCBwYWdlSUQpKTsKICNlbmRpZgogICAgIHJlc3RyaWN0UmVxdWVzdFJlZmVycmVyVG9Pcmln
aW5JZk5lZWRlZChyZXF1ZXN0LCBzaG91bGRCbG9ja0Nvb2tpZXMpOwogCkBAIC0zNTEsNyArMzYw
LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVAogICAgICAgICAv
LyBPbmx5IGNvbnNpZGVyIGFwcGx5aW5nIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzIGlmIHRo
aXMgaXMgYWN0dWFsbHkgYSByZWRpcmVjdCBhbmQgdGhlIHJlZGlyZWN0CiAgICAgICAgIC8vIFVS
TCBkaWRuJ3QgaW5jbHVkZSBjcmVkZW50aWFscyBvZiBpdHMgb3duLgogICAgICAgICBpZiAobV91
c2VyLmlzRW1wdHkoKSAmJiBtX3Bhc3N3b3JkLmlzRW1wdHkoKSAmJiAhcmVkaXJlY3RSZXNwb25z
ZS5pc051bGwoKSkgewotICAgICAgICAgICAgYXV0byBjcmVkZW50aWFsID0gbV9zZXNzaW9uLT5u
ZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlv
biwgcmVxdWVzdC51cmwoKSk7CisgICAgICAgICAgICBhdXRvIGNyZWRlbnRpYWwgPSBtX3Nlc3Np
b24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpID8gbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNl
c3Npb24oKS0+Y3JlZGVudGlhbFN0b3JhZ2UoKS5nZXQobV9wYXJ0aXRpb24sIHJlcXVlc3QudXJs
KCkpIDogV2ViQ29yZTo6Q3JlZGVudGlhbCgpOwogICAgICAgICAgICAgaWYgKCFjcmVkZW50aWFs
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIG1faW5pdGlhbENyZWRlbnRpYWwgPSBjcmVk
ZW50aWFsOwogCkBAIC0zNjYsNyArMzc1LDggQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
d2lsbFBlcmZvcm1IVAogICAgICAgICByZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKHJl
cXVlc3QudXJsKCkpOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAg
ICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0g
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkVwaGVtZXJhbFN0YXRlbGVzc0Nvb2tp
ZWxlc3MgfHwgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zaG91bGRCbG9ja0Nv
b2tpZXMocmVxdWVzdCwgbV9mcmFtZUlELCBtX3BhZ2VJRCk7CisgICAgYm9vbCBzaG91bGRCbG9j
a0Nvb2tpZXMgPSBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5OjpFcGhlbWVyYWxTdGF0ZWxlc3NDb29raWVsZXNzCisgICAgICAgIHx8
IChtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpICYmIG1fc2Vzc2lvbi0+bmV0d29y
a1N0b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBtX2ZyYW1lSUQs
IG1fcGFnZUlEKSk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKG1fc2Vzc2lv
bi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKICAgICAgICAgUkVMRUFTRV9MT0dfSUYo
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3JtYXRpb246
IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6ICVzIGNvb2tpZXMg
Zm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIG1fZnJhbWVJ
RCwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChzaG91bGRCbG9ja0Nv
b2tpZXMgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMzk3LDcgKzQwNyw3IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrQ29jb2E6OndpbGxQZXJmb3JtSFQKICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoeyB9KTsKICAgICAgICAgICAgIGlmICghcmVxdWVzdC5pc051bGwoKSkgewogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgICAgICAgICAgICAgYm9vbCBz
aG91bGRCbG9ja0Nvb2tpZXMgPSBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLnNo
b3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBtX2ZyYW1lSUQsIG1fcGFnZUlEKTsKKyAgICAgICAg
ICAgICAgICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKCkgJiYgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS0+c2hvdWxk
QmxvY2tDb29raWVzKHJlcXVlc3QsIG1fZnJhbWVJRCwgbV9wYWdlSUQpOwogI2Vsc2UKICAgICAg
ICAgICAgICAgICBib29sIHNob3VsZEJsb2NrQ29va2llcyA9IGZhbHNlOwogI2VuZGlmCkBAIC00
NDUsMTYgKzQ1NSwxOCBAQCBib29sIE5ldHdvcmtEYXRhVGFza0NvY29hOjp0cnlQYXNzd29yZEJh
CiAgICAgICAgICAgICAvLyBUaGUgc3RvcmVkIGNyZWRlbnRpYWwgd2Fzbid0IGFjY2VwdGVkLCBz
dG9wIHVzaW5nIGl0LgogICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbiBo
ZXJlLCBzaW5jZSBhIGRpZmZlcmVudCBjcmVkZW50aWFsIG1pZ2h0IGhhdmUgYWxyZWFkeSBiZWVu
IHN0b3JlZCBieSBhbm90aGVyIFJlc291cmNlSGFuZGxlLAogICAgICAgICAgICAgLy8gYnV0IHRo
ZSBvYnNlcnZhYmxlIGVmZmVjdCBzaG91bGQgYmUgdmVyeSBtaW5vciwgaWYgYW55LgotICAgICAg
ICAgICAgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3RvcmFn
ZSgpLnJlbW92ZShtX3BhcnRpdGlvbiwgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgICAgICAgICAgc3RvcmFnZVNlc3Npb24tPmNyZWRlbnRp
YWxTdG9yYWdlKCkucmVtb3ZlKG1fcGFydGl0aW9uLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNl
KCkpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFjaGFsbGVuZ2UucHJldmlvdXNGYWlsdXJl
Q291bnQoKSkgewotICAgICAgICAgICAgYXV0byBjcmVkZW50aWFsID0gbV9zZXNzaW9uLT5uZXR3
b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlvbiwg
Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKTsKKyAgICAgICAgICAgIGF1dG8gY3JlZGVudGlh
bCA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgPyBtX3Nlc3Npb24tPm5ldHdv
cmtTdG9yYWdlU2Vzc2lvbigpLT5jcmVkZW50aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlvbiwg
Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKSA6IFdlYkNvcmU6OkNyZWRlbnRpYWwoKTsKICAg
ICAgICAgICAgIGlmICghY3JlZGVudGlhbC5pc0VtcHR5KCkgJiYgY3JlZGVudGlhbCAhPSBtX2lu
aXRpYWxDcmVkZW50aWFsKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGNyZWRlbnRpYWwucGVy
c2lzdGVuY2UoKSA9PSBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKICAgICAg
ICAgICAgICAgICBpZiAoY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLmh0dHBTdGF0dXNDb2Rl
KCkgPT0gNDAxKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSBjcmVkZW50aWFs
IGJhY2ssIHBvc3NpYmx5IGFkZGluZyBpdCBhcyBhIGRlZmF1bHQgZm9yIHRoaXMgZGlyZWN0b3J5
LgotICAgICAgICAgICAgICAgICAgICBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
LmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0aW9uLCBjcmVkZW50aWFsLCBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCksIGNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS51cmwoKSk7
CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fc2Vzc2lv
bi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBzdG9y
YWdlU2Vzc2lvbi0+Y3JlZGVudGlhbFN0b3JhZ2UoKS5zZXQobV9wYXJ0aXRpb24sIGNyZWRlbnRp
YWwsIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25z
ZSgpLnVybCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlh
bCwgY3JlZGVudGlhbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRh
VGFza0N1cmwuY3BwCShyZXZpc2lvbiAyNDY1MTYpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDkgKzU5LDkgQEAgTmV0d29ya0RhdGFUYXNrQ3VybDo6TmV0d29ya0RhdGFUYXNrQ3VybAogICAg
ICAgICAgICAgcmVxdWVzdC5yZW1vdmVDcmVkZW50aWFscygpOwogCiAgICAgICAgICAgICBpZiAo
bV91c2VyLmlzRW1wdHkoKSAmJiBtX3Bhc3N3b3JkLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAg
ICBtX2luaXRpYWxDcmVkZW50aWFsID0gbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24o
KS5jcmVkZW50aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlvbiwgcmVxdWVzdC51cmwoKSk7Cisg
ICAgICAgICAgICAgICAgbV9pbml0aWFsQ3JlZGVudGlhbCA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCktPmNyZWRlbnRpYWxTdG9yYWdlKCkuZ2V0KG1fcGFydGl0aW9uLCByZXF1
ZXN0LnVybCgpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX3Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0
aW9uLCBDcmVkZW50aWFsKG1fdXNlciwgbV9wYXNzd29yZCwgQ3JlZGVudGlhbFBlcnNpc3RlbmNl
Tm9uZSksIHJlcXVlc3QudXJsKCkpOworICAgICAgICAgICAgICAgIG1fc2Vzc2lvbi0+bmV0d29y
a1N0b3JhZ2VTZXNzaW9uKCktPmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0aW9uLCBD
cmVkZW50aWFsKG1fdXNlciwgbV9wYXNzd29yZCwgQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSks
IHJlcXVlc3QudXJsKCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yODcsNyArMjg3LDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tDdXJsOjp3aWxsUGVyZm9ybUhUVAogICAgICAgICAvLyBPbmx5
IGNvbnNpZGVyIGFwcGx5aW5nIGF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzIGlmIHRoaXMgaXMg
YWN0dWFsbHkgYSByZWRpcmVjdCBhbmQgdGhlIHJlZGlyZWN0CiAgICAgICAgIC8vIFVSTCBkaWRu
J3QgaW5jbHVkZSBjcmVkZW50aWFscyBvZiBpdHMgb3duLgogICAgICAgICBpZiAobV91c2VyLmlz
RW1wdHkoKSAmJiBtX3Bhc3N3b3JkLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgYXV0byBjcmVk
ZW50aWFsID0gbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3Rv
cmFnZSgpLmdldChtX3BhcnRpdGlvbiwgcmVxdWVzdC51cmwoKSk7CisgICAgICAgICAgICBhdXRv
IGNyZWRlbnRpYWwgPSBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5jcmVkZW50
aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlvbiwgcmVxdWVzdC51cmwoKSk7CiAgICAgICAgICAg
ICBpZiAoIWNyZWRlbnRpYWwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgbV9pbml0aWFs
Q3JlZGVudGlhbCA9IGNyZWRlbnRpYWw7CiAgICAgICAgICAgICAgICAgZGlkQ2hhbmdlQ3JlZGVu
dGlhbCA9IHRydWU7CkBAIC0zMzcsMTYgKzMzNywxNiBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0N1
cmw6OnRyeUh0dHBBdXRoZW50CiAgICAgICAgICAgICAvLyBUaGUgc3RvcmVkIGNyZWRlbnRpYWwg
d2Fzbid0IGFjY2VwdGVkLCBzdG9wIHVzaW5nIGl0LiBUaGVyZSBpcyBhIHJhY2UgY29uZGl0aW9u
CiAgICAgICAgICAgICAvLyBoZXJlLCBzaW5jZSBhIGRpZmZlcmVudCBjcmVkZW50aWFsIG1pZ2h0
IGhhdmUgYWxyZWFkeSBiZWVuIHN0b3JlZCBieSBhbm90aGVyCiAgICAgICAgICAgICAvLyBOZXR3
b3JrRGF0YVRhc2ssIGJ1dCB0aGUgb2JzZXJ2YWJsZSBlZmZlY3Qgc2hvdWxkIGJlIHZlcnkgbWlu
b3IsIGlmIGFueS4KLSAgICAgICAgICAgIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9u
KCkuY3JlZGVudGlhbFN0b3JhZ2UoKS5yZW1vdmUobV9wYXJ0aXRpb24sIGNoYWxsZW5nZS5wcm90
ZWN0aW9uU3BhY2UoKSk7CisgICAgICAgICAgICBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vz
c2lvbigpLT5jcmVkZW50aWFsU3RvcmFnZSgpLnJlbW92ZShtX3BhcnRpdGlvbiwgY2hhbGxlbmdl
LnByb3RlY3Rpb25TcGFjZSgpKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghY2hhbGxlbmdl
LnByZXZpb3VzRmFpbHVyZUNvdW50KCkpIHsKLSAgICAgICAgICAgIGF1dG8gY3JlZGVudGlhbCA9
IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuY3JlZGVudGlhbFN0b3JhZ2UoKS5n
ZXQobV9wYXJ0aXRpb24sIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSk7CisgICAgICAgICAg
ICBhdXRvIGNyZWRlbnRpYWwgPSBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5j
cmVkZW50aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlvbiwgY2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZSgpKTsKICAgICAgICAgICAgIGlmICghY3JlZGVudGlhbC5pc0VtcHR5KCkgJiYgY3JlZGVu
dGlhbCAhPSBtX2luaXRpYWxDcmVkZW50aWFsKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGNy
ZWRlbnRpYWwucGVyc2lzdGVuY2UoKSA9PSBDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKICAg
ICAgICAgICAgICAgICBpZiAoY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLmlzVW5hdXRob3Jp
emVkKCkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gU3RvcmUgdGhlIGNyZWRlbnRpYWwgYmFj
aywgcG9zc2libHkgYWRkaW5nIGl0IGFzIGEgZGVmYXVsdCBmb3IgdGhpcyBkaXJlY3RvcnkuCi0g
ICAgICAgICAgICAgICAgICAgIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuY3Jl
ZGVudGlhbFN0b3JhZ2UoKS5zZXQobV9wYXJ0aXRpb24sIGNyZWRlbnRpYWwsIGNoYWxsZW5nZS5w
cm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLnVybCgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS0+Y3Jl
ZGVudGlhbFN0b3JhZ2UoKS5zZXQobV9wYXJ0aXRpb24sIGNyZWRlbnRpYWwsIGNoYWxsZW5nZS5w
cm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLnVybCgpKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmVzdGFydFdpdGhDcmVkZW50aWFsKGNo
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgY3JlZGVudGlhbCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMzY3LDcgKzM2Nyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ3VybDo6dHJ5
SHR0cEF1dGhlbnQKICAgICAgICAgaWYgKGRpc3Bvc2l0aW9uID09IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb246OlVzZUNyZWRlbnRpYWwgJiYgIWNyZWRlbnRpYWwuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBpZiAobV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6VXNlKSB7CiAgICAgICAgICAgICAgICAgaWYgKGNyZWRlbnRpYWwu
cGVyc2lzdGVuY2UoKSA9PSBDcmVkZW50aWFsUGVyc2lzdGVuY2VGb3JTZXNzaW9uIHx8IGNyZWRl
bnRpYWwucGVyc2lzdGVuY2UoKSA9PSBDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJtYW5lbnQpCi0g
ICAgICAgICAgICAgICAgICAgIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuY3Jl
ZGVudGlhbFN0b3JhZ2UoKS5zZXQobV9wYXJ0aXRpb24sIGNyZWRlbnRpYWwsIGNoYWxsZW5nZS5w
cm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLnVybCgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS0+Y3Jl
ZGVudGlhbFN0b3JhZ2UoKS5zZXQobV9wYXJ0aXRpb24sIGNyZWRlbnRpYWwsIGNoYWxsZW5nZS5w
cm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLnVybCgpKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmVzdGFydFdpdGhDcmVkZW50aWFsKGNoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2UoKSwgY3JlZGVudGlhbCk7CkBAIC00NDQsMTAgKzQ0NCwxMCBAQCB2
b2lkIE5ldHdvcmtEYXRhVGFza0N1cmw6OnJlc3RhcnRXaXRoQ3JlCiAKIHZvaWQgTmV0d29ya0Rh
dGFUYXNrQ3VybDo6YXBwZW5kQ29va2llSGVhZGVyKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBjb25zdCBhdXRvJiBzdG9yYWdlU2Vzc2lvbiA9IG1fc2Vzc2lvbi0+
bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7Ci0gICAgY29uc3QgYXV0byYgY29va2llSmFyID0gc3Rv
cmFnZVNlc3Npb24uY29va2llU3RvcmFnZSgpOworICAgIGNvbnN0IGF1dG8qIHN0b3JhZ2VTZXNz
aW9uID0gbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKKyAgICBjb25zdCBhdXRv
JiBjb29raWVKYXIgPSBzdG9yYWdlU2Vzc2lvbi0+Y29va2llU3RvcmFnZSgpOwogICAgIGF1dG8g
aW5jbHVkZVNlY3VyZUNvb2tpZXMgPSByZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikg
PyBJbmNsdWRlU2VjdXJlQ29va2llczo6WWVzIDogSW5jbHVkZVNlY3VyZUNvb2tpZXM6Ok5vOwot
ICAgIGF1dG8gY29va2llSGVhZGVyRmllbGQgPSBjb29raWVKYXIuY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMo
KSwgV2ViQ29yZTo6U2FtZVNpdGVJbmZvOjpjcmVhdGUocmVxdWVzdCksIHJlcXVlc3QudXJsKCks
IFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0LCBpbmNsdWRlU2VjdXJlQ29va2llcykuZmlyc3Q7
CisgICAgYXV0byBjb29raWVIZWFkZXJGaWVsZCA9IGNvb2tpZUphci5jb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZSgqc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tp
ZXMoKSwgV2ViQ29yZTo6U2FtZVNpdGVJbmZvOjpjcmVhdGUocmVxdWVzdCksIHJlcXVlc3QudXJs
KCksIFdURjo6bnVsbG9wdCwgV1RGOjpudWxsb3B0LCBpbmNsdWRlU2VjdXJlQ29va2llcykuZmly
c3Q7CiAgICAgaWYgKCFjb29raWVIZWFkZXJGaWVsZC5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVl
c3QuYWRkSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb29raWUsIGNvb2tpZUhlYWRl
ckZpZWxkKTsKIH0KQEAgLTQ1NiwxMiArNDU2LDEyIEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ3Vy
bDo6aGFuZGxlQ29va2llSGUKIHsKICAgICBzdGF0aWMgY29uc3QgYXV0byBzZXRDb29raWVIZWFk
ZXIgPSAic2V0LWNvb2tpZTogIjsKIAotICAgIGNvbnN0IGF1dG8mIHN0b3JhZ2VTZXNzaW9uID0g
bV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKTsKLSAgICBjb25zdCBhdXRvJiBjb29r
aWVKYXIgPSBzdG9yYWdlU2Vzc2lvbi5jb29raWVTdG9yYWdlKCk7CisgICAgY29uc3QgYXV0byog
c3RvcmFnZVNlc3Npb24gPSBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpOworICAg
IGNvbnN0IGF1dG8mIGNvb2tpZUphciA9IHN0b3JhZ2VTZXNzaW9uLT5jb29raWVTdG9yYWdlKCk7
CiAgICAgZm9yIChhdXRvIGhlYWRlciA6IHJlc3BvbnNlLmhlYWRlcnMpIHsKICAgICAgICAgaWYg
KGhlYWRlci5zdGFydHNXaXRoSWdub3JpbmdBU0NJSUNhc2Uoc2V0Q29va2llSGVhZGVyKSkgewog
ICAgICAgICAgICAgU3RyaW5nIHNldENvb2tpZVN0cmluZyA9IGhlYWRlci5yaWdodChoZWFkZXIu
bGVuZ3RoKCkgLSBzdHJsZW4oc2V0Q29va2llSGVhZGVyKSk7Ci0gICAgICAgICAgICBjb29raWVK
YXIuc2V0Q29va2llc0Zyb21IVFRQUmVzcG9uc2Uoc3RvcmFnZVNlc3Npb24sIHJlcXVlc3QuZmly
c3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVzcG9uc2UudXJsLCBzZXRDb29raWVTdHJpbmcpOworICAg
ICAgICAgICAgY29va2llSmFyLnNldENvb2tpZXNGcm9tSFRUUFJlc3BvbnNlKCpzdG9yYWdlU2Vz
c2lvbiwgcmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCByZXNwb25zZS51cmwsIHNldENv
b2tpZVN0cmluZyk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya1Nlc3Npb25DdXJsLmNwcAko
cmV2aXNpb24gMjQ2NTE2KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05l
dHdvcmtTZXNzaW9uQ3VybC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDggKzQxLDggQEAgTmV0
d29ya1Nlc3Npb25DdXJsOjpOZXR3b3JrU2Vzc2lvbkN1cmwoTgogICAgIDogTmV0d29ya1Nlc3Np
b24obmV0d29ya1Byb2Nlc3MsIHBhcmFtZXRlcnMuc2Vzc2lvbklELCBwYXJhbWV0ZXJzLmxvY2Fs
U3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpCiB7CiAgICAgaWYgKCFwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
RmlsZS5pc0VtcHR5KCkpCi0gICAgICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLnNldENvb2tp
ZURhdGFiYXNlKG1ha2VVbmlxdWVSZWY8Q29va2llSmFyREI+KHBhcmFtZXRlcnMuY29va2llUGVy
c2lzdGVudFN0b3JhZ2VGaWxlKSk7Ci0gICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2V0UHJv
eHlTZXR0aW5ncyhXVEZNb3ZlKHBhcmFtZXRlcnMucHJveHlTZXR0aW5ncykpOworICAgICAgICBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24oKS0+c2V0Q29va2llRGF0YWJhc2UobWFrZVVuaXF1ZVJlZjxD
b29raWVKYXJEQj4ocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZUZpbGUpKTsKKyAg
ICBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKS0+c2V0UHJveHlTZXR0aW5ncyhXVEZNb3ZlKHBhcmFt
ZXRlcnMucHJveHlTZXR0aW5ncykpOwogfQogCiBOZXR3b3JrU2Vzc2lvbkN1cmw6On5OZXR3b3Jr
U2Vzc2lvbkN1cmwoKQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAkocmV2aXNpb24gMjQ2NTE2KQor
KysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw5ICs2OCw5IEBAIE5ldHdvcmtEYXRhVGFza1NvdXA6
Ok5ldHdvcmtEYXRhVGFza1NvdXAKICAgICAgICAgICAgIHJlcXVlc3QucmVtb3ZlQ3JlZGVudGlh
bHMoKTsKIAogICAgICAgICAgICAgaWYgKG1fdXNlci5pc0VtcHR5KCkgJiYgbV9wYXNzd29yZC5p
c0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgbV9pbml0aWFsQ3JlZGVudGlhbCA9IG1fc2Vzc2lv
bi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuY3JlZGVudGlhbFN0b3JhZ2UoKS5nZXQobV9wYXJ0
aXRpb24sIHJlcXVlc3QudXJsKCkpOworICAgICAgICAgICAgICAgIG1faW5pdGlhbENyZWRlbnRp
YWwgPSBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5jcmVkZW50aWFsU3RvcmFn
ZSgpLmdldChtX3BhcnRpdGlvbiwgcmVxdWVzdC51cmwoKSk7CiAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50
aWFsU3RvcmFnZSgpLnNldChtX3BhcnRpdGlvbiwgQ3JlZGVudGlhbChtX3VzZXIsIG1fcGFzc3dv
cmQsIENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUpLCByZXF1ZXN0LnVybCgpKTsKKyAgICAgICAg
ICAgICAgICBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5jcmVkZW50aWFsU3Rv
cmFnZSgpLnNldChtX3BhcnRpdGlvbiwgQ3JlZGVudGlhbChtX3VzZXIsIG1fcGFzc3dvcmQsIENy
ZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUpLCByZXF1ZXN0LnVybCgpKTsKICAgICAgICAgfQogICAg
ICAgICBhcHBseUF1dGhlbnRpY2F0aW9uVG9SZXF1ZXN0KHJlcXVlc3QpOwogICAgIH0KQEAgLTQ3
MCwxNyArNDcwLDE3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6YXV0aGVudGljYXRlKEEK
ICAgICAgICAgICAgIC8vIFRoZSBzdG9yZWQgY3JlZGVudGlhbCB3YXNuJ3QgYWNjZXB0ZWQsIHN0
b3AgdXNpbmcgaXQuIFRoZXJlIGlzIGEgcmFjZSBjb25kaXRpb24KICAgICAgICAgICAgIC8vIGhl
cmUsIHNpbmNlIGEgZGlmZmVyZW50IGNyZWRlbnRpYWwgbWlnaHQgaGF2ZSBhbHJlYWR5IGJlZW4g
c3RvcmVkIGJ5IGFub3RoZXIKICAgICAgICAgICAgIC8vIE5ldHdvcmtEYXRhVGFzaywgYnV0IHRo
ZSBvYnNlcnZhYmxlIGVmZmVjdCBzaG91bGQgYmUgdmVyeSBtaW5vciwgaWYgYW55LgotICAgICAg
ICAgICAgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3RvcmFn
ZSgpLnJlbW92ZShtX3BhcnRpdGlvbiwgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKTsKKyAg
ICAgICAgICAgIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPmNyZWRlbnRpYWxT
dG9yYWdlKCkucmVtb3ZlKG1fcGFydGl0aW9uLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkp
OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFjaGFsbGVuZ2UucHJldmlvdXNGYWlsdXJlQ291
bnQoKSkgewotICAgICAgICAgICAgYXV0byBjcmVkZW50aWFsID0gbV9zZXNzaW9uLT5uZXR3b3Jr
U3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3RvcmFnZSgpLmdldChtX3BhcnRpdGlvbiwgY2hh
bGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpKTsKKyAgICAgICAgICAgIGF1dG8gY3JlZGVudGlhbCA9
IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPmNyZWRlbnRpYWxTdG9yYWdlKCku
Z2V0KG1fcGFydGl0aW9uLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkpOwogICAgICAgICAg
ICAgaWYgKCFjcmVkZW50aWFsLmlzRW1wdHkoKSAmJiBjcmVkZW50aWFsICE9IG1faW5pdGlhbENy
ZWRlbnRpYWwpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoY3JlZGVudGlhbC5wZXJzaXN0ZW5j
ZSgpID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUpOwogCiAgICAgICAgICAgICAgICAgaWYg
KGlzQXV0aGVudGljYXRpb25GYWlsdXJlU3RhdHVzQ29kZShjaGFsbGVuZ2UuZmFpbHVyZVJlc3Bv
bnNlKCkuaHR0cFN0YXR1c0NvZGUoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gU3RvcmUg
dGhlIGNyZWRlbnRpYWwgYmFjaywgcG9zc2libHkgYWRkaW5nIGl0IGFzIGEgZGVmYXVsdCBmb3Ig
dGhpcyBkaXJlY3RvcnkuCi0gICAgICAgICAgICAgICAgICAgIG1fc2Vzc2lvbi0+bmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCkuY3JlZGVudGlhbFN0b3JhZ2UoKS5zZXQobV9wYXJ0aXRpb24sIGNyZWRl
bnRpYWwsIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZhaWx1cmVSZXNw
b25zZSgpLnVybCgpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZXNzaW9uLT5uZXR3b3JrU3Rv
cmFnZVNlc3Npb24oKS0+Y3JlZGVudGlhbFN0b3JhZ2UoKS5zZXQobV9wYXJ0aXRpb24sIGNyZWRl
bnRpYWwsIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZhaWx1cmVSZXNw
b25zZSgpLnVybCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgc291cF9h
dXRoX2F1dGhlbnRpY2F0ZShjaGFsbGVuZ2Uuc291cEF1dGgoKSwgY3JlZGVudGlhbC51c2VyKCku
dXRmOCgpLmRhdGEoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKQEAgLTQ5Niw3ICs0OTYsNyBAQCB2b2lkIE5ldHdvcmtEYXRh
VGFza1NvdXA6OmF1dGhlbnRpY2F0ZShBCiAgICAgLy8gd2lsbCBiZWNvbWUgc2Vzc2lvbiBjcmVk
ZW50aWFscyBhZnRlciB0aGUgZmlyc3QgdXNlLgogICAgIGlmIChtX3N0b3JlZENyZWRlbnRpYWxz
UG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsKICAgICAgICAgYXV0byBw
cm90ZWN0aW9uU3BhY2UgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCk7Ci0gICAgICAgIG1f
c2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuZ2V0Q3JlZGVudGlhbEZyb21QZXJzaXN0
ZW50U3RvcmFnZShwcm90ZWN0aW9uU3BhY2UsIG1fY2FuY2VsbGFibGUuZ2V0KCksCisgICAgICAg
IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPmdldENyZWRlbnRpYWxGcm9tUGVy
c2lzdGVudFN0b3JhZ2UocHJvdGVjdGlvblNwYWNlLCBtX2NhbmNlbGxhYmxlLmdldCgpLAogICAg
ICAgICAgICAgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgYXV0aENoYWxs
ZW5nZSA9IFdURk1vdmUoY2hhbGxlbmdlKV0gKENyZWRlbnRpYWwmJiBjcmVkZW50aWFsKSBtdXRh
YmxlIHsKICAgICAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6Q2FuY2VsaW5nIHx8
IG1fc3RhdGUgPT0gU3RhdGU6OkNvbXBsZXRlZCB8fCAhbV9jbGllbnQpIHsKICAgICAgICAgICAg
ICAgICAgICAgY2xlYXJSZXF1ZXN0KCk7CkBAIC01MzEsNyArNTMxLDcgQEAgdm9pZCBOZXR3b3Jr
RGF0YVRhc2tTb3VwOjpjb250aW51ZUF1dGhlbgogICAgICAgICAgICAgICAgIC8vIHdlIHBsYWNl
IHRoZSBjcmVkZW50aWFscyBpbiB0aGUgc3RvcmUgZXZlbiB0aG91Z2ggbGlic291cCB3aWxsIG5l
dmVyIGZpcmUgdGhlIGF1dGhlbnRpY2F0ZSBzaWduYWwgYWdhaW4gZm9yCiAgICAgICAgICAgICAg
ICAgLy8gdGhpcyBwcm90ZWN0aW9uIHNwYWNlLgogICAgICAgICAgICAgICAgIGlmIChjcmVkZW50
aWFsLnBlcnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiB8fCBj
cmVkZW50aWFsLnBlcnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50
KQotICAgICAgICAgICAgICAgICAgICBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigp
LmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0aW9uLCBjcmVkZW50aWFsLCBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCksIGNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS51cmwoKSk7
CisgICAgICAgICAgICAgICAgICAgIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkt
PmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0aW9uLCBjcmVkZW50aWFsLCBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCksIGNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS51cmwoKSk7
CiAKICAgICAgICAgICAgICAgICBpZiAoY3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgpID09IENyZWRl
bnRpYWxQZXJzaXN0ZW5jZVBlcm1hbmVudCkgewogICAgICAgICAgICAgICAgICAgICBtX3Byb3Rl
Y3Rpb25TcGFjZUZvclBlcnNpc3RlbnRTdG9yYWdlID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFj
ZSgpOwpAQCAtNjYzLDcgKzY2Myw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y29udGlu
dWVIVFRQUmUKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBPcmlnaW4oKTsKICAgICB9IGVsc2Ug
aWYgKHVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgJiYgbV9zdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKSB7CiAgICAgICAgIGlmIChtX3Vz
ZXIuaXNFbXB0eSgpICYmIG1fcGFzc3dvcmQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBhdXRv
IGNyZWRlbnRpYWwgPSBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmNyZWRlbnRp
YWxTdG9yYWdlKCkuZ2V0KG1fcGFydGl0aW9uLCByZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgICAg
IGF1dG8gY3JlZGVudGlhbCA9IG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCktPmNy
ZWRlbnRpYWxTdG9yYWdlKCkuZ2V0KG1fcGFydGl0aW9uLCByZXF1ZXN0LnVybCgpKTsKICAgICAg
ICAgICAgIGlmICghY3JlZGVudGlhbC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgbV9pbml0
aWFsQ3JlZGVudGlhbCA9IGNyZWRlbnRpYWw7CiAgICAgICAgIH0KQEAgLTgzMCw3ICs4MzAsNyBA
QCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZEdldEhlYWRlcnMoCiAgICAgLy8gVGhpcyBp
cyBiZWNhdXNlIHdlIHdhbnQgdG8gYXZvaWQgaGl0dGluZyB0aGUgZGlzayB0d2ljZSAob25jZSB0
byBhZGQgYW5kIG9uY2UgdG8gcmVtb3ZlKSBmb3IKICAgICAvLyBpbmNvcnJlY3QgY3JlZGVudGlh
bHMgb3IgcG9sbHV0aW5nIHRoZSBrZXljaGFpbiB3aXRoIGludmFsaWQgY3JlZGVudGlhbHMuCiAg
ICAgaWYgKCFpc0F1dGhlbnRpY2F0aW9uRmFpbHVyZVN0YXR1c0NvZGUobV9zb3VwTWVzc2FnZS0+
c3RhdHVzX2NvZGUpICYmIG1fc291cE1lc3NhZ2UtPnN0YXR1c19jb2RlIDwgNTAwKSB7Ci0gICAg
ICAgIG1fc2Vzc2lvbi0+bmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuc2F2ZUNyZWRlbnRpYWxUb1Bl
cnNpc3RlbnRTdG9yYWdlKG1fcHJvdGVjdGlvblNwYWNlRm9yUGVyc2lzdGVudFN0b3JhZ2UsIG1f
Y3JlZGVudGlhbEZvclBlcnNpc3RlbnRTdG9yYWdlKTsKKyAgICAgICAgbV9zZXNzaW9uLT5uZXR3
b3JrU3RvcmFnZVNlc3Npb24oKS0+c2F2ZUNyZWRlbnRpYWxUb1BlcnNpc3RlbnRTdG9yYWdlKG1f
cHJvdGVjdGlvblNwYWNlRm9yUGVyc2lzdGVudFN0b3JhZ2UsIG1fY3JlZGVudGlhbEZvclBlcnNp
c3RlbnRTdG9yYWdlKTsKICAgICAgICAgbV9wcm90ZWN0aW9uU3BhY2VGb3JQZXJzaXN0ZW50U3Rv
cmFnZSA9IFByb3RlY3Rpb25TcGFjZSgpOwogICAgICAgICBtX2NyZWRlbnRpYWxGb3JQZXJzaXN0
ZW50U3RvcmFnZSA9IENyZWRlbnRpYWwoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAko
cmV2aXNpb24gMjQ2NTE2KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtTZXNzaW9uU291cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBOZXR3b3JrU2Vzc2lvblNvdXA6Ok5ldHdvcmtTZXNzaW9u
U291cChOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIE5ldHdvcmtTZXNzaW9uQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICA6IE5ldHdvcmtTZXNzaW9uKG5ldHdvcmtQ
cm9jZXNzLCBwYXJhbWV0ZXJzLnNlc3Npb25JRCwgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJl
Y3RvcnksIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQog
ewotICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLnNldENvb2tpZU9ic2VydmVySGFuZGxlcihb
dGhpc10geworICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLT5zZXRDb29raWVPYnNlcnZlckhh
bmRsZXIoW3RoaXNdIHsKICAgICAgICAgdGhpcy0+bmV0d29ya1Byb2Nlc3MoKS5zdXBwbGVtZW50
PFdlYkNvb2tpZU1hbmFnZXI+KCktPm5vdGlmeUNvb2tpZXNEaWRDaGFuZ2UobV9zZXNzaW9uSUQp
OwogICAgIH0pOwogCkBAIC01NSw3ICs1NSw3IEBAIE5ldHdvcmtTZXNzaW9uU291cDo6fk5ldHdv
cmtTZXNzaW9uU291cCgKIAogU291cFNlc3Npb24qIE5ldHdvcmtTZXNzaW9uU291cDo6c291cFNl
c3Npb24oKSBjb25zdAogewotICAgIHJldHVybiBuZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5zb3Vw
TmV0d29ya1Nlc3Npb24oKS5zb3VwU2Vzc2lvbigpOworICAgIHJldHVybiBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24oKS0+c291cE5ldHdvcmtTZXNzaW9uKCkuc291cFNlc3Npb24oKTsKIH0KIAogdm9p
ZCBOZXR3b3JrU2Vzc2lvblNvdXA6OmNsZWFyQ3JlZGVudGlhbHMoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>