<?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>230181</bug_id>
          
          <creation_ts>2021-09-10 16:50:51 -0700</creation_ts>
          <short_desc>[WK2] Reduce amount of IPC needed by BroadcastChannel</short_desc>
          <delta_ts>2021-09-15 08:57:34 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>161472</blocked>
    
    <blocked>228089</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1792603</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-10 16:50:51 -0700</bug_when>
    <thetext>Avoid doing IPC for BroadcastChannel when the destination is within the same process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792610</commentid>
    <comment_count>1</comment_count>
      <attachid>437925</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-10 16:56:47 -0700</bug_when>
    <thetext>Created attachment 437925
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792660</commentid>
    <comment_count>2</comment_count>
      <attachid>437943</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-11 00:05:24 -0700</bug_when>
    <thetext>Created attachment 437943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792713</commentid>
    <comment_count>3</comment_count>
      <attachid>437953</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-11 09:16:57 -0700</bug_when>
    <thetext>Created attachment 437953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793056</commentid>
    <comment_count>4</comment_count>
      <attachid>437953</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-13 13:14:22 -0700</bug_when>
    <thetext>Comment on attachment 437953
Patch

I&apos;m assuming this already handles the case where a process crashes, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793057</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-13 13:17:34 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 437953 [details]
&gt; Patch
&gt; 
&gt; I&apos;m assuming this already handles the case where a process crashes, right?

No, we don&apos;t currently have good handling for network process crashes, meaning that the BroadcastChannelRegistry doesn&apos;t get repopulated after a network process relaunch. This is something we should improve but:
1. I don&apos;t think it is made worse by this patch (if anything it is better because messaging between BroadcastChannels inside the same WebProcess will still work after a network process relaunch).
2. I suspect we have issues for MessagePort.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793137</commentid>
    <comment_count>6</comment_count>
      <attachid>438086</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-13 16:10:14 -0700</bug_when>
    <thetext>Created attachment 438086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793147</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-13 16:27:25 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 437953 [details]
&gt; Patch
&gt; 
&gt; I&apos;m assuming this already handles the case where a process crashes, right?

I filed Bug 230236 to track this issue. Will fix in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793190</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-13 21:15:50 -0700</bug_when>
    <thetext>Committed r282377 (241639@main): &lt;https://commits.webkit.org/241639@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438086.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793191</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-13 21:16:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/83086565&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437925</attachid>
            <date>2021-09-10 16:56:47 -0700</date>
            <delta_ts>2021-09-11 00:05:23 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>230181_BroadcastChannel_less_IPC_wip.patch</filename>
            <type>text/plain</type>
            <size>10190</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCmluZGV4IGQxODBlMDdlMTc3My4uNDZmYTY2
ZDhlOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTU5LDcgKzU5LDcg
QEAgdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5l
bChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3QKICAgICBjaGFubmVsc0Zvck5hbWVJdGVyYXRvci0+
dmFsdWUucmVtb3ZlRmlyc3QoZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIpOwogfQogCi12b2lkIE5l
dHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0
IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNl
LCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1l
LCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGNoYW5uZWxz
Rm9yT3JpZ2luSXRlcmF0b3IgPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmZpbmQob3JpZ2luKTsKICAg
ICBBU1NFUlQoY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciAhPSBtX2Jyb2FkY2FzdENoYW5uZWxz
LmVuZCgpKTsKQEAgLTcxLDkgKzcxLDkgQEAgdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5Ojpwb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGMKICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAKICAgICBhdXRvIGNhbGxiYWNrQWdncmVn
YXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICBHbG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2VHbG9iYWxD
aGFubmVsSWRlbnRpZmllciB7IGNvbm5lY3Rpb24udW5pcXVlSUQoKSwgc291cmNlIH07CiAgICAg
Zm9yIChhdXRvJiBnbG9iYWxJZGVudGlmaWVyIDogY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3ItPnZh
bHVlKSB7Ci0gICAgICAgIGlmIChnbG9iYWxJZGVudGlmaWVyID09IHNvdXJjZUdsb2JhbENoYW5u
ZWxJZGVudGlmaWVyKQorICAgICAgICAvLyBPbmx5IGRpc3BhdGNoIHRoZSBwb3N0IHRoZSBtZXNz
YWdlcyB0byBCcm9hZGNhc3RDaGFubmVscyBvdXRzaWRlIHRoZSBzb3VyY2UgcHJvY2Vzcy4KKyAg
ICAgICAgaWYgKGdsb2JhbElkZW50aWZpZXIuY29ubmVjdGlvbklkZW50aWZpZXIgPT0gY29ubmVj
dGlvbi51bmlxdWVJRCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgUmVmUHRy
IGNvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNvbm5lY3Rpb24oZ2xvYmFsSWRlbnRpZmll
ci5jb25uZWN0aW9uSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCmluZGV4
IDUxZTZiOTQwZGQ2OS4uMzc0NGEzYjZhZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnku
aApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChJ
UEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKTsKICAgICB2b2lk
IHVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElk
ZW50aWZpZXIpOwotICAgIHZvaWQgcG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9h
ZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBwb3N0TWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25z
dCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IEdsb2JhbEJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5tZXNzYWdlcy5pbgppbmRleCA0Yjc0ZGY4MTJkZTguLmExMjY0ZTI0MjMwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgpAQCAtMjMsNSArMjMs
NSBAQAogbWVzc2FnZXMgLT4gTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSBOb3RSZWZD
b3VudGVkIHsKICAgICBSZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biBvcmlnaW4sIFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmll
ciBjaGFubmVsSWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCiAgICAgVW5yZWdpc3RlckNoYW5u
ZWwoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lLCBXZWJD
b3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikgV2FudHND
b25uZWN0aW9uCi0gICAgUG9zdE1lc3NhZ2Uoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBv
cmlnaW4sIFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBz
b3VyY2UsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAt
PiAoKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KKyAgICBQb3N0TWVzc2FnZShzdHJ1Y3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgU3RyaW5nIG5hbWUsIHN0cnVjdCBXZWJDb3JlOjpNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAtPiAoKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXggNDk4
MmY4MDY2MjM0Li5mMjIxNzYyMjdlN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvQnJvYWRjYXN0Q2hhbm5lbC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaD4KKyNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dy
ZWdhdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00MSwxNyArNDIsNjcgQEAgc3Rh
dGljIGlubGluZSBJUEM6OkNvbm5lY3Rpb24mIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCiAK
IHZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZWdpc3RlckNoYW5uZWwoY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKKyAgICByZWdpc3Rl
ckNoYW5uZWxMb2NhbGx5KG9yaWdpbiwgbmFtZSwgaWRlbnRpZmllcik7CiAgICAgbmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeTo6UmVnaXN0ZXJDaGFubmVsIHsgb3JpZ2luLCBuYW1lLCBpZGVudGlmaWVyIH0sIDAp
OwogfQogCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVs
TG9jYWxseShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyKQor
eworICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2luID0gbV9jaGFubmVsc1Blck9yaWdpbi5lbnN1
cmUob3JpZ2luLCBbXSB7IHJldHVybiBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFdlYkNvcmU6OkJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyPj57IH07IH0pLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBh
dXRvJiBjaGFubmVsc0Zvck5hbWUgPSBjaGFubmVsc0Zvck9yaWdpbi5lbnN1cmUobmFtZSwgW10g
eyByZXR1cm4gVmVjdG9yPFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyPiB7IH07
IH0pLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBjaGFubmVsc0Zvck5hbWUuYXBwZW5kKGlkZW50aWZp
ZXIpOworfQorCiB2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNo
YW5uZWwoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsK
KyAgICB1bnJlZ2lzdGVyQ2hhbm5lbExvY2FsbHkob3JpZ2luLCBuYW1lLCBpZGVudGlmaWVyKTsK
ICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpVbnJlZ2lzdGVyQ2hhbm5lbCB7IG9yaWdpbiwgbmFtZSwg
aWRlbnRpZmllciB9LCAwKTsKIH0KIAordm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6
OnVucmVnaXN0ZXJDaGFubmVsTG9jYWxseShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRp
ZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gY2hhbm5lbHNQZXJPcmlnaW5JdGVyYXRvciA9
IG1fY2hhbm5lbHNQZXJPcmlnaW4uZmluZChvcmlnaW4pOworICAgIGlmIChjaGFubmVsc1Blck9y
aWdpbkl0ZXJhdG9yID09IG1fY2hhbm5lbHNQZXJPcmlnaW4uZW5kKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2luID0gY2hhbm5lbHNQZXJPcmlnaW5JdGVy
YXRvci0+dmFsdWU7CisgICAgYXV0byBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yID0gY2hhbm5l
bHNGb3JPcmlnaW4uZmluZChuYW1lKTsKKyAgICBpZiAoY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRv
ciA9PSBjaGFubmVsc0Zvck9yaWdpbi5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byYgY2hhbm5lbElkZW50aWZpZXJzRm9yTmFtZSA9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3It
PnZhbHVlOworICAgIGlmICghY2hhbm5lbElkZW50aWZpZXJzRm9yTmFtZS5yZW1vdmVGaXJzdChp
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChjaGFubmVsSWRlbnRpZmllcnNG
b3JOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgY2hhbm5lbHNGb3JPcmlnaW4ucmVtb3ZlKGNoYW5u
ZWxzRm9yT3JpZ2luSXRlcmF0b3IpOworICAgIGlmIChjaGFubmVsc0Zvck9yaWdpbi5pc0VtcHR5
KCkpCisgICAgICBtX2NoYW5uZWxzUGVyT3JpZ2luLnJlbW92ZShjaGFubmVsc1Blck9yaWdpbkl0
ZXJhdG9yKTsKK30KKwogdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNz
YWdlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5h
bWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgUmVmPFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5OjpQb3N0TWVzc2FnZSB7IG9yaWdpbiwgbmFtZSwgc291cmNlLCBXZWJDb3JlOjpN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyB7IFdURk1vdmUobWVzc2FnZSksIHsgfSB9IH0sIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCAwKTsKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9
IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICBwb3N0TWVzc2FnZUxvY2FsbHkob3JpZ2luLCBuYW1lLCBzb3VyY2UsIG1lc3NhZ2UuY29w
eVJlZigpLCBjYWxsYmFja0FnZ3JlZ2F0b3IuY29weVJlZigpKTsKKyAgICBuZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OlBvc3RNZXNzYWdlIHsgb3JpZ2luLCBuYW1lLCBXZWJDb3JlOjpN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyB7IFdURk1vdmUobWVzc2FnZSksIHsgfSB9IH0sIFtjYWxs
YmFja0FnZ3JlZ2F0b3JdIHsgfSwgMCk7Cit9CisKK3ZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5Ojpwb3N0TWVzc2FnZUxvY2FsbHkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3Nh
Z2UsIFJlZjxXVEY6OkNhbGxiYWNrQWdncmVnYXRvcj4mJiBjYWxsYmFja0FnZ3JlZ2F0b3IpCit7
CisgICAgYXV0byBjaGFubmVsc1Blck9yaWdpbkl0ZXJhdG9yID0gbV9jaGFubmVsc1Blck9yaWdp
bi5maW5kKG9yaWdpbik7CisgICAgaWYgKGNoYW5uZWxzUGVyT3JpZ2luSXRlcmF0b3IgPT0gbV9j
aGFubmVsc1Blck9yaWdpbi5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgY2hh
bm5lbHNGb3JPcmlnaW4gPSBjaGFubmVsc1Blck9yaWdpbkl0ZXJhdG9yLT52YWx1ZTsKKyAgICBh
dXRvIGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3IgPSBjaGFubmVsc0Zvck9yaWdpbi5maW5kKG5h
bWUpOworICAgIGlmIChjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yID09IGNoYW5uZWxzRm9yT3Jp
Z2luLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGNoYW5uZWxJZGVudGlmaWVy
c0Zvck5hbWUgPSBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52YWx1ZTsKKyAgICBmb3IgKGF1
dG8mIGNoYW5uZWxJZGVudGllciA6IGNoYW5uZWxJZGVudGlmaWVyc0Zvck5hbWUpIHsKKyAgICAg
ICAgaWYgKGNoYW5uZWxJZGVudGllciA9PSBzb3VyY2UpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbDo6ZGlzcGF0Y2hNZXNzYWdlVG8oY2hh
bm5lbElkZW50aWVyLCBtZXNzYWdlLmNvcHlSZWYoKSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9
KTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVz
c2FnZVRvUmVtb3RlKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDUwNTU3N2U2ZjRlMi4uZGY5MjUwZTU5YjEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCkBAIC0yNyw2ICsyNywx
MyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4K
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdURiB7CitjbGFzcyBDYWxsYmFja0FnZ3JlZ2F0b3I7Cit9CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0cnVjdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czsKQEAgLTUxLDYgKzU4LDEy
IEBAIHByaXZhdGU6CiAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgPSBkZWZhdWx0
OwogCiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvUmVtb3RlKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworCisgICAgdm9pZCByZWdpc3RlckNoYW5uZWxMb2NhbGx5
KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpOworICAgIHZvaWQgdW5yZWdpc3RlckNoYW5u
ZWxMb2NhbGx5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIpOworICAgIHZvaWQgcG9zdE1l
c3NhZ2VMb2NhbGx5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2Vi
Q29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBSZWY8V1RGOjpDYWxsYmFja0FnZ3JlZ2F0
b3I+JiYpOworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpDbGllbnRPcmlnaW4sIEhhc2hNYXA8U3Ry
aW5nLCBWZWN0b3I8V2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+Pj4gbV9jaGFu
bmVsc1Blck9yaWdpbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437943</attachid>
            <date>2021-09-11 00:05:24 -0700</date>
            <delta_ts>2021-09-11 09:16:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230181-20210911000524.patch</filename>
            <type>text/plain</type>
            <size>23973</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlNzg0NTk0YmRjMDUy
YmJjOGM0MDJmMmJlMDVkZGRiYzNjN2NhNy4uZDg3MjkyYWIzYWQ1Nzc2NjAxM2Y4ZjI2NGE4ZGE3
MGIzNmVmMWE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gUmVkdWNlIGFtb3Vu
dCBvZiBJUEMgbmVlZGVkIGJ5IEJyb2FkY2FzdENoYW5uZWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDE4MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoKSB3aGljaCBpcyBzaW1pbGFyIHRvCisgICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oKSBidXQgZG9lc24ndCBjYWxsIHBv
c3RUYXNrKCkgaWYgd2UncmUgYWxyZWFkeQorICAgICAgICBvbiB0aGUgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCdzIGNvbnRleHQgdGhyZWFkLiBVc2UgaXQgaW4gQnJvYWRjYXN0Q2hhbm5lbDo6ZGlz
cGF0Y2hNZXNzYWdlVG8oKQorICAgICAgICB0byBhdm9pZCB1bm5lY2Vzc2FyeSB0aHJlYWQgaG9w
cGluZyB3aGVuIHRoZSBCcm9hZGNhc3RDaGFubmVsIGJlbG9uZ3MgdG8gYSBXaW5kb3cKKyAgICAg
ICAgZW52aXJvbm1lbnQuCisKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2VUbyk6Cisg
ICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKToKKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorCiAyMDIxLTA5LTEwICBNYXJjb3Mg
Q2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KIAogICAgICAgICBbV2ViLVNoYXJlXSBoYW5k
bGUgbm9uLWZ1bGx5IGFjdGl2ZSBkb2N1bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDcxNTJkOTVkOGE2OThm
MjA1ZjBjNDZhMDU3NTFmMGNiOWQ0YTQ0NS4uMzU3YjJkNjMwYTU1YjMxOTY4ODZhMmFlYjFhNDYy
NGQyNjk1YTM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMS0wOS0xMCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFJlZHVjZSBhbW91bnQg
b2YgSVBDIG5lZWRlZCBieSBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxODEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgYW1vdW50IG9mIElQQyBuZWVkZWQgYnkg
QnJvYWRjYXN0Q2hhbm5lbCBmb3IgYm90aCByZWdpc3RyYXRpb24gLyB1bnJlZ2lzdHJhdGlvbgor
ICAgICAgICBhbmQgY29tbXVuaWNhdGlvbi4gRWFjaCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkgaW4gdGhlIFdlYlByb2Nlc3Mgbm93IG1haW50YWlucworICAgICAgICBhIG1hcCBvZiBCcm9h
ZGNhc3RDaGFubmVscyB3aXRoaW4gdGhlIFdlYlByb2Nlc3MuIEFzIGEgcmVzdWx0LCB3ZSBhcmUg
YWJsZSB0byBkaXNwYXRjaAorICAgICAgICBtZXNzYWdlcyB0byBvdGhlciBCcm9hZGNhc3RDaGFu
bmVscyB3aXRoaW4gdGhlIHNhbWUgcHJvY2VzcyB3aXRob3V0IGdvaW5nIHZpYSB0aGUKKyAgICAg
ICAgTmV0d29ya1Byb2Nlc3MuCisKKyAgICAgICAgQWxzbywgdGhlIE5ldHdvcmtCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnkgb24gdGhlIE5ldHdvcmtQcm9jZXNzIHNpZGUgbm8gbG9uZ2VyIG5lZWRz
CisgICAgICAgIHRvIHN0b3JlIGluZGl2aWR1YWwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXJz
LiBJdCBtZXJlbHkgbmVlZHMgdG8ga25vdyB3aGljaAorICAgICAgICBXZWJQcm9jZXNzZXMgaGF2
ZSBvbmUgb3IgbW9yZSBCcm9hZGNhc3RDaGFubmVscyBmb3IgYSBnaXZlbiBDbGllbnRPcmlnaW4g
LyBuYW1lLgorICAgICAgICBXaGVuIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBv
c3RNZXNzYWdlKCkgaXMgY2FsbGVkLCB3ZSBubyBsb25nZXIgc2VuZAorICAgICAgICBJUEMgdG8g
dGhlIHNvdXJjZSBwcm9jZXNzIGluIGNhc2UgdGhlcmUgYXJlIG90aGVyIEJyb2FkY2FzdENoYW5u
ZWxzIHRoYW4gdGhlIHNvdXJjZQorICAgICAgICB3aXRoIHRoZSBnaXZlbiBDbGllbnRPcmlnaW4g
LyBuYW1lIGluIHRoYXQgcHJvY2Vzcy4gQWxzbywgaWYgdGhlcmUgaXMgbW9yZSB0aGFuCisgICAg
ICAgIG9uZSBCcm9hZGNhc3RDaGFubmVsIGZvciB0aGUgZ2l2ZW4gQ2xpZW50T3JpZ2luIC8gbmFt
ZSB3aXRoaW4gYSBnaXZlbiBkZXN0aW5hdGlvbgorICAgICAgICBXZWJQcm9jZXNzLCB3ZSBub3cg
c2VuZCBhIHNpbmdsZSBJUEMgbWVzc2FnZSBpbnN0ZWFkIG9mIHNlbmRpbmcgb25lIHBlciBCcm9h
ZGNhc3RDaGFubmVsLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZW1vdmVD
b25uZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5l
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBv
c3RNZXNzYWdlTG9jYWxseSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeTo6cG9zdE1lc3NhZ2VUb1JlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdl
cy5pbjoKKwogMjAyMS0wOS0xMCAgUGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIENsb3NlIFhQQyBjb25uZWN0aW9uIGJlZm9yZSBlbnRlcmluZyB0aGUgV1Ag
c2FuZGJveApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCmluZGV4IDFjNjI1
NjNjMTExZTI4NjZlMjI4OGU2ZWRhNjQ4YmM1OWFhZmZkMzAuLmEwNjRkZGU0ZjMzOGIxYjExZWZm
MWIzNjJmODU1MTNiMzgwZTcyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9h
ZGNhc3RDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5l
bC5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIEJyb2FkY2FzdENoYW5uZWw6OmRpc3BhdGNo
TWVzc2FnZVRvKEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGNoYW5uZWxJZGVudAogICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdh
dG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oY29udGV4dElkZW50
aWZpZXIsIFtjaGFubmVsSWRlbnRpZmllciwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIGNh
bGxiYWNrQWdncmVnYXRvciA9IFdURk1vdmUoY2FsbGJhY2tBZ2dyZWdhdG9yKV0oYXV0byYpIG11
dGFibGUgeworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVh
ZChjb250ZXh0SWRlbnRpZmllciwgW2NoYW5uZWxJZGVudGlmaWVyLCBtZXNzYWdlID0gV1RGTW92
ZShtZXNzYWdlKSwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gV1RGTW92ZShjYWxsYmFja0FnZ3JlZ2F0
b3IpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgIFJlZlB0cjxCcm9hZGNhc3RDaGFubmVsPiBj
aGFubmVsOwogICAgICAgICB7CiAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsQnJvYWRj
YXN0Q2hhbm5lbHNMb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKaW5kZXggZWM0MjU3ODI5ZWNjMzM2NTk2Yzg5NDQ5M2FhMzFlZjk5YTQ4N2U4
ZS4uNTViNmQzOGU5NDliZDRhMTI1NDhiZWFjMTNjZTVhYTlmMTY1Njc5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtNjUwLDQgKzY1MCwy
NCBAQCBib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRpZgogICAgIHJldHVybiB0cnVlOwogfQogCitib29s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyLCBUYXNrJiYgdGFzaykKK3sKKyAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gbnVsbHB0cjsKKyAgICB7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2sgfTsKKyAg
ICAgICAgY29udGV4dCA9IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwKCkuZ2V0KGlkZW50
aWZpZXIpOworCisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBpZiAoIWNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKSB7CisgICAgICAg
ICAgICBjb250ZXh0LT5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgdGFzay5wZXJmb3JtVGFzaygqY29udGV4
dCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDk4YjQyMmY4OThk
ZTg4YjRkY2VhZGRmNDhmOTQyZTYxYzA3YmRhMDguLmRiN2VjZjRhNmIxMTAxNDgxNDUyYzkzZmE0
YmVlYjA1MjRkOTQ2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaApAQCAtMjgxLDYgKzI4MSw3IEBAIHB1YmxpYzoKICAgICBTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyKiBlbnN1cmVTZXJ2aWNlV29ya2VyQ29udGFpbmVyKCk7CiAjZW5kaWYKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBwb3N0VGFza1RvKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBUYXNrJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGVuc3Vy
ZU9uQ29udGV4dFRocmVhZChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgVGFzayYm
KTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlm
aWVyKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCmluZGV4IGQxODBl
MDdlMTc3MzJlMDI5ZjA2NzZkNGU5N2ZiZjAyYjkwNzY1MjUuLjY5YTk3NjkwNzcwYWM0MTBhMjli
NzE5NTI4ZTYyNWI1YTk0NTAyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApA
QCAtMzQsNTMgKzM0LDUxIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBOZXR3b3JrQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5OjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgPSBkZWZh
dWx0OwogCi12b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hh
bm5lbChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyIGNoYW5uZWxJZGVudGlmaWVyKQordm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5OjpyZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1l
KQogewotICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2luID0gbV9icm9hZGNhc3RDaGFubmVscy5l
bnN1cmUob3JpZ2luLCBbXSB7IHJldHVybiBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXAgeyB9
OyB9KS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgYXV0byYgY2hhbm5lbHNGb3JOYW1lID0gY2hhbm5l
bHNGb3JPcmlnaW4uZW5zdXJlKG5hbWUsIFtdIHsgcmV0dXJuIFZlY3RvcjxHbG9iYWxCcm9hZGNh
c3RDaGFubmVsSWRlbnRpZmllcj4geyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgR2xvYmFs
QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIgeyBjb25u
ZWN0aW9uLnVuaXF1ZUlEKCksIGNoYW5uZWxJZGVudGlmaWVyIH07Ci0gICAgQVNTRVJUKCFjaGFu
bmVsc0Zvck5hbWUuY29udGFpbnMoZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIpKTsKLSAgICBjaGFu
bmVsc0Zvck5hbWUuYXBwZW5kKFdURk1vdmUoZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIpKTsKKyAg
ICBhdXRvJiBjaGFubmVsc0Zvck9yaWdpbiA9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZW5zdXJlKG9y
aWdpbiwgW10geyByZXR1cm4gTmFtZVRvQ29ubmVjdGlvbklkZW50aWZpZXJzTWFwIHsgfTsgfSku
aXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8mIGNvbm5lY3Rpb25JZGVudGlmaWVyc0Zvck5hbWUg
PSBjaGFubmVsc0Zvck9yaWdpbi5lbnN1cmUobmFtZSwgW10geyByZXR1cm4gVmVjdG9yPElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQ+IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIEFTU0VS
VCghY29ubmVjdGlvbklkZW50aWZpZXJzRm9yTmFtZS5jb250YWlucyhjb25uZWN0aW9uLnVuaXF1
ZUlEKCkpKTsKKyAgICBjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lLmFwcGVuZChjb25uZWN0
aW9uLnVuaXF1ZUlEKCkpOwogfQogCi12b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OnVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpCit2b2lkIE5l
dHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4s
IGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBhdXRvIGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0
b3IgPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmZpbmQob3JpZ2luKTsKICAgICBBU1NFUlQoY2hhbm5l
bHNGb3JPcmlnaW5JdGVyYXRvciAhPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmVuZCgpKTsKICAgICBp
ZiAoY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciA9PSBtX2Jyb2FkY2FzdENoYW5uZWxzLmVuZCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgYXV0byBjaGFubmVsc0Zvck5hbWVJdGVyYXRvciA9IGNo
YW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZhbHVlLmZpbmQobmFtZSk7Ci0gICAgQVNTRVJUKGNo
YW5uZWxzRm9yTmFtZUl0ZXJhdG9yICE9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZhbHVl
LmVuZCgpKTsKLSAgICBpZiAoY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3IgPT0gY2hhbm5lbHNGb3JP
cmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpCisgICAgYXV0byBjb25uZWN0aW9uSWRlbnRpZmll
cnNGb3JOYW1lSXRlcmF0b3IgPSBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52YWx1ZS5maW5k
KG5hbWUpOworICAgIEFTU0VSVChjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lSXRlcmF0b3Ig
IT0gY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpOworICAgIGlmIChjb25u
ZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lSXRlcmF0b3IgPT0gY2hhbm5lbHNGb3JPcmlnaW5JdGVy
YXRvci0+dmFsdWUuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdsb2JhbEJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyIGdsb2JhbENoYW5uZWxJZGVudGlmaWVyIHsgY29ubmVjdGlvbi51
bmlxdWVJRCgpLCBjaGFubmVsSWRlbnRpZmllciB9OwotICAgIEFTU0VSVChjaGFubmVsc0Zvck5h
bWVJdGVyYXRvci0+dmFsdWUuY29udGFpbnMoZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIpKTsKLSAg
ICBjaGFubmVsc0Zvck5hbWVJdGVyYXRvci0+dmFsdWUucmVtb3ZlRmlyc3QoZ2xvYmFsQ2hhbm5l
bElkZW50aWZpZXIpOworICAgIEFTU0VSVChjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lSXRl
cmF0b3ItPnZhbHVlLmNvbnRhaW5zKGNvbm5lY3Rpb24udW5pcXVlSUQoKSkpOworICAgIGNvbm5l
Y3Rpb25JZGVudGlmaWVyc0Zvck5hbWVJdGVyYXRvci0+dmFsdWUucmVtb3ZlRmlyc3QoY29ubmVj
dGlvbi51bmlxdWVJRCgpKTsKIH0KIAotdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5Ojpwb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgYXV0byBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yID0gbV9icm9h
ZGNhc3RDaGFubmVscy5maW5kKG9yaWdpbik7CiAgICAgQVNTRVJUKGNoYW5uZWxzRm9yT3JpZ2lu
SXRlcmF0b3IgIT0gbV9icm9hZGNhc3RDaGFubmVscy5lbmQoKSk7CiAgICAgaWYgKGNoYW5uZWxz
Rm9yT3JpZ2luSXRlcmF0b3IgPT0gbV9icm9hZGNhc3RDaGFubmVscy5lbmQoKSkKICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgYXV0byBjaGFubmVsc0Zvck5hbWVJdGVy
YXRvciA9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZhbHVlLmZpbmQobmFtZSk7Ci0gICAg
QVNTRVJUKGNoYW5uZWxzRm9yTmFtZUl0ZXJhdG9yICE9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0
b3ItPnZhbHVlLmVuZCgpKTsKLSAgICBpZiAoY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3IgPT0gY2hh
bm5lbHNGb3JPcmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpCisgICAgYXV0byBjb25uZWN0aW9u
SWRlbnRpZmllcnNGb3JOYW1lSXRlcmF0b3IgPSBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52
YWx1ZS5maW5kKG5hbWUpOworICAgIEFTU0VSVChjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1l
SXRlcmF0b3IgIT0gY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpOworICAg
IGlmIChjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lSXRlcmF0b3IgPT0gY2hhbm5lbHNGb3JP
cmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcigpOwogCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0
b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgR2xvYmFsQnJvYWRj
YXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlR2xvYmFsQ2hhbm5lbElkZW50aWZpZXIgeyBjb25u
ZWN0aW9uLnVuaXF1ZUlEKCksIHNvdXJjZSB9OwotICAgIGZvciAoYXV0byYgZ2xvYmFsSWRlbnRp
ZmllciA6IGNoYW5uZWxzRm9yTmFtZUl0ZXJhdG9yLT52YWx1ZSkgewotICAgICAgICBpZiAoZ2xv
YmFsSWRlbnRpZmllciA9PSBzb3VyY2VHbG9iYWxDaGFubmVsSWRlbnRpZmllcikKKyAgICBmb3Ig
KGF1dG8mIGNvbm5lY3Rpb25JRCA6IGNvbm5lY3Rpb25JZGVudGlmaWVyc0Zvck5hbWVJdGVyYXRv
ci0+dmFsdWUpIHsKKyAgICAgICAgLy8gT25seSBkaXNwYXRjaCB0aGUgcG9zdCB0aGUgbWVzc2Fn
ZXMgdG8gQnJvYWRjYXN0Q2hhbm5lbHMgb3V0c2lkZSB0aGUgc291cmNlIHByb2Nlc3MuCisgICAg
ICAgIGlmIChjb25uZWN0aW9uSUQgPT0gY29ubmVjdGlvbi51bmlxdWVJRCgpKQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgUmVmUHRyIGNvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rp
b246OmNvbm5lY3Rpb24oZ2xvYmFsSWRlbnRpZmllci5jb25uZWN0aW9uSWRlbnRpZmllcik7Cisg
ICAgICAgIFJlZlB0ciBjb25uZWN0aW9uID0gSVBDOjpDb25uZWN0aW9uOjpjb25uZWN0aW9uKGNv
bm5lY3Rpb25JRCk7CiAgICAgICAgIGlmICghY29ubmVjdGlvbikKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIGNvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpQb3N0TWVzc2FnZVRvUmVtb3RlKGdsb2JhbElk
ZW50aWZpZXIuY2hhbm5lbEluZGVudGlmaWVySW5Qcm9jZXNzLCBtZXNzYWdlKSwgW2NhbGxiYWNr
QWdncmVnYXRvcl0geyB9LCAwKTsKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlBvc3RNZXNzYWdlVG9S
ZW1vdGUob3JpZ2luLCBuYW1lLCBtZXNzYWdlKSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9LCAw
KTsKICAgICB9CiB9CiAKQEAgLTkwLDkgKzg4LDcgQEAgdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5OjpyZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkK
ICAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9icm9hZGNhc3RDaGFubmVscykgewogICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBuYW1lc1RvUmVtb3ZlOwogICAgICAgICBmb3IgKGF1dG8mIGlubmVyRW50
cnkgOiBlbnRyeS52YWx1ZSkgewotICAgICAgICAgICAgaW5uZXJFbnRyeS52YWx1ZS5yZW1vdmVB
bGxNYXRjaGluZyhbY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9uLnVuaXF1ZUlEKCld
KGF1dG8mIGdsb2JhbElkZW50aWZpZXIpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZ2xvYmFs
SWRlbnRpZmllci5jb25uZWN0aW9uSWRlbnRpZmllciA9PSBjb25uZWN0aW9uSWRlbnRpZmllcjsK
LSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaW5uZXJFbnRyeS52YWx1ZS5yZW1vdmVGaXJz
dChjb25uZWN0aW9uLnVuaXF1ZUlEKCkpOwogICAgICAgICAgICAgaWYgKGlubmVyRW50cnkudmFs
dWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIG5hbWVzVG9SZW1vdmUuYXBwZW5kKGlubmVy
RW50cnkua2V5KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAppbmRleCA1
MWU2Yjk0MGRkNjk2MjdlODAxMDRkMzhiOGQzNzlkM2UyMzA0Y2Y2Li4zZjlhZWQyMGJhYjZiYzAy
ODEwODU1NjQ5YmE3YTdmMGYyZWRmNDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaApA
QCAtNDUsMjMgKzQ1LDEzIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKLSAgICB2b2lkIHJlZ2lzdGVyQ2hh
bm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25z
dCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKTsKLSAg
ICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIpOwotICAgIHZvaWQgcG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3Jl
OjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBy
ZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKElQ
Qzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CisgICAgdm9pZCBwb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6Ok1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKIHBy
aXZhdGU6Ci0gICAgc3RydWN0IEdsb2JhbEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHsKLSAg
ICAgICAgSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9uSWRlbnRpZmllcjsKLSAg
ICAgICAgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbEluZGVudGlm
aWVySW5Qcm9jZXNzOwotCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHbG9iYWxCcm9h
ZGNhc3RDaGFubmVsSWRlbnRpZmllciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBjb25uZWN0aW9uSWRlbnRpZmllciA9PSBvdGhlci5jb25uZWN0aW9uSWRlbnRp
ZmllciAmJiBjaGFubmVsSW5kZW50aWZpZXJJblByb2Nlc3MgPT0gb3RoZXIuY2hhbm5lbEluZGVu
dGlmaWVySW5Qcm9jZXNzOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIHVzaW5nIE5hbWVUb0No
YW5uZWxJZGVudGlmaWVyc01hcCA9IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8R2xvYmFsQnJvYWRj
YXN0Q2hhbm5lbElkZW50aWZpZXI+PjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OkNsaWVudE9yaWdp
biwgTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwPiBtX2Jyb2FkY2FzdENoYW5uZWxzOworICAg
IHVzaW5nIE5hbWVUb0Nvbm5lY3Rpb25JZGVudGlmaWVyc01hcCA9IEhhc2hNYXA8U3RyaW5nLCBW
ZWN0b3I8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRD4+OworICAgIEhhc2hNYXA8V2ViQ29yZTo6
Q2xpZW50T3JpZ2luLCBOYW1lVG9Db25uZWN0aW9uSWRlbnRpZmllcnNNYXA+IG1fYnJvYWRjYXN0
Q2hhbm5lbHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgppbmRleCA0Yjc0ZGY4MTJkZTg3OWY4NTA5ZDUx
MTQ4NjliMDc3OWY2MDZlZWZlLi5lNWZjZjk1ZGE1ZWI3OGIyZDRmZjkxMGFlZWZhOTM1M2U1Njhj
NTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCkBA
IC0yMSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkgTm90UmVmQ291bnRlZCB7Ci0gICAgUmVnaXN0ZXJDaGFubmVs
KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29u
bmVjdGlvbgotICAgIFVucmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgotICAgIFBvc3RNZXNzYWdlKHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6
QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisg
ICAgUmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBT
dHJpbmcgbmFtZSkgV2FudHNDb25uZWN0aW9uCisgICAgVW5yZWdpc3RlckNoYW5uZWwoc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lKSBXYW50c0Nvbm5lY3Rp
b24KKyAgICBQb3N0TWVzc2FnZShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwg
U3RyaW5nIG5hbWUsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNz
YWdlKSAtPiAoKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXggNDk4MmY4MDY2MjM0NTkwOGJkMGFlZGEzMGYx
Yzc3Y2YyNTM4YzMxOS4uODFjYWM0MjY1NDViYzlhYWE4MDllZWU3NjM1YTk2ZDI3OTMxNWUyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ccm9h
ZGNhc3RDaGFubmVsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cy5oPgorI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKQEAgLTQxLDIyICs0Miw2OCBAQCBzdGF0aWMgaW5saW5lIElQQzo6Q29ubmVjdGlv
biYgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKIAogdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRp
ZmllciBpZGVudGlmaWVyKQogewotICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlJlZ2lzdGVyQ2hhbm5l
bCB7IG9yaWdpbiwgbmFtZSwgaWRlbnRpZmllciB9LCAwKTsKKyAgICBhdXRvJiBjaGFubmVsc0Zv
ck9yaWdpbiA9IG1fY2hhbm5lbHNQZXJPcmlnaW4uZW5zdXJlKG9yaWdpbiwgW10geyByZXR1cm4g
SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmll
cj4+IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8mIGNoYW5uZWxzRm9yTmFtZSA9
IGNoYW5uZWxzRm9yT3JpZ2luLmVuc3VyZShuYW1lLCBbXSB7IHJldHVybiBWZWN0b3I8V2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOwor
ICAgIGNoYW5uZWxzRm9yTmFtZS5hcHBlbmQoaWRlbnRpZmllcik7CisKKyAgICBpZiAoY2hhbm5l
bHNGb3JOYW1lLnNpemUoKSA9PSAxKQorICAgICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpSZWdpc3Rl
ckNoYW5uZWwgeyBvcmlnaW4sIG5hbWUgfSwgMCk7CiB9CiAKIHZvaWQgV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlVucmVnaXN0
ZXJDaGFubmVsIHsgb3JpZ2luLCBuYW1lLCBpZGVudGlmaWVyIH0sIDApOworICAgIGF1dG8gY2hh
bm5lbHNQZXJPcmlnaW5JdGVyYXRvciA9IG1fY2hhbm5lbHNQZXJPcmlnaW4uZmluZChvcmlnaW4p
OworICAgIGlmIChjaGFubmVsc1Blck9yaWdpbkl0ZXJhdG9yID09IG1fY2hhbm5lbHNQZXJPcmln
aW4uZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2lu
ID0gY2hhbm5lbHNQZXJPcmlnaW5JdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byBjaGFubmVsc0Zv
ck9yaWdpbkl0ZXJhdG9yID0gY2hhbm5lbHNGb3JPcmlnaW4uZmluZChuYW1lKTsKKyAgICBpZiAo
Y2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciA9PSBjaGFubmVsc0Zvck9yaWdpbi5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byYgY2hhbm5lbElkZW50aWZpZXJzRm9yTmFtZSA9IGNo
YW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZhbHVlOworICAgIGlmICghY2hhbm5lbElkZW50aWZp
ZXJzRm9yTmFtZS5yZW1vdmVGaXJzdChpZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworICAg
IGlmICghY2hhbm5lbElkZW50aWZpZXJzRm9yTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGNoYW5uZWxzRm9yT3JpZ2luLnJlbW92ZShjaGFubmVsc0Zvck9yaWdpbkl0ZXJh
dG9yKTsKKyAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpVbnJlZ2lzdGVyQ2hhbm5lbCB7IG9yaWdpbiwg
bmFtZSB9LCAwKTsKKworICAgIGlmIChjaGFubmVsc0Zvck9yaWdpbi5pc0VtcHR5KCkpCisgICAg
ICAgIG1fY2hhbm5lbHNQZXJPcmlnaW4ucmVtb3ZlKGNoYW5uZWxzUGVyT3JpZ2luSXRlcmF0b3Ip
OwogfQogCiB2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UoY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2Vi
Q29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OlBvc3RNZXNzYWdlIHsgb3JpZ2luLCBuYW1lLCBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzIHsgV1RGTW92ZShtZXNzYWdlKSwgeyB9IH0gfSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIDApOworICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJh
Y2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHBv
c3RNZXNzYWdlTG9jYWxseShvcmlnaW4sIG5hbWUsIHNvdXJjZSwgbWVzc2FnZS5jb3B5UmVmKCks
IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCkpOworICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Jyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6UG9zdE1lc3NhZ2UgeyBvcmlnaW4sIG5hbWUsIFdlYkNvcmU6Ok1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzIHsgV1RGTW92ZShtZXNzYWdlKSwgeyB9IH0gfSwgW2NhbGxiYWNrQWdn
cmVnYXRvcl0geyB9LCAwKTsKK30KKwordm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6
OnBvc3RNZXNzYWdlTG9jYWxseShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyPiBzb3VyY2VJblByb2Nlc3MsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYgbWVzc2FnZSwgUmVmPFdURjo6Q2FsbGJhY2tBZ2dyZWdhdG9yPiYmIGNhbGxi
YWNrQWdncmVnYXRvcikKK3sKKyAgICBhdXRvIGNoYW5uZWxzUGVyT3JpZ2luSXRlcmF0b3IgPSBt
X2NoYW5uZWxzUGVyT3JpZ2luLmZpbmQob3JpZ2luKTsKKyAgICBpZiAoY2hhbm5lbHNQZXJPcmln
aW5JdGVyYXRvciA9PSBtX2NoYW5uZWxzUGVyT3JpZ2luLmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvJiBjaGFubmVsc0Zvck9yaWdpbiA9IGNoYW5uZWxzUGVyT3JpZ2luSXRlcmF0
b3ItPnZhbHVlOworICAgIGF1dG8gY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciA9IGNoYW5uZWxz
Rm9yT3JpZ2luLmZpbmQobmFtZSk7CisgICAgaWYgKGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3Ig
PT0gY2hhbm5lbHNGb3JPcmlnaW4uZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8g
Y2hhbm5lbElkZW50aWZpZXJzRm9yTmFtZSA9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZh
bHVlOworICAgIGZvciAoYXV0byYgY2hhbm5lbElkZW50aWVyIDogY2hhbm5lbElkZW50aWZpZXJz
Rm9yTmFtZSkgeworICAgICAgICBpZiAoY2hhbm5lbElkZW50aWVyID09IHNvdXJjZUluUHJvY2Vz
cykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsOjpkaXNwYXRjaE1lc3NhZ2VUbyhjaGFubmVsSWRlbnRpZXIsIG1lc3NhZ2UuY29weVJlZigp
LCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgIH0KIH0KIAotdm9pZCBXZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlVG9SZW1vdGUoV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHMmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2VUb1Jl
bW90ZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJDb3JlOjpC
cm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2VUbyhpZGVudGlmaWVyLCBtZXNzYWdlLm1l
c3NhZ2UucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHBvc3RNZXNzYWdlTG9jYWxseShvcmlnaW4s
IG5hbWUsIHN0ZDo6bnVsbG9wdCwgKm1lc3NhZ2UubWVzc2FnZSwgY2FsbGJhY2tBZ2dyZWdhdG9y
LmNvcHlSZWYoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDUwNTU3N2U2ZjRlMmMzY2MyNzJlM2RkYTIz
ODZlOTVlNDNlN2MzNDcuLjNjYjNlNzU0ZjhiNzMyNWRhMGE1NjIxYTEwM2EyODFhNzYxZmQ4OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKQEAgLTI3LDYgKzI3
LDEzIEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ccm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgV1RGIHsKK2NsYXNzIENhbGxiYWNrQWdncmVnYXRvcjsKK30KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogc3RydWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOwpAQCAtNTAsNyArNTcs
MTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnko
KSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9SZW1vdGUoV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRv
UmVtb3RlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlTG9jYWxseShjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+IHNvdXJjZUluUHJvY2VzcywgUmVmPFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgUmVmPFdURjo6Q2FsbGJhY2tBZ2dyZWdhdG9yPiYmKTsK
KworICAgIEhhc2hNYXA8V2ViQ29yZTo6Q2xpZW50T3JpZ2luLCBIYXNoTWFwPFN0cmluZywgVmVj
dG9yPFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyPj4+IG1fY2hhbm5lbHNQZXJP
cmlnaW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCmluZGV4IDA3YWY1MmY4ZDhl
NDg3MjFhNjAwZGU2ZDUzYzcwNDQ4ZTMyZWNiZmQuLjQxZWYyOTcwYzJhYzhlODJiOGRhODMyZWRj
NWFkZmFlMzU0YTkyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgpAQCAtMjEsNSArMjEsNSBAQAogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBtZXNzYWdlcyAtPiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgewotICAgIFBvc3RNZXNz
YWdlVG9SZW1vdGUoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgZGVzdGluYXRp
b24sIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAtPiAo
KSBBc3luYworICAgIFBvc3RNZXNzYWdlVG9SZW1vdGUoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437953</attachid>
            <date>2021-09-11 09:16:57 -0700</date>
            <delta_ts>2021-09-13 16:10:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230181-20210911091656.patch</filename>
            <type>text/plain</type>
            <size>24773</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlNzg0NTk0YmRjMDUy
YmJjOGM0MDJmMmJlMDVkZGRiYzNjN2NhNy4uZDg3MjkyYWIzYWQ1Nzc2NjAxM2Y4ZjI2NGE4ZGE3
MGIzNmVmMWE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gUmVkdWNlIGFtb3Vu
dCBvZiBJUEMgbmVlZGVkIGJ5IEJyb2FkY2FzdENoYW5uZWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDE4MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoKSB3aGljaCBpcyBzaW1pbGFyIHRvCisgICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oKSBidXQgZG9lc24ndCBjYWxsIHBv
c3RUYXNrKCkgaWYgd2UncmUgYWxyZWFkeQorICAgICAgICBvbiB0aGUgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCdzIGNvbnRleHQgdGhyZWFkLiBVc2UgaXQgaW4gQnJvYWRjYXN0Q2hhbm5lbDo6ZGlz
cGF0Y2hNZXNzYWdlVG8oKQorICAgICAgICB0byBhdm9pZCB1bm5lY2Vzc2FyeSB0aHJlYWQgaG9w
cGluZyB3aGVuIHRoZSBCcm9hZGNhc3RDaGFubmVsIGJlbG9uZ3MgdG8gYSBXaW5kb3cKKyAgICAg
ICAgZW52aXJvbm1lbnQuCisKKyAgICAgICAgKiBkb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2VUbyk6Cisg
ICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKToKKyAgICAg
ICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorCiAyMDIxLTA5LTEwICBNYXJjb3Mg
Q2FjZXJlcyAgPG1hcmNvc0BtYXJjb3NjLmNvbT4KIAogICAgICAgICBbV2ViLVNoYXJlXSBoYW5k
bGUgbm9uLWZ1bGx5IGFjdGl2ZSBkb2N1bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDcxNTJkOTVkOGE2OThm
MjA1ZjBjNDZhMDU3NTFmMGNiOWQ0YTQ0NS4uMzU3YjJkNjMwYTU1YjMxOTY4ODZhMmFlYjFhNDYy
NGQyNjk1YTM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMS0wOS0xMCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFJlZHVjZSBhbW91bnQg
b2YgSVBDIG5lZWRlZCBieSBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxODEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWR1Y2UgYW1vdW50IG9mIElQQyBuZWVkZWQgYnkg
QnJvYWRjYXN0Q2hhbm5lbCBmb3IgYm90aCByZWdpc3RyYXRpb24gLyB1bnJlZ2lzdHJhdGlvbgor
ICAgICAgICBhbmQgY29tbXVuaWNhdGlvbi4gRWFjaCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkgaW4gdGhlIFdlYlByb2Nlc3Mgbm93IG1haW50YWlucworICAgICAgICBhIG1hcCBvZiBCcm9h
ZGNhc3RDaGFubmVscyB3aXRoaW4gdGhlIFdlYlByb2Nlc3MuIEFzIGEgcmVzdWx0LCB3ZSBhcmUg
YWJsZSB0byBkaXNwYXRjaAorICAgICAgICBtZXNzYWdlcyB0byBvdGhlciBCcm9hZGNhc3RDaGFu
bmVscyB3aXRoaW4gdGhlIHNhbWUgcHJvY2VzcyB3aXRob3V0IGdvaW5nIHZpYSB0aGUKKyAgICAg
ICAgTmV0d29ya1Byb2Nlc3MuCisKKyAgICAgICAgQWxzbywgdGhlIE5ldHdvcmtCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnkgb24gdGhlIE5ldHdvcmtQcm9jZXNzIHNpZGUgbm8gbG9uZ2VyIG5lZWRz
CisgICAgICAgIHRvIHN0b3JlIGluZGl2aWR1YWwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXJz
LiBJdCBtZXJlbHkgbmVlZHMgdG8ga25vdyB3aGljaAorICAgICAgICBXZWJQcm9jZXNzZXMgaGF2
ZSBvbmUgb3IgbW9yZSBCcm9hZGNhc3RDaGFubmVscyBmb3IgYSBnaXZlbiBDbGllbnRPcmlnaW4g
LyBuYW1lLgorICAgICAgICBXaGVuIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBv
c3RNZXNzYWdlKCkgaXMgY2FsbGVkLCB3ZSBubyBsb25nZXIgc2VuZAorICAgICAgICBJUEMgdG8g
dGhlIHNvdXJjZSBwcm9jZXNzIGluIGNhc2UgdGhlcmUgYXJlIG90aGVyIEJyb2FkY2FzdENoYW5u
ZWxzIHRoYW4gdGhlIHNvdXJjZQorICAgICAgICB3aXRoIHRoZSBnaXZlbiBDbGllbnRPcmlnaW4g
LyBuYW1lIGluIHRoYXQgcHJvY2Vzcy4gQWxzbywgaWYgdGhlcmUgaXMgbW9yZSB0aGFuCisgICAg
ICAgIG9uZSBCcm9hZGNhc3RDaGFubmVsIGZvciB0aGUgZ2l2ZW4gQ2xpZW50T3JpZ2luIC8gbmFt
ZSB3aXRoaW4gYSBnaXZlbiBkZXN0aW5hdGlvbgorICAgICAgICBXZWJQcm9jZXNzLCB3ZSBub3cg
c2VuZCBhIHNpbmdsZSBJUEMgbWVzc2FnZSBpbnN0ZWFkIG9mIHNlbmRpbmcgb25lIHBlciBCcm9h
ZGNhc3RDaGFubmVsLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZW1vdmVD
b25uZWN0aW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5l
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBv
c3RNZXNzYWdlTG9jYWxseSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeTo6cG9zdE1lc3NhZ2VUb1JlbW90ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdl
cy5pbjoKKwogMjAyMS0wOS0xMCAgUGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIENsb3NlIFhQQyBjb25uZWN0aW9uIGJlZm9yZSBlbnRlcmluZyB0aGUgV1Ag
c2FuZGJveApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCmluZGV4IDFjNjI1
NjNjMTExZTI4NjZlMjI4OGU2ZWRhNjQ4YmM1OWFhZmZkMzAuLmEwNjRkZGU0ZjMzOGIxYjExZWZm
MWIzNjJmODU1MTNiMzgwZTcyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9h
ZGNhc3RDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5l
bC5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIEJyb2FkY2FzdENoYW5uZWw6OmRpc3BhdGNo
TWVzc2FnZVRvKEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIGNoYW5uZWxJZGVudAogICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdh
dG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oY29udGV4dElkZW50
aWZpZXIsIFtjaGFubmVsSWRlbnRpZmllciwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIGNh
bGxiYWNrQWdncmVnYXRvciA9IFdURk1vdmUoY2FsbGJhY2tBZ2dyZWdhdG9yKV0oYXV0byYpIG11
dGFibGUgeworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVh
ZChjb250ZXh0SWRlbnRpZmllciwgW2NoYW5uZWxJZGVudGlmaWVyLCBtZXNzYWdlID0gV1RGTW92
ZShtZXNzYWdlKSwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gV1RGTW92ZShjYWxsYmFja0FnZ3JlZ2F0
b3IpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgIFJlZlB0cjxCcm9hZGNhc3RDaGFubmVsPiBj
aGFubmVsOwogICAgICAgICB7CiAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsQnJvYWRj
YXN0Q2hhbm5lbHNMb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKaW5kZXggZWM0MjU3ODI5ZWNjMzM2NTk2Yzg5NDQ5M2FhMzFlZjk5YTQ4N2U4
ZS4uNTViNmQzOGU5NDliZDRhMTI1NDhiZWFjMTNjZTVhYTlmMTY1Njc5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtNjUwLDQgKzY1MCwy
NCBAQCBib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRpZgogICAgIHJldHVybiB0cnVlOwogfQogCitib29s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyLCBUYXNrJiYgdGFzaykKK3sKKyAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gbnVsbHB0cjsKKyAgICB7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2sgfTsKKyAg
ICAgICAgY29udGV4dCA9IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwKCkuZ2V0KGlkZW50
aWZpZXIpOworCisgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBpZiAoIWNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKSB7CisgICAgICAg
ICAgICBjb250ZXh0LT5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgdGFzay5wZXJmb3JtVGFzaygqY29udGV4
dCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDk4YjQyMmY4OThk
ZTg4YjRkY2VhZGRmNDhmOTQyZTYxYzA3YmRhMDguLmRiN2VjZjRhNmIxMTAxNDgxNDUyYzkzZmE0
YmVlYjA1MjRkOTQ2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaApAQCAtMjgxLDYgKzI4MSw3IEBAIHB1YmxpYzoKICAgICBTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyKiBlbnN1cmVTZXJ2aWNlV29ya2VyQ29udGFpbmVyKCk7CiAjZW5kaWYKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBwb3N0VGFza1RvKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBUYXNrJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGVuc3Vy
ZU9uQ29udGV4dFRocmVhZChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgVGFzayYm
KTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlm
aWVyKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCmluZGV4IGQxODBl
MDdlMTc3MzJlMDI5ZjA2NzZkNGU5N2ZiZjAyYjkwNzY1MjUuLjY5YTk3NjkwNzcwYWM0MTBhMjli
NzE5NTI4ZTYyNWI1YTk0NTAyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApA
QCAtMzQsNTMgKzM0LDUxIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBOZXR3b3JrQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5OjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgPSBkZWZh
dWx0OwogCi12b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hh
bm5lbChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyIGNoYW5uZWxJZGVudGlmaWVyKQordm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5OjpyZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1l
KQogewotICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2luID0gbV9icm9hZGNhc3RDaGFubmVscy5l
bnN1cmUob3JpZ2luLCBbXSB7IHJldHVybiBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXAgeyB9
OyB9KS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgYXV0byYgY2hhbm5lbHNGb3JOYW1lID0gY2hhbm5l
bHNGb3JPcmlnaW4uZW5zdXJlKG5hbWUsIFtdIHsgcmV0dXJuIFZlY3RvcjxHbG9iYWxCcm9hZGNh
c3RDaGFubmVsSWRlbnRpZmllcj4geyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgR2xvYmFs
QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIgeyBjb25u
ZWN0aW9uLnVuaXF1ZUlEKCksIGNoYW5uZWxJZGVudGlmaWVyIH07Ci0gICAgQVNTRVJUKCFjaGFu
bmVsc0Zvck5hbWUuY29udGFpbnMoZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIpKTsKLSAgICBjaGFu
bmVsc0Zvck5hbWUuYXBwZW5kKFdURk1vdmUoZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIpKTsKKyAg
ICBhdXRvJiBjaGFubmVsc0Zvck9yaWdpbiA9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZW5zdXJlKG9y
aWdpbiwgW10geyByZXR1cm4gTmFtZVRvQ29ubmVjdGlvbklkZW50aWZpZXJzTWFwIHsgfTsgfSku
aXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8mIGNvbm5lY3Rpb25JZGVudGlmaWVyc0Zvck5hbWUg
PSBjaGFubmVsc0Zvck9yaWdpbi5lbnN1cmUobmFtZSwgW10geyByZXR1cm4gVmVjdG9yPElQQzo6
Q29ubmVjdGlvbjo6VW5pcXVlSUQ+IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIEFTU0VS
VCghY29ubmVjdGlvbklkZW50aWZpZXJzRm9yTmFtZS5jb250YWlucyhjb25uZWN0aW9uLnVuaXF1
ZUlEKCkpKTsKKyAgICBjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lLmFwcGVuZChjb25uZWN0
aW9uLnVuaXF1ZUlEKCkpOwogfQogCi12b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OnVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpCit2b2lkIE5l
dHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4s
IGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBhdXRvIGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0
b3IgPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmZpbmQob3JpZ2luKTsKICAgICBBU1NFUlQoY2hhbm5l
bHNGb3JPcmlnaW5JdGVyYXRvciAhPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmVuZCgpKTsKICAgICBp
ZiAoY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciA9PSBtX2Jyb2FkY2FzdENoYW5uZWxzLmVuZCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgYXV0byBjaGFubmVsc0Zvck5hbWVJdGVyYXRvciA9IGNo
YW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZhbHVlLmZpbmQobmFtZSk7Ci0gICAgQVNTRVJUKGNo
YW5uZWxzRm9yTmFtZUl0ZXJhdG9yICE9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZhbHVl
LmVuZCgpKTsKLSAgICBpZiAoY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3IgPT0gY2hhbm5lbHNGb3JP
cmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpCisgICAgYXV0byBjb25uZWN0aW9uSWRlbnRpZmll
cnNGb3JOYW1lSXRlcmF0b3IgPSBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52YWx1ZS5maW5k
KG5hbWUpOworICAgIEFTU0VSVChjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lSXRlcmF0b3Ig
IT0gY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpOworICAgIGlmIChjb25u
ZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lSXRlcmF0b3IgPT0gY2hhbm5lbHNGb3JPcmlnaW5JdGVy
YXRvci0+dmFsdWUuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdsb2JhbEJyb2FkY2Fz
dENoYW5uZWxJZGVudGlmaWVyIGdsb2JhbENoYW5uZWxJZGVudGlmaWVyIHsgY29ubmVjdGlvbi51
bmlxdWVJRCgpLCBjaGFubmVsSWRlbnRpZmllciB9OwotICAgIEFTU0VSVChjaGFubmVsc0Zvck5h
bWVJdGVyYXRvci0+dmFsdWUuY29udGFpbnMoZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIpKTsKLSAg
ICBjaGFubmVsc0Zvck5hbWVJdGVyYXRvci0+dmFsdWUucmVtb3ZlRmlyc3QoZ2xvYmFsQ2hhbm5l
bElkZW50aWZpZXIpOworICAgIEFTU0VSVChjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lSXRl
cmF0b3ItPnZhbHVlLmNvbnRhaW5zKGNvbm5lY3Rpb24udW5pcXVlSUQoKSkpOworICAgIGNvbm5l
Y3Rpb25JZGVudGlmaWVyc0Zvck5hbWVJdGVyYXRvci0+dmFsdWUucmVtb3ZlRmlyc3QoY29ubmVj
dGlvbi51bmlxdWVJRCgpKTsKIH0KIAotdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5Ojpwb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJy
b2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgYXV0byBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yID0gbV9icm9h
ZGNhc3RDaGFubmVscy5maW5kKG9yaWdpbik7CiAgICAgQVNTRVJUKGNoYW5uZWxzRm9yT3JpZ2lu
SXRlcmF0b3IgIT0gbV9icm9hZGNhc3RDaGFubmVscy5lbmQoKSk7CiAgICAgaWYgKGNoYW5uZWxz
Rm9yT3JpZ2luSXRlcmF0b3IgPT0gbV9icm9hZGNhc3RDaGFubmVscy5lbmQoKSkKICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgYXV0byBjaGFubmVsc0Zvck5hbWVJdGVy
YXRvciA9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZhbHVlLmZpbmQobmFtZSk7Ci0gICAg
QVNTRVJUKGNoYW5uZWxzRm9yTmFtZUl0ZXJhdG9yICE9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0
b3ItPnZhbHVlLmVuZCgpKTsKLSAgICBpZiAoY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3IgPT0gY2hh
bm5lbHNGb3JPcmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpCisgICAgYXV0byBjb25uZWN0aW9u
SWRlbnRpZmllcnNGb3JOYW1lSXRlcmF0b3IgPSBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52
YWx1ZS5maW5kKG5hbWUpOworICAgIEFTU0VSVChjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1l
SXRlcmF0b3IgIT0gY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpOworICAg
IGlmIChjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lSXRlcmF0b3IgPT0gY2hhbm5lbHNGb3JP
cmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcigpOwogCiAgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0
b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgR2xvYmFsQnJvYWRj
YXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlR2xvYmFsQ2hhbm5lbElkZW50aWZpZXIgeyBjb25u
ZWN0aW9uLnVuaXF1ZUlEKCksIHNvdXJjZSB9OwotICAgIGZvciAoYXV0byYgZ2xvYmFsSWRlbnRp
ZmllciA6IGNoYW5uZWxzRm9yTmFtZUl0ZXJhdG9yLT52YWx1ZSkgewotICAgICAgICBpZiAoZ2xv
YmFsSWRlbnRpZmllciA9PSBzb3VyY2VHbG9iYWxDaGFubmVsSWRlbnRpZmllcikKKyAgICBmb3Ig
KGF1dG8mIGNvbm5lY3Rpb25JRCA6IGNvbm5lY3Rpb25JZGVudGlmaWVyc0Zvck5hbWVJdGVyYXRv
ci0+dmFsdWUpIHsKKyAgICAgICAgLy8gT25seSBkaXNwYXRjaCB0aGUgcG9zdCB0aGUgbWVzc2Fn
ZXMgdG8gQnJvYWRjYXN0Q2hhbm5lbHMgb3V0c2lkZSB0aGUgc291cmNlIHByb2Nlc3MuCisgICAg
ICAgIGlmIChjb25uZWN0aW9uSUQgPT0gY29ubmVjdGlvbi51bmlxdWVJRCgpKQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgUmVmUHRyIGNvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rp
b246OmNvbm5lY3Rpb24oZ2xvYmFsSWRlbnRpZmllci5jb25uZWN0aW9uSWRlbnRpZmllcik7Cisg
ICAgICAgIFJlZlB0ciBjb25uZWN0aW9uID0gSVBDOjpDb25uZWN0aW9uOjpjb25uZWN0aW9uKGNv
bm5lY3Rpb25JRCk7CiAgICAgICAgIGlmICghY29ubmVjdGlvbikKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIGNvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpQb3N0TWVzc2FnZVRvUmVtb3RlKGdsb2JhbElk
ZW50aWZpZXIuY2hhbm5lbEluZGVudGlmaWVySW5Qcm9jZXNzLCBtZXNzYWdlKSwgW2NhbGxiYWNr
QWdncmVnYXRvcl0geyB9LCAwKTsKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlBvc3RNZXNzYWdlVG9S
ZW1vdGUob3JpZ2luLCBuYW1lLCBtZXNzYWdlKSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9LCAw
KTsKICAgICB9CiB9CiAKQEAgLTkwLDkgKzg4LDcgQEAgdm9pZCBOZXR3b3JrQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5OjpyZW1vdmVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGkK
ICAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9icm9hZGNhc3RDaGFubmVscykgewogICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBuYW1lc1RvUmVtb3ZlOwogICAgICAgICBmb3IgKGF1dG8mIGlubmVyRW50
cnkgOiBlbnRyeS52YWx1ZSkgewotICAgICAgICAgICAgaW5uZXJFbnRyeS52YWx1ZS5yZW1vdmVB
bGxNYXRjaGluZyhbY29ubmVjdGlvbklkZW50aWZpZXIgPSBjb25uZWN0aW9uLnVuaXF1ZUlEKCld
KGF1dG8mIGdsb2JhbElkZW50aWZpZXIpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZ2xvYmFs
SWRlbnRpZmllci5jb25uZWN0aW9uSWRlbnRpZmllciA9PSBjb25uZWN0aW9uSWRlbnRpZmllcjsK
LSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaW5uZXJFbnRyeS52YWx1ZS5yZW1vdmVGaXJz
dChjb25uZWN0aW9uLnVuaXF1ZUlEKCkpOwogICAgICAgICAgICAgaWYgKGlubmVyRW50cnkudmFs
dWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIG5hbWVzVG9SZW1vdmUuYXBwZW5kKGlubmVy
RW50cnkua2V5KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAppbmRleCA1
MWU2Yjk0MGRkNjk2MjdlODAxMDRkMzhiOGQzNzlkM2UyMzA0Y2Y2Li4zZjlhZWQyMGJhYjZiYzAy
ODEwODU1NjQ5YmE3YTdmMGYyZWRmNDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaApA
QCAtNDUsMjMgKzQ1LDEzIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKLSAgICB2b2lkIHJlZ2lzdGVyQ2hh
bm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25z
dCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyKTsKLSAg
ICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hh
bm5lbElkZW50aWZpZXIpOwotICAgIHZvaWQgcG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3Jl
OjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBy
ZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDaGFubmVsKElQ
Qzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmlu
ZyYgbmFtZSk7CisgICAgdm9pZCBwb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6Ok1lc3Nh
Z2VXaXRoTWVzc2FnZVBvcnRzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKIHBy
aXZhdGU6Ci0gICAgc3RydWN0IEdsb2JhbEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHsKLSAg
ICAgICAgSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9uSWRlbnRpZmllcjsKLSAg
ICAgICAgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbEluZGVudGlm
aWVySW5Qcm9jZXNzOwotCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHbG9iYWxCcm9h
ZGNhc3RDaGFubmVsSWRlbnRpZmllciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBjb25uZWN0aW9uSWRlbnRpZmllciA9PSBvdGhlci5jb25uZWN0aW9uSWRlbnRp
ZmllciAmJiBjaGFubmVsSW5kZW50aWZpZXJJblByb2Nlc3MgPT0gb3RoZXIuY2hhbm5lbEluZGVu
dGlmaWVySW5Qcm9jZXNzOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIHVzaW5nIE5hbWVUb0No
YW5uZWxJZGVudGlmaWVyc01hcCA9IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8R2xvYmFsQnJvYWRj
YXN0Q2hhbm5lbElkZW50aWZpZXI+PjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OkNsaWVudE9yaWdp
biwgTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwPiBtX2Jyb2FkY2FzdENoYW5uZWxzOworICAg
IHVzaW5nIE5hbWVUb0Nvbm5lY3Rpb25JZGVudGlmaWVyc01hcCA9IEhhc2hNYXA8U3RyaW5nLCBW
ZWN0b3I8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRD4+OworICAgIEhhc2hNYXA8V2ViQ29yZTo6
Q2xpZW50T3JpZ2luLCBOYW1lVG9Db25uZWN0aW9uSWRlbnRpZmllcnNNYXA+IG1fYnJvYWRjYXN0
Q2hhbm5lbHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgppbmRleCA0Yjc0ZGY4MTJkZTg3OWY4NTA5ZDUx
MTQ4NjliMDc3OWY2MDZlZWZlLi5lNWZjZjk1ZGE1ZWI3OGIyZDRmZjkxMGFlZWZhOTM1M2U1Njhj
NTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCkBA
IC0yMSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkgTm90UmVmQ291bnRlZCB7Ci0gICAgUmVnaXN0ZXJDaGFubmVs
KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29u
bmVjdGlvbgotICAgIFVucmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZp
ZXIgY2hhbm5lbElkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgotICAgIFBvc3RNZXNzYWdlKHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgV2ViQ29yZTo6
QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCisg
ICAgUmVnaXN0ZXJDaGFubmVsKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBT
dHJpbmcgbmFtZSkgV2FudHNDb25uZWN0aW9uCisgICAgVW5yZWdpc3RlckNoYW5uZWwoc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lKSBXYW50c0Nvbm5lY3Rp
b24KKyAgICBQb3N0TWVzc2FnZShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwg
U3RyaW5nIG5hbWUsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNz
YWdlKSAtPiAoKSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKaW5kZXggNDk4MmY4MDY2MjM0NTkwOGJkMGFlZGEzMGYx
Yzc3Y2YyNTM4YzMxOS4uODFjYWM0MjY1NDViYzlhYWE4MDllZWU3NjM1YTk2ZDI3OTMxNWUyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ccm9h
ZGNhc3RDaGFubmVsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cy5oPgorI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKQEAgLTQxLDIyICs0Miw2OCBAQCBzdGF0aWMgaW5saW5lIElQQzo6Q29ubmVjdGlv
biYgbmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKIAogdm9pZCBXZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRp
ZmllciBpZGVudGlmaWVyKQogewotICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlJlZ2lzdGVyQ2hhbm5l
bCB7IG9yaWdpbiwgbmFtZSwgaWRlbnRpZmllciB9LCAwKTsKKyAgICBhdXRvJiBjaGFubmVsc0Zv
ck9yaWdpbiA9IG1fY2hhbm5lbHNQZXJPcmlnaW4uZW5zdXJlKG9yaWdpbiwgW10geyByZXR1cm4g
SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmll
cj4+IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8mIGNoYW5uZWxzRm9yTmFtZSA9
IGNoYW5uZWxzRm9yT3JpZ2luLmVuc3VyZShuYW1lLCBbXSB7IHJldHVybiBWZWN0b3I8V2ViQ29y
ZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOwor
ICAgIGNoYW5uZWxzRm9yTmFtZS5hcHBlbmQoaWRlbnRpZmllcik7CisKKyAgICBpZiAoY2hhbm5l
bHNGb3JOYW1lLnNpemUoKSA9PSAxKQorICAgICAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpSZWdpc3Rl
ckNoYW5uZWwgeyBvcmlnaW4sIG5hbWUgfSwgMCk7CiB9CiAKIHZvaWQgV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQ2hhbm5lbChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlVucmVnaXN0
ZXJDaGFubmVsIHsgb3JpZ2luLCBuYW1lLCBpZGVudGlmaWVyIH0sIDApOworICAgIGF1dG8gY2hh
bm5lbHNQZXJPcmlnaW5JdGVyYXRvciA9IG1fY2hhbm5lbHNQZXJPcmlnaW4uZmluZChvcmlnaW4p
OworICAgIGlmIChjaGFubmVsc1Blck9yaWdpbkl0ZXJhdG9yID09IG1fY2hhbm5lbHNQZXJPcmln
aW4uZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2lu
ID0gY2hhbm5lbHNQZXJPcmlnaW5JdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byBjaGFubmVsc0Zv
ck9yaWdpbkl0ZXJhdG9yID0gY2hhbm5lbHNGb3JPcmlnaW4uZmluZChuYW1lKTsKKyAgICBpZiAo
Y2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciA9PSBjaGFubmVsc0Zvck9yaWdpbi5lbmQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byYgY2hhbm5lbElkZW50aWZpZXJzRm9yTmFtZSA9IGNo
YW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZhbHVlOworICAgIGlmICghY2hhbm5lbElkZW50aWZp
ZXJzRm9yTmFtZS5yZW1vdmVGaXJzdChpZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOworICAg
IGlmICghY2hhbm5lbElkZW50aWZpZXJzRm9yTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGNoYW5uZWxzRm9yT3JpZ2luLnJlbW92ZShjaGFubmVsc0Zvck9yaWdpbkl0ZXJh
dG9yKTsKKyAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpVbnJlZ2lzdGVyQ2hhbm5lbCB7IG9yaWdpbiwg
bmFtZSB9LCAwKTsKKworICAgIGlmIChjaGFubmVsc0Zvck9yaWdpbi5pc0VtcHR5KCkpCisgICAg
ICAgIG1fY2hhbm5lbHNQZXJPcmlnaW4ucmVtb3ZlKGNoYW5uZWxzUGVyT3JpZ2luSXRlcmF0b3Ip
OwogfQogCiB2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2UoY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2Vi
Q29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBSZWY8V2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OlBvc3RNZXNzYWdlIHsgb3JpZ2luLCBuYW1lLCBzb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzIHsgV1RGTW92ZShtZXNzYWdlKSwgeyB9IH0gfSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIDApOworICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJh
Y2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHBv
c3RNZXNzYWdlTG9jYWxseShvcmlnaW4sIG5hbWUsIHNvdXJjZSwgbWVzc2FnZS5jb3B5UmVmKCks
IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCkpOworICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Jyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6UG9zdE1lc3NhZ2UgeyBvcmlnaW4sIG5hbWUsIFdlYkNvcmU6Ok1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzIHsgV1RGTW92ZShtZXNzYWdlKSwgeyB9IH0gfSwgW2NhbGxiYWNrQWdn
cmVnYXRvcl0geyB9LCAwKTsKK30KKwordm9pZCBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6
OnBvc3RNZXNzYWdlTG9jYWxseShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyPiBzb3VyY2VJblByb2Nlc3MsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYgbWVzc2FnZSwgUmVmPFdURjo6Q2FsbGJhY2tBZ2dyZWdhdG9yPiYmIGNhbGxi
YWNrQWdncmVnYXRvcikKK3sKKyAgICBhdXRvIGNoYW5uZWxzUGVyT3JpZ2luSXRlcmF0b3IgPSBt
X2NoYW5uZWxzUGVyT3JpZ2luLmZpbmQob3JpZ2luKTsKKyAgICBpZiAoY2hhbm5lbHNQZXJPcmln
aW5JdGVyYXRvciA9PSBtX2NoYW5uZWxzUGVyT3JpZ2luLmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvJiBjaGFubmVsc0Zvck9yaWdpbiA9IGNoYW5uZWxzUGVyT3JpZ2luSXRlcmF0
b3ItPnZhbHVlOworICAgIGF1dG8gY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciA9IGNoYW5uZWxz
Rm9yT3JpZ2luLmZpbmQobmFtZSk7CisgICAgaWYgKGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3Ig
PT0gY2hhbm5lbHNGb3JPcmlnaW4uZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8g
Y2hhbm5lbElkZW50aWZpZXJzRm9yTmFtZSA9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3ItPnZh
bHVlOworICAgIGZvciAoYXV0byYgY2hhbm5lbElkZW50aWVyIDogY2hhbm5lbElkZW50aWZpZXJz
Rm9yTmFtZSkgeworICAgICAgICBpZiAoY2hhbm5lbElkZW50aWVyID09IHNvdXJjZUluUHJvY2Vz
cykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsOjpkaXNwYXRjaE1lc3NhZ2VUbyhjaGFubmVsSWRlbnRpZXIsIG1lc3NhZ2UuY29weVJlZigp
LCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgIH0KIH0KIAotdm9pZCBXZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlVG9SZW1vdGUoV2ViQ29yZTo6QnJvYWRjYXN0
Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHMmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2VUb1Jl
bW90ZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJDb3JlOjpC
cm9hZGNhc3RDaGFubmVsOjpkaXNwYXRjaE1lc3NhZ2VUbyhpZGVudGlmaWVyLCBtZXNzYWdlLm1l
c3NhZ2UucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHBvc3RNZXNzYWdlTG9jYWxseShvcmlnaW4s
IG5hbWUsIHN0ZDo6bnVsbG9wdCwgKm1lc3NhZ2UubWVzc2FnZSwgY2FsbGJhY2tBZ2dyZWdhdG9y
LmNvcHlSZWYoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCmluZGV4IDUwNTU3N2U2ZjRlMmMzY2MyNzJlM2RkYTIz
ODZlOTVlNDNlN2MzNDcuLjNjYjNlNzU0ZjhiNzMyNWRhMGE1NjIxYTEwM2EyODFhNzYxZmQ4OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKQEAgLTI3LDYgKzI3
LDEzIEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ccm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgV1RGIHsKK2NsYXNzIENhbGxiYWNrQWdncmVnYXRvcjsKK30KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogc3RydWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOwpAQCAtNTAsNyArNTcs
MTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnko
KSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9SZW1vdGUoV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRv
UmVtb3RlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlTG9jYWxseShjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+IHNvdXJjZUluUHJvY2VzcywgUmVmPFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgUmVmPFdURjo6Q2FsbGJhY2tBZ2dyZWdhdG9yPiYmKTsK
KworICAgIEhhc2hNYXA8V2ViQ29yZTo6Q2xpZW50T3JpZ2luLCBIYXNoTWFwPFN0cmluZywgVmVj
dG9yPFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyPj4+IG1fY2hhbm5lbHNQZXJP
cmlnaW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCmluZGV4IDA3YWY1MmY4ZDhl
NDg3MjFhNjAwZGU2ZDUzYzcwNDQ4ZTMyZWNiZmQuLjQxZWYyOTcwYzJhYzhlODJiOGRhODMyZWRj
NWFkZmFlMzU0YTkyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgpAQCAtMjEsNSArMjEsNSBAQAogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBtZXNzYWdlcyAtPiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgewotICAgIFBvc3RNZXNz
YWdlVG9SZW1vdGUoV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgZGVzdGluYXRp
b24sIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAtPiAo
KSBBc3luYworICAgIFBvc3RNZXNzYWdlVG9SZW1vdGUoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMgbWVzc2FnZSkgLT4gKCkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9jb29wLW5hdmlnYXRlZC1oaXN0b3J5LXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLW5hdmlnYXRlZC1oaXN0b3J5LXBvcHVwLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCAxZGIxNDM4ZDZjOWYwMjdiMTQ2ZGQ3NjE4NmU4NDc4NGE0YzQ1MDkw
Li5mZDVkOGE1ZjY3Y2M4NDc5NjBjOGM4YzVmOTUyOTNjMjYwNjlkNmYxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3Jp
Z2luLW9wZW5lci1wb2xpY3kvY29vcC1uYXZpZ2F0ZWQtaGlzdG9yeS1wb3B1cC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtbmF2aWdhdGVkLWhpc3Rvcnkt
cG9wdXAuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAorQ09OU09MRSBNRVNTQUdF
OiBDYW4ndCBjbG9zZSB0aGUgd2luZG93IHNpbmNlIGl0IHdhcyBub3Qgb3BlbmVkIGJ5IEphdmFT
Y3JpcHQKIAogUEFTUyBQb3B1cCBuYXZpZ2F0aW5nIHRvIG90aGVyIG9yaWdpbiB3aXRoIENPT1A6
IHNhbWUtb3JpZ2luIGFuZCBiYWNrIGluIGhpc3RvcnkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438086</attachid>
            <date>2021-09-13 16:10:14 -0700</date>
            <delta_ts>2021-09-13 21:15:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230181-20210913161014.patch</filename>
            <type>text/plain</type>
            <size>24898</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVmZGM5NDQ2NWI1MmMw
OTgwYWYwOTdmMzA4MTdkMTRjZjEzOTA4Mi4uNzQ1YWJlZDFhNjYzODY0NmI1YzBiYWFhNmUyNzBj
NDFhMDY1YTc4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA5LTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gUmVkdWNlIGFtb3Vu
dCBvZiBJUEMgbmVlZGVkIGJ5IEJyb2FkY2FzdENoYW5uZWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDE4MQorCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgSW50cm9kdWNlIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZCgpIHdoaWNoIGlzIHNpbWlsYXIgdG8KKyAgICAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbygpIGJ1dCBkb2Vzbid0IGNhbGwg
cG9zdFRhc2soKSBpZiB3ZSdyZSBhbHJlYWR5CisgICAgICAgIG9uIHRoZSBTY3JpcHRFeGVjdXRp
b25Db250ZXh0J3MgY29udGV4dCB0aHJlYWQuIFVzZSBpdCBpbiBCcm9hZGNhc3RDaGFubmVsOjpk
aXNwYXRjaE1lc3NhZ2VUbygpCisgICAgICAgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHRocmVhZCBo
b3BwaW5nIHdoZW4gdGhlIEJyb2FkY2FzdENoYW5uZWwgYmVsb25ncyB0byBhIFdpbmRvdworICAg
ICAgICBlbnZpcm9ubWVudC4KKworICAgICAgICAqIGRvbS9Ccm9hZGNhc3RDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6OmRpc3BhdGNoTWVzc2FnZVRvKToK
KyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQpOgorICAg
ICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisKIDIwMjEtMDktMTMgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSAtdG9n
Z2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uOiBtZW51IGl0ZW0gdmFsaWRhdGlvbiBzaG91
bGRuJ3QgcmVxdWlyZSBwb3N0LWxheW91dCBlZGl0b3Igc3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOWFhZWVm
NTA0NGE0NWY0MGRjN2YyNzI4MDEwYTRiYjFmM2Y5MWU2NC4uNTU2ODMyMTNjZDJhMzZiMjE2YzNm
M2I0NTk1NmI5NDhlYjIxOTY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMS0wOS0x
MCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFJlZHVj
ZSBhbW91bnQgb2YgSVBDIG5lZWRlZCBieSBCcm9hZGNhc3RDaGFubmVsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAxODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFJlZHVjZSBhbW91bnQgb2YgSVBD
IG5lZWRlZCBieSBCcm9hZGNhc3RDaGFubmVsIGZvciBib3RoIHJlZ2lzdHJhdGlvbiAvIHVucmVn
aXN0cmF0aW9uCisgICAgICAgIGFuZCBjb21tdW5pY2F0aW9uLiBFYWNoIFdlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeSBpbiB0aGUgV2ViUHJvY2VzcyBub3cgbWFpbnRhaW5zCisgICAgICAgIGEg
bWFwIG9mIEJyb2FkY2FzdENoYW5uZWxzIHdpdGhpbiB0aGUgV2ViUHJvY2Vzcy4gQXMgYSByZXN1
bHQsIHdlIGFyZSBhYmxlIHRvIGRpc3BhdGNoCisgICAgICAgIG1lc3NhZ2VzIHRvIG90aGVyIEJy
b2FkY2FzdENoYW5uZWxzIHdpdGhpbiB0aGUgc2FtZSBwcm9jZXNzIHdpdGhvdXQgZ29pbmcgdmlh
IHRoZQorICAgICAgICBOZXR3b3JrUHJvY2Vzcy4KKworICAgICAgICBBbHNvLCB0aGUgTmV0d29y
a0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSBvbiB0aGUgTmV0d29ya1Byb2Nlc3Mgc2lkZSBubyBs
b25nZXIgbmVlZHMKKyAgICAgICAgdG8gc3RvcmUgaW5kaXZpZHVhbCBCcm9hZGNhc3RDaGFubmVs
SWRlbnRpZmllcnMuIEl0IG1lcmVseSBuZWVkcyB0byBrbm93IHdoaWNoCisgICAgICAgIFdlYlBy
b2Nlc3NlcyBoYXZlIG9uZSBvciBtb3JlIEJyb2FkY2FzdENoYW5uZWxzIGZvciBhIGdpdmVuIENs
aWVudE9yaWdpbiAvIG5hbWUuCisgICAgICAgIFdoZW4gTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeTo6cG9zdE1lc3NhZ2UoKSBpcyBjYWxsZWQsIHdlIG5vIGxvbmdlciBzZW5kCisgICAg
ICAgIElQQyB0byB0aGUgc291cmNlIHByb2Nlc3MgaW4gY2FzZSB0aGVyZSBhcmUgb3RoZXIgQnJv
YWRjYXN0Q2hhbm5lbHMgdGhhbiB0aGUgc291cmNlCisgICAgICAgIHdpdGggdGhlIGdpdmVuIENs
aWVudE9yaWdpbiAvIG5hbWUgaW4gdGhhdCBwcm9jZXNzLiBBbHNvLCBpZiB0aGVyZSBpcyBtb3Jl
IHRoYW4KKyAgICAgICAgb25lIEJyb2FkY2FzdENoYW5uZWwgZm9yIHRoZSBnaXZlbiBDbGllbnRP
cmlnaW4gLyBuYW1lIHdpdGhpbiBhIGdpdmVuIGRlc3RpbmF0aW9uCisgICAgICAgIFdlYlByb2Nl
c3MsIHdlIG5vdyBzZW5kIGEgc2luZ2xlIElQQyBtZXNzYWdlIGluc3RlYWQgb2Ygc2VuZGluZyBv
bmUgcGVyIEJyb2FkY2FzdENoYW5uZWwuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0
TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OnJlbW92ZUNvbm5lY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpyZWdpc3RlckNoYW5u
ZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVn
aXN0ZXJDaGFubmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5Ojpwb3N0TWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeTo6cG9zdE1lc3NhZ2VMb2NhbGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0TWVzc2FnZVRvUmVtb3RlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5Lm1lc3NhZ2VzLmluOgorCiAyMDIxLTA5LTEzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gLXRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5n
Q29ycmVjdGlvbjogbWVudSBpdGVtIHZhbGlkYXRpb24gc2hvdWxkbid0IHJlcXVpcmUgcG9zdC1s
YXlvdXQgZWRpdG9yIHN0YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRj
YXN0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQnJvYWRjYXN0Q2hhbm5lbC5jcHAK
aW5kZXggMWU5NTcyZTg0ODg5ODBlM2NmNjdlZTUxZDkzNTM5ZTlhNTZmZTgzYS4uYTU5ZDFkZjgx
OTFhM2RkZGFkY2VhN2Y5NDliYzFhYTdlOGYzODJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0Jyb2FkY2FzdENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ccm9h
ZGNhc3RDaGFubmVsLmNwcApAQCAtMjI2LDcgKzIyNiw3IEBAIHZvaWQgQnJvYWRjYXN0Q2hhbm5l
bDo6ZGlzcGF0Y2hNZXNzYWdlVG8oQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElk
ZW50CiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwogCiAgICAgYXV0byBjYWxs
YmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhj
b250ZXh0SWRlbnRpZmllciwgW2NoYW5uZWxJZGVudGlmaWVyLCBtZXNzYWdlID0gV1RGTW92ZSht
ZXNzYWdlKSwgY2FsbGJhY2tBZ2dyZWdhdG9yID0gV1RGTW92ZShjYWxsYmFja0FnZ3JlZ2F0b3Ip
XShhdXRvJikgbXV0YWJsZSB7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25D
b250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY2hhbm5lbElkZW50aWZpZXIsIG1lc3Nh
Z2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBXVEZNb3ZlKGNhbGxi
YWNrQWdncmVnYXRvcildKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgUmVmUHRyPEJyb2FkY2Fz
dENoYW5uZWw+IGNoYW5uZWw7CiAgICAgICAgIHsKICAgICAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBhbGxCcm9hZGNhc3RDaGFubmVsc0xvY2sgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCBlYzQyNTc4MjllY2MzMzY1OTZjODk0NDkzYWEz
MWVmOTlhNDg3ZThlLi41NWI2ZDM4ZTk0OWJkNGExMjU0OGJlYWMxM2NlNWFhOWYxNjU2Nzk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC02
NTAsNCArNjUwLDI0IEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK2Jvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRhc2smJiB0YXNr
KQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBudWxscHRyOworICAg
IHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFw
TG9jayB9OworICAgICAgICBjb250ZXh0ID0gYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXAo
KS5nZXQoaWRlbnRpZmllcik7CisKKyAgICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICghY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkp
IHsKKyAgICAgICAgICAgIGNvbnRleHQtPnBvc3RUYXNrKFdURk1vdmUodGFzaykpOworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0YXNrLnBlcmZvcm1U
YXNrKCpjb250ZXh0KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXgg
OThiNDIyZjg5OGRlODhiNGRjZWFkZGY0OGY5NDJlNjFjMDdiZGEwOC4uZGI3ZWNmNGE2YjExMDE0
ODE0NTJjOTNmYTRiZWViMDUyNGQ5NDZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0yODEsNiArMjgxLDcgQEAgcHVibGljOgogICAgIFNlcnZp
Y2VXb3JrZXJDb250YWluZXIqIGVuc3VyZVNlcnZpY2VXb3JrZXJDb250YWluZXIoKTsKICNlbmRp
ZgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHBvc3RUYXNrVG8oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIsIFRhc2smJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgZW5zdXJlT25Db250ZXh0VGhyZWFkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBUYXNrJiYpOwogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY29u
dGV4dElkZW50aWZpZXIoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAK
aW5kZXggZDE4MGUwN2UxNzczMmUwMjlmMDY3NmQ0ZTk3ZmJmMDJiOTA3NjUyNS4uNjlhOTc2OTA3
NzBhYzQxMGEyOWI3MTk1MjhlNjI1YjVhOTQ1MDIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkuY3BwCkBAIC0zNCw1MyArMzQsNTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIE5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6
cmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgY2hhbm5lbElkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBT
dHJpbmcmIG5hbWUpCiB7Ci0gICAgYXV0byYgY2hhbm5lbHNGb3JPcmlnaW4gPSBtX2Jyb2FkY2Fz
dENoYW5uZWxzLmVuc3VyZShvcmlnaW4sIFtdIHsgcmV0dXJuIE5hbWVUb0NoYW5uZWxJZGVudGlm
aWVyc01hcCB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZTsKLSAgICBhdXRvJiBjaGFubmVsc0Zvck5h
bWUgPSBjaGFubmVsc0Zvck9yaWdpbi5lbnN1cmUobmFtZSwgW10geyByZXR1cm4gVmVjdG9yPEds
b2JhbEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyPiB7IH07IH0pLml0ZXJhdG9yLT52YWx1ZTsK
LSAgICBHbG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBnbG9iYWxDaGFubmVsSWRlbnRp
ZmllciB7IGNvbm5lY3Rpb24udW5pcXVlSUQoKSwgY2hhbm5lbElkZW50aWZpZXIgfTsKLSAgICBB
U1NFUlQoIWNoYW5uZWxzRm9yTmFtZS5jb250YWlucyhnbG9iYWxDaGFubmVsSWRlbnRpZmllcikp
OwotICAgIGNoYW5uZWxzRm9yTmFtZS5hcHBlbmQoV1RGTW92ZShnbG9iYWxDaGFubmVsSWRlbnRp
ZmllcikpOworICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2luID0gbV9icm9hZGNhc3RDaGFubmVs
cy5lbnN1cmUob3JpZ2luLCBbXSB7IHJldHVybiBOYW1lVG9Db25uZWN0aW9uSWRlbnRpZmllcnNN
YXAgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byYgY29ubmVjdGlvbklkZW50aWZp
ZXJzRm9yTmFtZSA9IGNoYW5uZWxzRm9yT3JpZ2luLmVuc3VyZShuYW1lLCBbXSB7IHJldHVybiBW
ZWN0b3I8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRD4geyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7
CisgICAgQVNTRVJUKCFjb25uZWN0aW9uSWRlbnRpZmllcnNGb3JOYW1lLmNvbnRhaW5zKGNvbm5l
Y3Rpb24udW5pcXVlSUQoKSkpOworICAgIGNvbm5lY3Rpb25JZGVudGlmaWVyc0Zvck5hbWUuYXBw
ZW5kKGNvbm5lY3Rpb24udW5pcXVlSUQoKSk7CiB9CiAKLXZvaWQgTmV0d29ya0Jyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmll
cikKK3ZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6dW5yZWdpc3RlckNoYW5u
ZWwoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGF1dG8gY2hhbm5lbHNGb3JP
cmlnaW5JdGVyYXRvciA9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZmluZChvcmlnaW4pOwogICAgIEFT
U0VSVChjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yICE9IG1fYnJvYWRjYXN0Q2hhbm5lbHMuZW5k
KCkpOwogICAgIGlmIChjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yID09IG1fYnJvYWRjYXN0Q2hh
bm5lbHMuZW5kKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBhdXRvIGNoYW5uZWxzRm9yTmFtZUl0
ZXJhdG9yID0gY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvci0+dmFsdWUuZmluZChuYW1lKTsKLSAg
ICBBU1NFUlQoY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3IgIT0gY2hhbm5lbHNGb3JPcmlnaW5JdGVy
YXRvci0+dmFsdWUuZW5kKCkpOwotICAgIGlmIChjaGFubmVsc0Zvck5hbWVJdGVyYXRvciA9PSBj
aGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSkKKyAgICBhdXRvIGNvbm5lY3Rp
b25JZGVudGlmaWVyc0Zvck5hbWVJdGVyYXRvciA9IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3It
PnZhbHVlLmZpbmQobmFtZSk7CisgICAgQVNTRVJUKGNvbm5lY3Rpb25JZGVudGlmaWVyc0Zvck5h
bWVJdGVyYXRvciAhPSBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSk7Cisg
ICAgaWYgKGNvbm5lY3Rpb25JZGVudGlmaWVyc0Zvck5hbWVJdGVyYXRvciA9PSBjaGFubmVsc0Zv
ck9yaWdpbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgR2xv
YmFsQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgZ2xvYmFsQ2hhbm5lbElkZW50aWZpZXIgeyBj
b25uZWN0aW9uLnVuaXF1ZUlEKCksIGNoYW5uZWxJZGVudGlmaWVyIH07Ci0gICAgQVNTRVJUKGNo
YW5uZWxzRm9yTmFtZUl0ZXJhdG9yLT52YWx1ZS5jb250YWlucyhnbG9iYWxDaGFubmVsSWRlbnRp
ZmllcikpOwotICAgIGNoYW5uZWxzRm9yTmFtZUl0ZXJhdG9yLT52YWx1ZS5yZW1vdmVGaXJzdChn
bG9iYWxDaGFubmVsSWRlbnRpZmllcik7CisgICAgQVNTRVJUKGNvbm5lY3Rpb25JZGVudGlmaWVy
c0Zvck5hbWVJdGVyYXRvci0+dmFsdWUuY29udGFpbnMoY29ubmVjdGlvbi51bmlxdWVJRCgpKSk7
CisgICAgY29ubmVjdGlvbklkZW50aWZpZXJzRm9yTmFtZUl0ZXJhdG9yLT52YWx1ZS5yZW1vdmVG
aXJzdChjb25uZWN0aW9uLnVuaXF1ZUlEKCkpOwogfQogCi12b2lkIE5ldHdvcmtCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk6OnBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwg
V2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eTo6cG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0
b3IgPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmZpbmQob3JpZ2luKTsKICAgICBBU1NFUlQoY2hhbm5l
bHNGb3JPcmlnaW5JdGVyYXRvciAhPSBtX2Jyb2FkY2FzdENoYW5uZWxzLmVuZCgpKTsKICAgICBp
ZiAoY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvciA9PSBtX2Jyb2FkY2FzdENoYW5uZWxzLmVuZCgp
KQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICBhdXRvIGNoYW5uZWxz
Rm9yTmFtZUl0ZXJhdG9yID0gY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvci0+dmFsdWUuZmluZChu
YW1lKTsKLSAgICBBU1NFUlQoY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3IgIT0gY2hhbm5lbHNGb3JP
cmlnaW5JdGVyYXRvci0+dmFsdWUuZW5kKCkpOwotICAgIGlmIChjaGFubmVsc0Zvck5hbWVJdGVy
YXRvciA9PSBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSkKKyAgICBhdXRv
IGNvbm5lY3Rpb25JZGVudGlmaWVyc0Zvck5hbWVJdGVyYXRvciA9IGNoYW5uZWxzRm9yT3JpZ2lu
SXRlcmF0b3ItPnZhbHVlLmZpbmQobmFtZSk7CisgICAgQVNTRVJUKGNvbm5lY3Rpb25JZGVudGlm
aWVyc0Zvck5hbWVJdGVyYXRvciAhPSBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52YWx1ZS5l
bmQoKSk7CisgICAgaWYgKGNvbm5lY3Rpb25JZGVudGlmaWVyc0Zvck5hbWVJdGVyYXRvciA9PSBj
aGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSkKICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiAKICAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxi
YWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICBH
bG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2VHbG9iYWxDaGFubmVsSWRlbnRp
ZmllciB7IGNvbm5lY3Rpb24udW5pcXVlSUQoKSwgc291cmNlIH07Ci0gICAgZm9yIChhdXRvJiBn
bG9iYWxJZGVudGlmaWVyIDogY2hhbm5lbHNGb3JOYW1lSXRlcmF0b3ItPnZhbHVlKSB7Ci0gICAg
ICAgIGlmIChnbG9iYWxJZGVudGlmaWVyID09IHNvdXJjZUdsb2JhbENoYW5uZWxJZGVudGlmaWVy
KQorICAgIGZvciAoYXV0byYgY29ubmVjdGlvbklEIDogY29ubmVjdGlvbklkZW50aWZpZXJzRm9y
TmFtZUl0ZXJhdG9yLT52YWx1ZSkgeworICAgICAgICAvLyBPbmx5IGRpc3BhdGNoIHRoZSBwb3N0
IHRoZSBtZXNzYWdlcyB0byBCcm9hZGNhc3RDaGFubmVscyBvdXRzaWRlIHRoZSBzb3VyY2UgcHJv
Y2Vzcy4KKyAgICAgICAgaWYgKGNvbm5lY3Rpb25JRCA9PSBjb25uZWN0aW9uLnVuaXF1ZUlEKCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBSZWZQdHIgY29ubmVjdGlvbiA9IElQ
Qzo6Q29ubmVjdGlvbjo6Y29ubmVjdGlvbihnbG9iYWxJZGVudGlmaWVyLmNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKKyAgICAgICAgUmVmUHRyIGNvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNv
bm5lY3Rpb24oY29ubmVjdGlvbklEKTsKICAgICAgICAgaWYgKCFjb25uZWN0aW9uKQogICAgICAg
ICAgICAgY29udGludWU7CiAKLSAgICAgICAgY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlBvc3RNZXNzYWdlVG9SZW1v
dGUoZ2xvYmFsSWRlbnRpZmllci5jaGFubmVsSW5kZW50aWZpZXJJblByb2Nlc3MsIG1lc3NhZ2Up
LCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0sIDApOworICAgICAgICBjb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6UG9z
dE1lc3NhZ2VUb1JlbW90ZShvcmlnaW4sIG5hbWUsIG1lc3NhZ2UpLCBbY2FsbGJhY2tBZ2dyZWdh
dG9yXSB7IH0sIDApOwogICAgIH0KIH0KIApAQCAtOTAsOSArODgsNyBAQCB2b2lkIE5ldHdvcmtC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnJlbW92ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aQogICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2Jyb2FkY2FzdENoYW5uZWxzKSB7
CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzVG9SZW1vdmU7CiAgICAgICAgIGZvciAoYXV0
byYgaW5uZXJFbnRyeSA6IGVudHJ5LnZhbHVlKSB7Ci0gICAgICAgICAgICBpbm5lckVudHJ5LnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKFtjb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb24u
dW5pcXVlSUQoKV0oYXV0byYgZ2xvYmFsSWRlbnRpZmllcikgewotICAgICAgICAgICAgICAgIHJl
dHVybiBnbG9iYWxJZGVudGlmaWVyLmNvbm5lY3Rpb25JZGVudGlmaWVyID09IGNvbm5lY3Rpb25J
ZGVudGlmaWVyOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpbm5lckVudHJ5LnZhbHVl
LnJlbW92ZUZpcnN0KGNvbm5lY3Rpb24udW5pcXVlSUQoKSk7CiAgICAgICAgICAgICBpZiAoaW5u
ZXJFbnRyeS52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgbmFtZXNUb1JlbW92ZS5h
cHBlbmQoaW5uZXJFbnRyeS5rZXkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eS5oCmluZGV4IDUxZTZiOTQwZGQ2OTYyN2U4MDEwNGQzOGI4ZDM3OWQzZTIzMDRjZjYuLjNmOWFl
ZDIwYmFiNmJjMDI4MTA4NTU2NDliYTdhN2YwZjJlZGY0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5oCkBAIC00NSwyMyArNDUsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAotICAgIHZvaWQg
cmVnaXN0ZXJDaGFubmVsKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIpOwotICAgIHZvaWQgdW5yZWdpc3RlckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpC
cm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcik7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5h
bWUsIFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyIHNvdXJjZSwgV2ViQ29yZTo6
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIHJlZ2lzdGVyQ2hhbm5lbChJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIHZvaWQgdW5yZWdpc3Rl
ckNoYW5uZWwoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwg
Y29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2Vi
Q29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKIAogcHJpdmF0ZToKLSAgICBzdHJ1Y3QgR2xvYmFsQnJvYWRjYXN0Q2hhbm5lbElkZW50
aWZpZXIgewotICAgICAgICBJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb25JZGVu
dGlmaWVyOwotICAgICAgICBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFu
bmVsSW5kZW50aWZpZXJJblByb2Nlc3M7Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEdsb2JhbEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyJiBvdGhlcikgY29uc3QKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb25JZGVudGlmaWVyID09IG90aGVyLmNvbm5l
Y3Rpb25JZGVudGlmaWVyICYmIGNoYW5uZWxJbmRlbnRpZmllckluUHJvY2VzcyA9PSBvdGhlci5j
aGFubmVsSW5kZW50aWZpZXJJblByb2Nlc3M7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgdXNp
bmcgTmFtZVRvQ2hhbm5lbElkZW50aWZpZXJzTWFwID0gSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxH
bG9iYWxCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcj4+OwotICAgIEhhc2hNYXA8V2ViQ29yZTo6
Q2xpZW50T3JpZ2luLCBOYW1lVG9DaGFubmVsSWRlbnRpZmllcnNNYXA+IG1fYnJvYWRjYXN0Q2hh
bm5lbHM7CisgICAgdXNpbmcgTmFtZVRvQ29ubmVjdGlvbklkZW50aWZpZXJzTWFwID0gSGFzaE1h
cDxTdHJpbmcsIFZlY3RvcjxJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEPj47CisgICAgSGFzaE1h
cDxXZWJDb3JlOjpDbGllbnRPcmlnaW4sIE5hbWVUb0Nvbm5lY3Rpb25JZGVudGlmaWVyc01hcD4g
bV9icm9hZGNhc3RDaGFubmVsczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCmluZGV4IDRiNzRkZjgxMmRl
ODc5Zjg1MDlkNTExNDg2OWIwNzc5ZjYwNmVlZmUuLmU1ZmNmOTVkYTVlYjc4YjJkNGZmOTEwYWVl
ZmE5MzUzZTU2OGM1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVz
c2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4g
TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSBOb3RSZWZDb3VudGVkIHsKLSAgICBSZWdp
c3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBu
YW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmll
cikgV2FudHNDb25uZWN0aW9uCi0gICAgVW5yZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFu
bmVsSWRlbnRpZmllciBjaGFubmVsSWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCi0gICAgUG9z
dE1lc3NhZ2Uoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIFN0cmluZyBuYW1l
LCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIHN0cnVjdCBXZWJD
b3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAtPiAoKSBBc3luYyBXYW50c0Nv
bm5lY3Rpb24KKyAgICBSZWdpc3RlckNoYW5uZWwoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biBvcmlnaW4sIFN0cmluZyBuYW1lKSBXYW50c0Nvbm5lY3Rpb24KKyAgICBVbnJlZ2lzdGVyQ2hh
bm5lbChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgU3RyaW5nIG5hbWUpIFdh
bnRzQ29ubmVjdGlvbgorICAgIFBvc3RNZXNzYWdlKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4gb3JpZ2luLCBTdHJpbmcgbmFtZSwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzIG1lc3NhZ2UpIC0+ICgpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcAppbmRleCA0OTgyZjgwNjYyMzQ1OTA4
YmQwYWVkYTMwZjFjNzdjZjI1MzhjMzE5Li44MWNhYzQyNjU0NWJjOWFhYTgwOWVlZTc2MzVhOTZk
Mjc5MzE1ZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0Jyb2FkY2FzdENoYW5uZWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzLmg+CisjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDEsMjIgKzQyLDY4IEBAIHN0YXRpYyBpbmxpbmUgSVBD
OjpDb25uZWN0aW9uJiBuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKQogCiB2b2lkIFdlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeTo6cmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2FkY2FzdENo
YW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6UmVn
aXN0ZXJDaGFubmVsIHsgb3JpZ2luLCBuYW1lLCBpZGVudGlmaWVyIH0sIDApOworICAgIGF1dG8m
IGNoYW5uZWxzRm9yT3JpZ2luID0gbV9jaGFubmVsc1Blck9yaWdpbi5lbnN1cmUob3JpZ2luLCBb
XSB7IHJldHVybiBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFdlYkNvcmU6OkJyb2FkY2FzdENoYW5u
ZWxJZGVudGlmaWVyPj4geyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byYgY2hhbm5l
bHNGb3JOYW1lID0gY2hhbm5lbHNGb3JPcmlnaW4uZW5zdXJlKG5hbWUsIFtdIHsgcmV0dXJuIFZl
Y3RvcjxXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcj4geyB9OyB9KS5pdGVyYXRv
ci0+dmFsdWU7CisgICAgY2hhbm5lbHNGb3JOYW1lLmFwcGVuZChpZGVudGlmaWVyKTsKKworICAg
IGlmIChjaGFubmVsc0Zvck5hbWUuc2l6ZSgpID09IDEpCisgICAgICAgIG5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OlJlZ2lzdGVyQ2hhbm5lbCB7IG9yaWdpbiwgbmFtZSB9LCAwKTsKIH0KIAogdm9pZCBXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OnVucmVnaXN0ZXJDaGFubmVsKGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OkJyb2Fk
Y2FzdENoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgbmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eTo6VW5yZWdpc3RlckNoYW5uZWwgeyBvcmlnaW4sIG5hbWUsIGlkZW50aWZpZXIgfSwgMCk7Cisg
ICAgYXV0byBjaGFubmVsc1Blck9yaWdpbkl0ZXJhdG9yID0gbV9jaGFubmVsc1Blck9yaWdpbi5m
aW5kKG9yaWdpbik7CisgICAgaWYgKGNoYW5uZWxzUGVyT3JpZ2luSXRlcmF0b3IgPT0gbV9jaGFu
bmVsc1Blck9yaWdpbi5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgY2hhbm5l
bHNGb3JPcmlnaW4gPSBjaGFubmVsc1Blck9yaWdpbkl0ZXJhdG9yLT52YWx1ZTsKKyAgICBhdXRv
IGNoYW5uZWxzRm9yT3JpZ2luSXRlcmF0b3IgPSBjaGFubmVsc0Zvck9yaWdpbi5maW5kKG5hbWUp
OworICAgIGlmIChjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9yID09IGNoYW5uZWxzRm9yT3JpZ2lu
LmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBjaGFubmVsSWRlbnRpZmllcnNG
b3JOYW1lID0gY2hhbm5lbHNGb3JPcmlnaW5JdGVyYXRvci0+dmFsdWU7CisgICAgaWYgKCFjaGFu
bmVsSWRlbnRpZmllcnNGb3JOYW1lLnJlbW92ZUZpcnN0KGlkZW50aWZpZXIpKQorICAgICAgICBy
ZXR1cm47CisgICAgaWYgKCFjaGFubmVsSWRlbnRpZmllcnNGb3JOYW1lLmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY2hhbm5lbHNGb3JPcmlnaW4ucmVtb3ZlKGNoYW5uZWxzRm9y
T3JpZ2luSXRlcmF0b3IpOworICAgIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OlVucmVnaXN0ZXJDaGFubmVs
IHsgb3JpZ2luLCBuYW1lIH0sIDApOworCisgICAgaWYgKGNoYW5uZWxzRm9yT3JpZ2luLmlzRW1w
dHkoKSkKKyAgICAgICAgbV9jaGFubmVsc1Blck9yaWdpbi5yZW1vdmUoY2hhbm5lbHNQZXJPcmln
aW5JdGVyYXRvcik7CiB9CiAKIHZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0
TWVzc2FnZShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBzb3VyY2UsIFJlZjxX
ZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIG5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Jyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeTo6UG9zdE1lc3NhZ2UgeyBvcmlnaW4sIG5hbWUsIHNvdXJjZSwgV2ViQ29y
ZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgeyBXVEZNb3ZlKG1lc3NhZ2UpLCB7IH0gfSB9LCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgMCk7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0
b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgcG9zdE1lc3NhZ2VMb2NhbGx5KG9yaWdpbiwgbmFtZSwgc291cmNlLCBtZXNzYWdl
LmNvcHlSZWYoKSwgY2FsbGJhY2tBZ2dyZWdhdG9yLmNvcHlSZWYoKSk7CisgICAgbmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpQb3N0TWVzc2FnZSB7IG9yaWdpbiwgbmFtZSwgV2ViQ29y
ZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgeyBXVEZNb3ZlKG1lc3NhZ2UpLCB7IH0gfSB9LCBb
Y2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0sIDApOworfQorCit2b2lkIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2VMb2NhbGx5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6QnJv
YWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+IHNvdXJjZUluUHJvY2VzcywgUmVmPFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBSZWY8V1RGOjpDYWxsYmFja0FnZ3JlZ2F0
b3I+JiYgY2FsbGJhY2tBZ2dyZWdhdG9yKQoreworICAgIGF1dG8gY2hhbm5lbHNQZXJPcmlnaW5J
dGVyYXRvciA9IG1fY2hhbm5lbHNQZXJPcmlnaW4uZmluZChvcmlnaW4pOworICAgIGlmIChjaGFu
bmVsc1Blck9yaWdpbkl0ZXJhdG9yID09IG1fY2hhbm5lbHNQZXJPcmlnaW4uZW5kKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8mIGNoYW5uZWxzRm9yT3JpZ2luID0gY2hhbm5lbHNQZXJP
cmlnaW5JdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byBjaGFubmVsc0Zvck9yaWdpbkl0ZXJhdG9y
ID0gY2hhbm5lbHNGb3JPcmlnaW4uZmluZChuYW1lKTsKKyAgICBpZiAoY2hhbm5lbHNGb3JPcmln
aW5JdGVyYXRvciA9PSBjaGFubmVsc0Zvck9yaWdpbi5lbmQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byBjaGFubmVsSWRlbnRpZmllcnNGb3JOYW1lID0gY2hhbm5lbHNGb3JPcmlnaW5J
dGVyYXRvci0+dmFsdWU7CisgICAgZm9yIChhdXRvJiBjaGFubmVsSWRlbnRpZXIgOiBjaGFubmVs
SWRlbnRpZmllcnNGb3JOYW1lKSB7CisgICAgICAgIGlmIChjaGFubmVsSWRlbnRpZXIgPT0gc291
cmNlSW5Qcm9jZXNzKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIFdlYkNvcmU6OkJy
b2FkY2FzdENoYW5uZWw6OmRpc3BhdGNoTWVzc2FnZVRvKGNoYW5uZWxJZGVudGllciwgbWVzc2Fn
ZS5jb3B5UmVmKCksIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CisgICAgfQogfQogCi12b2lk
IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6cG9zdE1lc3NhZ2VUb1JlbW90ZShXZWJDb3Jl
OjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpwb3N0
TWVzc2FnZVRvUmVtb3RlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25z
dCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2Fn
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAg
IFdlYkNvcmU6OkJyb2FkY2FzdENoYW5uZWw6OmRpc3BhdGNoTWVzc2FnZVRvKGlkZW50aWZpZXIs
IG1lc3NhZ2UubWVzc2FnZS5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6
OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgcG9zdE1lc3NhZ2VMb2Nh
bGx5KG9yaWdpbiwgbmFtZSwgc3RkOjpudWxsb3B0LCAqbWVzc2FnZS5tZXNzYWdlLCBjYWxsYmFj
a0FnZ3JlZ2F0b3IuY29weVJlZigpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgKaW5kZXggNTA1NTc3ZTZmNGUyYzNj
YzI3MmUzZGRhMjM4NmU5NWU0M2U3YzM0Ny4uM2NiM2U3NTRmOGI3MzI1ZGEwYTU2MjFhMTAzYTI4
MWE3NjFmZDg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaApA
QCAtMjcsNiArMjcsMTMgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xp
ZW50T3JpZ2luLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgQ2FsbGJhY2tBZ2dyZWdhdG9yOworfQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM7CkBA
IC01MCw3ICs1NywxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeSgpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1JlbW90ZShX
ZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhN
ZXNzYWdlUG9ydHMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHBv
c3RNZXNzYWdlVG9SZW1vdGUoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgcG9zdE1lc3NhZ2VMb2NhbGx5KGNvbnN0IFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllcj4gc291cmNlSW5Qcm9jZXNzLCBSZWY8
V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBSZWY8V1RGOjpDYWxsYmFja0FnZ3Jl
Z2F0b3I+JiYpOworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpDbGllbnRPcmlnaW4sIEhhc2hNYXA8
U3RyaW5nLCBWZWN0b3I8V2ViQ29yZTo6QnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXI+Pj4gbV9j
aGFubmVsc1Blck9yaWdpbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KaW5kZXgg
MDdhZjUyZjhkOGU0ODcyMWE2MDBkZTZkNTNjNzA0NDhlMzJlY2JmZC4uNDFlZjI5NzBjMmFjOGU4
MmI4ZGE4MzJlZGM1YWRmYWUzNTRhOTI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCkBAIC0yMSw1ICsyMSw1IEBACiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSB7Ci0g
ICAgUG9zdE1lc3NhZ2VUb1JlbW90ZShXZWJDb3JlOjpCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmll
ciBkZXN0aW5hdGlvbiwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1l
c3NhZ2UpIC0+ICgpIEFzeW5jCisgICAgUG9zdE1lc3NhZ2VUb1JlbW90ZShzdHJ1Y3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgU3RyaW5nIG5hbWUsIHN0cnVjdCBXZWJDb3JlOjpNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlKSAtPiAoKSBBc3luYwogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9y
aWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtbmF2aWdhdGVkLWhpc3RvcnktcG9wdXAuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtbmF2aWdhdGVkLWhpc3RvcnktcG9w
dXAuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDFkYjE0MzhkNmM5ZjAyN2IxNDZkZDc2MTg2ZTg0
Nzg0YTRjNDUwOTAuLmZkNWQ4YTVmNjdjYzg0Nzk2MGM4YzhjNWY5NTI5M2MyNjA2OWQ2ZjEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLW5hdmlnYXRlZC1oaXN0b3J5LXBvcHVw
Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1uYXZpZ2F0
ZWQtaGlzdG9yeS1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACitDT05T
T0xFIE1FU1NBR0U6IENhbid0IGNsb3NlIHRoZSB3aW5kb3cgc2luY2UgaXQgd2FzIG5vdCBvcGVu
ZWQgYnkgSmF2YVNjcmlwdAogCiBQQVNTIFBvcHVwIG5hdmlnYXRpbmcgdG8gb3RoZXIgb3JpZ2lu
IHdpdGggQ09PUDogc2FtZS1vcmlnaW4gYW5kIGJhY2sgaW4gaGlzdG9yeQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>