<?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>236132</bug_id>
          
          <creation_ts>2022-02-04 02:14:36 -0800</creation_ts>
          <short_desc>LibWebRTCCodecs SharedVideoFrameWriters can deadlock in case of GPUProcess crash</short_desc>
          <delta_ts>2022-02-08 09:17:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1837318</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-04 02:14:36 -0800</bug_when>
    <thetext>LibWebRTCCodecs SharedVideoFrameWriters can deadlock in case of GPUProcess crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837323</commentid>
    <comment_count>1</comment_count>
      <attachid>450883</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-04 03:52:04 -0800</bug_when>
    <thetext>Created attachment 450883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837456</commentid>
    <comment_count>2</comment_count>
      <attachid>450883</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-04 09:16:32 -0800</bug_when>
    <thetext>Comment on attachment 450883
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        To prevent this, whenever we detect a GPUProcess connection, we disable SharedVideoFrameWriters, which has the effect of

Do you mean whenever we detect a GPUProcess *crash*?

&gt; Source/WebKit/WebProcess/GPU/webrtc/SharedVideoFrame.cpp:45
&gt; +    fprintf(stderr, &quot;SharedVideoFrameWriter::wait\n&quot;);

Oops!

&gt; LayoutTests/webrtc/vp8-then-h264-gpu-process-crash.html:91
&gt; +}, &quot;Frames should be coming event after gpu process crash&quot;);

a/event/even/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838594</commentid>
    <comment_count>3</comment_count>
      <attachid>451231</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-08 03:14:36 -0800</bug_when>
    <thetext>Created attachment 451231
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838602</commentid>
    <comment_count>4</comment_count>
      <attachid>451232</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-08 03:49:05 -0800</bug_when>
    <thetext>Created attachment 451232
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838615</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-08 04:27:56 -0800</bug_when>
    <thetext>Patch 451231 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838619</commentid>
    <comment_count>6</comment_count>
      <attachid>451236</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-08 04:40:01 -0800</bug_when>
    <thetext>Created attachment 451236
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838711</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-08 09:16:07 -0800</bug_when>
    <thetext>Committed r289381 (246969@main): &lt;https://commits.webkit.org/246969@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451236.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838714</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-08 09:17:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88633294&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450883</attachid>
            <date>2022-02-04 03:52:04 -0800</date>
            <delta_ts>2022-02-08 03:14:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236132-20220204125201.patch</filename>
            <type>text/plain</type>
            <size>21633</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3NTkxZTM0OWQ1OTc5M2Ri
NjFmZGY0NjQxMjM3YjIxZWNmNmY0NTAuLjZiODQwNTgzNmJkMzY0NzcyNWE5MjQ1NzVmOWZiNzBh
MmQ4ZGJkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDItMDQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIExpYldlYlJUQ0NvZGVjcyBTaGFy
ZWRWaWRlb0ZyYW1lV3JpdGVycyBjYW4gZGVhZGxvY2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNzIGNy
YXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYx
MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHNlbmRpbmcgc2FtcGVscyB0aHJvdWdoIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXJzLCB3ZSBtaWdo
dCBsb2NrIG9uIGEgYmluYXJ5IHNlbWFwaG9yZSBjb250cm9sbGVkIGJ5IEdQVVByb2Nlc3MuCisg
ICAgICAgIEl0IGlzIG5vdCBhbHdheXMgdGhlIGNhc2UgdGhhdCB0aGUgc2VtYXBob3JlIHdpbGwg
dW5ibG9jayBpbiBjYXNlIG9mIEdQVVByb2Nlc3MgY3Jhc2ggZm9yIGluc3RhbmNlLgorICAgICAg
ICBUbyBwcmV2ZW50IHRoaXMsIHdoZW5ldmVyIHdlIGRldGVjdCBhIEdQVVByb2Nlc3MgY29ubmVj
dGlvbiwgd2UgZGlzYWJsZSBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVycywgd2hpY2ggaGFzIHRoZSBl
ZmZlY3Qgb2YKKyAgICAgICAgZGlzYWJsaW5nIHNlbWFwaG9yZSB3YWl0IGZvciBmdXR1cmUgY2Fs
bCBhbmQgdW5sb2NraW5nIGFueSBjdXJyZW50IHdhaXQgYnkgY2FsbGluZyBzZW1hcGhvcmUuc2ln
bmFsLgorICAgICAgICBUaGVuLCB0aGUgU2hhcmVkVmlkZW9GcmFtZVdyaXRlciBpcyByZWNyZWF0
ZWQgYXMgbmVlZGVkIGJ5IG93bmVyIGNsYXNzZXMgc3VjaCBhcyBMaWJXZWJSVENDb2RlY3Mgb3Ig
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLgorCisgICAgICAgIEluIHRoZSBjYXNlIG9mIExpYldl
YlJUQ0NvZGVjcywgd2UgZnVydGhlciByZWR1Y2UgbG9ja2luZyBjYXNlcyBieSBpbnRyb2R1Y2lu
ZyBhIGxvY2sgZGVkaWNhdGVkIHRvIGVuY29kZXJzLgorICAgICAgICBQcmV2aW91c2x5LCB0aGUg
bG9jayBmb3IgZW5jb2RlcnMgd2FzIGFsc28gZW5jb21wYXNzaW5nIHRoZSBjb2RlY3MgY29ubmVj
dGlvbiBhbmQgdGhlIGRlY29kZXJzLgorCisgICAgICAgIFRlc3Q6IHdlYnJ0Yy92cDgtdGhlbi1o
MjY0LWdwdS1wcm9jZXNzLWNyYXNoLmh0bWwKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVk
aWFSZWNvcmRlclByaXZhdGUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9N
ZWRpYVJlY29yZGVyUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9T
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2hhcmVkVmlkZW9GcmFtZS5oOgorCiAyMDIyLTAyLTAzICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyIGNvdWxkIGRp
cmVjdGx5IHRha2UgYSBJUENIYW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmluZGV4IGFlMjJkODkzNzM0ZmM1
MWY5NjhmNzQ3ZjdlZGRiMTcxYjk4YTBkYTIuLmYyMGQwNzRmM2E2ZDQ5NDA0NDc4NjFhMzQyYjQx
OWRjZGRmMjg5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtMzc5LDExICszNzksMTUgQEAgTGliV2Vi
UlRDQ29kZWNzOjpFbmNvZGVyKiBMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZUVuY29kZXIoVHlwZSB0
eXBlLCBjb25zdCBzdGQ6Om0KICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoc3RkOjptYWtlX3Bh
aXIoU3RyaW5nOjpmcm9tVVRGOChrZXlWYWx1ZS5maXJzdC5kYXRhKCksIGtleVZhbHVlLmZpcnN0
Lmxlbmd0aCgpKSwgU3RyaW5nOjpmcm9tVVRGOChrZXlWYWx1ZS5zZWNvbmQuZGF0YSgpLCBrZXlW
YWx1ZS5zZWNvbmQubGVuZ3RoKCkpKSk7CiAKICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bkFuZERpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGVuY29kZXIgPSBXVEZNb3ZlKGVuY29kZXIpLCB0
eXBlLCBwYXJhbWV0ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKV0oKSBtdXRhYmxlIHsKLSAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fY29ubmVjdGlvbkxvY2sgfTsKLSAgICAgICAgZW5jb2Rlci0+
Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbjsKKyAgICAgICAgeworICAgICAgICAgICAgTG9ja2Vy
IGxvY2tlciB7IG1fY29ubmVjdGlvbkxvY2sgfTsKKyAgICAgICAgICAgIGVuY29kZXItPmNvbm5l
Y3Rpb24gPSBtX2Nvbm5lY3Rpb247CisgICAgICAgIH0KKwogICAgICAgICBlbmNvZGVyLT5jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6Q3JlYXRlRW5jb2Rl
ciB7IGVuY29kZXItPmlkZW50aWZpZXIsIGZvcm1hdE5hbWVGcm9tQ29kZWNUeXBlKHR5cGUpLCBw
YXJhbWV0ZXJzLCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJU
Q0gyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWQoKSB9LCAwKTsKICAgICAgICAgZW5jb2Rlci0+
cGFyYW1ldGVycyA9IFdURk1vdmUocGFyYW1ldGVycyk7CiAKKyAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IG1fZW5jb2RlcnNMb2NrIH07CiAgICAgICAgIGF1dG8gZW5jb2RlcklkZW50aWZpZXIgPSBl
bmNvZGVyLT5pZGVudGlmaWVyOwogICAgICAgICBBU1NFUlQoIW1fZW5jb2RlcnMuY29udGFpbnMo
ZW5jb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgbV9lbmNvZGVycy5hZGQoZW5jb2RlcklkZW50
aWZpZXIsIFdURk1vdmUoZW5jb2RlcikpOwpAQCAtNDAwLDYgKzQwNCw3IEBAIGludDMyX3QgTGli
V2ViUlRDQ29kZWNzOjpyZWxlYXNlRW5jb2RlcihFbmNvZGVyJiBlbmNvZGVyKQogICAgIH0KICNl
bmRpZgogICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZChb
dGhpcywgZW5jb2RlcklkZW50aWZpZXIgPSBlbmNvZGVyLmlkZW50aWZpZXJdIHsKKyAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fZW5jb2RlcnNMb2NrIH07CiAgICAgICAgIEFTU0VSVChtX2VuY29k
ZXJzLmNvbnRhaW5zKGVuY29kZXJJZGVudGlmaWVyKSk7CiAgICAgICAgIGF1dG8gZW5jb2RlciA9
IG1fZW5jb2RlcnMudGFrZShlbmNvZGVySWRlbnRpZmllcik7CiAgICAgICAgIGVuY29kZXItPmNv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpSZWxlYXNlRW5j
b2RlciB7IGVuY29kZXJJZGVudGlmaWVyIH0sIDApOwpAQCAtNDE4LDI2ICs0MjMsMTggQEAgaW50
MzJfdCBMaWJXZWJSVENDb2RlY3M6OmluaXRpYWxpemVFbmNvZGVyKEVuY29kZXImIGVuY29kZXIs
IHVpbnQxNl90IHdpZHRoLCB1aW4KICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBMaWJXZWJSVEND
b2RlY3M6OmNvcHlTaGFyZWRWaWRlb0ZyYW1lKEVuY29kZXImIGVuY29kZXIsIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIpCit0ZW1wbGF0ZTx0eXBlbmFtZSBCdWZmZXI+Citib29sIGNvcHlT
aGFyZWRWaWRlb0ZyYW1lKExpYldlYlJUQ0NvZGVjczo6RW5jb2RlciYgZW5jb2RlciwgQnVmZmVy
JiYgZnJhbWVCdWZmZXIpCiB7Ci0gICAgcmV0dXJuIGVuY29kZXIuc2hhcmVkVmlkZW9GcmFtZVdy
aXRlci53cml0ZShwaXhlbEJ1ZmZlciwKLSAgICAgICAgWyZlbmNvZGVyXShhdXRvJiBzZW1hcGhv
cmUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQ
cm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZSB7IGVuY29kZXIuaWRlbnRpZmllciwg
c2VtYXBob3JlIH0sIDApOyB9LAotICAgICAgICBbJmVuY29kZXJdKGF1dG8mIGhhbmRsZSkgeyBl
bmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpT
ZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5IHsgZW5jb2Rlci5pZGVudGlmaWVyLCBoYW5kbGUgfSwg
MCk7IH0KLSAgICApOwotfQotCi1ib29sIExpYldlYlJUQ0NvZGVjczo6Y29weVNoYXJlZFZpZGVv
RnJhbWUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSkK
LXsKLSAgICByZXR1cm4gZW5jb2Rlci5zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndyaXRlKGZyYW1l
LAotICAgICAgICBbJmVuY29kZXJdKGF1dG8mIHNlbWFwaG9yZSkgeyBlbmNvZGVyLmNvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpTZXRTaGFyZWRWaWRlb0Zy
YW1lU2VtYXBob3JlIHsgZW5jb2Rlci5pZGVudGlmaWVyLCBzZW1hcGhvcmUgfSwgMCk7IH0sCi0g
ICAgICAgIFsmZW5jb2Rlcl0oYXV0byYgaGFuZGxlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVNZW1v
cnkgeyBlbmNvZGVyLmlkZW50aWZpZXIsIGhhbmRsZSB9LCAwKTsgfQorICAgIHJldHVybiBlbmNv
ZGVyLnNoYXJlZFZpZGVvRnJhbWVXcml0ZXIud3JpdGUoZnJhbWVCdWZmZXIsCisgICAgICAgIFsm
XShhdXRvJiBzZW1hcGhvcmUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpM
aWJXZWJSVENDb2RlY3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZVNlbWFwaG9yZSB7IGVuY29k
ZXIuaWRlbnRpZmllciwgc2VtYXBob3JlIH0sIDApOyB9LAorICAgICAgICBbJl0oYXV0byYgaGFu
ZGxlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
UHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVNZW1vcnkgeyBlbmNvZGVyLmlkZW50aWZpZXIsIGhh
bmRsZSB9LCAwKTsgfQogICAgICk7CiB9CiAKIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjplbmNv
ZGVGcmFtZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1l
LCBib29sIHNob3VsZEVuY29kZUFzS2V5RnJhbWUpCiB7Ci0gICAgTG9ja2VyIGxvY2tlciB7IG1f
Y29ubmVjdGlvbkxvY2sgfTsKLQorICAgIExvY2tlciBsb2NrZXIgeyBtX2VuY29kZXJzTG9jayB9
OwogICAgIGlmICghZW5jb2Rlci5jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gV0VCUlRDX1ZJ
REVPX0NPREVDX0VSUk9SOwogCkBAIC00NjcsNyArNDY0LDcgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3M6OnJlZ2lzdGVyRW5jb2RlRnJhbWVDYWxsYmFjayhFbmNvZGVyJiBlbmNvZGVyLCB2b2lkKiBl
bmNvZGUKIAogdm9pZCBMaWJXZWJSVENDb2RlY3M6OnNldEVuY29kZVJhdGVzKEVuY29kZXImIGVu
Y29kZXIsIHVpbnQzMl90IGJpdFJhdGUsIHVpbnQzMl90IGZyYW1lUmF0ZSkKIHsKLSAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9jb25uZWN0aW9uTG9jayB9OworICAgIExvY2tlciBsb2NrZXIgeyBtX2Vu
Y29kZXJzTG9jayB9OwogCiAgICAgaWYgKCFlbmNvZGVyLmNvbm5lY3Rpb24pIHsKICAgICAgICAg
Y2FsbE9uTWFpblJ1bkxvb3AoW2VuY29kZXJJZGVudGlmaWVyID0gZW5jb2Rlci5pZGVudGlmaWVy
LCBiaXRSYXRlLCBmcmFtZVJhdGVdIHsKQEAgLTUyNywyMCArNTI0LDIzIEBAIHZvaWQgTGliV2Vi
UlRDQ29kZWNzOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0
aW9uJikKICAgICAgICAgcmV0dXJuOwogCiAgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25P
bk1haW5UaHJlYWRXaXRoTG9jaygpOwotICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXNdKCkgewot
ICAgICAgICAvLyBMb2NrIGV2ZXJ5dGhpbmcgc28gdGhhdCB3ZSBjYW4gdXBkYXRlIGVuY29kZXIv
ZGVjb2RlciBjb25uZWN0aW9uLgotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jb25uZWN0aW9u
TG9jayB9OwotICAgICAgICAvLyBSZWNyZWF0ZSBlbmNvZGVycyBhbmQgaW5pdGlhbGl6ZSB0aGVt
LCByZWNyZWF0ZSBkZWNvZGVycy4KKyAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBjb25uZWN0
aW9uID0gbV9jb25uZWN0aW9uXSgpIHsKKyAgICAgICAgZm9yIChhdXRvJiBkZWNvZGVyIDogbV9k
ZWNvZGVycy52YWx1ZXMoKSkgeworICAgICAgICAgICAgY3JlYXRlUmVtb3RlRGVjb2RlcigqZGVj
b2RlciwgKmNvbm5lY3Rpb24pOworICAgICAgICAgICAgZGVjb2Rlci0+Y29ubmVjdGlvbiA9IGNv
bm5lY3Rpb24uZ2V0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbiBjYXNlIHdlIGFyZSB3
YWl0aW5nIGZvciBHUFVQcm9jZXNzLCBsZXQncyBlbmQgdGhlIHdhaXQgdG8gbm90IGRlYWRsb2Nr
LgorICAgICAgICBmb3IgKGF1dG8mIGVuY29kZXIgOiBtX2VuY29kZXJzLnZhbHVlcygpKQorICAg
ICAgICAgICAgZW5jb2Rlci0+c2hhcmVkVmlkZW9GcmFtZVdyaXRlci5kaXNhYmxlKCk7CisKKyAg
ICAgICAgTG9ja2VyIGxvY2tlciB7IG1fZW5jb2RlcnNMb2NrIH07CiAgICAgICAgIGZvciAoYXV0
byYgZW5jb2RlciA6IG1fZW5jb2RlcnMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkNyZWF0ZUVuY29kZXIg
eyBlbmNvZGVyLT5pZGVudGlmaWVyLCBmb3JtYXROYW1lRnJvbVdlYlJUQ0NvZGVjVHlwZShlbmNv
ZGVyLT5jb2RlY1R5cGUpLCBlbmNvZGVyLT5wYXJhbWV0ZXJzLCBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dMYXRlbmN5RW5jb2RlckVuYWJsZWQo
KSB9LCAwKTsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJU
Q0NvZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVyIHsgZW5jb2Rlci0+aWRlbnRpZmllciwgZm9ybWF0
TmFtZUZyb21XZWJSVENDb2RlY1R5cGUoZW5jb2Rlci0+Y29kZWNUeXBlKSwgZW5jb2Rlci0+cGFy
YW1ldGVycywgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJSVENI
MjY0TG93TGF0ZW5jeUVuY29kZXJFbmFibGVkKCkgfSwgMCk7CiAgICAgICAgICAgICBpZiAoZW5j
b2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhKQotICAgICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkluaXRpYWxpemVFbmNvZGVyIHsg
ZW5jb2Rlci0+aWRlbnRpZmllciwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT53aWR0aCwg
ZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5oZWlnaHQsIGVuY29kZXItPmluaXRpYWxpemF0
aW9uRGF0YS0+c3RhcnRCaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPm1heEJp
dFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWluQml0UmF0ZSwgZW5jb2Rlci0+
aW5pdGlhbGl6YXRpb25EYXRhLT5tYXhGcmFtZVJhdGUgfSwgMCk7CisgICAgICAgICAgICAgICAg
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OkluaXRpYWxp
emVFbmNvZGVyIHsgZW5jb2Rlci0+aWRlbnRpZmllciwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25E
YXRhLT53aWR0aCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5oZWlnaHQsIGVuY29kZXIt
PmluaXRpYWxpemF0aW9uRGF0YS0+c3RhcnRCaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFsaXphdGlv
bkRhdGEtPm1heEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWluQml0UmF0
ZSwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5tYXhGcmFtZVJhdGUgfSwgMCk7CisgICAg
ICAgICAgICBlbmNvZGVyLT5jb25uZWN0aW9uID0gY29ubmVjdGlvbi5nZXQoKTsKICAgICAgICAg
ICAgIGVuY29kZXItPnNoYXJlZFZpZGVvRnJhbWVXcml0ZXIgPSB7IH07Ci0gICAgICAgICAgICBl
bmNvZGVyLT5jb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLmdldCgpOwotICAgICAgICB9Ci0gICAg
ICAgIGZvciAoYXV0byYgZGVjb2RlciA6IG1fZGVjb2RlcnMudmFsdWVzKCkpIHsKLSAgICAgICAg
ICAgIGNyZWF0ZVJlbW90ZURlY29kZXIoKmRlY29kZXIsICptX2Nvbm5lY3Rpb24pOwotICAgICAg
ICAgICAgZGVjb2Rlci0+Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbi5nZXQoKTsKICAgICAgICAg
fQogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTGliV2ViUlRDQ29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuaAppbmRleCA1NjkxZTM4Mzc3NDE2Nzg1YTdkNDEyNGFkMTQ0
OTQwZTc3OGIyYmY5Li5hMDE3ZGU4Yjg0NTQxZGM2YzliMzdmZDI1YjM1N2MwMDk4YjIyYzEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuaApAQCAtMTM4LDEzICsxMzgsMTEgQEAgcHJpdmF0ZToKICAgICAvLyBHUFVQcm9j
ZXNzQ29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENs
b3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJik7CiAKLSAgICBib29sIGNvcHlTaGFyZWRWaWRlb0Zy
YW1lKEVuY29kZXImLCBDVlBpeGVsQnVmZmVyUmVmKTsKLSAgICBib29sIGNvcHlTaGFyZWRWaWRl
b0ZyYW1lKEVuY29kZXImLCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmKTsKLQogcHJpdmF0ZToK
ICAgICBIYXNoTWFwPFJUQ0RlY29kZXJJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rl
cj4+IG1fZGVjb2RlcnM7CiAgICAgSGFzaFNldDxSVENEZWNvZGVySWRlbnRpZmllcj4gbV9kZWNv
ZGluZ0Vycm9yczsKIAorICAgIExvY2sgbV9lbmNvZGVyc0xvY2s7CiAgICAgSGFzaE1hcDxSVENF
bmNvZGVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+PiBtX2VuY29kZXJzOwog
CiAgICAgc3RkOjphdG9taWM8Ym9vbD4gbV9uZWVkc0dQVVByb2Nlc3NDb25uZWN0aW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByaXZhdGUuY3BwCmluZGV4IDVlYmUxMDhmMjM2NDBkM2E3ZGZlZDMwYTVjNWVhNTc3
MDU0OTkxNGUuLjRmNzdmMzZlNzE3MjQ1OGUxZmRmY2Y5MjEzNjYzNmU2YzNkYTJmZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgTWVkaWFSZWNvcmRlclByaXZh
dGU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtLCBjb25z
dCBNZWQKICAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQogICAgICwgbV9oYXNWaWRlbyhzdHJlYW0u
aGFzVmlkZW8oKSkKIHsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpLmFkZENsaWVudCgqdGhpcyk7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGU6OnN0YXJ0UmVjb3JkaW5nKFN0YXJ0UmVjb3JkaW5nQ2FsbGJhY2smJiBjYWxsYmFj
aykKQEAgLTg3LDYgKzg4LDcgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c3RhcnRSZWNv
cmRpbmcoU3RhcnRSZWNvcmRpbmdDYWxsYmFjayYmIGNhbGxiYWNrKQogTWVkaWFSZWNvcmRlclBy
aXZhdGU6On5NZWRpYVJlY29yZGVyUHJpdmF0ZSgpCiB7CiAgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjo6UmVsZWFzZVJlY29yZGVyIHsg
bV9pZGVudGlmaWVyIH0sIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uKCkucmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBs
ZSwgVmlkZW9TYW1wbGVNZXRhZGF0YSkKQEAgLTE3Niw2ICsxNzgsNyBAQCB2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlOjpzdG9yYWdlQ2hhbmdlZChTaGFyZWRNZW1vcnkqIHN0b3JhZ2UsIGNvbnN0
IFdlYkNvcmU6Ogogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6ZmV0Y2hEYXRhKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkZyYWdtZW50ZWRTaGFyZWRCdWZmZXI+JiYs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGRvdWJsZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUmVjb3JkZXI6OkZldGNoRGF0YSB7IH0sIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpLCBtaW1lVHlwZSA9IG1pbWVUeXBlKCldKGF1dG8mJiBkYXRhLCBk
b3VibGUgdGltZUNvZGUpIG11dGFibGUgeworICAgICAgICAvLyBGSVhNRTogSWYgY29tcGxldGlv
biBoYW5kbGVyIGlzIGNhbGxlZCBmb2xsb3dpbmcgYSBHUFVQcm9jZXNzIGNvbm5lY3Rpb24gYmVp
bmcgY2xvc2VkLCB3ZSBzaG91bGQgZmFpbCB0aGUgTWVkaWFSZWNvcmRlci4KICAgICAgICAgUmVm
UHRyPEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKICAgICAgICAgaWYgKGRhdGEuc2l6
ZSgpKQogICAgICAgICAgICAgYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YS5kYXRh
KCksIGRhdGEuc2l6ZSgpKTsKQEAgLTIwNiw2ICsyMDksMTEgQEAgY29uc3QgU3RyaW5nJiBNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6bWltZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBtX2hhc1ZpZGVv
ID8gdmlkZW9NUDQgOiBhdWRpb01QNDsKIH0KIAordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpCit7Cisg
ICAgbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLmRpc2FibGUoKTsKK30KKwogfQogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L01lZGlhUmVjb3JkZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCmluZGV4IGMyYmFkYzljYjM5YjFlZDg2OTQ0Zjkw
M2Y1ZDkzZjBkOWFhZGRjMTYuLjRkN2E1ZjViOTVhZjgyNzNiY2VhYTNkYTRiMDA2ZTY1ZTc4Nzg2
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlh
UmVjb3JkZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgTWVkaWFSZWNvcmRlclByaXZhdGUgZmluYWwKICAgICA6IHB1YmxpYyBX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZQotICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRy
PE1lZGlhUmVjb3JkZXJQcml2YXRlPiB7CisgICAgLCBwdWJsaWMgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b246OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
TWVkaWFSZWNvcmRlclByaXZhdGUoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJiwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zJik7CkBAIC02NSw2ICs2NSw5IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBwYXVzZVJlY29yZGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOwogICAgIHZvaWQgcmVzdW1lUmVjb3JkaW5nKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJikgZmluYWw7CiAKKyAgICAvLyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50
CisgICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0
aW9uJikgZmluYWw7CisKICAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSosIGNv
bnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZm9ybWF0LCBzaXplX3QgZnJh
bWVDb3VudCk7CiAgICAgYm9vbCBjb3B5U2hhcmVkVmlkZW9GcmFtZShDVlBpeGVsQnVmZmVyUmVm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKaW5kZXggMjE5YTU1ZGYxYzI5ZmQx
YzZmOTMzNjExYTI5MjViNWMzYzA2ZTE3MC4uZTVlZjQ2ZTYwODIzOTQ2MmFhNDA0OGNiN2QzZmEw
MzQyZTk4YjU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCkBAIC0xNzAsNiAr
MTcwLDcgQEAgdm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OnNldERpZEZhaWwoYm9vbCB2
YWx1ZSkKIAogdm9pZCBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmdwdVByb2Nlc3NDb25uZWN0
aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQogeworICAgIG1fc2hhcmVkVmlkZW9G
cmFtZVdyaXRlci5kaXNhYmxlKCk7CiAgICAgbV9kaWRGYWlsID0gdHJ1ZTsKICAgICBpZiAobV9j
bGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJTdGF0dXNE
aWRGYWlsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCmluZGV4IDI5NGE5NDg1NjE3NjljZjYzZDFhYmFhMjYx
ODRjMDczZmY1YTU1MjUuLjk2ZjNkODVlNDAyNjdhZmQzY2VhN2NjNGU4NTZiMTEwOTQ3N2M3NTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZp
ZGVvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1No
YXJlZFZpZGVvRnJhbWUuY3BwCkBAIC0zNSwxNCArMzUsMjAgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK1NoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OlNo
YXJlZFZpZGVvRnJhbWVXcml0ZXIoKQorICAgIDogbV9zZW1hcGhvcmUobWFrZVVuaXF1ZVJlZjxJ
UEM6OlNlbWFwaG9yZT4oKSkKK3sKK30KKwogYm9vbCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjp3
YWl0KGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mIG5ld1NlbWFwaG9yZUNh
bGxiYWNrKQogewotICAgIGlmICghbV9zZW1hcGhvcmUpIHsKLSAgICAgICAgbV9zZW1hcGhvcmUg
PSBtYWtlVW5pcXVlPElQQzo6U2VtYXBob3JlPigpOwotICAgICAgICBuZXdTZW1hcGhvcmVDYWxs
YmFjaygqbV9zZW1hcGhvcmUpOworICAgIGZwcmludGYoc3RkZXJyLCAiU2hhcmVkVmlkZW9GcmFt
ZVdyaXRlcjo6d2FpdFxuIik7CisgICAgaWYgKCFtX2lzU2VtYXBob3JlSW5Vc2UpIHsKKyAgICAg
ICAgbV9pc1NlbWFwaG9yZUluVXNlID0gdHJ1ZTsKKyAgICAgICAgbmV3U2VtYXBob3JlQ2FsbGJh
Y2sobV9zZW1hcGhvcmUuZ2V0KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAg
cmV0dXJuIG1fc2VtYXBob3JlLT53YWl0KCk7CisgICAgcmV0dXJuICFtX2lzRGlzYWJsZWQgJiYg
bV9zZW1hcGhvcmUtPndhaXQoKTsKIH0KIAogYm9vbCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjph
bGxvY2F0ZVN0b3JhZ2Uoc2l6ZV90IHNpemUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hh
cmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mIG5ld01lbW9yeUNhbGxiYWNrKQpAQCAtOTUsNiArMTAx
LDEyIEBAIGJvb2wgU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6d3JpdGUoY29uc3Qgd2VicnRjOjpW
aWRlb0ZyYW1lJiBmcmFtZSwgY29uc3QgRnVuY3RpCiB9CiAjZW5kaWYKIAordm9pZCBTaGFyZWRW
aWRlb0ZyYW1lV3JpdGVyOjpkaXNhYmxlKCkKK3sKKyAgICBtX2lzRGlzYWJsZWQgPSB0cnVlOwor
ICAgIG1fc2VtYXBob3JlLT5zaWduYWwoKTsKK30KKwogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoKQogewogICAgIGlmICghbV9zdG9yYWdl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVk
VmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVk
VmlkZW9GcmFtZS5oCmluZGV4IDk4NTUxMmZjNjgwMTI3YWFjNzE3M2ViYjVhMTQxNTA4NjM3ZjAy
MWEuLmRhY2Q5MGJjN2UzNTk0ZDM0MWIzOWZkZWQ3OTYxZmI0NDA4NWY0NmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1l
LmgKQEAgLTQ4LDIwICs0OCwyMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFNoYXJlZFZp
ZGVvRnJhbWVXcml0ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXIoKSA9IGRlZmF1bHQ7CisgICAgU2hhcmVkVmlkZW9G
cmFtZVdyaXRlcigpOwogCiAgICAgYm9vbCB3cml0ZShDVlBpeGVsQnVmZmVyUmVmLCBjb25zdCBG
dW5jdGlvbjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25z
dCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAg
Ym9vbCB3cml0ZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmLCBjb25zdCBGdW5jdGlvbjx2b2lk
KElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1v
cnk6OklQQ0hhbmRsZSYpPiYpOwogI2VuZGlmCisgICAgdm9pZCBkaXNhYmxlKCk7CiAKIHByaXZh
dGU6CiAgICAgYm9vbCB3YWl0KGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4m
KTsKICAgICBib29sIGFsbG9jYXRlU3RvcmFnZShzaXplX3QsIGNvbnN0IEZ1bmN0aW9uPHZvaWQo
Y29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKICAgICBib29sIHByZXBhcmVXcml0
aW5nKGNvbnN0IFdlYkNvcmU6OlNoYXJlZFZpZGVvRnJhbWVJbmZvJiwgY29uc3QgRnVuY3Rpb248
dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVk
TWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OlNlbWFw
aG9yZT4gbV9zZW1hcGhvcmU7CisgICAgVW5pcXVlUmVmPElQQzo6U2VtYXBob3JlPiBtX3NlbWFw
aG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX3N0b3JhZ2U7CisgICAgYm9vbCBtX2lz
U2VtYXBob3JlSW5Vc2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0Rpc2FibGVkIHsgZmFsc2Ug
fTsKIH07CiAKIGNsYXNzIFNoYXJlZFZpZGVvRnJhbWVSZWFkZXIgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhNTJiZDI2
MGJkNjIzZDZkNTRjNGU1YTJlYmMyNzI1OWY1YmE4NzUuLjYwMDNhNzhjOTNhNWFhZTU4OWIwMzBj
NDRlNzY2MmM1NjBjY2VjYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMi0wNCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTGliV2ViUlRDQ29kZWNz
IFNoYXJlZFZpZGVvRnJhbWVXcml0ZXJzIGNhbiBkZWFkbG9jayBpbiBjYXNlIG9mIEdQVVByb2Nl
c3MgY3Jhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2VicnRjL3ZwOC10aGVuLWgyNjQtZ3B1LXByb2Nlc3MtY3Jhc2gtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC5o
dG1sOiBBZGRlZC4KKwogMjAyMi0wMi0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2Egc2hvdWxkIG5v
dCBuZWVkIHRvIGNyZWF0ZSBJT1N1cmZhY2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJy
dGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTIyMWY3ODRlOTBiYWFiMTIyNWY4ZGMwYTQzNjQxNDQ3OTU1OWIwMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1wcm9j
ZXNzLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworCitQQVNTIFNldHRpbmcg
dmlkZW8gZXhjaGFuZ2Ugd2l0aCBWUDgKK1BBU1MgU2V0dGluZyBleGNoYW5nZSB3aXRoIEgyNjQg
dXNpbmcgVlA4IGRlY29kZWQgc3RyZWFtIGFzIGlucHV0CitQQVNTIEZyYW1lcyBzaG91bGQgYmUg
Y29taW5nIGV2ZW50IGFmdGVyIGdwdSBwcm9jZXNzIGNyYXNoCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1wcm9jZXNzLWNyYXNoLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJjMDRjNzc3NThhOTFmNjU4MjkxZGE2ZDkxZjE0OTcyZGU1YjA5NTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1j
cmFzaC5odG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlRl
c3RpbmcgR1BVIHByb2Nlc3MgY3Jhc2g8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFk
PgorICAgIDxib2R5PgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvMSIgYXV0b3BsYXkgcGxheXNJ
bmxpbmUgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDx2aWRlbyBp
ZD0idmlkZW8yIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+
PC92aWRlbz4KKyAgICAgICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQ+Cit2YXIgcmVjZWl2aW5nQ29ubmVjdGlvbjsKK3Byb21pc2VfdGVzdCgo
dGVzdCkgPT4geworICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7dmlkZW86IHRydWV9KS50aGVuKChsb2NhbFN0cmVhbSkgPT4geworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgdHJhY2sgPSBs
b2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOworCisgICAgICAgICAgICBjcmVhdGVDb25u
ZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgZmlyc3RDb25u
ZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CisgICAgICAgICAgICAgICAgZmly
c3RDb25uZWN0aW9uLmdldFRyYW5zY2VpdmVycygpWzBdLnNldENvZGVjUHJlZmVyZW5jZXMoW3tt
aW1lVHlwZTogInZpZGVvL1ZQOCIsIGNsb2NrUmF0ZTogOTAwMDB9XSk7CisgICAgICAgICAgICB9
LCAoc2Vjb25kQ29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5l
Y3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAgICAgICAgICAgIHNlY29uZENvbm5lY3Rp
b24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHJlbW90
ZVRyYWNrID0gdHJhY2tFdmVudC50cmFjazsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0
cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIp
LCA1MDAwKTsKKyAgICAgICAgfSk7CisgICAgfSkudGhlbigocmVtb3RlU3RyZWFtKSA9PiB7Cisg
ICAgICAgIHZpZGVvMS5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAgICAgIHJldHVybiB2
aWRlbzEucGxheSgpOworICAgIH0pOworfSwgIlNldHRpbmcgdmlkZW8gZXhjaGFuZ2Ugd2l0aCBW
UDgiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICB2aWRlbzIuc3JjT2JqZWN0
ID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBjcmVh
dGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBmaXJzdENv
bm5lY3Rpb24uYWRkVHJhY2sodmlkZW8xLnNyY09iamVjdC5nZXRWaWRlb1RyYWNrcygpWzBdLCB2
aWRlbzEuc3JjT2JqZWN0KTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAg
ICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAg
ICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAg
ICAgICAgICAgICByZW1vdGVUcmFjayA9IHRyYWNrRXZlbnQudHJhY2s7CisgICAgICAgICAgICAg
ICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgfTsKKyAgICAg
ICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIp
LCA1MDAwKTsKKyAgICB9KTsKKyAgICBhd2FpdCB2aWRlbzIucGxheSgpOworfSwgIlNldHRpbmcg
ZXhjaGFuZ2Ugd2l0aCBIMjY0IHVzaW5nIFZQOCBkZWNvZGVkIHN0cmVhbSBhcyBpbnB1dCIpOwor
Cithc3luYyBmdW5jdGlvbiBnZXRJbmJvdW5kUlRQU3RhdHNOdW1iZXJPZkRlY29kZWRGcmFtZXMo
Y29ubmVjdGlvbikKK3sKKyAgICB2YXIgcmVwb3J0ID0gYXdhaXQgY29ubmVjdGlvbi5nZXRTdGF0
cygpOworICAgIHZhciBmcmFtZXNEZWNvZGVkOworICAgIHJlcG9ydC5mb3JFYWNoKChzdGF0SXRl
bSkgPT4geworICAgICAgICBpZiAoc3RhdEl0ZW0udHlwZSA9PT0gImluYm91bmQtcnRwIikKKyAg
ICAgICAgICAgIGZyYW1lc0RlY29kZWQgPSBzdGF0SXRlbS5mcmFtZXNEZWNvZGVkOworICAgIH0p
OworICAgIHJldHVybiBmcmFtZXNEZWNvZGVkOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0RnJh
bWVEZWNvZGVkSW5jcmVhc2VkKGNvbm5lY3Rpb24sIGNvdW50LCBwcmV2aW91c0ZyYW1lc051bWJl
cikKK3sKKyAgICBpZiAocHJldmlvdXNGcmFtZXNOdW1iZXIgPT09IHVuZGVmaW5lZCkgeworICAg
ICAgICBsZXQgbnVtYmVyID0gYXdhaXQgZ2V0SW5ib3VuZFJUUFN0YXRzTnVtYmVyT2ZEZWNvZGVk
RnJhbWVzKGNvbm5lY3Rpb24pOworICAgICAgICBhd2FpdCB3YWl0Rm9yKDEwMDApOworICAgICAg
ICByZXR1cm4gdGVzdEZyYW1lRGVjb2RlZEluY3JlYXNlZChjb25uZWN0aW9uLCAwLCBudW1iZXIp
OworICAgIH0KKworICAgIHZhciBudW1iZXIgPSBhd2FpdCBnZXRJbmJvdW5kUlRQU3RhdHNOdW1i
ZXJPZkRlY29kZWRGcmFtZXMoY29ubmVjdGlvbik7CisgICAgaWYgKHByZXZpb3VzRnJhbWVzTnVt
YmVyICYmIG51bWJlciA+IHByZXZpb3VzRnJhbWVzTnVtYmVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoY291bnQgPj0gMjApCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgidGVz
dCBpbmNyZWFzaW5nIGZyYW1lIGRlY29kZWQgdGltZWQgb3V0Iik7CisKKyAgICBhd2FpdCB3YWl0
Rm9yKDEwMDApOworICAgIHJldHVybiB0ZXN0RnJhbWVEZWNvZGVkSW5jcmVhc2VkKGNvbm5lY3Rp
b24sICsrY291bnQsIHByZXZpb3VzRnJhbWVzTnVtYmVyKTsKK30KKworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgKHRlc3QpID0+IHsKKyAgICBhd2FpdCB0ZXN0RnJhbWVEZWNvZGVkSW5jcmVhc2VkKHJl
Y2VpdmluZ0Nvbm5lY3Rpb24pOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci50ZXJtaW5hdGVHUFVQcm9jZXNzKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTsKKyAgICBhd2FpdCB0ZXN0RnJh
bWVEZWNvZGVkSW5jcmVhc2VkKHJlY2VpdmluZ0Nvbm5lY3Rpb24pOworfSwgIkZyYW1lcyBzaG91
bGQgYmUgY29taW5nIGV2ZW50IGFmdGVyIGdwdSBwcm9jZXNzIGNyYXNoIik7CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451231</attachid>
            <date>2022-02-08 03:14:36 -0800</date>
            <delta_ts>2022-02-08 04:00:56 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236132-20220208121434.patch</filename>
            <type>text/plain</type>
            <size>21577</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmNDc3YWI4MzZmNmJiNWI5
ZGEwNDk3ZmJjOGM4YmY2NGZkYTdlNDcuLjlhN2VmNzY3YzkxY2RlODM3NWQ1Y2IyMzZhYWQ5OGQ3
NjM1MmI2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDItMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIExpYldlYlJUQ0NvZGVjcyBTaGFy
ZWRWaWRlb0ZyYW1lV3JpdGVycyBjYW4gZGVhZGxvY2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNzIGNy
YXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYx
MzIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgV2hlbiBz
ZW5kaW5nIHNhbXBlbHMgdGhyb3VnaCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVycywgd2UgbWlnaHQg
bG9jayBvbiBhIGJpbmFyeSBzZW1hcGhvcmUgY29udHJvbGxlZCBieSBHUFVQcm9jZXNzLgorICAg
ICAgICBJdCBpcyBub3QgYWx3YXlzIHRoZSBjYXNlIHRoYXQgdGhlIHNlbWFwaG9yZSB3aWxsIHVu
YmxvY2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNzIGNyYXNoIGZvciBpbnN0YW5jZS4KKyAgICAgICAg
VG8gcHJldmVudCB0aGlzLCB3aGVuZXZlciB3ZSBkZXRlY3QgYSBHUFVQcm9jZXNzIGNyYXNoLCB3
ZSBkaXNhYmxlIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXJzLCB3aGljaCBoYXMgdGhlIGVmZmVjdCBv
ZgorICAgICAgICBkaXNhYmxpbmcgc2VtYXBob3JlIHdhaXQgZm9yIGZ1dHVyZSBjYWxsIGFuZCB1
bmxvY2tpbmcgYW55IGN1cnJlbnQgd2FpdCBieSBjYWxsaW5nIHNlbWFwaG9yZS5zaWduYWwuCisg
ICAgICAgIFRoZW4sIHRoZSBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyIGlzIHJlY3JlYXRlZCBhcyBu
ZWVkZWQgYnkgb3duZXIgY2xhc3NlcyBzdWNoIGFzIExpYldlYlJUQ0NvZGVjcyBvciBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgTGliV2ViUlRDQ29k
ZWNzLCB3ZSBmdXJ0aGVyIHJlZHVjZSBsb2NraW5nIGNhc2VzIGJ5IGludHJvZHVjaW5nIGEgbG9j
ayBkZWRpY2F0ZWQgdG8gZW5jb2RlcnMuCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBsb2NrIGZv
ciBlbmNvZGVycyB3YXMgYWxzbyBlbmNvbXBhc3NpbmcgdGhlIGNvZGVjcyBjb25uZWN0aW9uIGFu
ZCB0aGUgZGVjb2RlcnMuCisKKyAgICAgICAgVGVzdDogd2VicnRjL3ZwOC10aGVuLWgyNjQtZ3B1
LXByb2Nlc3MtY3Jhc2guaHRtbAorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldl
YlJUQ0NvZGVjcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1No
YXJlZFZpZGVvRnJhbWUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFy
ZWRWaWRlb0ZyYW1lLmg6CisKIDIwMjItMDItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IHRvIHF1ZXJ5IGNhbWVyYSBhbmQgbWljcm9w
aG9uZSBwZXJtaXNzaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggYWUyMmQ4OTM3MzRmYzUxZjk2OGY3
NDdmN2VkZGIxNzFiOThhMGRhMi4uZjIwZDA3NGYzYTZkNDk0MDQ0Nzg2MWEzNDJiNDE5ZGNkZGYy
ODliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGli
V2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zNzksMTEgKzM3OSwxNSBAQCBMaWJXZWJSVENDb2Rl
Y3M6OkVuY29kZXIqIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRW5jb2RlcihUeXBlIHR5cGUsIGNv
bnN0IHN0ZDo6bQogICAgICAgICBwYXJhbWV0ZXJzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihTdHJp
bmc6OmZyb21VVEY4KGtleVZhbHVlLmZpcnN0LmRhdGEoKSwga2V5VmFsdWUuZmlyc3QubGVuZ3Ro
KCkpLCBTdHJpbmc6OmZyb21VVEY4KGtleVZhbHVlLnNlY29uZC5kYXRhKCksIGtleVZhbHVlLnNl
Y29uZC5sZW5ndGgoKSkpKTsKIAogICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlz
cGF0Y2hUb1RocmVhZChbdGhpcywgZW5jb2RlciA9IFdURk1vdmUoZW5jb2RlciksIHR5cGUsIHBh
cmFtZXRlcnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMpXSgpIG11dGFibGUgewotICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9jb25uZWN0aW9uTG9jayB9OwotICAgICAgICBlbmNvZGVyLT5jb25uZWN0
aW9uID0gbV9jb25uZWN0aW9uOworICAgICAgICB7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9jb25uZWN0aW9uTG9jayB9OworICAgICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbiA9
IG1fY29ubmVjdGlvbjsKKyAgICAgICAgfQorCiAgICAgICAgIGVuY29kZXItPmNvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVyIHsgZW5j
b2Rlci0+aWRlbnRpZmllciwgZm9ybWF0TmFtZUZyb21Db2RlY1R5cGUodHlwZSksIHBhcmFtZXRl
cnMsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExv
d0xhdGVuY3lFbmNvZGVyRW5hYmxlZCgpIH0sIDApOwogICAgICAgICBlbmNvZGVyLT5wYXJhbWV0
ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKTsKIAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9l
bmNvZGVyc0xvY2sgfTsKICAgICAgICAgYXV0byBlbmNvZGVySWRlbnRpZmllciA9IGVuY29kZXIt
PmlkZW50aWZpZXI7CiAgICAgICAgIEFTU0VSVCghbV9lbmNvZGVycy5jb250YWlucyhlbmNvZGVy
SWRlbnRpZmllcikpOwogICAgICAgICBtX2VuY29kZXJzLmFkZChlbmNvZGVySWRlbnRpZmllciwg
V1RGTW92ZShlbmNvZGVyKSk7CkBAIC00MDAsNiArNDA0LDcgQEAgaW50MzJfdCBMaWJXZWJSVEND
b2RlY3M6OnJlbGVhc2VFbmNvZGVyKEVuY29kZXImIGVuY29kZXIpCiAgICAgfQogI2VuZGlmCiAg
ICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBl
bmNvZGVySWRlbnRpZmllciA9IGVuY29kZXIuaWRlbnRpZmllcl0geworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9lbmNvZGVyc0xvY2sgfTsKICAgICAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29u
dGFpbnMoZW5jb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgYXV0byBlbmNvZGVyID0gbV9lbmNv
ZGVycy50YWtlKGVuY29kZXJJZGVudGlmaWVyKTsKICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlJlbGVhc2VFbmNvZGVyIHsg
ZW5jb2RlcklkZW50aWZpZXIgfSwgMCk7CkBAIC00MTgsMjYgKzQyMywxOCBAQCBpbnQzMl90IExp
YldlYlJUQ0NvZGVjczo6aW5pdGlhbGl6ZUVuY29kZXIoRW5jb2RlciYgZW5jb2RlciwgdWludDE2
X3Qgd2lkdGgsIHVpbgogICAgIHJldHVybiAwOwogfQogCi1ib29sIExpYldlYlJUQ0NvZGVjczo6
Y29weVNoYXJlZFZpZGVvRnJhbWUoRW5jb2RlciYgZW5jb2RlciwgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlcikKK3RlbXBsYXRlPHR5cGVuYW1lIEJ1ZmZlcj4KK2Jvb2wgY29weVNoYXJlZFZp
ZGVvRnJhbWUoTGliV2ViUlRDQ29kZWNzOjpFbmNvZGVyJiBlbmNvZGVyLCBCdWZmZXImJiBmcmFt
ZUJ1ZmZlcikKIHsKLSAgICByZXR1cm4gZW5jb2Rlci5zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndy
aXRlKHBpeGVsQnVmZmVyLAotICAgICAgICBbJmVuY29kZXJdKGF1dG8mIHNlbWFwaG9yZSkgeyBl
bmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpT
ZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlIHsgZW5jb2Rlci5pZGVudGlmaWVyLCBzZW1hcGhv
cmUgfSwgMCk7IH0sCi0gICAgICAgIFsmZW5jb2Rlcl0oYXV0byYgaGFuZGxlKSB7IGVuY29kZXIu
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJl
ZFZpZGVvRnJhbWVNZW1vcnkgeyBlbmNvZGVyLmlkZW50aWZpZXIsIGhhbmRsZSB9LCAwKTsgfQot
ICAgICk7Ci19Ci0KLWJvb2wgTGliV2ViUlRDQ29kZWNzOjpjb3B5U2hhcmVkVmlkZW9GcmFtZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lKQotewotICAg
IHJldHVybiBlbmNvZGVyLnNoYXJlZFZpZGVvRnJhbWVXcml0ZXIud3JpdGUoZnJhbWUsCi0gICAg
ICAgIFsmZW5jb2Rlcl0oYXV0byYgc2VtYXBob3JlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1h
cGhvcmUgeyBlbmNvZGVyLmlkZW50aWZpZXIsIHNlbWFwaG9yZSB9LCAwKTsgfSwKLSAgICAgICAg
WyZlbmNvZGVyXShhdXRvJiBoYW5kbGUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGVu
Y29kZXIuaWRlbnRpZmllciwgaGFuZGxlIH0sIDApOyB9CisgICAgcmV0dXJuIGVuY29kZXIuc2hh
cmVkVmlkZW9GcmFtZVdyaXRlci53cml0ZShmcmFtZUJ1ZmZlciwKKyAgICAgICAgWyZdKGF1dG8m
IHNlbWFwaG9yZSkgeyBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJU
Q0NvZGVjc1Byb3h5OjpTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlIHsgZW5jb2Rlci5pZGVu
dGlmaWVyLCBzZW1hcGhvcmUgfSwgMCk7IH0sCisgICAgICAgIFsmXShhdXRvJiBoYW5kbGUpIHsg
ZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6
U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGVuY29kZXIuaWRlbnRpZmllciwgaGFuZGxlIH0s
IDApOyB9CiAgICAgKTsKIH0KIAogaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OmVuY29kZUZyYW1l
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUsIGJvb2wg
c2hvdWxkRW5jb2RlQXNLZXlGcmFtZSkKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9jb25uZWN0
aW9uTG9jayB9OwotCisgICAgTG9ja2VyIGxvY2tlciB7IG1fZW5jb2RlcnNMb2NrIH07CiAgICAg
aWYgKCFlbmNvZGVyLmNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfRVJST1I7CiAKQEAgLTQ2Nyw3ICs0NjQsNyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6cmVn
aXN0ZXJFbmNvZGVGcmFtZUNhbGxiYWNrKEVuY29kZXImIGVuY29kZXIsIHZvaWQqIGVuY29kZQog
CiB2b2lkIExpYldlYlJUQ0NvZGVjczo6c2V0RW5jb2RlUmF0ZXMoRW5jb2RlciYgZW5jb2Rlciwg
dWludDMyX3QgYml0UmF0ZSwgdWludDMyX3QgZnJhbWVSYXRlKQogewotICAgIExvY2tlciBsb2Nr
ZXIgeyBtX2Nvbm5lY3Rpb25Mb2NrIH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZW5jb2RlcnNM
b2NrIH07CiAKICAgICBpZiAoIWVuY29kZXIuY29ubmVjdGlvbikgewogICAgICAgICBjYWxsT25N
YWluUnVuTG9vcChbZW5jb2RlcklkZW50aWZpZXIgPSBlbmNvZGVyLmlkZW50aWZpZXIsIGJpdFJh
dGUsIGZyYW1lUmF0ZV0gewpAQCAtNTI3LDIwICs1MjQsMjMgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3M6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQog
ICAgICAgICByZXR1cm47CiAKICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbk9uTWFpblRo
cmVhZFdpdGhMb2NrKCk7Ci0gICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpc10oKSB7Ci0gICAgICAg
IC8vIExvY2sgZXZlcnl0aGluZyBzbyB0aGF0IHdlIGNhbiB1cGRhdGUgZW5jb2Rlci9kZWNvZGVy
IGNvbm5lY3Rpb24uCi0gICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2Nvbm5lY3Rpb25Mb2NrIH07
Ci0gICAgICAgIC8vIFJlY3JlYXRlIGVuY29kZXJzIGFuZCBpbml0aWFsaXplIHRoZW0sIHJlY3Jl
YXRlIGRlY29kZXJzLgorICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb24gPSBt
X2Nvbm5lY3Rpb25dKCkgeworICAgICAgICBmb3IgKGF1dG8mIGRlY29kZXIgOiBtX2RlY29kZXJz
LnZhbHVlcygpKSB7CisgICAgICAgICAgICBjcmVhdGVSZW1vdGVEZWNvZGVyKCpkZWNvZGVyLCAq
Y29ubmVjdGlvbik7CisgICAgICAgICAgICBkZWNvZGVyLT5jb25uZWN0aW9uID0gY29ubmVjdGlv
bi5nZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEluIGNhc2Ugd2UgYXJlIHdhaXRpbmcg
Zm9yIEdQVVByb2Nlc3MsIGxldCdzIGVuZCB0aGUgd2FpdCB0byBub3QgZGVhZGxvY2suCisgICAg
ICAgIGZvciAoYXV0byYgZW5jb2RlciA6IG1fZW5jb2RlcnMudmFsdWVzKCkpCisgICAgICAgICAg
ICBlbmNvZGVyLT5zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLmRpc2FibGUoKTsKKworICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9lbmNvZGVyc0xvY2sgfTsKICAgICAgICAgZm9yIChhdXRvJiBlbmNv
ZGVyIDogbV9lbmNvZGVycy52YWx1ZXMoKSkgewotICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6Q3JlYXRlRW5jb2RlciB7IGVuY29k
ZXItPmlkZW50aWZpZXIsIGZvcm1hdE5hbWVGcm9tV2ViUlRDQ29kZWNUeXBlKGVuY29kZXItPmNv
ZGVjVHlwZSksIGVuY29kZXItPnBhcmFtZXRlcnMsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZCgpIH0sIDAp
OworICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
UHJveHk6OkNyZWF0ZUVuY29kZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVyLCBmb3JtYXROYW1lRnJv
bVdlYlJUQ0NvZGVjVHlwZShlbmNvZGVyLT5jb2RlY1R5cGUpLCBlbmNvZGVyLT5wYXJhbWV0ZXJz
LCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dM
YXRlbmN5RW5jb2RlckVuYWJsZWQoKSB9LCAwKTsKICAgICAgICAgICAgIGlmIChlbmNvZGVyLT5p
bml0aWFsaXphdGlvbkRhdGEpCi0gICAgICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6SW5pdGlhbGl6ZUVuY29kZXIgeyBlbmNvZGVy
LT5pZGVudGlmaWVyLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPndpZHRoLCBlbmNvZGVy
LT5pbml0aWFsaXphdGlvbkRhdGEtPmhlaWdodCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRh
LT5zdGFydEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4Qml0UmF0ZSwg
ZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5taW5CaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFs
aXphdGlvbkRhdGEtPm1heEZyYW1lUmF0ZSB9LCAwKTsKKyAgICAgICAgICAgICAgICBjb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6SW5pdGlhbGl6ZUVuY29k
ZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVyLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPndp
ZHRoLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPmhlaWdodCwgZW5jb2Rlci0+aW5pdGlh
bGl6YXRpb25EYXRhLT5zdGFydEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+
bWF4Qml0UmF0ZSwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5taW5CaXRSYXRlLCBlbmNv
ZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPm1heEZyYW1lUmF0ZSB9LCAwKTsKKyAgICAgICAgICAg
IGVuY29kZXItPmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uLmdldCgpOwogICAgICAgICAgICAgZW5j
b2Rlci0+c2hhcmVkVmlkZW9GcmFtZVdyaXRlciA9IHsgfTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb24uZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgZm9y
IChhdXRvJiBkZWNvZGVyIDogbV9kZWNvZGVycy52YWx1ZXMoKSkgewotICAgICAgICAgICAgY3Jl
YXRlUmVtb3RlRGVjb2RlcigqZGVjb2RlciwgKm1fY29ubmVjdGlvbik7Ci0gICAgICAgICAgICBk
ZWNvZGVyLT5jb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLmdldCgpOwogICAgICAgICB9CiAgICAg
fSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5oCmluZGV4IDU2OTFlMzgzNzc0MTY3ODVhN2Q0MTI0YWQxNDQ5NDBlNzc4
YjJiZjkuLmEwMTdkZThiODQ1NDFkYzZjOWIzN2ZkMjViMzU3YzAwOThiMjJjMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5oCkBAIC0xMzgsMTMgKzEzOCwxMSBAQCBwcml2YXRlOgogICAgIC8vIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mKTsKIAotICAgIGJvb2wgY29weVNoYXJlZFZpZGVvRnJhbWUoRW5j
b2RlciYsIENWUGl4ZWxCdWZmZXJSZWYpOwotICAgIGJvb2wgY29weVNoYXJlZFZpZGVvRnJhbWUo
RW5jb2RlciYsIGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYpOwotCiBwcml2YXRlOgogICAgIEhh
c2hNYXA8UlRDRGVjb2RlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPj4gbV9k
ZWNvZGVyczsKICAgICBIYXNoU2V0PFJUQ0RlY29kZXJJZGVudGlmaWVyPiBtX2RlY29kaW5nRXJy
b3JzOwogCisgICAgTG9jayBtX2VuY29kZXJzTG9jazsKICAgICBIYXNoTWFwPFJUQ0VuY29kZXJJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4+IG1fZW5jb2RlcnM7CiAKICAgICBz
dGQ6OmF0b21pYzxib29sPiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHAKaW5kZXggNWViZTEwOGYyMzY0MGQzYTdkZmVkMzBhNWM1ZWE1NzcwNTQ5OTE0
ZS4uNGY3N2YzNmU3MTcyNDU4ZTFmZGZjZjkyMTM2NjM2ZTZjM2RhMmZmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmNwcApAQCAtNTQsNiArNTQsNyBAQCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVk
aWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0sIGNvbnN0IE1lZAog
ICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiAgICAgLCBtX2hhc1ZpZGVvKHN0cmVhbS5oYXNWaWRl
bygpKQogeworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6c3RhcnRSZWNvcmRpbmcoU3RhcnRSZWNvcmRpbmdDYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAt
ODcsNiArODgsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdGFydFJlY29yZGluZyhT
dGFydFJlY29yZGluZ0NhbGxiYWNrJiYgY2FsbGJhY2spCiBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
fk1lZGlhUmVjb3JkZXJQcml2YXRlKCkKIHsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpSZWxlYXNlUmVjb3JkZXIgeyBtX2lkZW50
aWZpZXIgfSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBWaWRl
b1NhbXBsZU1ldGFkYXRhKQpAQCAtMTc2LDYgKzE3OCw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSwgY29uc3QgV2ViQ29y
ZTo6CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgZG91YmxlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNv
cmRlcjo6RmV0Y2hEYXRhIHsgfSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIG1pbWVUeXBlID0gbWltZVR5cGUoKV0oYXV0byYmIGRhdGEsIGRvdWJsZSB0
aW1lQ29kZSkgbXV0YWJsZSB7CisgICAgICAgIC8vIEZJWE1FOiBJZiBjb21wbGV0aW9uIGhhbmRs
ZXIgaXMgY2FsbGVkIGZvbGxvd2luZyBhIEdQVVByb2Nlc3MgY29ubmVjdGlvbiBiZWluZyBjbG9z
ZWQsIHdlIHNob3VsZCBmYWlsIHRoZSBNZWRpYVJlY29yZGVyLgogICAgICAgICBSZWZQdHI8RnJh
Z21lbnRlZFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgICAgICBpZiAoZGF0YS5zaXplKCkpCiAg
ICAgICAgICAgICBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0
YS5zaXplKCkpOwpAQCAtMjA2LDYgKzIwOSwxMSBAQCBjb25zdCBTdHJpbmcmIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjptaW1lVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFzVmlkZW8gPyB2aWRl
b01QNCA6IGF1ZGlvTVA0OwogfQogCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpncHVQcm9j
ZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikKK3sKKyAgICBtX3No
YXJlZFZpZGVvRnJhbWVXcml0ZXIuZGlzYWJsZSgpOworfQorCiB9CiAKICNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggYzJiYWRjOWNiMzliMWVkODY5NDRmOTAzZjVkOTNm
MGQ5YWFkZGMxNi4uNGQ3YTVmNWI5NWFmODI3M2JjZWFhM2RhNGIwMDZlNjVlNzg3ODY4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5oCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbAogICAgIDogcHVibGljIFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlCi0gICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+IHsKKyAgICAsIHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xp
ZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBNZWRpYVJl
Y29yZGVyUHJpdmF0ZShXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmKTsKQEAgLTY1LDYgKzY1LDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBhdXNlUmVjb3JkaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
ZmluYWw7CiAgICAgdm9pZCByZXN1bWVSZWNvcmRpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKIAorICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2
b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKSBm
aW5hbDsKKwogICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50
KTsKICAgICBib29sIGNvcHlTaGFyZWRWaWRlb0ZyYW1lKENWUGl4ZWxCdWZmZXJSZWYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCAyMTlhNTVkZjFjMjlmZDFjNmY5MzM2
MTFhMjkyNWI1YzNjMDZlMTcwLi5lNWVmNDZlNjA4MjM5NDYyYWE0MDQ4Y2I3ZDNmYTAzNDJlOThi
NTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTE3MCw2ICsxNzAsNyBA
QCB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0RGlkRmFpbChib29sIHZhbHVlKQog
CiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRD
bG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpCiB7CisgICAgbV9zaGFyZWRWaWRlb0ZyYW1lV3Jp
dGVyLmRpc2FibGUoKTsKICAgICBtX2RpZEZhaWwgPSB0cnVlOwogICAgIGlmIChtX2NsaWVudCkK
ICAgICAgICAgbV9jbGllbnQtPnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0RpZEZhaWwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJl
ZFZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hh
cmVkVmlkZW9GcmFtZS5jcHAKaW5kZXggMjk0YTk0ODU2MTc2OWNmNjNkMWFiYWEyNjE4NGMwNzNm
ZjVhNTUyNS4uOWQzNTNlZmZmZjU2MDE0MjFjMTRkNTI1ZGVlMTFiMDY5M2YyMjhmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlk
ZW9GcmFtZS5jcHAKQEAgLTM1LDE0ICszNSwxOSBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6U2hhcmVkVmlk
ZW9GcmFtZVdyaXRlcigpCisgICAgOiBtX3NlbWFwaG9yZShtYWtlVW5pcXVlUmVmPElQQzo6U2Vt
YXBob3JlPigpKQoreworfQorCiBib29sIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndhaXQoY29u
c3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBob3JlQ2FsbGJhY2sp
CiB7Ci0gICAgaWYgKCFtX3NlbWFwaG9yZSkgewotICAgICAgICBtX3NlbWFwaG9yZSA9IG1ha2VV
bmlxdWU8SVBDOjpTZW1hcGhvcmU+KCk7Ci0gICAgICAgIG5ld1NlbWFwaG9yZUNhbGxiYWNrKCpt
X3NlbWFwaG9yZSk7CisgICAgaWYgKCFtX2lzU2VtYXBob3JlSW5Vc2UpIHsKKyAgICAgICAgbV9p
c1NlbWFwaG9yZUluVXNlID0gdHJ1ZTsKKyAgICAgICAgbmV3U2VtYXBob3JlQ2FsbGJhY2sobV9z
ZW1hcGhvcmUuZ2V0KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJu
IG1fc2VtYXBob3JlLT53YWl0KCk7CisgICAgcmV0dXJuICFtX2lzRGlzYWJsZWQgJiYgbV9zZW1h
cGhvcmUtPndhaXQoKTsKIH0KIAogYm9vbCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjphbGxvY2F0
ZVN0b3JhZ2Uoc2l6ZV90IHNpemUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVt
b3J5OjpJUENIYW5kbGUmKT4mIG5ld01lbW9yeUNhbGxiYWNrKQpAQCAtOTUsNiArMTAwLDEyIEBA
IGJvb2wgU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6d3JpdGUoY29uc3Qgd2VicnRjOjpWaWRlb0Zy
YW1lJiBmcmFtZSwgY29uc3QgRnVuY3RpCiB9CiAjZW5kaWYKIAordm9pZCBTaGFyZWRWaWRlb0Zy
YW1lV3JpdGVyOjpkaXNhYmxlKCkKK3sKKyAgICBtX2lzRGlzYWJsZWQgPSB0cnVlOworICAgIG1f
c2VtYXBob3JlLT5zaWduYWwoKTsKK30KKwogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFNo
YXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoKQogewogICAgIGlmICghbV9zdG9yYWdlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9G
cmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9G
cmFtZS5oCmluZGV4IDk4NTUxMmZjNjgwMTI3YWFjNzE3M2ViYjVhMTQxNTA4NjM3ZjAyMWEuLmRh
Y2Q5MGJjN2UzNTk0ZDM0MWIzOWZkZWQ3OTYxZmI0NDA4NWY0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKQEAg
LTQ4LDIwICs0OCwyMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFNoYXJlZFZpZGVvRnJh
bWVXcml0ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFNo
YXJlZFZpZGVvRnJhbWVXcml0ZXIoKSA9IGRlZmF1bHQ7CisgICAgU2hhcmVkVmlkZW9GcmFtZVdy
aXRlcigpOwogCiAgICAgYm9vbCB3cml0ZShDVlBpeGVsQnVmZmVyUmVmLCBjb25zdCBGdW5jdGlv
bjx2b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFy
ZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgYm9vbCB3
cml0ZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmLCBjb25zdCBGdW5jdGlvbjx2b2lkKElQQzo6
U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRNZW1vcnk6OklQ
Q0hhbmRsZSYpPiYpOwogI2VuZGlmCisgICAgdm9pZCBkaXNhYmxlKCk7CiAKIHByaXZhdGU6CiAg
ICAgYm9vbCB3YWl0KGNvbnN0IEZ1bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mKTsKICAg
ICBib29sIGFsbG9jYXRlU3RvcmFnZShzaXplX3QsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3Qg
U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKT4mKTsKICAgICBib29sIHByZXBhcmVXcml0aW5nKGNv
bnN0IFdlYkNvcmU6OlNoYXJlZFZpZGVvRnJhbWVJbmZvJiwgY29uc3QgRnVuY3Rpb248dm9pZChJ
UEM6OlNlbWFwaG9yZSYpPiYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUmKT4mKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OlNlbWFwaG9yZT4g
bV9zZW1hcGhvcmU7CisgICAgVW5pcXVlUmVmPElQQzo6U2VtYXBob3JlPiBtX3NlbWFwaG9yZTsK
ICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX3N0b3JhZ2U7CisgICAgYm9vbCBtX2lzU2VtYXBo
b3JlSW5Vc2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0Rpc2FibGVkIHsgZmFsc2UgfTsKIH07
CiAKIGNsYXNzIFNoYXJlZFZpZGVvRnJhbWVSZWFkZXIgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYwMDNhNzhjOTNhNWFh
ZTU4OWIwMzBjNDRlNzY2MmM1NjBjY2VjYmYuLjg4MmY0NTBlNzA1Y2FiYjVjYjY0NjQwNzgxNzFh
MWYyZjUwMmI2YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMi0wOCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTGliV2ViUlRDQ29kZWNzIFNoYXJl
ZFZpZGVvRnJhbWVXcml0ZXJzIGNhbiBkZWFkbG9jayBpbiBjYXNlIG9mIEdQVVByb2Nlc3MgY3Jh
c2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIHdlYnJ0
Yy92cDgtdGhlbi1oMjY0LWdwdS1wcm9jZXNzLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2VicnRjL3ZwOC10aGVuLWgyNjQtZ3B1LXByb2Nlc3MtY3Jhc2guaHRtbDogQWRk
ZWQuCisKIDIwMjItMDItMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIExpYldlYlJUQ0NvZGVjcyBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVycyBjYW4gZGVhZGxv
Y2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNzIGNyYXNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzBkNWMzZDBmMGEwODRkNzBlNjJkOTQzYzg4MWVhMTYyNmU3ODY0ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1w
cm9jZXNzLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworCitQQVNTIFNldHRp
bmcgdmlkZW8gZXhjaGFuZ2Ugd2l0aCBWUDgKK1BBU1MgU2V0dGluZyBleGNoYW5nZSB3aXRoIEgy
NjQgdXNpbmcgVlA4IGRlY29kZWQgc3RyZWFtIGFzIGlucHV0CitQQVNTIEZyYW1lcyBzaG91bGQg
YmUgY29taW5nIGV2ZW4gYWZ0ZXIgZ3B1IHByb2Nlc3MgY3Jhc2gKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2VicnRjL3ZwOC10aGVuLWgyNjQtZ3B1LXByb2Nlc3MtY3Jhc2guaHRtbCBiL0xh
eW91dFRlc3RzL3dlYnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1wcm9jZXNzLWNyYXNoLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOThkYzQ5ZWE0NGMyOThhMjZhZmNjOWFiNThhMDBmZTM2NGRmZjc1ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1wcm9jZXNz
LWNyYXNoLmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+
VGVzdGluZyBHUFUgcHJvY2VzcyBjcmFzaDwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8xIiBhdXRvcGxheSBwbGF5
c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4KKyAgICAgICAgPHZpZGVv
IGlkPSJ2aWRlbzIiIGF1dG9wbGF5IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQw
Ij48L3ZpZGVvPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KK3ZhciByZWNlaXZpbmdDb25uZWN0aW9uOworcHJvbWlzZV90ZXN0
KCh0ZXN0KSA9PiB7CisgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHt2aWRlbzogdHJ1ZX0pLnRoZW4oKGxvY2FsU3RyZWFtKSA9PiB7CisgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICB0cmFjayA9
IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisKKyAgICAgICAgICAgIGNyZWF0ZUNv
bm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgICAgICBmaXJzdENv
bm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgICAgICBm
aXJzdENvbm5lY3Rpb24uZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc2V0Q29kZWNQcmVmZXJlbmNlcyhb
e21pbWVUeXBlOiAidmlkZW8vVlA4IiwgY2xvY2tSYXRlOiA5MDAwMH1dKTsKKyAgICAgICAgICAg
IH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgcmVjZWl2aW5nQ29u
bmVjdGlvbiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICAgICAgc2Vjb25kQ29ubmVj
dGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcmVt
b3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNrOworICAgICAgICAgICAgICAgICAgICByZXNvbHZl
KHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0
IiksIDUwMDApOworICAgICAgICB9KTsKKyAgICB9KS50aGVuKChyZW1vdGVTdHJlYW0pID0+IHsK
KyAgICAgICAgdmlkZW8xLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICAgICAgcmV0dXJu
IHZpZGVvMS5wbGF5KCk7CisgICAgfSk7Cit9LCAiU2V0dGluZyB2aWRlbyBleGNoYW5nZSB3aXRo
IFZQOCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIHZpZGVvMi5zcmNPYmpl
Y3QgPSBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGNy
ZWF0ZUNvbm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIGZpcnN0
Q29ubmVjdGlvbi5hZGRUcmFjayh2aWRlbzEuc3JjT2JqZWN0LmdldFZpZGVvVHJhY2tzKClbMF0s
IHZpZGVvMS5zcmNPYmplY3QpOworICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlvbikgPT4gewor
ICAgICAgICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbiA9IHNlY29uZENvbm5lY3Rpb247CisgICAg
ICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAg
ICAgICAgICAgICAgIHJlbW90ZVRyYWNrID0gdHJhY2tFdmVudC50cmFjazsKKyAgICAgICAgICAg
ICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAgICB9OworICAg
ICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0
IiksIDUwMDApOworICAgIH0pOworICAgIGF3YWl0IHZpZGVvMi5wbGF5KCk7Cit9LCAiU2V0dGlu
ZyBleGNoYW5nZSB3aXRoIEgyNjQgdXNpbmcgVlA4IGRlY29kZWQgc3RyZWFtIGFzIGlucHV0Iik7
CisKK2FzeW5jIGZ1bmN0aW9uIGdldEluYm91bmRSVFBTdGF0c051bWJlck9mRGVjb2RlZEZyYW1l
cyhjb25uZWN0aW9uKQoreworICAgIHZhciByZXBvcnQgPSBhd2FpdCBjb25uZWN0aW9uLmdldFN0
YXRzKCk7CisgICAgdmFyIGZyYW1lc0RlY29kZWQ7CisgICAgcmVwb3J0LmZvckVhY2goKHN0YXRJ
dGVtKSA9PiB7CisgICAgICAgIGlmIChzdGF0SXRlbS50eXBlID09PSAiaW5ib3VuZC1ydHAiKQor
ICAgICAgICAgICAgZnJhbWVzRGVjb2RlZCA9IHN0YXRJdGVtLmZyYW1lc0RlY29kZWQ7CisgICAg
fSk7CisgICAgcmV0dXJuIGZyYW1lc0RlY29kZWQ7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RG
cmFtZURlY29kZWRJbmNyZWFzZWQoY29ubmVjdGlvbiwgY291bnQsIHByZXZpb3VzRnJhbWVzTnVt
YmVyKQoreworICAgIGlmIChwcmV2aW91c0ZyYW1lc051bWJlciA9PT0gdW5kZWZpbmVkKSB7Cisg
ICAgICAgIGxldCBudW1iZXIgPSBhd2FpdCBnZXRJbmJvdW5kUlRQU3RhdHNOdW1iZXJPZkRlY29k
ZWRGcmFtZXMoY29ubmVjdGlvbik7CisgICAgICAgIGF3YWl0IHdhaXRGb3IoMTAwMCk7CisgICAg
ICAgIHJldHVybiB0ZXN0RnJhbWVEZWNvZGVkSW5jcmVhc2VkKGNvbm5lY3Rpb24sIDAsIG51bWJl
cik7CisgICAgfQorCisgICAgdmFyIG51bWJlciA9IGF3YWl0IGdldEluYm91bmRSVFBTdGF0c051
bWJlck9mRGVjb2RlZEZyYW1lcyhjb25uZWN0aW9uKTsKKyAgICBpZiAocHJldmlvdXNGcmFtZXNO
dW1iZXIgJiYgbnVtYmVyID4gcHJldmlvdXNGcmFtZXNOdW1iZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChjb3VudCA+PSAyMCkKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJ0
ZXN0IGluY3JlYXNpbmcgZnJhbWUgZGVjb2RlZCB0aW1lZCBvdXQiKTsKKworICAgIGF3YWl0IHdh
aXRGb3IoMTAwMCk7CisgICAgcmV0dXJuIHRlc3RGcmFtZURlY29kZWRJbmNyZWFzZWQoY29ubmVj
dGlvbiwgKytjb3VudCwgcHJldmlvdXNGcmFtZXNOdW1iZXIpOworfQorCisKK3Byb21pc2VfdGVz
dChhc3luYyAodGVzdCkgPT4geworICAgIGF3YWl0IHRlc3RGcmFtZURlY29kZWRJbmNyZWFzZWQo
cmVjZWl2aW5nQ29ubmVjdGlvbik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLnRlcm1pbmF0ZUdQVVByb2Nlc3MoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOworICAgIGF3YWl0IHRlc3RG
cmFtZURlY29kZWRJbmNyZWFzZWQocmVjZWl2aW5nQ29ubmVjdGlvbik7Cit9LCAiRnJhbWVzIHNo
b3VsZCBiZSBjb21pbmcgZXZlbiBhZnRlciBncHUgcHJvY2VzcyBjcmFzaCIpOworICAgICAgICA8
L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="477904"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451232</attachid>
            <date>2022-02-08 03:49:05 -0800</date>
            <delta_ts>2022-02-08 04:39:56 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236132-20220208124902.patch</filename>
            <type>text/plain</type>
            <size>21810</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmNDc3YWI4MzZmNmJiNWI5
ZGEwNDk3ZmJjOGM4YmY2NGZkYTdlNDcuLjlhN2VmNzY3YzkxY2RlODM3NWQ1Y2IyMzZhYWQ5OGQ3
NjM1MmI2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDItMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIExpYldlYlJUQ0NvZGVjcyBTaGFy
ZWRWaWRlb0ZyYW1lV3JpdGVycyBjYW4gZGVhZGxvY2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNzIGNy
YXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYx
MzIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgV2hlbiBz
ZW5kaW5nIHNhbXBlbHMgdGhyb3VnaCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVycywgd2UgbWlnaHQg
bG9jayBvbiBhIGJpbmFyeSBzZW1hcGhvcmUgY29udHJvbGxlZCBieSBHUFVQcm9jZXNzLgorICAg
ICAgICBJdCBpcyBub3QgYWx3YXlzIHRoZSBjYXNlIHRoYXQgdGhlIHNlbWFwaG9yZSB3aWxsIHVu
YmxvY2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNzIGNyYXNoIGZvciBpbnN0YW5jZS4KKyAgICAgICAg
VG8gcHJldmVudCB0aGlzLCB3aGVuZXZlciB3ZSBkZXRlY3QgYSBHUFVQcm9jZXNzIGNyYXNoLCB3
ZSBkaXNhYmxlIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXJzLCB3aGljaCBoYXMgdGhlIGVmZmVjdCBv
ZgorICAgICAgICBkaXNhYmxpbmcgc2VtYXBob3JlIHdhaXQgZm9yIGZ1dHVyZSBjYWxsIGFuZCB1
bmxvY2tpbmcgYW55IGN1cnJlbnQgd2FpdCBieSBjYWxsaW5nIHNlbWFwaG9yZS5zaWduYWwuCisg
ICAgICAgIFRoZW4sIHRoZSBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyIGlzIHJlY3JlYXRlZCBhcyBu
ZWVkZWQgYnkgb3duZXIgY2xhc3NlcyBzdWNoIGFzIExpYldlYlJUQ0NvZGVjcyBvciBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgTGliV2ViUlRDQ29k
ZWNzLCB3ZSBmdXJ0aGVyIHJlZHVjZSBsb2NraW5nIGNhc2VzIGJ5IGludHJvZHVjaW5nIGEgbG9j
ayBkZWRpY2F0ZWQgdG8gZW5jb2RlcnMuCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBsb2NrIGZv
ciBlbmNvZGVycyB3YXMgYWxzbyBlbmNvbXBhc3NpbmcgdGhlIGNvZGVjcyBjb25uZWN0aW9uIGFu
ZCB0aGUgZGVjb2RlcnMuCisKKyAgICAgICAgVGVzdDogd2VicnRjL3ZwOC10aGVuLWgyNjQtZ3B1
LXByb2Nlc3MtY3Jhc2guaHRtbAorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldl
YlJUQ0NvZGVjcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1No
YXJlZFZpZGVvRnJhbWUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFy
ZWRWaWRlb0ZyYW1lLmg6CisKIDIwMjItMDItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IHRvIHF1ZXJ5IGNhbWVyYSBhbmQgbWljcm9w
aG9uZSBwZXJtaXNzaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggYWUyMmQ4OTM3MzRmYzUxZjk2OGY3
NDdmN2VkZGIxNzFiOThhMGRhMi4uZjIwZDA3NGYzYTZkNDk0MDQ0Nzg2MWEzNDJiNDE5ZGNkZGYy
ODliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGli
V2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zNzksMTEgKzM3OSwxNSBAQCBMaWJXZWJSVENDb2Rl
Y3M6OkVuY29kZXIqIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRW5jb2RlcihUeXBlIHR5cGUsIGNv
bnN0IHN0ZDo6bQogICAgICAgICBwYXJhbWV0ZXJzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihTdHJp
bmc6OmZyb21VVEY4KGtleVZhbHVlLmZpcnN0LmRhdGEoKSwga2V5VmFsdWUuZmlyc3QubGVuZ3Ro
KCkpLCBTdHJpbmc6OmZyb21VVEY4KGtleVZhbHVlLnNlY29uZC5kYXRhKCksIGtleVZhbHVlLnNl
Y29uZC5sZW5ndGgoKSkpKTsKIAogICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlz
cGF0Y2hUb1RocmVhZChbdGhpcywgZW5jb2RlciA9IFdURk1vdmUoZW5jb2RlciksIHR5cGUsIHBh
cmFtZXRlcnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMpXSgpIG11dGFibGUgewotICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9jb25uZWN0aW9uTG9jayB9OwotICAgICAgICBlbmNvZGVyLT5jb25uZWN0
aW9uID0gbV9jb25uZWN0aW9uOworICAgICAgICB7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9jb25uZWN0aW9uTG9jayB9OworICAgICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbiA9
IG1fY29ubmVjdGlvbjsKKyAgICAgICAgfQorCiAgICAgICAgIGVuY29kZXItPmNvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVyIHsgZW5j
b2Rlci0+aWRlbnRpZmllciwgZm9ybWF0TmFtZUZyb21Db2RlY1R5cGUodHlwZSksIHBhcmFtZXRl
cnMsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExv
d0xhdGVuY3lFbmNvZGVyRW5hYmxlZCgpIH0sIDApOwogICAgICAgICBlbmNvZGVyLT5wYXJhbWV0
ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKTsKIAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9l
bmNvZGVyc0xvY2sgfTsKICAgICAgICAgYXV0byBlbmNvZGVySWRlbnRpZmllciA9IGVuY29kZXIt
PmlkZW50aWZpZXI7CiAgICAgICAgIEFTU0VSVCghbV9lbmNvZGVycy5jb250YWlucyhlbmNvZGVy
SWRlbnRpZmllcikpOwogICAgICAgICBtX2VuY29kZXJzLmFkZChlbmNvZGVySWRlbnRpZmllciwg
V1RGTW92ZShlbmNvZGVyKSk7CkBAIC00MDAsNiArNDA0LDcgQEAgaW50MzJfdCBMaWJXZWJSVEND
b2RlY3M6OnJlbGVhc2VFbmNvZGVyKEVuY29kZXImIGVuY29kZXIpCiAgICAgfQogI2VuZGlmCiAg
ICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBl
bmNvZGVySWRlbnRpZmllciA9IGVuY29kZXIuaWRlbnRpZmllcl0geworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9lbmNvZGVyc0xvY2sgfTsKICAgICAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29u
dGFpbnMoZW5jb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgYXV0byBlbmNvZGVyID0gbV9lbmNv
ZGVycy50YWtlKGVuY29kZXJJZGVudGlmaWVyKTsKICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlJlbGVhc2VFbmNvZGVyIHsg
ZW5jb2RlcklkZW50aWZpZXIgfSwgMCk7CkBAIC00MTgsMjYgKzQyMywxOCBAQCBpbnQzMl90IExp
YldlYlJUQ0NvZGVjczo6aW5pdGlhbGl6ZUVuY29kZXIoRW5jb2RlciYgZW5jb2RlciwgdWludDE2
X3Qgd2lkdGgsIHVpbgogICAgIHJldHVybiAwOwogfQogCi1ib29sIExpYldlYlJUQ0NvZGVjczo6
Y29weVNoYXJlZFZpZGVvRnJhbWUoRW5jb2RlciYgZW5jb2RlciwgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlcikKK3RlbXBsYXRlPHR5cGVuYW1lIEJ1ZmZlcj4KK2Jvb2wgY29weVNoYXJlZFZp
ZGVvRnJhbWUoTGliV2ViUlRDQ29kZWNzOjpFbmNvZGVyJiBlbmNvZGVyLCBCdWZmZXImJiBmcmFt
ZUJ1ZmZlcikKIHsKLSAgICByZXR1cm4gZW5jb2Rlci5zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndy
aXRlKHBpeGVsQnVmZmVyLAotICAgICAgICBbJmVuY29kZXJdKGF1dG8mIHNlbWFwaG9yZSkgeyBl
bmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpT
ZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlIHsgZW5jb2Rlci5pZGVudGlmaWVyLCBzZW1hcGhv
cmUgfSwgMCk7IH0sCi0gICAgICAgIFsmZW5jb2Rlcl0oYXV0byYgaGFuZGxlKSB7IGVuY29kZXIu
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJl
ZFZpZGVvRnJhbWVNZW1vcnkgeyBlbmNvZGVyLmlkZW50aWZpZXIsIGhhbmRsZSB9LCAwKTsgfQot
ICAgICk7Ci19Ci0KLWJvb2wgTGliV2ViUlRDQ29kZWNzOjpjb3B5U2hhcmVkVmlkZW9GcmFtZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lKQotewotICAg
IHJldHVybiBlbmNvZGVyLnNoYXJlZFZpZGVvRnJhbWVXcml0ZXIud3JpdGUoZnJhbWUsCi0gICAg
ICAgIFsmZW5jb2Rlcl0oYXV0byYgc2VtYXBob3JlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1h
cGhvcmUgeyBlbmNvZGVyLmlkZW50aWZpZXIsIHNlbWFwaG9yZSB9LCAwKTsgfSwKLSAgICAgICAg
WyZlbmNvZGVyXShhdXRvJiBoYW5kbGUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGVu
Y29kZXIuaWRlbnRpZmllciwgaGFuZGxlIH0sIDApOyB9CisgICAgcmV0dXJuIGVuY29kZXIuc2hh
cmVkVmlkZW9GcmFtZVdyaXRlci53cml0ZShmcmFtZUJ1ZmZlciwKKyAgICAgICAgWyZdKGF1dG8m
IHNlbWFwaG9yZSkgeyBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJU
Q0NvZGVjc1Byb3h5OjpTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlIHsgZW5jb2Rlci5pZGVu
dGlmaWVyLCBzZW1hcGhvcmUgfSwgMCk7IH0sCisgICAgICAgIFsmXShhdXRvJiBoYW5kbGUpIHsg
ZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6
U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGVuY29kZXIuaWRlbnRpZmllciwgaGFuZGxlIH0s
IDApOyB9CiAgICAgKTsKIH0KIAogaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OmVuY29kZUZyYW1l
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUsIGJvb2wg
c2hvdWxkRW5jb2RlQXNLZXlGcmFtZSkKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9jb25uZWN0
aW9uTG9jayB9OwotCisgICAgTG9ja2VyIGxvY2tlciB7IG1fZW5jb2RlcnNMb2NrIH07CiAgICAg
aWYgKCFlbmNvZGVyLmNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfRVJST1I7CiAKQEAgLTQ2Nyw3ICs0NjQsNyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6cmVn
aXN0ZXJFbmNvZGVGcmFtZUNhbGxiYWNrKEVuY29kZXImIGVuY29kZXIsIHZvaWQqIGVuY29kZQog
CiB2b2lkIExpYldlYlJUQ0NvZGVjczo6c2V0RW5jb2RlUmF0ZXMoRW5jb2RlciYgZW5jb2Rlciwg
dWludDMyX3QgYml0UmF0ZSwgdWludDMyX3QgZnJhbWVSYXRlKQogewotICAgIExvY2tlciBsb2Nr
ZXIgeyBtX2Nvbm5lY3Rpb25Mb2NrIH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZW5jb2RlcnNM
b2NrIH07CiAKICAgICBpZiAoIWVuY29kZXIuY29ubmVjdGlvbikgewogICAgICAgICBjYWxsT25N
YWluUnVuTG9vcChbZW5jb2RlcklkZW50aWZpZXIgPSBlbmNvZGVyLmlkZW50aWZpZXIsIGJpdFJh
dGUsIGZyYW1lUmF0ZV0gewpAQCAtNTI3LDIwICs1MjQsMjMgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3M6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQog
ICAgICAgICByZXR1cm47CiAKICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbk9uTWFpblRo
cmVhZFdpdGhMb2NrKCk7Ci0gICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpc10oKSB7Ci0gICAgICAg
IC8vIExvY2sgZXZlcnl0aGluZyBzbyB0aGF0IHdlIGNhbiB1cGRhdGUgZW5jb2Rlci9kZWNvZGVy
IGNvbm5lY3Rpb24uCi0gICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2Nvbm5lY3Rpb25Mb2NrIH07
Ci0gICAgICAgIC8vIFJlY3JlYXRlIGVuY29kZXJzIGFuZCBpbml0aWFsaXplIHRoZW0sIHJlY3Jl
YXRlIGRlY29kZXJzLgorICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb24gPSBt
X2Nvbm5lY3Rpb25dKCkgeworICAgICAgICBmb3IgKGF1dG8mIGRlY29kZXIgOiBtX2RlY29kZXJz
LnZhbHVlcygpKSB7CisgICAgICAgICAgICBjcmVhdGVSZW1vdGVEZWNvZGVyKCpkZWNvZGVyLCAq
Y29ubmVjdGlvbik7CisgICAgICAgICAgICBkZWNvZGVyLT5jb25uZWN0aW9uID0gY29ubmVjdGlv
bi5nZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEluIGNhc2Ugd2UgYXJlIHdhaXRpbmcg
Zm9yIEdQVVByb2Nlc3MsIGxldCdzIGVuZCB0aGUgd2FpdCB0byBub3QgZGVhZGxvY2suCisgICAg
ICAgIGZvciAoYXV0byYgZW5jb2RlciA6IG1fZW5jb2RlcnMudmFsdWVzKCkpCisgICAgICAgICAg
ICBlbmNvZGVyLT5zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLmRpc2FibGUoKTsKKworICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9lbmNvZGVyc0xvY2sgfTsKICAgICAgICAgZm9yIChhdXRvJiBlbmNv
ZGVyIDogbV9lbmNvZGVycy52YWx1ZXMoKSkgewotICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6Q3JlYXRlRW5jb2RlciB7IGVuY29k
ZXItPmlkZW50aWZpZXIsIGZvcm1hdE5hbWVGcm9tV2ViUlRDQ29kZWNUeXBlKGVuY29kZXItPmNv
ZGVjVHlwZSksIGVuY29kZXItPnBhcmFtZXRlcnMsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZCgpIH0sIDAp
OworICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
UHJveHk6OkNyZWF0ZUVuY29kZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVyLCBmb3JtYXROYW1lRnJv
bVdlYlJUQ0NvZGVjVHlwZShlbmNvZGVyLT5jb2RlY1R5cGUpLCBlbmNvZGVyLT5wYXJhbWV0ZXJz
LCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dM
YXRlbmN5RW5jb2RlckVuYWJsZWQoKSB9LCAwKTsKICAgICAgICAgICAgIGlmIChlbmNvZGVyLT5p
bml0aWFsaXphdGlvbkRhdGEpCi0gICAgICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6SW5pdGlhbGl6ZUVuY29kZXIgeyBlbmNvZGVy
LT5pZGVudGlmaWVyLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPndpZHRoLCBlbmNvZGVy
LT5pbml0aWFsaXphdGlvbkRhdGEtPmhlaWdodCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRh
LT5zdGFydEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4Qml0UmF0ZSwg
ZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5taW5CaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFs
aXphdGlvbkRhdGEtPm1heEZyYW1lUmF0ZSB9LCAwKTsKKyAgICAgICAgICAgICAgICBjb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6SW5pdGlhbGl6ZUVuY29k
ZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVyLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPndp
ZHRoLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPmhlaWdodCwgZW5jb2Rlci0+aW5pdGlh
bGl6YXRpb25EYXRhLT5zdGFydEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+
bWF4Qml0UmF0ZSwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5taW5CaXRSYXRlLCBlbmNv
ZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPm1heEZyYW1lUmF0ZSB9LCAwKTsKKyAgICAgICAgICAg
IGVuY29kZXItPmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uLmdldCgpOwogICAgICAgICAgICAgZW5j
b2Rlci0+c2hhcmVkVmlkZW9GcmFtZVdyaXRlciA9IHsgfTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb24uZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgZm9y
IChhdXRvJiBkZWNvZGVyIDogbV9kZWNvZGVycy52YWx1ZXMoKSkgewotICAgICAgICAgICAgY3Jl
YXRlUmVtb3RlRGVjb2RlcigqZGVjb2RlciwgKm1fY29ubmVjdGlvbik7Ci0gICAgICAgICAgICBk
ZWNvZGVyLT5jb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLmdldCgpOwogICAgICAgICB9CiAgICAg
fSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5oCmluZGV4IDU2OTFlMzgzNzc0MTY3ODVhN2Q0MTI0YWQxNDQ5NDBlNzc4
YjJiZjkuLmEwMTdkZThiODQ1NDFkYzZjOWIzN2ZkMjViMzU3YzAwOThiMjJjMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5oCkBAIC0xMzgsMTMgKzEzOCwxMSBAQCBwcml2YXRlOgogICAgIC8vIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mKTsKIAotICAgIGJvb2wgY29weVNoYXJlZFZpZGVvRnJhbWUoRW5j
b2RlciYsIENWUGl4ZWxCdWZmZXJSZWYpOwotICAgIGJvb2wgY29weVNoYXJlZFZpZGVvRnJhbWUo
RW5jb2RlciYsIGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYpOwotCiBwcml2YXRlOgogICAgIEhh
c2hNYXA8UlRDRGVjb2RlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPj4gbV9k
ZWNvZGVyczsKICAgICBIYXNoU2V0PFJUQ0RlY29kZXJJZGVudGlmaWVyPiBtX2RlY29kaW5nRXJy
b3JzOwogCisgICAgTG9jayBtX2VuY29kZXJzTG9jazsKICAgICBIYXNoTWFwPFJUQ0VuY29kZXJJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4+IG1fZW5jb2RlcnM7CiAKICAgICBz
dGQ6OmF0b21pYzxib29sPiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHAKaW5kZXggNWViZTEwOGYyMzY0MGQzYTdkZmVkMzBhNWM1ZWE1NzcwNTQ5OTE0
ZS4uNGY3N2YzNmU3MTcyNDU4ZTFmZGZjZjkyMTM2NjM2ZTZjM2RhMmZmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmNwcApAQCAtNTQsNiArNTQsNyBAQCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVk
aWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0sIGNvbnN0IE1lZAog
ICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiAgICAgLCBtX2hhc1ZpZGVvKHN0cmVhbS5oYXNWaWRl
bygpKQogeworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6c3RhcnRSZWNvcmRpbmcoU3RhcnRSZWNvcmRpbmdDYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAt
ODcsNiArODgsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdGFydFJlY29yZGluZyhT
dGFydFJlY29yZGluZ0NhbGxiYWNrJiYgY2FsbGJhY2spCiBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
fk1lZGlhUmVjb3JkZXJQcml2YXRlKCkKIHsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpSZWxlYXNlUmVjb3JkZXIgeyBtX2lkZW50
aWZpZXIgfSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBWaWRl
b1NhbXBsZU1ldGFkYXRhKQpAQCAtMTc2LDYgKzE3OCw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSwgY29uc3QgV2ViQ29y
ZTo6CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgZG91YmxlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNv
cmRlcjo6RmV0Y2hEYXRhIHsgfSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIG1pbWVUeXBlID0gbWltZVR5cGUoKV0oYXV0byYmIGRhdGEsIGRvdWJsZSB0
aW1lQ29kZSkgbXV0YWJsZSB7CisgICAgICAgIC8vIEZJWE1FOiBJZiBjb21wbGV0aW9uIGhhbmRs
ZXIgaXMgY2FsbGVkIGZvbGxvd2luZyBhIEdQVVByb2Nlc3MgY29ubmVjdGlvbiBiZWluZyBjbG9z
ZWQsIHdlIHNob3VsZCBmYWlsIHRoZSBNZWRpYVJlY29yZGVyLgogICAgICAgICBSZWZQdHI8RnJh
Z21lbnRlZFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgICAgICBpZiAoZGF0YS5zaXplKCkpCiAg
ICAgICAgICAgICBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0
YS5zaXplKCkpOwpAQCAtMjA2LDYgKzIwOSwxMSBAQCBjb25zdCBTdHJpbmcmIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjptaW1lVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFzVmlkZW8gPyB2aWRl
b01QNCA6IGF1ZGlvTVA0OwogfQogCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpncHVQcm9j
ZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikKK3sKKyAgICBtX3No
YXJlZFZpZGVvRnJhbWVXcml0ZXIuZGlzYWJsZSgpOworfQorCiB9CiAKICNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggYzJiYWRjOWNiMzliMWVkODY5NDRmOTAzZjVkOTNm
MGQ5YWFkZGMxNi4uNGQ3YTVmNWI5NWFmODI3M2JjZWFhM2RhNGIwMDZlNjVlNzg3ODY4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5oCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbAogICAgIDogcHVibGljIFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlCi0gICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+IHsKKyAgICAsIHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xp
ZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBNZWRpYVJl
Y29yZGVyUHJpdmF0ZShXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmKTsKQEAgLTY1LDYgKzY1LDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBhdXNlUmVjb3JkaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
ZmluYWw7CiAgICAgdm9pZCByZXN1bWVSZWNvcmRpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKIAorICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2
b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKSBm
aW5hbDsKKwogICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50
KTsKICAgICBib29sIGNvcHlTaGFyZWRWaWRlb0ZyYW1lKENWUGl4ZWxCdWZmZXJSZWYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCAyMTlhNTVkZjFjMjlmZDFjNmY5MzM2
MTFhMjkyNWI1YzNjMDZlMTcwLi5lNWVmNDZlNjA4MjM5NDYyYWE0MDQ4Y2I3ZDNmYTAzNDJlOThi
NTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTE3MCw2ICsxNzAsNyBA
QCB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0RGlkRmFpbChib29sIHZhbHVlKQog
CiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRD
bG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpCiB7CisgICAgbV9zaGFyZWRWaWRlb0ZyYW1lV3Jp
dGVyLmRpc2FibGUoKTsKICAgICBtX2RpZEZhaWwgPSB0cnVlOwogICAgIGlmIChtX2NsaWVudCkK
ICAgICAgICAgbV9jbGllbnQtPnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0RpZEZhaWwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJl
ZFZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hh
cmVkVmlkZW9GcmFtZS5jcHAKaW5kZXggMjk0YTk0ODU2MTc2OWNmNjNkMWFiYWEyNjE4NGMwNzNm
ZjVhNTUyNS4uOWQzNTNlZmZmZjU2MDE0MjFjMTRkNTI1ZGVlMTFiMDY5M2YyMjhmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlk
ZW9GcmFtZS5jcHAKQEAgLTM1LDE0ICszNSwxOSBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6U2hhcmVkVmlk
ZW9GcmFtZVdyaXRlcigpCisgICAgOiBtX3NlbWFwaG9yZShtYWtlVW5pcXVlUmVmPElQQzo6U2Vt
YXBob3JlPigpKQoreworfQorCiBib29sIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndhaXQoY29u
c3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBob3JlQ2FsbGJhY2sp
CiB7Ci0gICAgaWYgKCFtX3NlbWFwaG9yZSkgewotICAgICAgICBtX3NlbWFwaG9yZSA9IG1ha2VV
bmlxdWU8SVBDOjpTZW1hcGhvcmU+KCk7Ci0gICAgICAgIG5ld1NlbWFwaG9yZUNhbGxiYWNrKCpt
X3NlbWFwaG9yZSk7CisgICAgaWYgKCFtX2lzU2VtYXBob3JlSW5Vc2UpIHsKKyAgICAgICAgbV9p
c1NlbWFwaG9yZUluVXNlID0gdHJ1ZTsKKyAgICAgICAgbmV3U2VtYXBob3JlQ2FsbGJhY2sobV9z
ZW1hcGhvcmUuZ2V0KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJu
IG1fc2VtYXBob3JlLT53YWl0KCk7CisgICAgcmV0dXJuICFtX2lzRGlzYWJsZWQgJiYgbV9zZW1h
cGhvcmUtPndhaXQoKTsKIH0KIAogYm9vbCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjphbGxvY2F0
ZVN0b3JhZ2Uoc2l6ZV90IHNpemUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVt
b3J5OjpJUENIYW5kbGUmKT4mIG5ld01lbW9yeUNhbGxiYWNrKQpAQCAtOTUsNiArMTAwLDEyIEBA
IGJvb2wgU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6d3JpdGUoY29uc3Qgd2VicnRjOjpWaWRlb0Zy
YW1lJiBmcmFtZSwgY29uc3QgRnVuY3RpCiB9CiAjZW5kaWYKIAordm9pZCBTaGFyZWRWaWRlb0Zy
YW1lV3JpdGVyOjpkaXNhYmxlKCkKK3sKKyAgICBtX2lzRGlzYWJsZWQgPSB0cnVlOworICAgIG1f
c2VtYXBob3JlLT5zaWduYWwoKTsKK30KKwogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFNo
YXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoKQogewogICAgIGlmICghbV9zdG9yYWdlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9G
cmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9G
cmFtZS5oCmluZGV4IDk4NTUxMmZjNjgwMTI3YWFjNzE3M2ViYjVhMTQxNTA4NjM3ZjAyMWEuLmMy
MDU4NTk0OTZhNWQ4NTEwNjY1NmNlNTc5MTI5NDlhNDEyN2Y4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Vbmlx
dWVSZWYuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsK
IHR5cGVkZWYgc3RydWN0IF9fQ1ZQaXhlbEJ1ZmZlclBvb2wqIENWUGl4ZWxCdWZmZXJQb29sUmVm
OwpAQCAtNDgsMjAgKzQ5LDIzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU2hhcmVkVmlk
ZW9GcmFtZVdyaXRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgU2hhcmVkVmlkZW9GcmFtZVdyaXRlcigpID0gZGVmYXVsdDsKKyAgICBTaGFyZWRWaWRlb0Zy
YW1lV3JpdGVyKCk7CiAKICAgICBib29sIHdyaXRlKENWUGl4ZWxCdWZmZXJSZWYsIGNvbnN0IEZ1
bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0
IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+Jik7CiAjaWYgVVNFKExJQldFQlJUQykKICAgICBi
b29sIHdyaXRlKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQo
SVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlJik+Jik7CiAjZW5kaWYKKyAgICB2b2lkIGRpc2FibGUoKTsKIAogcHJpdmF0
ZToKICAgICBib29sIHdhaXQoY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYp
OwogICAgIGJvb2wgYWxsb2NhdGVTdG9yYWdlKHNpemVfdCwgY29uc3QgRnVuY3Rpb248dm9pZChj
b25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwogICAgIGJvb2wgcHJlcGFyZVdyaXRp
bmcoY29uc3QgV2ViQ29yZTo6U2hhcmVkVmlkZW9GcmFtZUluZm8mLCBjb25zdCBGdW5jdGlvbjx2
b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRN
ZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6U2VtYXBo
b3JlPiBtX3NlbWFwaG9yZTsKKyAgICBVbmlxdWVSZWY8SVBDOjpTZW1hcGhvcmU+IG1fc2VtYXBo
b3JlOwogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fc3RvcmFnZTsKKyAgICBib29sIG1faXNT
ZW1hcGhvcmVJblVzZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzRGlzYWJsZWQgeyBmYWxzZSB9
OwogfTsKIAogY2xhc3MgU2hhcmVkVmlkZW9GcmFtZVJlYWRlciB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjAwM2E3OGM5
M2E1YWFlNTg5YjAzMGM0NGU3NjYyYzU2MGNjZWNiZi4uODgyZjQ1MGU3MDVjYWJiNWNiNjQ2NDA3
ODE3MWExZjJmNTAyYjZhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAyLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBMaWJXZWJSVENDb2RlY3Mg
U2hhcmVkVmlkZW9GcmFtZVdyaXRlcnMgY2FuIGRlYWRsb2NrIGluIGNhc2Ugb2YgR1BVUHJvY2Vz
cyBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICog
d2VicnRjL3ZwOC10aGVuLWgyNjQtZ3B1LXByb2Nlc3MtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC5odG1s
OiBBZGRlZC4KKwogMjAyMi0wMi0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgTGliV2ViUlRDQ29kZWNzIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXJzIGNhbiBk
ZWFkbG9jayBpbiBjYXNlIG9mIEdQVVByb2Nlc3MgY3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1wcm9jZXNzLWNyYXNoLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1wcm9jZXNzLWNyYXNoLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMGQ1YzNkMGYwYTA4NGQ3MGU2MmQ5NDNjODgxZWExNjI2ZTc4
NjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOC10aGVuLWgyNjQt
Z3B1LXByb2Nlc3MtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCisKK1BBU1Mg
U2V0dGluZyB2aWRlbyBleGNoYW5nZSB3aXRoIFZQOAorUEFTUyBTZXR0aW5nIGV4Y2hhbmdlIHdp
dGggSDI2NCB1c2luZyBWUDggZGVjb2RlZCBzdHJlYW0gYXMgaW5wdXQKK1BBU1MgRnJhbWVzIHNo
b3VsZCBiZSBjb21pbmcgZXZlbiBhZnRlciBncHUgcHJvY2VzcyBjcmFzaAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC5odG1s
IGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOC10aGVuLWgyNjQtZ3B1LXByb2Nlc3MtY3Jhc2guaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45OGRjNDllYTQ0YzI5OGEyNmFmY2M5YWI1OGEwMGZlMzY0ZGZmNzVlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOC10aGVuLWgyNjQtZ3B1LXBy
b2Nlc3MtY3Jhc2guaHRtbApAQCAtMCwwICsxLDk0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0
aXRsZT5UZXN0aW5nIEdQVSBwcm9jZXNzIGNyYXNoPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJ2aWRlbzEiIGF1dG9wbGF5
IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3ZpZGVvPgorICAgICAgICA8
dmlkZW8gaWQ9InZpZGVvMiIgYXV0b3BsYXkgcGxheXNJbmxpbmUgd2lkdGg9IjMyMCIgaGVpZ2h0
PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0PgordmFyIHJlY2VpdmluZ0Nvbm5lY3Rpb247Citwcm9taXNl
X3Rlc3QoKHRlc3QpID0+IHsKKyAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSkudGhlbigobG9jYWxTdHJlYW0pID0+IHsKKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHRy
YWNrID0gbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKworICAgICAgICAgICAgY3Jl
YXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgICAgIGZp
cnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOworICAgICAgICAgICAg
ICAgIGZpcnN0Q29ubmVjdGlvbi5nZXRUcmFuc2NlaXZlcnMoKVswXS5zZXRDb2RlY1ByZWZlcmVu
Y2VzKFt7bWltZVR5cGU6ICJ2aWRlby9WUDgiLCBjbG9ja1JhdGU6IDkwMDAwfV0pOworICAgICAg
ICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgICAgICByZWNlaXZp
bmdDb25uZWN0aW9uID0gc2Vjb25kQ29ubmVjdGlvbjsKKyAgICAgICAgICAgICAgICBzZWNvbmRD
b25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAgICAg
ICByZW1vdGVUcmFjayA9IHRyYWNrRXZlbnQudHJhY2s7CisgICAgICAgICAgICAgICAgICAgIHJl
c29sdmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1l
ZCBvdXQiKSwgNTAwMCk7CisgICAgICAgIH0pOworICAgIH0pLnRoZW4oKHJlbW90ZVN0cmVhbSkg
PT4geworICAgICAgICB2aWRlbzEuc3JjT2JqZWN0ID0gcmVtb3RlU3RyZWFtOworICAgICAgICBy
ZXR1cm4gdmlkZW8xLnBsYXkoKTsKKyAgICB9KTsKK30sICJTZXR0aW5nIHZpZGVvIGV4Y2hhbmdl
IHdpdGggVlA4Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgdmlkZW8yLnNy
Y09iamVjdCA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAg
ICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4geworICAgICAgICAgICAg
Zmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHZpZGVvMS5zcmNPYmplY3QuZ2V0VmlkZW9UcmFja3Mo
KVswXSwgdmlkZW8xLnNyY09iamVjdCk7CisgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9
PiB7CisgICAgICAgICAgICByZWNlaXZpbmdDb25uZWN0aW9uID0gc2Vjb25kQ29ubmVjdGlvbjsK
KyAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7
CisgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNrOworICAgICAg
ICAgICAgICAgIHJlc29sdmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgIH07
CisgICAgICAgIH0pOworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1l
ZCBvdXQiKSwgNTAwMCk7CisgICAgfSk7CisgICAgYXdhaXQgdmlkZW8yLnBsYXkoKTsKK30sICJT
ZXR0aW5nIGV4Y2hhbmdlIHdpdGggSDI2NCB1c2luZyBWUDggZGVjb2RlZCBzdHJlYW0gYXMgaW5w
dXQiKTsKKworYXN5bmMgZnVuY3Rpb24gZ2V0SW5ib3VuZFJUUFN0YXRzTnVtYmVyT2ZEZWNvZGVk
RnJhbWVzKGNvbm5lY3Rpb24pCit7CisgICAgdmFyIHJlcG9ydCA9IGF3YWl0IGNvbm5lY3Rpb24u
Z2V0U3RhdHMoKTsKKyAgICB2YXIgZnJhbWVzRGVjb2RlZDsKKyAgICByZXBvcnQuZm9yRWFjaCgo
c3RhdEl0ZW0pID0+IHsKKyAgICAgICAgaWYgKHN0YXRJdGVtLnR5cGUgPT09ICJpbmJvdW5kLXJ0
cCIpCisgICAgICAgICAgICBmcmFtZXNEZWNvZGVkID0gc3RhdEl0ZW0uZnJhbWVzRGVjb2RlZDsK
KyAgICB9KTsKKyAgICByZXR1cm4gZnJhbWVzRGVjb2RlZDsKK30KKworYXN5bmMgZnVuY3Rpb24g
dGVzdEZyYW1lRGVjb2RlZEluY3JlYXNlZChjb25uZWN0aW9uLCBjb3VudCwgcHJldmlvdXNGcmFt
ZXNOdW1iZXIpCit7CisgICAgaWYgKHByZXZpb3VzRnJhbWVzTnVtYmVyID09PSB1bmRlZmluZWQp
IHsKKyAgICAgICAgbGV0IG51bWJlciA9IGF3YWl0IGdldEluYm91bmRSVFBTdGF0c051bWJlck9m
RGVjb2RlZEZyYW1lcyhjb25uZWN0aW9uKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcigxMDAwKTsK
KyAgICAgICAgcmV0dXJuIHRlc3RGcmFtZURlY29kZWRJbmNyZWFzZWQoY29ubmVjdGlvbiwgMCwg
bnVtYmVyKTsKKyAgICB9CisKKyAgICB2YXIgbnVtYmVyID0gYXdhaXQgZ2V0SW5ib3VuZFJUUFN0
YXRzTnVtYmVyT2ZEZWNvZGVkRnJhbWVzKGNvbm5lY3Rpb24pOworICAgIGlmIChwcmV2aW91c0Zy
YW1lc051bWJlciAmJiBudW1iZXIgPiBwcmV2aW91c0ZyYW1lc051bWJlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKGNvdW50ID49IDIwKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWpl
Y3QoInRlc3QgaW5jcmVhc2luZyBmcmFtZSBkZWNvZGVkIHRpbWVkIG91dCIpOworCisgICAgYXdh
aXQgd2FpdEZvcigxMDAwKTsKKyAgICByZXR1cm4gdGVzdEZyYW1lRGVjb2RlZEluY3JlYXNlZChj
b25uZWN0aW9uLCArK2NvdW50LCBwcmV2aW91c0ZyYW1lc051bWJlcik7Cit9CisKKworcHJvbWlz
ZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgYXdhaXQgdGVzdEZyYW1lRGVjb2RlZEluY3Jl
YXNlZChyZWNlaXZpbmdDb25uZWN0aW9uKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIudGVybWluYXRlR1BVUHJvY2VzcygpOworICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CisgICAgYXdhaXQg
dGVzdEZyYW1lRGVjb2RlZEluY3JlYXNlZChyZWNlaXZpbmdDb25uZWN0aW9uKTsKK30sICJGcmFt
ZXMgc2hvdWxkIGJlIGNvbWluZyBldmVuIGFmdGVyIGdwdSBwcm9jZXNzIGNyYXNoIik7CisgICAg
ICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451236</attachid>
            <date>2022-02-08 04:40:01 -0800</date>
            <delta_ts>2022-02-08 09:16:10 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236132-20220208133959.patch</filename>
            <type>text/plain</type>
            <size>22592</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmNDc3YWI4MzZmNmJiNWI5
ZGEwNDk3ZmJjOGM4YmY2NGZkYTdlNDcuLjlhN2VmNzY3YzkxY2RlODM3NWQ1Y2IyMzZhYWQ5OGQ3
NjM1MmI2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDItMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIExpYldlYlJUQ0NvZGVjcyBTaGFy
ZWRWaWRlb0ZyYW1lV3JpdGVycyBjYW4gZGVhZGxvY2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNzIGNy
YXNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYx
MzIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgV2hlbiBz
ZW5kaW5nIHNhbXBlbHMgdGhyb3VnaCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVycywgd2UgbWlnaHQg
bG9jayBvbiBhIGJpbmFyeSBzZW1hcGhvcmUgY29udHJvbGxlZCBieSBHUFVQcm9jZXNzLgorICAg
ICAgICBJdCBpcyBub3QgYWx3YXlzIHRoZSBjYXNlIHRoYXQgdGhlIHNlbWFwaG9yZSB3aWxsIHVu
YmxvY2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNzIGNyYXNoIGZvciBpbnN0YW5jZS4KKyAgICAgICAg
VG8gcHJldmVudCB0aGlzLCB3aGVuZXZlciB3ZSBkZXRlY3QgYSBHUFVQcm9jZXNzIGNyYXNoLCB3
ZSBkaXNhYmxlIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXJzLCB3aGljaCBoYXMgdGhlIGVmZmVjdCBv
ZgorICAgICAgICBkaXNhYmxpbmcgc2VtYXBob3JlIHdhaXQgZm9yIGZ1dHVyZSBjYWxsIGFuZCB1
bmxvY2tpbmcgYW55IGN1cnJlbnQgd2FpdCBieSBjYWxsaW5nIHNlbWFwaG9yZS5zaWduYWwuCisg
ICAgICAgIFRoZW4sIHRoZSBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyIGlzIHJlY3JlYXRlZCBhcyBu
ZWVkZWQgYnkgb3duZXIgY2xhc3NlcyBzdWNoIGFzIExpYldlYlJUQ0NvZGVjcyBvciBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgTGliV2ViUlRDQ29k
ZWNzLCB3ZSBmdXJ0aGVyIHJlZHVjZSBsb2NraW5nIGNhc2VzIGJ5IGludHJvZHVjaW5nIGEgbG9j
ayBkZWRpY2F0ZWQgdG8gZW5jb2RlcnMuCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBsb2NrIGZv
ciBlbmNvZGVycyB3YXMgYWxzbyBlbmNvbXBhc3NpbmcgdGhlIGNvZGVjcyBjb25uZWN0aW9uIGFu
ZCB0aGUgZGVjb2RlcnMuCisKKyAgICAgICAgVGVzdDogd2VicnRjL3ZwOC10aGVuLWgyNjQtZ3B1
LXByb2Nlc3MtY3Jhc2guaHRtbAorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldl
YlJUQ0NvZGVjcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVj
b3JkZXJQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1No
YXJlZFZpZGVvRnJhbWUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFy
ZWRWaWRlb0ZyYW1lLmg6CisKIDIwMjItMDItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IHRvIHF1ZXJ5IGNhbWVyYSBhbmQgbWljcm9w
aG9uZSBwZXJtaXNzaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggYWUyMmQ4OTM3MzRmYzUxZjk2OGY3
NDdmN2VkZGIxNzFiOThhMGRhMi4uZjIwZDA3NGYzYTZkNDk0MDQ0Nzg2MWEzNDJiNDE5ZGNkZGYy
ODliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGli
V2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zNzksMTEgKzM3OSwxNSBAQCBMaWJXZWJSVENDb2Rl
Y3M6OkVuY29kZXIqIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRW5jb2RlcihUeXBlIHR5cGUsIGNv
bnN0IHN0ZDo6bQogICAgICAgICBwYXJhbWV0ZXJzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihTdHJp
bmc6OmZyb21VVEY4KGtleVZhbHVlLmZpcnN0LmRhdGEoKSwga2V5VmFsdWUuZmlyc3QubGVuZ3Ro
KCkpLCBTdHJpbmc6OmZyb21VVEY4KGtleVZhbHVlLnNlY29uZC5kYXRhKCksIGtleVZhbHVlLnNl
Y29uZC5sZW5ndGgoKSkpKTsKIAogICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlz
cGF0Y2hUb1RocmVhZChbdGhpcywgZW5jb2RlciA9IFdURk1vdmUoZW5jb2RlciksIHR5cGUsIHBh
cmFtZXRlcnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMpXSgpIG11dGFibGUgewotICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9jb25uZWN0aW9uTG9jayB9OwotICAgICAgICBlbmNvZGVyLT5jb25uZWN0
aW9uID0gbV9jb25uZWN0aW9uOworICAgICAgICB7CisgICAgICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9jb25uZWN0aW9uTG9jayB9OworICAgICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlvbiA9
IG1fY29ubmVjdGlvbjsKKyAgICAgICAgfQorCiAgICAgICAgIGVuY29kZXItPmNvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpDcmVhdGVFbmNvZGVyIHsgZW5j
b2Rlci0+aWRlbnRpZmllciwgZm9ybWF0TmFtZUZyb21Db2RlY1R5cGUodHlwZSksIHBhcmFtZXRl
cnMsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExv
d0xhdGVuY3lFbmNvZGVyRW5hYmxlZCgpIH0sIDApOwogICAgICAgICBlbmNvZGVyLT5wYXJhbWV0
ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKTsKIAorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9l
bmNvZGVyc0xvY2sgfTsKICAgICAgICAgYXV0byBlbmNvZGVySWRlbnRpZmllciA9IGVuY29kZXIt
PmlkZW50aWZpZXI7CiAgICAgICAgIEFTU0VSVCghbV9lbmNvZGVycy5jb250YWlucyhlbmNvZGVy
SWRlbnRpZmllcikpOwogICAgICAgICBtX2VuY29kZXJzLmFkZChlbmNvZGVySWRlbnRpZmllciwg
V1RGTW92ZShlbmNvZGVyKSk7CkBAIC00MDAsNiArNDA0LDcgQEAgaW50MzJfdCBMaWJXZWJSVEND
b2RlY3M6OnJlbGVhc2VFbmNvZGVyKEVuY29kZXImIGVuY29kZXIpCiAgICAgfQogI2VuZGlmCiAg
ICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBl
bmNvZGVySWRlbnRpZmllciA9IGVuY29kZXIuaWRlbnRpZmllcl0geworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9lbmNvZGVyc0xvY2sgfTsKICAgICAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29u
dGFpbnMoZW5jb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgYXV0byBlbmNvZGVyID0gbV9lbmNv
ZGVycy50YWtlKGVuY29kZXJJZGVudGlmaWVyKTsKICAgICAgICAgZW5jb2Rlci0+Y29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlJlbGVhc2VFbmNvZGVyIHsg
ZW5jb2RlcklkZW50aWZpZXIgfSwgMCk7CkBAIC00MTgsMjYgKzQyMywxOCBAQCBpbnQzMl90IExp
YldlYlJUQ0NvZGVjczo6aW5pdGlhbGl6ZUVuY29kZXIoRW5jb2RlciYgZW5jb2RlciwgdWludDE2
X3Qgd2lkdGgsIHVpbgogICAgIHJldHVybiAwOwogfQogCi1ib29sIExpYldlYlJUQ0NvZGVjczo6
Y29weVNoYXJlZFZpZGVvRnJhbWUoRW5jb2RlciYgZW5jb2RlciwgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlcikKK3RlbXBsYXRlPHR5cGVuYW1lIEJ1ZmZlcj4KK2Jvb2wgY29weVNoYXJlZFZp
ZGVvRnJhbWUoTGliV2ViUlRDQ29kZWNzOjpFbmNvZGVyJiBlbmNvZGVyLCBCdWZmZXImJiBmcmFt
ZUJ1ZmZlcikKIHsKLSAgICByZXR1cm4gZW5jb2Rlci5zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLndy
aXRlKHBpeGVsQnVmZmVyLAotICAgICAgICBbJmVuY29kZXJdKGF1dG8mIHNlbWFwaG9yZSkgeyBl
bmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpT
ZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlIHsgZW5jb2Rlci5pZGVudGlmaWVyLCBzZW1hcGhv
cmUgfSwgMCk7IH0sCi0gICAgICAgIFsmZW5jb2Rlcl0oYXV0byYgaGFuZGxlKSB7IGVuY29kZXIu
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJl
ZFZpZGVvRnJhbWVNZW1vcnkgeyBlbmNvZGVyLmlkZW50aWZpZXIsIGhhbmRsZSB9LCAwKTsgfQot
ICAgICk7Ci19Ci0KLWJvb2wgTGliV2ViUlRDQ29kZWNzOjpjb3B5U2hhcmVkVmlkZW9GcmFtZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lKQotewotICAg
IHJldHVybiBlbmNvZGVyLnNoYXJlZFZpZGVvRnJhbWVXcml0ZXIud3JpdGUoZnJhbWUsCi0gICAg
ICAgIFsmZW5jb2Rlcl0oYXV0byYgc2VtYXBob3JlKSB7IGVuY29kZXIuY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzUHJveHk6OlNldFNoYXJlZFZpZGVvRnJhbWVTZW1h
cGhvcmUgeyBlbmNvZGVyLmlkZW50aWZpZXIsIHNlbWFwaG9yZSB9LCAwKTsgfSwKLSAgICAgICAg
WyZlbmNvZGVyXShhdXRvJiBoYW5kbGUpIHsgZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGVu
Y29kZXIuaWRlbnRpZmllciwgaGFuZGxlIH0sIDApOyB9CisgICAgcmV0dXJuIGVuY29kZXIuc2hh
cmVkVmlkZW9GcmFtZVdyaXRlci53cml0ZShmcmFtZUJ1ZmZlciwKKyAgICAgICAgWyZdKGF1dG8m
IHNlbWFwaG9yZSkgeyBlbmNvZGVyLmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJU
Q0NvZGVjc1Byb3h5OjpTZXRTaGFyZWRWaWRlb0ZyYW1lU2VtYXBob3JlIHsgZW5jb2Rlci5pZGVu
dGlmaWVyLCBzZW1hcGhvcmUgfSwgMCk7IH0sCisgICAgICAgIFsmXShhdXRvJiBoYW5kbGUpIHsg
ZW5jb2Rlci5jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6
U2V0U2hhcmVkVmlkZW9GcmFtZU1lbW9yeSB7IGVuY29kZXIuaWRlbnRpZmllciwgaGFuZGxlIH0s
IDApOyB9CiAgICAgKTsKIH0KIAogaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OmVuY29kZUZyYW1l
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUsIGJvb2wg
c2hvdWxkRW5jb2RlQXNLZXlGcmFtZSkKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgbV9jb25uZWN0
aW9uTG9jayB9OwotCisgICAgTG9ja2VyIGxvY2tlciB7IG1fZW5jb2RlcnNMb2NrIH07CiAgICAg
aWYgKCFlbmNvZGVyLmNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfRVJST1I7CiAKQEAgLTQ2Nyw3ICs0NjQsNyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6cmVn
aXN0ZXJFbmNvZGVGcmFtZUNhbGxiYWNrKEVuY29kZXImIGVuY29kZXIsIHZvaWQqIGVuY29kZQog
CiB2b2lkIExpYldlYlJUQ0NvZGVjczo6c2V0RW5jb2RlUmF0ZXMoRW5jb2RlciYgZW5jb2Rlciwg
dWludDMyX3QgYml0UmF0ZSwgdWludDMyX3QgZnJhbWVSYXRlKQogewotICAgIExvY2tlciBsb2Nr
ZXIgeyBtX2Nvbm5lY3Rpb25Mb2NrIH07CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZW5jb2RlcnNM
b2NrIH07CiAKICAgICBpZiAoIWVuY29kZXIuY29ubmVjdGlvbikgewogICAgICAgICBjYWxsT25N
YWluUnVuTG9vcChbZW5jb2RlcklkZW50aWZpZXIgPSBlbmNvZGVyLmlkZW50aWZpZXIsIGJpdFJh
dGUsIGZyYW1lUmF0ZV0gewpAQCAtNTI3LDIwICs1MjQsMjMgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3M6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQog
ICAgICAgICByZXR1cm47CiAKICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbk9uTWFpblRo
cmVhZFdpdGhMb2NrKCk7Ci0gICAgZGlzcGF0Y2hUb1RocmVhZChbdGhpc10oKSB7Ci0gICAgICAg
IC8vIExvY2sgZXZlcnl0aGluZyBzbyB0aGF0IHdlIGNhbiB1cGRhdGUgZW5jb2Rlci9kZWNvZGVy
IGNvbm5lY3Rpb24uCi0gICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2Nvbm5lY3Rpb25Mb2NrIH07
Ci0gICAgICAgIC8vIFJlY3JlYXRlIGVuY29kZXJzIGFuZCBpbml0aWFsaXplIHRoZW0sIHJlY3Jl
YXRlIGRlY29kZXJzLgorICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb24gPSBt
X2Nvbm5lY3Rpb25dKCkgeworICAgICAgICBmb3IgKGF1dG8mIGRlY29kZXIgOiBtX2RlY29kZXJz
LnZhbHVlcygpKSB7CisgICAgICAgICAgICBjcmVhdGVSZW1vdGVEZWNvZGVyKCpkZWNvZGVyLCAq
Y29ubmVjdGlvbik7CisgICAgICAgICAgICBkZWNvZGVyLT5jb25uZWN0aW9uID0gY29ubmVjdGlv
bi5nZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEluIGNhc2Ugd2UgYXJlIHdhaXRpbmcg
Zm9yIEdQVVByb2Nlc3MsIGxldCdzIGVuZCB0aGUgd2FpdCB0byBub3QgZGVhZGxvY2suCisgICAg
ICAgIGZvciAoYXV0byYgZW5jb2RlciA6IG1fZW5jb2RlcnMudmFsdWVzKCkpCisgICAgICAgICAg
ICBlbmNvZGVyLT5zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyLmRpc2FibGUoKTsKKworICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9lbmNvZGVyc0xvY2sgfTsKICAgICAgICAgZm9yIChhdXRvJiBlbmNv
ZGVyIDogbV9lbmNvZGVycy52YWx1ZXMoKSkgewotICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6Q3JlYXRlRW5jb2RlciB7IGVuY29k
ZXItPmlkZW50aWZpZXIsIGZvcm1hdE5hbWVGcm9tV2ViUlRDQ29kZWNUeXBlKGVuY29kZXItPmNv
ZGVjVHlwZSksIGVuY29kZXItPnBhcmFtZXRlcnMsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NExvd0xhdGVuY3lFbmNvZGVyRW5hYmxlZCgpIH0sIDAp
OworICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
UHJveHk6OkNyZWF0ZUVuY29kZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVyLCBmb3JtYXROYW1lRnJv
bVdlYlJUQ0NvZGVjVHlwZShlbmNvZGVyLT5jb2RlY1R5cGUpLCBlbmNvZGVyLT5wYXJhbWV0ZXJz
LCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjRMb3dM
YXRlbmN5RW5jb2RlckVuYWJsZWQoKSB9LCAwKTsKICAgICAgICAgICAgIGlmIChlbmNvZGVyLT5p
bml0aWFsaXphdGlvbkRhdGEpCi0gICAgICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6SW5pdGlhbGl6ZUVuY29kZXIgeyBlbmNvZGVy
LT5pZGVudGlmaWVyLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPndpZHRoLCBlbmNvZGVy
LT5pbml0aWFsaXphdGlvbkRhdGEtPmhlaWdodCwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRh
LT5zdGFydEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+bWF4Qml0UmF0ZSwg
ZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5taW5CaXRSYXRlLCBlbmNvZGVyLT5pbml0aWFs
aXphdGlvbkRhdGEtPm1heEZyYW1lUmF0ZSB9LCAwKTsKKyAgICAgICAgICAgICAgICBjb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3NQcm94eTo6SW5pdGlhbGl6ZUVuY29k
ZXIgeyBlbmNvZGVyLT5pZGVudGlmaWVyLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPndp
ZHRoLCBlbmNvZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPmhlaWdodCwgZW5jb2Rlci0+aW5pdGlh
bGl6YXRpb25EYXRhLT5zdGFydEJpdFJhdGUsIGVuY29kZXItPmluaXRpYWxpemF0aW9uRGF0YS0+
bWF4Qml0UmF0ZSwgZW5jb2Rlci0+aW5pdGlhbGl6YXRpb25EYXRhLT5taW5CaXRSYXRlLCBlbmNv
ZGVyLT5pbml0aWFsaXphdGlvbkRhdGEtPm1heEZyYW1lUmF0ZSB9LCAwKTsKKyAgICAgICAgICAg
IGVuY29kZXItPmNvbm5lY3Rpb24gPSBjb25uZWN0aW9uLmdldCgpOwogICAgICAgICAgICAgZW5j
b2Rlci0+c2hhcmVkVmlkZW9GcmFtZVdyaXRlciA9IHsgfTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb24uZ2V0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgZm9y
IChhdXRvJiBkZWNvZGVyIDogbV9kZWNvZGVycy52YWx1ZXMoKSkgewotICAgICAgICAgICAgY3Jl
YXRlUmVtb3RlRGVjb2RlcigqZGVjb2RlciwgKm1fY29ubmVjdGlvbik7Ci0gICAgICAgICAgICBk
ZWNvZGVyLT5jb25uZWN0aW9uID0gbV9jb25uZWN0aW9uLmdldCgpOwogICAgICAgICB9CiAgICAg
fSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5oCmluZGV4IDU2OTFlMzgzNzc0MTY3ODVhN2Q0MTI0YWQxNDQ5NDBlNzc4
YjJiZjkuLmEwMTdkZThiODQ1NDFkYzZjOWIzN2ZkMjViMzU3YzAwOThiMjJjMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5oCkBAIC0xMzgsMTMgKzEzOCwxMSBAQCBwcml2YXRlOgogICAgIC8vIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mKTsKIAotICAgIGJvb2wgY29weVNoYXJlZFZpZGVvRnJhbWUoRW5j
b2RlciYsIENWUGl4ZWxCdWZmZXJSZWYpOwotICAgIGJvb2wgY29weVNoYXJlZFZpZGVvRnJhbWUo
RW5jb2RlciYsIGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYpOwotCiBwcml2YXRlOgogICAgIEhh
c2hNYXA8UlRDRGVjb2RlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPj4gbV9k
ZWNvZGVyczsKICAgICBIYXNoU2V0PFJUQ0RlY29kZXJJZGVudGlmaWVyPiBtX2RlY29kaW5nRXJy
b3JzOwogCisgICAgTG9jayBtX2VuY29kZXJzTG9jazsKICAgICBIYXNoTWFwPFJUQ0VuY29kZXJJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8RW5jb2Rlcj4+IG1fZW5jb2RlcnM7CiAKICAgICBz
dGQ6OmF0b21pYzxib29sPiBtX25lZWRzR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHAKaW5kZXggNWViZTEwOGYyMzY0MGQzYTdkZmVkMzBhNWM1ZWE1NzcwNTQ5OTE0
ZS4uNGY3N2YzNmU3MTcyNDU4ZTFmZGZjZjkyMTM2NjM2ZTZjM2RhMmZmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmNwcApAQCAtNTQsNiArNTQsNyBAQCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6TWVk
aWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0sIGNvbnN0IE1lZAog
ICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCiAgICAgLCBtX2hhc1ZpZGVvKHN0cmVhbS5oYXNWaWRl
bygpKQogeworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25u
ZWN0aW9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6c3RhcnRSZWNvcmRpbmcoU3RhcnRSZWNvcmRpbmdDYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAt
ODcsNiArODgsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzdGFydFJlY29yZGluZyhT
dGFydFJlY29yZGluZ0NhbGxiYWNrJiYgY2FsbGJhY2spCiBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
fk1lZGlhUmVjb3JkZXJQcml2YXRlKCkKIHsKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjpSZWxlYXNlUmVjb3JkZXIgeyBtX2lkZW50
aWZpZXIgfSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQogCiB2b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBWaWRl
b1NhbXBsZU1ldGFkYXRhKQpAQCAtMTc2LDYgKzE3OCw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlclBy
aXZhdGU6OnN0b3JhZ2VDaGFuZ2VkKFNoYXJlZE1lbW9yeSogc3RvcmFnZSwgY29uc3QgV2ViQ29y
ZTo6CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcj4mJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgZG91YmxlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZWNv
cmRlcjo6RmV0Y2hEYXRhIHsgfSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIG1pbWVUeXBlID0gbWltZVR5cGUoKV0oYXV0byYmIGRhdGEsIGRvdWJsZSB0
aW1lQ29kZSkgbXV0YWJsZSB7CisgICAgICAgIC8vIEZJWE1FOiBJZiBjb21wbGV0aW9uIGhhbmRs
ZXIgaXMgY2FsbGVkIGZvbGxvd2luZyBhIEdQVVByb2Nlc3MgY29ubmVjdGlvbiBiZWluZyBjbG9z
ZWQsIHdlIHNob3VsZCBmYWlsIHRoZSBNZWRpYVJlY29yZGVyLgogICAgICAgICBSZWZQdHI8RnJh
Z21lbnRlZFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgICAgICBpZiAoZGF0YS5zaXplKCkpCiAg
ICAgICAgICAgICBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLmRhdGEoKSwgZGF0
YS5zaXplKCkpOwpAQCAtMjA2LDYgKzIwOSwxMSBAQCBjb25zdCBTdHJpbmcmIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlOjptaW1lVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faGFzVmlkZW8gPyB2aWRl
b01QNCA6IGF1ZGlvTVA0OwogfQogCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlOjpncHVQcm9j
ZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikKK3sKKyAgICBtX3No
YXJlZFZpZGVvRnJhbWVXcml0ZXIuZGlzYWJsZSgpOworfQorCiB9CiAKICNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFS
ZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01l
ZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggYzJiYWRjOWNiMzliMWVkODY5NDRmOTAzZjVkOTNm
MGQ5YWFkZGMxNi4uNGQ3YTVmNWI5NWFmODI3M2JjZWFhM2RhNGIwMDZlNjVlNzg3ODY4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRl
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRp
YVJlY29yZGVyUHJpdmF0ZS5oCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZSBmaW5hbAogICAgIDogcHVibGljIFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcml2YXRlCi0gICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFS
ZWNvcmRlclByaXZhdGU+IHsKKyAgICAsIHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xp
ZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBNZWRpYVJl
Y29yZGVyUHJpdmF0ZShXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMmKTsKQEAgLTY1LDYgKzY1LDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBhdXNlUmVjb3JkaW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
ZmluYWw7CiAgICAgdm9pZCByZXN1bWVSZWNvcmRpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKIAorICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2
b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKSBm
aW5hbDsKKwogICAgIHZvaWQgc3RvcmFnZUNoYW5nZWQoU2hhcmVkTWVtb3J5KiwgY29uc3QgV2Vi
Q29yZTo6Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBmb3JtYXQsIHNpemVfdCBmcmFtZUNvdW50
KTsKICAgICBib29sIGNvcHlTaGFyZWRWaWRlb0ZyYW1lKENWUGl4ZWxCdWZmZXJSZWYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAppbmRleCAyMTlhNTVkZjFjMjlmZDFjNmY5MzM2
MTFhMjkyNWI1YzNjMDZlMTcwLi5lNWVmNDZlNjA4MjM5NDYyYWE0MDQ4Y2I3ZDNmYTAzNDJlOThi
NTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKQEAgLTE3MCw2ICsxNzAsNyBA
QCB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6c2V0RGlkRmFpbChib29sIHZhbHVlKQog
CiB2b2lkIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRD
bG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpCiB7CisgICAgbV9zaGFyZWRWaWRlb0ZyYW1lV3Jp
dGVyLmRpc2FibGUoKTsKICAgICBtX2RpZEZhaWwgPSB0cnVlOwogICAgIGlmIChtX2NsaWVudCkK
ICAgICAgICAgbV9jbGllbnQtPnNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllclN0YXR1c0RpZEZhaWwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJl
ZFZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hh
cmVkVmlkZW9GcmFtZS5jcHAKaW5kZXggMjk0YTk0ODU2MTc2OWNmNjNkMWFiYWEyNjE4NGMwNzNm
ZjVhNTUyNS4uOWQzNTNlZmZmZjU2MDE0MjFjMTRkNTI1ZGVlMTFiMDY5M2YyMjhmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlk
ZW9GcmFtZS5jcHAKQEAgLTM1LDE0ICszNSwxOSBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6U2hhcmVkVmlk
ZW9GcmFtZVdyaXRlcigpCisgICAgOiBtX3NlbWFwaG9yZShtYWtlVW5pcXVlUmVmPElQQzo6U2Vt
YXBob3JlPigpKQoreworfQorCiBib29sIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXI6OndhaXQoY29u
c3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYgbmV3U2VtYXBob3JlQ2FsbGJhY2sp
CiB7Ci0gICAgaWYgKCFtX3NlbWFwaG9yZSkgewotICAgICAgICBtX3NlbWFwaG9yZSA9IG1ha2VV
bmlxdWU8SVBDOjpTZW1hcGhvcmU+KCk7Ci0gICAgICAgIG5ld1NlbWFwaG9yZUNhbGxiYWNrKCpt
X3NlbWFwaG9yZSk7CisgICAgaWYgKCFtX2lzU2VtYXBob3JlSW5Vc2UpIHsKKyAgICAgICAgbV9p
c1NlbWFwaG9yZUluVXNlID0gdHJ1ZTsKKyAgICAgICAgbmV3U2VtYXBob3JlQ2FsbGJhY2sobV9z
ZW1hcGhvcmUuZ2V0KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJu
IG1fc2VtYXBob3JlLT53YWl0KCk7CisgICAgcmV0dXJuICFtX2lzRGlzYWJsZWQgJiYgbV9zZW1h
cGhvcmUtPndhaXQoKTsKIH0KIAogYm9vbCBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOjphbGxvY2F0
ZVN0b3JhZ2Uoc2l6ZV90IHNpemUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU2hhcmVkTWVt
b3J5OjpJUENIYW5kbGUmKT4mIG5ld01lbW9yeUNhbGxiYWNrKQpAQCAtOTUsNiArMTAwLDEyIEBA
IGJvb2wgU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6d3JpdGUoY29uc3Qgd2VicnRjOjpWaWRlb0Zy
YW1lJiBmcmFtZSwgY29uc3QgRnVuY3RpCiB9CiAjZW5kaWYKIAordm9pZCBTaGFyZWRWaWRlb0Zy
YW1lV3JpdGVyOjpkaXNhYmxlKCkKK3sKKyAgICBtX2lzRGlzYWJsZWQgPSB0cnVlOworICAgIG1f
c2VtYXBob3JlLT5zaWduYWwoKTsKK30KKwogUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IFNo
YXJlZFZpZGVvRnJhbWVSZWFkZXI6OnJlYWQoKQogewogICAgIGlmICghbV9zdG9yYWdlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9G
cmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9G
cmFtZS5oCmluZGV4IDk4NTUxMmZjNjgwMTI3YWFjNzE3M2ViYjVhMTQxNTA4NjM3ZjAyMWEuLmMy
MDU4NTk0OTZhNWQ4NTEwNjY1NmNlNTc5MTI5NDlhNDEyN2Y4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Vbmlx
dWVSZWYuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsK
IHR5cGVkZWYgc3RydWN0IF9fQ1ZQaXhlbEJ1ZmZlclBvb2wqIENWUGl4ZWxCdWZmZXJQb29sUmVm
OwpAQCAtNDgsMjAgKzQ5LDIzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgU2hhcmVkVmlk
ZW9GcmFtZVdyaXRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgU2hhcmVkVmlkZW9GcmFtZVdyaXRlcigpID0gZGVmYXVsdDsKKyAgICBTaGFyZWRWaWRlb0Zy
YW1lV3JpdGVyKCk7CiAKICAgICBib29sIHdyaXRlKENWUGl4ZWxCdWZmZXJSZWYsIGNvbnN0IEZ1
bmN0aW9uPHZvaWQoSVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0
IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJik+Jik7CiAjaWYgVVNFKExJQldFQlJUQykKICAgICBi
b29sIHdyaXRlKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQo
SVBDOjpTZW1hcGhvcmUmKT4mLCBjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFNoYXJlZE1lbW9y
eTo6SVBDSGFuZGxlJik+Jik7CiAjZW5kaWYKKyAgICB2b2lkIGRpc2FibGUoKTsKIAogcHJpdmF0
ZToKICAgICBib29sIHdhaXQoY29uc3QgRnVuY3Rpb248dm9pZChJUEM6OlNlbWFwaG9yZSYpPiYp
OwogICAgIGJvb2wgYWxsb2NhdGVTdG9yYWdlKHNpemVfdCwgY29uc3QgRnVuY3Rpb248dm9pZChj
b25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwogICAgIGJvb2wgcHJlcGFyZVdyaXRp
bmcoY29uc3QgV2ViQ29yZTo6U2hhcmVkVmlkZW9GcmFtZUluZm8mLCBjb25zdCBGdW5jdGlvbjx2
b2lkKElQQzo6U2VtYXBob3JlJik+JiwgY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTaGFyZWRN
ZW1vcnk6OklQQ0hhbmRsZSYpPiYpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPElQQzo6U2VtYXBo
b3JlPiBtX3NlbWFwaG9yZTsKKyAgICBVbmlxdWVSZWY8SVBDOjpTZW1hcGhvcmU+IG1fc2VtYXBo
b3JlOwogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fc3RvcmFnZTsKKyAgICBib29sIG1faXNT
ZW1hcGhvcmVJblVzZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzRGlzYWJsZWQgeyBmYWxzZSB9
OwogfTsKIAogY2xhc3MgU2hhcmVkVmlkZW9GcmFtZVJlYWRlciB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjAwM2E3OGM5
M2E1YWFlNTg5YjAzMGM0NGU3NjYyYzU2MGNjZWNiZi4uM2U5MWVhZWZlM2VkZTBkZjYzMjUyMDJk
ZTZiMDE2N2MwMWVjZWI4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAyLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBMaWJXZWJSVENDb2RlY3Mg
U2hhcmVkVmlkZW9GcmFtZVdyaXRlcnMgY2FuIGRlYWRsb2NrIGluIGNhc2Ugb2YgR1BVUHJvY2Vz
cyBjcmFzaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2MTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGVzdCBhcyBpdCBpcyBjcmFzaGlu
ZyBpbiBHVEsgYm90LgorICAgICAgICAqIHdlYnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1wcm9jZXNz
LWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2VicnRjL3ZwOC10aGVuLWgy
NjQtZ3B1LXByb2Nlc3MtY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMjItMDItMDQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIExpYldlYlJUQ0NvZGVjcyBTaGFy
ZWRWaWRlb0ZyYW1lV3JpdGVycyBjYW4gZGVhZGxvY2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNzIGNy
YXNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRjODg2
MGQzNTRiZGQ3ZjNjMDRkMjJjYWUyYjkwZWVjMGJmNDA1ZWEuLjljNTYyNWQ3ZWMzNmJkMWJkM2I1
ZTg0MTFmN2NhOGY4ZThhYjk5NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0yMTksNiArMjE5LDkgQEAgd2Via2l0Lm9yZy9iLzIwODk4OCBodHRwL3dw
dC93ZWJ4ciBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIwODk4OCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnhyIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjA4OTg4IHdlYnhyIFsg
U2tpcCBdCiAKKyMgQ3Jhc2ggb24gRVdTIGJvdC4KK3dlYnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1w
cm9jZXNzLWNyYXNoLmh0bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwogIyBFbmQgb2YgVHJpYWdlZCBFeHBlY3RhdGlvbnMKICMgTGVnYWN5IEV4cGVjdGF0
aW9ucyBzZWN0aW9ucyBiZWxvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZwOC10
aGVuLWgyNjQtZ3B1LXByb2Nlc3MtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
cnRjL3ZwOC10aGVuLWgyNjQtZ3B1LXByb2Nlc3MtY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMwZDVjM2QwZjBhMDg0ZDcwZTYyZDk0M2M4ODFlYTE2MjZlNzg2NGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFz
aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKKworUEFTUyBTZXR0aW5nIHZpZGVvIGV4
Y2hhbmdlIHdpdGggVlA4CitQQVNTIFNldHRpbmcgZXhjaGFuZ2Ugd2l0aCBIMjY0IHVzaW5nIFZQ
OCBkZWNvZGVkIHN0cmVhbSBhcyBpbnB1dAorUEFTUyBGcmFtZXMgc2hvdWxkIGJlIGNvbWluZyBl
dmVuIGFmdGVyIGdwdSBwcm9jZXNzIGNyYXNoCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YnJ0Yy92cDgtdGhlbi1oMjY0LWdwdS1wcm9jZXNzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4
ZGM0OWVhNDRjMjk4YTI2YWZjYzlhYjU4YTAwZmUzNjRkZmY3NWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvdnA4LXRoZW4taDI2NC1ncHUtcHJvY2Vzcy1jcmFzaC5odG1s
CkBAIC0wLDAgKzEsOTQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlRlc3RpbmcgR1BV
IHByb2Nlc3MgY3Jhc2g8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvMSIgYXV0b3BsYXkgcGxheXNJbmxpbmUgd2lk
dGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8y
IiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4K
KyAgICAgICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQ+Cit2YXIgcmVjZWl2aW5nQ29ubmVjdGlvbjsKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4g
eworICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86
IHRydWV9KS50aGVuKChsb2NhbFN0cmVhbSkgPT4geworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgdHJhY2sgPSBsb2NhbFN0cmVh
bS5nZXRWaWRlb1RyYWNrcygpWzBdOworCisgICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygo
Zmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmFk
ZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CisgICAgICAgICAgICAgICAgZmlyc3RDb25uZWN0
aW9uLmdldFRyYW5zY2VpdmVycygpWzBdLnNldENvZGVjUHJlZmVyZW5jZXMoW3ttaW1lVHlwZTog
InZpZGVvL1ZQOCIsIGNsb2NrUmF0ZTogOTAwMDB9XSk7CisgICAgICAgICAgICB9LCAoc2Vjb25k
Q29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBz
ZWNvbmRDb25uZWN0aW9uOworICAgICAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFj
ayA9ICh0cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHJlbW90ZVRyYWNrID0g
dHJhY2tFdmVudC50cmFjazsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50
LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsK
KyAgICAgICAgfSk7CisgICAgfSkudGhlbigocmVtb3RlU3RyZWFtKSA9PiB7CisgICAgICAgIHZp
ZGVvMS5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAgICAgIHJldHVybiB2aWRlbzEucGxh
eSgpOworICAgIH0pOworfSwgIlNldHRpbmcgdmlkZW8gZXhjaGFuZ2Ugd2l0aCBWUDgiKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICB2aWRlbzIuc3JjT2JqZWN0ID0gYXdhaXQg
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBjcmVhdGVDb25uZWN0
aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24u
YWRkVHJhY2sodmlkZW8xLnNyY09iamVjdC5nZXRWaWRlb1RyYWNrcygpWzBdLCB2aWRlbzEuc3Jj
T2JqZWN0KTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAg
IHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAgICAgICAgc2Vj
b25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAg
ICByZW1vdGVUcmFjayA9IHRyYWNrRXZlbnQudHJhY2s7CisgICAgICAgICAgICAgICAgcmVzb2x2
ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgfTsKKyAgICAgICAgfSk7Cisg
ICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsK
KyAgICB9KTsKKyAgICBhd2FpdCB2aWRlbzIucGxheSgpOworfSwgIlNldHRpbmcgZXhjaGFuZ2Ug
d2l0aCBIMjY0IHVzaW5nIFZQOCBkZWNvZGVkIHN0cmVhbSBhcyBpbnB1dCIpOworCithc3luYyBm
dW5jdGlvbiBnZXRJbmJvdW5kUlRQU3RhdHNOdW1iZXJPZkRlY29kZWRGcmFtZXMoY29ubmVjdGlv
bikKK3sKKyAgICB2YXIgcmVwb3J0ID0gYXdhaXQgY29ubmVjdGlvbi5nZXRTdGF0cygpOworICAg
IHZhciBmcmFtZXNEZWNvZGVkOworICAgIHJlcG9ydC5mb3JFYWNoKChzdGF0SXRlbSkgPT4gewor
ICAgICAgICBpZiAoc3RhdEl0ZW0udHlwZSA9PT0gImluYm91bmQtcnRwIikKKyAgICAgICAgICAg
IGZyYW1lc0RlY29kZWQgPSBzdGF0SXRlbS5mcmFtZXNEZWNvZGVkOworICAgIH0pOworICAgIHJl
dHVybiBmcmFtZXNEZWNvZGVkOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0RnJhbWVEZWNvZGVk
SW5jcmVhc2VkKGNvbm5lY3Rpb24sIGNvdW50LCBwcmV2aW91c0ZyYW1lc051bWJlcikKK3sKKyAg
ICBpZiAocHJldmlvdXNGcmFtZXNOdW1iZXIgPT09IHVuZGVmaW5lZCkgeworICAgICAgICBsZXQg
bnVtYmVyID0gYXdhaXQgZ2V0SW5ib3VuZFJUUFN0YXRzTnVtYmVyT2ZEZWNvZGVkRnJhbWVzKGNv
bm5lY3Rpb24pOworICAgICAgICBhd2FpdCB3YWl0Rm9yKDEwMDApOworICAgICAgICByZXR1cm4g
dGVzdEZyYW1lRGVjb2RlZEluY3JlYXNlZChjb25uZWN0aW9uLCAwLCBudW1iZXIpOworICAgIH0K
KworICAgIHZhciBudW1iZXIgPSBhd2FpdCBnZXRJbmJvdW5kUlRQU3RhdHNOdW1iZXJPZkRlY29k
ZWRGcmFtZXMoY29ubmVjdGlvbik7CisgICAgaWYgKHByZXZpb3VzRnJhbWVzTnVtYmVyICYmIG51
bWJlciA+IHByZXZpb3VzRnJhbWVzTnVtYmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
Y291bnQgPj0gMjApCisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgidGVzdCBpbmNyZWFz
aW5nIGZyYW1lIGRlY29kZWQgdGltZWQgb3V0Iik7CisKKyAgICBhd2FpdCB3YWl0Rm9yKDEwMDAp
OworICAgIHJldHVybiB0ZXN0RnJhbWVEZWNvZGVkSW5jcmVhc2VkKGNvbm5lY3Rpb24sICsrY291
bnQsIHByZXZpb3VzRnJhbWVzTnVtYmVyKTsKK30KKworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRl
c3QpID0+IHsKKyAgICBhd2FpdCB0ZXN0RnJhbWVEZWNvZGVkSW5jcmVhc2VkKHJlY2VpdmluZ0Nv
bm5lY3Rpb24pOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci50ZXJtaW5hdGVHUFVQcm9jZXNzKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9
PiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDApKTsKKyAgICBhd2FpdCB0ZXN0RnJhbWVEZWNvZGVk
SW5jcmVhc2VkKHJlY2VpdmluZ0Nvbm5lY3Rpb24pOworfSwgIkZyYW1lcyBzaG91bGQgYmUgY29t
aW5nIGV2ZW4gYWZ0ZXIgZ3B1IHByb2Nlc3MgY3Jhc2giKTsKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>