<?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>238938</bug_id>
          
          <creation_ts>2022-04-07 08:18:01 -0700</creation_ts>
          <short_desc>Remove unneeded CoreIPC messages + handlers related to StorageManagerSet.</short_desc>
          <delta_ts>2022-07-01 11:57:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Process Model</component>
          <version>Other</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="Gavin">gavin.p</reporter>
          <assigned_to name="Gavin">gavin.p</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1859264</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin">gavin.p</who>
    <bug_when>2022-04-07 08:18:01 -0700</bug_when>
    <thetext>Remove unneeded CoreIPC messages + handlers related to StorageManagerSet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859265</commentid>
    <comment_count>1</comment_count>
      <attachid>456928</attachid>
    <who name="Gavin">gavin.p</who>
    <bug_when>2022-04-07 08:21:26 -0700</bug_when>
    <thetext>Created attachment 456928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859266</commentid>
    <comment_count>2</comment_count>
    <who name="Gavin">gavin.p</who>
    <bug_when>2022-04-07 08:22:24 -0700</bug_when>
    <thetext>I think we can probably remove some of the implementation too. But wanted to do an initial EWS pass to confirm these aren&apos;t needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859275</commentid>
    <comment_count>3</comment_count>
      <attachid>456933</attachid>
    <who name="Gavin">gavin.p</who>
    <bug_when>2022-04-07 09:07:57 -0700</bug_when>
    <thetext>Created attachment 456933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859353</commentid>
    <comment_count>4</comment_count>
      <attachid>456952</attachid>
    <who name="Gavin">gavin.p</who>
    <bug_when>2022-04-07 11:50:33 -0700</bug_when>
    <thetext>Created attachment 456952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859705</commentid>
    <comment_count>5</comment_count>
      <attachid>456952</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 07:25:03 -0700</bug_when>
    <thetext>Comment on attachment 456952
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859710</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-08 07:34:30 -0700</bug_when>
    <thetext>/Volumes/Data/worker/Commit-Queue/build/Source/WebKit/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859722</commentid>
    <comment_count>7</comment_count>
      <attachid>457069</attachid>
    <who name="Gavin">gavin.p</who>
    <bug_when>2022-04-08 07:56:42 -0700</bug_when>
    <thetext>Created attachment 457069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859723</commentid>
    <comment_count>8</comment_count>
    <who name="Gavin">gavin.p</who>
    <bug_when>2022-04-08 07:58:03 -0700</bug_when>
    <thetext>@Chris - please can I get another r?. I&apos;ve not changed the code, I&apos;ve just updated the change log as I previously deleted the &quot;Reviewed by NOBODY (OOPS!).&quot; and commit-queue got upset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859726</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-08 08:01:15 -0700</bug_when>
    <thetext>(In reply to Gavin from comment #8)
&gt; @Chris - please can I get another r?. I&apos;ve not changed the code, I&apos;ve just
&gt; updated the change log as I previously deleted the &quot;Reviewed by NOBODY
&gt; (OOPS!).&quot; and commit-queue got upset.

Sure, but in the future, you can just put my name as the reviewer in the ChangeLog to avoid that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859866</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-08 13:28:14 -0700</bug_when>
    <thetext>Committed r292631 (249451@main): &lt;https://commits.webkit.org/249451@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457069.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859867</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-08 13:29:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/91499896&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1880065</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-07-01 11:57:10 -0700</bug_when>
    <thetext>*** Bug 211157 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456928</attachid>
            <date>2022-04-07 08:21:26 -0700</date>
            <delta_ts>2022-04-07 09:40:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238938-20220407082124.patch</filename>
            <type>text/plain</type>
            <size>9230</size>
            <attacher name="Gavin">gavin.p</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3MmE1ZTJmNGQ1ZmU1M2Q5
MTBmY2Y3ZTUyOGY1YWJlNjc3OTI2MjEuLjMwZjUyNDIwZGJkNjdmZmJjNjM5ZWE1ODNmN2RjOTY2
MDg3MWU3MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDQtMDcgIEdhdmluIFBo
aWxsaXBzICA8Z2F2aW4ucEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHVubmVlZGVkIENv
cmVJUEMgbWVzc2FnZXMgYW5kIGNvcnJlc3BvbmRpbmcgaGFuZGxlcnMgcmVsYXRlZCB0byBTdG9y
YWdlTWFuYWdlclNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4OTM4CisKKyAgICAgICAgVGhlcmUgYXJlIHZhcmlvdXMgQ29yZUlQQyBtZXNzYWdl
cyByZWxhdGVkIHRvIFN0b3JhZ2VNYW5hZ2VyU2V0IHdoaWNoIGFyZSBubyBsb25nZXIgbmVlZGVk
LiBUaGlzCisgICAgICAgIGNoYW5nZSByZW1vdmVzIHRoZW0uCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVjdFRvVHJhbnNpZW50
TG9jYWxTdG9yYWdlQXJlYSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5h
Z2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6Z2V0VmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5p
bjoKKwogMjAyMi0wNC0wNyAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIElQQzo6Q29ubmVjdGlvbiBzaG91bGQgc3VwcG9ydCBkaXZlcnRpbmcgYWxsIG1l
c3NhZ2VzIHRvIGEgbWVzc2FnZSBxdWV1ZSBpbiBvdGhlciB0aHJlYWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXJTZXQuY3BwCmluZGV4IDkzZjExMTgyY2VlZDMxZGQwODRlYTQ2M2ZlYzhiZDkwMjRlNmRhNjEu
LjQ2YzA3MTRkYTMzZmIyMTY4YmVlYjAwNmZhMmEzZWIwYTg0YjBiN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyU2V0LmNwcApAQCAtMjk4LDgxICsyOTgsNiBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0
OjpyZW5hbWVPcmlnaW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIG9sZE5h
bQogICAgIH0pOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9Mb2NhbFN0
b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIFNl
Y3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRhdGEsIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKLQotICAgIGF1dG8qIHN0b3JhZ2VNYW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNl
c3Npb25JRCk7Ci0gICAgaWYgKCFzdG9yYWdlTWFuYWdlcikgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihzdGQ6Om51bGxvcHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0
byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlTG9jYWxTdG9yYWdlQXJlYShz
dG9yYWdlTmFtZXNwYWNlSUQsIFdURk1vdmUob3JpZ2luRGF0YSksIG1fcXVldWUuY29weVJlZigp
KTsKLSAgICBpZiAoIXN0b3JhZ2VBcmVhKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIHN0b3JhZ2VB
cmVhSUQgPSBzdG9yYWdlQXJlYS0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gaXRlciA9IG1fc3Rv
cmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBzdG9yYWdlQXJlYSkuaXRlcmF0b3I7Ci0gICAg
QVNTRVJUX1VOVVNFRChpdGVyLCBzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZS5nZXQoKSk7Ci0K
LSAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQXJlYUlEKTsKLQotICAgIHN0b3JhZ2VBcmVh
LT5hZGRMaXN0ZW5lcihjb25uZWN0aW9uLnVuaXF1ZUlEKCkpOwotfQotCi12b2lkIFN0b3JhZ2VN
YW5hZ2VyU2V0Ojpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdG9yYWdlTmFtZXNw
YWNlSWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRv
cExldmVsT3JpZ2luRGF0YSwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgQ29ubmVj
dFRvU3RvcmFnZUFyZWFDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0
b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsKLSAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBhdXRvKiBzdG9yYWdlQXJlYSA9IHN0b3JhZ2VNYW5hZ2VyLT5jcmVh
dGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92ZSh0
b3BMZXZlbE9yaWdpbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbkRhdGEpLCBtX3F1ZXVlLmNvcHlSZWYo
KSk7Ci0gICAgaWYgKCFzdG9yYWdlQXJlYSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihz
dGQ6Om51bGxvcHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byBzdG9yYWdl
QXJlYUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIGl0ZXIgPSBtX3N0
b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOwotICAg
IEFTU0VSVF9VTlVTRUQoaXRlciwgc3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUuZ2V0KCkpOwot
Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFyZWFJRCk7Ci0KLSAgICBzdG9yYWdlQXJl
YS0+YWRkTGlzdGVuZXIoY29ubmVjdGlvbi51bmlxdWVJRCgpKTsKLX0KLQotdm9pZCBTdG9yYWdl
TWFuYWdlclNldDo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIFNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRh
dGEsIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGF1dG8qIHN0b3JhZ2VNYW5h
Z2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNlc3Npb25JRCk7Ci0gICAgaWYgKCFzdG9yYWdl
TWFuYWdlcikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFu
YWdlci0+Y3JlYXRlU2Vzc2lvblN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92
ZShvcmlnaW5EYXRhKSwgbV9xdWV1ZS5jb3B5UmVmKCkpOwotICAgIGlmICghc3RvcmFnZUFyZWEp
IHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGF1dG8gc3RvcmFnZUFyZWFJRCA9IHN0b3JhZ2VBcmVhLT5pZGVu
dGlmaWVyKCk7Ci0gICAgYXV0byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVh
SUQsIHN0b3JhZ2VBcmVhKS5pdGVyYXRvcjsKLSAgICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3Jh
Z2VBcmVhID09IGl0ZXItPnZhbHVlLmdldCgpKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
b3JhZ2VBcmVhSUQpOwotICAgIAotICAgIHN0b3JhZ2VBcmVhLT5hZGRMaXN0ZW5lcihjb25uZWN0
aW9uLnVuaXF1ZUlEKCkpOwotfQotCiB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpkaXNjb25uZWN0
RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJ
ZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CkBAIC0zODksMTYgKzMxNCw2IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmRpc2Nvbm5l
Y3RGcm9tU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTCiAgICAgICAg
IG1fc3RvcmFnZUFyZWFzLnJlbW92ZShzdG9yYWdlQXJlYUlEKTsKIH0KIAotdm9pZCBTdG9yYWdl
TWFuYWdlclNldDo6Z2V0VmFsdWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFn
ZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIEdldFZhbHVlc0NhbGxiYWNrJiYgY29tcGxl
dGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBj
b25zdCBhdXRvJiBzdG9yYWdlQXJlYSA9IG1fc3RvcmFnZUFyZWFzLmdldChzdG9yYWdlQXJlYUlE
KTsKLSAgICBBU1NFUlQoIXN0b3JhZ2VBcmVhIHx8IHN0b3JhZ2VBcmVhLT5oYXNMaXN0ZW5lcihj
b25uZWN0aW9uLnVuaXF1ZUlEKCkpKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VB
cmVhID8gc3RvcmFnZUFyZWEtPml0ZW1zKCkgOiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpKTsK
LX0KLQogdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJl
YUltcGxJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCmluZGV4IGFjMTVmZWVkNDYwMjM1
NTlhYzM2ODUyNTlmMzA3ZTU2YjUyM2I4ZjAuLmQ3MTRhYmMwZTE0MTllODdiYzY3OWYyNWY2ZDdm
Y2IzNjdiOGVkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCkBAIC04NCwxMSArODQsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZmx1c2hMb2NhbFN0b3JhZ2UoKTsKIAogICAgIC8vIE1lc3NhZ2Ug
SGFuZGxlcnMKLSAgICB2b2lkIGNvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0
aW9uJiwgUEFMOjpTZXNzaW9uSUQgLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgU2VjdXJp
dHlPcmlnaW5EYXRhJiYsIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2smJik7Ci0gICAgdm9p
ZCBjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFBB
TDo6U2Vzc2lvbklEICwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIFNlY3VyaXR5T3JpZ2lu
RGF0YSYmLCBTZWN1cml0eU9yaWdpbkRhdGEmJiwgQ29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFj
ayYmKTsKLSAgICB2b2lkIGNvbm5lY3RUb1Nlc3Npb25TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rp
b24mLCBQQUw6OlNlc3Npb25JRCwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIFNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBDb25uZWN0VG9TdG9yYWdlQXJlYUNhbGxiYWNrJiYpOwogICAgIHZvaWQg
ZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlk
ZW50aWZpZXIpOwotICAgIHZvaWQgZ2V0VmFsdWVzKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VB
cmVhSWRlbnRpZmllciwgR2V0VmFsdWVzQ2FsbGJhY2smJik7CiAgICAgdm9pZCBzZXRJdGVtKElQ
Qzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBsSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2
b2lkIHJlbW92ZUl0ZW0oSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBT
dG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbGVh
cihJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1w
bElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluCmluZGV4
IDM3YmE2OWNkYmVjMDUyNGYzM2RkMzVmNDgzOTY0ZTcxZTI0YjdjYzEuLjg3MmU1NTEwMDdhZmRl
N2ZlNWFmMDY2OTk0NmFjMzNiNzk0MTIzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJT
ZXQubWVzc2FnZXMuaW4KQEAgLTIxLDExICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3Nh
Z2VzIC0+IFN0b3JhZ2VNYW5hZ2VyU2V0IHsKLSAgICBDb25uZWN0VG9Mb2NhbFN0b3JhZ2VBcmVh
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlN0b3JhZ2VB
cmVhSWRlbnRpZmllcj4gc3RvcmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9u
Ci0gICAgQ29ubmVjdFRvVHJhbnNpZW50TG9jYWxTdG9yYWdlQXJlYShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgc3RvcmFnZU5hbWVz
cGFjZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsU2VjdXJp
dHlPcmlnaW5EYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5
T3JpZ2luRGF0YSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZp
ZXI+IHN0b3JhZ2VBcmVhSUQpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVjdGlvbgotICAgIENvbm5l
Y3RUb1Nlc3Npb25TdG9yYWdlQXJlYShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6
U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgc3RvcmFnZU5hbWVzcGFjZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSkgLT4gKHN0ZDo6b3B0
aW9uYWw8V2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXI+IHN0b3JhZ2VBcmVhSUQpIFN5bmNo
cm9ub3VzIFdhbnRzQ29ubmVjdGlvbgogICAgIERpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEoV2Vi
S2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCkgV2FudHNDb25uZWN0aW9u
Ci0gICAgR2V0VmFsdWVzKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVh
SUQpIC0+IChIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB2YWx1ZXMpIFN5bmNocm9ub3VzIFdhbnRz
Q29ubmVjdGlvbgogICAgIENsb25lU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIGZyb21TdG9y
YWdlTmFtZXNwYWNlSUQsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgdG9TdG9y
YWdlTmFtZXNwYWNlSUQpIFdhbnRzQ29ubmVjdGlvbgogCiAgICAgU2V0SXRlbShXZWJLaXQ6OlN0
b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElk
ZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSwgU3RyaW5n
IHVybFN0cmluZykgLT4gKGJvb2wgcXVvdGFFeGNlcHRpb24pIFdhbnRzQ29ubmVjdGlvbgo=
</data>
<flag name="commit-queue"
          id="485388"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456933</attachid>
            <date>2022-04-07 09:07:57 -0700</date>
            <delta_ts>2022-04-07 11:50:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238938-20220407090755.patch</filename>
            <type>text/plain</type>
            <size>9556</size>
            <attacher name="Gavin">gavin.p</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3MmE1ZTJmNGQ1ZmU1M2Q5
MTBmY2Y3ZTUyOGY1YWJlNjc3OTI2MjEuLjMwZjUyNDIwZGJkNjdmZmJjNjM5ZWE1ODNmN2RjOTY2
MDg3MWU3MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDQtMDcgIEdhdmluIFBo
aWxsaXBzICA8Z2F2aW4ucEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHVubmVlZGVkIENv
cmVJUEMgbWVzc2FnZXMgYW5kIGNvcnJlc3BvbmRpbmcgaGFuZGxlcnMgcmVsYXRlZCB0byBTdG9y
YWdlTWFuYWdlclNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4OTM4CisKKyAgICAgICAgVGhlcmUgYXJlIHZhcmlvdXMgQ29yZUlQQyBtZXNzYWdl
cyByZWxhdGVkIHRvIFN0b3JhZ2VNYW5hZ2VyU2V0IHdoaWNoIGFyZSBubyBsb25nZXIgbmVlZGVk
LiBUaGlzCisgICAgICAgIGNoYW5nZSByZW1vdmVzIHRoZW0uCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6Y29ubmVjdFRvVHJhbnNpZW50
TG9jYWxTdG9yYWdlQXJlYSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5h
Z2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlTWFuYWdlclNldDo6Z2V0VmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5p
bjoKKwogMjAyMi0wNC0wNyAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIElQQzo6Q29ubmVjdGlvbiBzaG91bGQgc3VwcG9ydCBkaXZlcnRpbmcgYWxsIG1l
c3NhZ2VzIHRvIGEgbWVzc2FnZSBxdWV1ZSBpbiBvdGhlciB0aHJlYWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXJTZXQuY3BwCmluZGV4IDkzZjExMTgyY2VlZDMxZGQwODRlYTQ2M2ZlYzhiZDkwMjRlNmRhNjEu
LjQ2YzA3MTRkYTMzZmIyMTY4YmVlYjAwNmZhMmEzZWIwYTg0YjBiN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyU2V0LmNwcApAQCAtMjk4LDgxICsyOTgsNiBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0
OjpyZW5hbWVPcmlnaW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIG9sZE5h
bQogICAgIH0pOwogfQogCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9Mb2NhbFN0
b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIFNl
Y3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRhdGEsIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKLQotICAgIGF1dG8qIHN0b3JhZ2VNYW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNl
c3Npb25JRCk7Ci0gICAgaWYgKCFzdG9yYWdlTWFuYWdlcikgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihzdGQ6Om51bGxvcHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0
byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFuYWdlci0+Y3JlYXRlTG9jYWxTdG9yYWdlQXJlYShz
dG9yYWdlTmFtZXNwYWNlSUQsIFdURk1vdmUob3JpZ2luRGF0YSksIG1fcXVldWUuY29weVJlZigp
KTsKLSAgICBpZiAoIXN0b3JhZ2VBcmVhKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIHN0b3JhZ2VB
cmVhSUQgPSBzdG9yYWdlQXJlYS0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gaXRlciA9IG1fc3Rv
cmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBzdG9yYWdlQXJlYSkuaXRlcmF0b3I7Ci0gICAg
QVNTRVJUX1VOVVNFRChpdGVyLCBzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZS5nZXQoKSk7Ci0K
LSAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQXJlYUlEKTsKLQotICAgIHN0b3JhZ2VBcmVh
LT5hZGRMaXN0ZW5lcihjb25uZWN0aW9uLnVuaXF1ZUlEKCkpOwotfQotCi12b2lkIFN0b3JhZ2VN
YW5hZ2VyU2V0Ojpjb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdG9yYWdlTmFtZXNw
YWNlSWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRv
cExldmVsT3JpZ2luRGF0YSwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgQ29ubmVj
dFRvU3RvcmFnZUFyZWFDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0
b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsKLSAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBhdXRvKiBzdG9yYWdlQXJlYSA9IHN0b3JhZ2VNYW5hZ2VyLT5jcmVh
dGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92ZSh0
b3BMZXZlbE9yaWdpbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbkRhdGEpLCBtX3F1ZXVlLmNvcHlSZWYo
KSk7Ci0gICAgaWYgKCFzdG9yYWdlQXJlYSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihz
dGQ6Om51bGxvcHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byBzdG9yYWdl
QXJlYUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIGl0ZXIgPSBtX3N0
b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOwotICAg
IEFTU0VSVF9VTlVTRUQoaXRlciwgc3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUuZ2V0KCkpOwot
Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFyZWFJRCk7Ci0KLSAgICBzdG9yYWdlQXJl
YS0+YWRkTGlzdGVuZXIoY29ubmVjdGlvbi51bmlxdWVJRCgpKTsKLX0KLQotdm9pZCBTdG9yYWdl
TWFuYWdlclNldDo6Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIFNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRh
dGEsIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGF1dG8qIHN0b3JhZ2VNYW5h
Z2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNlc3Npb25JRCk7Ci0gICAgaWYgKCFzdG9yYWdl
TWFuYWdlcikgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byogc3RvcmFnZUFyZWEgPSBzdG9yYWdlTWFu
YWdlci0+Y3JlYXRlU2Vzc2lvblN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92
ZShvcmlnaW5EYXRhKSwgbV9xdWV1ZS5jb3B5UmVmKCkpOwotICAgIGlmICghc3RvcmFnZUFyZWEp
IHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGF1dG8gc3RvcmFnZUFyZWFJRCA9IHN0b3JhZ2VBcmVhLT5pZGVu
dGlmaWVyKCk7Ci0gICAgYXV0byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVh
SUQsIHN0b3JhZ2VBcmVhKS5pdGVyYXRvcjsKLSAgICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3Jh
Z2VBcmVhID09IGl0ZXItPnZhbHVlLmdldCgpKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
b3JhZ2VBcmVhSUQpOwotICAgIAotICAgIHN0b3JhZ2VBcmVhLT5hZGRMaXN0ZW5lcihjb25uZWN0
aW9uLnVuaXF1ZUlEKCkpOwotfQotCiB2b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpkaXNjb25uZWN0
RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJ
ZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CkBAIC0zODksMTYgKzMxNCw2IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmRpc2Nvbm5l
Y3RGcm9tU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTCiAgICAgICAg
IG1fc3RvcmFnZUFyZWFzLnJlbW92ZShzdG9yYWdlQXJlYUlEKTsKIH0KIAotdm9pZCBTdG9yYWdl
TWFuYWdlclNldDo6Z2V0VmFsdWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFn
ZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIEdldFZhbHVlc0NhbGxiYWNrJiYgY29tcGxl
dGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBj
b25zdCBhdXRvJiBzdG9yYWdlQXJlYSA9IG1fc3RvcmFnZUFyZWFzLmdldChzdG9yYWdlQXJlYUlE
KTsKLSAgICBBU1NFUlQoIXN0b3JhZ2VBcmVhIHx8IHN0b3JhZ2VBcmVhLT5oYXNMaXN0ZW5lcihj
b25uZWN0aW9uLnVuaXF1ZUlEKCkpKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VB
cmVhID8gc3RvcmFnZUFyZWEtPml0ZW1zKCkgOiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpKTsK
LX0KLQogdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJl
YUltcGxJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCmluZGV4IGFjMTVmZWVkNDYwMjM1
NTlhYzM2ODUyNTlmMzA3ZTU2YjUyM2I4ZjAuLmY1YjllOTQ5MThhM2M3MTU3OTRlMGRjMmVlN2E1
ZjNjMDc5YmFiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCkBAIC03Niw3ICs3Niw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlbmFtZU9yaWdpbihQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwg
Y29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7Ci0gICAgYm9v
bCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwg
VW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2Rlcik7CiAKIHByaXZhdGU6CiAgICAg
U3RvcmFnZU1hbmFnZXJTZXQoKTsKQEAgLTg0LDExICs4Myw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBmbHVzaExvY2FsU3RvcmFnZSgpOwogCiAgICAgLy8gTWVzc2FnZSBIYW5kbGVycwotICAgIHZv
aWQgY29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCBQQUw6OlNlc3Np
b25JRCAsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBTZWN1cml0eU9yaWdpbkRhdGEmJiwg
Q29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayYmKTsKLSAgICB2b2lkIGNvbm5lY3RUb1RyYW5z
aWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgUEFMOjpTZXNzaW9uSUQgLCBT
dG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgU2VjdXJpdHlPcmlnaW5EYXRhJiYsIFNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBDb25uZWN0VG9TdG9yYWdlQXJlYUNhbGxiYWNrJiYpOwotICAgIHZvaWQg
Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lv
bklELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgU2VjdXJpdHlPcmlnaW5EYXRhJiYsIENv
bm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2smJik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbVN0
b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllcik7Ci0gICAg
dm9pZCBnZXRWYWx1ZXMoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBH
ZXRWYWx1ZXNDYWxsYmFjayYmKTsKICAgICB2b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiwg
U3RvcmFnZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlSXRlbShJ
UEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsZWFyKElQQzo6Q29ubmVjdGlv
biYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1h
bmFnZXJTZXQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQubWVzc2FnZXMuaW4KaW5kZXggMzdiYTY5Y2RiZWMwNTI0
ZjMzZGQzNWY0ODM5NjRlNzFlMjRiN2NjMS4uODcyZTU1MTAwN2FmZGU3ZmU1YWYwNjY5OTQ2YWMz
M2I3OTQxMjNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5pbgpA
QCAtMjEsMTEgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gU3RvcmFnZU1h
bmFnZXJTZXQgewotICAgIENvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHN0b3JhZ2VOYW1l
c3BhY2VJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdp
bkRhdGEpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyPiBz
dG9yYWdlQXJlYUlEKSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KLSAgICBDb25uZWN0VG9U
cmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0
OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxTZWN1cml0eU9yaWdpbkRhdGEsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAo
c3RkOjpvcHRpb25hbDxXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcj4gc3RvcmFnZUFyZWFJ
RCkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCi0gICAgQ29ubmVjdFRvU2Vzc2lvblN0b3Jh
Z2VBcmVhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNl
SWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlN0
b3JhZ2VBcmVhSWRlbnRpZmllcj4gc3RvcmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2FudHNDb25u
ZWN0aW9uCiAgICAgRGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShXZWJLaXQ6OlN0b3JhZ2VBcmVh
SWRlbnRpZmllciBzdG9yYWdlQXJlYUlEKSBXYW50c0Nvbm5lY3Rpb24KLSAgICBHZXRWYWx1ZXMo
V2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCkgLT4gKEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+IHZhbHVlcykgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCiAgICAg
Q2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwg
V2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkg
V2FudHNDb25uZWN0aW9uCiAKICAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRl
bnRpZmllciwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAo
Ym9vbCBxdW90YUV4Y2VwdGlvbikgV2FudHNDb25uZWN0aW9uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456952</attachid>
            <date>2022-04-07 11:50:33 -0700</date>
            <delta_ts>2022-04-08 07:56:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238938-20220407115031.patch</filename>
            <type>text/plain</type>
            <size>40096</size>
            <attacher name="Gavin">gavin.p</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3MmE1ZTJmNGQ1ZmU1M2Q5
MTBmY2Y3ZTUyOGY1YWJlNjc3OTI2MjEuLjcxMGE1MGVhMzQyOWEwN2ZjOGQzZWEyMDdmZjg2NmEw
MTA5ZTFjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjItMDQtMDcgIEdhdmluIFBo
aWxsaXBzICA8Z2F2aW4ucEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHVubmVlZGVkIENv
cmVJUEMgbWVzc2FnZXMgYW5kIGNvcnJlc3BvbmRpbmcgaGFuZGxlcnMgcmVsYXRlZCB0byBTdG9y
YWdlTWFuYWdlclNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4OTM4CisKKyAgICAgICAgVGhlcmUgYXJlIHZhcmlvdXMgQ29yZUlQQyBtZXNzYWdl
cyByZWxhdGVkIHRvIFN0b3JhZ2VNYW5hZ2VyU2V0IHdoaWNoIGFyZSBubyBsb25nZXIgbmVlZGVk
LiBUaGlzCisgICAgICAgIGNoYW5nZSByZW1vdmVzIHRoZW0uCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJT
ZXQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXJTZXQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHA6CisK
IDIwMjItMDQtMDcgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJUEM6OkNvbm5lY3Rpb24gc2hvdWxkIHN1cHBvcnQgZGl2ZXJ0aW5nIGFsbCBtZXNzYWdl
cyB0byBhIG1lc3NhZ2UgcXVldWUgaW4gb3RoZXIgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRl
eCAzYTgxMWU2OGJmMTE3NzU0YmE0NzNiODVkNDIwYzMxMTQ0ZGNiMDJkLi42OWFjZDhkZWRkOWE5
MjEyZGZmOGNhZWQ3MDRjZDYzYmEyMzJmM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTIwNSw4
ICsyMDUsNiBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nl
c3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24KICAgICBOZXR3
b3JrUHJvY2Vzcy9TaGFyZWRXb3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbgogCi0gICAgTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNl
dAotCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlv
bgogCiAgICAgTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBhNGU1
MGU3NTBhNzAzODJmYWQzM2ZjY2MyZjVjNGEzNmE1YzgxMTA0Li45N2I0MWU5N2YyY2Y4NjIxMWFl
Y2JlOWNlYTMxYWEzZTY2MDM0ODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC05NCw3ICs5NCw2IEBAICQoUFJPSkVDVF9ESVIpL05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1By
b2Nlc3MvU2hhcmVkV29ya2VyL1dlYlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFy
ZWRXb3JrZXJTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCi0kKFBST0pFQ1Rf
RElSKS9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9t
YWMvY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4
IGRmNjhkYjRjNjQ1ZDBkNGYyNDQ0NGIxNjBiYmRmOWM1NGVlYTk2NGIuLjI4MDQ4NzA5NGZjMWQ2
NDRlYWI4MjQ3NmFiMzY1M2VlZjg3MmNlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNDM4LDkgKzQzOCw2IEBAICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJN
ZXNzYWdlc1JlcGxpCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L1N0b3JhZ2VBcmVhTWFwTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TdG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU3RvcmFnZUFyZWFNYXBNZXNzYWdl
c1JlcGxpZXMuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9T
dG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oCi0kKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1N0b3JhZ2VNYW5hZ2VyU2V0
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQvVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9UZXh0Q2hlY2tpbmdDb250
cm9sbGVyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0L1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNDEwNGIwNTFjMjdkODQwYTA1ZTU3OWQzNmIy
ZDI3YWQzZTJjOTk3OS4uZWI1OTg1YzhkOGE3NjFlODcwYzg5NWFkZDdmOTE3NTA1YmM1NjRiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTI1LDcgKzEyNSw2IEBAIE1FU1NBR0Vf
UkVDRUlWRVJTID0gXAogCU5ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkgXAogCU5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFwK
IAlOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciBcCi0JTmV0d29y
a1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldCBcCiAJTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbiBcCiAJTmV0d29ya1Byb2Nlc3MvQ3Vz
dG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlciBcCiAJTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldENoYW5uZWwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAyOWM3NWY4MDQ3OGI1ZjkxNThkYThjZjhhYTMz
M2U4NmVkZjQ3YzVhLi42YTg3NWY0MDI0MjE5NGZhOTJjNjg5ZDc0ZDFkNDJjYWY5MzYzNzFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtNTQsNyArNTQsNiBAQAogI2luY2x1ZGUgIlJlbW90ZVdvcmtlclR5cGUuaCIKICNpbmNsdWRl
ICJTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNz
U3RhdHVzLmgiCi0jaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXJTZXQuaCIKICNpbmNsdWRlICJXZWJD
b29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzUG9vbE1lc3NhZ2VzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNmMTExODJjZWVkMzFkZDA4NGVhNDYzZmVj
OGJkOTAyNGU2ZGE2MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXJTZXQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiU3RvcmFnZU1hbmFnZXJTZXQuaCIKLQotI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCi0j
aW5jbHVkZSAiU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlN0b3JhZ2VNYW5h
Z2VyU2V0TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxwYWwvdGV4dC9UZXh0RW5jb2RpbmcuaD4KLSNp
bmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGhyZWFkcy9C
aW5hcnlTZW1hcGhvcmUuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxTdG9yYWdlTWFu
YWdlclNldD4gU3RvcmFnZU1hbmFnZXJTZXQ6OmNyZWF0ZSgpCi17Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU3RvcmFnZU1hbmFnZXJTZXQpOwotfQotCi1TdG9yYWdlTWFuYWdlclNldDo6U3Rv
cmFnZU1hbmFnZXJTZXQoKQotICAgIDogbV9xdWV1ZShTdXNwZW5kYWJsZVdvcmtRdWV1ZTo6Y3Jl
YXRlKCJjb20uYXBwbGUuV2ViS2l0LldlYlN0b3JhZ2UiKSkKLXsKLSAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwotCi0gICAgLy8gTWFrZSBzdXJlIHRoZSBlbmNvZGluZyBpcyBpbml0aWFs
aXplZCBiZWZvcmUgd2Ugc3RhcnQgZGlzcGF0Y2hpbmcgdGhpbmdzIHRvIHRoZSBxdWV1ZS4KLSAg
ICBQQUw6OlVURjhFbmNvZGluZygpOwotfQotCi1TdG9yYWdlTWFuYWdlclNldDo6flN0b3JhZ2VN
YW5hZ2VyU2V0KCkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgd2Fp
dFVudGlsVGFza3NGaW5pc2hlZCgpOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjphZGQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVj
dG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnlIYW5k
bGUpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGlmIChtX3N0b3Jh
Z2VNYW5hZ2VyUGF0aHMuYWRkKHNlc3Npb25JRCwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KS5pc05l
d0VudHJ5KSB7Ci0gICAgICAgIGlmICghc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkobG9jYWxTdG9yYWdlRGly
ZWN0b3J5SGFuZGxlKTsKLQotICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHNlc3Npb25JRCwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5
ID0gbG9jYWxTdG9yYWdlRGlyZWN0b3J5Lmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewotICAg
ICAgICAgICAgbV9zdG9yYWdlTWFuYWdlcnMuZW5zdXJlKHNlc3Npb25JRCwgWyZdKCkgbXV0YWJs
ZSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8U3RvcmFnZU1hbmFnZXI+KFdU
Rk1vdmUobG9jYWxTdG9yYWdlRGlyZWN0b3J5KSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
fSk7Ci0gICAgfQotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAg
ICBpZiAobV9zdG9yYWdlTWFuYWdlclBhdGhzLnJlbW92ZShzZXNzaW9uSUQpKSB7Ci0gICAgICAg
IG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
c2Vzc2lvbklEXSgpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIHN0b3JhZ2VNYW5hZ2VyID0gbV9z
dG9yYWdlTWFuYWdlcnMuZ2V0KHNlc3Npb25JRCkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGF1
dG8gc3RvcmFnZUFyZWFJRCA6IHN0b3JhZ2VNYW5hZ2VyLT5hbGxTdG9yYWdlQXJlYUlkZW50aWZp
ZXJzKCkpCi0gICAgICAgICAgICAgICAgICAgIG1fc3RvcmFnZUFyZWFzLnJlbW92ZShzdG9yYWdl
QXJlYUlEKTsKLQotICAgICAgICAgICAgICAgIG1fc3RvcmFnZU1hbmFnZXJzLnJlbW92ZShzZXNz
aW9uSUQpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9Ci19Ci0KLWJvb2wgU3Rv
cmFnZU1hbmFnZXJTZXQ6OmNvbnRhaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKLSAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgcmV0dXJuIG1fc3RvcmFnZU1hbmFn
ZXJQYXRocy5jb250YWlucyhzZXNzaW9uSUQpOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0
OjphZGRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgCi17Ci0gICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGF1dG8gY29ubmVjdGlvbklEID0gY29ubmVj
dGlvbi51bmlxdWVJRCgpOwotICAgIEFTU0VSVCghbV9jb25uZWN0aW9ucy5jb250YWlucyhjb25u
ZWN0aW9uSUQpKTsKLSAgICBpZiAobV9jb25uZWN0aW9ucy5hZGQoY29ubmVjdGlvbklEKS5pc05l
d0VudHJ5KQotICAgICAgICBjb25uZWN0aW9uLmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9xdWV1
ZS5nZXQoKSwgKnRoaXMpOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmVDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwotCi0gICAgYXV0byBjb25uZWN0aW9uSUQgPSBjb25uZWN0aW9uLnVuaXF1
ZUlEKCk7Ci0gICAgQVNTRVJUKG1fY29ubmVjdGlvbnMuY29udGFpbnMoY29ubmVjdGlvbklEKSk7
Ci0gICAgbV9jb25uZWN0aW9ucy5yZW1vdmUoY29ubmVjdGlvbklEKTsKLSAgICBjb25uZWN0aW9u
LnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJT
ZXQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Ci0KLSAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbm5lY3Rpb25JRF0oKSB7Ci0gICAg
ICAgIFZlY3RvcjxTdG9yYWdlQXJlYUlkZW50aWZpZXI+IGlkZW50aWZpZXJzVG9SZW1vdmU7Ci0g
ICAgICAgIGZvciAoYXV0byYgW2lkZW50aWZpZXIsIHN0b3JhZ2VBcmVhXSA6IG1fc3RvcmFnZUFy
ZWFzKSB7Ci0gICAgICAgICAgICBpZiAoc3RvcmFnZUFyZWEpCi0gICAgICAgICAgICAgICAgc3Rv
cmFnZUFyZWEtPnJlbW92ZUxpc3RlbmVyKGNvbm5lY3Rpb25JRCk7Ci0KLSAgICAgICAgICAgIGlm
ICghc3RvcmFnZUFyZWEpCi0gICAgICAgICAgICAgICAgaWRlbnRpZmllcnNUb1JlbW92ZS5hcHBl
bmQoaWRlbnRpZmllcik7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGF1dG8gaWRlbnRpZmll
ciA6IGlkZW50aWZpZXJzVG9SZW1vdmUpCi0gICAgICAgICAgICBtX3N0b3JhZ2VBcmVhcy5yZW1v
dmUoaWRlbnRpZmllcik7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6Omhh
bmRsZUxvd01lbW9yeVdhcm5pbmcoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
Ci0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9XSB7Ci0gICAgICAgIGZvciAoYXV0byYgc3RvcmFnZUFyZWEgOiBtX3N0b3JhZ2VBcmVhcy52
YWx1ZXMoKSkKLSAgICAgICAgICAgIHN0b3JhZ2VBcmVhLT5oYW5kbGVMb3dNZW1vcnlXYXJuaW5n
KCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OndhaXRVbnRpbFRhc2tz
RmluaXNoZWQoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBtX3F1
ZXVlLT5kaXNwYXRjaFN5bmMoW3RoaXNdIHsKLSAgICAgICAgZm9yIChhdXRvJiBzdG9yYWdlTWFu
YWdlciA6IG1fc3RvcmFnZU1hbmFnZXJzLnZhbHVlcygpKQotICAgICAgICAgICAgc3RvcmFnZU1h
bmFnZXItPmNsZWFyU3RvcmFnZU5hbWVzcGFjZXMoKTsKLQotICAgICAgICBtX3N0b3JhZ2VNYW5h
Z2Vycy5jbGVhcigpOwotICAgICAgICBtX3N0b3JhZ2VBcmVhcy5jbGVhcigpOwotICAgIH0pOwot
fQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojp3YWl0VW50aWxTeW5jaW5nTG9jYWxTdG9yYWdl
RmluaXNoZWQoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBCaW5h
cnlTZW1hcGhvcmUgc2VtYXBob3JlOwotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCAmc2Vt
YXBob3JlXSB7Ci0gICAgICAgIGZsdXNoTG9jYWxTdG9yYWdlKCk7Ci0gICAgICAgIHNlbWFwaG9y
ZS5zaWduYWwoKTsKLSAgICB9KTsKLSAgICBzZW1hcGhvcmUud2FpdCgpOwotfQotCi12b2lkIFN0
b3JhZ2VNYW5hZ2VyU2V0OjpmbHVzaExvY2FsU3RvcmFnZSgpCi17Ci0gICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBzdG9yYWdlQXJlYSA6IG1fc3Rv
cmFnZUFyZWFzLnZhbHVlcygpKSB7Ci0gICAgICAgIEFTU0VSVChzdG9yYWdlQXJlYSk7Ci0gICAg
ICAgIGlmIChzdG9yYWdlQXJlYSkKLSAgICAgICAgICAgIHN0b3JhZ2VBcmVhLT5zeW5jVG9EYXRh
YmFzZSgpOwotICAgIH0KLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6c3VzcGVuZChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIG1fcXVldWUtPnN1c3BlbmQoW3Byb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9XSB7Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPmZsdXNoTG9jYWxT
dG9yYWdlKCk7Ci0gICAgfSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotfQotCi12b2lk
IFN0b3JhZ2VNYW5hZ2VyU2V0OjpyZXN1bWUoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0KLSAgICBtX3F1ZXVlLT5yZXN1bWUoKTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdl
clNldDo6Z2V0U2Vzc2lvblN0b3JhZ2VPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
R2V0T3JpZ2luc0NhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc2Vzc2lvbklELCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBhdXRvKiBzdG9y
YWdlTWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQpOwotICAgICAgICBB
U1NFUlQoc3RvcmFnZU1hbmFnZXIpOwotCi0gICAgICAgIGF1dG8gb3JpZ2lucyA9IHN0b3JhZ2VN
YW5hZ2VyLT5nZXRTZXNzaW9uU3RvcmFnZU9yaWdpbnNDcm9zc1RocmVhZENvcHkoKTsKLSAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpLCBvcmlnaW5zID0gV1RGTW92ZShvcmlnaW5zKV0oKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUob3JpZ2lucykpOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6ZGVsZXRlU2Vz
c2lvblN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBEZWxldGVDYWxsYmFjayYmIGNv
bXBsZXRpb25IYW5kbGVyKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAg
ICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0s
IHNlc3Npb25JRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VN
YW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsKLSAgICAgICAgQVNTRVJUKHN0b3JhZ2VNYW5hZ2VyKTsK
LQotICAgICAgICBzdG9yYWdlTWFuYWdlci0+ZGVsZXRlU2Vzc2lvblN0b3JhZ2VPcmlnaW5zKCk7
Ci0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmRlbGV0ZVNlc3Np
b25TdG9yYWdlRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywgRGVsZXRlQ2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwotCi0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9LCBzZXNzaW9uSUQsIGNvcGllZE9yaWdpbkRhdGFzID0gY3Jvc3NUaHJlYWRDb3B5KG9y
aWdpbkRhdGFzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VN
YW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsKLSAgICAgICAgQVNTRVJUKHN0b3JhZ2VNYW5hZ2VyKTsK
LQotICAgICAgICBzdG9yYWdlTWFuYWdlci0+ZGVsZXRlU2Vzc2lvblN0b3JhZ2VFbnRyaWVzRm9y
T3JpZ2lucyhjb3BpZWRPcmlnaW5EYXRhcyk7Ci0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU3Rv
cmFnZU1hbmFnZXJTZXQ6OmdldExvY2FsU3RvcmFnZU9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBHZXRPcmlnaW5zQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBzZXNzaW9uSUQsIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1
dG8qIHN0b3JhZ2VNYW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNlc3Npb25JRCk7Ci0g
ICAgICAgIEFTU0VSVChzdG9yYWdlTWFuYWdlcik7Ci0KLSAgICAgICAgYXV0byBvcmlnaW5zID0g
c3RvcmFnZU1hbmFnZXItPmdldExvY2FsU3RvcmFnZU9yaWdpbnNDcm9zc1RocmVhZENvcHkoKTsK
LSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBvcmlnaW5zID0gV1RGTW92ZShvcmlnaW5zKV0oKSBt
dXRhYmxlIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUob3JpZ2lucykp
OwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6ZGVs
ZXRlTG9jYWxTdG9yYWdlTW9kaWZpZWRTaW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdh
bGxUaW1lIHRpbWUsIERlbGV0ZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc2Vzc2lvbklELCB0aW1lLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAg
ICAgICBhdXRvKiBzdG9yYWdlTWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9u
SUQpOwotICAgICAgICBBU1NFUlQoc3RvcmFnZU1hbmFnZXIpOwotCi0gICAgICAgIHN0b3JhZ2VN
YW5hZ2VyLT5kZWxldGVMb2NhbFN0b3JhZ2VPcmlnaW5zTW9kaWZpZWRTaW5jZSh0aW1lKTsKLSAg
ICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKLSAgICB9KTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6ZGVsZXRlTG9jYWxTdG9y
YWdlRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywgRGVsZXRlQ2FsbGJhY2smJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0g
ICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCBzZXNzaW9uSUQsIGNvcGllZE9yaWdpbkRhdGFzID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbkRh
dGFzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBt
dXRhYmxlIHsKLSAgICAgICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VNYW5hZ2Vy
cy5nZXQoc2Vzc2lvbklEKTsKLSAgICAgICAgQVNTRVJUKHN0b3JhZ2VNYW5hZ2VyKTsKLQotICAg
ICAgICBzdG9yYWdlTWFuYWdlci0+ZGVsZXRlTG9jYWxTdG9yYWdlRW50cmllc0Zvck9yaWdpbnMo
Y29waWVkT3JpZ2luRGF0YXMpOwotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIH0pOwotfQotCi12b2lkIFN0b3JhZ2VNYW5h
Z2VyU2V0OjpnZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRhaWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgR2V0T3JpZ2luRGV0YWlsc0NhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0g
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc2Vzc2lvbklELCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAg
ICBhdXRvKiBzdG9yYWdlTWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQp
OwotICAgICAgICBBU1NFUlQoc3RvcmFnZU1hbmFnZXIpOwotCi0gICAgICAgIGF1dG8gb3JpZ2lu
RGV0YWlscyA9IHN0b3JhZ2VNYW5hZ2VyLT5nZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRhaWxzQ3Jv
c3NUaHJlYWRDb3B5KCk7Ci0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgb3JpZ2luRGV0YWlscyA9
IFdURk1vdmUob3JpZ2luRGV0YWlscyldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKG9yaWdpbkRldGFpbHMpKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7
Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OnJlbmFtZU9yaWdpbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgb2xkTmFtZSwgY29uc3QgVVJMJiBuZXdOYW1lLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc2Vzc2lvbklELCBvbGROYW1lID0gb2xkTmFtZS5p
c29sYXRlZENvcHkoKSwgbmV3TmFtZSA9IG5ld05hbWUuaXNvbGF0ZWRDb3B5KCksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIGF1dG8qIHN0b3JhZ2VNYW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNlc3Npb25J
RCk7Ci0gICAgICAgIEFTU0VSVChzdG9yYWdlTWFuYWdlcik7Ci0gICAgICAgIHN0b3JhZ2VNYW5h
Z2VyLT5yZW5hbWVPcmlnaW4ob2xkTmFtZSwgbmV3TmFtZSk7Ci0gICAgICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSk7Ci19Ci0K
LXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyIHN0b3JhZ2VOYW1lc3BhY2VJRCwgU2VjdXJpdHlPcmlnaW5EYXRh
JiYgb3JpZ2luRGF0YSwgQ29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgYXV0byog
c3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsKLSAgICBp
ZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVs
bG9wdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvKiBzdG9yYWdlQXJlYSA9
IHN0b3JhZ2VNYW5hZ2VyLT5jcmVhdGVMb2NhbFN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJ
RCwgV1RGTW92ZShvcmlnaW5EYXRhKSwgbV9xdWV1ZS5jb3B5UmVmKCkpOwotICAgIGlmICghc3Rv
cmFnZUFyZWEpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8gc3RvcmFnZUFyZWFJRCA9IHN0b3JhZ2VB
cmVhLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0
b3JhZ2VBcmVhSUQsIHN0b3JhZ2VBcmVhKS5pdGVyYXRvcjsKLSAgICBBU1NFUlRfVU5VU0VEKGl0
ZXIsIHN0b3JhZ2VBcmVhID09IGl0ZXItPnZhbHVlLmdldCgpKTsKLQotICAgIGNvbXBsZXRpb25I
YW5kbGVyKHN0b3JhZ2VBcmVhSUQpOwotCi0gICAgc3RvcmFnZUFyZWEtPmFkZExpc3RlbmVyKGNv
bm5lY3Rpb24udW5pcXVlSUQoKSk7Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5l
Y3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHN0
b3JhZ2VOYW1lc3BhY2VJRCwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wTGV2ZWxPcmlnaW5EYXRh
LCBTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBDb25uZWN0VG9TdG9yYWdlQXJlYUNh
bGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7Ci0KLSAgICBhdXRvKiBzdG9yYWdlTWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdl
dChzZXNzaW9uSUQpOwotICAgIGlmICghc3RvcmFnZU1hbmFnZXIpIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGF1dG8qIHN0b3JhZ2VBcmVhID0gc3RvcmFnZU1hbmFnZXItPmNyZWF0ZVRyYW5zaWVudExvY2Fs
U3RvcmFnZUFyZWEoc3RvcmFnZU5hbWVzcGFjZUlELCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luRGF0
YSksIFdURk1vdmUob3JpZ2luRGF0YSksIG1fcXVldWUuY29weVJlZigpKTsKLSAgICBpZiAoIXN0
b3JhZ2VBcmVhKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIHN0b3JhZ2VBcmVhSUQgPSBzdG9yYWdl
QXJlYS0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFzLmFkZChz
dG9yYWdlQXJlYUlELCBzdG9yYWdlQXJlYSkuaXRlcmF0b3I7Ci0gICAgQVNTRVJUX1VOVVNFRChp
dGVyLCBzdG9yYWdlQXJlYSA9PSBpdGVyLT52YWx1ZS5nZXQoKSk7Ci0KLSAgICBjb21wbGV0aW9u
SGFuZGxlcihzdG9yYWdlQXJlYUlEKTsKLQotICAgIHN0b3JhZ2VBcmVhLT5hZGRMaXN0ZW5lcihj
b25uZWN0aW9uLnVuaXF1ZUlEKCkpOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25u
ZWN0VG9TZXNzaW9uU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHN0b3JhZ2VO
YW1lc3BhY2VJRCwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgQ29ubmVjdFRvU3Rv
cmFnZUFyZWFDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwotCi0gICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VN
YW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsKLSAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBhdXRvKiBzdG9yYWdlQXJlYSA9IHN0b3JhZ2VNYW5hZ2VyLT5jcmVhdGVTZXNz
aW9uU3RvcmFnZUFyZWEoc3RvcmFnZU5hbWVzcGFjZUlELCBXVEZNb3ZlKG9yaWdpbkRhdGEpLCBt
X3F1ZXVlLmNvcHlSZWYoKSk7Ci0gICAgaWYgKCFzdG9yYWdlQXJlYSkgewotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgYXV0byBzdG9yYWdlQXJlYUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKLSAgICBh
dXRvIGl0ZXIgPSBtX3N0b3JhZ2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgc3RvcmFnZUFyZWEp
Lml0ZXJhdG9yOwotICAgIEFTU0VSVF9VTlVTRUQoaXRlciwgc3RvcmFnZUFyZWEgPT0gaXRlci0+
dmFsdWUuZ2V0KCkpOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFyZWFJRCk7Ci0g
ICAgCi0gICAgc3RvcmFnZUFyZWEtPmFkZExpc3RlbmVyKGNvbm5lY3Rpb24udW5pcXVlSUQoKSk7
Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmRpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFn
ZUFyZWFJRCkKLXsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGNvbnN0
IGF1dG8mIHN0b3JhZ2VBcmVhID0gbV9zdG9yYWdlQXJlYXMuZ2V0KHN0b3JhZ2VBcmVhSUQpOwot
ICAgIEFTU0VSVChzdG9yYWdlQXJlYSk7Ci0gICAgQVNTRVJUKHN0b3JhZ2VBcmVhLT5oYXNMaXN0
ZW5lcihjb25uZWN0aW9uLnVuaXF1ZUlEKCkpKTsKLQotICAgIGlmICghc3RvcmFnZUFyZWEpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVMaXN0ZW5lcihjb25uZWN0
aW9uLnVuaXF1ZUlEKCkpOwotICAgIGlmICghc3RvcmFnZUFyZWEpCi0gICAgICAgIG1fc3RvcmFn
ZUFyZWFzLnJlbW92ZShzdG9yYWdlQXJlYUlEKTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNl
dDo6Z2V0VmFsdWVzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVu
dGlmaWVyIHN0b3JhZ2VBcmVhSUQsIEdldFZhbHVlc0NhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRs
ZXIpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBjb25zdCBhdXRv
JiBzdG9yYWdlQXJlYSA9IG1fc3RvcmFnZUFyZWFzLmdldChzdG9yYWdlQXJlYUlEKTsKLSAgICBB
U1NFUlQoIXN0b3JhZ2VBcmVhIHx8IHN0b3JhZ2VBcmVhLT5oYXNMaXN0ZW5lcihjb25uZWN0aW9u
LnVuaXF1ZUlEKCkpKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VBcmVhID8gc3Rv
cmFnZUFyZWEtPml0ZW1zKCkgOiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpKTsKLX0KLQotdm9p
ZCBTdG9yYWdlTWFuYWdlclNldDo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJZGVu
dGlmaWVyIHN0b3JhZ2VBcmVhSW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7Ci0KLSAgICBjb25zdCBhdXRvJiBzdG9yYWdlQXJlYSA9IG1fc3RvcmFnZUFyZWFzLmdl
dChzdG9yYWdlQXJlYUlEKTsKLSAgICBBU1NFUlQoc3RvcmFnZUFyZWEpOwotCi0gICAgYm9vbCBx
dW90YUVycm9yID0gZmFsc2U7Ci0gICAgaWYgKHN0b3JhZ2VBcmVhKQotICAgICAgICBzdG9yYWdl
QXJlYS0+c2V0SXRlbShjb25uZWN0aW9uLnVuaXF1ZUlEKCksIHN0b3JhZ2VBcmVhSW1wbElELCBr
ZXksIHZhbHVlLCB1cmxTdHJpbmcsIHF1b3RhRXJyb3IpOwotCi0gICAgY29tcGxldGlvbkhhbmRs
ZXIocXVvdGFFcnJvcik7Ci19IAotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmVJdGVt
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3Jh
Z2VBcmVhSUQsIFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwotCi0gICAgY29uc3QgYXV0byYgc3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVh
cy5nZXQoc3RvcmFnZUFyZWFJRCk7Ci0gICAgQVNTRVJUKHN0b3JhZ2VBcmVhKTsKLQotICAgIGlm
IChzdG9yYWdlQXJlYSkKLSAgICAgICAgc3RvcmFnZUFyZWEtPnJlbW92ZUl0ZW0oY29ubmVjdGlv
bi51bmlxdWVJRCgpLCBzdG9yYWdlQXJlYUltcGxJRCwga2V5LCB1cmxTdHJpbmcpOwotCi0gICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Y2xlYXIo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFn
ZUFyZWFJRCwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKLXsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGNv
bnN0IGF1dG8mIHN0b3JhZ2VBcmVhID0gbV9zdG9yYWdlQXJlYXMuZ2V0KHN0b3JhZ2VBcmVhSUQp
OwotICAgIEFTU0VSVChzdG9yYWdlQXJlYSk7Ci0KLSAgICBpZiAoc3RvcmFnZUFyZWEpCi0gICAg
ICAgIHN0b3JhZ2VBcmVhLT5jbGVhcihjb25uZWN0aW9uLnVuaXF1ZUlEKCksIHN0b3JhZ2VBcmVh
SW1wbElELCB1cmxTdHJpbmcpOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLX0KLQotdm9p
ZCBTdG9yYWdlTWFuYWdlclNldDo6Y2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJUEM6OkNv
bm5lY3Rpb24mLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVu
dGlmaWVyIGZyb21TdG9yYWdlTmFtZXNwYWNlSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVy
IHRvU3RvcmFnZU5hbWVzcGFjZUlEKQotewotICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwotCi0gICAgaWYgKGF1dG8qIHN0b3JhZ2VNYW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0
KHNlc3Npb25JRCkpCi0gICAgICAgIHN0b3JhZ2VNYW5hZ2VyLT5jbG9uZVNlc3Npb25TdG9yYWdl
TmFtZXNwYWNlKGZyb21TdG9yYWdlTmFtZXNwYWNlSUQsIHRvU3RvcmFnZU5hbWVzcGFjZUlEKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzE1ZmVlZDQ2MDIzNTU5YWMzNjg1MjU5ZjMwN2U1NmI1
MjNiOGYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIlNhbmRib3hF
eHRlbnNpb24uaCIKLSNpbmNsdWRlICJTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCIKLSNpbmNsdWRl
ICJTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgotI2luY2x1ZGUgPHBh
bC9TZXNzaW9uSUQuaD4KLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+Ci0jaW5jbHVkZSA8d3Rm
L0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvU3VzcGVuZGFibGVXb3JrUXVldWUuaD4KLSNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgotCi11c2luZyBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE7Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBTYW5kYm94RXh0ZW5zaW9uOwotCi11c2luZyBD
b25uZWN0VG9TdG9yYWdlQXJlYUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBzdGQ6Om9wdGlvbmFsPFN0b3JhZ2VBcmVhSWRlbnRpZmllcj4mKT47Ci11c2luZyBHZXRWYWx1
ZXNDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4mKT47Ci11c2luZyBHZXRPcmlnaW5zQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT47Ci11c2luZyBH
ZXRPcmlnaW5EZXRhaWxzQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxM
b2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6Ok9yaWdpbkRldGFpbHM+JiYpPjsKLXVzaW5nIERl
bGV0ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKLQotY2xhc3MgU3RvcmFn
ZU1hbmFnZXJTZXQgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdlUmVj
ZWl2ZXIgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8U3RvcmFnZU1hbmFnZXJTZXQ+IGNyZWF0
ZSgpOwotICAgIH5TdG9yYWdlTWFuYWdlclNldCgpOwotCi0gICAgdm9pZCBhZGQoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUmIGxvY2FsU3RvcmFnZURpcmVjdG9yeUhhbmRsZSk7Ci0gICAgdm9pZCByZW1v
dmUoUEFMOjpTZXNzaW9uSUQpOwotICAgIGJvb2wgY29udGFpbnMoUEFMOjpTZXNzaW9uSUQpOwot
Ci0gICAgdm9pZCBhZGRDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpOwotICAgIHZvaWQgcmVt
b3ZlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKLQotICAgIHZvaWQgaGFuZGxlTG93TWVt
b3J5V2FybmluZygpOwotICAgIHZvaWQgd2FpdFVudGlsVGFza3NGaW5pc2hlZCgpOwotICAgIHZv
aWQgd2FpdFVudGlsU3luY2luZ0xvY2FsU3RvcmFnZUZpbmlzaGVkKCk7Ci0gICAgdm9pZCBzdXNw
ZW5kKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCByZXN1bWUoKTsKLQot
ICAgIHZvaWQgZ2V0U2Vzc2lvblN0b3JhZ2VPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBHZXRPcmln
aW5zQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBkZWxldGVTZXNzaW9uU3RvcmFnZShQQUw6OlNlc3Np
b25JRCwgRGVsZXRlQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBkZWxldGVTZXNzaW9uU3RvcmFnZUZv
ck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGE+JiwgRGVsZXRlQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBnZXRMb2NhbFN0b3JhZ2VP
cmlnaW5zKFBBTDo6U2Vzc2lvbklELCBHZXRPcmlnaW5zQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBk
ZWxldGVMb2NhbFN0b3JhZ2VNb2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklELCBXYWxsVGltZSwg
RGVsZXRlQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBkZWxldGVMb2NhbFN0b3JhZ2VGb3JPcmlnaW5z
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
PiYsIERlbGV0ZUNhbGxiYWNrJiYpOwotICAgIHZvaWQgZ2V0TG9jYWxTdG9yYWdlT3JpZ2luRGV0
YWlscyhQQUw6OlNlc3Npb25JRCwgR2V0T3JpZ2luRGV0YWlsc0NhbGxiYWNrJiYpOwotICAgIHZv
aWQgcmVuYW1lT3JpZ2luKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLSAgICBib29sIGRpZFJlY2VpdmVT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBVbmlxdWVSZWY8SVBD
OjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKTsKLQotcHJpdmF0ZToKLSAgICBTdG9yYWdlTWFuYWdl
clNldCgpOwotCi0gICAgdm9pZCBmbHVzaExvY2FsU3RvcmFnZSgpOwotCi0gICAgLy8gTWVzc2Fn
ZSBIYW5kbGVycwotICAgIHZvaWQgY29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5l
Y3Rpb24mLCBQQUw6OlNlc3Npb25JRCAsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBTZWN1
cml0eU9yaWdpbkRhdGEmJiwgQ29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayYmKTsKLSAgICB2
b2lkIGNvbm5lY3RUb1RyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwg
UEFMOjpTZXNzaW9uSUQgLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgU2VjdXJpdHlPcmln
aW5EYXRhJiYsIFNlY3VyaXR5T3JpZ2luRGF0YSYmLCBDb25uZWN0VG9TdG9yYWdlQXJlYUNhbGxi
YWNrJiYpOwotICAgIHZvaWQgY29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q29ubmVj
dGlvbiYsIFBBTDo6U2Vzc2lvbklELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgU2VjdXJp
dHlPcmlnaW5EYXRhJiYsIENvbm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2smJik7Ci0gICAgdm9p
ZCBkaXNjb25uZWN0RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVh
SWRlbnRpZmllcik7Ci0gICAgdm9pZCBnZXRWYWx1ZXMoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFn
ZUFyZWFJZGVudGlmaWVyLCBHZXRWYWx1ZXNDYWxsYmFjayYmKTsKLSAgICB2b2lkIHNldEl0ZW0o
SVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAg
IHZvaWQgcmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIs
IFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJp
bmcmIHVybFN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGNs
ZWFyKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJ
bXBsSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7Ci0gICAgdm9pZCBjbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElQQzo6
Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lvbklELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBm
cm9tU3RvcmFnZU5hbWVzcGFjZUlELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3Jh
Z2VOYW1lc3BhY2VJRCk7Ci0KLSAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1
ZV9wdHI8U3RvcmFnZU1hbmFnZXI+PiBtX3N0b3JhZ2VNYW5hZ2VyczsKLSAgICBIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBTdHJpbmc+IG1fc3RvcmFnZU1hbmFnZXJQYXRoczsKLSAgICBIYXNoTWFw
PFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgV2Vha1B0cjxTdG9yYWdlQXJlYT4+IG1fc3RvcmFnZUFy
ZWFzOwotCi0gICAgSGFzaFNldDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEPiBtX2Nvbm5lY3Rp
b25zOwotICAgIFJlZjxTdXNwZW5kYWJsZVdvcmtRdWV1ZT4gbV9xdWV1ZTsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmlu
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2JhNjljZGJlYzA1MjRmMzNkZDM1ZjQ4
Mzk2NGU3MWUyNGI3Y2MxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFu
YWdlclNldC5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotbWVzc2FnZXMgLT4gU3RvcmFnZU1h
bmFnZXJTZXQgewotICAgIENvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHN0b3JhZ2VOYW1l
c3BhY2VJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdp
bkRhdGEpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyPiBz
dG9yYWdlQXJlYUlEKSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KLSAgICBDb25uZWN0VG9U
cmFuc2llbnRMb2NhbFN0b3JhZ2VBcmVhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0
OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxTZWN1cml0eU9yaWdpbkRhdGEsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAo
c3RkOjpvcHRpb25hbDxXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcj4gc3RvcmFnZUFyZWFJ
RCkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCi0gICAgQ29ubmVjdFRvU2Vzc2lvblN0b3Jh
Z2VBcmVhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNl
SWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlN0
b3JhZ2VBcmVhSWRlbnRpZmllcj4gc3RvcmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2FudHNDb25u
ZWN0aW9uCi0gICAgRGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShXZWJLaXQ6OlN0b3JhZ2VBcmVh
SWRlbnRpZmllciBzdG9yYWdlQXJlYUlEKSBXYW50c0Nvbm5lY3Rpb24KLSAgICBHZXRWYWx1ZXMo
V2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCkgLT4gKEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+IHZhbHVlcykgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCi0gICAg
Q2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwg
V2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkg
V2FudHNDb25uZWN0aW9uCi0KLSAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRl
bnRpZmllciwgU3RyaW5nIGtleSwgU3RyaW5nIHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAo
Ym9vbCBxdW90YUV4Y2VwdGlvbikgV2FudHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlSXRlbShXZWJL
aXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVh
SW1wbElkZW50aWZpZXIgaW1wbElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB1cmxTdHJp
bmcpIC0+ICgpIFdhbnRzQ29ubmVjdGlvbgotICAgIENsZWFyKFdlYktpdDo6U3RvcmFnZUFyZWFJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBp
bXBsSWRlbnRpZmllciwgU3RyaW5nIHVybFN0cmluZykgLT4gKCkgV2FudHNDb25uZWN0aW9uCi19
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAppbmRleCBiZWMxYTNmMTM0ZTJkZDM5MjM2MTI3NTJhODlkODgxNTc5ZTIwZjg0
Li4zZGRiMDYzMWUxMDIxOTFjNzc1MzkwYjUyMzdkNzhiYzBkMDIzMjJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
QEAgLTE2Niw3ICsxNjYsNiBAQCBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFn
ZU5hbWVzcGFjZS5jcHAKIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2UuY3BwCiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcAog
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKLU5ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9XZWJT
dG9yYWdlL1RyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS5jcHAKIAogTmV0d29ya1Byb2Nl
c3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2E3YWI3YzFmMmU4N2I4ZDI5MTJiYzFj
NmNhZDI5NTY5YmFmODQyMC4uN2VlZTgwNmJlZmMyMTg3NTIzMmI0NGYyNDgxYWIwZGFmNDRmMDFm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNDczLDkgKzE0NzMsNiBAQAogCQk5MzVCNTc5QTI2RjUxOTMzMDA4QjQ4QUMgLyogRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QjU3OTgyNkY1MTI3MDAwOEI0OEFDIC8qIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCAqLzsgfTsKIAkJOTM1RUVCOUIxMjc3NjE3QzAwMzMy
MkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzNUVFQjlGMTI3NzYxQUMwMDMzMjJCOCAvKiBXS0J1bmRs
ZUJhY2tGb3J3YXJkTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
OTM2OEVFREUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
NjhFRURDMjMwM0E4RDgwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07Ci0JCTkzNjhFRURGMjMwM0E5RUQwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdl
clNldE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzY4RUVERDIzMDNBOEQ4MDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdl
cy5oICovOyB9OwotCQk5MzZCMDU5ODIzMDM5MDk3MDAyRkMwNkIgLyogU3RvcmFnZU1hbmFnZXJT
ZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNkIw
NTk1MjMwMzkwMEIwMDJGQzA2QiAvKiBTdG9yYWdlTWFuYWdlclNldC5oICovOyB9OwogCQk5Mzcz
NUVCQjFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzczNUVCQTFDOTI5
ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggKi87IH07CiAJCTkz
OTEwNzRGMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxMDc0RTFC
RjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oICovOyB9Owog
CQk5MzkxRjJDQjEyMUI2N0FEMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUYyODMx
MjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgfTsKQEAg
LTU3MTksMTEgKzU3MTYsNiBAQAogCQk5MzVFRUI5NjEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1
RUVCOTcxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVFRUI5ODEyNzc2
MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MzY4RUVEQzIzMDNBOEQ4MDBCREIxMUEgLyogU3Rv
cmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGZpbGVFbmNvZGlu
ZyA9IDQ7IG5hbWUgPSBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQvU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk5MzY4RUVERDIzMDNB
OEQ4MDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VzLmg7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQvU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk5MzZCMDU5NTIzMDM5MDBCMDAyRkMwNkIg
LyogU3RvcmFnZU1hbmFnZXJTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3RvcmFnZU1hbmFnZXJTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM2QjA1
OTYyMzAzOTAwQjAwMkZDMDZCIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFN0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5MzZCMDU5NzIzMDM5MDBCMDAyRkMwNkIgLyogU3RvcmFn
ZU1hbmFnZXJTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Rv
cmFnZU1hbmFnZXJTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzczNUVC
QTFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQg
LyogV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMjc5
LDkgKzExMjcxLDYgQEAKIAkJCQk0NjVGNEUwMjIzMDc1OUQ1MDAzQ0VEQjcgLyogU3RvcmFnZUFy
ZWFJZGVudGlmaWVyLmggKi8sCiAJCQkJOTNCMjYxNEEyMjdEMTQ3MjAwQjk3QTc2IC8qIFN0b3Jh
Z2VNYW5hZ2VyLmNwcCAqLywKIAkJCQk5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFn
ZU1hbmFnZXIuaCAqLywKLQkJCQk5MzZCMDU5NzIzMDM5MDBCMDAyRkMwNkIgLyogU3RvcmFnZU1h
bmFnZXJTZXQuY3BwICovLAotCQkJCTkzNkIwNTk1MjMwMzkwMEIwMDJGQzA2QiAvKiBTdG9yYWdl
TWFuYWdlclNldC5oICovLAotCQkJCTkzNkIwNTk2MjMwMzkwMEIwMDJGQzA2QiAvKiBTdG9yYWdl
TWFuYWdlclNldC5tZXNzYWdlcy5pbiAqLywKIAkJCQk0NkJFQjZFMjIyRkJCMjFBMDAyNjk4Njcg
LyogVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlLmNwcCAqLywKIAkJCQk0NkJFQjZFMTIy
RkJCMjFBMDAyNjk4NjcgLyogVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlLmggKi8sCiAJ
CQkpOwpAQCAtMTMwMzQsOCArMTMwMjMsNiBAQAogCQkJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTFB
MzM0REVCMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJMUEzMzRERUMxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVz
c2FnZXMuaCAqLywKLQkJCQk5MzY4RUVEQzIzMDNBOEQ4MDBCREIxMUEgLyogU3RvcmFnZU1hbmFn
ZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAotCQkJCTkzNjhFRUREMjMwM0E4RDgwMEJEQjEx
QSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VzLmggKi8sCiAJCQkJQ0Q0OTFCMEIxRTczMkU0
RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKIAkJCQlDRDQ5MUIwQzFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlcy5oICovLAogCQkJCUNENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTE0NjM2LDgg
KzE0NjIzLDYgQEAKIAkJCQkxQTMzNERFRTE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFN
YXBNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNFNzk5QzcyNzYwMjc0NjAwNzQwMDhB
IC8qIFN0b3JhZ2VBcmVhUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQjI2MTREMjI3
RDE0OUUwMEI5N0E3NiAvKiBTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTM2
QjA1OTgyMzAzOTA5NzAwMkZDMDZCIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0LmggaW4gSGVhZGVycyAq
LywKLQkJCQk5MzY4RUVERjIzMDNBOUVEMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY1RjRFMDYyMzBCMkU5NTAwM0NFREI3IC8qIFN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjczMTIzQzI1
Q0M4NTI1MDAzQjI3OTYgLyogU3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0I3MzEyM0EyNUNDODUyNTAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMTcwNDAsNyArMTcwMjUsNiBAQAogCQkJCTkzQUI5QjU2MjU3
NUEyOEIwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRDZCNzgy
MjU0Q0NDRjQwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMzNERFRDE2REU4Rjg4MDA2QThFMzggLyogU3Rv
cmFnZUFyZWFNYXBNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTM2OEVF
REUyMzAzQTkwMjAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCNzUxMjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVk
U291cmNlMS1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCNzUyMjEyNkEyODIwMDZGODg3
OCAvKiBVbmlmaWVkU291cmNlMS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjc1MzIxMjZB
MjgyMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTItbW0ubW0gaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFw
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFw
LmNwcAppbmRleCA5Mzc2MmNjOGYwMzhjMzdhZDJlZDM3YjNjMmM4MTQwNTgzOTA5NGM5Li5kNGNm
NmFjYTc4MTkyYzczNTBmYTNjODY5Zjk5NGViMDA2ZWI3ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSAiTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYUltcGwuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcE1l
c3NhZ2VzLmgiCi0jaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlN0b3JhZ2VOYW1lc3BhY2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1
ZGUgIldlYlBhZ2VHcm91cFByb3h5LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457069</attachid>
            <date>2022-04-08 07:56:42 -0700</date>
            <delta_ts>2022-04-08 13:28:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238938-20220408075640.patch</filename>
            <type>text/plain</type>
            <size>40135</size>
            <attacher name="Gavin">gavin.p</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3MmE1ZTJmNGQ1ZmU1M2Q5
MTBmY2Y3ZTUyOGY1YWJlNjc3OTI2MjEuLjg2NzE2NDMyYWU4NzQ0OGE1ZWQ2ZjI3MTBkNGU2MDky
OTViMDhkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjItMDQtMDcgIEdhdmluIFBo
aWxsaXBzICA8Z2F2aW4ucEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHVubmVlZGVkIENv
cmVJUEMgbWVzc2FnZXMgYW5kIGNvcnJlc3BvbmRpbmcgaGFuZGxlcnMgcmVsYXRlZCB0byBTdG9y
YWdlTWFuYWdlclNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4OTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlcmUgYXJlIHZhcmlvdXMgQ29yZUlQQyBtZXNzYWdlcyByZWxhdGVkIHRvIFN0b3Jh
Z2VNYW5hZ2VyU2V0IHdoaWNoIGFyZSBubyBsb25nZXIgbmVlZGVkLiBUaGlzCisgICAgICAgIGNo
YW5nZSByZW1vdmVzIHRoZW0uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyU2V0Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHA6CisKIDIwMjItMDQtMDcgIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBJUEM6OkNvbm5lY3Rp
b24gc2hvdWxkIHN1cHBvcnQgZGl2ZXJ0aW5nIGFsbCBtZXNzYWdlcyB0byBhIG1lc3NhZ2UgcXVl
dWUgaW4gb3RoZXIgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCAzYTgxMWU2OGJmMTE3NzU0
YmE0NzNiODVkNDIwYzMxMTQ0ZGNiMDJkLi42OWFjZDhkZWRkOWE5MjEyZGZmOGNhZWQ3MDRjZDYz
YmEyMzJmM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTIwNSw4ICsyMDUsNiBAQCBzZXQoV2Vi
S2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2VyL1dl
YlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24KICAgICBOZXR3b3JrUHJvY2Vzcy9TaGFyZWRX
b3JrZXIvV2ViU2hhcmVkV29ya2VyU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbgogCi0gICAgTmV0
d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldAotCiAgICAgTmV0d29ya1By
b2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbgogCiAgICAgTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBhNGU1MGU3NTBhNzAzODJmYWQzM2Zj
Y2MyZjVjNGEzNmE1YzgxMTA0Li45N2I0MWU5N2YyY2Y4NjIxMWFlY2JlOWNlYTMxYWEzZTY2MDM0
ODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC05NCw3ICs5NCw2IEBAICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2hhcmVkV29ya2Vy
L1dlYlNoYXJlZFdvcmtlclNlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL05ldHdvcmtQcm9jZXNzL1NoYXJlZFdvcmtlci9XZWJTaGFyZWRXb3JrZXJTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCi0kKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktp
dC5OZXR3b3JrUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGRmNjhkYjRjNjQ1ZDBkNGYy
NDQ0NGIxNjBiYmRmOWM1NGVlYTk2NGIuLjI4MDQ4NzA5NGZjMWQ2NDRlYWI4MjQ3NmFiMzY1M2Vl
Zjg3MmNlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdApAQCAtNDM4LDkgKzQzOCw2IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlc1JlcGxpCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1N0b3JhZ2VBcmVhTWFwTWVz
c2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdC9TdG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQvU3RvcmFnZUFyZWFNYXBNZXNzYWdlc1JlcGxpZXMuaAotJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TdG9yYWdlTWFuYWdlclNldE1l
c3NhZ2VSZWNlaXZlci5jcHAKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQvU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L1N0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZXNSZXBsaWVzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvVGV4dENoZWNraW5n
Q29udHJvbGxlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHlNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1RleHRDaGVj
a2luZ0NvbnRyb2xsZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggNDEwNGIwNTFjMjdkODQwYTA1ZTU3OWQzNmIyZDI3YWQzZTJjOTk3OS4uZWI1
OTg1YzhkOGE3NjFlODcwYzg5NWFkZDdmOTE3NTA1YmM1NjRiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTI1LDcgKzEyNSw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCU5l
dHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgXAogCU5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFwKIAlOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciBcCi0JTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlTWFuYWdlclNldCBcCiAJTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lQ29ubmVjdGlvbiBcCiAJTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2Fj
eUN1c3RvbVByb3RvY29sTWFuYWdlciBcCiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENo
YW5uZWwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAppbmRleCAyOWM3NWY4MDQ3OGI1ZjkxNThkYThjZjhhYTMzM2U4NmVkZjQ3YzVhLi42YTg3
NWY0MDI0MjE5NGZhOTJjNjg5ZDc0ZDFkNDJjYWY5MzYzNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNTQsNyArNTQsNiBAQAog
I2luY2x1ZGUgIlJlbW90ZVdvcmtlclR5cGUuaCIKICNpbmNsdWRlICJTaG91bGRHcmFuZGZhdGhl
clN0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVzLmgiCi0jaW5jbHVk
ZSAiU3RvcmFnZU1hbmFnZXJTZXQuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9v
bE1lc3NhZ2VzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTNmMTExODJjZWVkMzFkZDA4NGVhNDYzZmVjOGJkOTAyNGU2ZGE2MS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU3RvcmFnZU1hbmFn
ZXJTZXQuaCIKLQotI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCi0jaW5jbHVkZSAiU3RvcmFnZUFy
ZWFNYXBNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZXMuaCIK
LSNpbmNsdWRlIDxwYWwvdGV4dC9UZXh0RW5jb2RpbmcuaD4KLSNpbmNsdWRlIDx3dGYvQ3Jvc3NU
aHJlYWRDb3BpZXIuaD4KLSNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4K
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxTdG9yYWdlTWFuYWdlclNldD4gU3RvcmFnZU1h
bmFnZXJTZXQ6OmNyZWF0ZSgpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZU1h
bmFnZXJTZXQpOwotfQotCi1TdG9yYWdlTWFuYWdlclNldDo6U3RvcmFnZU1hbmFnZXJTZXQoKQot
ICAgIDogbV9xdWV1ZShTdXNwZW5kYWJsZVdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2Vi
S2l0LldlYlN0b3JhZ2UiKSkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0g
ICAgLy8gTWFrZSBzdXJlIHRoZSBlbmNvZGluZyBpcyBpbml0aWFsaXplZCBiZWZvcmUgd2Ugc3Rh
cnQgZGlzcGF0Y2hpbmcgdGhpbmdzIHRvIHRoZSBxdWV1ZS4KLSAgICBQQUw6OlVURjhFbmNvZGlu
ZygpOwotfQotCi1TdG9yYWdlTWFuYWdlclNldDo6flN0b3JhZ2VNYW5hZ2VyU2V0KCkKLXsKLSAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgd2FpdFVudGlsVGFza3NGaW5pc2hl
ZCgpOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjphZGQoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSwgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnlIYW5kbGUpCi17Ci0gICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGlmIChtX3N0b3JhZ2VNYW5hZ2VyUGF0aHMuYWRk
KHNlc3Npb25JRCwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KS5pc05ld0VudHJ5KSB7Ci0gICAgICAg
IGlmICghc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkpCi0gICAgICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkobG9jYWxTdG9yYWdlRGlyZWN0b3J5SGFuZGxlKTsKLQot
ICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0
aGlzIH0sIHNlc3Npb25JRCwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gbG9jYWxTdG9yYWdlRGly
ZWN0b3J5Lmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewotICAgICAgICAgICAgbV9zdG9yYWdl
TWFuYWdlcnMuZW5zdXJlKHNlc3Npb25JRCwgWyZdKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIG1ha2VVbmlxdWU8U3RvcmFnZU1hbmFnZXI+KFdURk1vdmUobG9jYWxTdG9yYWdl
RGlyZWN0b3J5KSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfQotfQotCi12
b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQot
ewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBpZiAobV9zdG9yYWdlTWFu
YWdlclBhdGhzLnJlbW92ZShzZXNzaW9uSUQpKSB7Ci0gICAgICAgIG1fcXVldWUtPmRpc3BhdGNo
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgc2Vzc2lvbklEXSgpIHsKLSAg
ICAgICAgICAgIGlmIChhdXRvIHN0b3JhZ2VNYW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0
KHNlc3Npb25JRCkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8gc3RvcmFnZUFyZWFJRCA6
IHN0b3JhZ2VNYW5hZ2VyLT5hbGxTdG9yYWdlQXJlYUlkZW50aWZpZXJzKCkpCi0gICAgICAgICAg
ICAgICAgICAgIG1fc3RvcmFnZUFyZWFzLnJlbW92ZShzdG9yYWdlQXJlYUlEKTsKLQotICAgICAg
ICAgICAgICAgIG1fc3RvcmFnZU1hbmFnZXJzLnJlbW92ZShzZXNzaW9uSUQpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9KTsKLSAgICB9Ci19Ci0KLWJvb2wgU3RvcmFnZU1hbmFnZXJTZXQ6OmNv
bnRhaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwotCi0gICAgcmV0dXJuIG1fc3RvcmFnZU1hbmFnZXJQYXRocy5jb250YWlucyhz
ZXNzaW9uSUQpOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjphZGRDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikgCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKLQotICAgIGF1dG8gY29ubmVjdGlvbklEID0gY29ubmVjdGlvbi51bmlxdWVJRCgpOwot
ICAgIEFTU0VSVCghbV9jb25uZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uSUQpKTsKLSAgICBp
ZiAobV9jb25uZWN0aW9ucy5hZGQoY29ubmVjdGlvbklEKS5pc05ld0VudHJ5KQotICAgICAgICBj
b25uZWN0aW9uLmFkZFdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3RvcmFnZU1h
bmFnZXJTZXQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9xdWV1ZS5nZXQoKSwgKnRoaXMpOwot
fQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0g
ICAgYXV0byBjb25uZWN0aW9uSUQgPSBjb25uZWN0aW9uLnVuaXF1ZUlEKCk7Ci0gICAgQVNTRVJU
KG1fY29ubmVjdGlvbnMuY29udGFpbnMoY29ubmVjdGlvbklEKSk7Ci0gICAgbV9jb25uZWN0aW9u
cy5yZW1vdmUoY29ubmVjdGlvbklEKTsKLSAgICBjb25uZWN0aW9uLnJlbW92ZVdvcmtRdWV1ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXJTZXQ6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7Ci0KLSAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIGNvbm5lY3Rpb25JRF0oKSB7Ci0gICAgICAgIFZlY3RvcjxTdG9yYWdl
QXJlYUlkZW50aWZpZXI+IGlkZW50aWZpZXJzVG9SZW1vdmU7Ci0gICAgICAgIGZvciAoYXV0byYg
W2lkZW50aWZpZXIsIHN0b3JhZ2VBcmVhXSA6IG1fc3RvcmFnZUFyZWFzKSB7Ci0gICAgICAgICAg
ICBpZiAoc3RvcmFnZUFyZWEpCi0gICAgICAgICAgICAgICAgc3RvcmFnZUFyZWEtPnJlbW92ZUxp
c3RlbmVyKGNvbm5lY3Rpb25JRCk7Ci0KLSAgICAgICAgICAgIGlmICghc3RvcmFnZUFyZWEpCi0g
ICAgICAgICAgICAgICAgaWRlbnRpZmllcnNUb1JlbW92ZS5hcHBlbmQoaWRlbnRpZmllcik7Ci0g
ICAgICAgIH0KLQotICAgICAgICBmb3IgKGF1dG8gaWRlbnRpZmllciA6IGlkZW50aWZpZXJzVG9S
ZW1vdmUpCi0gICAgICAgICAgICBtX3N0b3JhZ2VBcmVhcy5yZW1vdmUoaWRlbnRpZmllcik7Ci0g
ICAgfSk7Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmhhbmRsZUxvd01lbW9yeVdhcm5p
bmcoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgbV9xdWV1ZS0+ZGlz
cGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSB7Ci0gICAgICAgIGZv
ciAoYXV0byYgc3RvcmFnZUFyZWEgOiBtX3N0b3JhZ2VBcmVhcy52YWx1ZXMoKSkKLSAgICAgICAg
ICAgIHN0b3JhZ2VBcmVhLT5oYW5kbGVMb3dNZW1vcnlXYXJuaW5nKCk7Ci0gICAgfSk7Ci19Ci0K
LXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OndhaXRVbnRpbFRhc2tzRmluaXNoZWQoKQotewotICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBtX3F1ZXVlLT5kaXNwYXRjaFN5bmMo
W3RoaXNdIHsKLSAgICAgICAgZm9yIChhdXRvJiBzdG9yYWdlTWFuYWdlciA6IG1fc3RvcmFnZU1h
bmFnZXJzLnZhbHVlcygpKQotICAgICAgICAgICAgc3RvcmFnZU1hbmFnZXItPmNsZWFyU3RvcmFn
ZU5hbWVzcGFjZXMoKTsKLQotICAgICAgICBtX3N0b3JhZ2VNYW5hZ2Vycy5jbGVhcigpOwotICAg
ICAgICBtX3N0b3JhZ2VBcmVhcy5jbGVhcigpOwotICAgIH0pOwotfQotCi12b2lkIFN0b3JhZ2VN
YW5hZ2VyU2V0Ojp3YWl0VW50aWxTeW5jaW5nTG9jYWxTdG9yYWdlRmluaXNoZWQoKQotewotICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBo
b3JlOwotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCAmc2VtYXBob3JlXSB7Ci0gICAgICAg
IGZsdXNoTG9jYWxTdG9yYWdlKCk7Ci0gICAgICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKLSAgICB9
KTsKLSAgICBzZW1hcGhvcmUud2FpdCgpOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpm
bHVzaExvY2FsU3RvcmFnZSgpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0g
ICAgZm9yIChjb25zdCBhdXRvJiBzdG9yYWdlQXJlYSA6IG1fc3RvcmFnZUFyZWFzLnZhbHVlcygp
KSB7Ci0gICAgICAgIEFTU0VSVChzdG9yYWdlQXJlYSk7Ci0gICAgICAgIGlmIChzdG9yYWdlQXJl
YSkKLSAgICAgICAgICAgIHN0b3JhZ2VBcmVhLT5zeW5jVG9EYXRhYmFzZSgpOwotICAgIH0KLX0K
LQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6c3VzcGVuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKLQotICAgIG1fcXVldWUtPnN1c3BlbmQoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
XSB7Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPmZsdXNoTG9jYWxTdG9yYWdlKCk7Ci0gICAgfSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0
OjpyZXN1bWUoKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBtX3F1
ZXVlLT5yZXN1bWUoKTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Z2V0U2Vzc2lvblN0
b3JhZ2VPcmlnaW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgR2V0T3JpZ2luc0NhbGxiYWNr
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
LQotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgc2Vzc2lvbklELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBhdXRvKiBzdG9yYWdlTWFuYWdlciA9IG1fc3Rv
cmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQpOwotICAgICAgICBBU1NFUlQoc3RvcmFnZU1hbmFn
ZXIpOwotCi0gICAgICAgIGF1dG8gb3JpZ2lucyA9IHN0b3JhZ2VNYW5hZ2VyLT5nZXRTZXNzaW9u
U3RvcmFnZU9yaWdpbnNDcm9zc1RocmVhZENvcHkoKTsKLSAgICAgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCBvcmlnaW5zID0gV1RGTW92ZShvcmlnaW5zKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUob3JpZ2lucykpOwotICAgICAgICB9KTsKLSAgICB9KTsK
LX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6ZGVsZXRlU2Vzc2lvblN0b3JhZ2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBEZWxldGVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBtX3F1ZXVlLT5kaXNwYXRj
aChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHNlc3Npb25JRCwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAg
ICAgICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lv
bklEKTsKLSAgICAgICAgQVNTRVJUKHN0b3JhZ2VNYW5hZ2VyKTsKLQotICAgICAgICBzdG9yYWdl
TWFuYWdlci0+ZGVsZXRlU2Vzc2lvblN0b3JhZ2VPcmlnaW5zKCk7Ci0gICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSk7Ci19
Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmRlbGV0ZVNlc3Npb25TdG9yYWdlRm9yT3JpZ2lu
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+JiBvcmlnaW5EYXRhcywgRGVsZXRlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgbV9xdWV1ZS0+
ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBzZXNzaW9uSUQs
IGNvcGllZE9yaWdpbkRhdGFzID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbkRhdGFzKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAg
ICAgICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lv
bklEKTsKLSAgICAgICAgQVNTRVJUKHN0b3JhZ2VNYW5hZ2VyKTsKLQotICAgICAgICBzdG9yYWdl
TWFuYWdlci0+ZGVsZXRlU2Vzc2lvblN0b3JhZ2VFbnRyaWVzRm9yT3JpZ2lucyhjb3BpZWRPcmln
aW5EYXRhcyk7Ci0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6Omdl
dExvY2FsU3RvcmFnZU9yaWdpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBHZXRPcmlnaW5z
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwotCi0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9LCBzZXNzaW9uSUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8qIHN0b3JhZ2VNYW5hZ2Vy
ID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNlc3Npb25JRCk7Ci0gICAgICAgIEFTU0VSVChzdG9y
YWdlTWFuYWdlcik7Ci0KLSAgICAgICAgYXV0byBvcmlnaW5zID0gc3RvcmFnZU1hbmFnZXItPmdl
dExvY2FsU3RvcmFnZU9yaWdpbnNDcm9zc1RocmVhZENvcHkoKTsKLSAgICAgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpLCBvcmlnaW5zID0gV1RGTW92ZShvcmlnaW5zKV0oKSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUob3JpZ2lucykpOwotICAgICAgICB9KTsKLSAg
ICB9KTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6ZGVsZXRlTG9jYWxTdG9yYWdlTW9k
aWZpZWRTaW5jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdhbGxUaW1lIHRpbWUsIERlbGV0
ZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKLQotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfSwgc2Vzc2lvbklELCB0aW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBhdXRvKiBzdG9yYWdl
TWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQpOwotICAgICAgICBBU1NF
UlQoc3RvcmFnZU1hbmFnZXIpOwotCi0gICAgICAgIHN0b3JhZ2VNYW5hZ2VyLT5kZWxldGVMb2Nh
bFN0b3JhZ2VPcmlnaW5zTW9kaWZpZWRTaW5jZSh0aW1lKTsKLSAgICAgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICB9KTsKLX0KLQot
dm9pZCBTdG9yYWdlTWFuYWdlclNldDo6ZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2lucyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE+JiBvcmlnaW5EYXRhcywgRGVsZXRlQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgbV9xdWV1ZS0+ZGlzcGF0
Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBzZXNzaW9uSUQsIGNvcGll
ZE9yaWdpbkRhdGFzID0gY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbkRhdGFzKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAg
YXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsK
LSAgICAgICAgQVNTRVJUKHN0b3JhZ2VNYW5hZ2VyKTsKLQotICAgICAgICBzdG9yYWdlTWFuYWdl
ci0+ZGVsZXRlTG9jYWxTdG9yYWdlRW50cmllc0Zvck9yaWdpbnMoY29waWVkT3JpZ2luRGF0YXMp
OwotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwotICAgIH0pOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpnZXRMb2NhbFN0
b3JhZ2VPcmlnaW5EZXRhaWxzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgR2V0T3JpZ2luRGV0
YWlsc0NhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKLQotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gUmVmIHsgKnRoaXMgfSwgc2Vzc2lvbklELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBhdXRvKiBzdG9yYWdlTWFu
YWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQpOwotICAgICAgICBBU1NFUlQo
c3RvcmFnZU1hbmFnZXIpOwotCi0gICAgICAgIGF1dG8gb3JpZ2luRGV0YWlscyA9IHN0b3JhZ2VN
YW5hZ2VyLT5nZXRMb2NhbFN0b3JhZ2VPcmlnaW5EZXRhaWxzQ3Jvc3NUaHJlYWRDb3B5KCk7Ci0g
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgb3JpZ2luRGV0YWlscyA9IFdURk1vdmUob3JpZ2luRGV0
YWlscyldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KG9yaWdpbkRldGFpbHMpKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU3RvcmFn
ZU1hbmFnZXJTZXQ6OnJlbmFtZU9yaWdpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgb2xkTmFtZSwgY29uc3QgVVJMJiBuZXdOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKLQotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgc2Vzc2lvbklELCBvbGROYW1lID0gb2xkTmFtZS5pc29sYXRlZENvcHkoKSwgbmV3
TmFtZSA9IG5ld05hbWUuaXNvbGF0ZWRDb3B5KCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8qIHN0b3JhZ2VN
YW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNlc3Npb25JRCk7Ci0gICAgICAgIEFTU0VS
VChzdG9yYWdlTWFuYWdlcik7Ci0gICAgICAgIHN0b3JhZ2VNYW5hZ2VyLT5yZW5hbWVPcmlnaW4o
b2xkTmFtZSwgbmV3TmFtZSk7Ci0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFn
ZXJTZXQ6OmNvbm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVy
IHN0b3JhZ2VOYW1lc3BhY2VJRCwgU2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgQ29u
bmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBt
X3N0b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lvbklEKTsKLSAgICBpZiAoIXN0b3JhZ2VNYW5hZ2Vy
KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBhdXRvKiBzdG9yYWdlQXJlYSA9IHN0b3JhZ2VNYW5hZ2VyLT5j
cmVhdGVMb2NhbFN0b3JhZ2VBcmVhKHN0b3JhZ2VOYW1lc3BhY2VJRCwgV1RGTW92ZShvcmlnaW5E
YXRhKSwgbV9xdWV1ZS5jb3B5UmVmKCkpOwotICAgIGlmICghc3RvcmFnZUFyZWEpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGF1dG8gc3RvcmFnZUFyZWFJRCA9IHN0b3JhZ2VBcmVhLT5pZGVudGlmaWVyKCk7
Ci0gICAgYXV0byBpdGVyID0gbV9zdG9yYWdlQXJlYXMuYWRkKHN0b3JhZ2VBcmVhSUQsIHN0b3Jh
Z2VBcmVhKS5pdGVyYXRvcjsKLSAgICBBU1NFUlRfVU5VU0VEKGl0ZXIsIHN0b3JhZ2VBcmVhID09
IGl0ZXItPnZhbHVlLmdldCgpKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VBcmVh
SUQpOwotCi0gICAgc3RvcmFnZUFyZWEtPmFkZExpc3RlbmVyKGNvbm5lY3Rpb24udW5pcXVlSUQo
KSk7Ci19Ci0KLXZvaWQgU3RvcmFnZU1hbmFnZXJTZXQ6OmNvbm5lY3RUb1RyYW5zaWVudExvY2Fs
U3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHN0b3JhZ2VOYW1lc3BhY2VJRCwg
U2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wTGV2ZWxPcmlnaW5EYXRhLCBTZWN1cml0eU9yaWdpbkRh
dGEmJiBvcmlnaW5EYXRhLCBDb25uZWN0VG9TdG9yYWdlQXJlYUNhbGxiYWNrJiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBhdXRv
KiBzdG9yYWdlTWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQpOwotICAg
IGlmICghc3RvcmFnZU1hbmFnZXIpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpu
dWxsb3B0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8qIHN0b3JhZ2VBcmVh
ID0gc3RvcmFnZU1hbmFnZXItPmNyZWF0ZVRyYW5zaWVudExvY2FsU3RvcmFnZUFyZWEoc3RvcmFn
ZU5hbWVzcGFjZUlELCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luRGF0YSksIFdURk1vdmUob3JpZ2lu
RGF0YSksIG1fcXVldWUuY29weVJlZigpKTsKLSAgICBpZiAoIXN0b3JhZ2VBcmVhKSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBhdXRvIHN0b3JhZ2VBcmVhSUQgPSBzdG9yYWdlQXJlYS0+aWRlbnRpZmllcigp
OwotICAgIGF1dG8gaXRlciA9IG1fc3RvcmFnZUFyZWFzLmFkZChzdG9yYWdlQXJlYUlELCBzdG9y
YWdlQXJlYSkuaXRlcmF0b3I7Ci0gICAgQVNTRVJUX1VOVVNFRChpdGVyLCBzdG9yYWdlQXJlYSA9
PSBpdGVyLT52YWx1ZS5nZXQoKSk7Ci0KLSAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQXJl
YUlEKTsKLQotICAgIHN0b3JhZ2VBcmVhLT5hZGRMaXN0ZW5lcihjb25uZWN0aW9uLnVuaXF1ZUlE
KCkpOwotfQotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0Ojpjb25uZWN0VG9TZXNzaW9uU3RvcmFn
ZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHN0b3JhZ2VOYW1lc3BhY2VJRCwgU2VjdXJp
dHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgQ29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayYm
IGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwot
Ci0gICAgYXV0byogc3RvcmFnZU1hbmFnZXIgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5nZXQoc2Vzc2lv
bklEKTsKLSAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvKiBz
dG9yYWdlQXJlYSA9IHN0b3JhZ2VNYW5hZ2VyLT5jcmVhdGVTZXNzaW9uU3RvcmFnZUFyZWEoc3Rv
cmFnZU5hbWVzcGFjZUlELCBXVEZNb3ZlKG9yaWdpbkRhdGEpLCBtX3F1ZXVlLmNvcHlSZWYoKSk7
Ci0gICAgaWYgKCFzdG9yYWdlQXJlYSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6
Om51bGxvcHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byBzdG9yYWdlQXJl
YUlEID0gc3RvcmFnZUFyZWEtPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIGl0ZXIgPSBtX3N0b3Jh
Z2VBcmVhcy5hZGQoc3RvcmFnZUFyZWFJRCwgc3RvcmFnZUFyZWEpLml0ZXJhdG9yOwotICAgIEFT
U0VSVF9VTlVTRUQoaXRlciwgc3RvcmFnZUFyZWEgPT0gaXRlci0+dmFsdWUuZ2V0KCkpOwotCi0g
ICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFyZWFJRCk7Ci0gICAgCi0gICAgc3RvcmFnZUFy
ZWEtPmFkZExpc3RlbmVyKGNvbm5lY3Rpb24udW5pcXVlSUQoKSk7Ci19Ci0KLXZvaWQgU3RvcmFn
ZU1hbmFnZXJTZXQ6OmRpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCkKLXsKLSAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGNvbnN0IGF1dG8mIHN0b3JhZ2VBcmVh
ID0gbV9zdG9yYWdlQXJlYXMuZ2V0KHN0b3JhZ2VBcmVhSUQpOwotICAgIEFTU0VSVChzdG9yYWdl
QXJlYSk7Ci0gICAgQVNTRVJUKHN0b3JhZ2VBcmVhLT5oYXNMaXN0ZW5lcihjb25uZWN0aW9uLnVu
aXF1ZUlEKCkpKTsKLQotICAgIGlmICghc3RvcmFnZUFyZWEpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVMaXN0ZW5lcihjb25uZWN0aW9uLnVuaXF1ZUlEKCkpOwot
ICAgIGlmICghc3RvcmFnZUFyZWEpCi0gICAgICAgIG1fc3RvcmFnZUFyZWFzLnJlbW92ZShzdG9y
YWdlQXJlYUlEKTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Z2V0VmFsdWVzKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVh
SUQsIEdldFZhbHVlc0NhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBjb25zdCBhdXRvJiBzdG9yYWdlQXJlYSA9IG1f
c3RvcmFnZUFyZWFzLmdldChzdG9yYWdlQXJlYUlEKTsKLSAgICBBU1NFUlQoIXN0b3JhZ2VBcmVh
IHx8IHN0b3JhZ2VBcmVhLT5oYXNMaXN0ZW5lcihjb25uZWN0aW9uLnVuaXF1ZUlEKCkpKTsKLQot
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VBcmVhID8gc3RvcmFnZUFyZWEtPml0ZW1zKCkg
OiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpKTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNl
dDo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFN0b3JhZ2VBcmVhSWRlbnRp
ZmllciBzdG9yYWdlQXJlYUlELCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyIHN0b3JhZ2VBcmVh
SW1wbElELCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBjb25z
dCBhdXRvJiBzdG9yYWdlQXJlYSA9IG1fc3RvcmFnZUFyZWFzLmdldChzdG9yYWdlQXJlYUlEKTsK
LSAgICBBU1NFUlQoc3RvcmFnZUFyZWEpOwotCi0gICAgYm9vbCBxdW90YUVycm9yID0gZmFsc2U7
Ci0gICAgaWYgKHN0b3JhZ2VBcmVhKQotICAgICAgICBzdG9yYWdlQXJlYS0+c2V0SXRlbShjb25u
ZWN0aW9uLnVuaXF1ZUlEKCksIHN0b3JhZ2VBcmVhSW1wbElELCBrZXksIHZhbHVlLCB1cmxTdHJp
bmcsIHF1b3RhRXJyb3IpOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIocXVvdGFFcnJvcik7Ci19
IAotCi12b2lkIFN0b3JhZ2VNYW5hZ2VyU2V0OjpyZW1vdmVJdGVtKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHN0b3JhZ2VBcmVhSUQsIFN0b3JhZ2VB
cmVhSW1wbElkZW50aWZpZXIgc3RvcmFnZUFyZWFJbXBsSUQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIHVybFN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotewotICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAg
Y29uc3QgYXV0byYgc3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVhcy5nZXQoc3RvcmFnZUFyZWFJ
RCk7Ci0gICAgQVNTRVJUKHN0b3JhZ2VBcmVhKTsKLQotICAgIGlmIChzdG9yYWdlQXJlYSkKLSAg
ICAgICAgc3RvcmFnZUFyZWEtPnJlbW92ZUl0ZW0oY29ubmVjdGlvbi51bmlxdWVJRCgpLCBzdG9y
YWdlQXJlYUltcGxJRCwga2V5LCB1cmxTdHJpbmcpOwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNldDo6Y2xlYXIoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCwgU3RvcmFnZUFy
ZWFJbXBsSWRlbnRpZmllciBzdG9yYWdlQXJlYUltcGxJRCwgY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGNvbnN0IGF1dG8mIHN0b3JhZ2VB
cmVhID0gbV9zdG9yYWdlQXJlYXMuZ2V0KHN0b3JhZ2VBcmVhSUQpOwotICAgIEFTU0VSVChzdG9y
YWdlQXJlYSk7Ci0KLSAgICBpZiAoc3RvcmFnZUFyZWEpCi0gICAgICAgIHN0b3JhZ2VBcmVhLT5j
bGVhcihjb25uZWN0aW9uLnVuaXF1ZUlEKCksIHN0b3JhZ2VBcmVhSW1wbElELCB1cmxTdHJpbmcp
OwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLX0KLQotdm9pZCBTdG9yYWdlTWFuYWdlclNl
dDo6Y2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZShJUEM6OkNvbm5lY3Rpb24mLCBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIGZyb21TdG9yYWdl
TmFtZXNwYWNlSUQsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHRvU3RvcmFnZU5hbWVzcGFj
ZUlEKQotewotICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgaWYgKGF1dG8q
IHN0b3JhZ2VNYW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNlc3Npb25JRCkpCi0gICAg
ICAgIHN0b3JhZ2VNYW5hZ2VyLT5jbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKGZyb21TdG9y
YWdlTmFtZXNwYWNlSUQsIHRvU3RvcmFnZU5hbWVzcGFjZUlEKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlN0
b3JhZ2UvU3RvcmFnZU1hbmFnZXJTZXQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhYzE1ZmVlZDQ2MDIzNTU5YWMzNjg1MjU5ZjMwN2U1NmI1MjNiOGYwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTA1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKLSNpbmNs
dWRlICJTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiU3RvcmFnZU1hbmFnZXIuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KLSNp
bmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KLSNpbmNsdWRl
IDx3dGYvU3VzcGVuZGFibGVXb3JrUXVldWUuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgot
Ci11c2luZyBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE7Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBTYW5kYm94RXh0ZW5zaW9uOwotCi11c2luZyBDb25uZWN0VG9TdG9yYWdlQXJl
YUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBzdGQ6Om9wdGlvbmFsPFN0
b3JhZ2VBcmVhSWRlbnRpZmllcj4mKT47Ci11c2luZyBHZXRWYWx1ZXNDYWxsYmFjayA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mKT47Ci11c2lu
ZyBHZXRPcmlnaW5zQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT47Ci11c2luZyBHZXRPcmlnaW5EZXRhaWxzQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVRyYWNrZXI6Ok9yaWdpbkRldGFpbHM+JiYpPjsKLXVzaW5nIERlbGV0ZUNhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPjsKLQotY2xhc3MgU3RvcmFnZU1hbmFnZXJTZXQgOiBwdWJs
aWMgSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIgewotcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8U3RvcmFnZU1hbmFnZXJTZXQ+IGNyZWF0ZSgpOwotICAgIH5TdG9yYWdl
TWFuYWdlclNldCgpOwotCi0gICAgdm9pZCBhZGQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGxvY2Fs
U3RvcmFnZURpcmVjdG9yeUhhbmRsZSk7Ci0gICAgdm9pZCByZW1vdmUoUEFMOjpTZXNzaW9uSUQp
OwotICAgIGJvb2wgY29udGFpbnMoUEFMOjpTZXNzaW9uSUQpOwotCi0gICAgdm9pZCBhZGRDb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYpOwotICAgIHZvaWQgcmVtb3ZlQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb24mKTsKLQotICAgIHZvaWQgaGFuZGxlTG93TWVtb3J5V2FybmluZygpOwotICAg
IHZvaWQgd2FpdFVudGlsVGFza3NGaW5pc2hlZCgpOwotICAgIHZvaWQgd2FpdFVudGlsU3luY2lu
Z0xvY2FsU3RvcmFnZUZpbmlzaGVkKCk7Ci0gICAgdm9pZCBzdXNwZW5kKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCByZXN1bWUoKTsKLQotICAgIHZvaWQgZ2V0U2Vzc2lv
blN0b3JhZ2VPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBHZXRPcmlnaW5zQ2FsbGJhY2smJik7Ci0g
ICAgdm9pZCBkZWxldGVTZXNzaW9uU3RvcmFnZShQQUw6OlNlc3Npb25JRCwgRGVsZXRlQ2FsbGJh
Y2smJik7Ci0gICAgdm9pZCBkZWxldGVTZXNzaW9uU3RvcmFnZUZvck9yaWdpbnMoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgRGVsZXRl
Q2FsbGJhY2smJik7Ci0gICAgdm9pZCBnZXRMb2NhbFN0b3JhZ2VPcmlnaW5zKFBBTDo6U2Vzc2lv
bklELCBHZXRPcmlnaW5zQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBkZWxldGVMb2NhbFN0b3JhZ2VN
b2RpZmllZFNpbmNlKFBBTDo6U2Vzc2lvbklELCBXYWxsVGltZSwgRGVsZXRlQ2FsbGJhY2smJik7
Ci0gICAgdm9pZCBkZWxldGVMb2NhbFN0b3JhZ2VGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIERlbGV0ZUNhbGxiYWNr
JiYpOwotICAgIHZvaWQgZ2V0TG9jYWxTdG9yYWdlT3JpZ2luRGV0YWlscyhQQUw6OlNlc3Npb25J
RCwgR2V0T3JpZ2luRGV0YWlsc0NhbGxiYWNrJiYpOwotICAgIHZvaWQgcmVuYW1lT3JpZ2luKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKTsKLSAgICBib29sIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKTsKLQotcHJpdmF0ZToKLSAgICBTdG9yYWdlTWFuYWdlclNldCgpOwotCi0gICAgdm9p
ZCBmbHVzaExvY2FsU3RvcmFnZSgpOwotCi0gICAgLy8gTWVzc2FnZSBIYW5kbGVycwotICAgIHZv
aWQgY29ubmVjdFRvTG9jYWxTdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCBQQUw6OlNlc3Np
b25JRCAsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBTZWN1cml0eU9yaWdpbkRhdGEmJiwg
Q29ubmVjdFRvU3RvcmFnZUFyZWFDYWxsYmFjayYmKTsKLSAgICB2b2lkIGNvbm5lY3RUb1RyYW5z
aWVudExvY2FsU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgUEFMOjpTZXNzaW9uSUQgLCBT
dG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgU2VjdXJpdHlPcmlnaW5EYXRhJiYsIFNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBDb25uZWN0VG9TdG9yYWdlQXJlYUNhbGxiYWNrJiYpOwotICAgIHZvaWQg
Y29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lv
bklELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgU2VjdXJpdHlPcmlnaW5EYXRhJiYsIENv
bm5lY3RUb1N0b3JhZ2VBcmVhQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBkaXNjb25uZWN0RnJvbVN0
b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllcik7Ci0gICAg
dm9pZCBnZXRWYWx1ZXMoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBH
ZXRWYWx1ZXNDYWxsYmFjayYmKTsKLSAgICB2b2lkIHNldEl0ZW0oSVBDOjpDb25uZWN0aW9uJiwg
U3RvcmFnZUFyZWFJZGVudGlmaWVyLCBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgcmVtb3ZlSXRlbShJ
UEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIsIFN0b3JhZ2VBcmVhSW1wbElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGNsZWFyKElQQzo6Q29ubmVjdGlv
biYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAg
dm9pZCBjbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElQQzo6Q29ubmVjdGlvbiYsIFBBTDo6
U2Vzc2lvbklELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBmcm9tU3RvcmFnZU5hbWVzcGFj
ZUlELCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCk7Ci0K
LSAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8U3RvcmFnZU1hbmFn
ZXI+PiBtX3N0b3JhZ2VNYW5hZ2VyczsKLSAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBTdHJp
bmc+IG1fc3RvcmFnZU1hbmFnZXJQYXRoczsKLSAgICBIYXNoTWFwPFN0b3JhZ2VBcmVhSWRlbnRp
ZmllciwgV2Vha1B0cjxTdG9yYWdlQXJlYT4+IG1fc3RvcmFnZUFyZWFzOwotCi0gICAgSGFzaFNl
dDxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEPiBtX2Nvbm5lY3Rpb25zOwotICAgIFJlZjxTdXNw
ZW5kYWJsZVdvcmtRdWV1ZT4gbV9xdWV1ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3Jh
Z2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9X
ZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzN2JhNjljZGJlYzA1MjRmMzNkZDM1ZjQ4Mzk2NGU3MWUyNGI3Y2MxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlclNldC5tZXNzYWdlcy5p
bgorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFO
RAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotbWVzc2FnZXMgLT4gU3RvcmFnZU1hbmFnZXJTZXQgewotICAgIENv
bm5lY3RUb0xvY2FsU3RvcmFnZUFyZWEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHN0b3JhZ2VOYW1lc3BhY2VJRCwgc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbkRhdGEpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyPiBzdG9yYWdlQXJlYUlEKSBTeW5j
aHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KLSAgICBDb25uZWN0VG9UcmFuc2llbnRMb2NhbFN0b3Jh
Z2VBcmVhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNl
SWRlbnRpZmllciBzdG9yYWdlTmFtZXNwYWNlSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgdG9wTGV2ZWxTZWN1cml0eU9yaWdpbkRhdGEsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW5EYXRhKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJL
aXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcj4gc3RvcmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2Fu
dHNDb25uZWN0aW9uCi0gICAgQ29ubmVjdFRvU2Vzc2lvblN0b3JhZ2VBcmVhKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBzdG9yYWdl
TmFtZXNwYWNlSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlP
cmlnaW5EYXRhKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmll
cj4gc3RvcmFnZUFyZWFJRCkgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCi0gICAgRGlzY29u
bmVjdEZyb21TdG9yYWdlQXJlYShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBzdG9yYWdl
QXJlYUlEKSBXYW50c0Nvbm5lY3Rpb24KLSAgICBHZXRWYWx1ZXMoV2ViS2l0OjpTdG9yYWdlQXJl
YUlkZW50aWZpZXIgc3RvcmFnZUFyZWFJRCkgLT4gKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHZh
bHVlcykgU3luY2hyb25vdXMgV2FudHNDb25uZWN0aW9uCi0gICAgQ2xvbmVTZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6U3RvcmFnZU5hbWVz
cGFjZUlkZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViS2l0OjpTdG9yYWdlTmFt
ZXNwYWNlSWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkgV2FudHNDb25uZWN0aW9uCi0K
LSAgICBTZXRJdGVtKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgU3RyaW5nIGtl
eSwgU3RyaW5nIHZhbHVlLCBTdHJpbmcgdXJsU3RyaW5nKSAtPiAoYm9vbCBxdW90YUV4Y2VwdGlv
bikgV2FudHNDb25uZWN0aW9uCi0gICAgUmVtb3ZlSXRlbShXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIgaW1w
bElkZW50aWZpZXIsIFN0cmluZyBrZXksIFN0cmluZyB1cmxTdHJpbmcpIC0+ICgpIFdhbnRzQ29u
bmVjdGlvbgotICAgIENsZWFyKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllciBpbXBsSWRlbnRpZmllciwgU3Ry
aW5nIHVybFN0cmluZykgLT4gKCkgV2FudHNDb25uZWN0aW9uCi19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBi
ZWMxYTNmMTM0ZTJkZDM5MjM2MTI3NTJhODlkODgxNTc5ZTIwZjg0Li4zZGRiMDYzMWUxMDIxOTFj
Nzc1MzkwYjUyMzdkNzhiYzBkMDIzMjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTE2Niw3ICsxNjYsNiBA
QCBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZU5hbWVzcGFjZS5jcHAKIE5l
dHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UuY3BwCiBOZXR3
b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhLmNwcAogTmV0d29ya1Byb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKLU5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXJTZXQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1RyYW5zaWVudExv
Y2FsU3RvcmFnZU5hbWVzcGFjZS5jcHAKIAogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggN2E3YWI3YzFmMmU4N2I4ZDI5MTJiYzFjNmNhZDI5NTY5YmFmODQyMC4u
N2VlZTgwNmJlZmMyMTg3NTIzMmI0NGYyNDgxYWIwZGFmNDRmMDFmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDczLDkgKzE0NzMs
NiBAQAogCQk5MzVCNTc5QTI2RjUxOTMzMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM1QjU3OTgyNkY1MTI3MDAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVn
aXN0cnkuaCAqLzsgfTsKIAkJOTM1RUVCOUIxMjc3NjE3QzAwMzMyMkI4IC8qIFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM1RUVCOTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzNUVFQjlGMTI3NzYxQUMwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTYx
Mjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTM2OEVFREUyMzAzQTkwMjAw
QkRCMTFBIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNjhFRURDMjMwM0E4RDgwMEJE
QjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07Ci0JCTkz
NjhFRURGMjMwM0E5RUQwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzY4RUVERDIzMDNB
OEQ4MDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oICovOyB9OwotCQk5MzZC
MDU5ODIzMDM5MDk3MDAyRkMwNkIgLyogU3RvcmFnZU1hbmFnZXJTZXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNkIwNTk1MjMwMzkwMEIwMDJGQzA2
QiAvKiBTdG9yYWdlTWFuYWdlclNldC5oICovOyB9OwogCQk5MzczNUVCQjFDOTI5ODYzMDAzMzZG
QTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzczNUVCQTFDOTI5ODYzMDAzMzZGQTcgLyogV0tQ
cmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggKi87IH07CiAJCTkzOTEwNzRGMUJGNkJDNjUwMDhD
MTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyog
V0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oICovOyB9OwogCQk5MzkxRjJDQjEyMUI2N0FE
MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgfTsKQEAgLTU3MTksMTEgKzU3MTYsNiBA
QAogCQk5MzVFRUI5NjEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTcxMjc3NjE2RDAwMzMy
MkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5MzY4RUVEQzIzMDNBOEQ4MDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSBTdG9y
YWdlTWFuYWdlclNldE1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQvU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk5MzY4RUVERDIzMDNBOEQ4MDBCREIxMUEgLyogU3Rv
cmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQvU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwotCQk5MzZCMDU5NTIzMDM5MDBCMDAyRkMwNkIgLyogU3RvcmFnZU1hbmFnZXJT
ZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZU1hbmFnZXJTZXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTM2QjA1OTYyMzAzOTAwQjAwMkZDMDZC
IC8qIFN0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFN0b3JhZ2VNYW5hZ2VyU2V0Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5MzZCMDU5NzIzMDM5MDBCMDAyRkMwNkIgLyogU3RvcmFnZU1hbmFnZXJTZXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZU1hbmFnZXJTZXQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzczNUVCQTFDOTI5ODYzMDAzMzZGQTcg
LyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVu
dEluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZp
ZXdFbGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
OTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMjc5LDkgKzExMjcxLDYgQEAKIAkJ
CQk0NjVGNEUwMjIzMDc1OUQ1MDAzQ0VEQjcgLyogU3RvcmFnZUFyZWFJZGVudGlmaWVyLmggKi8s
CiAJCQkJOTNCMjYxNEEyMjdEMTQ3MjAwQjk3QTc2IC8qIFN0b3JhZ2VNYW5hZ2VyLmNwcCAqLywK
IAkJCQk5M0IyNjE0OTIyN0QxNDcyMDBCOTdBNzYgLyogU3RvcmFnZU1hbmFnZXIuaCAqLywKLQkJ
CQk5MzZCMDU5NzIzMDM5MDBCMDAyRkMwNkIgLyogU3RvcmFnZU1hbmFnZXJTZXQuY3BwICovLAot
CQkJCTkzNkIwNTk1MjMwMzkwMEIwMDJGQzA2QiAvKiBTdG9yYWdlTWFuYWdlclNldC5oICovLAot
CQkJCTkzNkIwNTk2MjMwMzkwMEIwMDJGQzA2QiAvKiBTdG9yYWdlTWFuYWdlclNldC5tZXNzYWdl
cy5pbiAqLywKIAkJCQk0NkJFQjZFMjIyRkJCMjFBMDAyNjk4NjcgLyogVHJhbnNpZW50TG9jYWxT
dG9yYWdlTmFtZXNwYWNlLmNwcCAqLywKIAkJCQk0NkJFQjZFMTIyRkJCMjFBMDAyNjk4NjcgLyog
VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlLmggKi8sCiAJCQkpOwpAQCAtMTMwMzQsOCAr
MTMwMjMsNiBAQAogCQkJCTkzRDZCNzdGMjU0Q0NBQkIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTFBMzM0REVCMTZERThGODgwMDZB
OEUzOCAvKiBTdG9yYWdlQXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUEzMzRE
RUMxNkRFOEY4ODAwNkE4RTM4IC8qIFN0b3JhZ2VBcmVhTWFwTWVzc2FnZXMuaCAqLywKLQkJCQk5
MzY4RUVEQzIzMDNBOEQ4MDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAotCQkJCTkzNjhFRUREMjMwM0E4RDgwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdl
clNldE1lc3NhZ2VzLmggKi8sCiAJCQkJQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDRDQ5MUIwQzFF
NzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oICovLAog
CQkJCUNENDkxQjE1MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTE0NjM2LDggKzE0NjIzLDYgQEAKIAkJCQkx
QTMzNERFRTE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNFNzk5QzcyNzYwMjc0NjAwNzQwMDhBIC8qIFN0b3JhZ2VBcmVhUmVn
aXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQjI2MTREMjI3RDE0OUUwMEI5N0E3NiAvKiBT
dG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTM2QjA1OTgyMzAzOTA5NzAwMkZD
MDZCIC8qIFN0b3JhZ2VNYW5hZ2VyU2V0LmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzY4RUVERjIz
MDNBOUVEMDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDY1RjRFMDYyMzBCMkU5NTAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjczMTIzQzI1Q0M4NTI1MDAzQjI3OTYgLyog
U3RyZWFtQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I3MzEyM0EyNUND
ODUyNTAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtMTcwNDAsNyArMTcwMjUsNiBAQAogCQkJCTkzQUI5QjU2MjU3NUEyOEIwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRDZCNzgyMjU0Q0NDRjQwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQTMzNERFRDE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTM2OEVFREUyMzAzQTkwMjAwQkRCMTFB
IC8qIFN0b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEMTFCNzUxMjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMS1tbS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTJEMTFCNzUyMjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNl
MS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjc1MzIxMjZBMjgyMDA2Rjg4NzggLyogVW5p
ZmllZFNvdXJjZTItbW0ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAppbmRleCA5Mzc2MmNj
OGYwMzhjMzdhZDJlZDM3YjNjMmM4MTQwNTgzOTA5NGM5Li5kNGNmNmFjYTc4MTkyYzczNTBmYTNj
ODY5Zjk5NGViMDA2ZWI3ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5j
bHVkZSAiTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTdG9yYWdl
QXJlYUltcGwuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmgiCi0jaW5jbHVk
ZSAiU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cFBy
b3h5LmgiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>