<?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>216493</bug_id>
          
          <creation_ts>2020-09-14 12:49:27 -0700</creation_ts>
          <short_desc>Move cookie flushing SPI from WKProcessPool to WKHTTPCookieStore</short_desc>
          <delta_ts>2020-09-14 14:50:51 -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>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1688373</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 12:49:27 -0700</bug_when>
    <thetext>Move cookie flushing SPI from WKProcessPool to WKHTTPCookieStore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688379</commentid>
    <comment_count>1</comment_count>
      <attachid>408737</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 12:54:04 -0700</bug_when>
    <thetext>Created attachment 408737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688380</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 12:54:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/68749055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688402</commentid>
    <comment_count>3</comment_count>
      <attachid>408737</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 13:45:04 -0700</bug_when>
    <thetext>Comment on attachment 408737
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h:30
&gt;  - (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy completionHandler:(void (^)())completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

This also needs a void inside the () to be able to be compiled from ObjC (not ObjC++).  I&apos;ll add when committing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688405</commentid>
    <comment_count>4</comment_count>
      <attachid>408737</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 13:50:56 -0700</bug_when>
    <thetext>Comment on attachment 408737
Patch

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        rdar://problem/68749055 tracks adoption in Safari, which I will land within an hour of landing this to avoid cookie regressions.

rdar://problem/68872711 is the correct radar.  Will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688416</commentid>
    <comment_count>5</comment_count>
      <attachid>408737</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-14 14:14:46 -0700</bug_when>
    <thetext>Comment on attachment 408737
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm:228
&gt; +    platformSyncAllCookies(WTFMove(completionHandler));

Since this is now on the HTTPCookieStore (which is associated with a single data store AFAIK), don&apos;t we want to sync cookies for the cookie store &apos;s session only instead of doing it for ALL sessions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688423</commentid>
    <comment_count>6</comment_count>
      <attachid>408746</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 14:37:28 -0700</bug_when>
    <thetext>Created attachment 408746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688426</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 14:50:51 -0700</bug_when>
    <thetext>http://trac.webkit.org/r267042</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408737</attachid>
            <date>2020-09-14 12:54:04 -0700</date>
            <delta_ts>2020-09-14 14:37:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216493-20200914125403.patch</filename>
            <type>text/plain</type>
            <size>20805</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0YzhlMzNhMjFmZWRkOWYz
OWIwOTJiNDg4ODI5OGY0ZjU0NDk2MDYuLjIyZmI5YjAwZjlhZjcyMDY1YjI5YTkyMjNmMDcxZjhk
ZWUxNjZmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjAtMDktMTQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIGNvb2tp
ZSBmbHVzaGluZyBTUEkgZnJvbSBXS1Byb2Nlc3NQb29sIHRvIFdLSFRUUENvb2tpZVN0b3JlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY0OTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBvcmRlciBm
b3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjA0MSB0byBiZSBw
b3NzaWJsZSwgb3VyIGludGVyZmFjZSBmb3IgZmx1c2hpbmcgY29va2llcyB0byBkaXNrIGNhbid0
IGJlCisgICAgICAgIG9uIHRoZSBXS1Byb2Nlc3NQb29sLiAgSXQgc2hvdWxkIGJlIHdpdGggdGhl
IG90aGVyIGNvb2tpZSBvcGVyYXRpb25zLCBpbiBXS0hUVFBDb29raWVTdG9yZS4KKyAgICAgICAg
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpzZW5kV2l0aEFzeW5jUmVwbHkgdGFrZXMgY2FyZSBvZiB0
aGUgYmFja2dyb3VuZCBhc3NlcnRpb24sIHNvIHdlIHJlbW92ZSB0aGF0IGNvZGUgZnJvbSBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzeW5jQWxsQ29va2llcy4KKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
Njg3NDkwNTUgdHJhY2tzIGFkb3B0aW9uIGluIFNhZmFyaSwgd2hpY2ggSSB3aWxsIGxhbmQgd2l0
aGluIGFuIGhvdXIgb2YgbGFuZGluZyB0aGlzIHRvIGF2b2lkIGNvb2tpZSByZWdyZXNzaW9ucy4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN5bmNBbGxDb29raWVzKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OmRpZFN5bmNBbGxDb29raWVzKTogRGVsZXRlZC4KKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzeW5jQWxsQ29va2llcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQ
Q29va2llU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnN5bmNDb29r
aWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmUubW06CisgICAgICAg
ICgtW1dLSFRUUENvb2tpZVN0b3JlIF9mbHVzaENvb2tpZXNUb0Rpc2tXaXRoQ29tcGxldGlvbkhh
bmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9y
ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wu
bW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXNd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENsb3NlKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c3luY0FsbENvb2tpZXMpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRTeW5jQWxsQ29va2llcyk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OnN5bmNDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMpOiBEZWxldGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6c3luY0Nvb2tpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmg6CisKIDIwMjAtMDktMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIF9zZXRDb29raWVBY2NlcHRQb2xpY3kg
dG8gV0tIVFRQQ29va2llU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOTBlYjYyYzZhOTdjNTc4YWQ4MGNiYjBjZDAwZGU1ODMw
OWQxMjRmNi4uZTJmY2Y2Zjc2YTZlZmEwZWU0ZmZhMGU3MGQ0MzQzODRjOWVjZmMxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIz
ODIsMTEgKzIzODIsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZWdpc3RlclVSTFNjaGVtZUFz
Tm9BY2Nlc3MoY29uc3QgU3RyaW5nJiBzY2hlbWUpIGNvbnN0CiAgICAgTGVnYWN5U2NoZW1lUmVn
aXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2VzcyhzY2hlbWUpOwogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpkaWRTeW5jQWxsQ29va2llcygpCi17Ci0gICAgcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkU3luY0Fs
bENvb2tpZXMoKSwgMCk7Ci19Ci0KICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIFJlZjxX
ZWJJREJTZXJ2ZXI+IE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVXZWJJREJTZXJ2ZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogewpAQCAtMjYxMiw4ICsyNjA3LDkgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW0KIHsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c3luY0FsbENvb2tpZXMoKQor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c3luY0FsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtU3luY0FsbENvb2tpZXMoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDI3ZjYwYzFiZDEyMWQ2ZDMxYzRj
ZGNiYjI1NzNmZGZjOWRmMDY2MjAuLjZhNzcyY2I5NDQxNWNmMjY1OThlYzg5NzkyZjgyNGFmYWNi
NTE4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKQEAgLTQ0Myw4ICs0NDMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hU
VFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGNv
bnN0IFN0cmluZyYgaG9zdCk7CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
cldlYlNvY2tldChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIAotICAg
IHZvaWQgc3luY0FsbENvb2tpZXMoKTsKLSAgICB2b2lkIGRpZFN5bmNBbGxDb29raWVzKCk7Cisg
ICAgdm9pZCBzeW5jQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAj
aWYgVVNFKFNPVVApCiAgICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCBiMDRjN2M5ZTBkMjk3ODFiZGFiZDM5OGUxMDRiYWZkNThjYWY1ZTEwLi5hZDc2
YjM5MTU5MjVkNzBlZDNiMjBjOTM2YzYzMzMyYjY1N2RiZDI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTY3LDcgKzY3LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogI2VuZGlmCiAgICAgU2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9v
bCBlbmFibGVkKSAtPiAoKSBTeW5jaHJvbm91cwogCi0gICAgU3luY0FsbENvb2tpZXMoKQorICAg
IFN5bmNBbGxDb29raWVzKCkgLT4gKCkgQXN5bmMKIAogICAgIEFsbG93U3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlRm9ySG9zdChXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGUsIFN0
cmluZyBob3N0KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggOWQ3M2VhMTJmMTQ4YTc4YWIzNDQ2
OWNhYjg2MjFkN2M3ZDVkNDc3OC4uOTYxZjBhZGRiZWY5Yjc3MTk2ODBlNzRmZTc0MWVkYjI5ZTcx
MDEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtMjIzLDExICsyMjMsOSBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxl
ZChlbmFibGVkKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c3luY0FsbENvb2tpZXMoKQor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c3luY0FsbENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHBsYXRmb3JtU3luY0FsbENvb2tpZXMo
W3RoaXNdIHsKLSAgICAgICAgZGlkU3luY0FsbENvb2tpZXMoKTsKLSAgICB9KTsKKyAgICBwbGF0
Zm9ybVN5bmNBbGxDb29raWVzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogI2lm
IEhBVkUoRk9VTkRBVElPTl9XSVRIX1NBVkVfQ09PS0lFU19XSVRIX0NPTVBMRVRJT05fSEFORExF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2ll
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9y
ZS5jcHAKaW5kZXggYTU2ZGY1YThjMmIyNTgyMzNkOWQ0OGJkZmQ5MjBkNjhhNjdmMjFmNy4uZGI5
OGY0MTljOGQ4MDlkYzRmMTkxNjljM2I5NWUyYThmMTkxOTlhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKQEAgLTE4OSw2ICsx
ODksMTEgQEAgdm9pZCBIVFRQQ29va2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
V2ViQ29yZTo6SFRUUENvb2tpZUFjY2VwdFBvbGljeQogICAgIH0pOwogfQogCit2b2lkIEhUVFBD
b29raWVTdG9yZTo6c3luY0Nvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIG1fb3duaW5nRGF0YVN0b3JlLT5zeW5jQ29va2llcyhXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIGNsYXNzIEFQSVdlYkNvb2tpZU1hbmFnZXJQ
cm94eU9ic2VydmVyIDogcHVibGljIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6T2JzZXJ2ZXIgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCmluZGV4IDAzODA1ZTY0OTcwYjNj
ZTllMzYxMDVkZTlmNmVhMmFkOTJmMTNmYTIuLjI3MTYyMTczNDQ1OThkMjRhNGVkMjIxYzM3ODhl
MGVkYTc3NzlhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElI
VFRQQ29va2llU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRU
UENvb2tpZVN0b3JlLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQg
ZGVsZXRlQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc3luY0Nvb2tpZXMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIGNsYXNzIE9ic2VydmVyIHsKICAgICBw
dWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tI
VFRQQ29va2llU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tI
VFRQQ29va2llU3RvcmUubW0KaW5kZXggNzU0YjNmMmM0ZGQ1YmI1ODVjOTNiMDg0MGY2NjFjNzdm
MWIzZjIwMC4uYTAwMTQ0YTM3NWI5NzQ3ZTdlMDk1M2FlZDI5NjBiMzk1ZWI0OGFlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3Jl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVT
dG9yZS5tbQpAQCAtMTQ2LDQgKzE0NiwxMSBAQCBwcml2YXRlOgogICAgIH0pOwogfQogCistICh2
b2lkKV9mbHVzaENvb2tpZXNUb0Rpc2tXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9p
ZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfY29va2llU3RvcmUtPnN5bmNDb29raWVzKFtj
b21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKCkgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH0pOworfQorCiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmVQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2ll
U3RvcmVQcml2YXRlLmgKaW5kZXggN2RlMzc2NTg0ZGM3MTMwZjU3MTQ4YjQ5MWI0YjJiZDZiNjcy
ZjgwNi4uMmZiYjJmYTc3Zjg0NzljZThhZjg3NjkyMzhiZGZiZjgzZDZlNGFhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29r
aWVTdG9yZVByaXZhdGUuaApAQCAtMjgsNCArMjgsNSBAQAogQGludGVyZmFjZSBXS0hUVFBDb29r
aWVTdG9yZSAoV0tQcml2YXRlKQogLSAodm9pZClfZ2V0Q29va2llc0ZvclVSTDooTlNVUkwgKil1
cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8TlNIVFRQQ29va2llICo+ICop
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6KE5TSFRUUENv
b2tpZUFjY2VwdFBvbGljeSlwb2xpY3kgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKCkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX2ZsdXNoQ29va2llc1RvRGlza1dpdGhDb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCBhYzcyODBk
NWUxMDU0YTIxZDcwNTY4MzQzMTJmODE5NjQwMWM4M2UyLi4zYmYzOTdkNjc5YzcxMDY5YjIyNzM3
YWU2NTM1MTUxNmQ3ODhjNTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDUxLDcgKzQ1MSw2IEBAIHN0YXRpYyBOU0Rp
Y3Rpb25hcnkgKnBvbGljaWVzSGFzaE1hcFRvRGljdGlvbmFyeShjb25zdCBIYXNoTWFwPFN0cmlu
ZywgSGFzaE1hcDxTCiAKIC0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMKIHsKLSAg
ICBfcHJvY2Vzc1Bvb2wtPnN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKIH0KIAogLSAodm9p
ZClfY2xlYXJXZWJQcm9jZXNzQ2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggMmI1MTMwMjJlNjVj
OGZhNTJkYTBhM2U4M2RkZmY2MjljOWU1NDZjNS4uZWRkMDg5YWVjYzI1MjVjNTcyMzBlMWRlNWFm
ZjU1MDY1OWEwMjBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTEwNCw3ICsxMDQsNyBAQAogLSAo
c2l6ZV90KV93ZWJQcm9jZXNzQ291bnRJZ25vcmluZ1ByZXdhcm1lZEFuZENhY2hlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogLSAoc2l6ZV90KV9wbHVnaW5Q
cm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsK
IC0gKHNpemVfdClfc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE0KSwgaW9zKDEyLjApKTsKLS0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tp
ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKV9z
eW5jTmV0d29ya1Byb2Nlc3NDb29raWVzIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIldLSFRUUENvb2tpZVN0b3JlLl9mbHVzaENvb2tpZXNUb0Rpc2tXaXRoQ29tcGxldGlvbkhh
bmRsZXI6IiwgbWFjb3MoMTAuMTMsIFdLX01BQ19UQkEpLCBpb3MoMTEuMCwgV0tfSU9TX1RCQSkp
OwogLSAodm9pZClfbWFrZU5leHRXZWJQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAtICh2b2lkKV9tYWtlTmV4dE5l
dHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNCksIGlvcygxMi4wKSk7CiAtIChOU1VJbnRlZ2VyKV9tYXhpbXVtU3VzcGVuZGVkUGFnZUNv
dW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCAxYmI5ZTY3ODk1Nzk2MWQ0N2UzODk2NGEyZjkyZDE2MmY3ZDc0NTEwLi5iYWU2
MDhhMDg3OTkwY2Y5ZDZkMDYxZWU5MGVjMTNhYjcwYjFlOGQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAg
LTI4Myw5ICsyODMsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiYpCiAjZW5kaWYKIAogICAgIG1fYWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmls
ZXMgPSBudWxscHRyOwotICAgIAotICAgIG1fc3luY0FsbENvb2tpZXNBY3Rpdml0eSA9IG51bGxw
dHI7Ci0gICAgbV9zeW5jQWxsQ29va2llc0NvdW50ZXIgPSAwOwogCiAgICAgbV91cGxvYWRBY3Rp
dml0eSA9IFdURjo6bnVsbG9wdDsKIApAQCAtMTI1MCwyNyArMTI0Nyw5IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2Nr
ZWRGaWxlcykKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c3luY0FsbENv
b2tpZXMoKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzeW5jQWxsQ29va2llcyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OlN5bmNBbGxDb29raWVzKCksIDApOwotICAgIAotICAgICsr
bV9zeW5jQWxsQ29va2llc0NvdW50ZXI7Ci0gICAgaWYgKG1fc3luY0FsbENvb2tpZXNBY3Rpdml0
eSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5z
aW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNz
ZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsgcHJvY2VzcyBpcyBzeW5jaW5nIGNvb2tpZXMiLCB0
aGlzKTsKLSAgICBtX3N5bmNBbGxDb29raWVzQWN0aXZpdHkgPSB0aHJvdHRsZXIoKS5iYWNrZ3Jv
dW5kQWN0aXZpdHkoIlN5bmNpbmcgY29va2llcyJfcykubW92ZVRvVW5pcXVlUHRyKCk7Ci19Ci0g
ICAgCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFN5bmNBbGxDb29raWVzKCkKLXsKLSAg
ICBBU1NFUlQobV9zeW5jQWxsQ29va2llc0NvdW50ZXIpOwotCi0gICAgLS1tX3N5bmNBbGxDb29r
aWVzQ291bnRlcjsKLSAgICBpZiAoIW1fc3luY0FsbENvb2tpZXNDb3VudGVyKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzc1Byb3h5
IGlzIHJlbGVhc2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgdGhlIE5ldHdvcmsg
cHJvY2VzcyBpcyBkb25lIHN5bmNpbmcgY29va2llcyIsIHRoaXMpOwotICAgICAgICBtX3N5bmNB
bGxDb29raWVzQWN0aXZpdHkgPSBudWxscHRyOwotICAgIH0KKyAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTeW5jQWxsQ29va2llcygpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YWRkU2Vz
c2lvbihSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiBzdG9yZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggMmMwZTJi
NjRlNjhiODFmZTQzMDJkNzZmMmFhYWYyMDU2ZmMxYThkYi4uZmY3Mjg2MjIzZWM0NDVkOGY4YzM2
ZTA0YjNiMWIyNWY2MGYxYTE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE5OCw4ICsxOTgsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wpOwogCi0gICAgdm9p
ZCBzeW5jQWxsQ29va2llcygpOwotICAgIHZvaWQgZGlkU3luY0FsbENvb2tpZXMoKTsKKyAgICB2
b2lkIHN5bmNBbGxDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2
b2lkIHRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5RGVs
YXllZFJlcGx5JiYpOwogICAgIHZvaWQgdGVybWluYXRlVW5yZXNwb25zaXZlU2VydmljZVdvcmtl
clByb2Nlc3NlcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7CkBAIC0zMjUsMTAgKzMyNCw3
IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBQcm9jZXNzVGhyb3R0bGVyIG1fdGhyb3R0bGVyOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHk+
IG1fYWN0aXZpdHlGb3JIb2xkaW5nTG9ja2VkRmlsZXM7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFBy
b2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eT4gbV9zeW5jQWxsQ29va2llc0FjdGl2
aXR5OwogICAgIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCBtX2FjdGl2aXR5RnJv
bVdlYlByb2Nlc3NlczsKLSAgICAKLSAgICB1bnNpZ25lZCBtX3N5bmNBbGxDb29raWVzQ291bnRl
ciB7IDAgfTsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgSGFzaFNldDxX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSo+IG1fd2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveGllczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzMDIwODdhY2I4ZjJm
ZDVkNTNmZjEyN2Q3Mzc2YTEzZDdlZjIxNjc2Li4yMTFjZDk0ZDIxMDk0YjVhODI1YTQ4M2YxYTFi
ODYwOTdhYmM4NzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0yOSw4ICsy
OSw2IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgTm90
UmVmQ291bnRlZCB7CiAgICAgRGlkRGVsZXRlV2Vic2l0ZURhdGEoV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiAgICAgRGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogCi0gICAgRGlkU3luY0FsbENvb2tpZXMoKQotCiAgICAg
VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhbmRsZWQpIFN5
bmNocm9ub3VzCiAgICAgVGVybWluYXRlVW5yZXNwb25zaXZlU2VydmljZVdvcmtlclByb2Nlc3Nl
cyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDk3YWJhZDY5ZTJjMjA0
Mzk1Zjg5MGI3ZjgxM2E5ZDMyNTY4OTU2ZGMuLmEyNDIxNzE1MmM4OWVjYmVjNGNlMjY2NTdjMzg0
ZDE4YWQxNjdjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKQEAgLTE4MzMsOSArMTgzMyw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZVNl
cnZpY2VXb3JrZXJzKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpzeW5jTmV0
d29ya1Byb2Nlc3NDb29raWVzKCkKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN5bmNDb29raWVzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBlbnN1
cmVOZXR3b3JrUHJvY2VzcygpLnN5bmNBbGxDb29raWVzKCk7CisgICAgZW5zdXJlTmV0d29ya1By
b2Nlc3MoKS5zeW5jQWxsQ29va2llcyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAK
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN5bmNMb2NhbFN0b3JhZ2UoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKaW5kZXggOTUyOTI3ZWM3OTY1MGU3MGRkYmMzZmIwNGUzOGFiMWI2ZDEyMzc1
Ny4uM2VlYjllZWQ5NDkxZjYwMjM4YmJhMDMwODNkYjhkYjQxNWViODRiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zMjgsNyArMzI4LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCk7CiAgICAgdm9pZCB0ZXJt
aW5hdGVTZXJ2aWNlV29ya2VycygpOwogCi0gICAgdm9pZCBzeW5jTmV0d29ya1Byb2Nlc3NDb29r
aWVzKCk7CisgICAgdm9pZCBzeW5jQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc3luY0xvY2FsU3RvcmFnZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y2FsbGJhY2spOwogICAgIHZvaWQgY2xlYXJMZWdhY3lQcml2YXRlQnJvd3NpbmdMb2NhbFN0b3Jh
Z2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAppbmRleCAwMjQxOWI3YWMwYjNmMDBiYzIzNTU5NGYxOTMxODBjM2NhMmQ0YjhmLi43NzgyOWM1
MTJjOWZhOGE1Y2JjNjFkOWUyMmRkOTk1YzU5Njg4MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAt
MjI1NCw2ICsyMjU0LDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJQZW5kaW5nQ29v
a2llcygpCiAgICAgbV9wZW5kaW5nQ29va2llcy5jbGVhcigpOwogfQogCit2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnN5bmNDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdn
cmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBmb3IgKGF1
dG8gcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpCisgICAg
ICAgIHByb2Nlc3NQb29sLT5zeW5jQ29va2llcyhbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwor
fQorCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRpc3BhdGNoT25RdWV1ZShGdW5jdGlvbjx2b2lk
KCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goV1RGTW92ZShmdW5jdGlv
bikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5oCmluZGV4IDE0MDc2YWE5MjRlN2NlMmZmN2Y3M2VkYTM2ODNhODVjNGE2
M2RhYWQuLmNjNWRkZTYyMjBiNDBhYmY1ZjA0MTlhNGEyYjVhZDliZTkwMjg3MGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKQEAgLTIzOCw2ICsyMzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQZW5kaW5nQ29v
a2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYpOwogICAgIHZvaWQgcmVtb3ZlUGVuZGluZ0Nvb2tp
ZShjb25zdCBXZWJDb3JlOjpDb29raWUmKTsKICAgICB2b2lkIGNsZWFyUGVuZGluZ0Nvb2tpZXMo
KTsKKyAgICB2b2lkIHN5bmNDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAK
ICAgICB2b2lkIGRpc3BhdGNoT25RdWV1ZShGdW5jdGlvbjx2b2lkKCk+JiYpOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTYzMzQ5YTYyNGM5
NjBkNzg4NmI4ZjZjNDgzOWY2MmIyYThhNDQwNy4uZmU3MjY0NzhlMjY3ODk1ZjhkZjM1MjMzM2Rh
YjExNzdkMGU1ODQ2NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA5LTE0ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBjb29raWUgZmx1c2hpbmcg
U1BJIGZyb20gV0tQcm9jZXNzUG9vbCB0byBXS0hUVFBDb29raWVTdG9yZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NDkzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbToKKyAgICAgICAgKHJ1
bldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyk6CisgICAgICAgIChURVNUKToKKwogMjAyMC0w
OS0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIE1vdmUgX3NldENvb2tpZUFjY2VwdFBvbGljeSB0byBXS0hUVFBDb29raWVTdG9yZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0
YVN0b3JlQ3VzdG9tUGF0aHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQppbmRleCA3ZTdhNDIxM2M4MDQzNzc4
MWIwZDY1N2U0NTlhYmY3MTdlNTc5MTcyLi45MmNmM2E2MTk4YTViOWQxNDU0NDkwNWRiOWU5NDhm
MTFjNzI1NmRlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQpAQCAt
MzIsNiArMzIsNyBAQAogI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNDQ29uZmlnLmg+
CisjaW1wb3J0IDxXZWJLaXQvV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tQcmVmZXJlbmNlc1JlZi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRl
Lmg+CkBAIC0xNDgsNyArMTQ5LDExIEBAIHN0YXRpYyB2b2lkIHJ1bldlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocyhTaG91bGRFbmFibGVQcm9jZXNzUHJld2FybWluZyBzaG91bGRFCiAgICAgRVhQ
RUNUX1NUUkVRKFtnZXROZXh0TWVzc2FnZSgpLmJvZHkgVVRGOFN0cmluZ10sICJFeGNlcHRpb246
IFF1b3RhRXhjZWVkZWRFcnJvcjogVGhlIHF1b3RhIGhhcyBiZWVuIGV4Y2VlZGVkLiIpOwogICAg
IEVYUEVDVF9TVFJFUShbZ2V0TmV4dE1lc3NhZ2UoKS5ib2R5IFVURjhTdHJpbmddLCAiU3VjY2Vz
cyBvcGVuaW5nIGluZGV4ZWQgZGF0YWJhc2UiKTsKIAotICAgIFtbW3dlYlZpZXcgY29uZmlndXJh
dGlvbl0gcHJvY2Vzc1Bvb2xdIF9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzXTsKKyAgICBfX2Js
b2NrIGJvb2wgZmx1c2hlZCA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNp
dGVEYXRhU3RvcmUuaHR0cENvb2tpZVN0b3JlIF9mbHVzaENvb2tpZXNUb0Rpc2tXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6XnsKKyAgICAgICAgZmx1c2hlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmbHVzaGVkKTsKIAogICAgIC8vIEZvcmNpYmx5IHNodXQg
ZG93biBldmVyeXRoaW5nIG9mIFdlYktpdCB0aGF0IHdlIGNhbi4KICAgICBhdXRvIHBpZCA9IFt3
ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC00MTgsNyArNDIzLDExIEBAIFRFU1Qo
V2ViS2l0LCBXZWJzaXRlRGF0YVN0b3JlRXBoZW1lcmFsKQogICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgW1tbd2ViVmlldyBjb25m
aWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXNdOworICAg
IF9fYmxvY2sgYm9vbCBmbHVzaGVkID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCku
d2Vic2l0ZURhdGFTdG9yZS5odHRwQ29va2llU3RvcmUgX2ZsdXNoQ29va2llc1RvRGlza1dpdGhD
b21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICBmbHVzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZsdXNoZWQpOwogCiAgICAgLy8gRm9yY2libHkg
c2h1dCBkb3duIGV2ZXJ5dGhpbmcgb2YgV2ViS2l0IHRoYXQgd2UgY2FuLgogICAgIGF1dG8gcGlk
ID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTQ5Myw3ICs1MDIsMTEgQEAg
VEVTVChXZWJLaXQsIFdlYnNpdGVEYXRhU3RvcmVFcGhlbWVyYWxWaWFDb25maWd1cmF0aW9uKQog
ICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIldlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgW1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3N5bmNOZXR3b3Jr
UHJvY2Vzc0Nvb2tpZXNdOworICAgIF9fYmxvY2sgYm9vbCBmbHVzaGVkID0gZmFsc2U7CisgICAg
W2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZS5odHRwQ29va2llU3RvcmUgX2Zs
dXNoQ29va2llc1RvRGlza1dpdGhDb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICBmbHVzaGVk
ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZsdXNoZWQp
OwogCiAgICAgLy8gRm9yY2libHkgc2h1dCBkb3duIGV2ZXJ5dGhpbmcgb2YgV2ViS2l0IHRoYXQg
d2UgY2FuLgogICAgIGF1dG8gcGlkID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408746</attachid>
            <date>2020-09-14 14:37:28 -0700</date>
            <delta_ts>2020-09-14 14:40:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216493-20200914143727.patch</filename>
            <type>text/plain</type>
            <size>22994</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjcwMzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTA5LTE0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBjb29raWUg
Zmx1c2hpbmcgU1BJIGZyb20gV0tQcm9jZXNzUG9vbCB0byBXS0hUVFBDb29raWVTdG9yZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NDkzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIgZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTYwNDEgdG8gYmUgcG9z
c2libGUsIG91ciBpbnRlcmZhY2UgZm9yIGZsdXNoaW5nIGNvb2tpZXMgdG8gZGlzayBjYW4ndCBi
ZQorICAgICAgICBvbiB0aGUgV0tQcm9jZXNzUG9vbC4gIEl0IHNob3VsZCBiZSB3aXRoIHRoZSBv
dGhlciBjb29raWUgb3BlcmF0aW9ucywgaW4gV0tIVFRQQ29va2llU3RvcmUuCisgICAgICAgIEF1
eGlsaWFyeVByb2Nlc3NQcm94eTo6c2VuZFdpdGhBc3luY1JlcGx5IHRha2VzIGNhcmUgb2YgdGhl
IGJhY2tncm91bmQgYXNzZXJ0aW9uLCBzbyB3ZSByZW1vdmUgdGhhdCBjb2RlIGZyb20gTmV0d29y
a1Byb2Nlc3NQcm94eTo6c3luY0FsbENvb2tpZXMuCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzY4
ODcyNzExIHRyYWNrcyBhZG9wdGlvbiBpbiBTYWZhcmksIHdoaWNoIEkgd2lsbCBsYW5kIHdpdGhp
biBhbiBob3VyIG9mIGxhbmRpbmcgdGhpcyB0byBhdm9pZCBjb29raWUgcmVncmVzc2lvbnMuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzeW5jQWxsQ29va2llcyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpkaWRTeW5jQWxsQ29va2llcyk6IERlbGV0ZWQuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6c3luY0FsbENvb2tpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENv
b2tpZVN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzeW5jQ29va2ll
cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tOgorICAgICAgICAo
LVtXS0hUVFBDb29raWVTdG9yZSBfZmx1c2hDb29raWVzVG9EaXNrV2l0aENvbXBsZXRpb25IYW5k
bGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmVQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
OgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzXSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnN5bmNBbGxDb29raWVzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU3luY0FsbENvb2tpZXMpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpzeW5jQ29va2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjpzeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3Rv
cmU6OnN5bmNDb29raWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oOgorCiAyMDIwLTA5LTE0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBkb2NraW5nIGJ1dHRvbnMgZG9uJ3Qgd29y
ayB3aGVuIGFscmVhZHkgZG9ja2VkIGlmIHdpbmRvdyBpcyB0b28gc21hbGwKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCShyZXZpc2lv
biAyNjcwMzEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc1LDcgKzI3NSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OmRpZENsb3NlKElQQzo6Q29ubmUKICAgICAgICAgbmV0d29ya1Nlc3Npb24uZmx1c2hBbmRE
ZXN0cm95UGVyc2lzdGVudFN0b3JlKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAgICAgfSk7
CiAjZW5kaWYKLSAgICBwbGF0Zm9ybVN5bmNBbGxDb29raWVzKFtjYWxsYmFja0FnZ3JlZ2F0b3Jd
IHsgfSk7CisgICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmXSAoYXV0byYgbmV0d29ya1Nlc3Np
b24pIHsKKyAgICAgICAgcGxhdGZvcm1GbHVzaENvb2tpZXMobmV0d29ya1Nlc3Npb24uc2Vzc2lv
bklEKCksIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CisgICAgfSk7CiB9CiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmRpZENyZWF0ZURvd25sb2FkKCkKQEAgLTIyODAsNyArMjI4Miw5IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm8KICAgICBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICNl
bmRpZgogCi0gICAgcGxhdGZvcm1TeW5jQWxsQ29va2llcyhbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7
IH0pOworICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIG5ldHdvcmtTZXNzaW9u
KSB7CisgICAgICAgIHBsYXRmb3JtRmx1c2hDb29raWVzKG5ldHdvcmtTZXNzaW9uLnNlc3Npb25J
RCgpLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgIH0pOwogCiAgICAgZm9yIChhdXRv
JiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCiAgICAgICAg
IGNvbm5lY3Rpb24tPmNsZWFudXBGb3JTdXNwZW5zaW9uKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsg
fSk7CkBAIC0yMzgyLDExICsyMzg2LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVnaXN0ZXJV
UkxTY2hlbWVBcwogICAgIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFz
Tm9BY2Nlc3Moc2NoZW1lKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkU3luY0FsbENv
b2tpZXMoKQotewotICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZFN5bmNBbGxDb29raWVzKCksIDApOwotfQotCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCiBSZWY8V2ViSURCU2VydmVyPiBOZXR3b3JrUHJvY2Vz
czo6Y3JlYXRlV2ViSURCU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKQEAgLTI2
MTIsMTEgKzI2MTEsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3go
YwogewogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jQWxsQ29va2llcygpCit2b2lkIE5l
dHdvcmtQcm9jZXNzOjpmbHVzaENvb2tpZXMoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TeW5jQWxsQ29v
a2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUZsdXNoQ29va2llcyhjb25zdCBQQUw6OlNlc3Npb25J
RCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNpb24gMjY3MDMxKQorKysgU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NDMsOCArNDQzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRp
ZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJp
bmcmIGhvc3QpOwogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2Nr
ZXQoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICAKLSAgICB2b2lkIHN5
bmNBbGxDb29raWVzKCk7Ci0gICAgdm9pZCBkaWRTeW5jQWxsQ29va2llcygpOworICAgIHZvaWQg
Zmx1c2hDb29raWVzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogI2lmIFVTRShTT1VQKQogICAgIHZvaWQgc2V0SWdub3JlVExTRXJyb3JzKGJv
b2wpOwpAQCAtNDYxLDcgKzQ2MCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgc2V0U2hh
cmVkSFRUUENvb2tpZVN0b3JhZ2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpZGVudGlmaWVyKTsK
ICNlbmRpZgogCi0gICAgdm9pZCBwbGF0Zm9ybVN5bmNBbGxDb29raWVzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBwbGF0Zm9ybUZsdXNoQ29va2llcyhjb25zdCBQQUw6
OlNlc3Npb25JRCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgCiAgICAgdm9p
ZCByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZv
aWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShjb25z
dCBTdHJpbmcmKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjY3MDMxKQor
KysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlCiAjZW5kaWYKICAgICBTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0
ZUZvcldlYlNvY2tldChib29sIGVuYWJsZWQpIC0+ICgpIFN5bmNocm9ub3VzCiAKLSAgICBTeW5j
QWxsQ29va2llcygpCisgICAgRmx1c2hDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKCkgQXN5bmMKIAogICAgIEFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGUsIFN0cmluZyBob3N0KQogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2Eu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNjcwMzEpCisrKyBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkK
QEAgLTIyMywxNyArMjIzLDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VBY2Nl
c3NBUEkKICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldFN0b3JhZ2VBY2Nl
c3NBUElFbmFibGVkKGVuYWJsZWQpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzeW5jQWxs
Q29va2llcygpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpmbHVzaENvb2tpZXMoY29uc3QgUEFMOjpT
ZXNzaW9uSUQmIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIHBsYXRmb3JtU3luY0FsbENvb2tpZXMoW3RoaXNdIHsKLSAgICAg
ICAgZGlkU3luY0FsbENvb2tpZXMoKTsKLSAgICB9KTsKKyAgICBwbGF0Zm9ybUZsdXNoQ29va2ll
cyhzZXNzaW9uSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogI2lmIEhBVkUo
Rk9VTkRBVElPTl9XSVRIX1NBVkVfQ09PS0lFU19XSVRIX0NPTVBMRVRJT05fSEFORExFUikKIHN0
YXRpYyB2b2lkIHNhdmVDb29raWVzKE5TSFRUUENvb2tpZVN0b3JhZ2UgKmNvb2tpZVN0b3JhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVChjb29raWVTdG9yYWdlKTsKICAg
ICBbY29va2llU3RvcmFnZSBfc2F2ZUNvb2tpZXM6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICAv
LyBDRk5ldHdvcmsgbWF5IGNhbGwgdGhlIGNvbXBsZXRpb24gYmxvY2sgb24gYSBiYWNrZ3JvdW5k
IHF1ZXVlLCBzbyB3ZSBuZWVkIHRvIHJlZGlzcGF0Y2ggdG8gdGhlIG1haW4gdGhyZWFkLgogICAg
ICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwpAQCAtMjQxLDIxICsyNDAsMjAgQEAgc3RhdGljIHZvaWQgc2F2ZUNvb2tpZXMoTlNIVFRQQ29v
a2llU3RvcgogfQogI2VuZGlmCiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtU3luY0Fs
bENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kZXIpIHsK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtRmx1c2hDb29raWVzKGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmls
ZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7Ci0gICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KLQogI2lmIEhBVkUoRk9VTkRBVElPTl9XSVRIX1NBVkVfQ09PS0lFU19XSVRI
X0NPTVBMRVRJT05fSEFORExFUikKLSAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxs
YmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kZXIpKTsKLSAgICBmb3JFYWNoTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFsmXSAoYXV0
byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uKSB7Ci0gICAgICAgIHNhdmVDb29raWVzKG5ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5uc0Nvb2tpZVN0b3JhZ2UoKSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9
KTsKLSAgICB9KTsKKyAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFn
ZVNlc3Npb24oc2Vzc2lvbklEKSkKKyAgICAgICAgc2F2ZUNvb2tpZXMobmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLT5uc0Nvb2tpZVN0b3JhZ2UoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICNlbHNlCisgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBfQ0ZIVFRQQ29va2llU3RvcmFnZUZs
dXNoQ29va2llU3RvcmVzKCk7Ci0gICAgY29tcGxldGlvbkhhbmRlcigpOwotI2VuZGlmCi0KICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyAgICBjb21wbGV0aW9uSGFuZGxl
cigpOworI2VuZGlmCiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtUHJvY2Vzc0Rp
ZFRyYW5zaXRpb25Ub0JhY2tncm91bmQoKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAkocmV2aXNpb24gMjY3MDMxKQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODMzLDkgKzE4
MzMsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVTZXJ2aWNlV29yCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3luY05ldHdvcmtQcm9jZXNzQ29va2llcygpCit2
b2lkIFdlYlByb2Nlc3NQb29sOjpmbHVzaENvb2tpZXMoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCkuc3luY0FsbENvb2tpZXMoKTsKKyAgICBlbnN1
cmVOZXR3b3JrUHJvY2VzcygpLmZsdXNoQ29va2llcyhzZXNzaW9uSUQsIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3luY0xvY2FsU3RvcmFn
ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHJldmlzaW9uIDI2NzAzMSkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyOCw3ICszMjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nl
c3NEaWRSZXN1bWUoKTsKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzKCk7CiAKLSAg
ICB2b2lkIHN5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMoKTsKKyAgICB2b2lkIGZsdXNoQ29va2ll
cyhjb25zdCBQQUw6OlNlc3Npb25JRCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzeW5jTG9jYWxTdG9yYWdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxs
YmFjayk7CiAgICAgdm9pZCBjbGVhckxlZ2FjeVByaXZhdGVCcm93c2luZ0xvY2FsU3RvcmFnZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcAkocmV2aXNp
b24gMjY3MDMxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVT
dG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OSw2ICsxODksMTEgQEAgdm9pZCBIVFRQQ29v
a2llU3RvcmU6OnNldEhUVFBDb29raWVBY2NlcAogICAgIH0pOwogfQogCit2b2lkIEhUVFBDb29r
aWVTdG9yZTo6Zmx1c2hDb29raWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBtX293bmluZ0RhdGFTdG9yZS0+Zmx1c2hDb29raWVzKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogY2xhc3MgQVBJV2ViQ29va2llTWFuYWdlclBy
b3h5T2JzZXJ2ZXIgOiBwdWJsaWMgV2ViQ29va2llTWFuYWdlclByb3h5OjpPYnNlcnZlciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCShyZXZpc2lvbiAyNjcw
MzEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQg
ZGVsZXRlQWxsQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShXZWJDb3JlOjpIVFRQQ29va2llQWNjZXB0UG9saWN5
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZmx1c2hDb29raWVzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAg
cHVibGljOgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENv
b2tpZVN0b3JlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQkocmV2aXNpb24gMjY3MDMxKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDYsNCArMTQ2LDExIEBAIC0gKHZvaWQpX3NldENvb2tpZUFjY2VwdFBvbGljeToo
TlNIVFRQQ28KICAgICB9KTsKIH0KIAorLSAodm9pZClfZmx1c2hDb29raWVzVG9EaXNrV2l0aENv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAg
X2Nvb2tpZVN0b3JlLT5mbHVzaENvb2tpZXMoW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2Nr
UHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CisgICAgfSk7Cit9CisKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0hUVFBDb29raWVTdG9yZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmgJKHJldmlz
aW9uIDI2NzAzMSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBD
b29raWVTdG9yZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNSArMjcsNiBAQAogCiBA
aW50ZXJmYWNlIFdLSFRUUENvb2tpZVN0b3JlIChXS1ByaXZhdGUpCiAtICh2b2lkKV9nZXRDb29r
aWVzRm9yVVJMOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJh
eTxOU0hUVFBDb29raWUgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldENvb2tpZUFj
Y2VwdFBvbGljeTooTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeSBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0Q29va2llQWNjZXB0
UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kpcG9saWN5IGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfZmx1c2hDb29raWVzVG9E
aXNrV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiBA
ZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQkocmV2aXNpb24gMjY3MDMxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1MSw3ICs0
NTEsNiBAQCAtIChwaWRfdClfcHJld2FybWVkUHJvY2Vzc0lkZW50aWZpZXIKIAogLSAodm9pZClf
c3luY05ldHdvcmtQcm9jZXNzQ29va2llcwogewotICAgIF9wcm9jZXNzUG9vbC0+c3luY05ldHdv
cmtQcm9jZXNzQ29va2llcygpOwogfQogCiAtICh2b2lkKV9jbGVhcldlYlByb2Nlc3NDYWNoZQpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmgJKHJldmlzaW9uIDI2NzAzMSkKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQsNyArMTA0LDcgQEAKIC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQ
cmV3YXJtZWRBbmRDYWNoZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKIC0gKHNpemVfdClfcGx1Z2luUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtIChzaXplX3QpX3NlcnZpY2VXb3JrZXJQcm9jZXNz
Q291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci0tICh2b2lk
KV9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOworLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcyBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS0hUVFBDb29raWVTdG9yZS5fZmx1c2hDb29r
aWVzVG9EaXNrV2l0aENvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEzLCBXS19NQUNfVEJB
KSwgaW9zKDExLjAsIFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX21ha2VOZXh0V2ViUHJvY2Vzc0xh
dW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIu
MCkpOwogLSAodm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5n
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAoTlNVSW50ZWdl
cilfbWF4aW11bVN1c3BlbmRlZFBhZ2VDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
LjQpLCBpb3MoMTIuMikpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAyNjcwMzEpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yODMsOSArMjgzLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpkaWRDbG9zZShJUEM6OgogI2VuZGlmCiAKICAgICBtX2FjdGl2aXR5Rm9ySG9sZGluZ0xv
Y2tlZEZpbGVzID0gbnVsbHB0cjsKLSAgICAKLSAgICBtX3N5bmNBbGxDb29raWVzQWN0aXZpdHkg
PSBudWxscHRyOwotICAgIG1fc3luY0FsbENvb2tpZXNDb3VudGVyID0gMDsKIAogICAgIG1fdXBs
b2FkQWN0aXZpdHkgPSBXVEY6Om51bGxvcHQ7CiAKQEAgLTEyNTAsMjcgKzEyNDcsOSBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvCiAgICAgfQogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnN5bmNBbGxDb29raWVzKCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6Zmx1c2hDb29raWVzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3luY0FsbENvb2tpZXMoKSwgMCk7Ci0gICAgCi0gICAg
KyttX3N5bmNBbGxDb29raWVzQ291bnRlcjsKLSAgICBpZiAobV9zeW5jQWxsQ29va2llc0FjdGl2
aXR5KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBh
c3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29yayBwcm9jZXNzIGlzIHN5bmNpbmcgY29va2llcyIs
IHRoaXMpOwotICAgIG1fc3luY0FsbENvb2tpZXNBY3Rpdml0eSA9IHRocm90dGxlcigpLmJhY2tn
cm91bmRBY3Rpdml0eSgiU3luY2luZyBjb29raWVzIl9zKS5tb3ZlVG9VbmlxdWVQdHIoKTsKLX0K
LSAgICAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU3luY0FsbENvb2tpZXMoKQotewot
ICAgIEFTU0VSVChtX3N5bmNBbGxDb29raWVzQ291bnRlcik7Ci0KLSAgICAtLW1fc3luY0FsbENv
b2tpZXNDb3VudGVyOwotICAgIGlmICghbV9zeW5jQWxsQ29va2llc0NvdW50ZXIpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzUHJv
eHkgaXMgcmVsZWFzaW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB0aGUgTmV0d29y
ayBwcm9jZXNzIGlzIGRvbmUgc3luY2luZyBjb29raWVzIiwgdGhpcyk7Ci0gICAgICAgIG1fc3lu
Y0FsbENvb2tpZXNBY3Rpdml0eSA9IG51bGxwdHI7Ci0gICAgfQorICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkZsdXNoQ29va2llcyhzZXNzaW9uSUQpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6YWRkU2Vzc2lvbihSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiBzdG9yZSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCShyZXZpc2lvbiAyNjcwMzEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTk4LDggKzE5OCw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCk7CiAKLSAg
ICB2b2lkIHN5bmNBbGxDb29raWVzKCk7Ci0gICAgdm9pZCBkaWRTeW5jQWxsQ29va2llcygpOwor
ICAgIHZvaWQgZmx1c2hDb29raWVzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgdGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHlEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCB0ZXJtaW5h
dGVVbnJlc3BvbnNpdmVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyKTsKQEAgLTMyNSwxMCArMzI0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIFByb2Nl
c3NUaHJvdHRsZXIgbV90aHJvdHRsZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJv
dHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eT4gbV9hY3Rpdml0eUZvckhvbGRpbmdMb2NrZWRGaWxl
czsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2
aXR5PiBtX3N5bmNBbGxDb29raWVzQWN0aXZpdHk7CiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6QWN0
aXZpdHlWYXJpYW50IG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzOwotICAgIAotICAgIHVuc2ln
bmVkIG1fc3luY0FsbENvb2tpZXNDb3VudGVyIHsgMCB9OwogCiAjaWYgRU5BQkxFKENPTlRFTlRf
RVhURU5TSU9OUykKICAgICBIYXNoU2V0PFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5Kj4g
bV93ZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94aWVzOwpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjY3MDMxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw4ICsyOSw2IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5
UmUKICAgICBEaWREZWxldGVXZWJzaXRlRGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKICAgICBEaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiAKLSAgICBEaWRTeW5jQWxsQ29va2llcygpCi0KICAgICBUZXN0UHJvY2Vz
c0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMK
ICAgICBUZXJtaW5hdGVVbnJlc3BvbnNpdmVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKQogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcAkocmV2aXNpb24gMjY3MDMxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNTQsNiArMjI1
NCwxMyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUGVuZGluZ0Nvb2tpCiAgICAgbV9w
ZW5kaW5nQ29va2llcy5jbGVhcigpOwogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZsdXNo
Q29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0
ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgZm9yIChhdXRvIHByb2Nlc3NQb29s
IDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKQorICAgICAgICBwcm9jZXNzUG9v
bC0+Zmx1c2hDb29raWVzKHNlc3Npb25JRCgpLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwor
fQorCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRpc3BhdGNoT25RdWV1ZShGdW5jdGlvbjx2b2lk
KCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goV1RGTW92ZShmdW5jdGlv
bikpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaAkocmV2aXNpb24gMjY3MDMxKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMzgsNiArMjM4LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUGVuZGluZ0Nvb2tpZShj
b25zdCBXZWJDb3JlOjpDb29raWUmKTsKICAgICB2b2lkIHJlbW92ZVBlbmRpbmdDb29raWUoY29u
c3QgV2ViQ29yZTo6Q29va2llJik7CiAgICAgdm9pZCBjbGVhclBlbmRpbmdDb29raWVzKCk7Cisg
ICAgdm9pZCBmbHVzaENvb2tpZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAg
IHZvaWQgZGlzcGF0Y2hPblF1ZXVlKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKSW5kZXg6IFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NzAz
MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDIwLTA5LTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgTW92ZSBjb29raWUgZmx1c2hpbmcgU1BJIGZyb20gV0tQcm9jZXNzUG9vbCB0byBX
S0hUVFBDb29raWVTdG9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE2NDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3Rv
cmVDdXN0b21QYXRocy5tbToKKyAgICAgICAgKHJ1bldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRo
cyk6CisgICAgICAgIChURVNUKToKKwogMjAyMC0wOS0xNCAgRnVqaWkgSGlyb25vcmkgIDxIaXJv
bm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbVGVzdFJ1bm5lclNoYXJlZF0gTWFrZSBV
SVNjcmlwdENvbnRleHQgbm90IGRpcmVjdGx5IGNhbGwgVUlTY3JpcHRDb250cm9sbGVyOjpjcmVh
dGUgd2hpY2ggYXJlIGRlZmluZWQgaW4gRFJUIGFuZCBXVFIKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0
ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCShyZXZpc2lvbiAyNjcwMzEpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCA8SmF2YVNj
cmlwdENvcmUvSlNDQ29uZmlnLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tIVFRQQ29va2llU3RvcmVQ
cml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZi5oPgogI2ltcG9ydCA8
V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29u
dGVudENvbnRyb2xsZXJQcml2YXRlLmg+CkBAIC0xNDgsNyArMTQ5LDExIEBAIHN0YXRpYyB2b2lk
IHJ1bldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXQKICAgICBFWFBFQ1RfU1RSRVEoW2dldE5leHRN
ZXNzYWdlKCkuYm9keSBVVEY4U3RyaW5nXSwgIkV4Y2VwdGlvbjogUXVvdGFFeGNlZWRlZEVycm9y
OiBUaGUgcXVvdGEgaGFzIGJlZW4gZXhjZWVkZWQuIik7CiAgICAgRVhQRUNUX1NUUkVRKFtnZXRO
ZXh0TWVzc2FnZSgpLmJvZHkgVVRGOFN0cmluZ10sICJTdWNjZXNzIG9wZW5pbmcgaW5kZXhlZCBk
YXRhYmFzZSIpOwogCi0gICAgW1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0g
X3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXNdOworICAgIF9fYmxvY2sgYm9vbCBmbHVzaGVkID0g
ZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZS5odHRwQ29v
a2llU3RvcmUgX2ZsdXNoQ29va2llc1RvRGlza1dpdGhDb21wbGV0aW9uSGFuZGxlcjpeeworICAg
ICAgICBmbHVzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmZsdXNoZWQpOwogCiAgICAgLy8gRm9yY2libHkgc2h1dCBkb3duIGV2ZXJ5dGhpbmcgb2Yg
V2ViS2l0IHRoYXQgd2UgY2FuLgogICAgIGF1dG8gcGlkID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXTsKQEAgLTQxOCw3ICs0MjMsMTEgQEAgVEVTVChXZWJLaXQsIFdlYnNpdGVEYXRh
U3RvcmVFcGhlbWVyYWwpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
V2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07CiAKLSAgICBbW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dIHByb2Nlc3NQ
b29sXSBfc3luY05ldHdvcmtQcm9jZXNzQ29va2llc107CisgICAgX19ibG9jayBib29sIGZsdXNo
ZWQgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlLmh0
dHBDb29raWVTdG9yZSBfZmx1c2hDb29raWVzVG9EaXNrV2l0aENvbXBsZXRpb25IYW5kbGVyOl57
CisgICAgICAgIGZsdXNoZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZmx1c2hlZCk7CiAKICAgICAvLyBGb3JjaWJseSBzaHV0IGRvd24gZXZlcnl0aGlu
ZyBvZiBXZWJLaXQgdGhhdCB3ZSBjYW4uCiAgICAgYXV0byBwaWQgPSBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdOwpAQCAtNDkzLDcgKzUwMiwxMSBAQCBURVNUKFdlYktpdCwgV2Vic2l0
ZURhdGFTdG9yZUVwaGVtZXJhbFZpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAiV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBbW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dIHBy
b2Nlc3NQb29sXSBfc3luY05ldHdvcmtQcm9jZXNzQ29va2llc107CisgICAgX19ibG9jayBib29s
IGZsdXNoZWQgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0
b3JlLmh0dHBDb29raWVTdG9yZSBfZmx1c2hDb29raWVzVG9EaXNrV2l0aENvbXBsZXRpb25IYW5k
bGVyOl57CisgICAgICAgIGZsdXNoZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZmx1c2hlZCk7CiAKICAgICAvLyBGb3JjaWJseSBzaHV0IGRvd24gZXZl
cnl0aGluZyBvZiBXZWJLaXQgdGhhdCB3ZSBjYW4uCiAgICAgYXV0byBwaWQgPSBbd2ViVmlldyBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdOwo=
</data>
<flag name="review"
          id="424234"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>