<?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>209195</bug_id>
          
          <creation_ts>2020-03-17 14:38:55 -0700</creation_ts>
          <short_desc>Use sendWithAsyncReply for DecideDestinationWithSuggestedFilename</short_desc>
          <delta_ts>2020-10-05 15:39:20 -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>cdumez</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1630902</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 14:38:55 -0700</bug_when>
    <thetext>Use sendWithAsyncReply for DecideDestinationWithSuggestedFilename</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630903</commentid>
    <comment_count>1</comment_count>
      <attachid>393791</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 14:40:04 -0700</bug_when>
    <thetext>Created attachment 393791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630907</commentid>
    <comment_count>2</comment_count>
      <attachid>393792</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 14:56:29 -0700</bug_when>
    <thetext>Created attachment 393792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693795</commentid>
    <comment_count>3</comment_count>
      <attachid>393792</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-10-01 11:00:24 -0700</bug_when>
    <thetext>Comment on attachment 393792
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2080
&gt; +        DownloadID downloadID = networkDataTask-&gt;pendingDownloadID();

could be auto downloadID? it&apos;s a bit shorter.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2089
&gt; +        networkDataTask-&gt;setPendingDownloadLocation(destination, WTFMove(sandboxExtensionHandle), allowOverwrite == AllowOverwrite::Yes);

I see the ordering of these statements changed from DownloadManager::continueDecidePendingDownloadDestination(), so now networkDataTask-&gt;setPendingDownloadLocation() won&apos;t be called if the state is canceling or completed. Was that intentional?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694815</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-05 13:11:40 -0700</bug_when>
    <thetext>That was unintentional, and it was the cause of the test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694817</commentid>
    <comment_count>5</comment_count>
      <attachid>410545</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-05 13:11:53 -0700</bug_when>
    <thetext>Created attachment 410545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694897</commentid>
    <comment_count>6</comment_count>
      <attachid>410545</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-05 15:29:40 -0700</bug_when>
    <thetext>Comment on attachment 410545
Patch

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

&gt; Source/WebKit/NetworkProcess/Downloads/DownloadID.h:37
&gt; +// FIXME: This should be an ObjectIdentifier.

Note: this is being done in https://bugs.webkit.org/show_bug.cgi?id=203962</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694904</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-10-05 15:38:23 -0700</bug_when>
    <thetext>http://trac.webkit.org/r268008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694905</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-05 15:39:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/69974215&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393791</attachid>
            <date>2020-03-17 14:40:04 -0700</date>
            <delta_ts>2020-03-17 14:56:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209195-20200317144004.patch</filename>
            <type>text/plain</type>
            <size>18917</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTg2MDApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAzLTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHNlbmRXaXRo
QXN5bmNSZXBseSBmb3IgRGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE5NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgbWFrZXMg
dGhlIGRvd25sb2FkIGZsb3cgbW9yZSBjbGVhci4KKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkSUQuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZERlc3RpbmF0aW9uRGVj
aWRlZCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6Y2FuY2VsRG93bmxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OndpbGxEZWNpZGVQZW5kaW5nRG93
bmxvYWREZXN0aW5hdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFu
YWdlcjo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmZpbmRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9h
ZERlc3RpbmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0FQSURvd25sb2FkQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQ
cm94eTo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAo
V2ViS2l0OjpEb3dubG9hZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxl
bmFtZUFzeW5jKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
bWVzc2FnZXMuaW46CisKIDIwMjAtMDMtMTcgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CiAKICAgICAgICBBZGQgaW50ZXJuYWwgZGVidWdnaW5nIHdoZW4gaW5pdGlh
bGl6aW5nIGFuIGFwcC1ib3VuZCBzZXNzaW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU4NTY0KQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwNzEsMjIgKzIwNzEsMzAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmluZFBlbmRp
bmdEb3dubG9hZAogICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQgPSBuZXR3b3JrRGF0YVRhc2su
cGVuZGluZ0Rvd25sb2FkSUQoKS5kb3dubG9hZElEKCk7CiAgICAgZG93bmxvYWRQcm94eUNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGlkUmVjZWl2ZVJlc3BvbnNl
KHJlc3BvbnNlKSwgZGVzdGluYXRpb25JRCk7CiAKLSAgICBkb3dubG9hZE1hbmFnZXIoKS53aWxs
RGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24obmV0d29ya0RhdGFUYXNrLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0KICAgICAvLyBBcyBwZXIgaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jYXMtYS1kb3dubG9hZCAoc3RlcCAyKSwgdGhlIGZpbGVuYW1lIGZyb20gdGhl
IENvbnRlbnQtRGlzcG9zaXRpb24gaGVhZGVyCiAgICAgLy8gc2hvdWxkIG92ZXJyaWRlIHRoZSBz
dWdnZXN0ZWQgZmlsZW5hbWUgZnJvbSB0aGUgZG93bmxvYWQgYXR0cmlidXRlLgogICAgIFN0cmlu
ZyBzdWdnZXN0ZWRGaWxlbmFtZSA9IHJlc3BvbnNlLmlzQXR0YWNobWVudFdpdGhGaWxlbmFtZSgp
ID8gcmVzcG9uc2Uuc3VnZ2VzdGVkRmlsZW5hbWUoKSA6IG5ldHdvcmtEYXRhVGFzay5zdWdnZXN0
ZWRGaWxlbmFtZSgpOwogICAgIHN1Z2dlc3RlZEZpbGVuYW1lID0gTUlNRVR5cGVSZWdpc3RyeTo6
YXBwZW5kRmlsZUV4dGVuc2lvbklmTmVjZXNzYXJ5KHN1Z2dlc3RlZEZpbGVuYW1lLCByZXNwb25z
ZS5taW1lVHlwZSgpKTsKIAotICAgIGRvd25sb2FkUHJveHlDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OkRvd25sb2FkUHJveHk6OkRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVu
YW1lQXN5bmMobmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9hZElEKCksIHN1Z2dlc3RlZEZp
bGVuYW1lKSwgZGVzdGluYXRpb25JRCk7Ci19CisgICAgZG93bmxvYWRQcm94eUNvbm5lY3Rpb24o
KS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEZWNpZGVEZXN0
aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0ZWRGaWxlbmFtZSksIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIG5ldHdvcmtEYXRhVGFzayA9IG1ha2VSZWYobmV0d29ya0Rh
dGFUYXNrKV0gKFN0cmluZyYmIGRlc3RpbmF0aW9uLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
JiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBBbGxvd092ZXJ3cml0ZSBhbGxvd092ZXJ3cml0ZSkg
bXV0YWJsZSB7CisgICAgICAgIERvd25sb2FkSUQgZG93bmxvYWRJRCA9IG5ldHdvcmtEYXRhVGFz
ay0+cGVuZGluZ0Rvd25sb2FkSUQoKTsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgZG93bmxvYWRNYW5hZ2VyKCkuY2FuY2VsRG93bmxvYWQoZG93bmxv
YWRJRCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9y
ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoUG9saWN5QWN0aW9uOjpEb3dubG9hZCk7CisgICAgICAgIGlmIChuZXR3b3JrRGF0YVRh
c2stPnN0YXRlKCkgPT0gTmV0d29ya0RhdGFUYXNrOjpTdGF0ZTo6Q2FuY2VsaW5nIHx8IG5ldHdv
cmtEYXRhVGFzay0+c3RhdGUoKSA9PSBOZXR3b3JrRGF0YVRhc2s6OlN0YXRlOjpDb21wbGV0ZWQp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG5ldHdvcmtEYXRhVGFzay0+c2V0UGVuZGlu
Z0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRpb24sIFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhh
bmRsZSksIGFsbG93T3ZlcndyaXRlID09IEFsbG93T3ZlcndyaXRlOjpZZXMpOworCisgICAgICAg
IGlmIChkb3dubG9hZE1hbmFnZXIoKS5kb3dubG9hZChkb3dubG9hZElEKSkgeworICAgICAgICAg
ICAgLy8gVGhlIGNvbXBsZXRpb24gaGFuZGxlciBhbHJlYWR5IGNhbGxlZCBkYXRhVGFza0JlY2Ft
ZURvd25sb2FkVGFzaygpLgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLXZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24o
RG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSYmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUp
Ci17Ci0gICAgaWYgKGRlc3RpbmF0aW9uLmlzRW1wdHkoKSkKLSAgICAgICAgZG93bmxvYWRNYW5h
Z2VyKCkuY2FuY2VsRG93bmxvYWQoZG93bmxvYWRJRCk7Ci0gICAgZWxzZQotICAgICAgICBkb3du
bG9hZE1hbmFnZXIoKS5jb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKGRv
d25sb2FkSUQsIGRlc3RpbmF0aW9uLCBXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25IYW5kbGUpLCBh
bGxvd092ZXJ3cml0ZSk7CisgICAgICAgIGRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkRGVzdGlu
YXRpb25EZWNpZGVkKGRvd25sb2FkSUQsIFdURk1vdmUobmV0d29ya0RhdGFUYXNrKSk7CisgICAg
fSwgZGVzdGluYXRpb25JRCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhY2hlTW9k
ZWxTeW5jaHJvbm91c2x5Rm9yVGVzdGluZyhDYWNoZU1vZGVsIGNhY2hlTW9kZWwsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgJKHJldmlzaW9uIDI1ODU2NCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDA4LDcgKzQwOCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdWJsaXNoRG93
bmxvYWRQcm9ncmVzcyhEb3dubG9hZElELCBjb25zdCBVUkwmLCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmJik7CiAjZW5kaWYKICAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KERvd25s
b2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKLSAgICB2b2lkIGNvbnRpbnVlRGVj
aWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCwgU3RyaW5nIGRlc3RpbmF0
aW9uLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CiAg
ICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOwogICAgIHZvaWQgYXBwbGlj
YXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNp
b24gMjU4NTY0KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNiBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlCiAgICAgQXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kKCkKIAogICAgIENvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdlYktpdDo6RG93bmxv
YWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKLSAgICBD
b250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKFdlYktpdDo6RG93bmxvYWRJ
RCBkb3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIFdlYktpdDo6U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRRT1MoaW50IGxhdGVuY3lRT1MsIGludCB0aHJv
dWdocHV0UU9TKQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRJRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkSUQuaAkocmV2aXNpb24gMjU4NTY0KQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRJRC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotI2lmbmRlZiBEb3dubG9hZElEX2gKLSNkZWZpbmUgRG93bmxvYWRJRF9oCisjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXIuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCkBA
IC0zMyw2ICszMiw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIEFsbG93
T3ZlcndyaXRlIDogYm9vbCB7IE5vLCBZZXMgfTsKKworLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
IGFuIE9iamVjdElkZW50aWZpZXIuCiBjbGFzcyBEb3dubG9hZElEIHsKIHB1YmxpYzoKICAgICBE
b3dubG9hZElEKCkKQEAgLTk1LDQgKzk3LDMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhh
c2g8V2ViS2l0OjpEbwogfTsKIAogfQotI2VuZGlmIC8qIERvd25sb2FkSURfaCAqLwpJbmRleDog
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuY3BwCShyZXZpc2lvbiAyNTg1NjQpCisrKyBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MCw0MiArODAsMTYgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnRpbnVlV2lsbFNl
bmRSZQogICAgICAgICBwZW5kaW5nRG93bmxvYWQtPmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdU
Rk1vdmUocmVxdWVzdCkpOwogfQogCi12b2lkIERvd25sb2FkTWFuYWdlcjo6d2lsbERlY2lkZVBl
bmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKE5ldHdvcmtEYXRhVGFzayYgbmV0d29ya0RhdGFUYXNr
LCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAg
YXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9hZElEKCk7Ci0g
ICAgYXV0byBhZGRSZXN1bHQgPSBtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbi5zZXQo
ZG93bmxvYWRJRCwgc3RkOjptYWtlX3BhaXI8UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4sIFJlc3Bv
bnNlQ29tcGxldGlvbkhhbmRsZXI+KCZuZXR3b3JrRGF0YVRhc2ssIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05l
d0VudHJ5KTsKLX0KLQogdm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnZlcnROZXR3b3JrTG9hZFRv
RG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0xv
YWQ+JiYgbmV0d29ya0xvYWQsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9u
SGFuZGxlciwgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiYm
IGJsb2JGaWxlUmVmZXJlbmNlcywgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBBU1NFUlQoIW1fcGVuZGluZ0Rv
d25sb2Fkcy5jb250YWlucyhkb3dubG9hZElEKSk7CiAgICAgbV9wZW5kaW5nRG93bmxvYWRzLmFk
ZChkb3dubG9hZElELCBtYWtlVW5pcXVlPFBlbmRpbmdEb3dubG9hZD4obV9jbGllbnQucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb25Gb3JEb3dubG9hZHMoKSwgV1RGTW92ZShuZXR3b3JrTG9hZCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25zZSkp
OwogfQogCi12b2lkIERvd25sb2FkTWFuYWdlcjo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxv
YWREZXN0aW5hdGlvbihEb3dubG9hZElEIGRvd25sb2FkSUQsIFN0cmluZyBkZXN0aW5hdGlvbiwg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgYm9vbCBh
bGxvd092ZXJ3cml0ZSkKK3ZvaWQgRG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZERlc3RpbmF0aW9u
RGVjaWRlZChEb3dubG9hZElEIGRvd25sb2FkSUQsIFJlZjxOZXR3b3JrRGF0YVRhc2s+JiYgbmV0
d29ya0RhdGFUYXNrKQogewotICAgIGlmIChtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlv
bi5jb250YWlucyhkb3dubG9hZElEKSkgewotICAgICAgICBhdXRvIHBhaXIgPSBtX2Rvd25sb2Fk
c1dhaXRpbmdGb3JEZXN0aW5hdGlvbi50YWtlKGRvd25sb2FkSUQpOwotICAgICAgICBhdXRvIG5l
dHdvcmtEYXRhVGFzayA9IFdURk1vdmUocGFpci5maXJzdCk7Ci0gICAgICAgIGF1dG8gY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vjb25kKTsKLSAgICAgICAgQVNTRVJUKG5ldHdv
cmtEYXRhVGFzayk7Ci0gICAgICAgIEFTU0VSVChjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgICAg
IEFTU0VSVChtX3BlbmRpbmdEb3dubG9hZHMuY29udGFpbnMoZG93bmxvYWRJRCkpOwotCi0gICAg
ICAgIG5ldHdvcmtEYXRhVGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRp
b24sIFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIGFsbG93T3ZlcndyaXRlKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpEb3dubG9hZCk7Ci0gICAgICAg
IGlmIChuZXR3b3JrRGF0YVRhc2stPnN0YXRlKCkgPT0gTmV0d29ya0RhdGFUYXNrOjpTdGF0ZTo6
Q2FuY2VsaW5nIHx8IG5ldHdvcmtEYXRhVGFzay0+c3RhdGUoKSA9PSBOZXR3b3JrRGF0YVRhc2s6
OlN0YXRlOjpDb21wbGV0ZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKG1f
ZG93bmxvYWRzLmNvbnRhaW5zKGRvd25sb2FkSUQpKSB7Ci0gICAgICAgICAgICAvLyBUaGUgY29t
cGxldGlvbiBoYW5kbGVyIGFscmVhZHkgY2FsbGVkIGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNr
KCkuCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBBU1NFUlQoIW1f
ZG93bmxvYWRzQWZ0ZXJEZXN0aW5hdGlvbkRlY2lkZWQuY29udGFpbnMoZG93bmxvYWRJRCkpOwot
ICAgICAgICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLnNldChkb3dubG9hZElE
LCBuZXR3b3JrRGF0YVRhc2spOwotICAgIH0KKyAgICBBU1NFUlQoIW1fZG93bmxvYWRzQWZ0ZXJE
ZXN0aW5hdGlvbkRlY2lkZWQuY29udGFpbnMoZG93bmxvYWRJRCkpOworICAgIG1fZG93bmxvYWRz
QWZ0ZXJEZXN0aW5hdGlvbkRlY2lkZWQuc2V0KGRvd25sb2FkSUQsIFdURk1vdmUobmV0d29ya0Rh
dGFUYXNrKSk7CiB9CiAKIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpyZXN1bWVEb3dubG9hZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCkBAIC0xNDIsMjEgKzExNiw3
IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjYW5jZWxEb3dubG9hZChEb3cKICAgICAgICAgZG93
bmxvYWQtPmNhbmNlbCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGF1dG8gcGVuZGlu
Z0Rvd25sb2FkID0gbV9wZW5kaW5nRG93bmxvYWRzLnRha2UoZG93bmxvYWRJRCk7Ci0gICAgaWYg
KG1fZG93bmxvYWRzV2FpdGluZ0ZvckRlc3RpbmF0aW9uLmNvbnRhaW5zKGRvd25sb2FkSUQpKSB7
Ci0gICAgICAgIGF1dG8gcGFpciA9IG1fZG93bmxvYWRzV2FpdGluZ0ZvckRlc3RpbmF0aW9uLnRh
a2UoZG93bmxvYWRJRCk7Ci0gICAgICAgIGF1dG8gbmV0d29ya0RhdGFUYXNrID0gV1RGTW92ZShw
YWlyLmZpcnN0KTsKLSAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUocGFp
ci5zZWNvbmQpOwotICAgICAgICBBU1NFUlQobmV0d29ya0RhdGFUYXNrKTsKLSAgICAgICAgQVNT
RVJUKGNvbXBsZXRpb25IYW5kbGVyKTsKLQotICAgICAgICBuZXR3b3JrRGF0YVRhc2stPmNhbmNl
bCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSk7Ci0g
ICAgICAgIG1fY2xpZW50LnBlbmRpbmdEb3dubG9hZENhbmNlbGVkKGRvd25sb2FkSUQpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHBlbmRpbmdEb3dubG9hZCkKKyAgICBpZiAo
YXV0byBwZW5kaW5nRG93bmxvYWQgPSBtX3BlbmRpbmdEb3dubG9hZHMudGFrZShkb3dubG9hZElE
KSkKICAgICAgICAgcGVuZGluZ0Rvd25sb2FkLT5jYW5jZWwoKTsKIH0KIApJbmRleDogU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRN
YW5hZ2VyLmgJKHJldmlzaW9uIDI1ODU2NCkKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw5ICs4
Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERv
d25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
c3VnZ2VzdGVkTmFtZSA9IHsgfSk7CiAgICAgdm9pZCBkYXRhVGFza0JlY2FtZURvd25sb2FkVGFz
ayhEb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWQ+JiYpOwogICAgIHZvaWQgY29u
dGludWVXaWxsU2VuZFJlcXVlc3QoRG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYpOwotICAgIHZvaWQgd2lsbERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKE5ldHdv
cmtEYXRhVGFzayYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBjb252
ZXJ0TmV0d29ya0xvYWRUb0Rvd25sb2FkKERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrTG9hZD4mJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmLCAgVmVjdG9yPFJlZlB0cjxX
ZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9pZCBj
b250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKERvd25sb2FkSUQsIFN0cmlu
ZyBkZXN0aW5hdGlvbiwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIGJvb2wgYWxsb3dPdmVy
d3JpdGUpOworICAgIHZvaWQgZG93bmxvYWREZXN0aW5hdGlvbkRlY2lkZWQoRG93bmxvYWRJRCwg
UmVmPE5ldHdvcmtEYXRhVGFzaz4mJik7CiAKICAgICB2b2lkIHJlc3VtZURvd25sb2FkKFBBTDo6
U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURh
dGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpOwogCkBA
IC0xMTMsNyArMTEyLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDbGllbnQmIG1fY2xpZW50
OwogICAgIEhhc2hNYXA8RG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdEb3dubG9h
ZD4+IG1fcGVuZGluZ0Rvd25sb2FkczsKLSAgICBIYXNoTWFwPERvd25sb2FkSUQsIHN0ZDo6cGFp
cjxSZWZQdHI8TmV0d29ya0RhdGFUYXNrPiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcj4+IG1f
ZG93bmxvYWRzV2FpdGluZ0ZvckRlc3RpbmF0aW9uOwogICAgIEhhc2hNYXA8RG93bmxvYWRJRCwg
UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4+IG1fZG93bmxvYWRzQWZ0ZXJEZXN0aW5hdGlvbkRlY2lk
ZWQ7CiAgICAgRG93bmxvYWRNYXAgbV9kb3dubG9hZHM7CiB9OwpJbmRleDogU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CShyZXZpc2lvbiAyNTg1NjQpCisrKyBTb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC02MzMs
NiArNjMzLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3Jl
OjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rpb25SZWN0JzogWyciRWRpdG9yU3RhdGUuaCInXSwK
ICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJzogWyciRHJhd2luZ0FyZWFJ
bmZvLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OkFsbG93T3ZlcndyaXRlJzogWyciRG93bmxvYWRJ
RC5oIiddLAogICAgICAgICAnV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJT
ZXNzaW9uU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmll
cicgOiBbJyJDb250ZW50V29ybGRTaGFyZWQuaCInXSwKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJI
b3N0aW5nQ29udGV4dElEJzogWyciTGF5ZXJIb3N0aW5nQ29udGV4dC5oIiddLApJbmRleDogU291
cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDI1ODU2NCkKKysrIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRG93bmxvYWRJ
RC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKQEAg
LTU0LDcgKzU1LDYgQEAgc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBEb3dubG9hZDsKLWNsYXNzIERvd25sb2FkSUQ7CiBjbGFzcyBOZXR3b3Jr
UHJvY2VzczsKIGNsYXNzIFdlYkZyYW1lOwogZW51bSBjbGFzcyBOZWdvdGlhdGVkTGVnYWN5VExT
IDogYm9vbCB7IE5vLCBZZXMgfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElEb3dubG9hZENsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElEb3dubG9hZENsaWVudC5oCShyZXZpc2lvbiAyNTg1NjQpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJRG93bmxvYWRDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRp
b24uaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgiCiAjaW5jbHVk
ZSAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCisjaW5jbHVkZSAiRG93bmxvYWRJ
RC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC00Myw3ICs0NCw3IEBAIGNsYXNzIERvd25sb2FkUHJveHk7
CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwogY2xhc3MgV2ViUHJvdGVjdGlvblNwYWNlOwogCi1l
bnVtIGNsYXNzIEFsbG93T3ZlcndyaXRlIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBBbGxvd092
ZXJ3cml0ZSA6IGJvb2w7CiB9CiAKIG5hbWVzcGFjZSBBUEkgewpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAkocmV2aXNp
b24gMjU4NTY0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsMjEgKzE3MywxNiBAQCB2b2lkIERvd25s
b2FkUHJveHk6OmRpZFJlY2VpdmVEYXRhKHVpbnQ2CiAgICAgbV9wcm9jZXNzUG9vbC0+ZG93bmxv
YWRDbGllbnQoKS5kaWRSZWNlaXZlRGF0YSgqdGhpcywgbGVuZ3RoKTsKIH0KIAotdm9pZCBEb3du
bG9hZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKERv
d25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSkKK3Zv
aWQgRG93bmxvYWRQcm94eTo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUo
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dHJpbmcsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSwgQWxsb3dPdmVyd3JpdGUpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9wcm9jZXNzUG9vbCkKLSAgICAgICAgcmV0dXJu
OwotICAgIAotICAgIG1fcHJvY2Vzc1Bvb2wtPmRvd25sb2FkQ2xpZW50KCkuZGVjaWRlRGVzdGlu
YXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoKnRoaXMsIHN1Z2dlc3RlZEZpbGVuYW1lLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBkb3dubG9hZElEID0gZG93bmxvYWRJ
RF0gKEFsbG93T3ZlcndyaXRlIGFsbG93T3ZlcndyaXRlLCBTdHJpbmcgZGVzdGluYXRpb24pIHsK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSwgeyB9LCB7IH0pOworCisgICAg
bV9wcm9jZXNzUG9vbC0+ZG93bmxvYWRDbGllbnQoKS5kZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZSgqdGhpcywgc3VnZ2VzdGVkRmlsZW5hbWUsIFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoQWxsb3dPdmVyd3JpdGUgYWxsb3dPdmVy
d3JpdGUsIFN0cmluZyBkZXN0aW5hdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOwogICAgICAgICBpZiAoIWRlc3Rp
bmF0aW9uLmlzTnVsbCgpKQogICAgICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlKGRlc3RpbmF0aW9uLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgICAgIGlmICghbV9wcm9jZXNzUG9vbCkKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBtX3By
b2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQotICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDb250aW51ZURlY2lkZVBlbmRpbmdEb3du
bG9hZERlc3RpbmF0aW9uKGRvd25sb2FkSUQsIGRlc3RpbmF0aW9uLCBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlLCBhbGxvd092ZXJ3cml0ZSA9PSBBbGxvd092ZXJ3cml0ZTo6WWVzKSwgMCk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGRlc3RpbmF0aW9uLCBXVEZNb3ZlKHNhbmRib3hFeHRlbnNp
b25IYW5kbGUpLCBhbGxvd092ZXJ3cml0ZSk7CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaAkocmV2aXNp
b24gMjU4NTY0KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtNDksMTIgKzQ5LDEzIEBAIGNsYXNzIFJlc291cmNl
UmVzcG9uc2U7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBEb3dubG9hZElEOwogY2xh
c3MgRG93bmxvYWRQcm94eU1hcDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nl
c3NQb29sOwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKIAorZW51bSBjbGFzcyBBbGxvd092ZXJ3
cml0ZSA6IGJvb2w7CisKIHN0cnVjdCBGcmFtZUluZm9EYXRhOwogCiBjbGFzcyBEb3dubG9hZFBy
b3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RG93bmxvYWQ+
LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpAQCAtMTIzLDcgKzEyNCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEpOwogICAgIHZvaWQgZGlkQ2FuY2VsKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSk7CiAgICAgdm9pZCB3aWxsU2VuZFJl
cXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVkaXJlY3RSZXF1ZXN0LCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKLSAgICB2b2lkIGRl
Y2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoRG93bmxvYWRJRCwgY29u
c3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSk7CisgICAgdm9pZCBkZWNpZGVEZXN0aW5hdGlv
bldpdGhTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlLCBB
bGxvd092ZXJ3cml0ZSk+JiYpOwogCiAgICAgRG93bmxvYWRQcm94eU1hcCYgbV9kb3dubG9hZFBy
b3h5TWFwOwogICAgIFJlZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiBtX2RhdGFTdG9yZTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTg1NjQpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBj
b3B5KQpAQCAtMjQsNyArMjQsNyBAQCBtZXNzYWdlcyAtPiBEb3dubG9hZFByb3h5IHsKICAgICBE
aWRTdGFydChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgQXRvbVN0cmluZyBzdWdn
ZXN0ZWRGaWxlbmFtZSkKICAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVu
Z2VJRCkKICAgICBXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlZGly
ZWN0UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlKSkK
LSAgICBEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFzeW5jKFdlYktpdDo6
RG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUpCisgICAgRGVj
aWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoU3RyaW5nIHN1Z2dlc3RlZEZpbGVu
YW1lKSAtPiAoU3RyaW5nIGZpbGVuYW1lLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBoYW5kbGUsIGVudW06Ym9vbCBXZWJLaXQ6OkFsbG93T3ZlcndyaXRlIGFsbG93T3ZlcndyaXRl
KSBBc3luYwogCiAgICAgRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UpCiAgICAgRGlkUmVjZWl2ZURhdGEodWludDY0X3QgbGVuZ3RoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393792</attachid>
            <date>2020-03-17 14:56:29 -0700</date>
            <delta_ts>2020-10-05 13:11:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209195-20200317145628.patch</filename>
            <type>text/plain</type>
            <size>19234</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTg2MDApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDIwLTAzLTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIHNlbmRXaXRo
QXN5bmNSZXBseSBmb3IgRGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE5NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgbWFrZXMg
dGhlIGRvd25sb2FkIGZsb3cgbW9yZSBjbGVhci4KKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkSUQuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZERlc3RpbmF0aW9uRGVj
aWRlZCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6Y2FuY2VsRG93bmxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OndpbGxEZWNpZGVQZW5kaW5nRG93
bmxvYWREZXN0aW5hdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFu
YWdlcjo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbik6IERlbGV0ZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmZpbmRQZW5kaW5nRG93bmxvYWRMb2NhdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9h
ZERlc3RpbmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0FQSURvd25sb2FkQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQ
cm94eTo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAo
V2ViS2l0OjpEb3dubG9hZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxl
bmFtZUFzeW5jKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
bWVzc2FnZXMuaW46CisKIDIwMjAtMDMtMTcgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CiAKICAgICAgICBBZGQgaW50ZXJuYWwgZGVidWdnaW5nIHdoZW4gaW5pdGlh
bGl6aW5nIGFuIGFwcC1ib3VuZCBzZXNzaW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU4NTY0KQorKysgU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwNzEsMjIgKzIwNzEsMzAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZmluZFBlbmRp
bmdEb3dubG9hZAogICAgIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQgPSBuZXR3b3JrRGF0YVRhc2su
cGVuZGluZ0Rvd25sb2FkSUQoKS5kb3dubG9hZElEKCk7CiAgICAgZG93bmxvYWRQcm94eUNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGlkUmVjZWl2ZVJlc3BvbnNl
KHJlc3BvbnNlKSwgZGVzdGluYXRpb25JRCk7CiAKLSAgICBkb3dubG9hZE1hbmFnZXIoKS53aWxs
RGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24obmV0d29ya0RhdGFUYXNrLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0KICAgICAvLyBBcyBwZXIgaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jYXMtYS1kb3dubG9hZCAoc3RlcCAyKSwgdGhlIGZpbGVuYW1lIGZyb20gdGhl
IENvbnRlbnQtRGlzcG9zaXRpb24gaGVhZGVyCiAgICAgLy8gc2hvdWxkIG92ZXJyaWRlIHRoZSBz
dWdnZXN0ZWQgZmlsZW5hbWUgZnJvbSB0aGUgZG93bmxvYWQgYXR0cmlidXRlLgogICAgIFN0cmlu
ZyBzdWdnZXN0ZWRGaWxlbmFtZSA9IHJlc3BvbnNlLmlzQXR0YWNobWVudFdpdGhGaWxlbmFtZSgp
ID8gcmVzcG9uc2Uuc3VnZ2VzdGVkRmlsZW5hbWUoKSA6IG5ldHdvcmtEYXRhVGFzay5zdWdnZXN0
ZWRGaWxlbmFtZSgpOwogICAgIHN1Z2dlc3RlZEZpbGVuYW1lID0gTUlNRVR5cGVSZWdpc3RyeTo6
YXBwZW5kRmlsZUV4dGVuc2lvbklmTmVjZXNzYXJ5KHN1Z2dlc3RlZEZpbGVuYW1lLCByZXNwb25z
ZS5taW1lVHlwZSgpKTsKIAotICAgIGRvd25sb2FkUHJveHlDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OkRvd25sb2FkUHJveHk6OkRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVu
YW1lQXN5bmMobmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9hZElEKCksIHN1Z2dlc3RlZEZp
bGVuYW1lKSwgZGVzdGluYXRpb25JRCk7Ci19CisgICAgZG93bmxvYWRQcm94eUNvbm5lY3Rpb24o
KS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEZWNpZGVEZXN0
aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0ZWRGaWxlbmFtZSksIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIG5ldHdvcmtEYXRhVGFzayA9IG1ha2VSZWYobmV0d29ya0Rh
dGFUYXNrKV0gKFN0cmluZyYmIGRlc3RpbmF0aW9uLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
JiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBBbGxvd092ZXJ3cml0ZSBhbGxvd092ZXJ3cml0ZSkg
bXV0YWJsZSB7CisgICAgICAgIERvd25sb2FkSUQgZG93bmxvYWRJRCA9IG5ldHdvcmtEYXRhVGFz
ay0+cGVuZGluZ0Rvd25sb2FkSUQoKTsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uLmlzRW1wdHko
KSkgeworICAgICAgICAgICAgZG93bmxvYWRNYW5hZ2VyKCkuY2FuY2VsRG93bmxvYWQoZG93bmxv
YWRJRCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9y
ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoUG9saWN5QWN0aW9uOjpEb3dubG9hZCk7CisgICAgICAgIGlmIChuZXR3b3JrRGF0YVRh
c2stPnN0YXRlKCkgPT0gTmV0d29ya0RhdGFUYXNrOjpTdGF0ZTo6Q2FuY2VsaW5nIHx8IG5ldHdv
cmtEYXRhVGFzay0+c3RhdGUoKSA9PSBOZXR3b3JrRGF0YVRhc2s6OlN0YXRlOjpDb21wbGV0ZWQp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG5ldHdvcmtEYXRhVGFzay0+c2V0UGVuZGlu
Z0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRpb24sIFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhh
bmRsZSksIGFsbG93T3ZlcndyaXRlID09IEFsbG93T3ZlcndyaXRlOjpZZXMpOworCisgICAgICAg
IGlmIChkb3dubG9hZE1hbmFnZXIoKS5kb3dubG9hZChkb3dubG9hZElEKSkgeworICAgICAgICAg
ICAgLy8gVGhlIGNvbXBsZXRpb24gaGFuZGxlciBhbHJlYWR5IGNhbGxlZCBkYXRhVGFza0JlY2Ft
ZURvd25sb2FkVGFzaygpLgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLXZvaWQg
TmV0d29ya1Byb2Nlc3M6OmNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24o
RG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSYmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUp
Ci17Ci0gICAgaWYgKGRlc3RpbmF0aW9uLmlzRW1wdHkoKSkKLSAgICAgICAgZG93bmxvYWRNYW5h
Z2VyKCkuY2FuY2VsRG93bmxvYWQoZG93bmxvYWRJRCk7Ci0gICAgZWxzZQotICAgICAgICBkb3du
bG9hZE1hbmFnZXIoKS5jb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKGRv
d25sb2FkSUQsIGRlc3RpbmF0aW9uLCBXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25IYW5kbGUpLCBh
bGxvd092ZXJ3cml0ZSk7CisgICAgICAgIGRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkRGVzdGlu
YXRpb25EZWNpZGVkKGRvd25sb2FkSUQsIFdURk1vdmUobmV0d29ya0RhdGFUYXNrKSk7CisgICAg
fSwgZGVzdGluYXRpb25JRCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhY2hlTW9k
ZWxTeW5jaHJvbm91c2x5Rm9yVGVzdGluZyhDYWNoZU1vZGVsIGNhY2hlTW9kZWwsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgJKHJldmlzaW9uIDI1ODU2NCkK
KysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDA4LDcgKzQwOCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdWJsaXNoRG93
bmxvYWRQcm9ncmVzcyhEb3dubG9hZElELCBjb25zdCBVUkwmLCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmJik7CiAjZW5kaWYKICAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KERvd25s
b2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKLSAgICB2b2lkIGNvbnRpbnVlRGVj
aWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCwgU3RyaW5nIGRlc3RpbmF0
aW9uLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CiAg
ICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOwogICAgIHZvaWQgYXBwbGlj
YXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNp
b24gMjU4NTY0KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNiBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlCiAgICAgQXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kKCkKIAogICAgIENvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdlYktpdDo6RG93bmxv
YWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKLSAgICBD
b250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKFdlYktpdDo6RG93bmxvYWRJ
RCBkb3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIFdlYktpdDo6U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRRT1MoaW50IGxhdGVuY3lRT1MsIGludCB0aHJv
dWdocHV0UU9TKQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRJRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkSUQuaAkocmV2aXNpb24gMjU4NTY0KQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRJRC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotI2lmbmRlZiBEb3dubG9hZElEX2gKLSNkZWZpbmUgRG93bmxvYWRJRF9oCisjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXIuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCkBA
IC0zMyw2ICszMiw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIEFsbG93
T3ZlcndyaXRlIDogYm9vbCB7IE5vLCBZZXMgfTsKKworLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
IGFuIE9iamVjdElkZW50aWZpZXIuCiBjbGFzcyBEb3dubG9hZElEIHsKIHB1YmxpYzoKICAgICBE
b3dubG9hZElEKCkKQEAgLTk1LDQgKzk3LDMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhh
c2g8V2ViS2l0OjpEbwogfTsKIAogfQotI2VuZGlmIC8qIERvd25sb2FkSURfaCAqLwpJbmRleDog
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuY3BwCShyZXZpc2lvbiAyNTg1NjQpCisrKyBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MCw0MiArODAsMTYgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnRpbnVlV2lsbFNl
bmRSZQogICAgICAgICBwZW5kaW5nRG93bmxvYWQtPmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdU
Rk1vdmUocmVxdWVzdCkpOwogfQogCi12b2lkIERvd25sb2FkTWFuYWdlcjo6d2lsbERlY2lkZVBl
bmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKE5ldHdvcmtEYXRhVGFzayYgbmV0d29ya0RhdGFUYXNr
LCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAg
YXV0byBkb3dubG9hZElEID0gbmV0d29ya0RhdGFUYXNrLnBlbmRpbmdEb3dubG9hZElEKCk7Ci0g
ICAgYXV0byBhZGRSZXN1bHQgPSBtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbi5zZXQo
ZG93bmxvYWRJRCwgc3RkOjptYWtlX3BhaXI8UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4sIFJlc3Bv
bnNlQ29tcGxldGlvbkhhbmRsZXI+KCZuZXR3b3JrRGF0YVRhc2ssIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05l
d0VudHJ5KTsKLX0KLQogdm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnZlcnROZXR3b3JrTG9hZFRv
RG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0xv
YWQ+JiYgbmV0d29ya0xvYWQsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9u
SGFuZGxlciwgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiYm
IGJsb2JGaWxlUmVmZXJlbmNlcywgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBBU1NFUlQoIW1fcGVuZGluZ0Rv
d25sb2Fkcy5jb250YWlucyhkb3dubG9hZElEKSk7CiAgICAgbV9wZW5kaW5nRG93bmxvYWRzLmFk
ZChkb3dubG9hZElELCBtYWtlVW5pcXVlPFBlbmRpbmdEb3dubG9hZD4obV9jbGllbnQucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb25Gb3JEb3dubG9hZHMoKSwgV1RGTW92ZShuZXR3b3JrTG9hZCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25zZSkp
OwogfQogCi12b2lkIERvd25sb2FkTWFuYWdlcjo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxv
YWREZXN0aW5hdGlvbihEb3dubG9hZElEIGRvd25sb2FkSUQsIFN0cmluZyBkZXN0aW5hdGlvbiwg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgYm9vbCBh
bGxvd092ZXJ3cml0ZSkKK3ZvaWQgRG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZERlc3RpbmF0aW9u
RGVjaWRlZChEb3dubG9hZElEIGRvd25sb2FkSUQsIFJlZjxOZXR3b3JrRGF0YVRhc2s+JiYgbmV0
d29ya0RhdGFUYXNrKQogewotICAgIGlmIChtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlv
bi5jb250YWlucyhkb3dubG9hZElEKSkgewotICAgICAgICBhdXRvIHBhaXIgPSBtX2Rvd25sb2Fk
c1dhaXRpbmdGb3JEZXN0aW5hdGlvbi50YWtlKGRvd25sb2FkSUQpOwotICAgICAgICBhdXRvIG5l
dHdvcmtEYXRhVGFzayA9IFdURk1vdmUocGFpci5maXJzdCk7Ci0gICAgICAgIGF1dG8gY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vjb25kKTsKLSAgICAgICAgQVNTRVJUKG5ldHdv
cmtEYXRhVGFzayk7Ci0gICAgICAgIEFTU0VSVChjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgICAg
IEFTU0VSVChtX3BlbmRpbmdEb3dubG9hZHMuY29udGFpbnMoZG93bmxvYWRJRCkpOwotCi0gICAg
ICAgIG5ldHdvcmtEYXRhVGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRp
b24sIFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIGFsbG93T3ZlcndyaXRlKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpEb3dubG9hZCk7Ci0gICAgICAg
IGlmIChuZXR3b3JrRGF0YVRhc2stPnN0YXRlKCkgPT0gTmV0d29ya0RhdGFUYXNrOjpTdGF0ZTo6
Q2FuY2VsaW5nIHx8IG5ldHdvcmtEYXRhVGFzay0+c3RhdGUoKSA9PSBOZXR3b3JrRGF0YVRhc2s6
OlN0YXRlOjpDb21wbGV0ZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKG1f
ZG93bmxvYWRzLmNvbnRhaW5zKGRvd25sb2FkSUQpKSB7Ci0gICAgICAgICAgICAvLyBUaGUgY29t
cGxldGlvbiBoYW5kbGVyIGFscmVhZHkgY2FsbGVkIGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNr
KCkuCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBBU1NFUlQoIW1f
ZG93bmxvYWRzQWZ0ZXJEZXN0aW5hdGlvbkRlY2lkZWQuY29udGFpbnMoZG93bmxvYWRJRCkpOwot
ICAgICAgICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLnNldChkb3dubG9hZElE
LCBuZXR3b3JrRGF0YVRhc2spOwotICAgIH0KKyAgICBBU1NFUlQoIW1fZG93bmxvYWRzQWZ0ZXJE
ZXN0aW5hdGlvbkRlY2lkZWQuY29udGFpbnMoZG93bmxvYWRJRCkpOworICAgIG1fZG93bmxvYWRz
QWZ0ZXJEZXN0aW5hdGlvbkRlY2lkZWQuc2V0KGRvd25sb2FkSUQsIFdURk1vdmUobmV0d29ya0Rh
dGFUYXNrKSk7CiB9CiAKIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpyZXN1bWVEb3dubG9hZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCkBAIC0xMzYsMjcgKzExMCwx
MiBAQCB2b2lkIERvd25sb2FkTWFuYWdlcjo6cmVzdW1lRG93bmxvYWQoUEFMCiAKIHZvaWQgRG93
bmxvYWRNYW5hZ2VyOjpjYW5jZWxEb3dubG9hZChEb3dubG9hZElEIGRvd25sb2FkSUQpCiB7Ci0g
ICAgaWYgKERvd25sb2FkKiBkb3dubG9hZCA9IG1fZG93bmxvYWRzLmdldChkb3dubG9hZElEKSkg
ewotICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRzV2FpdGluZ0ZvckRlc3RpbmF0aW9uLmNvbnRh
aW5zKGRvd25sb2FkSUQpKTsKKyAgICBpZiAoYXV0byogZG93bmxvYWQgPSBtX2Rvd25sb2Fkcy5n
ZXQoZG93bmxvYWRJRCkpIHsKICAgICAgICAgQVNTRVJUKCFtX3BlbmRpbmdEb3dubG9hZHMuY29u
dGFpbnMoZG93bmxvYWRJRCkpOwogICAgICAgICBkb3dubG9hZC0+Y2FuY2VsKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgYXV0byBwZW5kaW5nRG93bmxvYWQgPSBtX3BlbmRpbmdEb3du
bG9hZHMudGFrZShkb3dubG9hZElEKTsKLSAgICBpZiAobV9kb3dubG9hZHNXYWl0aW5nRm9yRGVz
dGluYXRpb24uY29udGFpbnMoZG93bmxvYWRJRCkpIHsKLSAgICAgICAgYXV0byBwYWlyID0gbV9k
b3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24udGFrZShkb3dubG9hZElEKTsKLSAgICAgICAg
YXV0byBuZXR3b3JrRGF0YVRhc2sgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOwotICAgICAgICBhdXRv
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShwYWlyLnNlY29uZCk7Ci0gICAgICAgIEFTU0VS
VChuZXR3b3JrRGF0YVRhc2spOwotICAgICAgICBBU1NFUlQoY29tcGxldGlvbkhhbmRsZXIpOwot
Ci0gICAgICAgIG5ldHdvcmtEYXRhVGFzay0+Y2FuY2VsKCk7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKFBvbGljeUFjdGlvbjo6SWdub3JlKTsKLSAgICAgICAgbV9jbGllbnQucGVuZGluZ0Rv
d25sb2FkQ2FuY2VsZWQoZG93bmxvYWRJRCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAocGVuZGluZ0Rvd25sb2FkKQorICAgIGlmIChhdXRvIHBlbmRpbmdEb3dubG9hZCA9IG1f
cGVuZGluZ0Rvd25sb2Fkcy50YWtlKGRvd25sb2FkSUQpKQogICAgICAgICBwZW5kaW5nRG93bmxv
YWQtPmNhbmNlbCgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAkocmV2aXNpb24gMjU4NTY0
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5h
Z2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTgzLDkgKzgzLDggQEAgcHVibGljOgogICAgIHZvaWQg
c3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAg
ICB2b2lkIGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKERvd25sb2FkSUQsIHN0ZDo6dW5pcXVl
X3B0cjxEb3dubG9hZD4mJik7CiAgICAgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVxdWVzdChEb3du
bG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7Ci0gICAgdm9pZCB3aWxsRGVjaWRl
UGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oTmV0d29ya0RhdGFUYXNrJiwgUmVzcG9uc2VDb21w
bGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIGNvbnZlcnROZXR3b3JrTG9hZFRvRG93bmxvYWQo
RG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtMb2FkPiYmLCBSZXNwb25zZUNvbXBs
ZXRpb25IYW5kbGVyJiYsICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVy
ZW5jZT4+JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25s
b2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCwgU3RyaW5nIGRlc3RpbmF0aW9uLCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmJiwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CisgICAgdm9pZCBkb3dubG9h
ZERlc3RpbmF0aW9uRGVjaWRlZChEb3dubG9hZElELCBSZWY8TmV0d29ya0RhdGFUYXNrPiYmKTsK
IAogICAgIHZvaWQgcmVzdW1lRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CiAKQEAgLTExMyw3ICsxMTIsNiBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIENsaWVudCYgbV9jbGllbnQ7CiAgICAgSGFzaE1hcDxEb3dubG9hZElE
LCBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0Rvd25sb2FkPj4gbV9wZW5kaW5nRG93bmxvYWRzOwot
ICAgIEhhc2hNYXA8RG93bmxvYWRJRCwgc3RkOjpwYWlyPFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+
LCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyPj4gbV9kb3dubG9hZHNXYWl0aW5nRm9yRGVzdGlu
YXRpb247CiAgICAgSGFzaE1hcDxEb3dubG9hZElELCBSZWZQdHI8TmV0d29ya0RhdGFUYXNrPj4g
bV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZDsKICAgICBEb3dubG9hZE1hcCBtX2Rv
d25sb2FkczsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkJKHJldmlzaW9uIDI1ODU2NCkKKysrIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkJKHdvcmtpbmcgY29weSkKQEAgLTYzMyw2ICs2MzMsNyBAQCBkZWYgaGVhZGVyc19m
b3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcnOiBb
JzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlbGVj
dGlvblJlY3QnOiBbJyJFZGl0b3JTdGF0ZS5oIiddLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0
eVN0YXRlQ2hhbmdlSUQnOiBbJyJEcmF3aW5nQXJlYUluZm8uaCInXSwKKyAgICAgICAgJ1dlYktp
dDo6QWxsb3dPdmVyd3JpdGUnOiBbJyJEb3dubG9hZElELmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLAogICAgICAg
ICAnV2ViS2l0OjpDb250ZW50V29ybGRJZGVudGlmaWVyJyA6IFsnIkNvbnRlbnRXb3JsZFNoYXJl
ZC5oIiddLAogICAgICAgICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnOiBbJyJMYXll
ckhvc3RpbmdDb250ZXh0LmgiJ10sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAkocmV2aXNp
b24gMjU4NTY0KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJEb3dubG9hZElELmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgpAQCAtNTQsNyArNTUsNiBAQCBzdHJ1Y3QgU2Vj
dXJpdHlPcmlnaW5EYXRhOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERvd25sb2FkOwot
Y2xhc3MgRG93bmxvYWRJRDsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogY2xhc3MgV2ViRnJhbWU7
CiBlbnVtIGNsYXNzIE5lZ290aWF0ZWRMZWdhY3lUTFMgOiBib29sIHsgTm8sIFllcyB9OwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSURvd25sb2FkQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSURvd25sb2FkQ2xpZW50LmgJ
KHJldmlzaW9uIDI1ODU2NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElEb3du
bG9hZENsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbi5oIgogI2luY2x1ZGUgIkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJEb3dubG9hZElELmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQz
LDcgKzQ0LDcgQEAgY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmU7
CiBjbGFzcyBXZWJQcm90ZWN0aW9uU3BhY2U7CiAKLWVudW0gY2xhc3MgQWxsb3dPdmVyd3JpdGUg
eyBObywgWWVzIH07CitlbnVtIGNsYXNzIEFsbG93T3ZlcndyaXRlIDogYm9vbDsKIH0KIAogbmFt
ZXNwYWNlIEFQSSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCShyZXZpc2lvbiAyNTg1NjQpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3MywyMSArMTczLDE2IEBAIHZvaWQgRG93bmxvYWRQcm94eTo6ZGlkUmVjZWl2ZURhdGEo
dWludDYKICAgICBtX3Byb2Nlc3NQb29sLT5kb3dubG9hZENsaWVudCgpLmRpZFJlY2VpdmVEYXRh
KCp0aGlzLCBsZW5ndGgpOwogfQogCi12b2lkIERvd25sb2FkUHJveHk6OmRlY2lkZURlc3RpbmF0
aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQordm9pZCBEb3dubG9hZFByb3h5OjpkZWNpZGVE
ZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZp
bGVuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlLCBBbGxvd092ZXJ3cml0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYg
KCFtX3Byb2Nlc3NQb29sKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgbV9wcm9jZXNzUG9v
bC0+ZG93bmxvYWRDbGllbnQoKS5kZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFt
ZSgqdGhpcywgc3VnZ2VzdGVkRmlsZW5hbWUsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGRvd25sb2FkSUQgPSBkb3dubG9hZElEXSAoQWxsb3dPdmVyd3JpdGUgYWxsb3dP
dmVyd3JpdGUsIFN0cmluZyBkZXN0aW5hdGlvbikgeworICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoeyB9LCB7IH0sIHsgfSk7CisKKyAgICBtX3Byb2Nlc3NQb29sLT5kb3dubG9hZENs
aWVudCgpLmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKCp0aGlzLCBzdWdn
ZXN0ZWRGaWxlbmFtZSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildIChBbGxvd092ZXJ3cml0ZSBhbGxvd092ZXJ3cml0ZSwgU3RyaW5nIGRlc3RpbmF0aW9u
KSBtdXRhYmxlIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRl
bnNpb25IYW5kbGU7CiAgICAgICAgIGlmICghZGVzdGluYXRpb24uaXNOdWxsKCkpCiAgICAgICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoZGVzdGluYXRpb24sIFNhbmRib3hF
eHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAg
ICAgICAgaWYgKCFtX3Byb2Nlc3NQb29sKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IG1fcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNz
KCkpCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oZG93bmxvYWRJ
RCwgZGVzdGluYXRpb24sIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGFsbG93T3ZlcndyaXRlID09
IEFsbG93T3ZlcndyaXRlOjpZZXMpLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZGVz
dGluYXRpb24sIFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIGFsbG93T3ZlcndyaXRl
KTsKICAgICB9KTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5oCShyZXZpc2lvbiAyNTg1NjQpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC00OSwxMiArNDksMTMgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLWNsYXNzIERvd25sb2FkSUQ7CiBjbGFzcyBEb3dubG9hZFByb3h5TWFwOwogY2xh
c3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJzaXRlRGF0
YVN0b3JlOwogCitlbnVtIGNsYXNzIEFsbG93T3ZlcndyaXRlIDogYm9vbDsKKwogc3RydWN0IEZy
YW1lSW5mb0RhdGE7CiAKIGNsYXNzIERvd25sb2FkUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJ
bXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpEb3dubG9hZD4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CkBAIC0xMjMsNyArMTI0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZhaWwoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVz
dW1lRGF0YSk7CiAgICAgdm9pZCBkaWRDYW5jZWwoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBy
ZXN1bWVEYXRhKTsKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiByZWRpcmVjdFJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpOwotICAgIHZvaWQgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2Vz
dGVkRmlsZW5hbWVBc3luYyhEb3dubG9hZElELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVu
YW1lKTsKKyAgICB2b2lkIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lKGNv
bnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUsIEFsbG93T3ZlcndyaXRlKT4mJik7CiAKICAg
ICBEb3dubG9hZFByb3h5TWFwJiBtX2Rvd25sb2FkUHJveHlNYXA7CiAgICAgUmVmUHRyPFdlYnNp
dGVEYXRhU3RvcmU+IG1fZGF0YVN0b3JlOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW4JKHJl
dmlzaW9uIDI1ODU2NCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBAIG1l
c3NhZ2VzIC0+IERvd25sb2FkUHJveHkgewogICAgIERpZFN0YXJ0KFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBBdG9tU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKQogICAgIERpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogICAgIFdpbGxTZW5kUmVxdWVz
dChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UpKQotICAgIERlY2lkZURlc3RpbmF0aW9uV2l0
aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFN0
cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSkKKyAgICBEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZShTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUpIC0+IChTdHJpbmcgZmlsZW5hbWUs
IFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZSwgZW51bTpib29sIFdlYktp
dDo6QWxsb3dPdmVyd3JpdGUgYWxsb3dPdmVyd3JpdGUpIEFzeW5jCiAKICAgICBEaWRSZWNlaXZl
UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKICAgICBEaWRSZWNl
aXZlRGF0YSh1aW50NjRfdCBsZW5ndGgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410545</attachid>
            <date>2020-10-05 13:11:53 -0700</date>
            <delta_ts>2020-10-05 15:35:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209195-20201005131152.patch</filename>
            <type>text/plain</type>
            <size>20441</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdlN2QyYmU3OTdlYmFjYmZi
OWM3MzJjMGMyYzMwYmQwYmIyNDU0ZjYuLjJiYjBlOTEyZWM2YjcwODRhOGNkNDcxZDBkYWJmZWM5
OWI3ZTc1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMTAtMDUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2Ugc2VuZFdp
dGhBc3luY1JlcGx5IGZvciBEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MTk1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtYWtl
cyB0aGUgZG93bmxvYWQgZmxvdyBtb3JlIGNsZWFyLgorICAgICAgICBObyBjaGFuZ2UgaW4gYmVo
YXZpb3IuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRJRC5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OmRvd25sb2FkRGVzdGluYXRpb25E
ZWNpZGVkKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpjYW5jZWxEb3dubG9h
ZCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6d2lsbERlY2lkZVBlbmRpbmdE
b3dubG9hZERlc3RpbmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRN
YW5hZ2VyOjpjb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZmluZFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25s
b2FkRGVzdGluYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW46CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAg
ICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJRG93bmxvYWRDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9h
ZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OkRvd25sb2FkUHJveHk6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZp
bGVuYW1lQXN5bmMpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5tZXNzYWdlcy5pbjoKKwogMjAyMC0xMC0wMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gU3VwcG9ydCBkcmF3aW5nIHRl
eHQgaW4gMkQgY2FudmFzIHdpdGggZm9udCBmZWF0dXJlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRJRC5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRJRC5oCmluZGV4IDc0MzQxMzI4MjY3
ODFmMWY0MmU1N2RiZGI3MTYyODcxOWU4MGI2NDIuLjMzZGEyYzJkMDNiMzUyYjZlMjJhNzY4ZTJl
YTg4MjA4N2Y3M2MxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkSUQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZElELmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIERvd25sb2FkSURfaAotI2RlZmlu
ZSBEb3dubG9hZElEX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2Rlci5o
IgogI2luY2x1ZGUgIkRlY29kZXIuaCIKQEAgLTMzLDYgKzMyLDkgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK2VudW0gY2xhc3MgQWxsb3dPdmVyd3JpdGUgOiBib29sIHsgTm8sIFllcyB9Owor
CisvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYW4gT2JqZWN0SWRlbnRpZmllci4KIGNsYXNzIERv
d25sb2FkSUQgewogcHVibGljOgogICAgIERvd25sb2FkSUQoKQpAQCAtOTMsNCArOTUsMyBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYktpdDo6RG93bmxvYWRJRD4gOiBHZW5lcmlj
SGFzaFRyYWl0czxXZWJLaXQ6OkRvdwogdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2Vi
S2l0OjpEb3dubG9hZElEPiA6IERvd25sb2FkSURIYXNoIHsgfTsKIAogfQotI2VuZGlmIC8qIERv
d25sb2FkSURfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKaW5kZXggOTczNTI0ZDk5YzVlZDM3YTE5
MWQxNTU0MGNjMjg3Njc3Yjg3ZGMyYy4uZDA5MWMyOTJkMDQ1N2I1NTdjMTczMzAzYzhjNWU3ZDUx
NzhiMjNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCkBAIC04MSw0MiArODEsMTYgQEAgdm9pZCBE
b3dubG9hZE1hbmFnZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KERvd25sb2FkSUQgZG93bmxv
YWRJRCwgV2ViQ29yZTo6UmUKICAgICAgICAgcGVuZGluZ0Rvd25sb2FkLT5jb250aW51ZVdpbGxT
ZW5kUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKIH0KIAotdm9pZCBEb3dubG9hZE1hbmFnZXI6
OndpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihOZXR3b3JrRGF0YVRhc2smIG5l
dHdvcmtEYXRhVGFzaywgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGF1dG8gZG93bmxvYWRJRCA9IG5ldHdvcmtEYXRhVGFzay5wZW5kaW5nRG93
bmxvYWRJRCgpOwotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9kb3dubG9hZHNXYWl0aW5nRm9yRGVz
dGluYXRpb24uc2V0KGRvd25sb2FkSUQsIHN0ZDo6bWFrZV9wYWlyPFJlZlB0cjxOZXR3b3JrRGF0
YVRhc2s+LCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyPigmbmV0d29ya0RhdGFUYXNrLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwotICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBh
ZGRSZXN1bHQuaXNOZXdFbnRyeSk7Ci19Ci0KIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpjb252ZXJ0
TmV0d29ya0xvYWRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgc3RkOjp1bmlxdWVf
cHRyPE5ldHdvcmtMb2FkPiYmIG5ldHdvcmtMb2FkLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVy
JiYgY29tcGxldGlvbkhhbmRsZXIsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxl
UmVmZXJlbmNlPj4mJiBibG9iRmlsZVJlZmVyZW5jZXMsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgQVNTRVJU
KCFtX3BlbmRpbmdEb3dubG9hZHMuY29udGFpbnMoZG93bmxvYWRJRCkpOwogICAgIG1fcGVuZGlu
Z0Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgbWFrZVVuaXF1ZTxQZW5kaW5nRG93bmxvYWQ+KG1f
Y2xpZW50LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uRm9yRG93bmxvYWRzKCksIFdURk1vdmUobmV0
d29ya0xvYWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgZG93bmxvYWRJRCwgcmVxdWVz
dCwgcmVzcG9uc2UpKTsKIH0KIAotdm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnRpbnVlRGVjaWRl
UGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcg
ZGVzdGluYXRpb24sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIHNhbmRib3hFeHRlbnNpb25I
YW5kbGUsIGJvb2wgYWxsb3dPdmVyd3JpdGUpCit2b2lkIERvd25sb2FkTWFuYWdlcjo6ZG93bmxv
YWREZXN0aW5hdGlvbkRlY2lkZWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBSZWY8TmV0d29ya0Rh
dGFUYXNrPiYmIG5ldHdvcmtEYXRhVGFzaykKIHsKLSAgICBpZiAobV9kb3dubG9hZHNXYWl0aW5n
Rm9yRGVzdGluYXRpb24uY29udGFpbnMoZG93bmxvYWRJRCkpIHsKLSAgICAgICAgYXV0byBwYWly
ID0gbV9kb3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24udGFrZShkb3dubG9hZElEKTsKLSAg
ICAgICAgYXV0byBuZXR3b3JrRGF0YVRhc2sgPSBXVEZNb3ZlKHBhaXIuZmlyc3QpOwotICAgICAg
ICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShwYWlyLnNlY29uZCk7Ci0gICAgICAg
IEFTU0VSVChuZXR3b3JrRGF0YVRhc2spOwotICAgICAgICBBU1NFUlQoY29tcGxldGlvbkhhbmRs
ZXIpOwotICAgICAgICBBU1NFUlQobV9wZW5kaW5nRG93bmxvYWRzLmNvbnRhaW5zKGRvd25sb2Fk
SUQpKTsKLQotICAgICAgICBuZXR3b3JrRGF0YVRhc2stPnNldFBlbmRpbmdEb3dubG9hZExvY2F0
aW9uKGRlc3RpbmF0aW9uLCBXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25IYW5kbGUpLCBhbGxvd092
ZXJ3cml0ZSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUFjdGlvbjo6RG93bmxv
YWQpOwotICAgICAgICBpZiAobmV0d29ya0RhdGFUYXNrLT5zdGF0ZSgpID09IE5ldHdvcmtEYXRh
VGFzazo6U3RhdGU6OkNhbmNlbGluZyB8fCBuZXR3b3JrRGF0YVRhc2stPnN0YXRlKCkgPT0gTmV0
d29ya0RhdGFUYXNrOjpTdGF0ZTo6Q29tcGxldGVkKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIGlmIChtX2Rvd25sb2Fkcy5jb250YWlucyhkb3dubG9hZElEKSkgewotICAgICAgICAg
ICAgLy8gVGhlIGNvbXBsZXRpb24gaGFuZGxlciBhbHJlYWR5IGNhbGxlZCBkYXRhVGFza0JlY2Ft
ZURvd25sb2FkVGFzaygpLgotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgQVNTRVJUKCFtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLmNvbnRhaW5zKGRv
d25sb2FkSUQpKTsKLSAgICAgICAgbV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZC5z
ZXQoZG93bmxvYWRJRCwgbmV0d29ya0RhdGFUYXNrKTsKLSAgICB9CisgICAgQVNTRVJUKCFtX2Rv
d25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLmNvbnRhaW5zKGRvd25sb2FkSUQpKTsKKyAg
ICBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkLnNldChkb3dubG9hZElELCBXVEZN
b3ZlKG5ldHdvcmtEYXRhVGFzaykpOwogfQogCiB2b2lkIERvd25sb2FkTWFuYWdlcjo6cmVzdW1l
RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBEb3dubG9hZElEIGRvd25sb2FkSUQs
IGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRo
LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQpAQCAt
MTM3LDI3ICsxMTEsMTIgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6OnJlc3VtZURvd25sb2FkKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRG93bmxvYWRJRCBkb3dubG8KIAogdm9pZCBEb3dubG9h
ZE1hbmFnZXI6OmNhbmNlbERvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCkKIHsKLSAgICBp
ZiAoRG93bmxvYWQqIGRvd25sb2FkID0gbV9kb3dubG9hZHMuZ2V0KGRvd25sb2FkSUQpKSB7Ci0g
ICAgICAgIEFTU0VSVCghbV9kb3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb24uY29udGFpbnMo
ZG93bmxvYWRJRCkpOworICAgIGlmIChhdXRvKiBkb3dubG9hZCA9IG1fZG93bmxvYWRzLmdldChk
b3dubG9hZElEKSkgewogICAgICAgICBBU1NFUlQoIW1fcGVuZGluZ0Rvd25sb2Fkcy5jb250YWlu
cyhkb3dubG9hZElEKSk7CiAgICAgICAgIGRvd25sb2FkLT5jYW5jZWwoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICBhdXRvIHBlbmRpbmdEb3dubG9hZCA9IG1fcGVuZGluZ0Rvd25sb2Fk
cy50YWtlKGRvd25sb2FkSUQpOwotICAgIGlmIChtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5h
dGlvbi5jb250YWlucyhkb3dubG9hZElEKSkgewotICAgICAgICBhdXRvIHBhaXIgPSBtX2Rvd25s
b2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbi50YWtlKGRvd25sb2FkSUQpOwotICAgICAgICBhdXRv
IG5ldHdvcmtEYXRhVGFzayA9IFdURk1vdmUocGFpci5maXJzdCk7Ci0gICAgICAgIGF1dG8gY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHBhaXIuc2Vjb25kKTsKLSAgICAgICAgQVNTRVJUKG5l
dHdvcmtEYXRhVGFzayk7Ci0gICAgICAgIEFTU0VSVChjb21wbGV0aW9uSGFuZGxlcik7Ci0KLSAg
ICAgICAgbmV0d29ya0RhdGFUYXNrLT5jYW5jZWwoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoUG9saWN5QWN0aW9uOjpJZ25vcmUpOwotICAgICAgICBtX2NsaWVudC5wZW5kaW5nRG93bmxv
YWRDYW5jZWxlZChkb3dubG9hZElEKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlm
IChwZW5kaW5nRG93bmxvYWQpCisgICAgaWYgKGF1dG8gcGVuZGluZ0Rvd25sb2FkID0gbV9wZW5k
aW5nRG93bmxvYWRzLnRha2UoZG93bmxvYWRJRCkpCiAgICAgICAgIHBlbmRpbmdEb3dubG9hZC0+
Y2FuY2VsKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKaW5kZXggMjdkOWU2YjY0NDk1M2VmMmI4OGIy
OWI3YmYxMTViODYyOGM4NjNmMS4uNmU0NGFkMjY0MmI2ZjIwNDc2MTM0NmZmMTkyNDBiOTY1ZGM4
NmQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKQEAgLTg0LDkgKzg0LDggQEAgcHVibGljOgogICAgIHZv
aWQgc3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+
LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwogICAgIHZvaWQgZGF0YVRhc2tC
ZWNhbWVEb3dubG9hZFRhc2soRG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkPiYm
KTsKICAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KERvd25sb2FkSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmKTsKLSAgICB2b2lkIHdpbGxEZWNpZGVQZW5kaW5nRG93bmxvYWRE
ZXN0aW5hdGlvbihOZXR3b3JrRGF0YVRhc2smLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYp
OwogICAgIHZvaWQgY29udmVydE5ldHdvcmtMb2FkVG9Eb3dubG9hZChEb3dubG9hZElELCBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya0xvYWQ+JiYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiwg
IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPj4mJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOwotICAgIHZvaWQgY29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihE
b3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYm
LCBib29sIGFsbG93T3ZlcndyaXRlKTsKKyAgICB2b2lkIGRvd25sb2FkRGVzdGluYXRpb25EZWNp
ZGVkKERvd25sb2FkSUQsIFJlZjxOZXR3b3JrRGF0YVRhc2s+JiYpOwogCiAgICAgdm9pZCByZXN1
bWVEb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYmKTsKIApAQCAtMTE0LDcgKzExMyw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
Q2xpZW50JiBtX2NsaWVudDsKICAgICBIYXNoTWFwPERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0
cjxQZW5kaW5nRG93bmxvYWQ+PiBtX3BlbmRpbmdEb3dubG9hZHM7Ci0gICAgSGFzaE1hcDxEb3du
bG9hZElELCBzdGQ6OnBhaXI8UmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4sIFJlc3BvbnNlQ29tcGxl
dGlvbkhhbmRsZXI+PiBtX2Rvd25sb2Fkc1dhaXRpbmdGb3JEZXN0aW5hdGlvbjsKICAgICBIYXNo
TWFwPERvd25sb2FkSUQsIFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+PiBtX2Rvd25sb2Fkc0FmdGVy
RGVzdGluYXRpb25EZWNpZGVkOwogICAgIERvd25sb2FkTWFwIG1fZG93bmxvYWRzOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXgg
MzNmMjk1MjEwNDI5NmJjMGI4NTIwN2MyZDg1MGM0OGRjNGE4MmE5OC4uNjQzZDNiMWJlZTEyN2E4
ZjUwMzBiYjQwYjFlOWM3YTFjMTRmNDZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIxMDUsMjIgKzIxMDUsMzAgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZmluZFBlbmRpbmdEb3dubG9hZExvY2F0aW9uKE5ldHdvcmtEYXRhVGFz
ayYgbmV0d29ya0RhdGFUYXMKICAgICB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gbmV0d29ya0Rh
dGFUYXNrLnBlbmRpbmdEb3dubG9hZElEKCkuZG93bmxvYWRJRCgpOwogICAgIGRvd25sb2FkUHJv
eHlDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRpZFJlY2VpdmVS
ZXNwb25zZShyZXNwb25zZSksIGRlc3RpbmF0aW9uSUQpOwogCi0gICAgZG93bmxvYWRNYW5hZ2Vy
KCkud2lsbERlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKG5ldHdvcmtEYXRhVGFzaywg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotCiAgICAgLy8gQXMgcGVyIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvI2FzLWEtZG93bmxvYWQgKHN0ZXAgMiksIHRoZSBmaWxlbmFtZSBm
cm9tIHRoZSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlcgogICAgIC8vIHNob3VsZCBvdmVycmlk
ZSB0aGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGZyb20gdGhlIGRvd25sb2FkIGF0dHJpYnV0ZS4KICAg
ICBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUgPSByZXNwb25zZS5pc0F0dGFjaG1lbnRXaXRoRmls
ZW5hbWUoKSA/IHJlc3BvbnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCkgOiBuZXR3b3JrRGF0YVRhc2su
c3VnZ2VzdGVkRmlsZW5hbWUoKTsKICAgICBzdWdnZXN0ZWRGaWxlbmFtZSA9IE1JTUVUeXBlUmVn
aXN0cnk6OmFwcGVuZEZpbGVFeHRlbnNpb25JZk5lY2Vzc2FyeShzdWdnZXN0ZWRGaWxlbmFtZSwg
cmVzcG9uc2UubWltZVR5cGUoKSk7CiAKLSAgICBkb3dubG9hZFByb3h5Q29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZUFzeW5jKG5ldHdvcmtEYXRhVGFzay5wZW5kaW5nRG93bmxvYWRJRCgpLCBzdWdn
ZXN0ZWRGaWxlbmFtZSksIGRlc3RpbmF0aW9uSUQpOwotfQorICAgIGRvd25sb2FkUHJveHlDb25u
ZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGVj
aWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoc3VnZ2VzdGVkRmlsZW5hbWUpLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBuZXR3b3JrRGF0YVRhc2sgPSBtYWtlUmVmKG5l
dHdvcmtEYXRhVGFzayldIChTdHJpbmcmJiBkZXN0aW5hdGlvbiwgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgQWxsb3dPdmVyd3JpdGUgYWxsb3dPdmVy
d3JpdGUpIG11dGFibGUgeworICAgICAgICBhdXRvIGRvd25sb2FkSUQgPSBuZXR3b3JrRGF0YVRh
c2stPnBlbmRpbmdEb3dubG9hZElEKCk7CisgICAgICAgIGlmIChkZXN0aW5hdGlvbi5pc0VtcHR5
KCkpIHsKKyAgICAgICAgICAgIGRvd25sb2FkTWFuYWdlcigpLmNhbmNlbERvd25sb2FkKGRvd25s
b2FkSUQpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5QWN0aW9uOjpJZ25v
cmUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG5ldHdvcmtEYXRh
VGFzay0+c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oZGVzdGluYXRpb24sIFdURk1vdmUoc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSksIGFsbG93T3ZlcndyaXRlID09IEFsbG93T3ZlcndyaXRlOjpZ
ZXMpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246OkRvd25sb2FkKTsK
KyAgICAgICAgaWYgKG5ldHdvcmtEYXRhVGFzay0+c3RhdGUoKSA9PSBOZXR3b3JrRGF0YVRhc2s6
OlN0YXRlOjpDYW5jZWxpbmcgfHwgbmV0d29ya0RhdGFUYXNrLT5zdGF0ZSgpID09IE5ldHdvcmtE
YXRhVGFzazo6U3RhdGU6OkNvbXBsZXRlZCkKKyAgICAgICAgICAgIHJldHVybjsKIAotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6Y29udGludWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihE
b3dubG9hZElEIGRvd25sb2FkSUQsIFN0cmluZyBkZXN0aW5hdGlvbiwgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgYm9vbCBhbGxvd092ZXJ3cml0ZSkK
LXsKLSAgICBpZiAoZGVzdGluYXRpb24uaXNFbXB0eSgpKQotICAgICAgICBkb3dubG9hZE1hbmFn
ZXIoKS5jYW5jZWxEb3dubG9hZChkb3dubG9hZElEKTsKLSAgICBlbHNlCi0gICAgICAgIGRvd25s
b2FkTWFuYWdlcigpLmNvbnRpbnVlRGVjaWRlUGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oZG93
bmxvYWRJRCwgZGVzdGluYXRpb24sIFdURk1vdmUoc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIGFs
bG93T3ZlcndyaXRlKTsKKyAgICAgICAgaWYgKGRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKGRv
d25sb2FkSUQpKSB7CisgICAgICAgICAgICAvLyBUaGUgY29tcGxldGlvbiBoYW5kbGVyIGFscmVh
ZHkgY2FsbGVkIGRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKCkuCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBkb3dubG9hZE1hbmFnZXIoKS5kb3dubG9hZERlc3Rp
bmF0aW9uRGVjaWRlZChkb3dubG9hZElELCBXVEZNb3ZlKG5ldHdvcmtEYXRhVGFzaykpOworICAg
IH0sIGRlc3RpbmF0aW9uSUQpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRDYWNoZU1v
ZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNjZhYTFjMzIxOTkxOTUyYWY5
MjQzN2Q5OGI0YmQzZjIwNDEyZjM0NS4uNzBkYmRjZjEwYjJlNzVjNTMxOTY1NGUwOGQwODRlNTE0
YWYzOTdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtNDI5LDcgKzQyOSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdWJsaXNoRG93bmxv
YWRQcm9ncmVzcyhEb3dubG9hZElELCBjb25zdCBVUkwmLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmJik7CiAjZW5kaWYKICAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KERvd25sb2Fk
SUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKLSAgICB2b2lkIGNvbnRpbnVlRGVjaWRl
UGVuZGluZ0Rvd25sb2FkRGVzdGluYXRpb24oRG93bmxvYWRJRCwgU3RyaW5nIGRlc3RpbmF0aW9u
LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgYm9vbCBhbGxvd092ZXJ3cml0ZSk7CiAgICAg
dm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOwogICAgIHZvaWQgYXBwbGljYXRp
b25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDc3ZGMyM2FkYzJl
YmUxODA0MTU5YWNkMWY0ODE4OWFmNDIwMjU2NTAuLmQwYzQ5OTI4M2Q3MGEyYjhlNGRhNjk3NGI2
NzZlYWQ2ZjYwMWIxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTksNyArNTksNiBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgQXBwbGljYXRpb25XaWxs
RW50ZXJGb3JlZ3JvdW5kKCkKIAogICAgIENvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdlYktpdDo6
RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkK
LSAgICBDb250aW51ZURlY2lkZVBlbmRpbmdEb3dubG9hZERlc3RpbmF0aW9uKFdlYktpdDo6RG93
bmxvYWRJRCBkb3dubG9hZElELCBTdHJpbmcgZGVzdGluYXRpb24sIFdlYktpdDo6U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGJvb2wgYWxsb3dPdmVyd3Jp
dGUpCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRRT1MoaW50IGxhdGVuY3lRT1MsIGlu
dCB0aHJvdWdocHV0UU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
aW5kZXggNzBkM2Q4OGYyYmY0YTZmMWNmYzRmMTg4NzA0ZWQ2NzcwZTQ5NzdhZi4uYTUwZDZiNzgx
Zjg3ZDU3ZDk5YmYxNzcxZTIwYWFkN2E2MTdiNWU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CkBAIC02NjQsNiArNjY0LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5
cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8V2Vi
Q29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rpb25S
ZWN0JzogWyciRWRpdG9yU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0
ZUNoYW5nZUlEJzogWyciRHJhd2luZ0FyZWFJbmZvLmgiJ10sCisgICAgICAgICdXZWJLaXQ6OkFs
bG93T3ZlcndyaXRlJzogWyciRG93bmxvYWRJRC5oIiddLAogICAgICAgICAnV2ViS2l0OjpCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKICAgICAgICAgJ1dl
YktpdDo6Q29udGVudFdvcmxkSWRlbnRpZmllcic6IFsnIkNvbnRlbnRXb3JsZFNoYXJlZC5oIidd
LAogICAgICAgICAnV2ViS2l0OjpGaW5kT3B0aW9ucyc6IFsnIldlYkZpbmRPcHRpb25zLmgiJ10s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5oCmluZGV4IDU2MTdkNTFmMTMwOGI5ZDQ5OGFkY2YwZGRhYzk3
OWJlZTNmMGE0MjIuLjJhYjJiMmRiMjAwMjNjMTM1MjhkYjFhN2Y5ZmE1YzEyZmRjNmEwZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIuaCIKQEAgLTU0LDcgKzU1LDYgQEAgc3RydWN0IFNlY3VyaXR5T3JpZ2lu
RGF0YTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZDsKLWNsYXNzIERvd25s
b2FkSUQ7CiBjbGFzcyBOZXR3b3JrUHJvY2VzczsKIGNsYXNzIFdlYkZyYW1lOwogZW51bSBjbGFz
cyBOZWdvdGlhdGVkTGVnYWN5VExTIDogYm9vbCB7IE5vLCBZZXMgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElEb3dubG9hZENsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSURvd25sb2FkQ2xpZW50LmgKaW5kZXggODc3OGZhOGYwNGRm
NmNiMzlhN2VjYTE5ZDBkNDM3MDFkMGZjYTBlNi4uNDQ4YjdhYjE3YWM1MGM2N2VkZTBjNTdlZGIw
YjNmNjBjYTFkMjI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SURvd25sb2FkQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSURv
d25sb2FkQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZURpc3Bvc2l0aW9uLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIgor
I2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDMsNyArNDQsNyBAQCBj
bGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKIGNsYXNzIFdlYlBy
b3RlY3Rpb25TcGFjZTsKIAotZW51bSBjbGFzcyBBbGxvd092ZXJ3cml0ZSB7IE5vLCBZZXMgfTsK
K2VudW0gY2xhc3MgQWxsb3dPdmVyd3JpdGUgOiBib29sOwogfQogCiBuYW1lc3BhY2UgQVBJIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
LmNwcAppbmRleCBmN2NmZjg1MmYwYmE2ZDAxNTUxMTY1ZGQ4YTlmN2Q1NzYzYjAwN2QzLi4xYzY1
MWNjZTNlZjE2ZGYyNzQxOTE2ZWM0ODNmZTY5ZjVhM2E2OWRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCkBAIC0xNjYsMTkg
KzE2NiwxNyBAQCB2b2lkIERvd25sb2FkUHJveHk6OmRpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IGJ5
dGVzV3JpdHRlbiwgdWludDY0X3QgdG90YWxCeXRlc1dyaQogICAgIG1fcHJvY2Vzc1Bvb2wtPmRv
d25sb2FkQ2xpZW50KCkuZGlkUmVjZWl2ZURhdGEoKnRoaXMsIGJ5dGVzV3JpdHRlbiwgdG90YWxC
eXRlc1dyaXR0ZW4sIHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUpOwogfQogCi12b2lkIERvd25s
b2FkUHJveHk6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lQXN5bmMoRG93
bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lKQordm9p
ZCBEb3dubG9hZFByb3h5OjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZShj
b25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
cmluZywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlLCBBbGxvd092ZXJ3cml0ZSk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3Byb2Nlc3NQb29sKQotICAgICAgICByZXR1cm47
CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0sIHsgfSwgeyB9KTsKICAgICAK
LSAgICBtX3Byb2Nlc3NQb29sLT5kb3dubG9hZENsaWVudCgpLmRlY2lkZURlc3RpbmF0aW9uV2l0
aFN1Z2dlc3RlZEZpbGVuYW1lKCp0aGlzLCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2FuaXRpemVT
dWdnZXN0ZWRGaWxlbmFtZShzdWdnZXN0ZWRGaWxlbmFtZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGRvd25sb2FkSURdIChBbGxvd092ZXJ3cml0ZSBhbGxvd092ZXJ3
cml0ZSwgU3RyaW5nIGRlc3RpbmF0aW9uKSB7CisgICAgbV9wcm9jZXNzUG9vbC0+ZG93bmxvYWRD
bGllbnQoKS5kZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSgqdGhpcywgUmVz
b3VyY2VSZXNwb25zZUJhc2U6OnNhbml0aXplU3VnZ2VzdGVkRmlsZW5hbWUoc3VnZ2VzdGVkRmls
ZW5hbWUpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KEFsbG93T3ZlcndyaXRlIGFsbG93T3ZlcndyaXRlLCBTdHJpbmcgZGVzdGluYXRpb24pIG11dGFi
bGUgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhh
bmRsZTsKICAgICAgICAgaWYgKCFkZXN0aW5hdGlvbi5pc051bGwoKSkKICAgICAgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShkZXN0aW5hdGlvbiwgU2FuZGJveEV4dGVuc2lv
bjo6VHlwZTo6UmVhZFdyaXRlLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgICAgICBp
ZiAoIW1fZGF0YVN0b3JlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2RhdGFTdG9y
ZS0+bmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q29udGlu
dWVEZWNpZGVQZW5kaW5nRG93bmxvYWREZXN0aW5hdGlvbihkb3dubG9hZElELCBkZXN0aW5hdGlv
biwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgYWxsb3dPdmVyd3JpdGUgPT0gQWxsb3dPdmVyd3Jp
dGU6OlllcyksIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihkZXN0aW5hdGlvbiwgV1RG
TW92ZShzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwgYWxsb3dPdmVyd3JpdGUpOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWRQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJv
eHkuaAppbmRleCBiMTk0OTlhNjYyYjQ4ZTEwZTg3NmI0MDNjMTY4ZGJkZTliZjlmM2VjLi4xNThj
NTZmMjQ5N2EwNDQ3MzU2OWZmN2E0NzIyOTg0NTAzYmY2ODAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKQEAgLTQ5LDEyICs0OSwx
MyBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xh
c3MgRG93bmxvYWRJRDsKIGNsYXNzIERvd25sb2FkUHJveHlNYXA7CiBjbGFzcyBXZWJQYWdlUHJv
eHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmU7CiAKK2Vu
dW0gY2xhc3MgQWxsb3dPdmVyd3JpdGUgOiBib29sOworCiBzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsK
IAogY2xhc3MgRG93bmxvYWRQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmpl
Y3Q6OlR5cGU6OkRvd25sb2FkPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTEx
Nyw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmFpbChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhKTsKICAg
ICB2b2lkIGRpZENhbmNlbChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEpOwog
ICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlZGly
ZWN0UmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNw
b25zZSk7Ci0gICAgdm9pZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFz
eW5jKERvd25sb2FkSUQsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpOworICAgIHZv
aWQgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWRGaWxlbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcsIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSwgQWxsb3dPdmVyd3JpdGUpPiYmKTsKIAogICAgIERvd25sb2FkUHJv
eHlNYXAmIG1fZG93bmxvYWRQcm94eU1hcDsKICAgICBSZWZQdHI8V2Vic2l0ZURhdGFTdG9yZT4g
bV9kYXRhU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDZlYjVlMDlkZDlmYWY5ZTVh
NDlmYjA4MGMyZGYwMjhkM2E2Yjg2Y2IuLjU3YjlkYmU3YzU1MmY1NzRmZDA1ODJjOWM2YjdmMDg1
ZWU4NzliMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBAIG1lc3Nh
Z2VzIC0+IERvd25sb2FkUHJveHkgewogICAgIERpZFN0YXJ0KFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBBdG9tU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKQogICAgIERpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogICAgIFdpbGxTZW5kUmVxdWVzdChX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVkaXJlY3RSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UpKQotICAgIERlY2lkZURlc3RpbmF0aW9uV2l0aFN1
Z2dlc3RlZEZpbGVuYW1lQXN5bmMoV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFN0cmlu
ZyBzdWdnZXN0ZWRGaWxlbmFtZSkKKyAgICBEZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRG
aWxlbmFtZShTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUpIC0+IChTdHJpbmcgZmlsZW5hbWUsIFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZSwgZW51bTpib29sIFdlYktpdDo6
QWxsb3dPdmVyd3JpdGUgYWxsb3dPdmVyd3JpdGUpIEFzeW5jCiAKICAgICBEaWRSZWNlaXZlUmVz
cG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKICAgICBEaWRSZWNlaXZl
RGF0YSh1aW50NjRfdCBieXRlc1dyaXR0ZW4sIHVpbnQ2NF90IHRvdGFsQnl0ZXNXcml0dGVuLCB1
aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlKQo=
</data>
<flag name="review"
          id="426515"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>