<?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>231990</bug_id>
          
          <creation_ts>2021-10-19 15:07:13 -0700</creation_ts>
          <short_desc>WebKit should process-swap for initial navigation of a popup if it has no opener</short_desc>
          <delta_ts>2021-10-21 09:48:01 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ggaren</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1806353</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-19 15:07:13 -0700</bug_when>
    <thetext>WebKit should process-swap for initial navigation of a popup if it has no opener, even if the navigation is same-site.
Swapping process is not Web-observable here since there is no opener relationship. However, swapping processes has benefits here since we don&apos;t want to end up with too many tabs sharing the same process.

This impacts Google Drive where double-clicking a document will open Google Docs in a new tab and in the same WebProcess as Google Drive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806354</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-19 15:07:24 -0700</bug_when>
    <thetext>&lt;rdar://84425504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806360</commentid>
    <comment_count>2</comment_count>
      <attachid>441806</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-19 15:12:53 -0700</bug_when>
    <thetext>Created attachment 441806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806663</commentid>
    <comment_count>3</comment_count>
      <attachid>441890</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-20 09:55:30 -0700</bug_when>
    <thetext>Created attachment 441890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806744</commentid>
    <comment_count>4</comment_count>
      <attachid>441912</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-20 11:55:39 -0700</bug_when>
    <thetext>Created attachment 441912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806898</commentid>
    <comment_count>5</comment_count>
      <attachid>441950</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-20 15:37:41 -0700</bug_when>
    <thetext>Created attachment 441950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806943</commentid>
    <comment_count>6</comment_count>
      <attachid>441960</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-20 17:19:25 -0700</bug_when>
    <thetext>Created attachment 441960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806999</commentid>
    <comment_count>7</comment_count>
      <attachid>441979</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-20 20:50:32 -0700</bug_when>
    <thetext>Created attachment 441979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807029</commentid>
    <comment_count>8</comment_count>
      <attachid>441979</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-10-20 23:54:58 -0700</bug_when>
    <thetext>Comment on attachment 441979
Patch

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

R=me

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1296
&gt; +    EXPECT_NE(pid1, pid2);

Is it worth having a test for the named window case to confirm it doesn’t process swap?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1387
&gt; +    // Since the window was open via JS, it should be able to close itself.

“Was opened”</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807127</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-21 07:26:45 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #8)
&gt; Comment on attachment 441979 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441979&amp;action=review
&gt; 
&gt; R=me
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1296
&gt; &gt; +    EXPECT_NE(pid1, pid2);
&gt; 
&gt; Is it worth having a test for the named window case to confirm it doesn’t
&gt; process swap?

Why not, I&apos;ll add one. That said, process swapping when there is a window name and no opener would be safe. I merely haven&apos;t gone to the trouble of making it work.

&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1387
&gt; &gt; +    // Since the window was open via JS, it should be able to close itself.
&gt; 
&gt; “Was opened”</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807132</commentid>
    <comment_count>10</comment_count>
      <attachid>442019</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-21 07:49:51 -0700</bug_when>
    <thetext>Created attachment 442019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807220</commentid>
    <comment_count>11</comment_count>
      <attachid>442019</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-21 09:47:57 -0700</bug_when>
    <thetext>Comment on attachment 442019
Patch

Clearing flags on attachment: 442019

Committed r284610 (243337@main): &lt;https://commits.webkit.org/243337@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807221</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-10-21 09:48:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441806</attachid>
            <date>2021-10-19 15:12:53 -0700</date>
            <delta_ts>2021-10-20 09:55:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231990-20211019151252.patch</filename>
            <type>text/plain</type>
            <size>6204</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFhMTg2OTM4ODkyYjg2NWEx
OTA3ZGVmMDFkODA4M2I0MzM4NmYxNTEuLmYxYzFlYzRlOWUzYzExYzg4ZWIzNGYyY2Y2MTUxOTQx
MDBmZjZjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMTAtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mt
c3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5l
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkw
CisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRp
YWwgbmF2aWdhdGlvbiBvZiBhIHBvcHVwIGlmIGl0IGhhcyBubyBvcGVuZXIsIGV2ZW4gaWYgdGhl
IG5hdmlnYXRpb24gaXMKKyAgICAgICAgc2FtZS1zaXRlLiBTd2FwcGluZyBwcm9jZXNzIGlzIG5v
dCBXZWItb2JzZXJ2YWJsZSBoZXJlIHNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciByZWxhdGlvbnNo
aXAuIEhvd2V2ZXIsIHN3YXBwaW5nCisgICAgICAgIHByb2Nlc3NlcyBoYXMgYmVuZWZpdHMgaGVy
ZSBzaW5jZSB3ZSBkb24ndCB3YW50IHRvIGVuZCB1cCB3aXRoIHRvbyBtYW55IHRhYnMgc2hhcmlu
ZyB0aGUgc2FtZSBwcm9jZXNzLgorCisgICAgICAgIFRoaXMgaW1wYWN0cyBHb29nbGUgRHJpdmUg
d2hlcmUgZG91YmxlLWNsaWNraW5nIGEgZG9jdW1lbnQgd2lsbCBvcGVuIEdvb2dsZSBEb2NzIGlu
IGEgbmV3IHRhYiBhbmQgaW4gdGhlIHNhbWUKKyAgICAgICAgV2ViUHJvY2VzcyBhcyBHb29nbGUg
RHJpdmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVkIGV4aXN0aW5nIEFQSSB0ZXN0
cyBhbmQgdGhpcyBpcyBub3QgV2ViLW9ic2VydmFibGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJv
Y2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbCk6CisKIDIwMjEtMTAtMTkgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI4NDA3OSk6
IGZhc3QvY2FudmFzL2dyYWRpZW50LXdpdGgtY2xpcC5odG1sIGFuZCBmYXN0L2NhbnZhcy9ncmFk
aWVudC10ZXh0LXdpdGgtc2hhZG93Lmh0bWwgYXJlIGZsYWt5IGZhaWx1cmVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzZkZTU4ODAyY2U2ZWM5NGJm
NGZjYzhmMmNlNDFmZjliZTczNmVjZi4uMGEzMzE3YTJiNTdjODljM2RhNTdmYjU0ZWJmYjU3MzI2
MzVlMmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApA
QCAtMTg5Nyw2ICsxODk3LDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZp
Z2F0aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBBUEk6CiAgICAgICAgIH0K
ICAgICB9CiAKKyAgICAvLyBJZiBpdCBpcyB0aGUgZmlyc3QgbmF2aWdhdGlvbiBpbiBhIERPTSBw
b3B1cCBhbmQgdGhlcmUgaXMgbm8gb3BlbmVyLCB0aGVuIGZvcmNlIGEgcHJvY2VzcyBzd2FwIG5v
IG1hdHRlciB3aGF0IHNpbmNlCisgICAgLy8gcG9wdXAgd2luZG93cyBhcmUgb3JpZ2luYWxseSBj
cmVhdGVkIGluIHRoZWlyIG9wZW5lcidzIHByb2Nlc3MuCisgICAgaWYgKHBhZ2Uub3BlbmVkQnlE
T00oKSAmJiAhbmF2aWdhdGlvbi5vcGVuZWRCeURPTVdpdGhPcGVuZXIoKSAmJiAhcGFnZS5oYXND
b21taXR0ZWRBbnlQcm92aXNpb25hbExvYWRzKCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihjcmVhdGVOZXdQcm9jZXNzKCksIG51bGxwdHIsICJQcm9jZXNzIHN3YXAgYmVjYXVz
ZSB0aGlzIGlzIGEgZmlyc3QgbmF2aWdhdGlvbiBpbiBhIERPTSBwb3B1cCB3aXRob3V0IG9wZW5l
ciJfcyk7CisKICAgICBpZiAobmF2aWdhdGlvbi50cmVhdEFzU2FtZU9yaWdpbk5hdmlnYXRpb24o
KSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc291cmNlUHJvY2Vz
cyksIG51bGxwdHIsICJUaGUgdHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9uIGZsYWcgaXMgc2V0
Il9zKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGRjZGRmYTBjOTc3YmU5OTcxOTI2ZGUwMzkxOTg1M2Q5NDdhYmI0YjUuLjNkODE5ZTcxOTQ1
Mzc3YjAzZTM1MjRkZmRkMjhlODFlZmNlODY1YzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMC0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgcHJv
Y2Vzcy1zd2FwIGZvciBpbml0aWFsIG5hdmlnYXRpb24gb2YgYSBwb3B1cCBpZiBpdCBoYXMgbm8g
b3BlbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzE5OTAKKyAgICAgICAgPHJkYXI6Ly84NDQyNTUwND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIGV4aXN0aW5nIEFQSSB0ZXN0cyB0byBy
ZWZsZWN0IGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisKIDIwMjEtMTAtMTkgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21w
eV0gRmlsdGVyIGFwcHJvdmVycyBieSBzdGF0dXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tCmluZGV4IDRmMmUyNjJjMmQ0MDRkNWEzODIyMGY1OTdiOTk1OTI5MzUyNzFiOTUuLjJhODc3
MzY4ZjVlOTM3MmVjNWM3MGE1OTU4MzdlYjMwMjkxMGE2OWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbi5tbQpAQCAtMTI4Myw3ICsxMjgzLDggQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jv
c3NPcmlnaW5CdXRTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKICAgICBhdXRvIHBpZDIgPSBb
Y3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfVFJVRSgh
IXBpZDIpOwogCi0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworICAgIC8vIFNpbmNlIHRoZXJl
IGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vzcy1zd2FwLCBldmVuIHRob3VnaCB0aGUgbmF2aWdhdGlv
biBpcyBzYW1lLXNpdGUuCisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOwogfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuV2l0aE9wZW5lcikKQEAgLTEzNjMsNyArMTM2
NCw4IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogICAg
IGF1dG8gcGlkMiA9IFtjcmVhdGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAg
IEVYUEVDVF9UUlVFKCEhcGlkMik7CiAKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisgICAg
Ly8gU2luY2UgdGhlcmUgaXMgbm8gb3BlbmVyLCB3ZSBwcm9jZXNzLXN3YXAsIGV2ZW4gdGhvdWdo
IHRoZSBuYXZpZ2F0aW9uIGlzIHNhbWUtc2l0ZS4KKyAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZUJsYW5rVGFyZ2V0V2l0aE9wZW5lcikK
QEAgLTE1MjMsNyArMTUyNSw4IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlQmxhbmtUYXJn
ZXROb09wZW5lcikKICAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfVFJVRSghIXBpZDIpOwogCi0gICAgRVhQRUNUX0VRKHBp
ZDEsIHBpZDIpOworICAgIC8vIFNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vzcy1z
d2FwLCBldmVuIHRob3VnaCB0aGUgbmF2aWdhdGlvbiBpcyBzYW1lLXNpdGUuCisgICAgRVhQRUNU
X05FKHBpZDEsIHBpZDIpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBTZXJ2ZXJSZWRpcmVjdEZy
b21OZXdXZWJWaWV3KQpAQCAtNjI2OSw3ICs2MjcyLDkgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29C
YWNrVG9TdXNwZW5kZWRQYWdlV2l0aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQogICAgIC8vIE5l
dyBXS1dlYlZpZXcgaGFzIG5vdyBuYXZpZ2F0ZWQgdG8gd2Via2l0Lm9yZy4KICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIsIFtbY3JlYXRlZFdl
YlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwogICAgIGF1dG8gcGlkMiA9IFtjcmVhdGVkV2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwotICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsK
KworICAgIC8vIFdlIHByb2Nlc3Mtc3dhcCBzaW5jZSB0aGVyZSBpcyBubyBvcGVuZXIgcmVsYXRp
b25zaGlwLgorICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKIAogICAgIC8vIENsaWNrIGxpbmsg
aW4gbmV3IFdLV2ViVmlldyBzbyB0aGF0IGl0IG5hdmlnYXRlcyBjcm9zcy1zaXRlIHRvIGFwcGxl
LmNvbS4KICAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAidGVzdExpbmsu
Y2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKQEAgLTYyODgsNyArNjI5Myw3IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFnZVdpdGhNYWluRnJhbWVJRFRoYXRJ
c05vdE9uZSkKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluMi5odG1sIiwgW1tjcmVhdGVkV2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CiAgICAg
YXV0byBwaWQ0ID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Ci0gICAg
RVhQRUNUX0VRKHBpZDEsIHBpZDQpOyAvLyBTaG91bGQgaGF2ZSBwcm9jZXNzLXN3YXBwZWQgdG8g
dGhlIG9yaWdpbmFsICJzdXNwZW5kZWQiIHByb2Nlc3MuCisgICAgRVhQRUNUX0VRKHBpZDIsIHBp
ZDQpOyAvLyBTaG91bGQgaGF2ZSBwcm9jZXNzLXN3YXBwZWQgdG8gdGhlIG9yaWdpbmFsICJzdXNw
ZW5kZWQiIHByb2Nlc3MuCiAKICAgICAvLyBEbyBhIGZyYWdtZW50IG5hdmlnYXRpb24gaW4gdGhl
IG9yaWdpbmFsIFdLV2ViVmlldyBhbmQgbWFrZSBzdXJlIHRoaXMgZG9lcyBub3QgY3Jhc2guCiAg
ICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCN0ZXN0TGluayJdXTsKQEAg
LTYyOTgsNyArNjMwMyw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFn
ZVdpdGhNYWluRnJhbWVJRFRoYXRJc05vdE9uZSkKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sI3Rlc3RMaW5rIiwgW1t3ZWJWaWV3MSBVUkxd
IGFic29sdXRlU3RyaW5nXSk7CiAgICAgYXV0byBwaWQ1ID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07Ci0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDUpOworICAgIEVYUEVD
VF9FUShwaWQyLCBwaWQ1KTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441890</attachid>
            <date>2021-10-20 09:55:30 -0700</date>
            <delta_ts>2021-10-20 11:55:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231990-20211020095529.patch</filename>
            <type>text/plain</type>
            <size>34243</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3YzY5MTk5YzdiN2ZmOGMx
YmJjYmJlYTAyOWYzMGViNDgwYzk3MTUuLmE5OWQ3MjRhMjBmYmU2MTJiZTQ4NDg1NWE0NTkyMjYx
ODI4YjIyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMTAtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mt
c3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5l
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkw
CisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRp
YWwgbmF2aWdhdGlvbiBvZiBhIHBvcHVwIGlmIGl0IGhhcyBubyBvcGVuZXIsIGV2ZW4gaWYgdGhl
IG5hdmlnYXRpb24gaXMKKyAgICAgICAgc2FtZS1zaXRlLiBTd2FwcGluZyBwcm9jZXNzIGlzIG5v
dCBXZWItb2JzZXJ2YWJsZSBoZXJlIHNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciByZWxhdGlvbnNo
aXAuIEhvd2V2ZXIsIHN3YXBwaW5nCisgICAgICAgIHByb2Nlc3NlcyBoYXMgYmVuZWZpdHMgaGVy
ZSBzaW5jZSB3ZSBkb24ndCB3YW50IHRvIGVuZCB1cCB3aXRoIHRvbyBtYW55IHRhYnMgc2hhcmlu
ZyB0aGUgc2FtZSBwcm9jZXNzLgorCisgICAgICAgIFRoaXMgaW1wYWN0cyBHb29nbGUgRHJpdmUg
d2hlcmUgZG91YmxlLWNsaWNraW5nIGEgZG9jdW1lbnQgd2lsbCBvcGVuIEdvb2dsZSBEb2NzIGlu
IGEgbmV3IHRhYiBhbmQgaW4gdGhlIHNhbWUKKyAgICAgICAgV2ViUHJvY2VzcyBhcyBHb29nbGUg
RHJpdmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVkIGV4aXN0aW5nIEFQSSB0ZXN0
cyBhbmQgdGhpcyBpcyBub3QgV2ViLW9ic2VydmFibGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJv
Y2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbCk6CisKIDIwMjEtMTAtMjAgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1
cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKaW5kZXggODUxNmY2MjA5
MjM1MjE5MjU5OWQzZTJmZmIwNDNmYjY1MTNkODgzNC4uZWQ2YzcwY2FhNDQxYzk5NTgyYjRhYjJi
MzFlNzQwNDJiZWVkMzJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJ
bmZvRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAK
QEAgLTM1LDYgKzM1LDcgQEAgdm9pZCBGcmFtZUluZm9EYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgaXNNYWluRnJhbWU7CiAgICAgZW5jb2Rl
ciA8PCByZXF1ZXN0OwogICAgIGVuY29kZXIgPDwgc2VjdXJpdHlPcmlnaW47CisgICAgZW5jb2Rl
ciA8PCBmcmFtZU5hbWU7CiAgICAgZW5jb2RlciA8PCBmcmFtZUlEOwogICAgIGVuY29kZXIgPDwg
cGFyZW50RnJhbWVJRDsKIH0KQEAgLTU2LDYgKzU3LDExIEBAIHN0ZDo6b3B0aW9uYWw8RnJhbWVJ
bmZvRGF0YT4gRnJhbWVJbmZvRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAg
ICBpZiAoIXNlY3VyaXR5T3JpZ2luKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCisg
ICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGZyYW1lTmFtZTsKKyAgICBkZWNvZGVyID4+IGZyYW1l
TmFtZTsKKyAgICBpZiAoIWZyYW1lTmFtZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KwogICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+PiBmcmFtZUlEOwogICAgIGRlY29kZXIgPj4gZnJhbWVJRDsKICAgICBpZiAoIWZyYW1lSUQp
CkBAIC03MCw2ICs3Niw3IEBAIHN0ZDo6b3B0aW9uYWw8RnJhbWVJbmZvRGF0YT4gRnJhbWVJbmZv
RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgV1RGTW92ZSgqaXNN
YWluRnJhbWUpLAogICAgICAgICBXVEZNb3ZlKCpyZXF1ZXN0KSwKICAgICAgICAgV1RGTW92ZSgq
c2VjdXJpdHlPcmlnaW4pLAorICAgICAgICBXVEZNb3ZlKCpmcmFtZU5hbWUpLAogICAgICAgICBX
VEZNb3ZlKCpmcmFtZUlEKSwKICAgICAgICAgV1RGTW92ZSgqcGFyZW50RnJhbWVJRCkKICAgICB9
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaAppbmRleCBmNDlmM2ExZGU0MTMwMjMx
ZWExMTQ2Y2YyMjk1OGU5ODcwODkyYTRiLi4wZjBiZTU0OWYxMmE4ZDk2NWQ1NjNjZWMzYWZjOTg0
OTAzYjJmMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCkBAIC00Myw2ICs0
Myw3IEBAIHN0cnVjdCBGcmFtZUluZm9EYXRhIHsKICAgICBib29sIGlzTWFpbkZyYW1lIHsgZmFs
c2UgfTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW47CisgICAgU3RyaW5nIGZyYW1lTmFt
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsK
ICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gcGFyZW50RnJhbWVJ
RDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAKaW5kZXggYWQxMjIw
Yzg0ZjVjMTFjOTk5YTlhYzRmZjFjYzVmMTJkNTMzMWJlZS4uZTEyNmYzMzRlNDliYTE5NmQ1NDYw
OTgzNTUyZTA5MGE4ZWZiYjMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9h
ZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJz
LmNwcApAQCAtNTYsNiArNTYsNyBAQCB2b2lkIExvYWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbG9ja0hpc3Rvcnk7CiAgICAg
ZW5jb2RlciA8PCBsb2NrQmFja0ZvcndhcmRMaXN0OwogICAgIGVuY29kZXIgPDwgY2xpZW50UmVk
aXJlY3RTb3VyY2VGb3JIaXN0b3J5OworICAgIGVuY29kZXIgPDwgZWZmZWN0aXZlU2FuZGJveEZs
YWdzOwogICAgIGVuY29kZXIgPDwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjsKICAgICBl
bmNvZGVyIDw8IGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZTsK
ICAgICBlbmNvZGVyIDw8IGlzU2VydmljZVdvcmtlckxvYWQ7CkBAIC0xMzYsNiArMTM3LDEyIEBA
IGJvb2wgTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIExvYWRQ
YXJhbWV0ZXJzJiBkYXRhKQogICAgIGlmICghY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZGF0YS5jbGllbnRSZWRpcmVjdFNvdXJjZUZv
ckhpc3RvcnkgPSBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpOworCisg
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTYW5kYm94RmxhZ3M+IGVmZmVjdGl2ZVNhbmRib3hG
bGFnczsKKyAgICBkZWNvZGVyID4+IGVmZmVjdGl2ZVNhbmRib3hGbGFnczsKKyAgICBpZiAoIWVm
ZmVjdGl2ZVNhbmRib3hGbGFncykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGRhdGEuZWZm
ZWN0aXZlU2FuZGJveEZsYWdzID0gKmVmZmVjdGl2ZVNhbmRib3hGbGFnczsKICAgICAKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xv
YWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmlu
ZGV4IDkyMGUxNGRlOTBiOGJmMjY2MzNkOTE3NmUwYmY5Y2U1ZWRmNGNiNjAuLjY0MmQ1OTlhODQx
MTIwNzI2MzRmOWIwMzk5NTJmZjUxNGEwMjVlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBh
cmFtZXRlcnMuaApAQCAtNDMsNiArNDMsMTAgQEAgY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29k
ZXI7CiB9CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3R5cGVkZWYgaW50IFNhbmRib3hGbGFnczsK
K30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBMb2FkUGFyYW1ldGVycyB7CkBAIC03
NCw2ICs3OCw3IEBAIHN0cnVjdCBMb2FkUGFyYW1ldGVycyB7CiAgICAgV2ViQ29yZTo6TG9ja0Jh
Y2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0IHsgV2ViQ29yZTo6TG9ja0JhY2tGb3J3
YXJkTGlzdDo6Tm8gfTsKICAgICBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3Rv
cnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSB7IFdlYkNvcmU6OlN1YnN0aXR1
dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OlZpc2libGUgfTsKICAgICBTdHJpbmcg
Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OworICAgIFdlYkNvcmU6OlNhbmRib3hGbGFn
cyBlZmZlY3RpdmVTYW5kYm94RmxhZ3MgeyAwIH07CiAgICAgc3RkOjpvcHRpb25hbDxOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjsKICAgICBz
dGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyPiBleGlzdGluZ05ldHdv
cmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWU7CiAgICAgYm9vbCBpc1NlcnZpY2VXb3Jr
ZXJMb2FkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmln
YXRpb25BY3Rpb25EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rp
b25EYXRhLmNwcAppbmRleCBmYTBjYTM3NGJlNWJkYTg0NTA0NGQzM2JjYTFlM2YzZGRkNDJiZDJj
Li4yZTAzN2Q3ZjEwNjA5MDgzMjY2YzkzYWM3Yzk3NjdjNzE3NWNiMjQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwCkBAIC01NCw2ICs1NCw3IEBA
IHZvaWQgTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAgICAgZW5jb2RlciA8PCBsb2NrSGlzdG9yeTsKICAgICBlbmNvZGVyIDw8IGxvY2tC
YWNrRm9yd2FyZExpc3Q7CiAgICAgZW5jb2RlciA8PCBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhp
c3Rvcnk7CisgICAgZW5jb2RlciA8PCBlZmZlY3RpdmVTYW5kYm94RmxhZ3M7CiAgICAgZW5jb2Rl
ciA8PCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH0KIApAQCAtMTQ2LDYgKzE0NywxMSBAQCBz
dGQ6Om9wdGlvbmFsPE5hdmlnYXRpb25BY3Rpb25EYXRhPiBOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZAogICAgIGlmICghY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JI
aXN0b3J5KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCisgICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTYW5kYm94RmxhZ3M+IGVmZmVjdGl2ZVNhbmRib3hGbGFnczsKKyAgICBkZWNv
ZGVyID4+IGVmZmVjdGl2ZVNhbmRib3hGbGFnczsKKyAgICBpZiAoIWVmZmVjdGl2ZVNhbmRib3hG
bGFncykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4+IHByaXZhdGVD
bGlja01lYXN1cmVtZW50OwogICAgIGRlY29kZXIgPj4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7
CiAgICAgaWYgKCFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkKQEAgLTE1NCw3ICsxNjAsNyBAQCBz
dGQ6Om9wdGlvbmFsPE5hdmlnYXRpb25BY3Rpb25EYXRhPiBOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZAogICAgIHJldHVybiB7eyBXVEZNb3ZlKG5hdmlnYXRpb25U
eXBlKSwgbW9kaWZpZXJzLCBXVEZNb3ZlKG1vdXNlQnV0dG9uKSwgV1RGTW92ZShzeW50aGV0aWND
bGlja1R5cGUpLCBXVEZNb3ZlKCp1c2VyR2VzdHVyZVRva2VuSWRlbnRpZmllciksCiAgICAgICAg
IFdURk1vdmUoKmNhbkhhbmRsZVJlcXVlc3QpLCBXVEZNb3ZlKHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kpLCBXVEZNb3ZlKCpkb3dubG9hZEF0dHJpYnV0ZSksIFdURk1vdmUoY2xpY2tMb2Nh
dGlvbkluUm9vdFZpZXdDb29yZGluYXRlcyksCiAgICAgICAgIFdURk1vdmUoKmlzUmVkaXJlY3Qp
LCAqdHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9uLCAqaGFzT3BlbmVkRnJhbWVzLCAqb3BlbmVk
QnlET01XaXRoT3BlbmVyLCBXVEZNb3ZlKCpyZXF1ZXN0ZXJPcmlnaW4pLAotICAgICAgICBXVEZN
b3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgV1RGTW92ZSgqc291cmNlQmFj
a0ZvcndhcmRJdGVtSWRlbnRpZmllciksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0
LCBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpLCBXVEZNb3ZlKCpwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCkgfX07CisgICAgICAgIFdURk1vdmUoKnRhcmdldEJhY2tGb3J3
YXJkSXRlbUlkZW50aWZpZXIpLCBXVEZNb3ZlKCpzb3VyY2VCYWNrRm9yd2FyZEl0ZW1JZGVudGlm
aWVyKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIFdURk1vdmUoKmNsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeSksICplZmZlY3RpdmVTYW5kYm94RmxhZ3MsIFdURk1vdmUo
KnByaXZhdGVDbGlja01lYXN1cmVtZW50KSB9fTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAppbmRleCAyOTE2
MTk3ZWIxY2JlMjI2YTY1YjUwNjRiMzE5OWQ3MjNlOWY1NTY1Li4zMzMyYjE1NTY2Y2I3MzVmY2Ew
ZjVjYWM1NzE5YjkzNTg4ODkxMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9O
YXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRp
b25BY3Rpb25EYXRhLmgKQEAgLTM3LDYgKzM3LDEwIEBAIGNsYXNzIERlY29kZXI7CiBjbGFzcyBF
bmNvZGVyOwogfQogCituYW1lc3BhY2UgV2ViQ29yZSB7Cit0eXBlZGVmIGludCBTYW5kYm94Rmxh
Z3M7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRh
dGEgewpAQCAtNjIsNiArNjYsNyBAQCBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEgewogICAg
IFdlYkNvcmU6OkxvY2tIaXN0b3J5IGxvY2tIaXN0b3J5IHsgV2ViQ29yZTo6TG9ja0hpc3Rvcnk6
Ok5vIH07CiAgICAgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRM
aXN0IHsgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8gfTsKICAgICBXVEY6OlN0cmlu
ZyBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7CisgICAgV2ViQ29yZTo6U2FuZGJveEZs
YWdzIGVmZmVjdGl2ZVNhbmRib3hGbGFncyB7IDAgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50PiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCmluZGV4IGFl
NmYwYjU1ZDk5ZjMyMWNkNzg1NTU2MTA2MzRhNWM4NmRhMDEzMzguLjk1MTE3NmQyZmJmZjZmM2Fi
OTU2YTE2ODZmNGJkODY0OWM1YzFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSU5hdmlnYXRpb24uaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3Jl
OjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QoKSBjb25zdCB7IHJldHVy
biBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3Q7IH0KIAogICAgIFdU
Rjo6U3RyaW5nIGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJu
IG1fbGFzdE5hdmlnYXRpb25BY3Rpb24uY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OyB9
CisgICAgV2ViQ29yZTo6U2FuZGJveEZsYWdzIGVmZmVjdGl2ZVNhbmRib3hGbGFncygpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdE5hdmlnYXRpb25BY3Rpb24uZWZmZWN0aXZlU2FuZGJveEZsYWdzOyB9
CiAKICAgICB2b2lkIHNldExhc3ROYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYktpdDo6TmF2aWdh
dGlvbkFjdGlvbkRhdGEmIG5hdmlnYXRpb25BY3Rpb24pIHsgbV9sYXN0TmF2aWdhdGlvbkFjdGlv
biA9IG5hdmlnYXRpb25BY3Rpb247IH0KICAgICBjb25zdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rp
b25EYXRhJiBsYXN0TmF2aWdhdGlvbkFjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE5hdmln
YXRpb25BY3Rpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tCmluZGV4IDQzNTdhMmFiY2U4ZjJjOTBiYWM0YjIwNTYzZWNlYTBmODBmMWFlNjMuLmE0OTk1
NTU5NWUwNTg4Mzg3OTc2MzlmMjNmNDBhYTMyZjExOGQzYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTE0OSw3ICsxMTQ5LDcgQEAgdm9pZCBV
SURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QoV2ViUGFnZVByb3gKICAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+IG1haW5GcmFtZUlEOwogICAgICAgICBpZiAoYXV0byogbWFpbkZyYW1lID0gZnJh
bWUucGFnZSgpID8gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKSA6IG51bGxwdHIpCiAgICAgICAg
ICAgICBtYWluRnJhbWVJRCA9IG1haW5GcmFtZS0+ZnJhbWVJRCgpOwotICAgICAgICBGcmFtZUlu
Zm9EYXRhIGZyYW1lSW5mbyB7IGZyYW1lLmlzTWFpbkZyYW1lKCksIHsgfSwgdXNlck1lZGlhT3Jp
Z2luLnNlY3VyaXR5T3JpZ2luKCksIGZyYW1lLmZyYW1lSUQoKSwgbWFpbkZyYW1lSUQgfTsKKyAg
ICAgICAgRnJhbWVJbmZvRGF0YSBmcmFtZUluZm8geyBmcmFtZS5pc01haW5GcmFtZSgpLCB7IH0s
IHVzZXJNZWRpYU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCB7IH0sIGZyYW1lLmZyYW1lSUQoKSwg
bWFpbkZyYW1lSUQgfTsKICAgICAgICAgUmV0YWluUHRyPFdLRnJhbWVJbmZvPiBmcmFtZUluZm9X
cmFwcGVyID0gd3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUoZnJhbWVJbmZv
KSwgZnJhbWUucGFnZSgpKSk7CiAKICAgICAgICAgV0tNZWRpYUNhcHR1cmVUeXBlIHR5cGUgPSBX
S01lZGlhQ2FwdHVyZVR5cGVDYW1lcmE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggYjg4YTA3ODQ2ZDc4ZDYwMGRlN2MwMjNhMGJk
MDQwOTZmMDg1N2E2Yy4uZGI5MzI1YzJlYjVhOTdmNmU4MDg5YzBlYWM1ZTUwNmUwMjY3NWUwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cApAQCAtMTQ5LDYgKzE0OSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNhbmNlbCgp
CiAgICAgICAgIHRydWUsIC8vIGlzTWFpbkZyYW1lCiAgICAgICAgIG1fcmVxdWVzdCwKICAgICAg
ICAgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKG1fcmVxdWVzdC51cmwoKSksCisgICAgICAg
IHsgfSwKICAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSwKICAgICAgICAgc3RkOjpudWxs
b3B0LAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCA4MjhmMmJhYzAzOTc4ZDUxMzRlZTc4MGZhMDJiOGNlMWE5ZmYyYTE0Li5mNTAxYjg1YzRmZGZm
ZDIyODgzZWQ4MTU4MTBkZWU3YjU5ZWVlMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTE0MDIsNiArMTQwMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojps
b2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzCiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9uLmxvY2tIaXN0
b3J5KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmlnYXRp
b24ubG9ja0JhY2tGb3J3YXJkTGlzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJlZGly
ZWN0U291cmNlRm9ySGlzdG9yeSA9IG5hdmlnYXRpb24uY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JI
aXN0b3J5KCk7CisgICAgbG9hZFBhcmFtZXRlcnMuZWZmZWN0aXZlU2FuZGJveEZsYWdzID0gbmF2
aWdhdGlvbi5lZmZlY3RpdmVTYW5kYm94RmxhZ3MoKTsKICAgICBsb2FkUGFyYW1ldGVycy5pc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluID0gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjsK
ICAgICBsb2FkUGFyYW1ldGVycy5leGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVy
VG9SZXN1bWUgPSBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWU7
CiAgICAgbWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShwcm9jZXNzLCB1cmws
IG1fcGFnZUxvYWRTdGF0ZS5yZXNvdXJjZURpcmVjdG9yeVVSTCgpLCBsb2FkUGFyYW1ldGVycy5z
YW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKQEAgLTE1ODgsNiArMTU4OSw3IEBAIFJlZlB0cjxBUEk6
Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFNpbXVsYXRlZFJlcXVlc3QoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZpZ2F0aW9u
LT5sb2NrSGlzdG9yeSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tCYWNrRm9yd2FyZExpc3Qg
PSBuYXZpZ2F0aW9uLT5sb2NrQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMu
Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5ID0gbmF2aWdhdGlvbi0+Y2xpZW50UmVkaXJl
Y3RTb3VyY2VGb3JIaXN0b3J5KCk7CisgICAgbG9hZFBhcmFtZXRlcnMuZWZmZWN0aXZlU2FuZGJv
eEZsYWdzID0gbmF2aWdhdGlvbi0+ZWZmZWN0aXZlU2FuZGJveEZsYWdzKCk7CiAgICAgbG9hZFBh
cmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4oKTsKIAogICAgIHNpbXVsYXRlZFJlc3BvbnNlLnNldEV4cGVjdGVkQ29udGVu
dExlbmd0aChkYXRhLnNpemUoKSk7CkBAIC0zNDQxLDcgKzM0NDMsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6Y2xlYXJTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnRPdmVycmlkZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6Ok5hdmln
YXRpb24qIG5hdmlnYXRpb24sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlv
bkFjdGlvbiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGlj
aWVzPiYmIHBvbGljaWVzLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyKQordm9p
ZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGljeUFj
dGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgUmVmPEFQSTo6
TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uLCBQcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkZyYW1lUHJveHkmIGZy
YW1lLCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8sIFJlZlB0cjxBUEk6OldlYnNpdGVQ
b2xpY2llcz4mJiBwb2xpY2llcywgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmIHNlbmRlcikK
IHsKICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywgInJlY2VpdmVkTmF2aWdh
dGlvblBvbGljeURlY2lzaW9uOiBmcmFtZUlEPSVsbHUsIG5hdmlnYXRpb25JRD0lbGx1LCBwb2xp
Y3lBY3Rpb249JXUiLCBmcmFtZS5mcmFtZUlEKCkudG9VSW50NjQoKSwgbmF2aWdhdGlvbiA/IG5h
dmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgKHVuc2lnbmVkKXBvbGljeUFjdGlvbik7CiAK
QEAgLTM0OTQsNyArMzQ5Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yTmF2aWdhdGlv
bigqdGhpcywgKm5hdmlnYXRpb24sIHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkws
IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdURk1vdmUod2Vic2l0ZURhdGFTdG9yZSks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcG9saWN5QWN0aW9uLCBuYXZp
Z2F0aW9uID0gUmVmIHsgKm5hdmlnYXRpb24gfSwgbmF2aWdhdGlvbkFjdGlvbiA9IFdURk1vdmUo
bmF2aWdhdGlvbkFjdGlvbiksIHNvdXJjZVByb2Nlc3MgPSBzb3VyY2VQcm9jZXNzLmNvcHlSZWYo
KSwKKyAgICBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yTmF2aWdhdGlvbigqdGhp
cywgKm5hdmlnYXRpb24sIHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkwsIHByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGZyYW1lSW5mbywgV1RGTW92ZSh3ZWJzaXRlRGF0YVN0
b3JlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwb2xpY3lBY3Rpb24s
IG5hdmlnYXRpb24gPSBSZWYgeyAqbmF2aWdhdGlvbiB9LCBuYXZpZ2F0aW9uQWN0aW9uID0gV1RG
TW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwgc291cmNlUHJvY2VzcyA9IHNvdXJjZVByb2Nlc3MuY29w
eVJlZigpLAogICAgICAgICBwb2xpY2llcyA9IFdURk1vdmUocG9saWNpZXMpLCBzZW5kZXIgPSBX
VEZNb3ZlKHNlbmRlciksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnRdIChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLCBTdXNwZW5kZWRQYWdlUHJveHkqIGRl
c3RpbmF0aW9uU3VzcGVuZGVkUGFnZSwgY29uc3QgU3RyaW5nJiByZWFzb24pIG11dGFibGUgewog
ICAgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBoYXMgYmVlbiBkZXN0cm95ZWQsIHRoZW4gbm8g
bmVlZCB0byBwcm9jZWVkLgogICAgICAgICBpZiAoaXNDbG9zZWQoKSB8fCAhbmF2aWdhdGlvblN0
YXRlKCkuaGFzTmF2aWdhdGlvbihuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSkpIHsKQEAgLTU0
MTYsNyArNTQxOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgUmVmIGxpc3RlbmVy
ID0gZnJhbWUuc2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfSwgZnJhbWUgPSBSZWYgeyBmcmFtZSB9LCBzZW5kZXIgPSBXVEZNb3ZlKHNl
bmRlciksIG5hdmlnYXRpb24sIG5hdmlnYXRpb25BY3Rpb24sIGZyYW1lSW5mbywgdXNlckRhdGFP
YmplY3QgPSBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVj
dCgpKS5nZXQoKV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGlj
aWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3Np
bmdXYXJuaW5nLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc0Fw
cEJvdW5kRG9tYWluKSBtdXRhYmxlIHsKICAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9H
KExvYWRpbmcsICJkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOiBsaXN0ZW5lciBjYWxs
ZWQ6IGZyYW1lSUQ9JWxsdSwgbmF2aWdhdGlvbklEPSVsbHUsIHBvbGljeUFjdGlvbj0ldSwgc2Fm
ZUJyb3dzaW5nV2FybmluZz0lZCwgaXNBcHBCb3VuZERvbWFpbj0lZCIsIGZyYW1lLT5mcmFtZUlE
KCkudG9VSW50NjQoKSwgbmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDog
MCwgKHVuc2lnbmVkKXBvbGljeUFjdGlvbiwgISFzYWZlQnJvd3NpbmdXYXJuaW5nLCAhIWlzQXBw
Qm91bmREb21haW4pOwogCi0gICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywg
cHJvdGVjdGVkVGhpcywgZnJhbWUsIHNlbmRlciA9IFdURk1vdmUoc2VuZGVyKSwgbmF2aWdhdGlv
biwgbmF2aWdhdGlvbkFjdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQsIHBvbGljaWVzID0gUmVmUHRyIHsgcG9saWNpZXMgfV0gKFBv
bGljeUFjdGlvbiBwb2xpY3lBY3Rpb24pIG11dGFibGUgeworICAgICAgICBhdXRvIGNvbXBsZXRp
b25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMsIGZyYW1lLCBmcmFtZUluZm8sIHNlbmRl
ciA9IFdURk1vdmUoc2VuZGVyKSwgbmF2aWdhdGlvbiwgbmF2aWdhdGlvbkFjdGlvbiA9IFdURk1v
dmUobmF2aWdhdGlvbkFjdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHBvbGlj
aWVzID0gUmVmUHRyIHsgcG9saWNpZXMgfV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24pIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKCFwb2xpY2llcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byog
ZGVmYXVsdFBvbGljaWVzID0gbV9jb25maWd1cmF0aW9uLT5kZWZhdWx0V2Vic2l0ZVBvbGljaWVz
KCkpCkBAIC01NDI1LDcgKzU0MjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgICAg
ICAgICAgICAgIGlmIChwb2xpY2llcykKICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbi0+
c2V0RWZmZWN0aXZlQ29udGVudE1vZGUoZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGlu
Z1BvbGljaWVzKCpwb2xpY2llcywgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKSkpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24o
cG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24p
LCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFtZSwgV1RGTW92ZShwb2xpY2llcyks
IFdURk1vdmUoc2VuZGVyKSk7CisgICAgICAgICAgICByZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUobmF2aWdhdGlv
bkFjdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGZyYW1lLCBmcmFtZUluZm8s
IFdURk1vdmUocG9saWNpZXMpLCBXVEZNb3ZlKHNlbmRlcikpOwogICAgICAgICB9OwogCiAjaWYg
RU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBmM2RkMjNjYWE0YTNlMWRmZDljNWE4MTkwZTNmNjkxMzVhYmE0ZGZlLi45ZDQx
N2I1NmM0ODJiMjA4NWU2ZjQ0OTVjZjliMDIxM2ZlYmNkY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTIyMiw3ICsxMjIyLDcgQEAgcHVibGljOgogICAgIGNs
YXNzIFBvbGljeURlY2lzaW9uU2VuZGVyOwogICAgIGVudW0gY2xhc3MgV2lsbENvbnRpbnVlTG9h
ZEluTmV3UHJvY2VzcyA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgdm9pZCByZWNlaXZlZFBvbGlj
eURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmUHRy
PEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmLCBzdGQ6OnZhcmlhbnQ8UmVmPEFQSTo6TmF2aWdhdGlv
blJlc3BvbnNlPiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4+JiYsIFJlZjxQb2xpY3lEZWNp
c2lvblNlbmRlcj4mJiwgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+ID0g
eyB9LCBXaWxsQ29udGludWVMb2FkSW5OZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3
UHJvY2Vzczo6Tm8pOwotICAgIHZvaWQgcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24o
V2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qLCBSZWY8QVBJOjpOYXZpZ2F0
aW9uQWN0aW9uPiYmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5
JiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5k
ZXI+JiYpOworICAgIHZvaWQgcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oV2ViQ29y
ZTo6UG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qLCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0
aW9uPiYmLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5JiwgY29u
c3QgRnJhbWVJbmZvRGF0YSYsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgUmVmPFBv
bGljeURlY2lzaW9uU2VuZGVyPiYmKTsKIAogICAgIHZvaWQgYmFja0ZvcndhcmRSZW1vdmVkSXRl
bShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAzNmRlNTg4MDJjZTZlYzk0
YmY0ZmNjOGYyY2U0MWZmOWJlNzM2ZWNmLi44ZDI5N2VlNDlmZDIxMTlmYjgwOWVkOWYyMTI3ZDY0
MDY0ZGI1ZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CkBAIC0xODE0LDkgKzE4MTQsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZW1vdmVQcm9jZXNz
RnJvbU9yaWdpbkNhY2hlU2V0KFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKICAgICAgICAgbV9z
d2FwcGVkUHJvY2Vzc2VzUGVyUmVnaXN0cmFibGVEb21haW4ucmVtb3ZlKHJlZ2lzdHJhYmxlRG9t
YWluKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb24oV2Vi
UGFnZVByb3h5JiBwYWdlLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwg
UmVmPFdlYnNpdGVEYXRhU3RvcmU+JiYgZGF0YVN0b3JlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmlu
ZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zv
ck5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mIG5h
dmlnYXRpb24sIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJM
JiBzb3VyY2VVUkwsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBSZWY8V2Vic2l0
ZURhdGFTdG9yZT4mJiBkYXRhU3RvcmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgcHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChwYWdl
LCBuYXZpZ2F0aW9uLCBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXVEZNb3ZlKGRhdGFTdG9yZSksIFt0aGlzLCBwYWdlID0g
UmVmIHsgcGFnZSB9LCBuYXZpZ2F0aW9uID0gUmVmIHsgbmF2aWdhdGlvbiB9LCBzb3VyY2VQcm9j
ZXNzID0gc291cmNlUHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBTdXNwZW5kZWRQYWdlUHJveHkq
IHN1c3BlbmRlZFBhZ2UsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBtdXRhYmxlIHsKKyAgICBwcm9j
ZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKHBhZ2UsIG5hdmlnYXRpb24sIHNvdXJjZVByb2Nlc3Mu
Y29weVJlZigpLCBzb3VyY2VVUkwsIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGZyYW1l
SW5mbywgV1RGTW92ZShkYXRhU3RvcmUpLCBbdGhpcywgcGFnZSA9IFJlZiB7IHBhZ2UgfSwgbmF2
aWdhdGlvbiA9IFJlZiB7IG5hdmlnYXRpb24gfSwgc291cmNlUHJvY2VzcyA9IHNvdXJjZVByb2Nl
c3MuY29weVJlZigpLCBzb3VyY2VVUkwsIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgU3VzcGVuZGVkUGFnZVByb3h5KiBzdXNwZW5kZWRQYWdlLCBj
b25zdCBTdHJpbmcmIHJlYXNvbikgbXV0YWJsZSB7CiAgICAgICAgIC8vIFdlIGFyZSBwcm9jZXNz
LXN3YXBwaW5nIHNvIGF1dG9tYXRpYyBwcm9jZXNzIHByZXdhcm1pbmcgd291bGQgYmUgYmVuZWZp
Y2lhbCBpZiB0aGUgY2xpZW50IGhhcyBub3QgZXhwbGljaXRseSBlbmFibGVkIC8gZGlzYWJsZWQg
aXQuCiAgICAgICAgIGJvb2wgZG9pbmdBbkF1dG9tYXRpY1Byb2Nlc3NTd2FwID0gcHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyAm
JiBwcm9jZXNzLnB0cigpICE9IHNvdXJjZVByb2Nlc3MucHRyKCk7CiAgICAgICAgIGlmIChkb2lu
Z0FuQXV0b21hdGljUHJvY2Vzc1N3YXAgJiYgIWNvbmZpZ3VyYXRpb24oKS53YXNBdXRvbWF0aWNQ
cm9jZXNzV2FybWluZ1NldEJ5Q2xpZW50KCkgJiYgIWNvbmZpZ3VyYXRpb24oKS5jbGllbnRXb3Vs
ZEJlbmVmaXRGcm9tQXV0b21hdGljUHJvY2Vzc1ByZXdhcm1pbmcoKSkgewpAQCAtMTgzOSw3ICsx
ODM5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb24oV2ViUGFn
ZVByb3h5JiBwYWdlLCBjb25zdCBBUEk6Ok5hdmlnYXQKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChXZWJQYWdlUHJveHkmIHBh
Z2UsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwmIHBhZ2VTb3VyY2VVUkwsIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmPFdlYnNp
dGVEYXRhU3RvcmU+JiYgZGF0YVN0b3JlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRp
b25JbnRlcm5hbChXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYgbmF2
aWdhdGlvbiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwm
IHBhZ2VTb3VyY2VVUkwsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBSZWY8V2Vi
c2l0ZURhdGFTdG9yZT4mJiBkYXRhU3RvcmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byYgdGFyZ2V0VVJMID0gbmF2aWdhdGlvbi5j
dXJyZW50UmVxdWVzdCgpLnVybCgpOwogICAgIGF1dG8gdGFyZ2V0UmVnaXN0cmFibGVEb21haW4g
PSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IHRhcmdldFVSTCB9OwpAQCAtMTg5Nyw2ICsx
ODk3LDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJu
YWwoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBBUEk6CiAgICAgICAgIH0KICAgICB9CiAKKyAg
ICAvLyBJZiBpdCBpcyB0aGUgZmlyc3QgbmF2aWdhdGlvbiBpbiBhIERPTSBwb3B1cCBhbmQgdGhl
cmUgaXMgbm8gb3BlbmVyLCB0aGVuIGZvcmNlIGEgcHJvY2VzcyBzd2FwIG5vIG1hdHRlciB3aGF0
IHNpbmNlCisgICAgLy8gcG9wdXAgd2luZG93cyBhcmUgb3JpZ2luYWxseSBjcmVhdGVkIGluIHRo
ZWlyIG9wZW5lcidzIHByb2Nlc3MuCisgICAgaWYgKHBhZ2Uub3BlbmVkQnlET00oKSAmJiAhbmF2
aWdhdGlvbi5vcGVuZWRCeURPTVdpdGhPcGVuZXIoKSAmJiAhcGFnZS5oYXNDb21taXR0ZWRBbnlQ
cm92aXNpb25hbExvYWRzKCkgJiYgZnJhbWVJbmZvLmZyYW1lTmFtZS5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjcmVhdGVOZXdQcm9jZXNzKCksIG51bGxwdHIs
ICJQcm9jZXNzIHN3YXAgYmVjYXVzZSB0aGlzIGlzIGEgZmlyc3QgbmF2aWdhdGlvbiBpbiBhIERP
TSBwb3B1cCB3aXRob3V0IG9wZW5lciJfcyk7CisKICAgICBpZiAobmF2aWdhdGlvbi50cmVhdEFz
U2FtZU9yaWdpbk5hdmlnYXRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoc291cmNlUHJvY2VzcyksIG51bGxwdHIsICJUaGUgdHJlYXRBc1NhbWVPcmlnaW5O
YXZpZ2F0aW9uIGZsYWcgaXMgc2V0Il9zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKaW5kZXggNjgyOGQzNzNjOGMzOWRkNGU1MjZkNGU2ZWU4NzY1MzBjYmNjZjAy
MC4uZTQ4N2Q3ODNhMmExZjRiZDczYmEzMTU4NzA2MzM0MmRiZWJhMzcyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00NDYsNyArNDQ2LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaGFzRm9yZWdyb3VuZFdlYlByb2Nlc3NlcygpIGNvbnN0IHsgcmV0dXJuIG1f
Zm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyLnZhbHVlKCk7IH0KICAgICBib29sIGhhc0JhY2tn
cm91bmRXZWJQcm9jZXNzZXMoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmRXZWJQcm9jZXNz
Q291bnRlci52YWx1ZSgpOyB9CiAKLSAgICB2b2lkIHByb2Nlc3NGb3JOYXZpZ2F0aW9uKFdlYlBh
Z2VQcm94eSYsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
c291cmNlUHJvY2VzcywgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQsIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmlu
ZyYpPiYmKTsKKyAgICB2b2lkIHByb2Nlc3NGb3JOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsIGNv
bnN0IEFQSTo6TmF2aWdhdGlvbiYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgc291cmNlUHJvY2Vz
cywgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGNv
bnN0IEZyYW1lSW5mb0RhdGEmLCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBj
b25zdCBTdHJpbmcmKT4mJik7CiAKICAgICB2b2lkIGRpZFJlYWNoR29vZFRpbWVUb1ByZXdhcm0o
KTsKIApAQCAtNTIzLDcgKzUyMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYsIFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmKTsKICAgICB2b2lkIHBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKTsKIAot
ICAgIHZvaWQgcHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChXZWJQYWdlUHJveHkmLCBjb25z
dCBBUEk6Ok5hdmlnYXRpb24mLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHNvdXJjZVByb2Nlc3Ms
IGNvbnN0IFVSTCYgc291cmNlVVJMLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWY8
V2Vic2l0ZURhdGFTdG9yZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4mJik7CisgICAg
dm9pZCBwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKFdlYlBhZ2VQcm94eSYsIGNvbnN0IEFQ
STo6TmF2aWdhdGlvbiYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgc291cmNlUHJvY2VzcywgY29u
c3QgVVJMJiBzb3VyY2VVUkwsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGNvbnN0IEZy
YW1lSW5mb0RhdGEmLCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBT
dHJpbmcmKT4mJik7CiAKICAgICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiB0cnlUYWtlUHJld2Fy
bWVkUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDk5YTUxYWI1ZmVhYWU0NzlhMDNhM2Q1ODFjODg5NDcwYjAwZWU5YzIuLjhl
YTllODI1ODg5MGMxMGJlNDE4ZTk4MTFlYTM5NzdhNjBhNmM3ODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtOTY4LDYgKzk2OCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZp
Z2F0CiAgICAgICAgIG5hdmlnYXRpb25BY3Rpb24uaW5pdGlhdGVkQnlNYWluRnJhbWUoKSA9PSBJ
bml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzLAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgeyByZXF1
ZXN0ZXIudXJsIH0sCiAgICAgICAgIHJlcXVlc3Rlci5zZWN1cml0eU9yaWdpbi0+ZGF0YSgpLAor
ICAgICAgICB7IH0sCiAgICAgICAgIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUlEKSwKICAgICAg
ICAgV1RGTW92ZShwYXJlbnRGcmFtZUlEKSwKICAgICB9OwpAQCAtMTAxMiw2ICsxMDEzLDcgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAgICAgICAgZG9jdW1lbnRMb2FkZXIgPSBzdGF0aWNf
Y2FzdDxXZWJEb2N1bWVudExvYWRlcio+KGNvcmVGcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKSk7CiAKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5jbGllbnRSZWRpcmVjdFNvdXJjZUZv
ckhpc3RvcnkgPSBkb2N1bWVudExvYWRlci0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5
KCk7CisgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuZWZmZWN0aXZlU2FuZGJveEZsYWdzID0gY29y
ZUZyYW1lLT5sb2FkZXIoKS5lZmZlY3RpdmVTYW5kYm94RmxhZ3MoKTsKIAogICAgIC8vIE5vdGlm
eSB0aGUgVUlQcm9jZXNzLgogICAgIFJlZiBwcm90ZWN0b3IgeyAqY29yZUZyYW1lIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggZDkxOWU0
NDhmNzU1Zjk4YjZkMGU5ZWFiNzRmNTNmZjI0OGJiYmYzMi4uOWJkNGNkMmQwY2IxMDNiNDVhYThl
NmMxZDQyN2MwYjE3YmY1ZWQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmNwcApAQCAtMTkzLDYgKzE5Myw3IEBAIEZyYW1lSW5mb0RhdGEgV2ViRnJh
bWU6OmluZm8oKSBjb25zdAogICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIHRoZSBm
dWxsIHJlcXVlc3QuCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCh1cmwoKSksCiAgICAgICAgIFNl
Y3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKG1fY29yZUZyYW1lLmdldCgpKSwKKyAgICAgICAg
bV9jb3JlRnJhbWUgPyBtX2NvcmVGcmFtZS0+dHJlZSgpLm5hbWUoKS5zdHJpbmcoKSA6IFN0cmlu
ZygpLAogICAgICAgICBtX2ZyYW1lSUQsCiAgICAgICAgIHBhcmVudCA/IHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiB7IHBhcmVudC0+ZnJhbWVJRCgpIH0gOiBzdGQ6Om51
bGxvcHQsCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggYzE4NjZhMjViYjlkNDc2NzExMDhjNDA5YThmMmY0YjMzYWFhMzdmNy4uMjZi
ZDM0YTgyZjZjNmM3OWMzZmY2M2E2YmUwNTQwMWYxYWFmYmFhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3MzMsNiArMTczMyw5IEBAIHZv
aWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QoTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycykK
ICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldENsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShs
b2FkUGFyYW1ldGVycy5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpOwogICAgIGZyYW1l
TG9hZFJlcXVlc3Quc2V0SXNSZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklucHV0KCk7CiAKKyAgICBp
ZiAobG9hZFBhcmFtZXRlcnMuZWZmZWN0aXZlU2FuZGJveEZsYWdzKQorICAgICAgICBjb3JlUGFn
ZSgpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5mb3JjZVNhbmRib3hGbGFncyhsb2FkUGFyYW1ldGVy
cy5lZmZlY3RpdmVTYW5kYm94RmxhZ3MpOworCiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJp
ZGdlKCkubG9hZFJlcXVlc3QoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7CiAKICAgICBBU1NF
UlQoIW1fcGVuZGluZ05hdmlnYXRpb25JRCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTI5NDg1OTg3MTU1OWE4NWZkNTY3ZmQ1ZjJiOTQ1N2Vj
ZGIzY2Y2My4uMTE3MmZlNWY3NmIzNjdhNzZkZjY5NTFjMGU3YjNhNjE2NjkyMTdiZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDIxLTEwLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRpYWwgbmF2aWdhdGlvbiBvZiBh
IHBvcHVwIGlmIGl0IGhhcyBubyBvcGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTk5MAorICAgICAgICA8cmRhcjovLzg0NDI1NTA0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgZXhp
c3RpbmcgQVBJIHRlc3RzIHRvIHJlZmxlY3QgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bToKKwogMjAyMS0xMC0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBN
ZWRpYVN0cmVhbVRyYWNrLWJhc2VkIGJhY2tlbmQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0KaW5kZXggNGYyZTI2MmMyZDQwNGQ1YTM4MjIwZjU5N2I5OTU5MjkzNTI3MWI5
NS4uMmE4NzczNjhmNWU5MzcyZWM1YzcwYTU5NTgzN2ViMzAyOTEwYTY5ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0xMjgzLDcgKzEyODMsOCBAQCBURVNUKFByb2Nlc3NT
d2FwLCBDcm9zc09yaWdpbkJ1dFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogICAgIGF1dG8g
cGlkMiA9IFtjcmVhdGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVD
VF9UUlVFKCEhcGlkMik7CiAKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisgICAgLy8gU2lu
Y2UgdGhlcmUgaXMgbm8gb3BlbmVyLCB3ZSBwcm9jZXNzLXN3YXAsIGV2ZW4gdGhvdWdoIHRoZSBu
YXZpZ2F0aW9uIGlzIHNhbWUtc2l0ZS4KKyAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CiB9CiAK
IFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5XaXRoT3BlbmVyKQpAQCAtMTM2
Myw3ICsxMzY0LDggQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVu
ZXIpCiAgICAgYXV0byBwaWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CiAgICAgRVhQRUNUX1RSVUUoISFwaWQyKTsKIAotICAgIEVYUEVDVF9FUShwaWQxLCBwaWQy
KTsKKyAgICAvLyBTaW5jZSB0aGVyZSBpcyBubyBvcGVuZXIsIHdlIHByb2Nlc3Mtc3dhcCwgZXZl
biB0aG91Z2ggdGhlIG5hdmlnYXRpb24gaXMgc2FtZS1zaXRlLgorICAgIEVYUEVDVF9ORShwaWQx
LCBwaWQyKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXRXaXRo
T3BlbmVyKQpAQCAtMTUyMyw3ICsxNTI1LDggQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVC
bGFua1RhcmdldE5vT3BlbmVyKQogICAgIGF1dG8gcGlkMiA9IFtjcmVhdGVkV2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlkMik7CiAKLSAgICBFWFBF
Q1RfRVEocGlkMSwgcGlkMik7CisgICAgLy8gU2luY2UgdGhlcmUgaXMgbm8gb3BlbmVyLCB3ZSBw
cm9jZXNzLXN3YXAsIGV2ZW4gdGhvdWdoIHRoZSBuYXZpZ2F0aW9uIGlzIHNhbWUtc2l0ZS4KKyAg
ICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIFNlcnZlclJl
ZGlyZWN0RnJvbU5ld1dlYlZpZXcpCkBAIC02MjY5LDcgKzYyNzIsOSBAQCBURVNUKFByb2Nlc3NT
d2FwLCBHb0JhY2tUb1N1c3BlbmRlZFBhZ2VXaXRoTWFpbkZyYW1lSURUaGF0SXNOb3RPbmUpCiAg
ICAgLy8gTmV3IFdLV2ViVmlldyBoYXMgbm93IG5hdmlnYXRlZCB0byB3ZWJraXQub3JnLgogICAg
IEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiwgW1tj
cmVhdGVkV2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CiAgICAgYXV0byBwaWQyID0gW2Ny
ZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Ci0gICAgRVhQRUNUX0VRKHBpZDEs
IHBpZDIpOworCisgICAgLy8gV2UgcHJvY2Vzcy1zd2FwIHNpbmNlIHRoZXJlIGlzIG5vIG9wZW5l
ciByZWxhdGlvbnNoaXAuCisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOwogCiAgICAgLy8gQ2xp
Y2sgbGluayBpbiBuZXcgV0tXZWJWaWV3IHNvIHRoYXQgaXQgbmF2aWdhdGVzIGNyb3NzLXNpdGUg
dG8gYXBwbGUuY29tLgogICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ0
ZXN0TGluay5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwpAQCAtNjI4OCw3ICs2Mjkz
LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29CYWNrVG9TdXNwZW5kZWRQYWdlV2l0aE1haW5GcmFt
ZUlEVGhhdElzTm90T25lKQogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJr
aXQub3JnL21haW4yLmh0bWwiLCBbW2NyZWF0ZWRXZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmdd
KTsKICAgICBhdXRvIHBpZDQgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkNCk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dh
cHBlZCB0byB0aGUgb3JpZ2luYWwgInN1c3BlbmRlZCIgcHJvY2Vzcy4KKyAgICBFWFBFQ1RfRVEo
cGlkMiwgcGlkNCk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dhcHBlZCB0byB0aGUgb3JpZ2lu
YWwgInN1c3BlbmRlZCIgcHJvY2Vzcy4KIAogICAgIC8vIERvIGEgZnJhZ21lbnQgbmF2aWdhdGlv
biBpbiB0aGUgb3JpZ2luYWwgV0tXZWJWaWV3IGFuZCBtYWtlIHN1cmUgdGhpcyBkb2VzIG5vdCBj
cmFzaC4KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sI3Rlc3RMaW5r
Il1dOwpAQCAtNjI5OCw3ICs2MzAzLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29CYWNrVG9TdXNw
ZW5kZWRQYWdlV2l0aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQogCiAgICAgRVhQRUNUX1dLX1NU
UkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwjdGVzdExpbmsiLCBbW3dlYlZp
ZXcxIFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKICAgICBhdXRvIHBpZDUgPSBbY3JlYXRlZFdlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkNSk7Cisg
ICAgRVhQRUNUX0VRKHBpZDIsIHBpZDUpOwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vb3Blbi1hbmQtY2xvc2UtYnktRE9NLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRtbAppbmRl
eCA5NTdiNTgzY2RmN2E1NmQ4NTJiYjY5YmZiMmQ3ZDIxYjk1N2Q2NDBlLi4zNTQ4NWQyMzVkMjAx
MTMyNDZmZjI1ODljNmUwYzVmZGM3ODhlOTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRtbApAQCAtNTMsNyArNTMsNyBAQCBUbyBydW4gdGhl
IHRlc3QgbWFudWFsbHkgY2xpY2sgdGhlIGxpbmsgYmVsb3cuCiA8YnIvPgogPGRpdiBpZD0iY29u
c29sZSIgLz4KIDxici8+Ci08YSBocmVmPSJyZXNvdXJjZXMvbWlkZGxlLmh0bWwiIGlkPSJhbmNo
b3JMaW5rIiB0YXJnZXQ9Il9ibGFuayI+T3BlbiBuZXcgd2luZG93IHRoYXQgd2lsbCBjbG9zZSBp
dHNlbGY8L2E+Cis8YSBocmVmPSJyZXNvdXJjZXMvbWlkZGxlLmh0bWwiIGlkPSJhbmNob3JMaW5r
IiB0YXJnZXQ9Im1pZGRsZSI+T3BlbiBuZXcgd2luZG93IHRoYXQgd2lsbCBjbG9zZSBpdHNlbGY8
L2E+CiA8YnIvPjxici8+CiAKIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Jlc291cmNlcy9taWRkbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNl
cy9taWRkbGUuaHRtbAppbmRleCBjNjM2ZGM4YTA4MGM5YTY4ODRkMjkzYjBkZjRkZjE1OWY2Y2M3
MDYzLi5hZTc3NTA3NTdkY2I3MDZmZmQwODMxMTgzNjUxYzIxM2FhZDQxMjg5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbWlkZGxlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL21pZGRsZS5odG1sCkBAIC0yMiw0ICsyMiw0IEBAIElm
IHJ1bm5pbmcgdGhpcyB0ZXN0IG1hbnVhbGx5LCBjbGljayB0aGUgc2VuZCBidXR0b24gYmVsb3cg
aWYgeW91IGFyZSBub3QgcmVkaXJlCiAgICAgPGlucHV0IG5hbWU9InNlbmQiIHZhbHVlPSJTZW5k
IiBpZD0iU2VuZEJ1dHRvbiIgdHlwZT0ic3VibWl0Ij4KIDwvZm9ybT4KIDwvYm9keT4KLTwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LW9wZW5lci1wb2xpY3kvY29vcC1jb2VwLXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5L2Nvb3AtY29lcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCAxNzZlMzE0NWE3Nzg0YmJmZWI5M2Y2YzlkOGRmZjJhZWY5ZDg0ZjQ3Li4zNzMzMjQ1Y2U3MDlh
OGQwY2JhZjliZjhmNzNkODFlYTg1MjI2M2I2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xp
Y3kvY29vcC1jb2VwLXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVy
LXBvbGljeS9jb29wLWNvZXAtc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw0
IEBACiBDT05TT0xFIE1FU1NBR0U6IE5hdmlnYXRpb24gd2FzIGJsb2NrZWQgYnkgQ3Jvc3MtT3Jp
Z2luLU9wZW5lci1Qb2xpY3kKLUNPTlNPTEUgTUVTU0FHRTogTmF2aWdhdGlvbiB3YXMgYmxvY2tl
ZCBieSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeQogCiBQQVNTIDxpZnJhbWUgc2FuZGJveD0i
YWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4iPiBTYW5kYm94ZWQg
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgcG9wdXAgc2hvdWxkIHJlc3VsdCBpbiBhIG5ldHdv
cmsgZXJyb3IKIFBBU1MgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1wb3B1cHMgYWxsb3ctc2NyaXB0
cyI+IFNhbmRib3hlZCBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBwb3B1cCBzaG91bGQgcmVz
dWx0IGluIGEgbmV0d29yayBlcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nv
b3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1z
YW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxNzZlMzE0NWE3Nzg0YmJmZWI5M2Y2Yzlk
OGRmZjJhZWY5ZDg0ZjQ3Li4zNzMzMjQ1Y2U3MDlhOGQwY2JhZjliZjhmNzNkODFlYTg1MjI2M2I2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMSw1ICsxLDQgQEAKIENPTlNPTEUgTUVTU0FHRTogTmF2aWdhdGlvbiB3YXMg
YmxvY2tlZCBieSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeQotQ09OU09MRSBNRVNTQUdFOiBO
YXZpZ2F0aW9uIHdhcyBibG9ja2VkIGJ5IENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5CiAKIFBB
U1MgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1wb3B1cHMgYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1l
LW9yaWdpbiI+IFNhbmRib3hlZCBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBwb3B1cCBzaG91
bGQgcmVzdWx0IGluIGEgbmV0d29yayBlcnJvcgogUEFTUyA8aWZyYW1lIHNhbmRib3g9ImFsbG93
LXBvcHVwcyBhbGxvdy1zY3JpcHRzIj4gU2FuZGJveGVkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9s
aWN5IHBvcHVwIHNob3VsZCByZXN1bHQgaW4gYSBuZXR3b3JrIGVycm9yCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441912</attachid>
            <date>2021-10-20 11:55:39 -0700</date>
            <delta_ts>2021-10-20 15:37:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231990-20211020115538.patch</filename>
            <type>text/plain</type>
            <size>34224</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDViZDVmNWFkMmQwZmQxMzk3
M2E2MjE4NTYzY2U4ODExZTRiNTRmODMuLjI2NGQ3NTVmYjRiOGNmOWQ0MmVhNjNhOTYzNjBkMGNi
MDc5MzQyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMTAtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mt
c3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5l
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkw
CisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRp
YWwgbmF2aWdhdGlvbiBvZiBhIHBvcHVwIGlmIGl0IGhhcyBubyBvcGVuZXIsIGV2ZW4gaWYgdGhl
IG5hdmlnYXRpb24gaXMKKyAgICAgICAgc2FtZS1zaXRlLiBTd2FwcGluZyBwcm9jZXNzIGlzIG5v
dCBXZWItb2JzZXJ2YWJsZSBoZXJlIHNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciByZWxhdGlvbnNo
aXAuIEhvd2V2ZXIsIHN3YXBwaW5nCisgICAgICAgIHByb2Nlc3NlcyBoYXMgYmVuZWZpdHMgaGVy
ZSBzaW5jZSB3ZSBkb24ndCB3YW50IHRvIGVuZCB1cCB3aXRoIHRvbyBtYW55IHRhYnMgc2hhcmlu
ZyB0aGUgc2FtZSBwcm9jZXNzLgorCisgICAgICAgIFRoaXMgaW1wYWN0cyBHb29nbGUgRHJpdmUg
d2hlcmUgZG91YmxlLWNsaWNraW5nIGEgZG9jdW1lbnQgd2lsbCBvcGVuIEdvb2dsZSBEb2NzIGlu
IGEgbmV3IHRhYiBhbmQgaW4gdGhlIHNhbWUKKyAgICAgICAgV2ViUHJvY2VzcyBhcyBHb29nbGUg
RHJpdmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVkIGV4aXN0aW5nIEFQSSB0ZXN0
cyBhbmQgdGhpcyBpcyBub3QgV2ViLW9ic2VydmFibGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJv
Y2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbCk6CisKIDIwMjEtMTAtMjAgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gRW5zdXJlIHRoZSBDQSB0cmFu
c2FjdGlvbiBoYXMgYmVlbiBzeW5jaHJvbm91c2x5IGNvbW1pdHRlZCBiZWZvcmUgc25hcHNob3R0
aW5nIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCmluZGV4IDg1MTZmNjIw
OTIzNTIxOTI1OTlkM2UyZmZiMDQzZmI2NTEzZDg4MzQuLmVkNmM3MGNhYTQ0MWM5OTU4MmI0YWIy
YjMxZTc0MDQyYmVlZDMyYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1l
SW5mb0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3Bw
CkBAIC0zNSw2ICszNSw3IEBAIHZvaWQgRnJhbWVJbmZvRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlzTWFpbkZyYW1lOwogICAgIGVuY29k
ZXIgPDwgcmVxdWVzdDsKICAgICBlbmNvZGVyIDw8IHNlY3VyaXR5T3JpZ2luOworICAgIGVuY29k
ZXIgPDwgZnJhbWVOYW1lOwogICAgIGVuY29kZXIgPDwgZnJhbWVJRDsKICAgICBlbmNvZGVyIDw8
IHBhcmVudEZyYW1lSUQ7CiB9CkBAIC01Niw2ICs1NywxMSBAQCBzdGQ6Om9wdGlvbmFsPEZyYW1l
SW5mb0RhdGE+IEZyYW1lSW5mb0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAg
ICAgaWYgKCFzZWN1cml0eU9yaWdpbikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAor
ICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBmcmFtZU5hbWU7CisgICAgZGVjb2RlciA+PiBmcmFt
ZU5hbWU7CisgICAgaWYgKCFmcmFtZU5hbWUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPj4gZnJhbWVJRDsKICAgICBkZWNvZGVyID4+IGZyYW1lSUQ7CiAgICAgaWYgKCFmcmFtZUlE
KQpAQCAtNzAsNiArNzYsNyBAQCBzdGQ6Om9wdGlvbmFsPEZyYW1lSW5mb0RhdGE+IEZyYW1lSW5m
b0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgICAgIFdURk1vdmUoKmlz
TWFpbkZyYW1lKSwKICAgICAgICAgV1RGTW92ZSgqcmVxdWVzdCksCiAgICAgICAgIFdURk1vdmUo
KnNlY3VyaXR5T3JpZ2luKSwKKyAgICAgICAgV1RGTW92ZSgqZnJhbWVOYW1lKSwKICAgICAgICAg
V1RGTW92ZSgqZnJhbWVJRCksCiAgICAgICAgIFdURk1vdmUoKnBhcmVudEZyYW1lSUQpCiAgICAg
fX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKaW5kZXggZjQ5ZjNhMWRlNDEzMDIz
MWVhMTE0NmNmMjI5NThlOTg3MDg5MmE0Yi4uMGYwYmU1NDlmMTJhOGQ5NjVkNTYzY2VjM2FmYzk4
NDkwM2IyZjFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaApAQCAtNDMsNiAr
NDMsNyBAQCBzdHJ1Y3QgRnJhbWVJbmZvRGF0YSB7CiAgICAgYm9vbCBpc01haW5GcmFtZSB7IGZh
bHNlIH07CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luOworICAgIFN0cmluZyBmcmFtZU5h
bWU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7
CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IHBhcmVudEZyYW1l
SUQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IGFkMTIy
MGM4NGY1YzExYzk5OWE5YWM0ZmYxY2M1ZjEyZDUzMzFiZWUuLmUxMjZmMzM0ZTQ5YmExOTZkNTQ2
MDk4MzU1MmUwOTBhOGVmYmIzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xv
YWRQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVy
cy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgdm9pZCBMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGxvY2tIaXN0b3J5OwogICAg
IGVuY29kZXIgPDwgbG9ja0JhY2tGb3J3YXJkTGlzdDsKICAgICBlbmNvZGVyIDw8IGNsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeTsKKyAgICBlbmNvZGVyIDw8IGVmZmVjdGl2ZVNhbmRib3hG
bGFnczsKICAgICBlbmNvZGVyIDw8IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAg
ZW5jb2RlciA8PCBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWU7
CiAgICAgZW5jb2RlciA8PCBpc1NlcnZpY2VXb3JrZXJMb2FkOwpAQCAtMTM2LDYgKzEzNywxMiBA
QCBib29sIExvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBMb2Fk
UGFyYW1ldGVycyYgZGF0YSkKICAgICBpZiAoIWNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9y
eSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGRhdGEuY2xpZW50UmVkaXJlY3RTb3VyY2VG
b3JIaXN0b3J5ID0gV1RGTW92ZSgqY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KTsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2FuZGJveEZsYWdzPiBlZmZlY3RpdmVTYW5kYm94
RmxhZ3M7CisgICAgZGVjb2RlciA+PiBlZmZlY3RpdmVTYW5kYm94RmxhZ3M7CisgICAgaWYgKCFl
ZmZlY3RpdmVTYW5kYm94RmxhZ3MpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBkYXRhLmVm
ZmVjdGl2ZVNhbmRib3hGbGFncyA9ICplZmZlY3RpdmVTYW5kYm94RmxhZ3M7CiAgICAgCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9M
b2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApp
bmRleCA5MjBlMTRkZTkwYjhiZjI2NjMzZDkxNzZlMGJmOWNlNWVkZjRjYjYwLi42NDJkNTk5YTg0
MTEyMDcyNjM0ZjliMDM5OTUyZmY1MTRhMDI1ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQ
YXJhbWV0ZXJzLmgKQEAgLTQzLDYgKzQzLDEwIEBAIGNsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNv
ZGVyOwogfQogCituYW1lc3BhY2UgV2ViQ29yZSB7Cit0eXBlZGVmIGludCBTYW5kYm94RmxhZ3M7
Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgTG9hZFBhcmFtZXRlcnMgewpAQCAt
NzQsNiArNzgsNyBAQCBzdHJ1Y3QgTG9hZFBhcmFtZXRlcnMgewogICAgIFdlYkNvcmU6OkxvY2tC
YWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCB7IFdlYkNvcmU6OkxvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vIH07CiAgICAgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0
b3J5VmlzaWJpbGl0eSBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgeyBXZWJDb3JlOjpTdWJzdGl0
dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpWaXNpYmxlIH07CiAgICAgU3RyaW5n
IGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsKKyAgICBXZWJDb3JlOjpTYW5kYm94Rmxh
Z3MgZWZmZWN0aXZlU2FuZGJveEZsYWdzIHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8TmF2aWdh
dGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAg
c3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllcj4gZXhpc3RpbmdOZXR3
b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lOwogICAgIGJvb2wgaXNTZXJ2aWNlV29y
a2VyTG9hZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZp
Z2F0aW9uQWN0aW9uRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0
aW9uRGF0YS5jcHAKaW5kZXggZmEwY2EzNzRiZTViZGE4NDUwNDRkMzNiY2ExZTNmM2RkZDQyYmQy
Yy4uMmUwMzdkN2YxMDYwOTA4MzI2NmM5M2FjN2M5NzY3YzcxNzVjYjI0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcApAQCAtNTQsNiArNTQsNyBA
QCB2b2lkIE5hdmlnYXRpb25BY3Rpb25EYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIGVuY29kZXIgPDwgbG9ja0hpc3Rvcnk7CiAgICAgZW5jb2RlciA8PCBsb2Nr
QmFja0ZvcndhcmRMaXN0OwogICAgIGVuY29kZXIgPDwgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JI
aXN0b3J5OworICAgIGVuY29kZXIgPDwgZWZmZWN0aXZlU2FuZGJveEZsYWdzOwogICAgIGVuY29k
ZXIgPDwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9CiAKQEAgLTE0Niw2ICsxNDcsMTEgQEAg
c3RkOjpvcHRpb25hbDxOYXZpZ2F0aW9uQWN0aW9uRGF0YT4gTmF2aWdhdGlvbkFjdGlvbkRhdGE6
OmRlY29kZShJUEM6OkRlY29kZXImIGQKICAgICBpZiAoIWNsaWVudFJlZGlyZWN0U291cmNlRm9y
SGlzdG9yeSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAorICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2FuZGJveEZsYWdzPiBlZmZlY3RpdmVTYW5kYm94RmxhZ3M7CisgICAgZGVj
b2RlciA+PiBlZmZlY3RpdmVTYW5kYm94RmxhZ3M7CisgICAgaWYgKCFlZmZlY3RpdmVTYW5kYm94
RmxhZ3MpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBzdGQ6Om9wdGlvbmFs
PHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+PiBwcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDsKICAgICBkZWNvZGVyID4+IHByaXZhdGVDbGlja01lYXN1cmVtZW50
OwogICAgIGlmICghcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpCkBAIC0xNTQsNyArMTYwLDcgQEAg
c3RkOjpvcHRpb25hbDxOYXZpZ2F0aW9uQWN0aW9uRGF0YT4gTmF2aWdhdGlvbkFjdGlvbkRhdGE6
OmRlY29kZShJUEM6OkRlY29kZXImIGQKICAgICByZXR1cm4ge3sgV1RGTW92ZShuYXZpZ2F0aW9u
VHlwZSksIG1vZGlmaWVycywgV1RGTW92ZShtb3VzZUJ1dHRvbiksIFdURk1vdmUoc3ludGhldGlj
Q2xpY2tUeXBlKSwgV1RGTW92ZSgqdXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIpLAogICAgICAg
ICBXVEZNb3ZlKCpjYW5IYW5kbGVSZXF1ZXN0KSwgV1RGTW92ZShzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KSwgV1RGTW92ZSgqZG93bmxvYWRBdHRyaWJ1dGUpLCBXVEZNb3ZlKGNsaWNrTG9j
YXRpb25JblJvb3RWaWV3Q29vcmRpbmF0ZXMpLAogICAgICAgICBXVEZNb3ZlKCppc1JlZGlyZWN0
KSwgKnRyZWF0QXNTYW1lT3JpZ2luTmF2aWdhdGlvbiwgKmhhc09wZW5lZEZyYW1lcywgKm9wZW5l
ZEJ5RE9NV2l0aE9wZW5lciwgV1RGTW92ZSgqcmVxdWVzdGVyT3JpZ2luKSwKLSAgICAgICAgV1RG
TW92ZSgqdGFyZ2V0QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIFdURk1vdmUoKnNvdXJjZUJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXIpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlz
dCwgV1RGTW92ZSgqY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KSwgV1RGTW92ZSgqcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQpIH19OworICAgICAgICBXVEZNb3ZlKCp0YXJnZXRCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyKSwgV1RGTW92ZSgqc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRp
ZmllciksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBXVEZNb3ZlKCpjbGllbnRS
ZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpLCAqZWZmZWN0aXZlU2FuZGJveEZsYWdzLCBXVEZNb3Zl
KCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgfX07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKaW5kZXggMjkx
NjE5N2ViMWNiZTIyNmE2NWI1MDY0YjMxOTlkNzIzZTlmNTU2NS4uMzMzMmIxNTU2NmNiNzM1ZmNh
MGY1Y2FjNTcxOWI5MzU4ODg5MTBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF2aWdhdGlvbkFjdGlvbkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0
aW9uQWN0aW9uRGF0YS5oCkBAIC0zNyw2ICszNywxMCBAQCBjbGFzcyBEZWNvZGVyOwogY2xhc3Mg
RW5jb2RlcjsKIH0KIAorbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRlZiBpbnQgU2FuZGJveEZs
YWdzOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IE5hdmlnYXRpb25BY3Rpb25E
YXRhIHsKQEAgLTYyLDYgKzY2LDcgQEAgc3RydWN0IE5hdmlnYXRpb25BY3Rpb25EYXRhIHsKICAg
ICBXZWJDb3JlOjpMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSB7IFdlYkNvcmU6OkxvY2tIaXN0b3J5
OjpObyB9OwogICAgIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJk
TGlzdCB7IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CiAgICAgV1RGOjpTdHJp
bmcgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OworICAgIFdlYkNvcmU6OlNhbmRib3hG
bGFncyBlZmZlY3RpdmVTYW5kYm94RmxhZ3MgeyAwIH07CiAgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAppbmRleCBh
ZTZmMGI1NWQ5OWYzMjFjZDc4NTU1NjEwNjM0YTVjODZkYTAxMzM4Li45NTExNzZkMmZiZmY2ZjNh
Yjk1NmExNjg2ZjRiZDg2NDljNWMxYTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElOYXZpZ2F0aW9uLmgKQEAgLTE0NCw2ICsxNDQsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29y
ZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KCkgY29uc3QgeyByZXR1
cm4gbV9sYXN0TmF2aWdhdGlvbkFjdGlvbi5sb2NrQmFja0ZvcndhcmRMaXN0OyB9CiAKICAgICBX
VEY6OlN0cmluZyBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKSBjb25zdCB7IHJldHVy
biBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsg
fQorICAgIFdlYkNvcmU6OlNhbmRib3hGbGFncyBlZmZlY3RpdmVTYW5kYm94RmxhZ3MoKSBjb25z
dCB7IHJldHVybiBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uLmVmZmVjdGl2ZVNhbmRib3hGbGFnczsg
fQogCiAgICAgdm9pZCBzZXRMYXN0TmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJLaXQ6Ok5hdmln
YXRpb25BY3Rpb25EYXRhJiBuYXZpZ2F0aW9uQWN0aW9uKSB7IG1fbGFzdE5hdmlnYXRpb25BY3Rp
b24gPSBuYXZpZ2F0aW9uQWN0aW9uOyB9CiAgICAgY29uc3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYgbGFzdE5hdmlnYXRpb25BY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2xhc3ROYXZp
Z2F0aW9uQWN0aW9uOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQppbmRleCAyOGMyMGU5YjNjODBiMDkyZDQ3ODI0YmFmYTlmMGMyZGUyM2E4NDg4Li42ZDBk
YWE1M2NhNTAwNzEwNzM5MDUwM2QyODA5OTVhNGNkODc2YjY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTExNTIsNyArMTE1Miw3IEBAIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiBtYWluRnJhbWVJRDsKICAgICAgICAgaWYgKGF1dG8qIG1haW5GcmFtZSA9IGZy
YW1lLnBhZ2UoKSA/IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCkgOiBudWxscHRyKQogICAgICAg
ICAgICAgbWFpbkZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsKLSAgICAgICAgRnJhbWVJ
bmZvRGF0YSBmcmFtZUluZm8geyBmcmFtZS5pc01haW5GcmFtZSgpLCB7IH0sIHVzZXJNZWRpYU9y
aWdpbi5zZWN1cml0eU9yaWdpbigpLCBmcmFtZS5mcmFtZUlEKCksIG1haW5GcmFtZUlEIH07Cisg
ICAgICAgIEZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvIHsgZnJhbWUuaXNNYWluRnJhbWUoKSwgeyB9
LCB1c2VyTWVkaWFPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgeyB9LCBmcmFtZS5mcmFtZUlEKCks
IG1haW5GcmFtZUlEIH07CiAgICAgICAgIFJldGFpblB0cjxXS0ZyYW1lSW5mbz4gZnJhbWVJbmZv
V3JhcHBlciA9IHdyYXBwZXIoQVBJOjpGcmFtZUluZm86OmNyZWF0ZShXVEZNb3ZlKGZyYW1lSW5m
byksIGZyYW1lLnBhZ2UoKSkpOwogCiAgICAgICAgIFdLTWVkaWFDYXB0dXJlVHlwZSB0eXBlID0g
V0tNZWRpYUNhcHR1cmVUeXBlQ2FtZXJhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IGI4OGEwNzg0NmQ3OGQ2MDBkZTdjMDIzYTBi
ZDA0MDk2ZjA4NTdhNmMuLmRiOTMyNWMyZWI1YTk3ZjZlODA4OWMwZWFjNWU1MDZlMDI2NzVlMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5j
cHAKQEAgLTE0OSw2ICsxNDksNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpjYW5jZWwo
KQogICAgICAgICB0cnVlLCAvLyBpc01haW5GcmFtZQogICAgICAgICBtX3JlcXVlc3QsCiAgICAg
ICAgIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChtX3JlcXVlc3QudXJsKCkpLAorICAgICAg
ICB7IH0sCiAgICAgICAgIG1fbWFpbkZyYW1lLT5mcmFtZUlEKCksCiAgICAgICAgIHN0ZDo6bnVs
bG9wdCwKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggODI4ZjJiYWMwMzk3OGQ1MTM0ZWU3ODBmYTAyYjhjZTFhOWZmMmExNC4uZjUwMWI4NWM0ZmRm
ZmQyMjg4M2VkODE1ODEwZGVlN2I1OWVlZTBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0xNDAyLDYgKzE0MDIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2NlcwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlvbi5sb2NrSGlz
dG9yeSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tCYWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0
aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRSZWRp
cmVjdFNvdXJjZUZvckhpc3RvcnkgPSBuYXZpZ2F0aW9uLmNsaWVudFJlZGlyZWN0U291cmNlRm9y
SGlzdG9yeSgpOworICAgIGxvYWRQYXJhbWV0ZXJzLmVmZmVjdGl2ZVNhbmRib3hGbGFncyA9IG5h
dmlnYXRpb24uZWZmZWN0aXZlU2FuZGJveEZsYWdzKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuaXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47
CiAgICAgbG9hZFBhcmFtZXRlcnMuZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmll
clRvUmVzdW1lID0gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1l
OwogICAgIG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUocHJvY2VzcywgdXJs
LCBtX3BhZ2VMb2FkU3RhdGUucmVzb3VyY2VEaXJlY3RvcnlVUkwoKSwgbG9hZFBhcmFtZXRlcnMu
c2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CkBAIC0xNTg4LDYgKzE1ODksNyBAQCBSZWZQdHI8QVBJ
OjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0ZWRSZXF1ZXN0KFdlYkNvcmU6
OlJlc291cmNlUmVxdQogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tIaXN0b3J5ID0gbmF2aWdhdGlv
bi0+bG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0
ID0gbmF2aWdhdGlvbi0+bG9ja0JhY2tGb3J3YXJkTGlzdCgpOwogICAgIGxvYWRQYXJhbWV0ZXJz
LmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSA9IG5hdmlnYXRpb24tPmNsaWVudFJlZGly
ZWN0U291cmNlRm9ySGlzdG9yeSgpOworICAgIGxvYWRQYXJhbWV0ZXJzLmVmZmVjdGl2ZVNhbmRi
b3hGbGFncyA9IG5hdmlnYXRpb24tPmVmZmVjdGl2ZVNhbmRib3hGbGFncygpOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gPSBpc05hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluKCk7CiAKICAgICBzaW11bGF0ZWRSZXNwb25zZS5zZXRFeHBlY3RlZENvbnRl
bnRMZW5ndGgoZGF0YS5zaXplKCkpOwpAQCAtMzQ0MSw3ICszNDQzLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmNsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJpZGUoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZp
Z2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpOYXZp
Z2F0aW9uKiBuYXZpZ2F0aW9uLCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmIG5hdmlnYXRp
b25BY3Rpb24sIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xp
Y2llcz4mJiBwb2xpY2llcywgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmIHNlbmRlcikKK3Zv
aWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lB
Y3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIFJlZjxBUEk6
Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgUHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5JiBm
cmFtZSwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBSZWZQdHI8QVBJOjpXZWJzaXRl
UG9saWNpZXM+JiYgcG9saWNpZXMsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJiBzZW5kZXIp
CiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRpbmcsICJyZWNlaXZlZE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbjogZnJhbWVJRD0lbGx1LCBuYXZpZ2F0aW9uSUQ9JWxsdSwgcG9s
aWN5QWN0aW9uPSV1IiwgZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCksIG5hdmlnYXRpb24gPyBu
YXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsICh1bnNpZ25lZClwb2xpY3lBY3Rpb24pOwog
CkBAIC0zNDk0LDcgKzM0OTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWROYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQQogICAgICAgICB9
CiAgICAgfQogCi0gICAgcHJvY2VzcygpLnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zvck5hdmlnYXRp
b24oKnRoaXMsICpuYXZpZ2F0aW9uLCBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJM
LCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXVEZNb3ZlKHdlYnNpdGVEYXRhU3RvcmUp
LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBvbGljeUFjdGlvbiwgbmF2
aWdhdGlvbiA9IFJlZiB7ICpuYXZpZ2F0aW9uIH0sIG5hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3Zl
KG5hdmlnYXRpb25BY3Rpb24pLCBzb3VyY2VQcm9jZXNzID0gc291cmNlUHJvY2Vzcy5jb3B5UmVm
KCksCisgICAgcHJvY2VzcygpLnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zvck5hdmlnYXRpb24oKnRo
aXMsICpuYXZpZ2F0aW9uLCBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFtZUluZm8sIFdURk1vdmUod2Vic2l0ZURhdGFT
dG9yZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcG9saWN5QWN0aW9u
LCBuYXZpZ2F0aW9uID0gUmVmIHsgKm5hdmlnYXRpb24gfSwgbmF2aWdhdGlvbkFjdGlvbiA9IFdU
Rk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHNvdXJjZVByb2Nlc3MgPSBzb3VyY2VQcm9jZXNzLmNv
cHlSZWYoKSwKICAgICAgICAgcG9saWNpZXMgPSBXVEZNb3ZlKHBvbGljaWVzKSwgc2VuZGVyID0g
V1RGTW92ZShzZW5kZXIpLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50XSAoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzRm9yTmF2aWdhdGlvbiwgU3VzcGVuZGVkUGFnZVByb3h5KiBk
ZXN0aW5hdGlvblN1c3BlbmRlZFBhZ2UsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBtdXRhYmxlIHsK
ICAgICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gaGFzIGJlZW4gZGVzdHJveWVkLCB0aGVuIG5v
IG5lZWQgdG8gcHJvY2VlZC4KICAgICAgICAgaWYgKGlzQ2xvc2VkKCkgfHwgIW5hdmlnYXRpb25T
dGF0ZSgpLmhhc05hdmlnYXRpb24obmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkpKSB7CkBAIC01
NDE2LDcgKzU0MTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgIFJlZiBsaXN0ZW5l
ciA9IGZyYW1lLnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIGZyYW1lID0gUmVmIHsgZnJhbWUgfSwgc2VuZGVyID0gV1RGTW92ZShz
ZW5kZXIpLCBuYXZpZ2F0aW9uLCBuYXZpZ2F0aW9uQWN0aW9uLCBmcmFtZUluZm8sIHVzZXJEYXRh
T2JqZWN0ID0gcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmpl
Y3QoKSkuZ2V0KCldIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xp
Y2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVCcm93c2luZ1dhcm5pbmc+JiYgc2FmZUJyb3dz
aW5nV2FybmluZywgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNB
cHBCb3VuZERvbWFpbikgbXV0YWJsZSB7CiAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xP
RyhMb2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjogbGlzdGVuZXIgY2Fs
bGVkOiBmcmFtZUlEPSVsbHUsIG5hdmlnYXRpb25JRD0lbGx1LCBwb2xpY3lBY3Rpb249JXUsIHNh
ZmVCcm93c2luZ1dhcm5pbmc9JWQsIGlzQXBwQm91bmREb21haW49JWQiLCBmcmFtZS0+ZnJhbWVJ
RCgpLnRvVUludDY0KCksIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6
IDAsICh1bnNpZ25lZClwb2xpY3lBY3Rpb24sICEhc2FmZUJyb3dzaW5nV2FybmluZywgISFpc0Fw
cEJvdW5kRG9tYWluKTsKIAotICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMs
IHByb3RlY3RlZFRoaXMsIGZyYW1lLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5hdmlnYXRp
b24sIG5hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBwb2xpY2llcyA9IFJlZlB0ciB7IHBvbGljaWVzIH1dIChQ
b2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjb21wbGV0
aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzLCBmcmFtZSwgZnJhbWVJbmZvLCBzZW5k
ZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5hdmlnYXRpb24sIG5hdmlnYXRpb25BY3Rpb24gPSBXVEZN
b3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBwb2xp
Y2llcyA9IFJlZlB0ciB7IHBvbGljaWVzIH1dIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSkgewogICAgICAg
ICAgICAgICAgIGlmICghcG9saWNpZXMpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8q
IGRlZmF1bHRQb2xpY2llcyA9IG1fY29uZmlndXJhdGlvbi0+ZGVmYXVsdFdlYnNpdGVQb2xpY2ll
cygpKQpAQCAtNTQyNSw3ICs1NDI3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICAg
ICAgICAgICAgICBpZiAocG9saWNpZXMpCiAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRpb24t
PnNldEVmZmVjdGl2ZUNvbnRlbnRNb2RlKGVmZmVjdGl2ZUNvbnRlbnRNb2RlQWZ0ZXJBZGp1c3Rp
bmdQb2xpY2llcygqcG9saWNpZXMsIG5hdmlnYXRpb24tPmN1cnJlbnRSZXF1ZXN0KCkpKTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
KHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9u
KSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgZnJhbWUsIFdURk1vdmUocG9saWNpZXMp
LCBXVEZNb3ZlKHNlbmRlcikpOworICAgICAgICAgICAgcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKG5hdmlnYXRp
b25BY3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFtZSwgZnJhbWVJbmZv
LCBXVEZNb3ZlKHBvbGljaWVzKSwgV1RGTW92ZShzZW5kZXIpKTsKICAgICAgICAgfTsKIAogI2lm
IEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggMWZhMjdjNzg4MjAwOTEyNjc2NDM3ZDMyZDk3MTNlY2JiZWY0NTVjMi4uNjk0
NDczMWJlZjE0YjUyYzNmODYyOWJjNTUyY2I2ZGI0ODBiMDBkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyMjIsNyArMTIyMiw3IEBAIHB1YmxpYzoKICAgICBj
bGFzcyBQb2xpY3lEZWNpc2lvblNlbmRlcjsKICAgICBlbnVtIGNsYXNzIFdpbGxDb250aW51ZUxv
YWRJbk5ld1Byb2Nlc3MgOiBib29sIHsgTm8sIFllcyB9OwogICAgIHZvaWQgcmVjZWl2ZWRQb2xp
Y3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiosIFJlZlB0
cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgc3RkOjp2YXJpYW50PFJlZjxBUEk6Ok5hdmlnYXRp
b25SZXNwb25zZT4sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+PiYmLCBSZWY8UG9saWN5RGVj
aXNpb25TZW5kZXI+JiYsIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiA9
IHsgfSwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5l
d1Byb2Nlc3M6Ok5vKTsKLSAgICB2b2lkIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
KFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmPEFQSTo6TmF2aWdh
dGlvbkFjdGlvbj4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94
eSYsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgUmVmPFBvbGljeURlY2lzaW9uU2Vu
ZGVyPiYmKTsKKyAgICB2b2lkIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFdlYkNv
cmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFj
dGlvbj4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94eSYsIGNv
bnN0IEZyYW1lSW5mb0RhdGEmLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIFJlZjxQ
b2xpY3lEZWNpc2lvblNlbmRlcj4mJik7CiAKICAgICB2b2lkIGJhY2tGb3J3YXJkUmVtb3ZlZEl0
ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzZkZTU4ODAyY2U2ZWM5
NGJmNGZjYzhmMmNlNDFmZjliZTczNmVjZi4uM2ZkOGFkZDhiNTFlMmU4MzJkNWZiNzM4YTlhMDI4
OWI5YTZmODk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cApAQCAtMTgxNCw5ICsxODE0LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVtb3ZlUHJvY2Vz
c0Zyb21PcmlnaW5DYWNoZVNldChXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiAgICAgICAgIG1f
c3dhcHBlZFByb2Nlc3Nlc1BlclJlZ2lzdHJhYmxlRG9tYWluLnJlbW92ZShyZWdpc3RyYWJsZURv
bWFpbik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uKFdl
YlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBQ
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQs
IFJlZjxXZWJzaXRlRGF0YVN0b3JlPiYmIGRhdGFTdG9yZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJp
bmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NG
b3JOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVS
TCYgc291cmNlVVJMLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbywgUmVmPFdlYnNp
dGVEYXRhU3RvcmU+JiYgZGF0YVN0b3JlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewotICAgIHByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwocGFn
ZSwgbmF2aWdhdGlvbiwgc291cmNlUHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV1RGTW92ZShkYXRhU3RvcmUpLCBbdGhpcywgcGFnZSA9
IFJlZiB7IHBhZ2UgfSwgbmF2aWdhdGlvbiA9IFJlZiB7IG5hdmlnYXRpb24gfSwgc291cmNlUHJv
Y2VzcyA9IHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkwsIHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgU3VzcGVuZGVkUGFnZVByb3h5
KiBzdXNwZW5kZWRQYWdlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgbXV0YWJsZSB7CisgICAgcHJv
Y2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChwYWdlLCBuYXZpZ2F0aW9uLCBzb3VyY2VQcm9jZXNz
LmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFt
ZUluZm8sIFdURk1vdmUoZGF0YVN0b3JlKSwgW3RoaXMsIHBhZ2UgPSBSZWYgeyBwYWdlIH0sIG5h
dmlnYXRpb24gPSBSZWYgeyBuYXZpZ2F0aW9uIH0sIHNvdXJjZVByb2Nlc3MgPSBzb3VyY2VQcm9j
ZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFN1c3BlbmRlZFBhZ2VQcm94eSogc3VzcGVuZGVkUGFnZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pIG11dGFibGUgewogICAgICAgICAvLyBXZSBhcmUgcHJvY2Vz
cy1zd2FwcGluZyBzbyBhdXRvbWF0aWMgcHJvY2VzcyBwcmV3YXJtaW5nIHdvdWxkIGJlIGJlbmVm
aWNpYWwgaWYgdGhlIGNsaWVudCBoYXMgbm90IGV4cGxpY2l0bHkgZW5hYmxlZCAvIGRpc2FibGVk
IGl0LgogICAgICAgICBib29sIGRvaW5nQW5BdXRvbWF0aWNQcm9jZXNzU3dhcCA9IHByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8g
JiYgcHJvY2Vzcy5wdHIoKSAhPSBzb3VyY2VQcm9jZXNzLnB0cigpOwogICAgICAgICBpZiAoZG9p
bmdBbkF1dG9tYXRpY1Byb2Nlc3NTd2FwICYmICFjb25maWd1cmF0aW9uKCkud2FzQXV0b21hdGlj
UHJvY2Vzc1dhcm1pbmdTZXRCeUNsaWVudCgpICYmICFjb25maWd1cmF0aW9uKCkuY2xpZW50V291
bGRCZW5lZml0RnJvbUF1dG9tYXRpY1Byb2Nlc3NQcmV3YXJtaW5nKCkpIHsKQEAgLTE4MzksNyAr
MTgzOSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uKFdlYlBh
Z2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0CiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JiBw
YWdlLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJMJiBwYWdlU291cmNlVVJMLCBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZjxXZWJz
aXRlRGF0YVN0b3JlPiYmIGRhdGFTdG9yZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0
aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mIG5h
dmlnYXRpb24sIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJM
JiBwYWdlU291cmNlVVJMLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbywgUmVmPFdl
YnNpdGVEYXRhU3RvcmU+JiYgZGF0YVN0b3JlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8mIHRhcmdldFVSTCA9IG5hdmlnYXRpb24u
Y3VycmVudFJlcXVlc3QoKS51cmwoKTsKICAgICBhdXRvIHRhcmdldFJlZ2lzdHJhYmxlRG9tYWlu
ID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB0YXJnZXRVUkwgfTsKQEAgLTE4OTcsNiAr
MTg5NywxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVy
bmFsKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOgogICAgICAgICB9CiAgICAgfQogCisg
ICAgLy8gSWYgaXQgaXMgdGhlIGZpcnN0IG5hdmlnYXRpb24gaW4gYSBET00gcG9wdXAgYW5kIHRo
ZXJlIGlzIG5vIG9wZW5lciwgdGhlbiBmb3JjZSBhIHByb2Nlc3Mgc3dhcCBubyBtYXR0ZXIgd2hh
dCBzaW5jZQorICAgIC8vIHBvcHVwIHdpbmRvd3MgYXJlIG9yaWdpbmFsbHkgY3JlYXRlZCBpbiB0
aGVpciBvcGVuZXIncyBwcm9jZXNzLgorICAgIGlmIChwYWdlLm9wZW5lZEJ5RE9NKCkgJiYgIW5h
dmlnYXRpb24ub3BlbmVkQnlET01XaXRoT3BlbmVyKCkgJiYgIXBhZ2UuaGFzQ29tbWl0dGVkQW55
UHJvdmlzaW9uYWxMb2FkcygpICYmIGZyYW1lSW5mby5mcmFtZU5hbWUuaXNFbXB0eSgpICYmICF0
YXJnZXRVUkwucHJvdG9jb2xJc0Jsb2IoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGNyZWF0ZU5ld1Byb2Nlc3MoKSwgbnVsbHB0ciwgIlByb2Nlc3Mgc3dhcCBiZWNhdXNlIHRo
aXMgaXMgYSBmaXJzdCBuYXZpZ2F0aW9uIGluIGEgRE9NIHBvcHVwIHdpdGhvdXQgb3BlbmVyIl9z
KTsKKwogICAgIGlmIChuYXZpZ2F0aW9uLnRyZWF0QXNTYW1lT3JpZ2luTmF2aWdhdGlvbigpKQog
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzb3VyY2VQcm9jZXNzKSwg
bnVsbHB0ciwgIlRoZSB0cmVhdEFzU2FtZU9yaWdpbk5hdmlnYXRpb24gZmxhZyBpcyBzZXQiX3Mp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA2ODI4ZDM3
M2M4YzM5ZGQ0ZTUyNmQ0ZTZlZTg3NjUzMGNiY2NmMDIwLi5lNDg3ZDc4M2EyYTFmNGJkNzNiYTMx
NTg3MDYzMzQyZGJlYmEzNzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKQEAgLTQ0Niw3ICs0NDYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNGb3JlZ3JvdW5k
V2ViUHJvY2Vzc2VzKCkgY29uc3QgeyByZXR1cm4gbV9mb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50
ZXIudmFsdWUoKTsgfQogICAgIGJvb2wgaGFzQmFja2dyb3VuZFdlYlByb2Nlc3NlcygpIGNvbnN0
IHsgcmV0dXJuIG1fYmFja2dyb3VuZFdlYlByb2Nlc3NDb3VudGVyLnZhbHVlKCk7IH0KIAotICAg
IHZvaWQgcHJvY2Vzc0Zvck5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgY29uc3QgQVBJOjpOYXZp
Z2F0aW9uJiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwm
IHNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmPFdlYnNpdGVEYXRh
U3RvcmU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
U3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYpOworICAgIHZvaWQgcHJvY2Vz
c0Zvck5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYmKTsKIAogICAg
IHZvaWQgZGlkUmVhY2hHb29kVGltZVRvUHJld2FybSgpOwogCkBAIC01MjMsNyArNTIzLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2Vi
UHJvY2Vzc1Byb3h5JiwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZvaWQg
cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpOwogCi0gICAgdm9pZCBwcm9jZXNzRm9yTmF2aWdh
dGlvbkludGVybmFsKFdlYlBhZ2VQcm94eSYsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYsIFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiYmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQ
cm94eSosIGNvbnN0IFN0cmluZyYpPiYmKTsKKyAgICB2b2lkIHByb2Nlc3NGb3JOYXZpZ2F0aW9u
SW50ZXJuYWwoV2ViUGFnZVByb3h5JiwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiwgUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIFJlZjxXZWJzaXRl
RGF0YVN0b3JlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYmKTsKIAogICAgIFJlZlB0
cjxXZWJQcm9jZXNzUHJveHk+IHRyeVRha2VQcmV3YXJtZWRQcm9jZXNzKFdlYnNpdGVEYXRhU3Rv
cmUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggOTlhNTFhYjVmZWFh
ZTQ3OWEwM2EzZDU4MWM4ODk0NzBiMDBlZTljMi4uOGVhOWU4MjU4ODkwYzEwYmU0MThlOTgxMWVh
Mzk3N2E2MGE2Yzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC05Njgs
NiArOTY4LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAgICAgICAgbmF2aWdhdGlvbkFj
dGlvbi5pbml0aWF0ZWRCeU1haW5GcmFtZSgpID09IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpZZXMs
CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCB7IHJlcXVlc3Rlci51cmwgfSwKICAgICAgICAgcmVx
dWVzdGVyLnNlY3VyaXR5T3JpZ2luLT5kYXRhKCksCisgICAgICAgIHsgfSwKICAgICAgICAgV1RG
TW92ZShvcmlnaW5hdGluZ0ZyYW1lSUQpLAogICAgICAgICBXVEZNb3ZlKHBhcmVudEZyYW1lSUQp
LAogICAgIH07CkBAIC0xMDEyLDYgKzEwMTMsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdAog
ICAgICAgICBkb2N1bWVudExvYWRlciA9IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyKj4o
Y29yZUZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKTsKIAogICAgIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSA9IGRvY3VtZW50TG9hZGVy
LT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKTsKKyAgICBuYXZpZ2F0aW9uQWN0aW9u
RGF0YS5lZmZlY3RpdmVTYW5kYm94RmxhZ3MgPSBjb3JlRnJhbWUtPmxvYWRlcigpLmVmZmVjdGl2
ZVNhbmRib3hGbGFncygpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAgICAgUmVm
IHByb3RlY3RvciB7ICpjb3JlRnJhbWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBkOTE5ZTQ0OGY3NTVmOThiNmQwZTllYWI3NGY1M2Zm
MjQ4YmJiZjMyLi45YmQ0Y2QyZDBjYjEwM2I0NWFhOGU2YzFkNDI3YzBiMTdiZjVlZDEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0xOTMs
NiArMTkzLDcgQEAgRnJhbWVJbmZvRGF0YSBXZWJGcmFtZTo6aW5mbygpIGNvbnN0CiAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgdGhlIGZ1bGwgcmVxdWVzdC4KICAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0KHVybCgpKSwKICAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJh
bWUobV9jb3JlRnJhbWUuZ2V0KCkpLAorICAgICAgICBtX2NvcmVGcmFtZSA/IG1fY29yZUZyYW1l
LT50cmVlKCkubmFtZSgpLnN0cmluZygpIDogU3RyaW5nKCksCiAgICAgICAgIG1fZnJhbWVJRCwK
ICAgICAgICAgcGFyZW50ID8gc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
IHsgcGFyZW50LT5mcmFtZUlEKCkgfSA6IHN0ZDo6bnVsbG9wdCwKICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjMTg2NmEyNWJiOWQ0
NzY3MTEwOGM0MDlhOGYyZjRiMzNhYWEzN2Y3Li4yNmJkMzRhODJmNmM2Yzc5YzNmZjYzYTZiZTA1
NDAxZjFhYWZiYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMTczMyw2ICsxNzMzLDkgQEAgdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVzdChM
b2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0
Q2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJlZGly
ZWN0U291cmNlRm9ySGlzdG9yeSk7CiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRJc1JlcXVlc3RG
cm9tQ2xpZW50T3JVc2VySW5wdXQoKTsKIAorICAgIGlmIChsb2FkUGFyYW1ldGVycy5lZmZlY3Rp
dmVTYW5kYm94RmxhZ3MpCisgICAgICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmxvYWRlcigp
LmZvcmNlU2FuZGJveEZsYWdzKGxvYWRQYXJhbWV0ZXJzLmVmZmVjdGl2ZVNhbmRib3hGbGFncyk7
CisKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5sb2FkUmVxdWVzdChXVEZNb3Zl
KGZyYW1lTG9hZFJlcXVlc3QpKTsKIAogICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklE
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBh
YzY0YTE2MTQ3ZTIzOWM0MmM2MTUzM2NhODM2NmY3ZDNlMjY5ZjI0Li45NTVhYjhlMjg5MTQ5Y2Yw
OGRiODRmYjI2MjUyMWFhYThiMGYwZjA4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mt
c3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5l
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkw
CisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCBleGlzdGluZyBBUEkgdGVzdHMgdG8gcmVmbGVj
dCBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorCiAyMDIxLTEwLTIwICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGlPUyBi
dWlsZCBhZnRlciByMjg0NTM5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA0
ZjJlMjYyYzJkNDA0ZDVhMzgyMjBmNTk3Yjk5NTkyOTM1MjcxYjk1Li4yYTg3NzM2OGY1ZTkzNzJl
YzVjNzBhNTk1ODM3ZWIzMDI5MTBhNjllIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KQEAgLTEyODMsNyArMTI4Myw4IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzT3JpZ2luQnV0
U2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCiAgICAgYXV0byBwaWQyID0gW2NyZWF0ZWRXZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNUX1RSVUUoISFwaWQyKTsKIAot
ICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKKyAgICAvLyBTaW5jZSB0aGVyZSBpcyBubyBvcGVu
ZXIsIHdlIHByb2Nlc3Mtc3dhcCwgZXZlbiB0aG91Z2ggdGhlIG5hdmlnYXRpb24gaXMgc2FtZS1z
aXRlLgorICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwg
Q3Jvc3NTaXRlV2luZG93T3BlbldpdGhPcGVuZXIpCkBAIC0xMzYzLDcgKzEzNjQsOCBAQCBURVNU
KFByb2Nlc3NTd2FwLCBTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKICAgICBhdXRvIHBpZDIg
PSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfVFJV
RSghIXBpZDIpOwogCi0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworICAgIC8vIFNpbmNlIHRo
ZXJlIGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vzcy1zd2FwLCBldmVuIHRob3VnaCB0aGUgbmF2aWdh
dGlvbiBpcyBzYW1lLXNpdGUuCisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOwogfQogCiBURVNU
KFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVCbGFua1RhcmdldFdpdGhPcGVuZXIpCkBAIC0xNTIzLDcg
KzE1MjUsOCBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZUJsYW5rVGFyZ2V0Tm9PcGVuZXIp
CiAgICAgYXV0byBwaWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07
CiAgICAgRVhQRUNUX1RSVUUoISFwaWQyKTsKIAotICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsK
KyAgICAvLyBTaW5jZSB0aGVyZSBpcyBubyBvcGVuZXIsIHdlIHByb2Nlc3Mtc3dhcCwgZXZlbiB0
aG91Z2ggdGhlIG5hdmlnYXRpb24gaXMgc2FtZS1zaXRlLgorICAgIEVYUEVDVF9ORShwaWQxLCBw
aWQyKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgU2VydmVyUmVkaXJlY3RGcm9tTmV3V2ViVmll
dykKQEAgLTYyNjksNyArNjI3Miw5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdvQmFja1RvU3VzcGVu
ZGVkUGFnZVdpdGhNYWluRnJhbWVJRFRoYXRJc05vdE9uZSkKICAgICAvLyBOZXcgV0tXZWJWaWV3
IGhhcyBub3cgbmF2aWdhdGVkIHRvIHdlYmtpdC5vcmcuCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
cHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiLCBbW2NyZWF0ZWRXZWJWaWV3IFVSTF0g
YWJzb2x1dGVTdHJpbmddKTsKICAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXTsKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisKKyAgICAvLyBX
ZSBwcm9jZXNzLXN3YXAgc2luY2UgdGhlcmUgaXMgbm8gb3BlbmVyIHJlbGF0aW9uc2hpcC4KKyAg
ICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CiAKICAgICAvLyBDbGljayBsaW5rIGluIG5ldyBXS1dl
YlZpZXcgc28gdGhhdCBpdCBuYXZpZ2F0ZXMgY3Jvc3Mtc2l0ZSB0byBhcHBsZS5jb20uCiAgICAg
W2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInRlc3RMaW5rLmNsaWNrKCkiIGNv
bXBsZXRpb25IYW5kbGVyOm5pbF07CkBAIC02Mjg4LDcgKzYyOTMsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBHb0JhY2tUb1N1c3BlbmRlZFBhZ2VXaXRoTWFpbkZyYW1lSURUaGF0SXNOb3RPbmUpCiAK
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIs
IFtbY3JlYXRlZFdlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwogICAgIGF1dG8gcGlkNCA9
IFtjcmVhdGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwotICAgIEVYUEVDVF9FUShw
aWQxLCBwaWQ0KTsgLy8gU2hvdWxkIGhhdmUgcHJvY2Vzcy1zd2FwcGVkIHRvIHRoZSBvcmlnaW5h
bCAic3VzcGVuZGVkIiBwcm9jZXNzLgorICAgIEVYUEVDVF9FUShwaWQyLCBwaWQ0KTsgLy8gU2hv
dWxkIGhhdmUgcHJvY2Vzcy1zd2FwcGVkIHRvIHRoZSBvcmlnaW5hbCAic3VzcGVuZGVkIiBwcm9j
ZXNzLgogCiAgICAgLy8gRG8gYSBmcmFnbWVudCBuYXZpZ2F0aW9uIGluIHRoZSBvcmlnaW5hbCBX
S1dlYlZpZXcgYW5kIG1ha2Ugc3VyZSB0aGlzIGRvZXMgbm90IGNyYXNoLgogICAgIHJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwjdGVzdExpbmsiXV07CkBAIC02Mjk4LDcgKzYz
MDMsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBHb0JhY2tUb1N1c3BlbmRlZFBhZ2VXaXRoTWFpbkZy
YW1lSURUaGF0SXNOb3RPbmUpCiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvbWFpbjEuaHRtbCN0ZXN0TGluayIsIFtbd2ViVmlldzEgVVJMXSBhYnNvbHV0ZVN0
cmluZ10pOwogICAgIGF1dG8gcGlkNSA9IFtjcmVhdGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOwotICAgIEVYUEVDVF9FUShwaWQxLCBwaWQ1KTsKKyAgICBFWFBFQ1RfRVEocGlkMiwg
cGlkNSk7CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL29wZW4tYW5kLWNsb3NlLWJ5LURPTS5odG1sCmluZGV4IDk1N2I1ODNjZGY3YTU2ZDg1
MmJiNjliZmIyZDdkMjFiOTU3ZDY0MGUuLjM1NDg1ZDIzNWQyMDExMzI0NmZmMjU4OWM2ZTBjNWZk
Yzc4OGU5NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL29wZW4tYW5kLWNsb3Nl
LWJ5LURPTS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL29wZW4tYW5kLWNsb3NlLWJ5
LURPTS5odG1sCkBAIC01Myw3ICs1Myw3IEBAIFRvIHJ1biB0aGUgdGVzdCBtYW51YWxseSBjbGlj
ayB0aGUgbGluayBiZWxvdy4KIDxici8+CiA8ZGl2IGlkPSJjb25zb2xlIiAvPgogPGJyLz4KLTxh
IGhyZWY9InJlc291cmNlcy9taWRkbGUuaHRtbCIgaWQ9ImFuY2hvckxpbmsiIHRhcmdldD0iX2Js
YW5rIj5PcGVuIG5ldyB3aW5kb3cgdGhhdCB3aWxsIGNsb3NlIGl0c2VsZjwvYT4KKzxhIGhyZWY9
InJlc291cmNlcy9taWRkbGUuaHRtbCIgaWQ9ImFuY2hvckxpbmsiIHRhcmdldD0ibWlkZGxlIj5P
cGVuIG5ldyB3aW5kb3cgdGhhdCB3aWxsIGNsb3NlIGl0c2VsZjwvYT4KIDxici8+PGJyLz4KIAog
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL21pZGRs
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL21pZGRsZS5odG1sCmluZGV4
IGM2MzZkYzhhMDgwYzlhNjg4NGQyOTNiMGRmNGRmMTU5ZjZjYzcwNjMuLmFlNzc1MDc1N2RjYjcw
NmZmZDA4MzExODM2NTFjMjEzYWFkNDEyODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Jlc291cmNlcy9taWRkbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNv
dXJjZXMvbWlkZGxlLmh0bWwKQEAgLTIyLDQgKzIyLDQgQEAgSWYgcnVubmluZyB0aGlzIHRlc3Qg
bWFudWFsbHksIGNsaWNrIHRoZSBzZW5kIGJ1dHRvbiBiZWxvdyBpZiB5b3UgYXJlIG5vdCByZWRp
cmUKICAgICA8aW5wdXQgbmFtZT0ic2VuZCIgdmFsdWU9IlNlbmQiIGlkPSJTZW5kQnV0dG9uIiB0
eXBlPSJzdWJtaXQiPgogPC9mb3JtPgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29w
LWNvZXAtc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29v
cC1jb2VwLXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDE3NmUzMTQ1YTc3ODRiYmZl
YjkzZjZjOWQ4ZGZmMmFlZjlkODRmNDcuLjM3MzMyNDVjZTcwOWE4ZDBjYmFmOWJmOGY3M2Q4MWVh
ODUyMjYzYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLWNvZXAtc2FuZGJv
eC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtY29lcC1z
YW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQgQEAKIENPTlNPTEUgTUVTU0FH
RTogTmF2aWdhdGlvbiB3YXMgYmxvY2tlZCBieSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeQot
Q09OU09MRSBNRVNTQUdFOiBOYXZpZ2F0aW9uIHdhcyBibG9ja2VkIGJ5IENyb3NzLU9yaWdpbi1P
cGVuZXItUG9saWN5CiAKIFBBU1MgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1wb3B1cHMgYWxsb3ct
c2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiI+IFNhbmRib3hlZCBDcm9zcy1PcmlnaW4tT3BlbmVy
LVBvbGljeSBwb3B1cCBzaG91bGQgcmVzdWx0IGluIGEgbmV0d29yayBlcnJvcgogUEFTUyA8aWZy
YW1lIHNhbmRib3g9ImFsbG93LXBvcHVwcyBhbGxvdy1zY3JpcHRzIj4gU2FuZGJveGVkIENyb3Nz
LU9yaWdpbi1PcGVuZXItUG9saWN5IHBvcHVwIHNob3VsZCByZXN1bHQgaW4gYSBuZXR3b3JrIGVy
cm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLXNhbmRib3guaHR0cHMtZXhwZWN0
ZWQudHh0CmluZGV4IDE3NmUzMTQ1YTc3ODRiYmZlYjkzZjZjOWQ4ZGZmMmFlZjlkODRmNDcuLjM3
MzMyNDVjZTcwOWE4ZDBjYmFmOWJmOGY3M2Q4MWVhODUyMjYzYjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4t
b3BlbmVyLXBvbGljeS9jb29wLXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4t
b3BlbmVyLXBvbGljeS9jb29wLXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEs
NCBAQAogQ09OU09MRSBNRVNTQUdFOiBOYXZpZ2F0aW9uIHdhcyBibG9ja2VkIGJ5IENyb3NzLU9y
aWdpbi1PcGVuZXItUG9saWN5Ci1DT05TT0xFIE1FU1NBR0U6IE5hdmlnYXRpb24gd2FzIGJsb2Nr
ZWQgYnkgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kKIAogUEFTUyA8aWZyYW1lIHNhbmRib3g9
ImFsbG93LXBvcHVwcyBhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luIj4gU2FuZGJveGVk
IENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IHBvcHVwIHNob3VsZCByZXN1bHQgaW4gYSBuZXR3
b3JrIGVycm9yCiBQQVNTIDxpZnJhbWUgc2FuZGJveD0iYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlw
dHMiPiBTYW5kYm94ZWQgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgcG9wdXAgc2hvdWxkIHJl
c3VsdCBpbiBhIG5ldHdvcmsgZXJyb3IK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441950</attachid>
            <date>2021-10-20 15:37:41 -0700</date>
            <delta_ts>2021-10-20 17:19:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231990-20211020153741.patch</filename>
            <type>text/plain</type>
            <size>43849</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDViZDVmNWFkMmQwZmQxMzk3
M2E2MjE4NTYzY2U4ODExZTRiNTRmODMuLjc3NzAwMjZiNDJjNjc1ZDFjNDIxMjhlMWRjYTU3Zjhj
ZDFkOWRhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEtMTAtMjAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mt
c3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5l
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkw
CisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRp
YWwgbmF2aWdhdGlvbiBvZiBhIHBvcHVwIGlmIGl0IGhhcyBubyBvcGVuZXIsIGV2ZW4gaWYgdGhl
IG5hdmlnYXRpb24gaXMKKyAgICAgICAgc2FtZS1zaXRlLiBTd2FwcGluZyBwcm9jZXNzIGlzIG5v
dCBXZWItb2JzZXJ2YWJsZSBoZXJlIHNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciByZWxhdGlvbnNo
aXAuIEhvd2V2ZXIsIHN3YXBwaW5nCisgICAgICAgIHByb2Nlc3NlcyBoYXMgYmVuZWZpdHMgaGVy
ZSBzaW5jZSB3ZSBkb24ndCB3YW50IHRvIGVuZCB1cCB3aXRoIHRvbyBtYW55IHRhYnMgc2hhcmlu
ZyB0aGUgc2FtZSBwcm9jZXNzLgorCisgICAgICAgIFRoaXMgaW1wYWN0cyBHb29nbGUgRHJpdmUg
d2hlcmUgZG91YmxlLWNsaWNraW5nIGEgZG9jdW1lbnQgd2lsbCBvcGVuIEdvb2dsZSBEb2NzIGlu
IGEgbmV3IHRhYiBhbmQgaW4gdGhlIHNhbWUKKyAgICAgICAgV2ViUHJvY2VzcyBhcyBHb29nbGUg
RHJpdmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVkIGV4aXN0aW5nIEFQSSB0ZXN0
cyBhbmQgdGhpcyBpcyBub3QgV2ViLW9ic2VydmFibGUuCisKKyAgICAgICAgKiBTaGFyZWQvRnJh
bWVJbmZvRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lSW5mb0RhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lSW5mb0RhdGE6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRl
cnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rpb25E
YXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjplZmZl
Y3RpdmVTYW5kYm94RmxhZ3MgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpjYW5jZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRp
b25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0ZWRS
ZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmluZm8gY29uc3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9h
ZFJlcXVlc3QpOgorCiAyMDIxLTEwLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIEVuc3VyZSB0aGUgQ0EgdHJhbnNhY3Rpb24gaGFzIGJlZW4g
c3luY2hyb25vdXNseSBjb21taXR0ZWQgYmVmb3JlIHNuYXBzaG90dGluZyBpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAppbmRleCA2MjFkMmVhMjQyYzdkOWZlYWQwOTk1MmNkOTgwMjY5NTQwYTBiZTljLi4xMjQxZGI0
NTNhZTk3Y2I4NGI2ZmM0NjZiMGEyYjIxODhhMjhiYmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMjc5
LDcgKzI3OSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBGcmFtZSYgbWFpbkZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9tYWluRnJhbWUuZ2V0KCk7IH0KIAogICAgIGJvb2wgb3BlbmVkQnlET00oKSBj
b25zdDsKLSAgICB2b2lkIHNldE9wZW5lZEJ5RE9NKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRPcGVuZWRCeURPTSgpOwogCiAgICAgYm9vbCBvcGVuZWRCeURPTVdpdGhPcGVuZXIoKSBj
b25zdCB7IHJldHVybiBtX29wZW5lZEJ5RE9NV2l0aE9wZW5lcjsgfQogICAgIHZvaWQgc2V0T3Bl
bmVkQnlET01XaXRoT3BlbmVyKGJvb2wgdmFsdWUpIHsgbV9vcGVuZWRCeURPTVdpdGhPcGVuZXIg
PSB2YWx1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmNwcAppbmRleCA4NTE2
ZjYyMDkyMzUyMTkyNTk5ZDNlMmZmYjA0M2ZiNjUxM2Q4ODM0Li5lZDZjNzBjYWE0NDFjOTk1ODJi
NGFiMmIzMWU3NDA0MmJlZWQzMmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9G
cmFtZUluZm9EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRh
LmNwcApAQCAtMzUsNiArMzUsNyBAQCB2b2lkIEZyYW1lSW5mb0RhdGE6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBpc01haW5GcmFtZTsKICAgICBl
bmNvZGVyIDw8IHJlcXVlc3Q7CiAgICAgZW5jb2RlciA8PCBzZWN1cml0eU9yaWdpbjsKKyAgICBl
bmNvZGVyIDw8IGZyYW1lTmFtZTsKICAgICBlbmNvZGVyIDw8IGZyYW1lSUQ7CiAgICAgZW5jb2Rl
ciA8PCBwYXJlbnRGcmFtZUlEOwogfQpAQCAtNTYsNiArNTcsMTEgQEAgc3RkOjpvcHRpb25hbDxG
cmFtZUluZm9EYXRhPiBGcmFtZUluZm9EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
KQogICAgIGlmICghc2VjdXJpdHlPcmlnaW4pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZnJhbWVOYW1lOworICAgIGRlY29kZXIgPj4g
ZnJhbWVOYW1lOworICAgIGlmICghZnJhbWVOYW1lKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4+IGZyYW1lSUQ7CiAgICAgZGVjb2RlciA+PiBmcmFtZUlEOwogICAgIGlmICghZnJh
bWVJRCkKQEAgLTcwLDYgKzc2LDcgQEAgc3RkOjpvcHRpb25hbDxGcmFtZUluZm9EYXRhPiBGcmFt
ZUluZm9EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBXVEZNb3Zl
KCppc01haW5GcmFtZSksCiAgICAgICAgIFdURk1vdmUoKnJlcXVlc3QpLAogICAgICAgICBXVEZN
b3ZlKCpzZWN1cml0eU9yaWdpbiksCisgICAgICAgIFdURk1vdmUoKmZyYW1lTmFtZSksCiAgICAg
ICAgIFdURk1vdmUoKmZyYW1lSUQpLAogICAgICAgICBXVEZNb3ZlKCpwYXJlbnRGcmFtZUlEKQog
ICAgIH19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCmluZGV4IGY0OWYzYTFkZTQx
MzAyMzFlYTExNDZjZjIyOTU4ZTk4NzA4OTJhNGIuLjBmMGJlNTQ5ZjEyYThkOTY1ZDU2M2NlYzNh
ZmM5ODQ5MDNiMmYxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5m
b0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKQEAgLTQz
LDYgKzQzLDcgQEAgc3RydWN0IEZyYW1lSW5mb0RhdGEgewogICAgIGJvb2wgaXNNYWluRnJhbWUg
eyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbjsKKyAgICBTdHJpbmcgZnJh
bWVOYW1lOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBwYXJlbnRG
cmFtZUlEOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcAppbmRleCBh
ZDEyMjBjODRmNWMxMWM5OTlhOWFjNGZmMWNjNWYxMmQ1MzMxYmVlLi5lMTI2ZjMzNGU0OWJhMTk2
ZDU0NjA5ODM1NTJlMDkwYThlZmJiMzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Mb2FkUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFt
ZXRlcnMuY3BwCkBAIC01Niw2ICs1Niw3IEBAIHZvaWQgTG9hZFBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBsb2NrSGlzdG9yeTsK
ICAgICBlbmNvZGVyIDw8IGxvY2tCYWNrRm9yd2FyZExpc3Q7CiAgICAgZW5jb2RlciA8PCBjbGll
bnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7CisgICAgZW5jb2RlciA8PCBlZmZlY3RpdmVTYW5k
Ym94RmxhZ3M7CiAgICAgZW5jb2RlciA8PCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOwog
ICAgIGVuY29kZXIgPDwgZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVz
dW1lOwogICAgIGVuY29kZXIgPDwgaXNTZXJ2aWNlV29ya2VyTG9hZDsKQEAgLTEzNiw2ICsxMzcs
MTIgQEAgYm9vbCBMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
TG9hZFBhcmFtZXRlcnMmIGRhdGEpCiAgICAgaWYgKCFjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhp
c3RvcnkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBkYXRhLmNsaWVudFJlZGlyZWN0U291
cmNlRm9ySGlzdG9yeSA9IFdURk1vdmUoKmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSk7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNhbmRib3hGbGFncz4gZWZmZWN0aXZlU2Fu
ZGJveEZsYWdzOworICAgIGRlY29kZXIgPj4gZWZmZWN0aXZlU2FuZGJveEZsYWdzOworICAgIGlm
ICghZWZmZWN0aXZlU2FuZGJveEZsYWdzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZGF0
YS5lZmZlY3RpdmVTYW5kYm94RmxhZ3MgPSAqZWZmZWN0aXZlU2FuZGJveEZsYWdzOwogICAgIAog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YS5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJz
LmgKaW5kZXggOTIwZTE0ZGU5MGI4YmYyNjYzM2Q5MTc2ZTBiZjljZTVlZGY0Y2I2MC4uNjQyZDU5
OWE4NDExMjA3MjYzNGY5YjAzOTk1MmZmNTE0YTAyNWU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9M
b2FkUGFyYW1ldGVycy5oCkBAIC00Myw2ICs0MywxMCBAQCBjbGFzcyBEZWNvZGVyOwogY2xhc3Mg
RW5jb2RlcjsKIH0KIAorbmFtZXNwYWNlIFdlYkNvcmUgewordHlwZWRlZiBpbnQgU2FuZGJveEZs
YWdzOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsK
QEAgLTc0LDYgKzc4LDcgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKICAgICBXZWJDb3JlOjpM
b2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QgeyBXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObyB9OwogICAgIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9u
SGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHsgV2ViQ29yZTo6U3Vi
c3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eTo6VmlzaWJsZSB9OwogICAgIFN0
cmluZyBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7CisgICAgV2ViQ29yZTo6U2FuZGJv
eEZsYWdzIGVmZmVjdGl2ZVNhbmRib3hGbGFncyB7IDAgfTsKICAgICBzdGQ6Om9wdGlvbmFsPE5h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOwog
ICAgIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5n
TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZTsKICAgICBib29sIGlzU2Vydmlj
ZVdvcmtlckxvYWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlv
bkFjdGlvbkRhdGEuY3BwCmluZGV4IGZhMGNhMzc0YmU1YmRhODQ1MDQ0ZDMzYmNhMWUzZjNkZGQ0
MmJkMmMuLjJlMDM3ZDdmMTA2MDkwODMyNjZjOTNhYzdjOTc2N2M3MTc1Y2IyNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKQEAgLTU0LDYgKzU0
LDcgQEAgdm9pZCBOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGxvY2tIaXN0b3J5OwogICAgIGVuY29kZXIgPDwg
bG9ja0JhY2tGb3J3YXJkTGlzdDsKICAgICBlbmNvZGVyIDw8IGNsaWVudFJlZGlyZWN0U291cmNl
Rm9ySGlzdG9yeTsKKyAgICBlbmNvZGVyIDw8IGVmZmVjdGl2ZVNhbmRib3hGbGFnczsKICAgICBl
bmNvZGVyIDw8IHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogfQogCkBAIC0xNDYsNiArMTQ3LDEx
IEBAIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGlvbkFjdGlvbkRhdGE+IE5hdmlnYXRpb25BY3Rpb25E
YXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkCiAgICAgaWYgKCFjbGllbnRSZWRpcmVjdFNvdXJj
ZUZvckhpc3RvcnkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNhbmRib3hGbGFncz4gZWZmZWN0aXZlU2FuZGJveEZsYWdzOworICAg
IGRlY29kZXIgPj4gZWZmZWN0aXZlU2FuZGJveEZsYWdzOworICAgIGlmICghZWZmZWN0aXZlU2Fu
ZGJveEZsYWdzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAgc3RkOjpvcHRp
b25hbDxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50Pj4gcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiAgICAgZGVjb2RlciA+PiBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDsKICAgICBpZiAoIXByaXZhdGVDbGlja01lYXN1cmVtZW50KQpAQCAtMTU0LDcgKzE2MCw3
IEBAIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGlvbkFjdGlvbkRhdGE+IE5hdmlnYXRpb25BY3Rpb25E
YXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkCiAgICAgcmV0dXJuIHt7IFdURk1vdmUobmF2aWdh
dGlvblR5cGUpLCBtb2RpZmllcnMsIFdURk1vdmUobW91c2VCdXR0b24pLCBXVEZNb3ZlKHN5bnRo
ZXRpY0NsaWNrVHlwZSksIFdURk1vdmUoKnVzZXJHZXN0dXJlVG9rZW5JZGVudGlmaWVyKSwKICAg
ICAgICAgV1RGTW92ZSgqY2FuSGFuZGxlUmVxdWVzdCksIFdURk1vdmUoc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSksIFdURk1vdmUoKmRvd25sb2FkQXR0cmlidXRlKSwgV1RGTW92ZShjbGlj
a0xvY2F0aW9uSW5Sb290Vmlld0Nvb3JkaW5hdGVzKSwKICAgICAgICAgV1RGTW92ZSgqaXNSZWRp
cmVjdCksICp0cmVhdEFzU2FtZU9yaWdpbk5hdmlnYXRpb24sICpoYXNPcGVuZWRGcmFtZXMsICpv
cGVuZWRCeURPTVdpdGhPcGVuZXIsIFdURk1vdmUoKnJlcXVlc3Rlck9yaWdpbiksCi0gICAgICAg
IFdURk1vdmUoKnRhcmdldEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIpLCBXVEZNb3ZlKCpzb3Vy
Y2VCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2Fy
ZExpc3QsIFdURk1vdmUoKmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSksIFdURk1vdmUo
KnByaXZhdGVDbGlja01lYXN1cmVtZW50KSB9fTsKKyAgICAgICAgV1RGTW92ZSgqdGFyZ2V0QmFj
a0ZvcndhcmRJdGVtSWRlbnRpZmllciksIFdURk1vdmUoKnNvdXJjZUJhY2tGb3J3YXJkSXRlbUlk
ZW50aWZpZXIpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgV1RGTW92ZSgqY2xp
ZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KSwgKmVmZmVjdGl2ZVNhbmRib3hGbGFncywgV1RG
TW92ZSgqcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIH19OwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25E
YXRhLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCmluZGV4
IDI5MTYxOTdlYjFjYmUyMjZhNjViNTA2NGIzMTk5ZDcyM2U5ZjU1NjUuLjMzMzJiMTU1NjZjYjcz
NWZjYTBmNWNhYzU3MTliOTM1ODg4OTEwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2
aWdhdGlvbkFjdGlvbkRhdGEuaApAQCAtMzcsNiArMzcsMTAgQEAgY2xhc3MgRGVjb2RlcjsKIGNs
YXNzIEVuY29kZXI7CiB9CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3R5cGVkZWYgaW50IFNhbmRi
b3hGbGFnczsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSB7CkBAIC02Miw2ICs2Niw3IEBAIHN0cnVjdCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSB7
CiAgICAgV2ViQ29yZTo6TG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgeyBXZWJDb3JlOjpMb2NrSGlz
dG9yeTo6Tm8gfTsKICAgICBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9y
d2FyZExpc3QgeyBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0OjpObyB9OwogICAgIFdURjo6
U3RyaW5nIGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsKKyAgICBXZWJDb3JlOjpTYW5k
Ym94RmxhZ3MgZWZmZWN0aXZlU2FuZGJveEZsYWdzIHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+IHByaXZhdGVDbGlja01lYXN1cmVtZW50
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAppbmRleCBjYmNhOTA4ZTM4MzYwZDFkOWM5OTQ0MmUwOTNmYTA4OTE1MWU5NmQ2
Li5kOTQ3MjU2NTk1NDc1NTJiYzk4NzQ4NzU4N2IzOTViYzZlOTY5ZmE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjUs
NiArNjUsNyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB0b3BDb250ZW50SW5zZXQ7CiAg
ICAgZW5jb2RlciA8PCBtZWRpYVZvbHVtZTsKICAgICBlbmNvZGVyIDw8IG11dGVkOworICAgIGVu
Y29kZXIgPDwgb3BlbmVkQnlET007CiAgICAgZW5jb2RlciA8PCBtYXlTdGFydE1lZGlhV2hlbklu
V2luZG93OwogICAgIGVuY29kZXIgPDwgbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkOwogICAgIGVu
Y29kZXIgPDwgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OwpAQCAtMjkwLDYgKzI5MSw4IEBAIHN0
ZDo6b3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
cGFyYW1ldGVycy5tdXRlZCA9ICptdXRlZFN0YXRlRmxhZ3M7CiAKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMub3BlbmVkQnlET00pKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tYXlTdGFydE1lZGlhV2hl
bkluV2luZG93KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMubWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBlYjFl
ZTA5NTlhNTEzZGI4MjU3ZDY0YWRkY2VlYTUwOWI3YTNlODZlLi41NTcwZjhkZjQ5ODYzZDgwNDJh
OTM4NjQ5NDQ0NzU0ODc1ZjY2MDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMjAsNiArMTIwLDcgQEAgc3RydWN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIAogICAgIGZsb2F0IG1lZGlhVm9sdW1lOwogICAg
IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQ7CisgICAgYm9vbCBv
cGVuZWRCeURPTSB7IGZhbHNlIH07CiAgICAgYm9vbCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93
OwogICAgIGJvb2wgbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKaW5kZXggYWU2ZjBiNTVkOTlm
MzIxY2Q3ODU1NTYxMDYzNGE1Yzg2ZGEwMTMzOC4uOTUxMTc2ZDJmYmZmNmYzYWI5NTZhMTY4NmY0
YmQ4NjQ5YzVjMWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SU5hdmlnYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbi5oCkBAIC0xNDQsNiArMTQ0LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkxvY2tCYWNr
Rm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE5h
dmlnYXRpb25BY3Rpb24ubG9ja0JhY2tGb3J3YXJkTGlzdDsgfQogCiAgICAgV1RGOjpTdHJpbmcg
Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmF2
aWdhdGlvbkFjdGlvbi5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7IH0KKyAgICBXZWJD
b3JlOjpTYW5kYm94RmxhZ3MgZWZmZWN0aXZlU2FuZGJveEZsYWdzKCkgY29uc3QgeyByZXR1cm4g
bV9sYXN0TmF2aWdhdGlvbkFjdGlvbi5lZmZlY3RpdmVTYW5kYm94RmxhZ3M7IH0KIAogICAgIHZv
aWQgc2V0TGFzdE5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYgbmF2aWdhdGlvbkFjdGlvbikgeyBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uID0gbmF2aWdh
dGlvbkFjdGlvbjsgfQogICAgIGNvbnN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEmIGxh
c3ROYXZpZ2F0aW9uQWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmF2aWdhdGlvbkFjdGlv
bjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXgg
MjhjMjBlOWIzYzgwYjA5MmQ0NzgyNGJhZmE5ZjBjMmRlMjNhODQ4OC4uNmQwZGFhNTNjYTUwMDcx
MDczOTA1MDNkMjgwOTk1YTRjZDg3NmI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMTUyLDcgKzExNTIsNyBAQCB2b2lkIFVJRGVsZWdhdGU6
OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQ
YWdlUHJveAogICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4g
bWFpbkZyYW1lSUQ7CiAgICAgICAgIGlmIChhdXRvKiBtYWluRnJhbWUgPSBmcmFtZS5wYWdlKCkg
PyBmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpIDogbnVsbHB0cikKICAgICAgICAgICAgIG1haW5G
cmFtZUlEID0gbWFpbkZyYW1lLT5mcmFtZUlEKCk7Ci0gICAgICAgIEZyYW1lSW5mb0RhdGEgZnJh
bWVJbmZvIHsgZnJhbWUuaXNNYWluRnJhbWUoKSwgeyB9LCB1c2VyTWVkaWFPcmlnaW4uc2VjdXJp
dHlPcmlnaW4oKSwgZnJhbWUuZnJhbWVJRCgpLCBtYWluRnJhbWVJRCB9OworICAgICAgICBGcmFt
ZUluZm9EYXRhIGZyYW1lSW5mbyB7IGZyYW1lLmlzTWFpbkZyYW1lKCksIHsgfSwgdXNlck1lZGlh
T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIHsgfSwgZnJhbWUuZnJhbWVJRCgpLCBtYWluRnJhbWVJ
RCB9OwogICAgICAgICBSZXRhaW5QdHI8V0tGcmFtZUluZm8+IGZyYW1lSW5mb1dyYXBwZXIgPSB3
cmFwcGVyKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoV1RGTW92ZShmcmFtZUluZm8pLCBmcmFtZS5w
YWdlKCkpKTsKIAogICAgICAgICBXS01lZGlhQ2FwdHVyZVR5cGUgdHlwZSA9IFdLTWVkaWFDYXB0
dXJlVHlwZUNhbWVyYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmNwcAppbmRleCBiODhhMDc4NDZkNzhkNjAwZGU3YzAyM2EwYmQwNDA5NmYwODU3
YTZjLi5kYjkzMjVjMmViNWE5N2Y2ZTgwODljMGVhYzVlNTA2ZTAyNjc1ZTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0xNDks
NiArMTQ5LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Y2FuY2VsKCkKICAgICAgICAg
dHJ1ZSwgLy8gaXNNYWluRnJhbWUKICAgICAgICAgbV9yZXF1ZXN0LAogICAgICAgICBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21VUkwobV9yZXF1ZXN0LnVybCgpKSwKKyAgICAgICAgeyB9LAogICAg
ICAgICBtX21haW5GcmFtZS0+ZnJhbWVJRCgpLAogICAgICAgICBzdGQ6Om51bGxvcHQsCiAgICAg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDgyOGYyYmFj
MDM5NzhkNTEzNGVlNzgwZmEwMmI4Y2UxYTlmZjJhMTQuLjY5ODNlZjEzMDM2MzRkOTEyMTU5MzU1
NTNiMTNkMDFlZDUyZWM3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtMTQwMiw2ICsxNDAyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0
V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICBs
b2FkUGFyYW1ldGVycy5sb2NrSGlzdG9yeSA9IG5hdmlnYXRpb24ubG9ja0hpc3RvcnkoKTsKICAg
ICBsb2FkUGFyYW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi5sb2NrQmFj
a0ZvcndhcmRMaXN0KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuY2xpZW50UmVkaXJlY3RTb3VyY2VG
b3JIaXN0b3J5ID0gbmF2aWdhdGlvbi5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKTsK
KyAgICBsb2FkUGFyYW1ldGVycy5lZmZlY3RpdmVTYW5kYm94RmxhZ3MgPSBuYXZpZ2F0aW9uLmVm
ZmVjdGl2ZVNhbmRib3hGbGFncygpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4gPSBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLmV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9
IGV4aXN0aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZTsKICAgICBtYXli
ZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKHByb2Nlc3MsIHVybCwgbV9wYWdlTG9h
ZFN0YXRlLnJlc291cmNlRGlyZWN0b3J5VVJMKCksIGxvYWRQYXJhbWV0ZXJzLnNhbmRib3hFeHRl
bnNpb25IYW5kbGUpOwpAQCAtMTU4OCw2ICsxNTg5LDcgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlv
bj4gV2ViUGFnZVByb3h5Ojpsb2FkU2ltdWxhdGVkUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJl
cXUKICAgICBsb2FkUGFyYW1ldGVycy5sb2NrSGlzdG9yeSA9IG5hdmlnYXRpb24tPmxvY2tIaXN0
b3J5KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJkTGlzdCA9IG5hdmlnYXRp
b24tPmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKICAgICBsb2FkUGFyYW1ldGVycy5jbGllbnRSZWRp
cmVjdFNvdXJjZUZvckhpc3RvcnkgPSBuYXZpZ2F0aW9uLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZv
ckhpc3RvcnkoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5lZmZlY3RpdmVTYW5kYm94RmxhZ3MgPSBu
YXZpZ2F0aW9uLT5lZmZlY3RpdmVTYW5kYm94RmxhZ3MoKTsKICAgICBsb2FkUGFyYW1ldGVycy5p
c05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluID0gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bigpOwogCiAgICAgc2ltdWxhdGVkUmVzcG9uc2Uuc2V0RXhwZWN0ZWRDb250ZW50TGVuZ3RoKGRh
dGEuc2l6ZSgpKTsKQEAgLTM0NDEsNyArMzQ0Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVh
clNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudE92ZXJyaWRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiogbmF2
aWdhdGlvbiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uLCBQ
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQs
IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgcG9s
aWNpZXMsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJiBzZW5kZXIpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGlj
eUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBSZWY8QVBJOjpOYXZpZ2F0aW9u
QWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQg
cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0
IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbywgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYm
IHBvbGljaWVzLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyKQogewogICAgIFdF
QlBBR0VQUk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAicmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5
RGVjaXNpb246IGZyYW1lSUQ9JWxsdSwgbmF2aWdhdGlvbklEPSVsbHUsIHBvbGljeUFjdGlvbj0l
dSIsIGZyYW1lLmZyYW1lSUQoKS50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+
bmF2aWdhdGlvbklEKCkgOiAwLCAodW5zaWduZWQpcG9saWN5QWN0aW9uKTsKIApAQCAtMzQ5NCw3
ICszNDk2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICAgICAgfQogICAgIH0KIAot
ICAgIHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JOYXZpZ2F0aW9uKCp0aGlzLCAq
bmF2aWdhdGlvbiwgc291cmNlUHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV1RGTW92ZSh3ZWJzaXRlRGF0YVN0b3JlKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24gPSBS
ZWYgeyAqbmF2aWdhdGlvbiB9LCBuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9u
QWN0aW9uKSwgc291cmNlUHJvY2VzcyA9IHNvdXJjZVByb2Nlc3MuY29weVJlZigpLAorICAgIHBy
b2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnByb2Nlc3NGb3JOYXZpZ2F0aW9uKCp0aGlzLCAqbmF2aWdh
dGlvbiwgc291cmNlUHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCwgZnJhbWVJbmZvLCBXVEZNb3ZlKHdlYnNpdGVEYXRhU3RvcmUpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBvbGljeUFjdGlvbiwgbmF2aWdhdGlv
biA9IFJlZiB7ICpuYXZpZ2F0aW9uIH0sIG5hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb24pLCBzb3VyY2VQcm9jZXNzID0gc291cmNlUHJvY2Vzcy5jb3B5UmVmKCksCiAg
ICAgICAgIHBvbGljaWVzID0gV1RGTW92ZShwb2xpY2llcyksIHNlbmRlciA9IFdURk1vdmUoc2Vu
ZGVyKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudF0gKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2Vzc0Zvck5hdmlnYXRpb24sIFN1c3BlbmRlZFBhZ2VQcm94eSogZGVzdGluYXRpb25T
dXNwZW5kZWRQYWdlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgbXV0YWJsZSB7CiAgICAgICAgIC8v
IElmIHRoZSBuYXZpZ2F0aW9uIGhhcyBiZWVuIGRlc3Ryb3llZCwgdGhlbiBubyBuZWVkIHRvIHBy
b2NlZWQuCiAgICAgICAgIGlmIChpc0Nsb3NlZCgpIHx8ICFuYXZpZ2F0aW9uU3RhdGUoKS5oYXNO
YXZpZ2F0aW9uKG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpKSkgewpAQCAtNTQxNiw3ICs1NDE4
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICBSZWYgbGlzdGVuZXIgPSBmcmFtZS5z
ZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9LCBmcmFtZSA9IFJlZiB7IGZyYW1lIH0sIHNlbmRlciA9IFdURk1vdmUoc2VuZGVyKSwgbmF2
aWdhdGlvbiwgbmF2aWdhdGlvbkFjdGlvbiwgZnJhbWVJbmZvLCB1c2VyRGF0YU9iamVjdCA9IHBy
b2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgp
XSAoUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqIHBvbGlj
aWVzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQsIFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJuaW5nPiYmIHNhZmVCcm93c2luZ1dhcm5pbmcs
IHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzQXBwQm91bmREb21h
aW4pIG11dGFibGUgewogICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywg
ImRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246IGxpc3RlbmVyIGNhbGxlZDogZnJhbWVJ
RD0lbGx1LCBuYXZpZ2F0aW9uSUQ9JWxsdSwgcG9saWN5QWN0aW9uPSV1LCBzYWZlQnJvd3NpbmdX
YXJuaW5nPSVkLCBpc0FwcEJvdW5kRG9tYWluPSVkIiwgZnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2
NCgpLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCAodW5zaWdu
ZWQpcG9saWN5QWN0aW9uLCAhIXNhZmVCcm93c2luZ1dhcm5pbmcsICEhaXNBcHBCb3VuZERvbWFp
bik7CiAKLSAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzLCBmcmFtZSwgc2VuZGVyID0gV1RGTW92ZShzZW5kZXIpLCBuYXZpZ2F0aW9uLCBuYXZpZ2F0
aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudCwgcG9saWNpZXMgPSBSZWZQdHIgeyBwb2xpY2llcyB9XSAoUG9saWN5QWN0aW9u
IHBvbGljeUFjdGlvbikgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIg
PSBbdGhpcywgcHJvdGVjdGVkVGhpcywgZnJhbWUsIGZyYW1lSW5mbywgc2VuZGVyID0gV1RGTW92
ZShzZW5kZXIpLCBuYXZpZ2F0aW9uLCBuYXZpZ2F0aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0
aW9uQWN0aW9uKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgcG9saWNpZXMgPSBSZWZQ
dHIgeyBwb2xpY2llcyB9XSAoUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbikgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICBp
ZiAoIXBvbGljaWVzKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBkZWZhdWx0UG9s
aWNpZXMgPSBtX2NvbmZpZ3VyYXRpb24tPmRlZmF1bHRXZWJzaXRlUG9saWNpZXMoKSkKQEAgLTU0
MjUsNyArNTQyNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgICAgICAgICAgICAg
aWYgKHBvbGljaWVzKQogICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uLT5zZXRFZmZlY3Rp
dmVDb250ZW50TW9kZShlZmZlY3RpdmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMo
KnBvbGljaWVzLCBuYXZpZ2F0aW9uLT5jdXJyZW50UmVxdWVzdCgpKSk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICByZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rp
b24sIG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQsIGZyYW1lLCBXVEZNb3ZlKHBvbGljaWVzKSwgV1RGTW92ZShz
ZW5kZXIpKTsKKyAgICAgICAgICAgIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKHBv
bGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwg
cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgZnJhbWUsIGZyYW1lSW5mbywgV1RGTW92ZShw
b2xpY2llcyksIFdURk1vdmUoc2VuZGVyKSk7CiAgICAgICAgIH07CiAKICNpZiBFTkFCTEUoQVBQ
X0JPVU5EX0RPTUFJTlMpCkBAIC04MjA3LDYgKzgyMDksNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYg
cHJvYwogICAgIHBhcmFtZXRlcnMudG9wQ29udGVudEluc2V0ID0gbV90b3BDb250ZW50SW5zZXQ7
CiAgICAgcGFyYW1ldGVycy5tZWRpYVZvbHVtZSA9IG1fbWVkaWFWb2x1bWU7CiAgICAgcGFyYW1l
dGVycy5tdXRlZCA9IG1fbXV0ZWRTdGF0ZTsKKyAgICBwYXJhbWV0ZXJzLm9wZW5lZEJ5RE9NID0g
bV9vcGVuZWRCeURPTTsKICAgICBwYXJhbWV0ZXJzLm1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cg
PSBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAgICAgcGFyYW1ldGVycy5tZWRpYVBsYXli
YWNrSXNTdXNwZW5kZWQgPSBtX21lZGlhUGxheWJhY2tJc1N1c3BlbmRlZDsKICAgICBwYXJhbWV0
ZXJzLm1pbmltdW1TaXplRm9yQXV0b0xheW91dCA9IG1fbWluaW11bVNpemVGb3JBdXRvTGF5b3V0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAxZmEyN2M3ODgyMDA5
MTI2NzY0MzdkMzJkOTcxM2VjYmJlZjQ1NWMyLi42OTQ0NzMxYmVmMTRiNTJjM2Y4NjI5YmM1NTJj
YjZkYjQ4MGIwMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTIyMiw3ICsxMjIyLDcgQEAgcHVibGljOgogICAgIGNsYXNzIFBvbGljeURlY2lzaW9uU2VuZGVy
OwogICAgIGVudW0gY2xhc3MgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA6IGJvb2wgeyBO
bywgWWVzIH07CiAgICAgdm9pZCByZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGlj
eUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYm
LCBzdGQ6OnZhcmlhbnQ8UmVmPEFQSTo6TmF2aWdhdGlvblJlc3BvbnNlPiwgUmVmPEFQSTo6TmF2
aWdhdGlvbkFjdGlvbj4+JiYsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJiwgc3RkOjpvcHRp
b25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+ID0geyB9LCBXaWxsQ29udGludWVMb2FkSW5O
ZXdQcm9jZXNzID0gV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2Vzczo6Tm8pOwotICAgIHZvaWQg
cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBB
UEk6Ok5hdmlnYXRpb24qLCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmLCBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5JiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBv
bGljaWVzPiYmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOworICAgIHZvaWQgcmVjZWl2
ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6Ok5h
dmlnYXRpb24qLCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPiYmLCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5JiwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIFJlZlB0
cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmKTsK
IAogICAgIHZvaWQgYmFja0ZvcndhcmRSZW1vdmVkSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAppbmRleCAzNmRlNTg4MDJjZTZlYzk0YmY0ZmNjOGYyY2U0MWZmOWJlNzM2ZWNm
Li5iNjVlMDg2ZDg4ZWFjZmViYjM0MzNkN2RkMTI2OGExOTFkY2JkZDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xODE0LDkgKzE4MTQsOSBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpyZW1vdmVQcm9jZXNzRnJvbU9yaWdpbkNhY2hlU2V0KFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcykKICAgICAgICAgbV9zd2FwcGVkUHJvY2Vzc2VzUGVyUmVnaXN0
cmFibGVEb21haW4ucmVtb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKTsKIH0KIAotdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBB
UEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgc291cmNl
UHJvY2VzcywgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmPFdlYnNpdGVEYXRhU3RvcmU+JiYg
ZGF0YVN0b3JlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb24oV2ViUGFnZVByb3h5
JiBwYWdlLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY29uc3QgRnJh
bWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiBkYXRhU3RvcmUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVk
UGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChwYWdlLCBuYXZpZ2F0aW9uLCBzb3VyY2VQcm9j
ZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBX
VEZNb3ZlKGRhdGFTdG9yZSksIFt0aGlzLCBwYWdlID0gUmVmIHsgcGFnZSB9LCBuYXZpZ2F0aW9u
ID0gUmVmIHsgbmF2aWdhdGlvbiB9LCBzb3VyY2VQcm9jZXNzID0gc291cmNlUHJvY2Vzcy5jb3B5
UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCBTdXNwZW5kZWRQYWdlUHJveHkqIHN1c3BlbmRlZFBhZ2UsIGNvbnN0IFN0
cmluZyYgcmVhc29uKSBtdXRhYmxlIHsKKyAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFs
KHBhZ2UsIG5hdmlnYXRpb24sIHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkwsIHBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGZyYW1lSW5mbywgV1RGTW92ZShkYXRhU3RvcmUp
LCBbdGhpcywgcGFnZSA9IFJlZiB7IHBhZ2UgfSwgbmF2aWdhdGlvbiA9IFJlZiB7IG5hdmlnYXRp
b24gfSwgc291cmNlUHJvY2VzcyA9IHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkws
IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgU3Vz
cGVuZGVkUGFnZVByb3h5KiBzdXNwZW5kZWRQYWdlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgbXV0
YWJsZSB7CiAgICAgICAgIC8vIFdlIGFyZSBwcm9jZXNzLXN3YXBwaW5nIHNvIGF1dG9tYXRpYyBw
cm9jZXNzIHByZXdhcm1pbmcgd291bGQgYmUgYmVuZWZpY2lhbCBpZiB0aGUgY2xpZW50IGhhcyBu
b3QgZXhwbGljaXRseSBlbmFibGVkIC8gZGlzYWJsZWQgaXQuCiAgICAgICAgIGJvb2wgZG9pbmdB
bkF1dG9tYXRpY1Byb2Nlc3NTd2FwID0gcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCA9PSBQ
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyAmJiBwcm9jZXNzLnB0cigpICE9IHNvdXJj
ZVByb2Nlc3MucHRyKCk7CiAgICAgICAgIGlmIChkb2luZ0FuQXV0b21hdGljUHJvY2Vzc1N3YXAg
JiYgIWNvbmZpZ3VyYXRpb24oKS53YXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ1NldEJ5Q2xpZW50
KCkgJiYgIWNvbmZpZ3VyYXRpb24oKS5jbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0b21hdGljUHJv
Y2Vzc1ByZXdhcm1pbmcoKSkgewpAQCAtMTgzOSw3ICsxODM5LDcgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBBUEk6
Ok5hdmlnYXQKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5h
dmlnYXRpb25JbnRlcm5hbChXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSTo6TmF2aWdhdGlv
biYgbmF2aWdhdGlvbiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25z
dCBVUkwmIHBhZ2VTb3VyY2VVUkwsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmPFdlYnNpdGVEYXRhU3RvcmU+JiYgZGF0YVN0b3Jl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFN1c3BlbmRl
ZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChXZWJQYWdlUHJveHkm
IHBhZ2UsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwmIHBhZ2VTb3VyY2VVUkwsIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY29uc3Qg
RnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiBkYXRhU3Rv
cmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgU3VzcGVu
ZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byYgdGFyZ2V0VVJMID0gbmF2aWdhdGlvbi5jdXJyZW50UmVxdWVzdCgpLnVybCgpOwog
ICAgIGF1dG8gdGFyZ2V0UmVnaXN0cmFibGVEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiB7IHRhcmdldFVSTCB9OwpAQCAtMTg5Nyw2ICsxODk3LDEzIEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JiBwYWdlLCBj
b25zdCBBUEk6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBJZiBpdCBpcyB0aGUgZmlyc3Qg
bmF2aWdhdGlvbiBpbiBhIERPTSBwb3B1cCBhbmQgdGhlcmUgaXMgbm8gb3BlbmVyLCB0aGVuIGZv
cmNlIGEgcHJvY2VzcyBzd2FwIG5vIG1hdHRlciB3aGF0IHNpbmNlCisgICAgLy8gcG9wdXAgd2lu
ZG93cyBhcmUgb3JpZ2luYWxseSBjcmVhdGVkIGluIHRoZWlyIG9wZW5lcidzIHByb2Nlc3MuCisg
ICAgLy8gTm90ZSB0aGF0IHdlIGN1cnJlbnRseSBkbyBub3QgcHJvY2VzcyBzd2FwIGlmIHRoZSB3
aW5kb3cgcG9wdXAgaGFzIGEgbmFtZS4gSW4gdGhlb3J5LCB3ZSBzaG91bGQgYmUgYWJsZSB0byBz
d2FwIGluIHRoaXMgY2FzZSB0b28KKyAgICAvLyBidXQgd2Ugd291bGQgbmVlZCB0byB0cmFuc2Zl
ciBvdmVyIHRoZSBuYW1lIHRvIHRoZSBuZXcgcHJvY2Vzcy4gQXQgdGhpcyBwb2ludCwgaXQgaXMg
bm90IGNsZWFyIGl0IGlzIHdvcnRoIHRoZSBleHRyYSBjb21wbGV4aXR5LgorICAgIGlmIChwYWdl
Lm9wZW5lZEJ5RE9NKCkgJiYgIW5hdmlnYXRpb24ub3BlbmVkQnlET01XaXRoT3BlbmVyKCkgJiYg
IXBhZ2UuaGFzQ29tbWl0dGVkQW55UHJvdmlzaW9uYWxMb2FkcygpICYmIGZyYW1lSW5mby5mcmFt
ZU5hbWUuaXNFbXB0eSgpICYmICF0YXJnZXRVUkwucHJvdG9jb2xJc0Jsb2IoKSkKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNyZWF0ZU5ld1Byb2Nlc3MoKSwgbnVsbHB0ciwgIlBy
b2Nlc3Mgc3dhcCBiZWNhdXNlIHRoaXMgaXMgYSBmaXJzdCBuYXZpZ2F0aW9uIGluIGEgRE9NIHBv
cHVwIHdpdGhvdXQgb3BlbmVyIl9zKTsKKwogICAgIGlmIChuYXZpZ2F0aW9uLnRyZWF0QXNTYW1l
T3JpZ2luTmF2aWdhdGlvbigpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShzb3VyY2VQcm9jZXNzKSwgbnVsbHB0ciwgIlRoZSB0cmVhdEFzU2FtZU9yaWdpbk5hdmln
YXRpb24gZmxhZyBpcyBzZXQiX3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAppbmRleCA2ODI4ZDM3M2M4YzM5ZGQ0ZTUyNmQ0ZTZlZTg3NjUzMGNiY2NmMDIwLi5l
NDg3ZDc4M2EyYTFmNGJkNzNiYTMxNTg3MDYzMzQyZGJlYmEzNzI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ0Niw3ICs0NDYsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBoYXNGb3JlZ3JvdW5kV2ViUHJvY2Vzc2VzKCkgY29uc3QgeyByZXR1cm4gbV9mb3Jl
Z3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXIudmFsdWUoKTsgfQogICAgIGJvb2wgaGFzQmFja2dyb3Vu
ZFdlYlByb2Nlc3NlcygpIGNvbnN0IHsgcmV0dXJuIG1fYmFja2dyb3VuZFdlYlByb2Nlc3NDb3Vu
dGVyLnZhbHVlKCk7IH0KIAotICAgIHZvaWQgcHJvY2Vzc0Zvck5hdmlnYXRpb24oV2ViUGFnZVBy
b3h5JiwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBzb3Vy
Y2VQcm9jZXNzLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgUmVmPFdlYnNpdGVEYXRhU3RvcmU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+
JiYpOworICAgIHZvaWQgcHJvY2Vzc0Zvck5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgY29uc3Qg
QVBJOjpOYXZpZ2F0aW9uJiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBj
b25zdCBVUkwmIHNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY29uc3Qg
RnJhbWVJbmZvRGF0YSYsIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0
IFN0cmluZyYpPiYmKTsKIAogICAgIHZvaWQgZGlkUmVhY2hHb29kVGltZVRvUHJld2FybSgpOwog
CkBAIC01MjMsNyArNTIzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYpOwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpOwogCi0gICAg
dm9pZCBwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKFdlYlBhZ2VQcm94eSYsIGNvbnN0IEFQ
STo6TmF2aWdhdGlvbiYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgc291cmNlUHJvY2VzcywgY29u
c3QgVVJMJiBzb3VyY2VVUkwsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZjxXZWJz
aXRlRGF0YVN0b3JlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYmKTsKKyAgICB2b2lk
IHByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JiwgY29uc3QgQVBJOjpO
YXZpZ2F0aW9uJiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBV
UkwmIHNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgY29uc3QgRnJhbWVJ
bmZvRGF0YSYsIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmlu
ZyYpPiYmKTsKIAogICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHRyeVRha2VQcmV3YXJtZWRQ
cm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggOTlhNTFhYjVmZWFhZTQ3OWEwM2EzZDU4MWM4ODk0NzBiMDBlZTljMi4uOGVhOWU4
MjU4ODkwYzEwYmU0MThlOTgxMWVhMzk3N2E2MGE2Yzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC05NjgsNiArOTY4LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQK
ICAgICAgICAgbmF2aWdhdGlvbkFjdGlvbi5pbml0aWF0ZWRCeU1haW5GcmFtZSgpID09IEluaXRp
YXRlZEJ5TWFpbkZyYW1lOjpZZXMsCiAgICAgICAgIFJlc291cmNlUmVxdWVzdCB7IHJlcXVlc3Rl
ci51cmwgfSwKICAgICAgICAgcmVxdWVzdGVyLnNlY3VyaXR5T3JpZ2luLT5kYXRhKCksCisgICAg
ICAgIHsgfSwKICAgICAgICAgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSUQpLAogICAgICAgICBX
VEZNb3ZlKHBhcmVudEZyYW1lSUQpLAogICAgIH07CkBAIC0xMDEyLDYgKzEwMTMsNyBAQCB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24oY29uc3QgTmF2aWdhdAogICAgICAgICBkb2N1bWVudExvYWRlciA9IHN0YXRpY19jYXN0
PFdlYkRvY3VtZW50TG9hZGVyKj4oY29yZUZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
KTsKIAogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlz
dG9yeSA9IGRvY3VtZW50TG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKTsK
KyAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5lZmZlY3RpdmVTYW5kYm94RmxhZ3MgPSBjb3JlRnJh
bWUtPmxvYWRlcigpLmVmZmVjdGl2ZVNhbmRib3hGbGFncygpOwogCiAgICAgLy8gTm90aWZ5IHRo
ZSBVSVByb2Nlc3MuCiAgICAgUmVmIHByb3RlY3RvciB7ICpjb3JlRnJhbWUgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCBkOTE5ZTQ0OGY3
NTVmOThiNmQwZTllYWI3NGY1M2ZmMjQ4YmJiZjMyLi45YmQ0Y2QyZDBjYjEwM2I0NWFhOGU2YzFk
NDI3YzBiMTdiZjVlZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwCkBAIC0xOTMsNiArMTkzLDcgQEAgRnJhbWVJbmZvRGF0YSBXZWJGcmFtZTo6
aW5mbygpIGNvbnN0CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgdGhlIGZ1bGwg
cmVxdWVzdC4KICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KHVybCgpKSwKICAgICAgICAgU2VjdXJp
dHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUobV9jb3JlRnJhbWUuZ2V0KCkpLAorICAgICAgICBtX2Nv
cmVGcmFtZSA/IG1fY29yZUZyYW1lLT50cmVlKCkubmFtZSgpLnN0cmluZygpIDogU3RyaW5nKCks
CiAgICAgICAgIG1fZnJhbWVJRCwKICAgICAgICAgcGFyZW50ID8gc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+IHsgcGFyZW50LT5mcmFtZUlEKCkgfSA6IHN0ZDo6bnVsbG9w
dCwKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBjMTg2NmEyNWJiOWQ0NzY3MTEwOGM0MDlhOGYyZjRiMzNhYWEzN2Y3Li44ZmU1ZTY1
M2RiZDkwZmYxYjBiNjAyM2IxMjc5N2IxMDc0MTI2N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzI2LDYgKzcyNiw5IEBAIFdlYlBhZ2U6
OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKICAgICBpZiAocGFyYW1ldGVycy5tZWRpYVBsYXliYWNrSXNTdXNwZW5k
ZWQpCiAgICAgICAgIG1fcGFnZS0+c3VzcGVuZEFsbE1lZGlhUGxheWJhY2soKTsKIAorICAgIGlm
IChwYXJhbWV0ZXJzLm9wZW5lZEJ5RE9NKQorICAgICAgICBtX3BhZ2UtPnNldE9wZW5lZEJ5RE9N
KCk7CisKICAgICBtX3BhZ2UtPnNldEdyb3VwTmFtZShtX3BhZ2VHcm91cC0+aWRlbnRpZmllcigp
KTsKICAgICBtX3BhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKHBhcmFtZXRlcnMuZGV2aWNlU2Nh
bGVGYWN0b3IpOwogICAgIG1fcGFnZS0+c2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiht
X3VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24pOwpAQCAtMTczMyw2ICsxNzM2LDkgQEAgdm9p
ZCBXZWJQYWdlOjpsb2FkUmVxdWVzdChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQog
ICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0Q2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KGxv
YWRQYXJhbWV0ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSk7CiAgICAgZnJhbWVM
b2FkUmVxdWVzdC5zZXRJc1JlcXVlc3RGcm9tQ2xpZW50T3JVc2VySW5wdXQoKTsKIAorICAgIGlm
IChsb2FkUGFyYW1ldGVycy5lZmZlY3RpdmVTYW5kYm94RmxhZ3MpCisgICAgICAgIGNvcmVQYWdl
KCktPm1haW5GcmFtZSgpLmxvYWRlcigpLmZvcmNlU2FuZGJveEZsYWdzKGxvYWRQYXJhbWV0ZXJz
LmVmZmVjdGl2ZVNhbmRib3hGbGFncyk7CisKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlk
Z2UoKS5sb2FkUmVxdWVzdChXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpKTsKIAogICAgIEFTU0VS
VCghbV9wZW5kaW5nTmF2aWdhdGlvbklEKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhYzY0YTE2MTQ3ZTIzOWM0MmM2MTUzM2NhODM2NmY3ZDNl
MjY5ZjI0Li4zMmFmZDk4OTNiYTcyMjY4ZDI3M2NhOTNmOGU4MWZiMGU1ZTMzNTQ0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjEtMTAtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mtc3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEg
cG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkwCisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCBleGlz
dGluZyBBUEkgdGVzdHMgdG8gcmVmbGVjdCBiZWhhdmlvciBjaGFuZ2UuCisgICAgICAgIEFsc28g
ZXh0ZW5kIGFuIEFQSSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IGEgcG9wdXAgb3BlbmVkIGJ5IEpT
IGNhbiBzdGlsbCBjbG9zZSBpdHNlbGYKKyAgICAgICAgdmlhIEpTIChieSBjYWxsaW5nIHdpbmRv
dy5jbG9zZSgpKSwgZXZlbiBpbiB0aGUgY2FzZSB3aGVyZSB3ZSBwcm9jZXNzIHN3YXAuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tOgorCiAyMDIxLTEwLTIwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGlPUyBidWlsZCBhZnRlciByMjg0NTM5CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCA0ZjJlMjYyYzJkNDA0ZDVhMzgyMjBmNTk3
Yjk5NTkyOTM1MjcxYjk1Li5mYmQ2NTc3OGNmMTk1NDFiMzU1MzEyNTczYjNmYWQwOTYwZTNlN2Iw
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTg2LDYgKzg2LDcgQEAgc3Rh
dGljIEhhc2hTZXQ8cGlkX3Q+IHNlZW5QSURzOwogc3RhdGljIGJvb2wgd2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdDsKIHN0YXRpYyBib29sIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdDsKIHN0YXRp
YyBib29sIHNob3VsZENvbnZlcnRUb0Rvd25sb2FkOworc3RhdGljIGJvb2wgZGlkQ2xvc2VXaW5k
b3c7CiBzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiBjbGllbnRSZWRpcmVjdFNvdXJjZVVSTDsKIHN0
YXRpYyBSZXRhaW5QdHI8TlNVUkw+IGNsaWVudFJlZGlyZWN0RGVzdGluYXRpb25VUkw7CiAKQEAg
LTI0MSwxMCArMjQyLDE4IEBAIC0gKG51bGxhYmxlIFdLV2ViVmlldyAqKXdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgY3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0CiB7CiAgICAgY3JlYXRl
ZFdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IFtjcmVhdGVkV2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6X25hdmlnYXRpb25EZWxlZ2F0
ZS5nZXQoKV07CisgICAgW2NyZWF0ZWRXZWJWaWV3IHNldFVJRGVsZWdhdGU6c2VsZl07CiAgICAg
ZGlkQ3JlYXRlV2ViVmlldyA9IHRydWU7CiAgICAgcmV0dXJuIGNyZWF0ZWRXZWJWaWV3LmdldCgp
OwogfQogCistICh2b2lkKXdlYlZpZXdEaWRDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldworewor
ICAgIEVYUEVDVF9FUShjcmVhdGVkV2ViVmlldy5nZXQoKSwgd2ViVmlldyk7CisgICAgY3JlYXRl
ZFdlYlZpZXcgPSBudWxscHRyOworICAgIGRpZENsb3NlV2luZG93ID0gdHJ1ZTsKK30KKwogLSAo
dm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVs
V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1l
SW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSgpKWNvbXBsZXRpb25IYW5k
bGVyCiB7CiAgICAgZGlkUmVjZWl2ZUFsZXJ0ID0gdHJ1ZTsKQEAgLTQ1Niw3ICs0NjUsNyBAQCBz
dGF0aWMgY29uc3QgY2hhciogd2luZG93T3BlblNhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXMgPSBS
IlBTT05SRVNPVVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAg
ICAgaWYgKCFvcGVuZXIpCi0gICAgICAgIHdpbmRvdy5vcGVuKCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvbWFpbi5odG1sIiwgIl9ibGFuayIsICJub29wZW5lciIpOworICAgICAgICB3aW5kb3cub3Bl
bigicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiLCAiX2JsYW5rIiwgIm5vb3BlbmVy
Iik7CiB9CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwpAQCAtMTI4Myw3ICsxMjkyLDggQEAg
VEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5l
cikKICAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKICAgICBFWFBFQ1RfVFJVRSghIXBpZDIpOwogCi0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIp
OworICAgIC8vIFNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vzcy1zd2FwLCBldmVu
IHRob3VnaCB0aGUgbmF2aWdhdGlvbiBpcyBzYW1lLXNpdGUuCisgICAgRVhQRUNUX05FKHBpZDEs
IHBpZDIpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuV2l0aE9w
ZW5lcikKQEAgLTEzMzUsNyArMTM0NSw4IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlV2lu
ZG93T3Blbk5vT3BlbmVyKQogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29u
ZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CiAgICAgW3dlYlZp
ZXdDb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5ID0gWUVTOwotICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1l
IGFsbG9jXSBpbml0V2l0aEJ5dGVzOndpbmRvd09wZW5TYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVz
XSk7CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRd
KTsKKyAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Vi
a2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZVNpdGVOb09wZW5lclRlc3RC
eXRlc107CiAgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFu
ZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKQEAg
LTEzNjMsNyArMTM3NCwyMCBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZVdpbmRvd09wZW5O
b09wZW5lcikKICAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKICAgICBFWFBFQ1RfVFJVRSghIXBpZDIpOwogCi0gICAgRVhQRUNUX0VRKHBpZDEs
IHBpZDIpOworICAgIC8vIFNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vzcy1zd2Fw
LCBldmVuIHRob3VnaCB0aGUgbmF2aWdhdGlvbiBpcyBzYW1lLXNpdGUuCisgICAgRVhQRUNUX05F
KHBpZDEsIHBpZDIpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL3BvcHVwMi5odG1sIl1dOworICAgIFtjcmVhdGVkV2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRv
bmUgPSBmYWxzZTsKKyAgICBFWFBFQ1RfRVEocGlkMiwgW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl0pOworCisgICAgLy8gU2luY2UgdGhlIHdpbmRvdyB3YXMgb3BlbiB2aWEg
SlMsIGl0IHNob3VsZCBiZSBhYmxlIHRvIGNsb3NlIGl0c2VsZi4KKyAgICBkaWRDbG9zZVdpbmRv
dyA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5k
b3cuY2xvc2UoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRpZENsb3NlV2luZG93KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NT
aXRlQmxhbmtUYXJnZXRXaXRoT3BlbmVyKQpAQCAtMTUyMyw3ICsxNTQ3LDggQEAgVEVTVChQcm9j
ZXNzU3dhcCwgU2FtZVNpdGVCbGFua1RhcmdldE5vT3BlbmVyKQogICAgIGF1dG8gcGlkMiA9IFtj
cmVhdGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEh
cGlkMik7CiAKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisgICAgLy8gU2luY2UgdGhlcmUg
aXMgbm8gb3BlbmVyLCB3ZSBwcm9jZXNzLXN3YXAsIGV2ZW4gdGhvdWdoIHRoZSBuYXZpZ2F0aW9u
IGlzIHNhbWUtc2l0ZS4KKyAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CiB9CiAKIFRFU1QoUHJv
Y2Vzc1N3YXAsIFNlcnZlclJlZGlyZWN0RnJvbU5ld1dlYlZpZXcpCkBAIC02MjY5LDcgKzYyOTQs
OSBAQCBURVNUKFByb2Nlc3NTd2FwLCBHb0JhY2tUb1N1c3BlbmRlZFBhZ2VXaXRoTWFpbkZyYW1l
SURUaGF0SXNOb3RPbmUpCiAgICAgLy8gTmV3IFdLV2ViVmlldyBoYXMgbm93IG5hdmlnYXRlZCB0
byB3ZWJraXQub3JnLgogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluMi5odG1sIiwgW1tjcmVhdGVkV2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CiAg
ICAgYXV0byBwaWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Ci0g
ICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworCisgICAgLy8gV2UgcHJvY2Vzcy1zd2FwIHNpbmNl
IHRoZXJlIGlzIG5vIG9wZW5lciByZWxhdGlvbnNoaXAuCisgICAgRVhQRUNUX05FKHBpZDEsIHBp
ZDIpOwogCiAgICAgLy8gQ2xpY2sgbGluayBpbiBuZXcgV0tXZWJWaWV3IHNvIHRoYXQgaXQgbmF2
aWdhdGVzIGNyb3NzLXNpdGUgdG8gYXBwbGUuY29tLgogICAgIFtjcmVhdGVkV2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJ0ZXN0TGluay5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxd
OwpAQCAtNjI4OCw3ICs2MzE1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29CYWNrVG9TdXNwZW5k
ZWRQYWdlV2l0aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQogCiAgICAgRVhQRUNUX1dLX1NUUkVR
KEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiLCBbW2NyZWF0ZWRXZWJWaWV3IFVS
TF0gYWJzb2x1dGVTdHJpbmddKTsKICAgICBhdXRvIHBpZDQgPSBbY3JlYXRlZFdlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkNCk7IC8vIFNob3Vs
ZCBoYXZlIHByb2Nlc3Mtc3dhcHBlZCB0byB0aGUgb3JpZ2luYWwgInN1c3BlbmRlZCIgcHJvY2Vz
cy4KKyAgICBFWFBFQ1RfRVEocGlkMiwgcGlkNCk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dh
cHBlZCB0byB0aGUgb3JpZ2luYWwgInN1c3BlbmRlZCIgcHJvY2Vzcy4KIAogICAgIC8vIERvIGEg
ZnJhZ21lbnQgbmF2aWdhdGlvbiBpbiB0aGUgb3JpZ2luYWwgV0tXZWJWaWV3IGFuZCBtYWtlIHN1
cmUgdGhpcyBkb2VzIG5vdCBjcmFzaC4KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluMS5odG1sI3Rlc3RMaW5rIl1dOwpAQCAtNjI5OCw3ICs2MzI1LDcgQEAgVEVTVChQcm9jZXNz
U3dhcCwgR29CYWNrVG9TdXNwZW5kZWRQYWdlV2l0aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQog
CiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwj
dGVzdExpbmsiLCBbW3dlYlZpZXcxIFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKICAgICBhdXRvIHBp
ZDUgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKLSAgICBFWFBFQ1Rf
RVEocGlkMSwgcGlkNSk7CisgICAgRVhQRUNUX0VRKHBpZDIsIHBpZDUpOwogfQogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMzN2RiNGEwOTk0OTU1ZTk2ZTA3ZTBjMmI1YjAxYjdm
ZjUxMjRjNGYuLmMzMWY5NzAxNjlhYWQyNTA1MDk1MTU3MGM5OGM1MDZmMzc2NDQ4NGQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgcHJvY2Vzcy1zd2FwIGZvciBpbml0aWFsIG5h
dmlnYXRpb24gb2YgYSBwb3B1cCBpZiBpdCBoYXMgbm8gb3BlbmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTAKKyAgICAgICAgPHJkYXI6Ly84
NDQyNTUwND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvZG9tL29wZW4tYW5kLWNsb3NlLWJ5LURPTS5odG1sOgorICAgICAgICBUaGUgdGVz
dCBpcyByZWx5aW5nIG9uIHRlc3RSdW5uZXIud2luZG93Q291bnQoKSwgd2hpY2ggaXMgb25seSBh
YmxlIHRvIGNvdW50IHdpbmRvd3MgaW5zaWRlIHRoZQorICAgICAgICBjdXJyZW50IFdlYlByb2Nl
c3MuIEFkZCBgcmVsPW9wZW5lcmAgdG8gdGhlIGxpbmsgc28gdGhhdCB0aGUgbmV3IHdpbmRvdyBr
ZWVwIG9wZW5pbmcgaW4gdGhlIHNhbWUKKyAgICAgICAgcHJvY2Vzcywgc28gdGhhdCBgdGVzdFJ1
bm5lci53aW5kb3dDb3VudCgpYCBhY3R1YWxseSBrZWVwcyB3b3JraW5nIGFzIGV4cGVjdGVkLgor
ICAgICAgICBJIGFkZGVkIGFuIEFQSSB0ZXN0IHRvIGNvdmVyIHRvIG1ha2Ugc3VyZSB0aGF0IHdp
bmRvd3Mgb3BlbmVkIGJ5IERPTSBjYW4gc3RpbGwgY2xvc2UgdGhlbXNlbHZlcworICAgICAgICBp
biB0aGUgY2FzZSB3aGVyZSB3ZSBzd2FwIHByb2Nlc3Nlcy4KKwogMjAyMS0xMC0yMCAgQXl1bWkg
S29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNvbT4KIAogICAgICAgICBbIGlPUyBdIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9tYW51YWwgdGVz
dHMsIGZhc3QvY2FudmFzL2NhbnZhcy1jcmVhdGVQYXR0ZXJuLXZpZGVvLW1vZGlmeS5odG1sIGFu
ZCBtZWRpYS92aWRlby1jYW52YXMtY3JlYXRlUGF0dGVybi5odG1sIGFyZSBmYWlsaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYjhmMDczYjNkYTY1MzEzNWQ4MmI5NGM2MDYw
OGIzNzMyYzI3MTMxNC4uMWVjZWM4ZWQzZjU3OThiYTRlOGU5NmNlZDQ3OWZmM2I4NzI3ZDBmOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAt
MjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hv
dWxkIHByb2Nlc3Mtc3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQg
aGFzIG5vIG9wZW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMxOTkwCisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLWNvZXAtc2FuZGJveC5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LW9wZW5lci1wb2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
UmViYXNlbGluZSB0ZXN0cyBkdWUgdG8gbWlub3IgbG9nZ2luZyBkaWZmZXJlbmNlcy4KKwogMjAy
MS0xMC0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBNZWRpYVN0cmVh
bVRyYWNrLWJhc2VkIGJhY2tlbmQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vb3Blbi1hbmQtY2xvc2UtYnktRE9NLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9v
cGVuLWFuZC1jbG9zZS1ieS1ET00uaHRtbAppbmRleCA5NTdiNTgzY2RmN2E1NmQ4NTJiYjY5YmZi
MmQ3ZDIxYjk1N2Q2NDBlLi43MWU3MDc1MDk0YjQ0NDhlZWYzNTVlODZiMWIwZmJmZWU3NjVmNWZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRt
bApAQCAtNTMsNyArNTMsNyBAQCBUbyBydW4gdGhlIHRlc3QgbWFudWFsbHkgY2xpY2sgdGhlIGxp
bmsgYmVsb3cuCiA8YnIvPgogPGRpdiBpZD0iY29uc29sZSIgLz4KIDxici8+Ci08YSBocmVmPSJy
ZXNvdXJjZXMvbWlkZGxlLmh0bWwiIGlkPSJhbmNob3JMaW5rIiB0YXJnZXQ9Il9ibGFuayI+T3Bl
biBuZXcgd2luZG93IHRoYXQgd2lsbCBjbG9zZSBpdHNlbGY8L2E+Cis8YSBocmVmPSJyZXNvdXJj
ZXMvbWlkZGxlLmh0bWwiIGlkPSJhbmNob3JMaW5rIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJvcGVu
ZXIiPk9wZW4gbmV3IHdpbmRvdyB0aGF0IHdpbGwgY2xvc2UgaXRzZWxmPC9hPgogPGJyLz48YnIv
PgogCiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1jb2VwLXNh
bmRib3guaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtY29lcC1z
YW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxNzZlMzE0NWE3Nzg0YmJmZWI5M2Y2Yzlk
OGRmZjJhZWY5ZDg0ZjQ3Li4zNzMzMjQ1Y2U3MDlhOGQwY2JhZjliZjhmNzNkODFlYTg1MjI2M2I2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1jb2VwLXNhbmRib3guaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLWNvZXAtc2FuZGJveC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw0IEBACiBDT05TT0xFIE1FU1NBR0U6IE5hdmln
YXRpb24gd2FzIGJsb2NrZWQgYnkgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kKLUNPTlNPTEUg
TUVTU0FHRTogTmF2aWdhdGlvbiB3YXMgYmxvY2tlZCBieSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBv
bGljeQogCiBQQVNTIDxpZnJhbWUgc2FuZGJveD0iYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHMg
YWxsb3ctc2FtZS1vcmlnaW4iPiBTYW5kYm94ZWQgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kg
cG9wdXAgc2hvdWxkIHJlc3VsdCBpbiBhIG5ldHdvcmsgZXJyb3IKIFBBU1MgPGlmcmFtZSBzYW5k
Ym94PSJhbGxvdy1wb3B1cHMgYWxsb3ctc2NyaXB0cyI+IFNhbmRib3hlZCBDcm9zcy1PcmlnaW4t
T3BlbmVyLVBvbGljeSBwb3B1cCBzaG91bGQgcmVzdWx0IGluIGEgbmV0d29yayBlcnJvcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jv
c3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCAxNzZlMzE0NWE3Nzg0YmJmZWI5M2Y2YzlkOGRmZjJhZWY5ZDg0ZjQ3Li4zNzMzMjQ1Y2U3
MDlhOGQwY2JhZjliZjhmNzNkODFlYTg1MjI2M2I2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1w
b2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQgQEAKIENP
TlNPTEUgTUVTU0FHRTogTmF2aWdhdGlvbiB3YXMgYmxvY2tlZCBieSBDcm9zcy1PcmlnaW4tT3Bl
bmVyLVBvbGljeQotQ09OU09MRSBNRVNTQUdFOiBOYXZpZ2F0aW9uIHdhcyBibG9ja2VkIGJ5IENy
b3NzLU9yaWdpbi1PcGVuZXItUG9saWN5CiAKIFBBU1MgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1w
b3B1cHMgYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiI+IFNhbmRib3hlZCBDcm9zcy1P
cmlnaW4tT3BlbmVyLVBvbGljeSBwb3B1cCBzaG91bGQgcmVzdWx0IGluIGEgbmV0d29yayBlcnJv
cgogUEFTUyA8aWZyYW1lIHNhbmRib3g9ImFsbG93LXBvcHVwcyBhbGxvdy1zY3JpcHRzIj4gU2Fu
ZGJveGVkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IHBvcHVwIHNob3VsZCByZXN1bHQgaW4g
YSBuZXR3b3JrIGVycm9yCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441960</attachid>
            <date>2021-10-20 17:19:25 -0700</date>
            <delta_ts>2021-10-20 20:50:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231990-20211020171925.patch</filename>
            <type>text/plain</type>
            <size>52010</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1Nzk5MmYxZjc4ZmJjNjYy
YmNjMmI4MWEzYmZmNWM5MmY0MzAyNTcuLjM3Yzg1MDE5MzJkMTc2ZGJkYjE3M2YxMzlhNDUxMzAy
YmZkNmRlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEtMTAtMjAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mt
c3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5l
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkw
CisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRp
YWwgbmF2aWdhdGlvbiBvZiBhIHBvcHVwIGlmIGl0IGhhcyBubyBvcGVuZXIsIGV2ZW4gaWYgdGhl
IG5hdmlnYXRpb24gaXMKKyAgICAgICAgc2FtZS1zaXRlLiBTd2FwcGluZyBwcm9jZXNzIGlzIG5v
dCBXZWItb2JzZXJ2YWJsZSBoZXJlIHNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciByZWxhdGlvbnNo
aXAuIEhvd2V2ZXIsIHN3YXBwaW5nCisgICAgICAgIHByb2Nlc3NlcyBoYXMgYmVuZWZpdHMgaGVy
ZSBzaW5jZSB3ZSBkb24ndCB3YW50IHRvIGVuZCB1cCB3aXRoIHRvbyBtYW55IHRhYnMgc2hhcmlu
ZyB0aGUgc2FtZSBwcm9jZXNzLgorCisgICAgICAgIFRoaXMgaW1wYWN0cyBHb29nbGUgRHJpdmUg
d2hlcmUgZG91YmxlLWNsaWNraW5nIGEgZG9jdW1lbnQgd2lsbCBvcGVuIEdvb2dsZSBEb2NzIGlu
IGEgbmV3IHRhYiBhbmQgaW4gdGhlIHNhbWUKKyAgICAgICAgV2ViUHJvY2VzcyBhcyBHb29nbGUg
RHJpdmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVkIGV4aXN0aW5nIEFQSSB0ZXN0
cyBhbmQgdGhpcyBpcyBub3QgV2ViLW9ic2VydmFibGUuCisKKyAgICAgICAgKiBTaGFyZWQvRnJh
bWVJbmZvRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lSW5mb0RhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lSW5mb0RhdGE6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRl
cnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rpb25E
YXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjplZmZl
Y3RpdmVTYW5kYm94RmxhZ3MgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpjYW5jZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRp
b25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0ZWRS
ZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmluZm8gY29uc3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9h
ZFJlcXVlc3QpOgorCiAyMDIxLTEwLTIwICBKb2huIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggY3Jhc2ggd2hlbiBjYWxsaW5nIHNldFVzZXJuYW1lRm9yTG9jYWxD
cmVkZW50aWFsV2l0aElECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDAxNWY4NTI0NGM5YWNkNWZmNTBiM2M4
OWRlYzBhNGMxYThkNGY5ZWUuLjlmNTA0NTg5MjAxZTA5NTIyZjFjZjQyMmI3Mjk2N2M3NTYwOWY2
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yNzksNyArMjc5LDcgQEAgcHVibGljOgogICAgIGNvbnN0
IEZyYW1lJiBtYWluRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZS5nZXQoKTsgfQog
CiAgICAgYm9vbCBvcGVuZWRCeURPTSgpIGNvbnN0OwotICAgIHZvaWQgc2V0T3BlbmVkQnlET00o
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE9wZW5lZEJ5RE9NKCk7CiAKICAgICBib29s
IG9wZW5lZEJ5RE9NV2l0aE9wZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbmVkQnlET01XaXRo
T3BlbmVyOyB9CiAgICAgdm9pZCBzZXRPcGVuZWRCeURPTVdpdGhPcGVuZXIoYm9vbCB2YWx1ZSkg
eyBtX29wZW5lZEJ5RE9NV2l0aE9wZW5lciA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Zy
YW1lSW5mb0RhdGEuY3BwCmluZGV4IDg1MTZmNjIwOTIzNTIxOTI1OTlkM2UyZmZiMDQzZmI2NTEz
ZDg4MzQuLmVkNmM3MGNhYTQ0MWM5OTU4MmI0YWIyYjMxZTc0MDQyYmVlZDMyYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCkBAIC0zNSw2ICszNSw3IEBAIHZvaWQgRnJh
bWVJbmZvRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IGlzTWFpbkZyYW1lOwogICAgIGVuY29kZXIgPDwgcmVxdWVzdDsKICAgICBlbmNvZGVy
IDw8IHNlY3VyaXR5T3JpZ2luOworICAgIGVuY29kZXIgPDwgZnJhbWVOYW1lOwogICAgIGVuY29k
ZXIgPDwgZnJhbWVJRDsKICAgICBlbmNvZGVyIDw8IHBhcmVudEZyYW1lSUQ7CiB9CkBAIC01Niw2
ICs1NywxMSBAQCBzdGQ6Om9wdGlvbmFsPEZyYW1lSW5mb0RhdGE+IEZyYW1lSW5mb0RhdGE6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFzZWN1cml0eU9yaWdpbikKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAorICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBm
cmFtZU5hbWU7CisgICAgZGVjb2RlciA+PiBmcmFtZU5hbWU7CisgICAgaWYgKCFmcmFtZU5hbWUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPj4gZnJhbWVJRDsKICAgICBkZWNvZGVy
ID4+IGZyYW1lSUQ7CiAgICAgaWYgKCFmcmFtZUlEKQpAQCAtNzAsNiArNzYsNyBAQCBzdGQ6Om9w
dGlvbmFsPEZyYW1lSW5mb0RhdGE+IEZyYW1lSW5mb0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIpCiAgICAgICAgIFdURk1vdmUoKmlzTWFpbkZyYW1lKSwKICAgICAgICAgV1RGTW92
ZSgqcmVxdWVzdCksCiAgICAgICAgIFdURk1vdmUoKnNlY3VyaXR5T3JpZ2luKSwKKyAgICAgICAg
V1RGTW92ZSgqZnJhbWVOYW1lKSwKICAgICAgICAgV1RGTW92ZSgqZnJhbWVJRCksCiAgICAgICAg
IFdURk1vdmUoKnBhcmVudEZyYW1lSUQpCiAgICAgfX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUlu
Zm9EYXRhLmgKaW5kZXggZjQ5ZjNhMWRlNDEzMDIzMWVhMTE0NmNmMjI5NThlOTg3MDg5MmE0Yi4u
MGYwYmU1NDlmMTJhOGQ5NjVkNTYzY2VjM2FmYzk4NDkwM2IyZjFlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0ZyYW1lSW5mb0RhdGEuaApAQCAtNDMsNiArNDMsNyBAQCBzdHJ1Y3QgRnJhbWVJbmZvRGF0
YSB7CiAgICAgYm9vbCBpc01haW5GcmFtZSB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3Vy
aXR5T3JpZ2luOworICAgIFN0cmluZyBmcmFtZU5hbWU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IHBhcmVudEZyYW1lSUQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
TG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IGFkMTIyMGM4NGY1YzExYzk5OWE5YWM0ZmYxY2M1ZjEy
ZDUzMzFiZWUuLmUxMjZmMzM0ZTQ5YmExOTZkNTQ2MDk4MzU1MmUwOTBhOGVmYmIzMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgdm9p
ZCBMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICBlbmNvZGVyIDw8IGxvY2tIaXN0b3J5OwogICAgIGVuY29kZXIgPDwgbG9ja0JhY2tGb3J3YXJk
TGlzdDsKICAgICBlbmNvZGVyIDw8IGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsKKyAg
ICBlbmNvZGVyIDw8IGVmZmVjdGl2ZVNhbmRib3hGbGFnczsKICAgICBlbmNvZGVyIDw8IGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAgZW5jb2RlciA8PCBleGlzdGluZ05ldHdvcmtS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWU7CiAgICAgZW5jb2RlciA8PCBpc1NlcnZpY2VX
b3JrZXJMb2FkOwpAQCAtMTM2LDYgKzEzNywxMiBAQCBib29sIExvYWRQYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBMb2FkUGFyYW1ldGVycyYgZGF0YSkKICAgICBpZiAo
IWNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGRhdGEuY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5ID0gV1RGTW92ZSgqY2xpZW50
UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KTsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U2FuZGJveEZsYWdzPiBlZmZlY3RpdmVTYW5kYm94RmxhZ3M7CisgICAgZGVjb2RlciA+PiBlZmZl
Y3RpdmVTYW5kYm94RmxhZ3M7CisgICAgaWYgKCFlZmZlY3RpdmVTYW5kYm94RmxhZ3MpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBkYXRhLmVmZmVjdGl2ZVNhbmRib3hGbGFncyA9ICplZmZl
Y3RpdmVTYW5kYm94RmxhZ3M7CiAgICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLmlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAppbmRleCA5MjBlMTRkZTkwYjhiZjI2NjMzZDkx
NzZlMGJmOWNlNWVkZjRjYjYwLi42NDJkNTk5YTg0MTEyMDcyNjM0ZjliMDM5OTUyZmY1MTRhMDI1
ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTQzLDYgKzQzLDEw
IEBAIGNsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCituYW1lc3BhY2UgV2ViQ29y
ZSB7Cit0eXBlZGVmIGludCBTYW5kYm94RmxhZ3M7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdHJ1Y3QgTG9hZFBhcmFtZXRlcnMgewpAQCAtNzQsNiArNzgsNyBAQCBzdHJ1Y3QgTG9hZFBh
cmFtZXRlcnMgewogICAgIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3
YXJkTGlzdCB7IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CiAgICAgV2ViQ29y
ZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSBzZXNzaW9uSGlzdG9y
eVZpc2liaWxpdHkgeyBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNp
YmlsaXR5OjpWaXNpYmxlIH07CiAgICAgU3RyaW5nIGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlz
dG9yeTsKKyAgICBXZWJDb3JlOjpTYW5kYm94RmxhZ3MgZWZmZWN0aXZlU2FuZGJveEZsYWdzIHsg
MCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcj4gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRv
UmVzdW1lOwogICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyTG9hZCB7IGZhbHNlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKaW5kZXggZmEwY2EzNzRi
ZTViZGE4NDUwNDRkMzNiY2ExZTNmM2RkZDQyYmQyYy4uMmUwMzdkN2YxMDYwOTA4MzI2NmM5M2Fj
N2M5NzY3YzcxNzVjYjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdh
dGlvbkFjdGlvbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25B
Y3Rpb25EYXRhLmNwcApAQCAtNTQsNiArNTQsNyBAQCB2b2lkIE5hdmlnYXRpb25BY3Rpb25EYXRh
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbG9j
a0hpc3Rvcnk7CiAgICAgZW5jb2RlciA8PCBsb2NrQmFja0ZvcndhcmRMaXN0OwogICAgIGVuY29k
ZXIgPDwgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OworICAgIGVuY29kZXIgPDwgZWZm
ZWN0aXZlU2FuZGJveEZsYWdzOwogICAgIGVuY29kZXIgPDwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ7CiB9CiAKQEAgLTE0Niw2ICsxNDcsMTEgQEAgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW9uQWN0
aW9uRGF0YT4gTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGQKICAg
ICBpZiAoIWNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKIAorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2FuZGJveEZsYWdzPiBl
ZmZlY3RpdmVTYW5kYm94RmxhZ3M7CisgICAgZGVjb2RlciA+PiBlZmZlY3RpdmVTYW5kYm94Rmxh
Z3M7CisgICAgaWYgKCFlZmZlY3RpdmVTYW5kYm94RmxhZ3MpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ+PiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICBkZWNv
ZGVyID4+IHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIGlmICghcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpCkBAIC0xNTQsNyArMTYwLDcgQEAgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW9uQWN0
aW9uRGF0YT4gTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGQKICAg
ICByZXR1cm4ge3sgV1RGTW92ZShuYXZpZ2F0aW9uVHlwZSksIG1vZGlmaWVycywgV1RGTW92ZSht
b3VzZUJ1dHRvbiksIFdURk1vdmUoc3ludGhldGljQ2xpY2tUeXBlKSwgV1RGTW92ZSgqdXNlckdl
c3R1cmVUb2tlbklkZW50aWZpZXIpLAogICAgICAgICBXVEZNb3ZlKCpjYW5IYW5kbGVSZXF1ZXN0
KSwgV1RGTW92ZShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KSwgV1RGTW92ZSgqZG93bmxv
YWRBdHRyaWJ1dGUpLCBXVEZNb3ZlKGNsaWNrTG9jYXRpb25JblJvb3RWaWV3Q29vcmRpbmF0ZXMp
LAogICAgICAgICBXVEZNb3ZlKCppc1JlZGlyZWN0KSwgKnRyZWF0QXNTYW1lT3JpZ2luTmF2aWdh
dGlvbiwgKmhhc09wZW5lZEZyYW1lcywgKm9wZW5lZEJ5RE9NV2l0aE9wZW5lciwgV1RGTW92ZSgq
cmVxdWVzdGVyT3JpZ2luKSwKLSAgICAgICAgV1RGTW92ZSgqdGFyZ2V0QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciksIFdURk1vdmUoKnNvdXJjZUJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIpLCBs
b2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgV1RGTW92ZSgqY2xpZW50UmVkaXJlY3RT
b3VyY2VGb3JIaXN0b3J5KSwgV1RGTW92ZSgqcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIH19Owor
ICAgICAgICBXVEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgV1RGTW92
ZSgqc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIGxvY2tIaXN0b3J5LCBsb2NrQmFj
a0ZvcndhcmRMaXN0LCBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpLCAq
ZWZmZWN0aXZlU2FuZGJveEZsYWdzLCBXVEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkg
fX07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05h
dmlnYXRpb25BY3Rpb25EYXRhLmgKaW5kZXggMjkxNjE5N2ViMWNiZTIyNmE2NWI1MDY0YjMxOTlk
NzIzZTlmNTU2NS4uMzMzMmIxNTU2NmNiNzM1ZmNhMGY1Y2FjNTcxOWI5MzU4ODg5MTBmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCkBAIC0zNyw2ICsz
NywxMCBAQCBjbGFzcyBEZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0KIAorbmFtZXNwYWNlIFdl
YkNvcmUgewordHlwZWRlZiBpbnQgU2FuZGJveEZsYWdzOworfQorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogc3RydWN0IE5hdmlnYXRpb25BY3Rpb25EYXRhIHsKQEAgLTYyLDYgKzY2LDcgQEAgc3Ry
dWN0IE5hdmlnYXRpb25BY3Rpb25EYXRhIHsKICAgICBXZWJDb3JlOjpMb2NrSGlzdG9yeSBsb2Nr
SGlzdG9yeSB7IFdlYkNvcmU6OkxvY2tIaXN0b3J5OjpObyB9OwogICAgIFdlYkNvcmU6OkxvY2tC
YWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCB7IFdlYkNvcmU6OkxvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vIH07CiAgICAgV1RGOjpTdHJpbmcgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JI
aXN0b3J5OworICAgIFdlYkNvcmU6OlNhbmRib3hGbGFncyBlZmZlY3RpdmVTYW5kYm94RmxhZ3Mg
eyAwIH07CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dD4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGNiY2E5MDhlMzgzNjBk
MWQ5Yzk5NDQyZTA5M2ZhMDg5MTUxZTk2ZDYuLmQ5NDcyNTY1OTU0NzU1MmJjOTg3NDg3NTg3YjM5
NWJjNmU5NjlmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCkBAIC02NSw2ICs2NSw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IHRvcENvbnRlbnRJbnNldDsKICAgICBlbmNvZGVyIDw8IG1lZGlhVm9sdW1lOwogICAg
IGVuY29kZXIgPDwgbXV0ZWQ7CisgICAgZW5jb2RlciA8PCBvcGVuZWRCeURPTTsKICAgICBlbmNv
ZGVyIDw8IG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAgICAgZW5jb2RlciA8PCBtZWRpYVBs
YXliYWNrSXNTdXNwZW5kZWQ7CiAgICAgZW5jb2RlciA8PCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQ7CkBAIC0yOTAsNiArMjkxLDggQEAgc3RkOjpvcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjoKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBwYXJhbWV0ZXJzLm11dGVkID0gKm11dGVkU3RhdGVG
bGFnczsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5vcGVuZWRCeURPTSkp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLm1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cpKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYVBsYXli
YWNrSXNTdXNwZW5kZWQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IGViMWVlMDk1OWE1MTNkYjgyNTdkNjRhZGRjZWVhNTA5Yjdh
M2U4NmUuLjU1NzBmOGRmNDk4NjNkODA0MmE5Mzg2NDk0NDQ3NTQ4NzVmNjYwMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEy
MCw2ICsxMjAsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgCiAg
ICAgZmxvYXQgbWVkaWFWb2x1bWU7CiAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3Rh
dGVGbGFncyBtdXRlZDsKKyAgICBib29sIG9wZW5lZEJ5RE9NIHsgZmFsc2UgfTsKICAgICBib29s
IG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAgICAgYm9vbCBtZWRpYVBsYXliYWNrSXNTdXNw
ZW5kZWQgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb24uaAppbmRleCBhZTZmMGI1NWQ5OWYzMjFjZDc4NTU1NjEwNjM0YTVjODZkYTAxMzM4Li45
NTExNzZkMmZiZmY2ZjNhYjk1NmExNjg2ZjRiZDg2NDljNWMxYTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKQEAgLTE0NCw2ICsxNDQsNyBAQCBwdWJs
aWM6CiAgICAgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmF2aWdhdGlvbkFjdGlvbi5sb2NrQmFja0ZvcndhcmRM
aXN0OyB9CiAKICAgICBXVEY6OlN0cmluZyBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uLmNsaWVudFJlZGlyZWN0U291
cmNlRm9ySGlzdG9yeTsgfQorICAgIFdlYkNvcmU6OlNhbmRib3hGbGFncyBlZmZlY3RpdmVTYW5k
Ym94RmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uLmVmZmVjdGl2
ZVNhbmRib3hGbGFnczsgfQogCiAgICAgdm9pZCBzZXRMYXN0TmF2aWdhdGlvbkFjdGlvbihjb25z
dCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhJiBuYXZpZ2F0aW9uQWN0aW9uKSB7IG1fbGFz
dE5hdmlnYXRpb25BY3Rpb24gPSBuYXZpZ2F0aW9uQWN0aW9uOyB9CiAgICAgY29uc3QgV2ViS2l0
OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSYgbGFzdE5hdmlnYXRpb25BY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCAyOGMyMGU5YjNjODBiMDkyZDQ3ODI0YmFmYTlmMGMy
ZGUyM2E4NDg4Li42ZDBkYWE1M2NhNTAwNzEwNzM5MDUwM2QyODA5OTVhNGNkODc2YjY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTExNTIsNyAr
MTE1Miw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtYWluRnJhbWVJRDsKICAgICAgICAgaWYgKGF1dG8q
IG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKSA/IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCkgOiBu
dWxscHRyKQogICAgICAgICAgICAgbWFpbkZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsK
LSAgICAgICAgRnJhbWVJbmZvRGF0YSBmcmFtZUluZm8geyBmcmFtZS5pc01haW5GcmFtZSgpLCB7
IH0sIHVzZXJNZWRpYU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBmcmFtZS5mcmFtZUlEKCksIG1h
aW5GcmFtZUlEIH07CisgICAgICAgIEZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvIHsgZnJhbWUuaXNN
YWluRnJhbWUoKSwgeyB9LCB1c2VyTWVkaWFPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgeyB9LCBm
cmFtZS5mcmFtZUlEKCksIG1haW5GcmFtZUlEIH07CiAgICAgICAgIFJldGFpblB0cjxXS0ZyYW1l
SW5mbz4gZnJhbWVJbmZvV3JhcHBlciA9IHdyYXBwZXIoQVBJOjpGcmFtZUluZm86OmNyZWF0ZShX
VEZNb3ZlKGZyYW1lSW5mbyksIGZyYW1lLnBhZ2UoKSkpOwogCiAgICAgICAgIFdLTWVkaWFDYXB0
dXJlVHlwZSB0eXBlID0gV0tNZWRpYUNhcHR1cmVUeXBlQ2FtZXJhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IGI4OGEwNzg0NmQ3
OGQ2MDBkZTdjMDIzYTBiZDA0MDk2ZjA4NTdhNmMuLmRiOTMyNWMyZWI1YTk3ZjZlODA4OWMwZWFj
NWU1MDZlMDI2NzVlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5jcHAKQEAgLTE0OSw2ICsxNDksNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpjYW5jZWwoKQogICAgICAgICB0cnVlLCAvLyBpc01haW5GcmFtZQogICAgICAgICBt
X3JlcXVlc3QsCiAgICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChtX3JlcXVlc3Qu
dXJsKCkpLAorICAgICAgICB7IH0sCiAgICAgICAgIG1fbWFpbkZyYW1lLT5mcmFtZUlEKCksCiAg
ICAgICAgIHN0ZDo6bnVsbG9wdCwKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggZjdhODEwYjI3M2Q5MGY0YWJjNGNmYjE3ZTQzYjJhM2ZjOTJkY2U2
Yy4uODFlNWUwMTVmMmM5YjQ2MmVjNzk3MzA1YTM2NWIxMTM1NmQ1Y2M4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNDE2LDYgKzE0MTYsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2NlcwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tIaXN0b3J5ID0gbmF2
aWdhdGlvbi5sb2NrSGlzdG9yeSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tCYWNrRm9yd2Fy
ZExpc3QgPSBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKICAgICBsb2FkUGFyYW1l
dGVycy5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkgPSBuYXZpZ2F0aW9uLmNsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOworICAgIGxvYWRQYXJhbWV0ZXJzLmVmZmVjdGl2ZVNh
bmRib3hGbGFncyA9IG5hdmlnYXRpb24uZWZmZWN0aXZlU2FuZGJveEZsYWdzKCk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW47CiAgICAgbG9hZFBhcmFtZXRlcnMuZXhpc3RpbmdOZXR3b3JrUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllclRvUmVzdW1lID0gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRl
bnRpZmllclRvUmVzdW1lOwogICAgIG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5k
bGUocHJvY2VzcywgdXJsLCBtX3BhZ2VMb2FkU3RhdGUucmVzb3VyY2VEaXJlY3RvcnlVUkwoKSwg
bG9hZFBhcmFtZXRlcnMuc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CkBAIC0xNjAyLDYgKzE2MDMs
NyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0ZWRS
ZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdQogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tIaXN0
b3J5ID0gbmF2aWdhdGlvbi0+bG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2Nr
QmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi0+bG9ja0JhY2tGb3J3YXJkTGlzdCgpOwogICAg
IGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSA9IG5hdmlnYXRp
b24tPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOworICAgIGxvYWRQYXJhbWV0ZXJz
LmVmZmVjdGl2ZVNhbmRib3hGbGFncyA9IG5hdmlnYXRpb24tPmVmZmVjdGl2ZVNhbmRib3hGbGFn
cygpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gPSBp
c05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCk7CiAKICAgICBzaW11bGF0ZWRSZXNwb25zZS5z
ZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgoZGF0YS5zaXplKCkpOwpAQCAtMzQ1NSw3ICszNDU3LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJp
ZGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFj
dGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0
aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIFJlZlB0cjxB
UEk6OldlYnNpdGVQb2xpY2llcz4mJiBwb2xpY2llcywgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVy
PiYmIHNlbmRlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmln
YXRpb24sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgUHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBSZWZQ
dHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgcG9saWNpZXMsIFJlZjxQb2xpY3lEZWNpc2lvblNl
bmRlcj4mJiBzZW5kZXIpCiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRpbmcs
ICJyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjogZnJhbWVJRD0lbGx1LCBuYXZpZ2F0
aW9uSUQ9JWxsdSwgcG9saWN5QWN0aW9uPSV1IiwgZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCks
IG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsICh1bnNpZ25lZClw
b2xpY3lBY3Rpb24pOwogCkBAIC0zNTA4LDcgKzM1MTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlv
biwgQQogICAgICAgICB9CiAgICAgfQogCi0gICAgcHJvY2VzcygpLnByb2Nlc3NQb29sKCkucHJv
Y2Vzc0Zvck5hdmlnYXRpb24oKnRoaXMsICpuYXZpZ2F0aW9uLCBzb3VyY2VQcm9jZXNzLmNvcHlS
ZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXVEZNb3ZlKHdl
YnNpdGVEYXRhU3RvcmUpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBv
bGljeUFjdGlvbiwgbmF2aWdhdGlvbiA9IFJlZiB7ICpuYXZpZ2F0aW9uIH0sIG5hdmlnYXRpb25B
Y3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBzb3VyY2VQcm9jZXNzID0gc291cmNl
UHJvY2Vzcy5jb3B5UmVmKCksCisgICAgcHJvY2VzcygpLnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zv
ck5hdmlnYXRpb24oKnRoaXMsICpuYXZpZ2F0aW9uLCBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwg
c291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFtZUluZm8sIFdURk1v
dmUod2Vic2l0ZURhdGFTdG9yZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fSwgcG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uID0gUmVmIHsgKm5hdmlnYXRpb24gfSwgbmF2aWdh
dGlvbkFjdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHNvdXJjZVByb2Nlc3MgPSBz
b3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwKICAgICAgICAgcG9saWNpZXMgPSBXVEZNb3ZlKHBvbGlj
aWVzKSwgc2VuZGVyID0gV1RGTW92ZShzZW5kZXIpLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xp
ZW50XSAoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzRm9yTmF2aWdhdGlvbiwgU3VzcGVu
ZGVkUGFnZVByb3h5KiBkZXN0aW5hdGlvblN1c3BlbmRlZFBhZ2UsIGNvbnN0IFN0cmluZyYgcmVh
c29uKSBtdXRhYmxlIHsKICAgICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gaGFzIGJlZW4gZGVz
dHJveWVkLCB0aGVuIG5vIG5lZWQgdG8gcHJvY2VlZC4KICAgICAgICAgaWYgKGlzQ2xvc2VkKCkg
fHwgIW5hdmlnYXRpb25TdGF0ZSgpLmhhc05hdmlnYXRpb24obmF2aWdhdGlvbi0+bmF2aWdhdGlv
bklEKCkpKSB7CkBAIC01NDMwLDcgKzU0MzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlcwog
ICAgIFJlZiBsaXN0ZW5lciA9IGZyYW1lLnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGZyYW1lID0gUmVmIHsgZnJhbWUgfSwgc2Vu
ZGVyID0gV1RGTW92ZShzZW5kZXIpLCBuYXZpZ2F0aW9uLCBuYXZpZ2F0aW9uQWN0aW9uLCBmcmFt
ZUluZm8sIHVzZXJEYXRhT2JqZWN0ID0gcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0
cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCldIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBB
UEk6OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVCcm93c2luZ1dhcm5p
bmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZywgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbj4gaXNBcHBCb3VuZERvbWFpbikgbXV0YWJsZSB7CiAgICAgICAgIFdFQlBBR0VQ
Uk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjogbGlzdGVuZXIgY2FsbGVkOiBmcmFtZUlEPSVsbHUsIG5hdmlnYXRpb25JRD0lbGx1LCBwb2xp
Y3lBY3Rpb249JXUsIHNhZmVCcm93c2luZ1dhcm5pbmc9JWQsIGlzQXBwQm91bmREb21haW49JWQi
LCBmcmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0KCksIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5u
YXZpZ2F0aW9uSUQoKSA6IDAsICh1bnNpZ25lZClwb2xpY3lBY3Rpb24sICEhc2FmZUJyb3dzaW5n
V2FybmluZywgISFpc0FwcEJvdW5kRG9tYWluKTsKIAotICAgICAgICBhdXRvIGNvbXBsZXRpb25I
YW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMsIGZyYW1lLCBzZW5kZXIgPSBXVEZNb3ZlKHNl
bmRlciksIG5hdmlnYXRpb24sIG5hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25B
Y3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBwb2xpY2llcyA9IFJlZlB0ciB7
IHBvbGljaWVzIH1dIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKKyAgICAg
ICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzLCBmcmFtZSwg
ZnJhbWVJbmZvLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5hdmlnYXRpb24sIG5hdmlnYXRp
b25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBwb2xpY2llcyA9IFJlZlB0ciB7IHBvbGljaWVzIH1dIChQb2xpY3lBY3Rpb24g
cG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChmcmFtZS0+aXNNYWluRnJh
bWUoKSkgewogICAgICAgICAgICAgICAgIGlmICghcG9saWNpZXMpIHsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGF1dG8qIGRlZmF1bHRQb2xpY2llcyA9IG1fY29uZmlndXJhdGlvbi0+ZGVmYXVs
dFdlYnNpdGVQb2xpY2llcygpKQpAQCAtNTQzOSw3ICs1NDQxLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXMKICAgICAgICAgICAgICAgICBpZiAocG9saWNpZXMpCiAgICAgICAgICAgICAgICAg
ICAgIG5hdmlnYXRpb24tPnNldEVmZmVjdGl2ZUNvbnRlbnRNb2RlKGVmZmVjdGl2ZUNvbnRlbnRN
b2RlQWZ0ZXJBZGp1c3RpbmdQb2xpY2llcygqcG9saWNpZXMsIG5hdmlnYXRpb24tPmN1cnJlbnRS
ZXF1ZXN0KCkpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlY2VpdmVkTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShu
YXZpZ2F0aW9uQWN0aW9uKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgZnJhbWUsIFdU
Rk1vdmUocG9saWNpZXMpLCBXVEZNb3ZlKHNlbmRlcikpOworICAgICAgICAgICAgcmVjZWl2ZWRO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBX
VEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBm
cmFtZSwgZnJhbWVJbmZvLCBXVEZNb3ZlKHBvbGljaWVzKSwgV1RGTW92ZShzZW5kZXIpKTsKICAg
ICAgICAgfTsKIAogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKQEAgLTgyMjEsNiArODIy
Myw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBh
cmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVycy50b3BDb250ZW50
SW5zZXQgPSBtX3RvcENvbnRlbnRJbnNldDsKICAgICBwYXJhbWV0ZXJzLm1lZGlhVm9sdW1lID0g
bV9tZWRpYVZvbHVtZTsKICAgICBwYXJhbWV0ZXJzLm11dGVkID0gbV9tdXRlZFN0YXRlOworICAg
IHBhcmFtZXRlcnMub3BlbmVkQnlET00gPSBtX29wZW5lZEJ5RE9NOwogICAgIHBhcmFtZXRlcnMu
bWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsK
ICAgICBwYXJhbWV0ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCA9IG1fbWVkaWFQbGF5YmFj
a0lzU3VzcGVuZGVkOwogICAgIHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5b3V0ID0g
bV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGNlZWE5Mjc2NmNmOWViMTMyYjk2MTg5MGE1NmUxM2NiYjZlZmMzN2YuLjQ2
YTRlYzczZDZhYTg0MjAwMjA3YzZiNjdiMGIwYzg3NGQzZTZmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjIzLDcgKzEyMjMsNyBAQCBwdWJsaWM6CiAgICAg
Y2xhc3MgUG9saWN5RGVjaXNpb25TZW5kZXI7CiAgICAgZW51bSBjbGFzcyBXaWxsQ29udGludWVM
b2FkSW5OZXdQcm9jZXNzIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIHJlY2VpdmVkUG9s
aWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qLCBSZWZQ
dHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIHN0ZDo6dmFyaWFudDxSZWY8QVBJOjpOYXZpZ2F0
aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPj4mJiwgUmVmPFBvbGljeURl
Y2lzaW9uU2VuZGVyPiYmLCBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4g
PSB7IH0sIFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5O
ZXdQcm9jZXNzOjpObyk7Ci0gICAgdm9pZCByZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
bihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiosIFJlZjxBUEk6Ok5hdmln
YXRpb25BY3Rpb24+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkZyYW1lUHJv
eHkmLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIFJlZjxQb2xpY3lEZWNpc2lvblNl
bmRlcj4mJik7CisgICAgdm9pZCByZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihXZWJD
b3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiosIFJlZjxBUEk6Ok5hdmlnYXRpb25B
Y3Rpb24+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkZyYW1lUHJveHkmLCBj
b25zdCBGcmFtZUluZm9EYXRhJiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmLCBSZWY8
UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOwogCiAgICAgdm9pZCBiYWNrRm9yd2FyZFJlbW92ZWRJ
dGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDM2ZGU1ODgwMmNlNmVj
OTRiZjRmY2M4ZjJjZTQxZmY5YmU3MzZlY2YuLmI2NWUwODZkODhlYWNmZWJiMzQzM2Q3ZGQxMjY4
YTE5MWRjYmRkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKQEAgLTE4MTQsOSArMTgxNCw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlbW92ZVByb2Nl
c3NGcm9tT3JpZ2luQ2FjaGVTZXQoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogICAgICAgICBt
X3N3YXBwZWRQcm9jZXNzZXNQZXJSZWdpc3RyYWJsZURvbWFpbi5yZW1vdmUocmVnaXN0cmFibGVE
b21haW4pOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbihX
ZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
LCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiBkYXRhU3RvcmUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3Ry
aW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNz
Rm9yTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBV
UkwmIHNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50LCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8sIFJlZjxXZWJz
aXRlRGF0YVN0b3JlPiYmIGRhdGFTdG9yZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKHBh
Z2UsIG5hdmlnYXRpb24sIHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkwsIHByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdURk1vdmUoZGF0YVN0b3JlKSwgW3RoaXMsIHBhZ2Ug
PSBSZWYgeyBwYWdlIH0sIG5hdmlnYXRpb24gPSBSZWYgeyBuYXZpZ2F0aW9uIH0sIHNvdXJjZVBy
b2Nlc3MgPSBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFN1c3BlbmRlZFBhZ2VQcm94
eSogc3VzcGVuZGVkUGFnZSwgY29uc3QgU3RyaW5nJiByZWFzb24pIG11dGFibGUgeworICAgIHBy
b2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwocGFnZSwgbmF2aWdhdGlvbiwgc291cmNlUHJvY2Vz
cy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgZnJh
bWVJbmZvLCBXVEZNb3ZlKGRhdGFTdG9yZSksIFt0aGlzLCBwYWdlID0gUmVmIHsgcGFnZSB9LCBu
YXZpZ2F0aW9uID0gUmVmIHsgbmF2aWdhdGlvbiB9LCBzb3VyY2VQcm9jZXNzID0gc291cmNlUHJv
Y2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBTdXNwZW5kZWRQYWdlUHJveHkqIHN1c3BlbmRlZFBhZ2Us
IGNvbnN0IFN0cmluZyYgcmVhc29uKSBtdXRhYmxlIHsKICAgICAgICAgLy8gV2UgYXJlIHByb2Nl
c3Mtc3dhcHBpbmcgc28gYXV0b21hdGljIHByb2Nlc3MgcHJld2FybWluZyB3b3VsZCBiZSBiZW5l
ZmljaWFsIGlmIHRoZSBjbGllbnQgaGFzIG5vdCBleHBsaWNpdGx5IGVuYWJsZWQgLyBkaXNhYmxl
ZCBpdC4KICAgICAgICAgYm9vbCBkb2luZ0FuQXV0b21hdGljUHJvY2Vzc1N3YXAgPSBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5v
ICYmIHByb2Nlc3MucHRyKCkgIT0gc291cmNlUHJvY2Vzcy5wdHIoKTsKICAgICAgICAgaWYgKGRv
aW5nQW5BdXRvbWF0aWNQcm9jZXNzU3dhcCAmJiAhY29uZmlndXJhdGlvbigpLndhc0F1dG9tYXRp
Y1Byb2Nlc3NXYXJtaW5nU2V0QnlDbGllbnQoKSAmJiAhY29uZmlndXJhdGlvbigpLmNsaWVudFdv
dWxkQmVuZWZpdEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2FybWluZygpKSB7CkBAIC0xODM5LDcg
KzE4MzksNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbihXZWJQ
YWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSTo6TmF2aWdhdAogICAgIH0pOwogfQogCi12b2lkIFdl
YlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKFdlYlBhZ2VQcm94eSYg
cGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgcGFnZVNvdXJjZVVSTCwgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWY8V2Vi
c2l0ZURhdGFTdG9yZT4mJiBkYXRhU3RvcmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdh
dGlvbkludGVybmFsKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVS
TCYgcGFnZVNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8sIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlPiYmIGRhdGFTdG9yZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvJiB0YXJnZXRVUkwgPSBuYXZpZ2F0aW9u
LmN1cnJlbnRSZXF1ZXN0KCkudXJsKCk7CiAgICAgYXV0byB0YXJnZXRSZWdpc3RyYWJsZURvbWFp
biA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgdGFyZ2V0VVJMIH07CkBAIC0xODk3LDYg
KzE4OTcsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRl
cm5hbChXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSToKICAgICAgICAgfQogICAgIH0KIAor
ICAgIC8vIElmIGl0IGlzIHRoZSBmaXJzdCBuYXZpZ2F0aW9uIGluIGEgRE9NIHBvcHVwIGFuZCB0
aGVyZSBpcyBubyBvcGVuZXIsIHRoZW4gZm9yY2UgYSBwcm9jZXNzIHN3YXAgbm8gbWF0dGVyIHdo
YXQgc2luY2UKKyAgICAvLyBwb3B1cCB3aW5kb3dzIGFyZSBvcmlnaW5hbGx5IGNyZWF0ZWQgaW4g
dGhlaXIgb3BlbmVyJ3MgcHJvY2Vzcy4KKyAgICAvLyBOb3RlIHRoYXQgd2UgY3VycmVudGx5IGRv
IG5vdCBwcm9jZXNzIHN3YXAgaWYgdGhlIHdpbmRvdyBwb3B1cCBoYXMgYSBuYW1lLiBJbiB0aGVv
cnksIHdlIHNob3VsZCBiZSBhYmxlIHRvIHN3YXAgaW4gdGhpcyBjYXNlIHRvbworICAgIC8vIGJ1
dCB3ZSB3b3VsZCBuZWVkIHRvIHRyYW5zZmVyIG92ZXIgdGhlIG5hbWUgdG8gdGhlIG5ldyBwcm9j
ZXNzLiBBdCB0aGlzIHBvaW50LCBpdCBpcyBub3QgY2xlYXIgaXQgaXMgd29ydGggdGhlIGV4dHJh
IGNvbXBsZXhpdHkuCisgICAgaWYgKHBhZ2Uub3BlbmVkQnlET00oKSAmJiAhbmF2aWdhdGlvbi5v
cGVuZWRCeURPTVdpdGhPcGVuZXIoKSAmJiAhcGFnZS5oYXNDb21taXR0ZWRBbnlQcm92aXNpb25h
bExvYWRzKCkgJiYgZnJhbWVJbmZvLmZyYW1lTmFtZS5pc0VtcHR5KCkgJiYgIXRhcmdldFVSTC5w
cm90b2NvbElzQmxvYigpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY3JlYXRl
TmV3UHJvY2VzcygpLCBudWxscHRyLCAiUHJvY2VzcyBzd2FwIGJlY2F1c2UgdGhpcyBpcyBhIGZp
cnN0IG5hdmlnYXRpb24gaW4gYSBET00gcG9wdXAgd2l0aG91dCBvcGVuZXIiX3MpOworCiAgICAg
aWYgKG5hdmlnYXRpb24udHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNvdXJjZVByb2Nlc3MpLCBudWxscHRyLCAi
VGhlIHRyZWF0QXNTYW1lT3JpZ2luTmF2aWdhdGlvbiBmbGFnIGlzIHNldCJfcyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDY4MjhkMzczYzhjMzlkZDRl
NTI2ZDRlNmVlODc2NTMwY2JjY2YwMjAuLmU0ODdkNzgzYTJhMWY0YmQ3M2JhMzE1ODcwNjMzNDJk
YmViYTM3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAt
NDQ2LDcgKzQ0Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0ZvcmVncm91bmRXZWJQcm9jZXNz
ZXMoKSBjb25zdCB7IHJldHVybiBtX2ZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlci52YWx1ZSgp
OyB9CiAgICAgYm9vbCBoYXNCYWNrZ3JvdW5kV2ViUHJvY2Vzc2VzKCkgY29uc3QgeyByZXR1cm4g
bV9iYWNrZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXIudmFsdWUoKTsgfQogCi0gICAgdm9pZCBwcm9j
ZXNzRm9yTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mLCBS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgc291cmNlVVJM
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQ
YWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4mJik7CisgICAgdm9pZCBwcm9jZXNzRm9yTmF2aWdh
dGlvbihXZWJQYWdlUHJveHkmLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBjb25zdCBGcmFtZUluZm9EYXRhJiwgUmVmPFdlYnNpdGVEYXRh
U3RvcmU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
U3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYpOwogCiAgICAgdm9pZCBkaWRS
ZWFjaEdvb2RUaW1lVG9QcmV3YXJtKCk7CiAKQEAgLTUyMyw3ICs1MjMsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJv
eHkmLCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBwbGF0Zm9ybUlu
dmFsaWRhdGVDb250ZXh0KCk7CiAKLSAgICB2b2lkIHByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJu
YWwoV2ViUGFnZVByb3h5JiwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiwgUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgUmVmPFdlYnNpdGVEYXRhU3RvcmU+JiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVkUGFnZVByb3h5KiwgY29u
c3QgU3RyaW5nJik+JiYpOworICAgIHZvaWQgcHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChX
ZWJQYWdlUHJveHkmLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mLCBSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBjb25zdCBGcmFtZUluZm9EYXRhJiwgUmVmPFdlYnNpdGVEYXRhU3RvcmU+
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgU3VzcGVu
ZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYpOwogCiAgICAgUmVmUHRyPFdlYlByb2Nl
c3NQcm94eT4gdHJ5VGFrZVByZXdhcm1lZFByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA5OWE1MWFiNWZlYWFlNDc5YTAzYTNk
NTgxYzg4OTQ3MGIwMGVlOWMyLi44ZWE5ZTgyNTg4OTBjMTBiZTQxOGU5ODExZWEzOTc3YTYwYTZj
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTk2OCw2ICs5NjgsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdAogICAgICAgICBuYXZpZ2F0aW9uQWN0aW9uLmluaXRp
YXRlZEJ5TWFpbkZyYW1lKCkgPT0gSW5pdGlhdGVkQnlNYWluRnJhbWU6OlllcywKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0IHsgcmVxdWVzdGVyLnVybCB9LAogICAgICAgICByZXF1ZXN0ZXIuc2Vj
dXJpdHlPcmlnaW4tPmRhdGEoKSwKKyAgICAgICAgeyB9LAogICAgICAgICBXVEZNb3ZlKG9yaWdp
bmF0aW5nRnJhbWVJRCksCiAgICAgICAgIFdURk1vdmUocGFyZW50RnJhbWVJRCksCiAgICAgfTsK
QEAgLTEwMTIsNiArMTAxMyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0CiAgICAgICAgIGRv
Y3VtZW50TG9hZGVyID0gc3RhdGljX2Nhc3Q8V2ViRG9jdW1lbnRMb2FkZXIqPihjb3JlRnJhbWUt
PmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpOwogCiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEu
Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5ID0gZG9jdW1lbnRMb2FkZXItPmNsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOworICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmVmZmVj
dGl2ZVNhbmRib3hGbGFncyA9IGNvcmVGcmFtZS0+bG9hZGVyKCkuZWZmZWN0aXZlU2FuZGJveEZs
YWdzKCk7CiAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KICAgICBSZWYgcHJvdGVjdG9y
IHsgKmNvcmVGcmFtZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwCmluZGV4IGQ5MTllNDQ4Zjc1NWY5OGI2ZDBlOWVhYjc0ZjUzZmYyNDhiYmJmMzIu
LjliZDRjZDJkMGNiMTAzYjQ1YWE4ZTZjMWQ0MjdjMGIxN2JmNWVkMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTE5Myw2ICsxOTMsNyBA
QCBGcmFtZUluZm9EYXRhIFdlYkZyYW1lOjppbmZvKCkgY29uc3QKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIHVzZSB0aGUgZnVsbCByZXF1ZXN0LgogICAgICAgICBSZXNvdXJjZVJlcXVl
c3QodXJsKCkpLAogICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShtX2NvcmVG
cmFtZS5nZXQoKSksCisgICAgICAgIG1fY29yZUZyYW1lID8gbV9jb3JlRnJhbWUtPnRyZWUoKS5u
YW1lKCkuc3RyaW5nKCkgOiBTdHJpbmcoKSwKICAgICAgICAgbV9mcmFtZUlELAogICAgICAgICBw
YXJlbnQgPyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4geyBwYXJlbnQt
PmZyYW1lSUQoKSB9IDogc3RkOjpudWxsb3B0LAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGMxODY2YTI1YmI5ZDQ3NjcxMTA4YzQw
OWE4ZjJmNGIzM2FhYTM3ZjcuLjhmZTVlNjUzZGJkOTBmZjFiMGI2MDIzYjEyNzk3YjEwNzQxMjY3
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC03MjYsNiArNzI2LDkgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIGlmIChwYXJhbWV0
ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCkKICAgICAgICAgbV9wYWdlLT5zdXNwZW5kQWxs
TWVkaWFQbGF5YmFjaygpOwogCisgICAgaWYgKHBhcmFtZXRlcnMub3BlbmVkQnlET00pCisgICAg
ICAgIG1fcGFnZS0+c2V0T3BlbmVkQnlET00oKTsKKwogICAgIG1fcGFnZS0+c2V0R3JvdXBOYW1l
KG1fcGFnZUdyb3VwLT5pZGVudGlmaWVyKCkpOwogICAgIG1fcGFnZS0+c2V0RGV2aWNlU2NhbGVG
YWN0b3IocGFyYW1ldGVycy5kZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgbV9wYWdlLT5zZXRVc2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKG1fdXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbik7
CkBAIC0xNzMzLDYgKzE3MzYsOSBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0KExvYWRQYXJh
bWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRDbGllbnRS
ZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkobG9hZFBhcmFtZXRlcnMuY2xpZW50UmVkaXJlY3RTb3Vy
Y2VGb3JIaXN0b3J5KTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldElzUmVxdWVzdEZyb21DbGll
bnRPclVzZXJJbnB1dCgpOwogCisgICAgaWYgKGxvYWRQYXJhbWV0ZXJzLmVmZmVjdGl2ZVNhbmRi
b3hGbGFncykKKyAgICAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuZm9yY2VT
YW5kYm94RmxhZ3MobG9hZFBhcmFtZXRlcnMuZWZmZWN0aXZlU2FuZGJveEZsYWdzKTsKKwogICAg
IGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmxvYWRSZXF1ZXN0KFdURk1vdmUoZnJhbWVM
b2FkUmVxdWVzdCkpOwogCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDAxYzI1OWI1
Njg1YjQ3OTFlYjIzODdkYTI4ZWRlNDkxNjMzZTFhNGUuLjFjY2IwNmM2MDJhZGU3ZTFjMWQzOTFm
M2NmYjQxOTMzOTNmNDQwZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMS0xMC0yMCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgcHJvY2Vzcy1zd2FwIGZv
ciBpbml0aWFsIG5hdmlnYXRpb24gb2YgYSBwb3B1cCBpZiBpdCBoYXMgbm8gb3BlbmVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTAKKyAgICAg
ICAgPHJkYXI6Ly84NDQyNTUwND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICgtW1BTT05VSURlbGVnYXRlIHdlYlZpZXc6Y3Jl
YXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9uOmZvck5hdmlnYXRpb25BY3Rpb246d2luZG93RmVh
dHVyZXM6XSk6CisgICAgICAgICgtW1BTT05VSURlbGVnYXRlIHdlYlZpZXdEaWRDbG9zZTpdKToK
KyAgICAgICAgVXBkYXRlZCBleGlzdGluZyBBUEkgdGVzdHMgdG8gcmVmbGVjdCBiZWhhdmlvciBj
aGFuZ2UuCisgICAgICAgIEFsc28gZXh0ZW5kIGFuIEFQSSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0
IGEgcG9wdXAgb3BlbmVkIGJ5IEpTIGNhbiBzdGlsbCBjbG9zZSBpdHNlbGYKKyAgICAgICAgdmlh
IEpTIChieSBjYWxsaW5nIHdpbmRvdy5jbG9zZSgpKSwgZXZlbiBpbiB0aGUgY2FzZSB3aGVyZSB3
ZSBwcm9jZXNzIHN3YXAuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRp
ZFJlY2VpdmVNZXNzYWdlVG9QYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6Om91
dHB1dFRleHQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6ZHVtcCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZVBhZ2VNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKToKKyAgICAgICAgV2UgaGF2ZSBzb21lIHRlc3RzIHRoYXQgb3BlbiBhIG5ldyBw
b3B1cCB3aXRoICdub29wZW5lcicgYW5kIHRoZSBwb3B1cCB3b3VsZCBiZSB0aGUKKyAgICAgICAg
b25lIHRvIGNhbGwgYHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpYC4gVGhpcyB1c2VkIHRvIHdvcmsg
ZmluZSB3aGVuIHRoZSBwb3B1cCB3b3VsZAorICAgICAgICBlbmQgdXAgaW4gdGhlIHNhbWUgV2Vi
UHJvY2VzcyBiZWNhdXNlIHRoZSBpbmplY3RlZCBidW5kbGUgd291bGQga25vdyB3aGljaCBwYWdl
IGlzCisgICAgICAgIHRoZSBtYWluIHRlc3QgcGFnZSBhbmQgdXNlIHRoYXQgb25lLiBIb3dldmVy
LCBub3cgdGhhdCB3ZSBwcm9jZXNzLXN3YXAsIHRoZSBwb3B1cAorICAgICAgICBwYWdlIHdvdWxk
IHRoaW5rIGl0IGlzIHRoZSBtYWluIHRlc3QgcGFnZSBhbmQgdHJ5IHRvIGR1bXAgaXRzIG93biBv
dXRwdXQuIEhvd2V2ZXIsCisgICAgICAgIHRoZSBVSVByb2Nlc3Mgd2Fzbid0IGxpc3RlbmluZyBm
b3IgbWVzc2FnZXMgZnJvbSBhdXhpbGlhcnkgcGFnZXMnIGluamVjdGVkIGJ1bmRsZXMuCisgICAg
ICAgIFRoZSBVSVByb2Nlc3Mgbm93IGxpc3RlbnMgZm9yIHRob3NlIG1lc3NhZ2VzIGFuZCBhc2tz
IHRoZSBtYWluIHRlc3QgcGFnZSB0byBkdW1wCisgICAgICAgIGl0cyBvdXRwdXQgd2hlbiBhbiBh
dXhpbGlhcnkgcGFnZSBpbiBhbm90aGVyIHByb2Nlc3Mgc2F5cyB0aGUgdGVzdCBpcyBkb25lLgor
CiAyMDIxLTEwLTIwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4gYW5kIERhbmEgRXN0
cmEgPGRlc3RyYUBhcHBsZS5jb20+CiAKICAgICAgICAgbWFjT1Mga2V5LWRyaXZlbiBzbW9vdGgg
c2Nyb2xsaW5nIGRvZXMgbm90IHN0b3Agd2hlbiBmb2N1cyBjaGFuZ2VzCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQppbmRleCA0ZjJlMjYyYzJkNDA0ZDVhMzgyMjBmNTk3Yjk5NTkyOTM1
MjcxYjk1Li5mYmQ2NTc3OGNmMTk1NDFiMzU1MzEyNTczYjNmYWQwOTYwZTNlN2IwIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTg2LDYgKzg2LDcgQEAgc3RhdGljIEhhc2hT
ZXQ8cGlkX3Q+IHNlZW5QSURzOwogc3RhdGljIGJvb2wgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dDsKIHN0YXRpYyBib29sIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdDsKIHN0YXRpYyBib29sIHNo
b3VsZENvbnZlcnRUb0Rvd25sb2FkOworc3RhdGljIGJvb2wgZGlkQ2xvc2VXaW5kb3c7CiBzdGF0
aWMgUmV0YWluUHRyPE5TVVJMPiBjbGllbnRSZWRpcmVjdFNvdXJjZVVSTDsKIHN0YXRpYyBSZXRh
aW5QdHI8TlNVUkw+IGNsaWVudFJlZGlyZWN0RGVzdGluYXRpb25VUkw7CiAKQEAgLTI0MSwxMCAr
MjQyLDE4IEBAIC0gKG51bGxhYmxlIFdLV2ViVmlldyAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0CiB7CiAgICAgY3JlYXRlZFdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIFtjcmVhdGVk
V2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6X25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07
CisgICAgW2NyZWF0ZWRXZWJWaWV3IHNldFVJRGVsZWdhdGU6c2VsZl07CiAgICAgZGlkQ3JlYXRl
V2ViVmlldyA9IHRydWU7CiAgICAgcmV0dXJuIGNyZWF0ZWRXZWJWaWV3LmdldCgpOwogfQogCist
ICh2b2lkKXdlYlZpZXdEaWRDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldworeworICAgIEVYUEVD
VF9FUShjcmVhdGVkV2ViVmlldy5nZXQoKSwgd2ViVmlldyk7CisgICAgY3JlYXRlZFdlYlZpZXcg
PSBudWxscHRyOworICAgIGRpZENsb3NlV2luZG93ID0gdHJ1ZTsKK30KKwogLSAodm9pZCl3ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZy
YW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSgpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAg
ICAgZGlkUmVjZWl2ZUFsZXJ0ID0gdHJ1ZTsKQEAgLTQ1Niw3ICs0NjUsNyBAQCBzdGF0aWMgY29u
c3QgY2hhciogd2luZG93T3BlblNhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXMgPSBSIlBTT05SRVNP
VVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKCFv
cGVuZXIpCi0gICAgICAgIHdpbmRvdy5vcGVuKCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5o
dG1sIiwgIl9ibGFuayIsICJub29wZW5lciIpOworICAgICAgICB3aW5kb3cub3BlbigicHNvbjov
L3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiLCAiX2JsYW5rIiwgIm5vb3BlbmVyIik7CiB9CiA8
L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwpAQCAtMTI4Myw3ICsxMjkyLDggQEAgVEVTVChQcm9j
ZXNzU3dhcCwgQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKICAgICBh
dXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAgICBF
WFBFQ1RfVFJVRSghIXBpZDIpOwogCi0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworICAgIC8v
IFNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vzcy1zd2FwLCBldmVuIHRob3VnaCB0
aGUgbmF2aWdhdGlvbiBpcyBzYW1lLXNpdGUuCisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuV2l0aE9wZW5lcikKQEAg
LTEzMzUsNyArMTM0NSw4IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlV2luZG93T3Blbk5v
T3BlbmVyKQogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CiAgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
ID0gWUVTOwotICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBp
bml0V2l0aEJ5dGVzOndpbmRvd09wZW5TYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXSk7CisgICAg
YXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKKyAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZVNpdGVOb09wZW5lclRlc3RCeXRlc107CiAg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKQEAgLTEzNjMsNyAr
MTM3NCwyMCBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikK
ICAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
ICAgICBFWFBFQ1RfVFJVRSghIXBpZDIpOwogCi0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOwor
ICAgIC8vIFNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vzcy1zd2FwLCBldmVuIHRo
b3VnaCB0aGUgbmF2aWdhdGlvbiBpcyBzYW1lLXNpdGUuCisgICAgRVhQRUNUX05FKHBpZDEsIHBp
ZDIpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L3BvcHVwMi5odG1sIl1dOworICAgIFtjcmVhdGVkV2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxz
ZTsKKyAgICBFWFBFQ1RfRVEocGlkMiwgW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOworCisgICAgLy8gU2luY2UgdGhlIHdpbmRvdyB3YXMgb3BlbiB2aWEgSlMsIGl0IHNo
b3VsZCBiZSBhYmxlIHRvIGNsb3NlIGl0c2VsZi4KKyAgICBkaWRDbG9zZVdpbmRvdyA9IGZhbHNl
OworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuY2xvc2Uo
KSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZENsb3NlV2luZG93KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtU
YXJnZXRXaXRoT3BlbmVyKQpAQCAtMTUyMyw3ICsxNTQ3LDggQEAgVEVTVChQcm9jZXNzU3dhcCwg
U2FtZVNpdGVCbGFua1RhcmdldE5vT3BlbmVyKQogICAgIGF1dG8gcGlkMiA9IFtjcmVhdGVkV2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlkMik7CiAK
LSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisgICAgLy8gU2luY2UgdGhlcmUgaXMgbm8gb3Bl
bmVyLCB3ZSBwcm9jZXNzLXN3YXAsIGV2ZW4gdGhvdWdoIHRoZSBuYXZpZ2F0aW9uIGlzIHNhbWUt
c2l0ZS4KKyAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IFNlcnZlclJlZGlyZWN0RnJvbU5ld1dlYlZpZXcpCkBAIC02MjY5LDcgKzYyOTQsOSBAQCBURVNU
KFByb2Nlc3NTd2FwLCBHb0JhY2tUb1N1c3BlbmRlZFBhZ2VXaXRoTWFpbkZyYW1lSURUaGF0SXNO
b3RPbmUpCiAgICAgLy8gTmV3IFdLV2ViVmlldyBoYXMgbm93IG5hdmlnYXRlZCB0byB3ZWJraXQu
b3JnLgogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5o
dG1sIiwgW1tjcmVhdGVkV2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CiAgICAgYXV0byBw
aWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Ci0gICAgRVhQRUNU
X0VRKHBpZDEsIHBpZDIpOworCisgICAgLy8gV2UgcHJvY2Vzcy1zd2FwIHNpbmNlIHRoZXJlIGlz
IG5vIG9wZW5lciByZWxhdGlvbnNoaXAuCisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOwogCiAg
ICAgLy8gQ2xpY2sgbGluayBpbiBuZXcgV0tXZWJWaWV3IHNvIHRoYXQgaXQgbmF2aWdhdGVzIGNy
b3NzLXNpdGUgdG8gYXBwbGUuY29tLgogICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJ0ZXN0TGluay5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwpAQCAtNjI4
OCw3ICs2MzE1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29CYWNrVG9TdXNwZW5kZWRQYWdlV2l0
aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjov
L3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiLCBbW2NyZWF0ZWRXZWJWaWV3IFVSTF0gYWJzb2x1
dGVTdHJpbmddKTsKICAgICBhdXRvIHBpZDQgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXTsKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkNCk7IC8vIFNob3VsZCBoYXZlIHBy
b2Nlc3Mtc3dhcHBlZCB0byB0aGUgb3JpZ2luYWwgInN1c3BlbmRlZCIgcHJvY2Vzcy4KKyAgICBF
WFBFQ1RfRVEocGlkMiwgcGlkNCk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dhcHBlZCB0byB0
aGUgb3JpZ2luYWwgInN1c3BlbmRlZCIgcHJvY2Vzcy4KIAogICAgIC8vIERvIGEgZnJhZ21lbnQg
bmF2aWdhdGlvbiBpbiB0aGUgb3JpZ2luYWwgV0tXZWJWaWV3IGFuZCBtYWtlIHN1cmUgdGhpcyBk
b2VzIG5vdCBjcmFzaC4KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1s
I3Rlc3RMaW5rIl1dOwpAQCAtNjI5OCw3ICs2MzI1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29C
YWNrVG9TdXNwZW5kZWRQYWdlV2l0aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQogCiAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwjdGVzdExpbmsi
LCBbW3dlYlZpZXcxIFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKICAgICBhdXRvIHBpZDUgPSBbY3Jl
YXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKLSAgICBFWFBFQ1RfRVEocGlkMSwg
cGlkNSk7CisgICAgRVhQRUNUX0VRKHBpZDIsIHBpZDUpOwogfQogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAwMjJiZTQzOTEzNThiOGQwOWE4ZjdlOWQ3MGU3
OWRlZWI2NDg4MDc1Li42N2E3ZDEwMGFiOTdjY2Q0NWJmMjhhMGNlNzFmZDY4NzExNzdmNGRlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcApAQCAtNDM3LDYgKzQzNywxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxl
OjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgbQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJOb3RpZnlEb25lIikpIHsKKyAgICAgICAgSW5qZWN0
ZWRCdW5kbGU6OnBhZ2UoKS0+ZHVtcCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDYWxsVUlTaWRl
U2NyaXB0Q2FsbGJhY2siKSkgewogICAgICAgICBhdXRvIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9
IGRpY3Rpb25hcnlWYWx1ZShtZXNzYWdlQm9keSk7CiAgICAgICAgIGF1dG8gY2FsbGJhY2tJRCA9
IHVpbnQ2NFZhbHVlKG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgIkNhbGxiYWNrSUQiKTsKQEAgLTU4
OSw3ICs1OTQsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkdW1wVG9TdGRFcnIoY29uc3QgU3Ry
aW5nJiBvdXRwdXQpCiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJEdW1wVG9TdGRFcnIiLCBzdHJpbmcg
PyBzdHJpbmctPmRhdGEoKSA6ICJPdXQgb2YgbWVtb3J5XG4iKTsKIH0KIAotdm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6b3V0cHV0VGV4dChjb25zdCBTdHJpbmcmIG91dHB1dCkKK3ZvaWQgSW5qZWN0ZWRC
dW5kbGU6Om91dHB1dFRleHQoY29uc3QgU3RyaW5nJiBvdXRwdXQsIElzRmluYWxUZXN0T3V0cHV0
IGlzRmluYWxUZXN0T3V0cHV0KQogewogICAgIGlmIChtX3N0YXRlICE9IFRlc3RpbmcpCiAgICAg
ICAgIHJldHVybjsKQEAgLTYwMCw3ICs2MDUsOCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpvdXRw
dXRUZXh0KGNvbnN0IFN0cmluZyYgb3V0cHV0KQogICAgIC8vIFdlIHVzZSBXS0J1bmRsZVBhZ2VQ
b3N0TWVzc2FnZUlnbm9yaW5nRnVsbHlTeW5jaHJvbm91c01vZGUoKSBpbnN0ZWFkIG9mIFdLQnVu
ZGxlUGFnZVBvc3RNZXNzYWdlKCkgdG8gbWFrZSBzdXJlIHRoYXQgYWxsIHRleHQgb3V0cHV0CiAg
ICAgLy8gaXMgZG9uZSB2aWEgYXN5bmNocm9ub3VzIElQQywgZXZlbiBpZiB0aGUgY29ubmVjdGlv
biBpcyBpbiBmdWxseSBzeW5jaHJvbm91cyBtb2RlIGR1ZSB0byBhIFdLQnVuZGxlUGFnZVBvc3RT
eW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKCkKICAgICAvLyBjYWxsLiBPdGhlcndpc2UsIG1l
c3NhZ2VzIGxvZ2dlZCB2aWEgc3luYyBhbmQgYXN5bmMgSVBDIG1heSBlbmQgdXAgb3V0IG9mIG9y
ZGVyIGFuZCBjYXVzZSBmbGFraW5lc3MuCi0gICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2VJZ25v
cmluZ0Z1bGx5U3luY2hyb25vdXNNb2RlKHBhZ2UoKS0+cGFnZSgpLCB0b1dLKCJUZXh0T3V0cHV0
IikuZ2V0KCksIHRvV0soc3RyaW5nID8gc3RyaW5nLT5kYXRhKCkgOiAiT3V0IG9mIG1lbW9yeVxu
IikuZ2V0KCkpOworICAgIGF1dG8gbWVzc2FnZU5hbWUgPSBpc0ZpbmFsVGVzdE91dHB1dCA9PSBJ
c0ZpbmFsVGVzdE91dHB1dDo6WWVzID8gdG9XSygiRmluYWxUZXh0T3V0cHV0IikgOiB0b1dLKCJU
ZXh0T3V0cHV0Iik7CisgICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2VJZ25vcmluZ0Z1bGx5U3lu
Y2hyb25vdXNNb2RlKHBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgdG9XSyhzdHJp
bmcgPyBzdHJpbmctPmRhdGEoKSA6ICJPdXQgb2YgbWVtb3J5XG4iKS5nZXQoKSk7CiB9CiAKIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3ROZXdCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZShib29sIHZh
bHVlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5oCmluZGV4IGNmYmFkMDQ5MGMxNmI5NzYyY2MxMjlhMTYyOWJjNmZkMDg0
YmQ4YjguLjY4M2ZkODU0NzU3YTkzMTFiZTRkN2M5YTFkNDhlMDZhNjJlMWY3ZmIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmgKQEAgLTgxLDcgKzgxLDggQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVs
cygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFBpeGVsczsgfQogICAgIGJvb2wgZHVtcEpTQ29uc29s
ZUxvZ0luU3RkRXJyKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnI7
IH07CiAKLSAgICB2b2lkIG91dHB1dFRleHQoY29uc3QgU3RyaW5nJik7CisgICAgZW51bSBjbGFz
cyBJc0ZpbmFsVGVzdE91dHB1dCA6IGJvb2wgeyBObywgWWVzIH07CisgICAgdm9pZCBvdXRwdXRU
ZXh0KGNvbnN0IFN0cmluZyYsIElzRmluYWxUZXN0T3V0cHV0ID0gSXNGaW5hbFRlc3RPdXRwdXQ6
Ok5vKTsKICAgICB2b2lkIGR1bXBUb1N0ZEVycihjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHBv
c3ROZXdCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZShib29sKTsKICAgICB2b2lkIHBvc3RBZGRDaHJv
bWVJbnB1dEZpZWxkKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggM2M3NDEyN2NmYmUw
ZGE0NjNmNzFjYTYwMGE1Y2FjMzA4NjZiZjRhMi4uZGU5ZGUxZmRjNjMzMGNhZTMyM2NhNDQ5MDM2
MzdlN2ZjMGExZTQyNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtODQ2LDcgKzg0Niw3
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkdW1wKCkKICAgICAgICAgICAgIGluamVjdGVk
QnVuZGxlLnNldFJlcGFpbnRSZWN0cyhhZG9wdFdLKFdLQnVuZGxlUGFnZUNvcHlUcmFja2VkUmVw
YWludFJlY3RzKG1fcGFnZSkpLmdldCgpKTsKICAgICB9CiAKLSAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIEluamVjdGVkQnVuZGxlOjpJc0Zp
bmFsVGVzdE91dHB1dDo6WWVzKTsKICAgICBpbmplY3RlZEJ1bmRsZS5kb25lKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMDRmMWRkMjAyOGZl
ODVkZGFhNWU2NTQ4YmJkMzg1N2ZhNDA2NDhkYS4uODEzNWFhZjcxYzYxZGEyYTM5MjU2YmFkZjdl
NTNjZDI0NzM2Mjk0MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTQ5MSw2ICs0OTEsMTQgQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVP
dGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb24KICAgICB9Owog
ICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KG5ld1BhZ2UsICZwYWdlTmF2aWdhdGlv
bkNsaWVudC5iYXNlKTsKIAorICAgIFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50VjEgaW5qZWN0
ZWRCdW5kbGVDbGllbnQgPSB7CisgICAgICAgIHsgMSwgdGhpcyB9LAorICAgICAgICBkaWRSZWNl
aXZlUGFnZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUsCisgICAgICAgIG51bGxwdHIsCisgICAg
ICAgIGRpZFJlY2VpdmVTeW5jaHJvbm91c1BhZ2VNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlV2l0
aExpc3RlbmVyLAorICAgIH07CisgICAgV0tQYWdlU2V0UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50
KG5ld1BhZ2UsICZpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsKKwogICAgIHZpZXctPmRpZElu
aXRpYWxpemVDbGllbnRzKCk7CiAKICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudXBk
YXRlV2luZG93U2NhbGVGb3JUZXN0KHZpZXcucHRyKCksICpUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkubV9jdXJyZW50SW52b2NhdGlvbik7CkBAIC0xNTcyLDcgKzE1ODAsMTYgQEAgV0tUeXBl
UmVmIFRlc3RDb250cm9sbGVyOjpnZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRh
dGEoV0tDb250ZXh0UmVmLAogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlUGFnZU1l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
Ci0gICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1l
LCBtZXNzYWdlQm9keSk7CisgICAgYXV0byogdGVzdENvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxU
ZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBpZiAo
cGFnZSAhPSB0ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGFnZSgpKSB7CisgICAgICAg
IC8vIElmIHRoaXMgaXMgYSBEb25lIG1lc3NhZ2UgZnJvbSBhbiBhdXhpbGlhcnkgdmlldyBpbiBp
dHMgb3duIFdlYlByb2Nlc3MgKGR1ZSB0byBwcm9jZXNzLXN3YXBwaW5nKSwgd2UgbmVlZCB0byBu
b3RpZnkgdGhlIGluamVjdGVkIGJ1bmRsZSBvZiB0aGUgbWFpbiBXZWJWaWV3CisgICAgICAgIC8v
IHRoYXQgdGhlIHRlc3QgaXMgZG9uZS4KKyAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcobWVzc2FnZU5hbWUsICJEb25lIikgJiYgdGVzdENvbnRyb2xsZXItPm1fY3VycmVu
dEludm9jYXRpb24pCisgICAgICAgICAgICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5k
bGUodGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBhZ2UoKSwgdG9XSygiTm90aWZ5RG9u
ZSIpLmdldCgpLCBudWxscHRyKTsKKyAgICAgICAgaWYgKCFXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGV4dE91dHB1dCIpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICB0ZXN0Q29udHJvbGxlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5KTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxl
cjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzUGFnZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVXaXRo
TGlzdGVuZXIoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVS
ZWYgbWVzc2FnZUJvZHksIFdLTWVzc2FnZUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApp
bmRleCAzNDUwNjkzMDA5OTJmYjNlMDcxM2U4MzJjNDE3ZmM1MWMwODhmMDhjLi5mZjRmMjU5NDk3
ZTEyMWM3ZDk4MGU5OTc4ZTQzMjBjNzM0ZTMyMTMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMzMyLDcgKzMzMiw3IEBAIHZvaWQgVGVzdEludm9jYXRp
b246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRleHRPdXRwdXQiKSkgeworICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGV4dE91dHB1dCIpIHx8IFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJGaW5hbFRleHRPdXRwdXQi
KSkgewogICAgICAgICBtX3RleHRPdXRwdXQuYXBwZW5kKHRvV1RGU3RyaW5nKHN0cmluZ1ZhbHVl
KG1lc3NhZ2VCb2R5KSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZjN2ZhNzE3
NTVmOTkyOWVjNmMzYmY3ODE5ZDE1OTQ3OTAyZTc5ZjQuLmIxNDI0NTUzZGU1MTk3MDcyYzU3OGE5
MDQ2Y2VjMWMwYTIzYTkwNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0yMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgcHJv
Y2Vzcy1zd2FwIGZvciBpbml0aWFsIG5hdmlnYXRpb24gb2YgYSBwb3B1cCBpZiBpdCBoYXMgbm8g
b3BlbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzE5OTAKKyAgICAgICAgPHJkYXI6Ly84NDQyNTUwND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL29wZW4tYW5kLWNsb3NlLWJ5LURP
TS5odG1sOgorICAgICAgICBUaGUgdGVzdCBpcyByZWx5aW5nIG9uIHRlc3RSdW5uZXIud2luZG93
Q291bnQoKSwgd2hpY2ggaXMgb25seSBhYmxlIHRvIGNvdW50IHdpbmRvd3MgaW5zaWRlIHRoZQor
ICAgICAgICBjdXJyZW50IFdlYlByb2Nlc3MuIEFkZCBgcmVsPW9wZW5lcmAgdG8gdGhlIGxpbmsg
c28gdGhhdCB0aGUgbmV3IHdpbmRvdyBrZWVwIG9wZW5pbmcgaW4gdGhlIHNhbWUKKyAgICAgICAg
cHJvY2Vzcywgc28gdGhhdCBgdGVzdFJ1bm5lci53aW5kb3dDb3VudCgpYCBhY3R1YWxseSBrZWVw
cyB3b3JraW5nIGFzIGV4cGVjdGVkLgorICAgICAgICBJIGFkZGVkIGFuIEFQSSB0ZXN0IHRvIGNv
dmVyIHRvIG1ha2Ugc3VyZSB0aGF0IHdpbmRvd3Mgb3BlbmVkIGJ5IERPTSBjYW4gc3RpbGwgY2xv
c2UgdGhlbXNlbHZlcworICAgICAgICBpbiB0aGUgY2FzZSB3aGVyZSB3ZSBzd2FwIHByb2Nlc3Nl
cy4KKwogMjAyMS0xMC0yMCAgQXl1bWkgS29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNvbT4K
IAogICAgICAgICBbIG1hY09TIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIv
ZXZlbnQtdXBsb2FkLXByb2dyZXNzLWNyb3Nzb3JpZ2luLmFueS5odG1sIGlzIGEgZmxha3kgZmFp
bHVyZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGI4ZjA3M2IzZGE2NTMxMzVk
ODJiOTRjNjA2MDhiMzczMmMyNzEzMTQuLjFlY2VjOGVkM2Y1Nzk4YmE0ZThlOTZjZWQ0NzlmZjNi
ODcyN2QwZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDIxLTEwLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRpYWwgbmF2aWdhdGlvbiBvZiBhIHBv
cHVwIGlmIGl0IGhhcyBubyBvcGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTk5MAorICAgICAgICA8cmRhcjovLzg0NDI1NTA0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1jb2VwLXNhbmRib3gu
aHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgIFJlYmFzZWxpbmUgdGVzdHMgZHVlIHRvIG1pbm9yIGxvZ2dpbmcgZGlmZmVyZW5j
ZXMuCisKIDIwMjEtMTAtMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQg
TWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL29wZW4tYW5kLWNsb3NlLWJ5LURPTS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vb3Blbi1hbmQtY2xvc2UtYnktRE9NLmh0bWwKaW5kZXggOTU3YjU4M2NkZjdhNTZk
ODUyYmI2OWJmYjJkN2QyMWI5NTdkNjQwZS4uNzFlNzA3NTA5NGI0NDQ4ZWVmMzU1ZTg2YjFiMGZi
ZmVlNzY1ZjVmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vb3Blbi1hbmQtY2xv
c2UtYnktRE9NLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vb3Blbi1hbmQtY2xvc2Ut
YnktRE9NLmh0bWwKQEAgLTUzLDcgKzUzLDcgQEAgVG8gcnVuIHRoZSB0ZXN0IG1hbnVhbGx5IGNs
aWNrIHRoZSBsaW5rIGJlbG93LgogPGJyLz4KIDxkaXYgaWQ9ImNvbnNvbGUiIC8+CiA8YnIvPgot
PGEgaHJlZj0icmVzb3VyY2VzL21pZGRsZS5odG1sIiBpZD0iYW5jaG9yTGluayIgdGFyZ2V0PSJf
YmxhbmsiPk9wZW4gbmV3IHdpbmRvdyB0aGF0IHdpbGwgY2xvc2UgaXRzZWxmPC9hPgorPGEgaHJl
Zj0icmVzb3VyY2VzL21pZGRsZS5odG1sIiBpZD0iYW5jaG9yTGluayIgdGFyZ2V0PSJfYmxhbmsi
IHJlbD0ib3BlbmVyIj5PcGVuIG5ldyB3aW5kb3cgdGhhdCB3aWxsIGNsb3NlIGl0c2VsZjwvYT4K
IDxici8+PGJyLz4KIAogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nv
b3AtY29lcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9j
b29wLWNvZXAtc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMTc2ZTMxNDVhNzc4NGJi
ZmViOTNmNmM5ZDhkZmYyYWVmOWQ4NGY0Ny4uMzczMzI0NWNlNzA5YThkMGNiYWY5YmY4ZjczZDgx
ZWE4NTIyNjNiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtY29lcC1zYW5k
Ym94Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1jb2Vw
LXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNCBAQAogQ09OU09MRSBNRVNT
QUdFOiBOYXZpZ2F0aW9uIHdhcyBibG9ja2VkIGJ5IENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5
Ci1DT05TT0xFIE1FU1NBR0U6IE5hdmlnYXRpb24gd2FzIGJsb2NrZWQgYnkgQ3Jvc3MtT3JpZ2lu
LU9wZW5lci1Qb2xpY3kKIAogUEFTUyA8aWZyYW1lIHNhbmRib3g9ImFsbG93LXBvcHVwcyBhbGxv
dy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luIj4gU2FuZGJveGVkIENyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5IHBvcHVwIHNob3VsZCByZXN1bHQgaW4gYSBuZXR3b3JrIGVycm9yCiBQQVNTIDxp
ZnJhbWUgc2FuZGJveD0iYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHMiPiBTYW5kYm94ZWQgQ3Jv
c3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgcG9wdXAgc2hvdWxkIHJlc3VsdCBpbiBhIG5ldHdvcmsg
ZXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLXNhbmRib3guaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRwcy1leHBl
Y3RlZC50eHQKaW5kZXggMTc2ZTMxNDVhNzc4NGJiZmViOTNmNmM5ZDhkZmYyYWVmOWQ4NGY0Ny4u
MzczMzI0NWNlNzA5YThkMGNiYWY5YmY4ZjczZDgxZWE4NTIyNjNiNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdp
bi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSAr
MSw0IEBACiBDT05TT0xFIE1FU1NBR0U6IE5hdmlnYXRpb24gd2FzIGJsb2NrZWQgYnkgQ3Jvc3Mt
T3JpZ2luLU9wZW5lci1Qb2xpY3kKLUNPTlNPTEUgTUVTU0FHRTogTmF2aWdhdGlvbiB3YXMgYmxv
Y2tlZCBieSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeQogCiBQQVNTIDxpZnJhbWUgc2FuZGJv
eD0iYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4iPiBTYW5kYm94
ZWQgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgcG9wdXAgc2hvdWxkIHJlc3VsdCBpbiBhIG5l
dHdvcmsgZXJyb3IKIFBBU1MgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1wb3B1cHMgYWxsb3ctc2Ny
aXB0cyI+IFNhbmRib3hlZCBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBwb3B1cCBzaG91bGQg
cmVzdWx0IGluIGEgbmV0d29yayBlcnJvcgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441979</attachid>
            <date>2021-10-20 20:50:32 -0700</date>
            <delta_ts>2021-10-21 07:49:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231990-20211020205030.patch</filename>
            <type>text/plain</type>
            <size>54410</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1Nzk5MmYxZjc4ZmJjNjYy
YmNjMmI4MWEzYmZmNWM5MmY0MzAyNTcuLjM3Yzg1MDE5MzJkMTc2ZGJkYjE3M2YxMzlhNDUxMzAy
YmZkNmRlZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEtMTAtMjAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mt
c3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5l
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkw
CisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRp
YWwgbmF2aWdhdGlvbiBvZiBhIHBvcHVwIGlmIGl0IGhhcyBubyBvcGVuZXIsIGV2ZW4gaWYgdGhl
IG5hdmlnYXRpb24gaXMKKyAgICAgICAgc2FtZS1zaXRlLiBTd2FwcGluZyBwcm9jZXNzIGlzIG5v
dCBXZWItb2JzZXJ2YWJsZSBoZXJlIHNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciByZWxhdGlvbnNo
aXAuIEhvd2V2ZXIsIHN3YXBwaW5nCisgICAgICAgIHByb2Nlc3NlcyBoYXMgYmVuZWZpdHMgaGVy
ZSBzaW5jZSB3ZSBkb24ndCB3YW50IHRvIGVuZCB1cCB3aXRoIHRvbyBtYW55IHRhYnMgc2hhcmlu
ZyB0aGUgc2FtZSBwcm9jZXNzLgorCisgICAgICAgIFRoaXMgaW1wYWN0cyBHb29nbGUgRHJpdmUg
d2hlcmUgZG91YmxlLWNsaWNraW5nIGEgZG9jdW1lbnQgd2lsbCBvcGVuIEdvb2dsZSBEb2NzIGlu
IGEgbmV3IHRhYiBhbmQgaW4gdGhlIHNhbWUKKyAgICAgICAgV2ViUHJvY2VzcyBhcyBHb29nbGUg
RHJpdmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB1cGRhdGVkIGV4aXN0aW5nIEFQSSB0ZXN0
cyBhbmQgdGhpcyBpcyBub3QgV2ViLW9ic2VydmFibGUuCisKKyAgICAgICAgKiBTaGFyZWQvRnJh
bWVJbmZvRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lSW5mb0RhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lSW5mb0RhdGE6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRl
cnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rpb25E
YXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhOjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjplZmZl
Y3RpdmVTYW5kYm94RmxhZ3MgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpjYW5jZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRp
b25TaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0ZWRS
ZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmluZm8gY29uc3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9h
ZFJlcXVlc3QpOgorCiAyMDIxLTEwLTIwICBKb2huIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggY3Jhc2ggd2hlbiBjYWxsaW5nIHNldFVzZXJuYW1lRm9yTG9jYWxD
cmVkZW50aWFsV2l0aElECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDAxNWY4NTI0NGM5YWNkNWZmNTBiM2M4
OWRlYzBhNGMxYThkNGY5ZWUuLjlmNTA0NTg5MjAxZTA5NTIyZjFjZjQyMmI3Mjk2N2M3NTYwOWY2
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yNzksNyArMjc5LDcgQEAgcHVibGljOgogICAgIGNvbnN0
IEZyYW1lJiBtYWluRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZS5nZXQoKTsgfQog
CiAgICAgYm9vbCBvcGVuZWRCeURPTSgpIGNvbnN0OwotICAgIHZvaWQgc2V0T3BlbmVkQnlET00o
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE9wZW5lZEJ5RE9NKCk7CiAKICAgICBib29s
IG9wZW5lZEJ5RE9NV2l0aE9wZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbmVkQnlET01XaXRo
T3BlbmVyOyB9CiAgICAgdm9pZCBzZXRPcGVuZWRCeURPTVdpdGhPcGVuZXIoYm9vbCB2YWx1ZSkg
eyBtX29wZW5lZEJ5RE9NV2l0aE9wZW5lciA9IHZhbHVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Zy
YW1lSW5mb0RhdGEuY3BwCmluZGV4IDg1MTZmNjIwOTIzNTIxOTI1OTlkM2UyZmZiMDQzZmI2NTEz
ZDg4MzQuLmVkNmM3MGNhYTQ0MWM5OTU4MmI0YWIyYjMxZTc0MDQyYmVlZDMyYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCkBAIC0zNSw2ICszNSw3IEBAIHZvaWQgRnJh
bWVJbmZvRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IGlzTWFpbkZyYW1lOwogICAgIGVuY29kZXIgPDwgcmVxdWVzdDsKICAgICBlbmNvZGVy
IDw8IHNlY3VyaXR5T3JpZ2luOworICAgIGVuY29kZXIgPDwgZnJhbWVOYW1lOwogICAgIGVuY29k
ZXIgPDwgZnJhbWVJRDsKICAgICBlbmNvZGVyIDw8IHBhcmVudEZyYW1lSUQ7CiB9CkBAIC01Niw2
ICs1NywxMSBAQCBzdGQ6Om9wdGlvbmFsPEZyYW1lSW5mb0RhdGE+IEZyYW1lSW5mb0RhdGE6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFzZWN1cml0eU9yaWdpbikKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAorICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBm
cmFtZU5hbWU7CisgICAgZGVjb2RlciA+PiBmcmFtZU5hbWU7CisgICAgaWYgKCFmcmFtZU5hbWUp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPj4gZnJhbWVJRDsKICAgICBkZWNvZGVy
ID4+IGZyYW1lSUQ7CiAgICAgaWYgKCFmcmFtZUlEKQpAQCAtNzAsNiArNzYsNyBAQCBzdGQ6Om9w
dGlvbmFsPEZyYW1lSW5mb0RhdGE+IEZyYW1lSW5mb0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIpCiAgICAgICAgIFdURk1vdmUoKmlzTWFpbkZyYW1lKSwKICAgICAgICAgV1RGTW92
ZSgqcmVxdWVzdCksCiAgICAgICAgIFdURk1vdmUoKnNlY3VyaXR5T3JpZ2luKSwKKyAgICAgICAg
V1RGTW92ZSgqZnJhbWVOYW1lKSwKICAgICAgICAgV1RGTW92ZSgqZnJhbWVJRCksCiAgICAgICAg
IFdURk1vdmUoKnBhcmVudEZyYW1lSUQpCiAgICAgfX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUlu
Zm9EYXRhLmgKaW5kZXggZjQ5ZjNhMWRlNDEzMDIzMWVhMTE0NmNmMjI5NThlOTg3MDg5MmE0Yi4u
MGYwYmU1NDlmMTJhOGQ5NjVkNTYzY2VjM2FmYzk4NDkwM2IyZjFlMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0ZyYW1lSW5mb0RhdGEuaApAQCAtNDMsNiArNDMsNyBAQCBzdHJ1Y3QgRnJhbWVJbmZvRGF0
YSB7CiAgICAgYm9vbCBpc01haW5GcmFtZSB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3Vy
aXR5T3JpZ2luOworICAgIFN0cmluZyBmcmFtZU5hbWU7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IHBhcmVudEZyYW1lSUQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
TG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IGFkMTIyMGM4NGY1YzExYzk5OWE5YWM0ZmYxY2M1ZjEy
ZDUzMzFiZWUuLmUxMjZmMzM0ZTQ5YmExOTZkNTQ2MDk4MzU1MmUwOTBhOGVmYmIzMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgdm9p
ZCBMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICBlbmNvZGVyIDw8IGxvY2tIaXN0b3J5OwogICAgIGVuY29kZXIgPDwgbG9ja0JhY2tGb3J3YXJk
TGlzdDsKICAgICBlbmNvZGVyIDw8IGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeTsKKyAg
ICBlbmNvZGVyIDw8IGVmZmVjdGl2ZVNhbmRib3hGbGFnczsKICAgICBlbmNvZGVyIDw8IGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAgZW5jb2RlciA8PCBleGlzdGluZ05ldHdvcmtS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9SZXN1bWU7CiAgICAgZW5jb2RlciA8PCBpc1NlcnZpY2VX
b3JrZXJMb2FkOwpAQCAtMTM2LDYgKzEzNywxMiBAQCBib29sIExvYWRQYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBMb2FkUGFyYW1ldGVycyYgZGF0YSkKICAgICBpZiAo
IWNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGRhdGEuY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5ID0gV1RGTW92ZSgqY2xpZW50
UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KTsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U2FuZGJveEZsYWdzPiBlZmZlY3RpdmVTYW5kYm94RmxhZ3M7CisgICAgZGVjb2RlciA+PiBlZmZl
Y3RpdmVTYW5kYm94RmxhZ3M7CisgICAgaWYgKCFlZmZlY3RpdmVTYW5kYm94RmxhZ3MpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBkYXRhLmVmZmVjdGl2ZVNhbmRib3hGbGFncyA9ICplZmZl
Y3RpdmVTYW5kYm94RmxhZ3M7CiAgICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhLmlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAppbmRleCA5MjBlMTRkZTkwYjhiZjI2NjMzZDkx
NzZlMGJmOWNlNWVkZjRjYjYwLi42NDJkNTk5YTg0MTEyMDcyNjM0ZjliMDM5OTUyZmY1MTRhMDI1
ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTQzLDYgKzQzLDEw
IEBAIGNsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCituYW1lc3BhY2UgV2ViQ29y
ZSB7Cit0eXBlZGVmIGludCBTYW5kYm94RmxhZ3M7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdHJ1Y3QgTG9hZFBhcmFtZXRlcnMgewpAQCAtNzQsNiArNzgsNyBAQCBzdHJ1Y3QgTG9hZFBh
cmFtZXRlcnMgewogICAgIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3
YXJkTGlzdCB7IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vIH07CiAgICAgV2ViQ29y
ZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSBzZXNzaW9uSGlzdG9y
eVZpc2liaWxpdHkgeyBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNp
YmlsaXR5OjpWaXNpYmxlIH07CiAgICAgU3RyaW5nIGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlz
dG9yeTsKKyAgICBXZWJDb3JlOjpTYW5kYm94RmxhZ3MgZWZmZWN0aXZlU2FuZGJveEZsYWdzIHsg
MCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcj4gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRv
UmVzdW1lOwogICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyTG9hZCB7IGZhbHNlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKaW5kZXggZmEwY2EzNzRi
ZTViZGE4NDUwNDRkMzNiY2ExZTNmM2RkZDQyYmQyYy4uMmUwMzdkN2YxMDYwOTA4MzI2NmM5M2Fj
N2M5NzY3YzcxNzVjYjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdh
dGlvbkFjdGlvbkRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25B
Y3Rpb25EYXRhLmNwcApAQCAtNTQsNiArNTQsNyBAQCB2b2lkIE5hdmlnYXRpb25BY3Rpb25EYXRh
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbG9j
a0hpc3Rvcnk7CiAgICAgZW5jb2RlciA8PCBsb2NrQmFja0ZvcndhcmRMaXN0OwogICAgIGVuY29k
ZXIgPDwgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OworICAgIGVuY29kZXIgPDwgZWZm
ZWN0aXZlU2FuZGJveEZsYWdzOwogICAgIGVuY29kZXIgPDwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ7CiB9CiAKQEAgLTE0Niw2ICsxNDcsMTEgQEAgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW9uQWN0
aW9uRGF0YT4gTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGQKICAg
ICBpZiAoIWNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKIAorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2FuZGJveEZsYWdzPiBl
ZmZlY3RpdmVTYW5kYm94RmxhZ3M7CisgICAgZGVjb2RlciA+PiBlZmZlY3RpdmVTYW5kYm94Rmxh
Z3M7CisgICAgaWYgKCFlZmZlY3RpdmVTYW5kYm94RmxhZ3MpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ+PiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICBkZWNv
ZGVyID4+IHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIGlmICghcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQpCkBAIC0xNTQsNyArMTYwLDcgQEAgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW9uQWN0
aW9uRGF0YT4gTmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGQKICAg
ICByZXR1cm4ge3sgV1RGTW92ZShuYXZpZ2F0aW9uVHlwZSksIG1vZGlmaWVycywgV1RGTW92ZSht
b3VzZUJ1dHRvbiksIFdURk1vdmUoc3ludGhldGljQ2xpY2tUeXBlKSwgV1RGTW92ZSgqdXNlckdl
c3R1cmVUb2tlbklkZW50aWZpZXIpLAogICAgICAgICBXVEZNb3ZlKCpjYW5IYW5kbGVSZXF1ZXN0
KSwgV1RGTW92ZShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KSwgV1RGTW92ZSgqZG93bmxv
YWRBdHRyaWJ1dGUpLCBXVEZNb3ZlKGNsaWNrTG9jYXRpb25JblJvb3RWaWV3Q29vcmRpbmF0ZXMp
LAogICAgICAgICBXVEZNb3ZlKCppc1JlZGlyZWN0KSwgKnRyZWF0QXNTYW1lT3JpZ2luTmF2aWdh
dGlvbiwgKmhhc09wZW5lZEZyYW1lcywgKm9wZW5lZEJ5RE9NV2l0aE9wZW5lciwgV1RGTW92ZSgq
cmVxdWVzdGVyT3JpZ2luKSwKLSAgICAgICAgV1RGTW92ZSgqdGFyZ2V0QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciksIFdURk1vdmUoKnNvdXJjZUJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIpLCBs
b2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgV1RGTW92ZSgqY2xpZW50UmVkaXJlY3RT
b3VyY2VGb3JIaXN0b3J5KSwgV1RGTW92ZSgqcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIH19Owor
ICAgICAgICBXVEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgV1RGTW92
ZSgqc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIGxvY2tIaXN0b3J5LCBsb2NrQmFj
a0ZvcndhcmRMaXN0LCBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpLCAq
ZWZmZWN0aXZlU2FuZGJveEZsYWdzLCBXVEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkg
fX07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05h
dmlnYXRpb25BY3Rpb25EYXRhLmgKaW5kZXggMjkxNjE5N2ViMWNiZTIyNmE2NWI1MDY0YjMxOTlk
NzIzZTlmNTU2NS4uMzMzMmIxNTU2NmNiNzM1ZmNhMGY1Y2FjNTcxOWI5MzU4ODg5MTBmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCkBAIC0zNyw2ICsz
NywxMCBAQCBjbGFzcyBEZWNvZGVyOwogY2xhc3MgRW5jb2RlcjsKIH0KIAorbmFtZXNwYWNlIFdl
YkNvcmUgewordHlwZWRlZiBpbnQgU2FuZGJveEZsYWdzOworfQorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogc3RydWN0IE5hdmlnYXRpb25BY3Rpb25EYXRhIHsKQEAgLTYyLDYgKzY2LDcgQEAgc3Ry
dWN0IE5hdmlnYXRpb25BY3Rpb25EYXRhIHsKICAgICBXZWJDb3JlOjpMb2NrSGlzdG9yeSBsb2Nr
SGlzdG9yeSB7IFdlYkNvcmU6OkxvY2tIaXN0b3J5OjpObyB9OwogICAgIFdlYkNvcmU6OkxvY2tC
YWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCB7IFdlYkNvcmU6OkxvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vIH07CiAgICAgV1RGOjpTdHJpbmcgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JI
aXN0b3J5OworICAgIFdlYkNvcmU6OlNhbmRib3hGbGFncyBlZmZlY3RpdmVTYW5kYm94RmxhZ3Mg
eyAwIH07CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dD4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGNiY2E5MDhlMzgzNjBk
MWQ5Yzk5NDQyZTA5M2ZhMDg5MTUxZTk2ZDYuLmQ5NDcyNTY1OTU0NzU1MmJjOTg3NDg3NTg3YjM5
NWJjNmU5NjlmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCkBAIC02NSw2ICs2NSw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IHRvcENvbnRlbnRJbnNldDsKICAgICBlbmNvZGVyIDw8IG1lZGlhVm9sdW1lOwogICAg
IGVuY29kZXIgPDwgbXV0ZWQ7CisgICAgZW5jb2RlciA8PCBvcGVuZWRCeURPTTsKICAgICBlbmNv
ZGVyIDw8IG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAgICAgZW5jb2RlciA8PCBtZWRpYVBs
YXliYWNrSXNTdXNwZW5kZWQ7CiAgICAgZW5jb2RlciA8PCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQ7CkBAIC0yOTAsNiArMjkxLDggQEAgc3RkOjpvcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjoKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBwYXJhbWV0ZXJzLm11dGVkID0gKm11dGVkU3RhdGVG
bGFnczsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5vcGVuZWRCeURPTSkp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLm1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cpKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYVBsYXli
YWNrSXNTdXNwZW5kZWQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IGViMWVlMDk1OWE1MTNkYjgyNTdkNjRhZGRjZWVhNTA5Yjdh
M2U4NmUuLjU1NzBmOGRmNDk4NjNkODA0MmE5Mzg2NDk0NDQ3NTQ4NzVmNjYwMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEy
MCw2ICsxMjAsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgCiAg
ICAgZmxvYXQgbWVkaWFWb2x1bWU7CiAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlck11dGVkU3Rh
dGVGbGFncyBtdXRlZDsKKyAgICBib29sIG9wZW5lZEJ5RE9NIHsgZmFsc2UgfTsKICAgICBib29s
IG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAgICAgYm9vbCBtZWRpYVBsYXliYWNrSXNTdXNw
ZW5kZWQgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb24uaAppbmRleCBhZTZmMGI1NWQ5OWYzMjFjZDc4NTU1NjEwNjM0YTVjODZkYTAxMzM4Li45
NTExNzZkMmZiZmY2ZjNhYjk1NmExNjg2ZjRiZDg2NDljNWMxYTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKQEAgLTE0NCw2ICsxNDQsNyBAQCBwdWJs
aWM6CiAgICAgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmF2aWdhdGlvbkFjdGlvbi5sb2NrQmFja0ZvcndhcmRM
aXN0OyB9CiAKICAgICBXVEY6OlN0cmluZyBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uLmNsaWVudFJlZGlyZWN0U291
cmNlRm9ySGlzdG9yeTsgfQorICAgIFdlYkNvcmU6OlNhbmRib3hGbGFncyBlZmZlY3RpdmVTYW5k
Ym94RmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uLmVmZmVjdGl2
ZVNhbmRib3hGbGFnczsgfQogCiAgICAgdm9pZCBzZXRMYXN0TmF2aWdhdGlvbkFjdGlvbihjb25z
dCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhJiBuYXZpZ2F0aW9uQWN0aW9uKSB7IG1fbGFz
dE5hdmlnYXRpb25BY3Rpb24gPSBuYXZpZ2F0aW9uQWN0aW9uOyB9CiAgICAgY29uc3QgV2ViS2l0
OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSYgbGFzdE5hdmlnYXRpb25BY3Rpb24oKSBjb25zdCB7IHJl
dHVybiBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCAyOGMyMGU5YjNjODBiMDkyZDQ3ODI0YmFmYTlmMGMy
ZGUyM2E4NDg4Li42ZDBkYWE1M2NhNTAwNzEwNzM5MDUwM2QyODA5OTVhNGNkODc2YjY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTExNTIsNyAr
MTE1Miw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtYWluRnJhbWVJRDsKICAgICAgICAgaWYgKGF1dG8q
IG1haW5GcmFtZSA9IGZyYW1lLnBhZ2UoKSA/IGZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCkgOiBu
dWxscHRyKQogICAgICAgICAgICAgbWFpbkZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsK
LSAgICAgICAgRnJhbWVJbmZvRGF0YSBmcmFtZUluZm8geyBmcmFtZS5pc01haW5GcmFtZSgpLCB7
IH0sIHVzZXJNZWRpYU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBmcmFtZS5mcmFtZUlEKCksIG1h
aW5GcmFtZUlEIH07CisgICAgICAgIEZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvIHsgZnJhbWUuaXNN
YWluRnJhbWUoKSwgeyB9LCB1c2VyTWVkaWFPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgeyB9LCBm
cmFtZS5mcmFtZUlEKCksIG1haW5GcmFtZUlEIH07CiAgICAgICAgIFJldGFpblB0cjxXS0ZyYW1l
SW5mbz4gZnJhbWVJbmZvV3JhcHBlciA9IHdyYXBwZXIoQVBJOjpGcmFtZUluZm86OmNyZWF0ZShX
VEZNb3ZlKGZyYW1lSW5mbyksIGZyYW1lLnBhZ2UoKSkpOwogCiAgICAgICAgIFdLTWVkaWFDYXB0
dXJlVHlwZSB0eXBlID0gV0tNZWRpYUNhcHR1cmVUeXBlQ2FtZXJhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IGI4OGEwNzg0NmQ3
OGQ2MDBkZTdjMDIzYTBiZDA0MDk2ZjA4NTdhNmMuLmRiOTMyNWMyZWI1YTk3ZjZlODA4OWMwZWFj
NWU1MDZlMDI2NzVlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5jcHAKQEAgLTE0OSw2ICsxNDksNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpjYW5jZWwoKQogICAgICAgICB0cnVlLCAvLyBpc01haW5GcmFtZQogICAgICAgICBt
X3JlcXVlc3QsCiAgICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChtX3JlcXVlc3Qu
dXJsKCkpLAorICAgICAgICB7IH0sCiAgICAgICAgIG1fbWFpbkZyYW1lLT5mcmFtZUlEKCksCiAg
ICAgICAgIHN0ZDo6bnVsbG9wdCwKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggZjdhODEwYjI3M2Q5MGY0YWJjNGNmYjE3ZTQzYjJhM2ZjOTJkY2U2
Yy4uODFlNWUwMTVmMmM5YjQ2MmVjNzk3MzA1YTM2NWIxMTM1NmQ1Y2M4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNDE2LDYgKzE0MTYsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2NlcwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tIaXN0b3J5ID0gbmF2
aWdhdGlvbi5sb2NrSGlzdG9yeSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tCYWNrRm9yd2Fy
ZExpc3QgPSBuYXZpZ2F0aW9uLmxvY2tCYWNrRm9yd2FyZExpc3QoKTsKICAgICBsb2FkUGFyYW1l
dGVycy5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkgPSBuYXZpZ2F0aW9uLmNsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOworICAgIGxvYWRQYXJhbWV0ZXJzLmVmZmVjdGl2ZVNh
bmRib3hGbGFncyA9IG5hdmlnYXRpb24uZWZmZWN0aXZlU2FuZGJveEZsYWdzKCk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW47CiAgICAgbG9hZFBhcmFtZXRlcnMuZXhpc3RpbmdOZXR3b3JrUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllclRvUmVzdW1lID0gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRl
bnRpZmllclRvUmVzdW1lOwogICAgIG1heWJlSW5pdGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5k
bGUocHJvY2VzcywgdXJsLCBtX3BhZ2VMb2FkU3RhdGUucmVzb3VyY2VEaXJlY3RvcnlVUkwoKSwg
bG9hZFBhcmFtZXRlcnMuc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CkBAIC0xNjAyLDYgKzE2MDMs
NyBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OmxvYWRTaW11bGF0ZWRS
ZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdQogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tIaXN0
b3J5ID0gbmF2aWdhdGlvbi0+bG9ja0hpc3RvcnkoKTsKICAgICBsb2FkUGFyYW1ldGVycy5sb2Nr
QmFja0ZvcndhcmRMaXN0ID0gbmF2aWdhdGlvbi0+bG9ja0JhY2tGb3J3YXJkTGlzdCgpOwogICAg
IGxvYWRQYXJhbWV0ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSA9IG5hdmlnYXRp
b24tPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOworICAgIGxvYWRQYXJhbWV0ZXJz
LmVmZmVjdGl2ZVNhbmRib3hGbGFncyA9IG5hdmlnYXRpb24tPmVmZmVjdGl2ZVNhbmRib3hGbGFn
cygpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4gPSBp
c05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCk7CiAKICAgICBzaW11bGF0ZWRSZXNwb25zZS5z
ZXRFeHBlY3RlZENvbnRlbnRMZW5ndGgoZGF0YS5zaXplKCkpOwpAQCAtMzQ1NSw3ICszNDU3LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJp
ZGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFj
dGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0
aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIFJlZlB0cjxB
UEk6OldlYnNpdGVQb2xpY2llcz4mJiBwb2xpY2llcywgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVy
PiYmIHNlbmRlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lE
ZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmln
YXRpb24sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgUHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBSZWZQ
dHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYgcG9saWNpZXMsIFJlZjxQb2xpY3lEZWNpc2lvblNl
bmRlcj4mJiBzZW5kZXIpCiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRpbmcs
ICJyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbjogZnJhbWVJRD0lbGx1LCBuYXZpZ2F0
aW9uSUQ9JWxsdSwgcG9saWN5QWN0aW9uPSV1IiwgZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCks
IG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsICh1bnNpZ25lZClw
b2xpY3lBY3Rpb24pOwogCkBAIC0zNTA4LDcgKzM1MTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIHBvbGljeUFjdGlv
biwgQQogICAgICAgICB9CiAgICAgfQogCi0gICAgcHJvY2VzcygpLnByb2Nlc3NQb29sKCkucHJv
Y2Vzc0Zvck5hdmlnYXRpb24oKnRoaXMsICpuYXZpZ2F0aW9uLCBzb3VyY2VQcm9jZXNzLmNvcHlS
ZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXVEZNb3ZlKHdl
YnNpdGVEYXRhU3RvcmUpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHBv
bGljeUFjdGlvbiwgbmF2aWdhdGlvbiA9IFJlZiB7ICpuYXZpZ2F0aW9uIH0sIG5hdmlnYXRpb25B
Y3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBzb3VyY2VQcm9jZXNzID0gc291cmNl
UHJvY2Vzcy5jb3B5UmVmKCksCisgICAgcHJvY2VzcygpLnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zv
ck5hdmlnYXRpb24oKnRoaXMsICpuYXZpZ2F0aW9uLCBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwg
c291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFtZUluZm8sIFdURk1v
dmUod2Vic2l0ZURhdGFTdG9yZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fSwgcG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uID0gUmVmIHsgKm5hdmlnYXRpb24gfSwgbmF2aWdh
dGlvbkFjdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHNvdXJjZVByb2Nlc3MgPSBz
b3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwKICAgICAgICAgcG9saWNpZXMgPSBXVEZNb3ZlKHBvbGlj
aWVzKSwgc2VuZGVyID0gV1RGTW92ZShzZW5kZXIpLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xp
ZW50XSAoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzRm9yTmF2aWdhdGlvbiwgU3VzcGVu
ZGVkUGFnZVByb3h5KiBkZXN0aW5hdGlvblN1c3BlbmRlZFBhZ2UsIGNvbnN0IFN0cmluZyYgcmVh
c29uKSBtdXRhYmxlIHsKICAgICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gaGFzIGJlZW4gZGVz
dHJveWVkLCB0aGVuIG5vIG5lZWQgdG8gcHJvY2VlZC4KICAgICAgICAgaWYgKGlzQ2xvc2VkKCkg
fHwgIW5hdmlnYXRpb25TdGF0ZSgpLmhhc05hdmlnYXRpb24obmF2aWdhdGlvbi0+bmF2aWdhdGlv
bklEKCkpKSB7CkBAIC01NDMwLDcgKzU0MzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlcwog
ICAgIFJlZiBsaXN0ZW5lciA9IGZyYW1lLnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGZyYW1lID0gUmVmIHsgZnJhbWUgfSwgc2Vu
ZGVyID0gV1RGTW92ZShzZW5kZXIpLCBuYXZpZ2F0aW9uLCBuYXZpZ2F0aW9uQWN0aW9uLCBmcmFt
ZUluZm8sIHVzZXJEYXRhT2JqZWN0ID0gcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0
cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCldIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBB
UEk6OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVCcm93c2luZ1dhcm5p
bmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZywgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbj4gaXNBcHBCb3VuZERvbWFpbikgbXV0YWJsZSB7CiAgICAgICAgIFdFQlBBR0VQ
Uk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjogbGlzdGVuZXIgY2FsbGVkOiBmcmFtZUlEPSVsbHUsIG5hdmlnYXRpb25JRD0lbGx1LCBwb2xp
Y3lBY3Rpb249JXUsIHNhZmVCcm93c2luZ1dhcm5pbmc9JWQsIGlzQXBwQm91bmREb21haW49JWQi
LCBmcmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0KCksIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5u
YXZpZ2F0aW9uSUQoKSA6IDAsICh1bnNpZ25lZClwb2xpY3lBY3Rpb24sICEhc2FmZUJyb3dzaW5n
V2FybmluZywgISFpc0FwcEJvdW5kRG9tYWluKTsKIAotICAgICAgICBhdXRvIGNvbXBsZXRpb25I
YW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMsIGZyYW1lLCBzZW5kZXIgPSBXVEZNb3ZlKHNl
bmRlciksIG5hdmlnYXRpb24sIG5hdmlnYXRpb25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25B
Y3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBwb2xpY2llcyA9IFJlZlB0ciB7
IHBvbGljaWVzIH1dIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKKyAgICAg
ICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzLCBmcmFtZSwg
ZnJhbWVJbmZvLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5hdmlnYXRpb24sIG5hdmlnYXRp
b25BY3Rpb24gPSBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBwb2xpY2llcyA9IFJlZlB0ciB7IHBvbGljaWVzIH1dIChQb2xpY3lBY3Rpb24g
cG9saWN5QWN0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChmcmFtZS0+aXNNYWluRnJh
bWUoKSkgewogICAgICAgICAgICAgICAgIGlmICghcG9saWNpZXMpIHsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGF1dG8qIGRlZmF1bHRQb2xpY2llcyA9IG1fY29uZmlndXJhdGlvbi0+ZGVmYXVs
dFdlYnNpdGVQb2xpY2llcygpKQpAQCAtNTQzOSw3ICs1NDQxLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXMKICAgICAgICAgICAgICAgICBpZiAocG9saWNpZXMpCiAgICAgICAgICAgICAgICAg
ICAgIG5hdmlnYXRpb24tPnNldEVmZmVjdGl2ZUNvbnRlbnRNb2RlKGVmZmVjdGl2ZUNvbnRlbnRN
b2RlQWZ0ZXJBZGp1c3RpbmdQb2xpY2llcygqcG9saWNpZXMsIG5hdmlnYXRpb24tPmN1cnJlbnRS
ZXF1ZXN0KCkpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlY2VpdmVkTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShu
YXZpZ2F0aW9uQWN0aW9uKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgZnJhbWUsIFdU
Rk1vdmUocG9saWNpZXMpLCBXVEZNb3ZlKHNlbmRlcikpOworICAgICAgICAgICAgcmVjZWl2ZWRO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBX
VEZNb3ZlKG5hdmlnYXRpb25BY3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBm
cmFtZSwgZnJhbWVJbmZvLCBXVEZNb3ZlKHBvbGljaWVzKSwgV1RGTW92ZShzZW5kZXIpKTsKICAg
ICAgICAgfTsKIAogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKQEAgLTgyMjEsNiArODIy
Myw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBh
cmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVycy50b3BDb250ZW50
SW5zZXQgPSBtX3RvcENvbnRlbnRJbnNldDsKICAgICBwYXJhbWV0ZXJzLm1lZGlhVm9sdW1lID0g
bV9tZWRpYVZvbHVtZTsKICAgICBwYXJhbWV0ZXJzLm11dGVkID0gbV9tdXRlZFN0YXRlOworICAg
IHBhcmFtZXRlcnMub3BlbmVkQnlET00gPSBtX29wZW5lZEJ5RE9NOwogICAgIHBhcmFtZXRlcnMu
bWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsK
ICAgICBwYXJhbWV0ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCA9IG1fbWVkaWFQbGF5YmFj
a0lzU3VzcGVuZGVkOwogICAgIHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5b3V0ID0g
bV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGNlZWE5Mjc2NmNmOWViMTMyYjk2MTg5MGE1NmUxM2NiYjZlZmMzN2YuLjQ2
YTRlYzczZDZhYTg0MjAwMjA3YzZiNjdiMGIwYzg3NGQzZTZmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjIzLDcgKzEyMjMsNyBAQCBwdWJsaWM6CiAgICAg
Y2xhc3MgUG9saWN5RGVjaXNpb25TZW5kZXI7CiAgICAgZW51bSBjbGFzcyBXaWxsQ29udGludWVM
b2FkSW5OZXdQcm9jZXNzIDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIHJlY2VpdmVkUG9s
aWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qLCBSZWZQ
dHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIHN0ZDo6dmFyaWFudDxSZWY8QVBJOjpOYXZpZ2F0
aW9uUmVzcG9uc2U+LCBSZWY8QVBJOjpOYXZpZ2F0aW9uQWN0aW9uPj4mJiwgUmVmPFBvbGljeURl
Y2lzaW9uU2VuZGVyPiYmLCBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4g
PSB7IH0sIFdpbGxDb250aW51ZUxvYWRJbk5ld1Byb2Nlc3MgPSBXaWxsQ29udGludWVMb2FkSW5O
ZXdQcm9jZXNzOjpObyk7Ci0gICAgdm9pZCByZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
bihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiosIFJlZjxBUEk6Ok5hdmln
YXRpb25BY3Rpb24+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkZyYW1lUHJv
eHkmLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIFJlZjxQb2xpY3lEZWNpc2lvblNl
bmRlcj4mJik7CisgICAgdm9pZCByZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihXZWJD
b3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiosIFJlZjxBUEk6Ok5hdmlnYXRpb25B
Y3Rpb24+JiYsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdlYkZyYW1lUHJveHkmLCBj
b25zdCBGcmFtZUluZm9EYXRhJiwgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiYmLCBSZWY8
UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOwogCiAgICAgdm9pZCBiYWNrRm9yd2FyZFJlbW92ZWRJ
dGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDM2ZGU1ODgwMmNlNmVj
OTRiZjRmY2M4ZjJjZTQxZmY5YmU3MzZlY2YuLmI2NWUwODZkODhlYWNmZWJiMzQzM2Q3ZGQxMjY4
YTE5MWRjYmRkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKQEAgLTE4MTQsOSArMTgxNCw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlbW92ZVByb2Nl
c3NGcm9tT3JpZ2luQ2FjaGVTZXQoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogICAgICAgICBt
X3N3YXBwZWRQcm9jZXNzZXNQZXJSZWdpc3RyYWJsZURvbWFpbi5yZW1vdmUocmVnaXN0cmFibGVE
b21haW4pOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbihX
ZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
LCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiBkYXRhU3RvcmUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3Ry
aW5nJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNz
Rm9yTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBV
UkwmIHNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50LCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8sIFJlZjxXZWJz
aXRlRGF0YVN0b3JlPiYmIGRhdGFTdG9yZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKHBh
Z2UsIG5hdmlnYXRpb24sIHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkwsIHByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdURk1vdmUoZGF0YVN0b3JlKSwgW3RoaXMsIHBhZ2Ug
PSBSZWYgeyBwYWdlIH0sIG5hdmlnYXRpb24gPSBSZWYgeyBuYXZpZ2F0aW9uIH0sIHNvdXJjZVBy
b2Nlc3MgPSBzb3VyY2VQcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFN1c3BlbmRlZFBhZ2VQcm94
eSogc3VzcGVuZGVkUGFnZSwgY29uc3QgU3RyaW5nJiByZWFzb24pIG11dGFibGUgeworICAgIHBy
b2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwocGFnZSwgbmF2aWdhdGlvbiwgc291cmNlUHJvY2Vz
cy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgZnJh
bWVJbmZvLCBXVEZNb3ZlKGRhdGFTdG9yZSksIFt0aGlzLCBwYWdlID0gUmVmIHsgcGFnZSB9LCBu
YXZpZ2F0aW9uID0gUmVmIHsgbmF2aWdhdGlvbiB9LCBzb3VyY2VQcm9jZXNzID0gc291cmNlUHJv
Y2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBTdXNwZW5kZWRQYWdlUHJveHkqIHN1c3BlbmRlZFBhZ2Us
IGNvbnN0IFN0cmluZyYgcmVhc29uKSBtdXRhYmxlIHsKICAgICAgICAgLy8gV2UgYXJlIHByb2Nl
c3Mtc3dhcHBpbmcgc28gYXV0b21hdGljIHByb2Nlc3MgcHJld2FybWluZyB3b3VsZCBiZSBiZW5l
ZmljaWFsIGlmIHRoZSBjbGllbnQgaGFzIG5vdCBleHBsaWNpdGx5IGVuYWJsZWQgLyBkaXNhYmxl
ZCBpdC4KICAgICAgICAgYm9vbCBkb2luZ0FuQXV0b21hdGljUHJvY2Vzc1N3YXAgPSBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5v
ICYmIHByb2Nlc3MucHRyKCkgIT0gc291cmNlUHJvY2Vzcy5wdHIoKTsKICAgICAgICAgaWYgKGRv
aW5nQW5BdXRvbWF0aWNQcm9jZXNzU3dhcCAmJiAhY29uZmlndXJhdGlvbigpLndhc0F1dG9tYXRp
Y1Byb2Nlc3NXYXJtaW5nU2V0QnlDbGllbnQoKSAmJiAhY29uZmlndXJhdGlvbigpLmNsaWVudFdv
dWxkQmVuZWZpdEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2FybWluZygpKSB7CkBAIC0xODM5LDcg
KzE4MzksNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbihXZWJQ
YWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSTo6TmF2aWdhdAogICAgIH0pOwogfQogCi12b2lkIFdl
YlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKFdlYlBhZ2VQcm94eSYg
cGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgcGFnZVNvdXJjZVVSTCwgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWY8V2Vi
c2l0ZURhdGFTdG9yZT4mJiBkYXRhU3RvcmUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdh
dGlvbkludGVybmFsKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVS
TCYgcGFnZVNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8sIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlPiYmIGRhdGFTdG9yZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvJiB0YXJnZXRVUkwgPSBuYXZpZ2F0aW9u
LmN1cnJlbnRSZXF1ZXN0KCkudXJsKCk7CiAgICAgYXV0byB0YXJnZXRSZWdpc3RyYWJsZURvbWFp
biA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHsgdGFyZ2V0VVJMIH07CkBAIC0xODk3LDYg
KzE4OTcsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRl
cm5hbChXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IEFQSToKICAgICAgICAgfQogICAgIH0KIAor
ICAgIC8vIElmIGl0IGlzIHRoZSBmaXJzdCBuYXZpZ2F0aW9uIGluIGEgRE9NIHBvcHVwIGFuZCB0
aGVyZSBpcyBubyBvcGVuZXIsIHRoZW4gZm9yY2UgYSBwcm9jZXNzIHN3YXAgbm8gbWF0dGVyIHdo
YXQgc2luY2UKKyAgICAvLyBwb3B1cCB3aW5kb3dzIGFyZSBvcmlnaW5hbGx5IGNyZWF0ZWQgaW4g
dGhlaXIgb3BlbmVyJ3MgcHJvY2Vzcy4KKyAgICAvLyBOb3RlIHRoYXQgd2UgY3VycmVudGx5IGRv
IG5vdCBwcm9jZXNzIHN3YXAgaWYgdGhlIHdpbmRvdyBwb3B1cCBoYXMgYSBuYW1lLiBJbiB0aGVv
cnksIHdlIHNob3VsZCBiZSBhYmxlIHRvIHN3YXAgaW4gdGhpcyBjYXNlIHRvbworICAgIC8vIGJ1
dCB3ZSB3b3VsZCBuZWVkIHRvIHRyYW5zZmVyIG92ZXIgdGhlIG5hbWUgdG8gdGhlIG5ldyBwcm9j
ZXNzLiBBdCB0aGlzIHBvaW50LCBpdCBpcyBub3QgY2xlYXIgaXQgaXMgd29ydGggdGhlIGV4dHJh
IGNvbXBsZXhpdHkuCisgICAgaWYgKHBhZ2Uub3BlbmVkQnlET00oKSAmJiAhbmF2aWdhdGlvbi5v
cGVuZWRCeURPTVdpdGhPcGVuZXIoKSAmJiAhcGFnZS5oYXNDb21taXR0ZWRBbnlQcm92aXNpb25h
bExvYWRzKCkgJiYgZnJhbWVJbmZvLmZyYW1lTmFtZS5pc0VtcHR5KCkgJiYgIXRhcmdldFVSTC5w
cm90b2NvbElzQmxvYigpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY3JlYXRl
TmV3UHJvY2VzcygpLCBudWxscHRyLCAiUHJvY2VzcyBzd2FwIGJlY2F1c2UgdGhpcyBpcyBhIGZp
cnN0IG5hdmlnYXRpb24gaW4gYSBET00gcG9wdXAgd2l0aG91dCBvcGVuZXIiX3MpOworCiAgICAg
aWYgKG5hdmlnYXRpb24udHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNvdXJjZVByb2Nlc3MpLCBudWxscHRyLCAi
VGhlIHRyZWF0QXNTYW1lT3JpZ2luTmF2aWdhdGlvbiBmbGFnIGlzIHNldCJfcyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDY4MjhkMzczYzhjMzlkZDRl
NTI2ZDRlNmVlODc2NTMwY2JjY2YwMjAuLmU0ODdkNzgzYTJhMWY0YmQ3M2JhMzE1ODcwNjMzNDJk
YmViYTM3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAt
NDQ2LDcgKzQ0Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0ZvcmVncm91bmRXZWJQcm9jZXNz
ZXMoKSBjb25zdCB7IHJldHVybiBtX2ZvcmVncm91bmRXZWJQcm9jZXNzQ291bnRlci52YWx1ZSgp
OyB9CiAgICAgYm9vbCBoYXNCYWNrZ3JvdW5kV2ViUHJvY2Vzc2VzKCkgY29uc3QgeyByZXR1cm4g
bV9iYWNrZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXIudmFsdWUoKTsgfQogCi0gICAgdm9pZCBwcm9j
ZXNzRm9yTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mLCBS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgc291cmNlVVJM
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQ
YWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4mJik7CisgICAgdm9pZCBwcm9jZXNzRm9yTmF2aWdh
dGlvbihXZWJQYWdlUHJveHkmLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBjb25zdCBGcmFtZUluZm9EYXRhJiwgUmVmPFdlYnNpdGVEYXRh
U3RvcmU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
U3VzcGVuZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYpOwogCiAgICAgdm9pZCBkaWRS
ZWFjaEdvb2RUaW1lVG9QcmV3YXJtKCk7CiAKQEAgLTUyMyw3ICs1MjMsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJv
eHkmLCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBwbGF0Zm9ybUlu
dmFsaWRhdGVDb250ZXh0KCk7CiAKLSAgICB2b2lkIHByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJu
YWwoV2ViUGFnZVByb3h5JiwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiwgUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBzb3VyY2VQcm9jZXNzLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgUmVmPFdlYnNpdGVEYXRhU3RvcmU+JiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgU3VzcGVuZGVkUGFnZVByb3h5KiwgY29u
c3QgU3RyaW5nJik+JiYpOworICAgIHZvaWQgcHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChX
ZWJQYWdlUHJveHkmLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mLCBSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBjb25zdCBGcmFtZUluZm9EYXRhJiwgUmVmPFdlYnNpdGVEYXRhU3RvcmU+
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgU3VzcGVu
ZGVkUGFnZVByb3h5KiwgY29uc3QgU3RyaW5nJik+JiYpOwogCiAgICAgUmVmUHRyPFdlYlByb2Nl
c3NQcm94eT4gdHJ5VGFrZVByZXdhcm1lZFByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA5OWE1MWFiNWZlYWFlNDc5YTAzYTNk
NTgxYzg4OTQ3MGIwMGVlOWMyLi44ZWE5ZTgyNTg4OTBjMTBiZTQxOGU5ODExZWEzOTc3YTYwYTZj
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTk2OCw2ICs5NjgsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdAogICAgICAgICBuYXZpZ2F0aW9uQWN0aW9uLmluaXRp
YXRlZEJ5TWFpbkZyYW1lKCkgPT0gSW5pdGlhdGVkQnlNYWluRnJhbWU6OlllcywKICAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0IHsgcmVxdWVzdGVyLnVybCB9LAogICAgICAgICByZXF1ZXN0ZXIuc2Vj
dXJpdHlPcmlnaW4tPmRhdGEoKSwKKyAgICAgICAgeyB9LAogICAgICAgICBXVEZNb3ZlKG9yaWdp
bmF0aW5nRnJhbWVJRCksCiAgICAgICAgIFdURk1vdmUocGFyZW50RnJhbWVJRCksCiAgICAgfTsK
QEAgLTEwMTIsNiArMTAxMyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0CiAgICAgICAgIGRv
Y3VtZW50TG9hZGVyID0gc3RhdGljX2Nhc3Q8V2ViRG9jdW1lbnRMb2FkZXIqPihjb3JlRnJhbWUt
PmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpOwogCiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEu
Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5ID0gZG9jdW1lbnRMb2FkZXItPmNsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpOworICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLmVmZmVj
dGl2ZVNhbmRib3hGbGFncyA9IGNvcmVGcmFtZS0+bG9hZGVyKCkuZWZmZWN0aXZlU2FuZGJveEZs
YWdzKCk7CiAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KICAgICBSZWYgcHJvdGVjdG9y
IHsgKmNvcmVGcmFtZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwCmluZGV4IGQ5MTllNDQ4Zjc1NWY5OGI2ZDBlOWVhYjc0ZjUzZmYyNDhiYmJmMzIu
LjliZDRjZDJkMGNiMTAzYjQ1YWE4ZTZjMWQ0MjdjMGIxN2JmNWVkMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTE5Myw2ICsxOTMsNyBA
QCBGcmFtZUluZm9EYXRhIFdlYkZyYW1lOjppbmZvKCkgY29uc3QKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIHVzZSB0aGUgZnVsbCByZXF1ZXN0LgogICAgICAgICBSZXNvdXJjZVJlcXVl
c3QodXJsKCkpLAogICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShtX2NvcmVG
cmFtZS5nZXQoKSksCisgICAgICAgIG1fY29yZUZyYW1lID8gbV9jb3JlRnJhbWUtPnRyZWUoKS5u
YW1lKCkuc3RyaW5nKCkgOiBTdHJpbmcoKSwKICAgICAgICAgbV9mcmFtZUlELAogICAgICAgICBw
YXJlbnQgPyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4geyBwYXJlbnQt
PmZyYW1lSUQoKSB9IDogc3RkOjpudWxsb3B0LAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGMxODY2YTI1YmI5ZDQ3NjcxMTA4YzQw
OWE4ZjJmNGIzM2FhYTM3ZjcuLjhmZTVlNjUzZGJkOTBmZjFiMGI2MDIzYjEyNzk3YjEwNzQxMjY3
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC03MjYsNiArNzI2LDkgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIGlmIChwYXJhbWV0
ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCkKICAgICAgICAgbV9wYWdlLT5zdXNwZW5kQWxs
TWVkaWFQbGF5YmFjaygpOwogCisgICAgaWYgKHBhcmFtZXRlcnMub3BlbmVkQnlET00pCisgICAg
ICAgIG1fcGFnZS0+c2V0T3BlbmVkQnlET00oKTsKKwogICAgIG1fcGFnZS0+c2V0R3JvdXBOYW1l
KG1fcGFnZUdyb3VwLT5pZGVudGlmaWVyKCkpOwogICAgIG1fcGFnZS0+c2V0RGV2aWNlU2NhbGVG
YWN0b3IocGFyYW1ldGVycy5kZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgbV9wYWdlLT5zZXRVc2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKG1fdXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbik7
CkBAIC0xNzMzLDYgKzE3MzYsOSBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0KExvYWRQYXJh
bWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiAgICAgZnJhbWVMb2FkUmVxdWVzdC5zZXRDbGllbnRS
ZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkobG9hZFBhcmFtZXRlcnMuY2xpZW50UmVkaXJlY3RTb3Vy
Y2VGb3JIaXN0b3J5KTsKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldElzUmVxdWVzdEZyb21DbGll
bnRPclVzZXJJbnB1dCgpOwogCisgICAgaWYgKGxvYWRQYXJhbWV0ZXJzLmVmZmVjdGl2ZVNhbmRi
b3hGbGFncykKKyAgICAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuZm9yY2VT
YW5kYm94RmxhZ3MobG9hZFBhcmFtZXRlcnMuZWZmZWN0aXZlU2FuZGJveEZsYWdzKTsKKwogICAg
IGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmxvYWRSZXF1ZXN0KFdURk1vdmUoZnJhbWVM
b2FkUmVxdWVzdCkpOwogCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDAxYzI1OWI1
Njg1YjQ3OTFlYjIzODdkYTI4ZWRlNDkxNjMzZTFhNGUuLjFjY2IwNmM2MDJhZGU3ZTFjMWQzOTFm
M2NmYjQxOTMzOTNmNDQwZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMS0xMC0yMCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgcHJvY2Vzcy1zd2FwIGZv
ciBpbml0aWFsIG5hdmlnYXRpb24gb2YgYSBwb3B1cCBpZiBpdCBoYXMgbm8gb3BlbmVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5OTAKKyAgICAg
ICAgPHJkYXI6Ly84NDQyNTUwND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICgtW1BTT05VSURlbGVnYXRlIHdlYlZpZXc6Y3Jl
YXRlV2ViVmlld1dpdGhDb25maWd1cmF0aW9uOmZvck5hdmlnYXRpb25BY3Rpb246d2luZG93RmVh
dHVyZXM6XSk6CisgICAgICAgICgtW1BTT05VSURlbGVnYXRlIHdlYlZpZXdEaWRDbG9zZTpdKToK
KyAgICAgICAgVXBkYXRlZCBleGlzdGluZyBBUEkgdGVzdHMgdG8gcmVmbGVjdCBiZWhhdmlvciBj
aGFuZ2UuCisgICAgICAgIEFsc28gZXh0ZW5kIGFuIEFQSSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0
IGEgcG9wdXAgb3BlbmVkIGJ5IEpTIGNhbiBzdGlsbCBjbG9zZSBpdHNlbGYKKyAgICAgICAgdmlh
IEpTIChieSBjYWxsaW5nIHdpbmRvdy5jbG9zZSgpKSwgZXZlbiBpbiB0aGUgY2FzZSB3aGVyZSB3
ZSBwcm9jZXNzIHN3YXAuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRp
ZFJlY2VpdmVNZXNzYWdlVG9QYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6Om91
dHB1dFRleHQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6ZHVtcCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UpOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZVBhZ2VNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKToKKyAgICAgICAgV2UgaGF2ZSBzb21lIHRlc3RzIHRoYXQgb3BlbiBhIG5ldyBw
b3B1cCB3aXRoICdub29wZW5lcicgYW5kIHRoZSBwb3B1cCB3b3VsZCBiZSB0aGUKKyAgICAgICAg
b25lIHRvIGNhbGwgYHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpYC4gVGhpcyB1c2VkIHRvIHdvcmsg
ZmluZSB3aGVuIHRoZSBwb3B1cCB3b3VsZAorICAgICAgICBlbmQgdXAgaW4gdGhlIHNhbWUgV2Vi
UHJvY2VzcyBiZWNhdXNlIHRoZSBpbmplY3RlZCBidW5kbGUgd291bGQga25vdyB3aGljaCBwYWdl
IGlzCisgICAgICAgIHRoZSBtYWluIHRlc3QgcGFnZSBhbmQgdXNlIHRoYXQgb25lLiBIb3dldmVy
LCBub3cgdGhhdCB3ZSBwcm9jZXNzLXN3YXAsIHRoZSBwb3B1cAorICAgICAgICBwYWdlIHdvdWxk
IHRoaW5rIGl0IGlzIHRoZSBtYWluIHRlc3QgcGFnZSBhbmQgdHJ5IHRvIGR1bXAgaXRzIG93biBv
dXRwdXQuIEhvd2V2ZXIsCisgICAgICAgIHRoZSBVSVByb2Nlc3Mgd2Fzbid0IGxpc3RlbmluZyBm
b3IgbWVzc2FnZXMgZnJvbSBhdXhpbGlhcnkgcGFnZXMnIGluamVjdGVkIGJ1bmRsZXMuCisgICAg
ICAgIFRoZSBVSVByb2Nlc3Mgbm93IGxpc3RlbnMgZm9yIHRob3NlIG1lc3NhZ2VzIGFuZCBhc2tz
IHRoZSBtYWluIHRlc3QgcGFnZSB0byBkdW1wCisgICAgICAgIGl0cyBvdXRwdXQgd2hlbiBhbiBh
dXhpbGlhcnkgcGFnZSBpbiBhbm90aGVyIHByb2Nlc3Mgc2F5cyB0aGUgdGVzdCBpcyBkb25lLgor
CiAyMDIxLTEwLTIwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4gYW5kIERhbmEgRXN0
cmEgPGRlc3RyYUBhcHBsZS5jb20+CiAKICAgICAgICAgbWFjT1Mga2V5LWRyaXZlbiBzbW9vdGgg
c2Nyb2xsaW5nIGRvZXMgbm90IHN0b3Agd2hlbiBmb2N1cyBjaGFuZ2VzCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQppbmRleCA0ZjJlMjYyYzJkNDA0ZDVhMzgyMjBmNTk3Yjk5NTkyOTM1
MjcxYjk1Li5mYmQ2NTc3OGNmMTk1NDFiMzU1MzEyNTczYjNmYWQwOTYwZTNlN2IwIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTg2LDYgKzg2LDcgQEAgc3RhdGljIEhhc2hT
ZXQ8cGlkX3Q+IHNlZW5QSURzOwogc3RhdGljIGJvb2wgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dDsKIHN0YXRpYyBib29sIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdDsKIHN0YXRpYyBib29sIHNo
b3VsZENvbnZlcnRUb0Rvd25sb2FkOworc3RhdGljIGJvb2wgZGlkQ2xvc2VXaW5kb3c7CiBzdGF0
aWMgUmV0YWluUHRyPE5TVVJMPiBjbGllbnRSZWRpcmVjdFNvdXJjZVVSTDsKIHN0YXRpYyBSZXRh
aW5QdHI8TlNVUkw+IGNsaWVudFJlZGlyZWN0RGVzdGluYXRpb25VUkw7CiAKQEAgLTI0MSwxMCAr
MjQyLDE4IEBAIC0gKG51bGxhYmxlIFdLV2ViVmlldyAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY3JlYXRlV2ViVmlld1dpdGhDb25maWd1cmF0CiB7CiAgICAgY3JlYXRlZFdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIFtjcmVhdGVk
V2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6X25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07
CisgICAgW2NyZWF0ZWRXZWJWaWV3IHNldFVJRGVsZWdhdGU6c2VsZl07CiAgICAgZGlkQ3JlYXRl
V2ViVmlldyA9IHRydWU7CiAgICAgcmV0dXJuIGNyZWF0ZWRXZWJWaWV3LmdldCgpOwogfQogCist
ICh2b2lkKXdlYlZpZXdEaWRDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldworeworICAgIEVYUEVD
VF9FUShjcmVhdGVkV2ViVmlldy5nZXQoKSwgd2ViVmlldyk7CisgICAgY3JlYXRlZFdlYlZpZXcg
PSBudWxscHRyOworICAgIGRpZENsb3NlV2luZG93ID0gdHJ1ZTsKK30KKwogLSAodm9pZCl3ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZy
YW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSgpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAg
ICAgZGlkUmVjZWl2ZUFsZXJ0ID0gdHJ1ZTsKQEAgLTQ1Niw3ICs0NjUsNyBAQCBzdGF0aWMgY29u
c3QgY2hhciogd2luZG93T3BlblNhbWVTaXRlTm9PcGVuZXJUZXN0Qnl0ZXMgPSBSIlBTT05SRVNP
VVJDRSgKIDxzY3JpcHQ+CiB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgaWYgKCFv
cGVuZXIpCi0gICAgICAgIHdpbmRvdy5vcGVuKCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5o
dG1sIiwgIl9ibGFuayIsICJub29wZW5lciIpOworICAgICAgICB3aW5kb3cub3BlbigicHNvbjov
L3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiLCAiX2JsYW5rIiwgIm5vb3BlbmVyIik7CiB9CiA8
L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwpAQCAtMTI4Myw3ICsxMjkyLDggQEAgVEVTVChQcm9j
ZXNzU3dhcCwgQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKICAgICBh
dXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAgICBF
WFBFQ1RfVFJVRSghIXBpZDIpOwogCi0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOworICAgIC8v
IFNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vzcy1zd2FwLCBldmVuIHRob3VnaCB0
aGUgbmF2aWdhdGlvbiBpcyBzYW1lLXNpdGUuCisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOwog
fQogCiBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5kb3dPcGVuV2l0aE9wZW5lcikKQEAg
LTEzMzUsNyArMTM0NSw4IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlV2luZG93T3Blbk5v
T3BlbmVyKQogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpwcm9jZXNzUG9vbC5nZXQoKV07CiAgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXS5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
ID0gWUVTOwotICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBp
bml0V2l0aEJ5dGVzOndpbmRvd09wZW5TYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXSk7CisgICAg
YXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRdKTsKKyAgICBb
aGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuU2FtZVNpdGVOb09wZW5lclRlc3RCeXRlc107CiAg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKQEAgLTEzNjMsNyAr
MTM3NCwyMCBAQCBURVNUKFByb2Nlc3NTd2FwLCBTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikK
ICAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
ICAgICBFWFBFQ1RfVFJVRSghIXBpZDIpOwogCi0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDIpOwor
ICAgIC8vIFNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vzcy1zd2FwLCBldmVuIHRo
b3VnaCB0aGUgbmF2aWdhdGlvbiBpcyBzYW1lLXNpdGUuCisgICAgRVhQRUNUX05FKHBpZDEsIHBp
ZDIpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L3BvcHVwMi5odG1sIl1dOworICAgIFtjcmVhdGVkV2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxz
ZTsKKyAgICBFWFBFQ1RfRVEocGlkMiwgW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOworCisgICAgLy8gU2luY2UgdGhlIHdpbmRvdyB3YXMgb3BlbiB2aWEgSlMsIGl0IHNo
b3VsZCBiZSBhYmxlIHRvIGNsb3NlIGl0c2VsZi4KKyAgICBkaWRDbG9zZVdpbmRvdyA9IGZhbHNl
OworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuY2xvc2Uo
KSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZENsb3NlV2luZG93KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtU
YXJnZXRXaXRoT3BlbmVyKQpAQCAtMTUyMyw3ICsxNTQ3LDggQEAgVEVTVChQcm9jZXNzU3dhcCwg
U2FtZVNpdGVCbGFua1RhcmdldE5vT3BlbmVyKQogICAgIGF1dG8gcGlkMiA9IFtjcmVhdGVkV2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlkMik7CiAK
LSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisgICAgLy8gU2luY2UgdGhlcmUgaXMgbm8gb3Bl
bmVyLCB3ZSBwcm9jZXNzLXN3YXAsIGV2ZW4gdGhvdWdoIHRoZSBuYXZpZ2F0aW9uIGlzIHNhbWUt
c2l0ZS4KKyAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IFNlcnZlclJlZGlyZWN0RnJvbU5ld1dlYlZpZXcpCkBAIC02MjY5LDcgKzYyOTQsOSBAQCBURVNU
KFByb2Nlc3NTd2FwLCBHb0JhY2tUb1N1c3BlbmRlZFBhZ2VXaXRoTWFpbkZyYW1lSURUaGF0SXNO
b3RPbmUpCiAgICAgLy8gTmV3IFdLV2ViVmlldyBoYXMgbm93IG5hdmlnYXRlZCB0byB3ZWJraXQu
b3JnLgogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5o
dG1sIiwgW1tjcmVhdGVkV2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CiAgICAgYXV0byBw
aWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Ci0gICAgRVhQRUNU
X0VRKHBpZDEsIHBpZDIpOworCisgICAgLy8gV2UgcHJvY2Vzcy1zd2FwIHNpbmNlIHRoZXJlIGlz
IG5vIG9wZW5lciByZWxhdGlvbnNoaXAuCisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOwogCiAg
ICAgLy8gQ2xpY2sgbGluayBpbiBuZXcgV0tXZWJWaWV3IHNvIHRoYXQgaXQgbmF2aWdhdGVzIGNy
b3NzLXNpdGUgdG8gYXBwbGUuY29tLgogICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJ0ZXN0TGluay5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwpAQCAtNjI4
OCw3ICs2MzE1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29CYWNrVG9TdXNwZW5kZWRQYWdlV2l0
aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjov
L3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiLCBbW2NyZWF0ZWRXZWJWaWV3IFVSTF0gYWJzb2x1
dGVTdHJpbmddKTsKICAgICBhdXRvIHBpZDQgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXTsKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkNCk7IC8vIFNob3VsZCBoYXZlIHBy
b2Nlc3Mtc3dhcHBlZCB0byB0aGUgb3JpZ2luYWwgInN1c3BlbmRlZCIgcHJvY2Vzcy4KKyAgICBF
WFBFQ1RfRVEocGlkMiwgcGlkNCk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dhcHBlZCB0byB0
aGUgb3JpZ2luYWwgInN1c3BlbmRlZCIgcHJvY2Vzcy4KIAogICAgIC8vIERvIGEgZnJhZ21lbnQg
bmF2aWdhdGlvbiBpbiB0aGUgb3JpZ2luYWwgV0tXZWJWaWV3IGFuZCBtYWtlIHN1cmUgdGhpcyBk
b2VzIG5vdCBjcmFzaC4KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1s
I3Rlc3RMaW5rIl1dOwpAQCAtNjI5OCw3ICs2MzI1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29C
YWNrVG9TdXNwZW5kZWRQYWdlV2l0aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQogCiAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwjdGVzdExpbmsi
LCBbW3dlYlZpZXcxIFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKICAgICBhdXRvIHBpZDUgPSBbY3Jl
YXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKLSAgICBFWFBFQ1RfRVEocGlkMSwg
cGlkNSk7CisgICAgRVhQRUNUX0VRKHBpZDIsIHBpZDUpOwogfQogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAwMjJiZTQzOTEzNThiOGQwOWE4ZjdlOWQ3MGU3
OWRlZWI2NDg4MDc1Li42N2E3ZDEwMGFiOTdjY2Q0NWJmMjhhMGNlNzFmZDY4NzExNzdmNGRlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcApAQCAtNDM3LDYgKzQzNywxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxl
OjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgbQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJOb3RpZnlEb25lIikpIHsKKyAgICAgICAgSW5qZWN0
ZWRCdW5kbGU6OnBhZ2UoKS0+ZHVtcCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJDYWxsVUlTaWRl
U2NyaXB0Q2FsbGJhY2siKSkgewogICAgICAgICBhdXRvIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9
IGRpY3Rpb25hcnlWYWx1ZShtZXNzYWdlQm9keSk7CiAgICAgICAgIGF1dG8gY2FsbGJhY2tJRCA9
IHVpbnQ2NFZhbHVlKG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgIkNhbGxiYWNrSUQiKTsKQEAgLTU4
OSw3ICs1OTQsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkdW1wVG9TdGRFcnIoY29uc3QgU3Ry
aW5nJiBvdXRwdXQpCiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJEdW1wVG9TdGRFcnIiLCBzdHJpbmcg
PyBzdHJpbmctPmRhdGEoKSA6ICJPdXQgb2YgbWVtb3J5XG4iKTsKIH0KIAotdm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6b3V0cHV0VGV4dChjb25zdCBTdHJpbmcmIG91dHB1dCkKK3ZvaWQgSW5qZWN0ZWRC
dW5kbGU6Om91dHB1dFRleHQoY29uc3QgU3RyaW5nJiBvdXRwdXQsIElzRmluYWxUZXN0T3V0cHV0
IGlzRmluYWxUZXN0T3V0cHV0KQogewogICAgIGlmIChtX3N0YXRlICE9IFRlc3RpbmcpCiAgICAg
ICAgIHJldHVybjsKQEAgLTYwMCw3ICs2MDUsOCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpvdXRw
dXRUZXh0KGNvbnN0IFN0cmluZyYgb3V0cHV0KQogICAgIC8vIFdlIHVzZSBXS0J1bmRsZVBhZ2VQ
b3N0TWVzc2FnZUlnbm9yaW5nRnVsbHlTeW5jaHJvbm91c01vZGUoKSBpbnN0ZWFkIG9mIFdLQnVu
ZGxlUGFnZVBvc3RNZXNzYWdlKCkgdG8gbWFrZSBzdXJlIHRoYXQgYWxsIHRleHQgb3V0cHV0CiAg
ICAgLy8gaXMgZG9uZSB2aWEgYXN5bmNocm9ub3VzIElQQywgZXZlbiBpZiB0aGUgY29ubmVjdGlv
biBpcyBpbiBmdWxseSBzeW5jaHJvbm91cyBtb2RlIGR1ZSB0byBhIFdLQnVuZGxlUGFnZVBvc3RT
eW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKCkKICAgICAvLyBjYWxsLiBPdGhlcndpc2UsIG1l
c3NhZ2VzIGxvZ2dlZCB2aWEgc3luYyBhbmQgYXN5bmMgSVBDIG1heSBlbmQgdXAgb3V0IG9mIG9y
ZGVyIGFuZCBjYXVzZSBmbGFraW5lc3MuCi0gICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2VJZ25v
cmluZ0Z1bGx5U3luY2hyb25vdXNNb2RlKHBhZ2UoKS0+cGFnZSgpLCB0b1dLKCJUZXh0T3V0cHV0
IikuZ2V0KCksIHRvV0soc3RyaW5nID8gc3RyaW5nLT5kYXRhKCkgOiAiT3V0IG9mIG1lbW9yeVxu
IikuZ2V0KCkpOworICAgIGF1dG8gbWVzc2FnZU5hbWUgPSBpc0ZpbmFsVGVzdE91dHB1dCA9PSBJ
c0ZpbmFsVGVzdE91dHB1dDo6WWVzID8gdG9XSygiRmluYWxUZXh0T3V0cHV0IikgOiB0b1dLKCJU
ZXh0T3V0cHV0Iik7CisgICAgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2VJZ25vcmluZ0Z1bGx5U3lu
Y2hyb25vdXNNb2RlKHBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgdG9XSyhzdHJp
bmcgPyBzdHJpbmctPmRhdGEoKSA6ICJPdXQgb2YgbWVtb3J5XG4iKS5nZXQoKSk7CiB9CiAKIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3ROZXdCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZShib29sIHZh
bHVlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5oCmluZGV4IGNmYmFkMDQ5MGMxNmI5NzYyY2MxMjlhMTYyOWJjNmZkMDg0
YmQ4YjguLjY4M2ZkODU0NzU3YTkzMTFiZTRkN2M5YTFkNDhlMDZhNjJlMWY3ZmIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmgKQEAgLTgxLDcgKzgxLDggQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVs
cygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFBpeGVsczsgfQogICAgIGJvb2wgZHVtcEpTQ29uc29s
ZUxvZ0luU3RkRXJyKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnI7
IH07CiAKLSAgICB2b2lkIG91dHB1dFRleHQoY29uc3QgU3RyaW5nJik7CisgICAgZW51bSBjbGFz
cyBJc0ZpbmFsVGVzdE91dHB1dCA6IGJvb2wgeyBObywgWWVzIH07CisgICAgdm9pZCBvdXRwdXRU
ZXh0KGNvbnN0IFN0cmluZyYsIElzRmluYWxUZXN0T3V0cHV0ID0gSXNGaW5hbFRlc3RPdXRwdXQ6
Ok5vKTsKICAgICB2b2lkIGR1bXBUb1N0ZEVycihjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHBv
c3ROZXdCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZShib29sKTsKICAgICB2b2lkIHBvc3RBZGRDaHJv
bWVJbnB1dEZpZWxkKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggM2M3NDEyN2NmYmUw
ZGE0NjNmNzFjYTYwMGE1Y2FjMzA4NjZiZjRhMi4uZGU5ZGUxZmRjNjMzMGNhZTMyM2NhNDQ5MDM2
MzdlN2ZjMGExZTQyNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtODQ2LDcgKzg0Niw3
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkdW1wKCkKICAgICAgICAgICAgIGluamVjdGVk
QnVuZGxlLnNldFJlcGFpbnRSZWN0cyhhZG9wdFdLKFdLQnVuZGxlUGFnZUNvcHlUcmFja2VkUmVw
YWludFJlY3RzKG1fcGFnZSkpLmdldCgpKTsKICAgICB9CiAKLSAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgaW5qZWN0ZWRCdW5kbGUu
b3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIEluamVjdGVkQnVuZGxlOjpJc0Zp
bmFsVGVzdE91dHB1dDo6WWVzKTsKICAgICBpbmplY3RlZEJ1bmRsZS5kb25lKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMDRmMWRkMjAyOGZl
ODVkZGFhNWU2NTQ4YmJkMzg1N2ZhNDA2NDhkYS4uODEzNWFhZjcxYzYxZGEyYTM5MjU2YmFkZjdl
NTNjZDI0NzM2Mjk0MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTQ5MSw2ICs0OTEsMTQgQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVP
dGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb24KICAgICB9Owog
ICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KG5ld1BhZ2UsICZwYWdlTmF2aWdhdGlv
bkNsaWVudC5iYXNlKTsKIAorICAgIFdLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50VjEgaW5qZWN0
ZWRCdW5kbGVDbGllbnQgPSB7CisgICAgICAgIHsgMSwgdGhpcyB9LAorICAgICAgICBkaWRSZWNl
aXZlUGFnZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUsCisgICAgICAgIG51bGxwdHIsCisgICAg
ICAgIGRpZFJlY2VpdmVTeW5jaHJvbm91c1BhZ2VNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlV2l0
aExpc3RlbmVyLAorICAgIH07CisgICAgV0tQYWdlU2V0UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50
KG5ld1BhZ2UsICZpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsKKwogICAgIHZpZXctPmRpZElu
aXRpYWxpemVDbGllbnRzKCk7CiAKICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudXBk
YXRlV2luZG93U2NhbGVGb3JUZXN0KHZpZXcucHRyKCksICpUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkubV9jdXJyZW50SW52b2NhdGlvbik7CkBAIC0xNTcyLDcgKzE1ODAsMTYgQEAgV0tUeXBl
UmVmIFRlc3RDb250cm9sbGVyOjpnZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRh
dGEoV0tDb250ZXh0UmVmLAogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlUGFnZU1l
c3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7
Ci0gICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1l
LCBtZXNzYWdlQm9keSk7CisgICAgYXV0byogdGVzdENvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxU
ZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBpZiAo
cGFnZSAhPSB0ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGFnZSgpKSB7CisgICAgICAg
IC8vIElmIHRoaXMgaXMgYSBEb25lIG1lc3NhZ2UgZnJvbSBhbiBhdXhpbGlhcnkgdmlldyBpbiBp
dHMgb3duIFdlYlByb2Nlc3MgKGR1ZSB0byBwcm9jZXNzLXN3YXBwaW5nKSwgd2UgbmVlZCB0byBu
b3RpZnkgdGhlIGluamVjdGVkIGJ1bmRsZSBvZiB0aGUgbWFpbiBXZWJWaWV3CisgICAgICAgIC8v
IHRoYXQgdGhlIHRlc3QgaXMgZG9uZS4KKyAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcobWVzc2FnZU5hbWUsICJEb25lIikgJiYgdGVzdENvbnRyb2xsZXItPm1fY3VycmVu
dEludm9jYXRpb24pCisgICAgICAgICAgICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5k
bGUodGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBhZ2UoKSwgdG9XSygiTm90aWZ5RG9u
ZSIpLmdldCgpLCBudWxscHRyKTsKKyAgICAgICAgaWYgKCFXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGV4dE91dHB1dCIpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICB0ZXN0Q29udHJvbGxlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUobWVzc2FnZU5hbWUsIG1lc3NhZ2VCb2R5KTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxl
cjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzUGFnZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVXaXRo
TGlzdGVuZXIoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVS
ZWYgbWVzc2FnZUJvZHksIFdLTWVzc2FnZUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApp
bmRleCAzNDUwNjkzMDA5OTJmYjNlMDcxM2U4MzJjNDE3ZmM1MWMwODhmMDhjLi5mZjRmMjU5NDk3
ZTEyMWM3ZDk4MGU5OTc4ZTQzMjBjNzM0ZTMyMTMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMzMyLDcgKzMzMiw3IEBAIHZvaWQgVGVzdEludm9jYXRp
b246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3Nh
Z2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRleHRPdXRwdXQiKSkgeworICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiVGV4dE91dHB1dCIpIHx8IFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJGaW5hbFRleHRPdXRwdXQi
KSkgewogICAgICAgICBtX3RleHRPdXRwdXQuYXBwZW5kKHRvV1RGU3RyaW5nKHN0cmluZ1ZhbHVl
KG1lc3NhZ2VCb2R5KSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZjN2ZhNzE3
NTVmOTkyOWVjNmMzYmY3ODE5ZDE1OTQ3OTAyZTc5ZjQuLmIxNDI0NTUzZGU1MTk3MDcyYzU3OGE5
MDQ2Y2VjMWMwYTIzYTkwNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0yMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91bGQgcHJv
Y2Vzcy1zd2FwIGZvciBpbml0aWFsIG5hdmlnYXRpb24gb2YgYSBwb3B1cCBpZiBpdCBoYXMgbm8g
b3BlbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzE5OTAKKyAgICAgICAgPHJkYXI6Ly84NDQyNTUwND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL29wZW4tYW5kLWNsb3NlLWJ5LURP
TS5odG1sOgorICAgICAgICBUaGUgdGVzdCBpcyByZWx5aW5nIG9uIHRlc3RSdW5uZXIud2luZG93
Q291bnQoKSwgd2hpY2ggaXMgb25seSBhYmxlIHRvIGNvdW50IHdpbmRvd3MgaW5zaWRlIHRoZQor
ICAgICAgICBjdXJyZW50IFdlYlByb2Nlc3MuIEFkZCBgcmVsPW9wZW5lcmAgdG8gdGhlIGxpbmsg
c28gdGhhdCB0aGUgbmV3IHdpbmRvdyBrZWVwIG9wZW5pbmcgaW4gdGhlIHNhbWUKKyAgICAgICAg
cHJvY2Vzcywgc28gdGhhdCBgdGVzdFJ1bm5lci53aW5kb3dDb3VudCgpYCBhY3R1YWxseSBrZWVw
cyB3b3JraW5nIGFzIGV4cGVjdGVkLgorICAgICAgICBJIGFkZGVkIGFuIEFQSSB0ZXN0IHRvIGNv
dmVyIHRvIG1ha2Ugc3VyZSB0aGF0IHdpbmRvd3Mgb3BlbmVkIGJ5IERPTSBjYW4gc3RpbGwgY2xv
c2UgdGhlbXNlbHZlcworICAgICAgICBpbiB0aGUgY2FzZSB3aGVyZSB3ZSBzd2FwIHByb2Nlc3Nl
cy4KKwogMjAyMS0xMC0yMCAgQXl1bWkgS29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNvbT4K
IAogICAgICAgICBbIG1hY09TIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIv
ZXZlbnQtdXBsb2FkLXByb2dyZXNzLWNyb3Nzb3JpZ2luLmFueS5odG1sIGlzIGEgZmxha3kgZmFp
bHVyZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGI4ZjA3M2IzZGE2NTMxMzVk
ODJiOTRjNjA2MDhiMzczMmMyNzEzMTQuLjFlY2VjOGVkM2Y1Nzk4YmE0ZThlOTZjZWQ0NzlmZjNi
ODcyN2QwZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDIxLTEwLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRpYWwgbmF2aWdhdGlvbiBvZiBhIHBv
cHVwIGlmIGl0IGhhcyBubyBvcGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTk5MAorICAgICAgICA8cmRhcjovLzg0NDI1NTA0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1jb2VwLXNhbmRib3gu
aHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Ny
b3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgIFJlYmFzZWxpbmUgdGVzdHMgZHVlIHRvIG1pbm9yIGxvZ2dpbmcgZGlmZmVyZW5j
ZXMuCisKIDIwMjEtMTAtMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQg
TWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL29wZW4tYW5kLWNsb3NlLWJ5LURPTS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vb3Blbi1hbmQtY2xvc2UtYnktRE9NLmh0bWwKaW5kZXggOTU3YjU4M2NkZjdhNTZk
ODUyYmI2OWJmYjJkN2QyMWI5NTdkNjQwZS4uNzFlNzA3NTA5NGI0NDQ4ZWVmMzU1ZTg2YjFiMGZi
ZmVlNzY1ZjVmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vb3Blbi1hbmQtY2xv
c2UtYnktRE9NLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vb3Blbi1hbmQtY2xvc2Ut
YnktRE9NLmh0bWwKQEAgLTUzLDcgKzUzLDcgQEAgVG8gcnVuIHRoZSB0ZXN0IG1hbnVhbGx5IGNs
aWNrIHRoZSBsaW5rIGJlbG93LgogPGJyLz4KIDxkaXYgaWQ9ImNvbnNvbGUiIC8+CiA8YnIvPgot
PGEgaHJlZj0icmVzb3VyY2VzL21pZGRsZS5odG1sIiBpZD0iYW5jaG9yTGluayIgdGFyZ2V0PSJf
YmxhbmsiPk9wZW4gbmV3IHdpbmRvdyB0aGF0IHdpbGwgY2xvc2UgaXRzZWxmPC9hPgorPGEgaHJl
Zj0icmVzb3VyY2VzL21pZGRsZS5odG1sIiBpZD0iYW5jaG9yTGluayIgdGFyZ2V0PSJfYmxhbmsi
IHJlbD0ib3BlbmVyIj5PcGVuIG5ldyB3aW5kb3cgdGhhdCB3aWxsIGNsb3NlIGl0c2VsZjwvYT4K
IDxici8+PGJyLz4KIAogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nv
ZXAtYmxvYi1wb3B1cC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29l
cC1ibG9iLXBvcHVwLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwMzIzYTUxZDZjNTAzNzgwN2Fi
MjkyYmM2YmViNDM5ZTc2OGIzZWMyLi43NmZiZDZlMWY3YmM3ODgzOWYzYWM0N2UyYjk1ZmY0NzU0
MTQ2Njc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVwLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVw
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw2ICsyLDggQEAgQ09OU09MRSBNRVNTQUdFOiBDYW5j
ZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGJl
Y2EKIENPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0dHBzOi8vMTI3LjAu
MC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4K
IENPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIGxvYWQgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0
My9jb21tb24vYmxhbmsuaHRtbCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSByZXNvdXJjZSdzIENy
b3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3kgcmVzcG9uc2UgaGVhZGVyLgogQ09OU09MRSBNRVNT
QUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21tb24v
YmxhbmsuaHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorQ09OU09MRSBNRVNTQUdF
OiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5o
dG1sIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIHJlc291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJlc291
cmNlLVBvbGljeSByZXNwb25zZSBoZWFkZXIuCitDT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQSSBj
YW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1ZSB0
byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCiAKIFBBU1MgQ09PUCtDT0VQIGJsb2IgVVJMIHBvcHVw
OiB3aW5kb3cub3BlbigpCiBQQVNTIENPT1ArQ09FUCBibG9iIFVSTCBwb3B1cDogPGE+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1jb2VwLXNhbmRib3guaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtY29lcC1zYW5kYm94Lmh0dHBzLWV4cGVj
dGVkLnR4dAppbmRleCAxNzZlMzE0NWE3Nzg0YmJmZWI5M2Y2YzlkOGRmZjJhZWY5ZDg0ZjQ3Li4z
NzMzMjQ1Y2U3MDlhOGQwY2JhZjliZjhmNzNkODFlYTg1MjI2M2I2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LW9wZW5lci1wb2xpY3kvY29vcC1jb2VwLXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1v
cmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLWNvZXAtc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTEsNSArMSw0IEBACiBDT05TT0xFIE1FU1NBR0U6IE5hdmlnYXRpb24gd2FzIGJsb2NrZWQg
YnkgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kKLUNPTlNPTEUgTUVTU0FHRTogTmF2aWdhdGlv
biB3YXMgYmxvY2tlZCBieSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeQogCiBQQVNTIDxpZnJh
bWUgc2FuZGJveD0iYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4i
PiBTYW5kYm94ZWQgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgcG9wdXAgc2hvdWxkIHJlc3Vs
dCBpbiBhIG5ldHdvcmsgZXJyb3IKIFBBU1MgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1wb3B1cHMg
YWxsb3ctc2NyaXB0cyI+IFNhbmRib3hlZCBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBwb3B1
cCBzaG91bGQgcmVzdWx0IGluIGEgbmV0d29yayBlcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2Nvb3AtY3NwLXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVu
ZXItcG9saWN5L2Nvb3AtY3NwLXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDZjYTdl
MTdmMmQyYmY5OWJjYjVkNDk0Y2NkZTQ1YzA4YzZjZjIwOTUuLjJmY2M5ZmIxMzg5MTM4MTg2MDA1
Y2E3MjhkOWUzYTQ3MWIyZTYwYjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29w
LWNzcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kv
Y29vcC1jc3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw1IEBACitDT05T
T0xFIE1FU1NBR0U6IE5hdmlnYXRpb24gd2FzIGJsb2NrZWQgYnkgQ3Jvc3MtT3JpZ2luLU9wZW5l
ci1Qb2xpY3kKK0NPTlNPTEUgTUVTU0FHRTogTmF2aWdhdGlvbiB3YXMgYmxvY2tlZCBieSBDcm9z
cy1PcmlnaW4tT3BlbmVyLVBvbGljeQogCiBQQVNTIENTUDogc2FuZGJveCBhbGxvdy1wb3B1cHMg
YWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbjsgQ1NQIHNhbmRib3hlZCBDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSBwb3B1cCBzaG91bGQgcmVzdWx0IGluIGEgbmV0d29yayBlcnJvcgog
UEFTUyBDU1A6IHNhbmRib3ggYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHM7IENTUCBzYW5kYm94
ZWQgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgcG9wdXAgc2hvdWxkIHJlc3VsdCBpbiBhIG5l
dHdvcmsgZXJyb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLXNhbmRib3gu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRw
cy1leHBlY3RlZC50eHQKaW5kZXggMTc2ZTMxNDVhNzc4NGJiZmViOTNmNmM5ZDhkZmYyYWVmOWQ4
NGY0Ny4uMzczMzI0NWNlNzA5YThkMGNiYWY5YmY4ZjczZDgxZWE4NTIyNjNiNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3Nz
LW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTEsNSArMSw0IEBACiBDT05TT0xFIE1FU1NBR0U6IE5hdmlnYXRpb24gd2FzIGJsb2NrZWQgYnkg
Q3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kKLUNPTlNPTEUgTUVTU0FHRTogTmF2aWdhdGlvbiB3
YXMgYmxvY2tlZCBieSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeQogCiBQQVNTIDxpZnJhbWUg
c2FuZGJveD0iYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4iPiBT
YW5kYm94ZWQgQ3Jvc3MtT3JpZ2luLU9wZW5lci1Qb2xpY3kgcG9wdXAgc2hvdWxkIHJlc3VsdCBp
biBhIG5ldHdvcmsgZXJyb3IKIFBBU1MgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1wb3B1cHMgYWxs
b3ctc2NyaXB0cyI+IFNhbmRib3hlZCBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBwb3B1cCBz
aG91bGQgcmVzdWx0IGluIGEgbmV0d29yayBlcnJvcgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442019</attachid>
            <date>2021-10-21 07:49:51 -0700</date>
            <delta_ts>2021-10-21 09:47:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231990-20211021074951.patch</filename>
            <type>text/plain</type>
            <size>56392</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE1Nzk5MmYxZjc4ZmJjNjYy
YmNjMmI4MWEzYmZmNWM5MmY0MzAyNTcuLmM4NWNkNDI2MzBiYWIyYzVlYmQ5ZjVhNDY5MzAzZTMw
ZTE2M2Q3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEtMTAtMjAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mt
c3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5l
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkw
CisgICAgICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQg
RnVsZ2hhbS4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mtc3dhcCBmb3IgaW5pdGlh
bCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5lciwgZXZlbiBpZiB0aGUg
bmF2aWdhdGlvbiBpcworICAgICAgICBzYW1lLXNpdGUuIFN3YXBwaW5nIHByb2Nlc3MgaXMgbm90
IFdlYi1vYnNlcnZhYmxlIGhlcmUgc2luY2UgdGhlcmUgaXMgbm8gb3BlbmVyIHJlbGF0aW9uc2hp
cC4gSG93ZXZlciwgc3dhcHBpbmcKKyAgICAgICAgcHJvY2Vzc2VzIGhhcyBiZW5lZml0cyBoZXJl
IHNpbmNlIHdlIGRvbid0IHdhbnQgdG8gZW5kIHVwIHdpdGggdG9vIG1hbnkgdGFicyBzaGFyaW5n
IHRoZSBzYW1lIHByb2Nlc3MuCisKKyAgICAgICAgVGhpcyBpbXBhY3RzIEdvb2dsZSBEcml2ZSB3
aGVyZSBkb3VibGUtY2xpY2tpbmcgYSBkb2N1bWVudCB3aWxsIG9wZW4gR29vZ2xlIERvY3MgaW4g
YSBuZXcgdGFiIGFuZCBpbiB0aGUgc2FtZQorICAgICAgICBXZWJQcm9jZXNzIGFzIEdvb2dsZSBE
cml2ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHVwZGF0ZWQgZXhpc3RpbmcgQVBJIHRlc3Rz
IGFuZCB0aGlzIGlzIG5vdCBXZWItb2JzZXJ2YWJsZS4KKworICAgICAgICAqIFNoYXJlZC9GcmFt
ZUluZm9EYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVJbmZvRGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVJbmZvRGF0YTo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvRnJhbWVJbmZvRGF0YS5oOgorICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVy
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgor
ICAgICAgICAoV2ViS2l0OjpMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRh
dGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGE6OmRlY29kZSk6Cisg
ICAgICAgICogU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmg6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246OmVmZmVj
dGl2ZVNhbmRib3hGbGFncyBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmNhbmNlbCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlv
blNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZFNpbXVsYXRlZFJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6aW5mbyBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2Fk
UmVxdWVzdCk6CisKIDIwMjEtMTAtMjAgIEpvaG4gUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeCBjcmFzaCB3aGVuIGNhbGxpbmcgc2V0VXNlcm5hbWVGb3JMb2NhbENy
ZWRlbnRpYWxXaXRoSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMDE1Zjg1MjQ0YzlhY2Q1ZmY1MGIzYzg5
ZGVjMGE0YzFhOGQ0ZjllZS4uOWY1MDQ1ODkyMDFlMDk1MjJmMWNmNDIyYjcyOTY3Yzc1NjA5ZjYx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTI3OSw3ICsyNzksNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
RnJhbWUmIG1haW5GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lLmdldCgpOyB9CiAK
ICAgICBib29sIG9wZW5lZEJ5RE9NKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRPcGVuZWRCeURPTSgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3BlbmVkQnlET00oKTsKIAogICAgIGJvb2wg
b3BlbmVkQnlET01XaXRoT3BlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuZWRCeURPTVdpdGhP
cGVuZXI7IH0KICAgICB2b2lkIHNldE9wZW5lZEJ5RE9NV2l0aE9wZW5lcihib29sIHZhbHVlKSB7
IG1fb3BlbmVkQnlET01XaXRoT3BlbmVyID0gdmFsdWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJh
bWVJbmZvRGF0YS5jcHAKaW5kZXggODUxNmY2MjA5MjM1MjE5MjU5OWQzZTJmZmIwNDNmYjY1MTNk
ODgzNC4uZWQ2YzcwY2FhNDQxYzk5NTgyYjRhYjJiMzFlNzQwNDJiZWVkMzJjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAgdm9pZCBGcmFt
ZUluZm9EYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgaXNNYWluRnJhbWU7CiAgICAgZW5jb2RlciA8PCByZXF1ZXN0OwogICAgIGVuY29kZXIg
PDwgc2VjdXJpdHlPcmlnaW47CisgICAgZW5jb2RlciA8PCBmcmFtZU5hbWU7CiAgICAgZW5jb2Rl
ciA8PCBmcmFtZUlEOwogICAgIGVuY29kZXIgPDwgcGFyZW50RnJhbWVJRDsKIH0KQEAgLTU2LDYg
KzU3LDExIEBAIHN0ZDo6b3B0aW9uYWw8RnJhbWVJbmZvRGF0YT4gRnJhbWVJbmZvRGF0YTo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIXNlY3VyaXR5T3JpZ2luKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGZy
YW1lTmFtZTsKKyAgICBkZWNvZGVyID4+IGZyYW1lTmFtZTsKKyAgICBpZiAoIWZyYW1lTmFtZSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+PiBmcmFtZUlEOwogICAgIGRlY29kZXIg
Pj4gZnJhbWVJRDsKICAgICBpZiAoIWZyYW1lSUQpCkBAIC03MCw2ICs3Niw3IEBAIHN0ZDo6b3B0
aW9uYWw8RnJhbWVJbmZvRGF0YT4gRnJhbWVJbmZvRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKICAgICAgICAgV1RGTW92ZSgqaXNNYWluRnJhbWUpLAogICAgICAgICBXVEZNb3Zl
KCpyZXF1ZXN0KSwKICAgICAgICAgV1RGTW92ZSgqc2VjdXJpdHlPcmlnaW4pLAorICAgICAgICBX
VEZNb3ZlKCpmcmFtZU5hbWUpLAogICAgICAgICBXVEZNb3ZlKCpmcmFtZUlEKSwKICAgICAgICAg
V1RGTW92ZSgqcGFyZW50RnJhbWVJRCkKICAgICB9fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5m
b0RhdGEuaAppbmRleCBmNDlmM2ExZGU0MTMwMjMxZWExMTQ2Y2YyMjk1OGU5ODcwODkyYTRiLi4w
ZjBiZTU0OWYxMmE4ZDk2NWQ1NjNjZWMzYWZjOTg0OTAzYjJmMWUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRnJhbWVJbmZvRGF0YS5oCkBAIC00Myw2ICs0Myw3IEBAIHN0cnVjdCBGcmFtZUluZm9EYXRh
IHsKICAgICBib29sIGlzTWFpbkZyYW1lIHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJp
dHlPcmlnaW47CisgICAgU3RyaW5nIGZyYW1lTmFtZTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gcGFyZW50RnJhbWVJRDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9M
b2FkUGFyYW1ldGVycy5jcHAKaW5kZXggYWQxMjIwYzg0ZjVjMTFjOTk5YTlhYzRmZjFjYzVmMTJk
NTMzMWJlZS4uZTEyNmYzMzRlNDliYTE5NmQ1NDYwOTgzNTUyZTA5MGE4ZWZiYjMyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcApAQCAtNTYsNiArNTYsNyBAQCB2b2lk
IExvYWRQYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgbG9ja0hpc3Rvcnk7CiAgICAgZW5jb2RlciA8PCBsb2NrQmFja0ZvcndhcmRM
aXN0OwogICAgIGVuY29kZXIgPDwgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OworICAg
IGVuY29kZXIgPDwgZWZmZWN0aXZlU2FuZGJveEZsYWdzOwogICAgIGVuY29kZXIgPDwgaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbjsKICAgICBlbmNvZGVyIDw8IGV4aXN0aW5nTmV0d29ya1Jl
c291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZTsKICAgICBlbmNvZGVyIDw8IGlzU2VydmljZVdv
cmtlckxvYWQ7CkBAIC0xMzYsNiArMTM3LDEyIEBAIGJvb2wgTG9hZFBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OkRlY29kZXImIGRlY29kZXIsIExvYWRQYXJhbWV0ZXJzJiBkYXRhKQogICAgIGlmICgh
Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgZGF0YS5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkgPSBXVEZNb3ZlKCpjbGllbnRS
ZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpOworCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpT
YW5kYm94RmxhZ3M+IGVmZmVjdGl2ZVNhbmRib3hGbGFnczsKKyAgICBkZWNvZGVyID4+IGVmZmVj
dGl2ZVNhbmRib3hGbGFnczsKKyAgICBpZiAoIWVmZmVjdGl2ZVNhbmRib3hGbGFncykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGRhdGEuZWZmZWN0aXZlU2FuZGJveEZsYWdzID0gKmVmZmVj
dGl2ZVNhbmRib3hGbGFnczsKICAgICAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuaXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4IDkyMGUxNGRlOTBiOGJmMjY2MzNkOTE3
NmUwYmY5Y2U1ZWRmNGNiNjAuLjY0MmQ1OTlhODQxMTIwNzI2MzRmOWIwMzk5NTJmZjUxNGEwMjVl
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAtNDMsNiArNDMsMTAg
QEAgY2xhc3MgRGVjb2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK3R5cGVkZWYgaW50IFNhbmRib3hGbGFnczsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHN0cnVjdCBMb2FkUGFyYW1ldGVycyB7CkBAIC03NCw2ICs3OCw3IEBAIHN0cnVjdCBMb2FkUGFy
YW1ldGVycyB7CiAgICAgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0Zvcndh
cmRMaXN0IHsgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8gfTsKICAgICBXZWJDb3Jl
OjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5
VmlzaWJpbGl0eSB7IFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2li
aWxpdHk6OlZpc2libGUgfTsKICAgICBTdHJpbmcgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0
b3J5OworICAgIFdlYkNvcmU6OlNhbmRib3hGbGFncyBlZmZlY3RpdmVTYW5kYm94RmxhZ3MgeyAw
IH07CiAgICAgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbjsKICAgICBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyPiBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVudGlmaWVyVG9S
ZXN1bWU7CiAgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJMb2FkIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmNwcAppbmRleCBmYTBjYTM3NGJl
NWJkYTg0NTA0NGQzM2JjYTFlM2YzZGRkNDJiZDJjLi4yZTAzN2Q3ZjEwNjA5MDgzMjY2YzkzYWM3
Yzk3NjdjNzE3NWNiMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0
aW9uQWN0aW9uRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFj
dGlvbkRhdGEuY3BwCkBAIC01NCw2ICs1NCw3IEBAIHZvaWQgTmF2aWdhdGlvbkFjdGlvbkRhdGE6
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBsb2Nr
SGlzdG9yeTsKICAgICBlbmNvZGVyIDw8IGxvY2tCYWNrRm9yd2FyZExpc3Q7CiAgICAgZW5jb2Rl
ciA8PCBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnk7CisgICAgZW5jb2RlciA8PCBlZmZl
Y3RpdmVTYW5kYm94RmxhZ3M7CiAgICAgZW5jb2RlciA8PCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDsKIH0KIApAQCAtMTQ2LDYgKzE0NywxMSBAQCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpb25BY3Rp
b25EYXRhPiBOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZAogICAg
IGlmICghY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwogCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTYW5kYm94RmxhZ3M+IGVm
ZmVjdGl2ZVNhbmRib3hGbGFnczsKKyAgICBkZWNvZGVyID4+IGVmZmVjdGl2ZVNhbmRib3hGbGFn
czsKKyAgICBpZiAoIWVmZmVjdGl2ZVNhbmRib3hGbGFncykKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKwogICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudD4+IHByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIGRlY29k
ZXIgPj4gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ7CiAgICAgaWYgKCFwcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCkKQEAgLTE1NCw3ICsxNjAsNyBAQCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpb25BY3Rp
b25EYXRhPiBOYXZpZ2F0aW9uQWN0aW9uRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZAogICAg
IHJldHVybiB7eyBXVEZNb3ZlKG5hdmlnYXRpb25UeXBlKSwgbW9kaWZpZXJzLCBXVEZNb3ZlKG1v
dXNlQnV0dG9uKSwgV1RGTW92ZShzeW50aGV0aWNDbGlja1R5cGUpLCBXVEZNb3ZlKCp1c2VyR2Vz
dHVyZVRva2VuSWRlbnRpZmllciksCiAgICAgICAgIFdURk1vdmUoKmNhbkhhbmRsZVJlcXVlc3Qp
LCBXVEZNb3ZlKHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpLCBXVEZNb3ZlKCpkb3dubG9h
ZEF0dHJpYnV0ZSksIFdURk1vdmUoY2xpY2tMb2NhdGlvbkluUm9vdFZpZXdDb29yZGluYXRlcyks
CiAgICAgICAgIFdURk1vdmUoKmlzUmVkaXJlY3QpLCAqdHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0
aW9uLCAqaGFzT3BlbmVkRnJhbWVzLCAqb3BlbmVkQnlET01XaXRoT3BlbmVyLCBXVEZNb3ZlKCpy
ZXF1ZXN0ZXJPcmlnaW4pLAotICAgICAgICBXVEZNb3ZlKCp0YXJnZXRCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyKSwgV1RGTW92ZSgqc291cmNlQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciksIGxv
Y2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBXVEZNb3ZlKCpjbGllbnRSZWRpcmVjdFNv
dXJjZUZvckhpc3RvcnkpLCBXVEZNb3ZlKCpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgfX07Cisg
ICAgICAgIFdURk1vdmUoKnRhcmdldEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIpLCBXVEZNb3Zl
KCpzb3VyY2VCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNr
Rm9yd2FyZExpc3QsIFdURk1vdmUoKmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSksICpl
ZmZlY3RpdmVTYW5kYm94RmxhZ3MsIFdURk1vdmUoKnByaXZhdGVDbGlja01lYXN1cmVtZW50KSB9
fTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2
aWdhdGlvbkFjdGlvbkRhdGEuaAppbmRleCAyOTE2MTk3ZWIxY2JlMjI2YTY1YjUwNjRiMzE5OWQ3
MjNlOWY1NTY1Li4zMzMyYjE1NTY2Y2I3MzVmY2EwZjVjYWM1NzE5YjkzNTg4ODkxMGY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKQEAgLTM3LDYgKzM3
LDEwIEBAIGNsYXNzIERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCituYW1lc3BhY2UgV2Vi
Q29yZSB7Cit0eXBlZGVmIGludCBTYW5kYm94RmxhZ3M7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEgewpAQCAtNjIsNiArNjYsNyBAQCBzdHJ1
Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGEgewogICAgIFdlYkNvcmU6OkxvY2tIaXN0b3J5IGxvY2tI
aXN0b3J5IHsgV2ViQ29yZTo6TG9ja0hpc3Rvcnk6Ok5vIH07CiAgICAgV2ViQ29yZTo6TG9ja0Jh
Y2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0IHsgV2ViQ29yZTo6TG9ja0JhY2tGb3J3
YXJkTGlzdDo6Tm8gfTsKICAgICBXVEY6OlN0cmluZyBjbGllbnRSZWRpcmVjdFNvdXJjZUZvckhp
c3Rvcnk7CisgICAgV2ViQ29yZTo6U2FuZGJveEZsYWdzIGVmZmVjdGl2ZVNhbmRib3hGbGFncyB7
IDAgfTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
PiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggY2JjYTkwOGUzODM2MGQx
ZDljOTk0NDJlMDkzZmEwODkxNTFlOTZkNi4uZDk0NzI1NjU5NTQ3NTUyYmM5ODc0ODc1ODdiMzk1
YmM2ZTk2OWZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTY1LDYgKzY1LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgdG9wQ29udGVudEluc2V0OwogICAgIGVuY29kZXIgPDwgbWVkaWFWb2x1bWU7CiAgICAg
ZW5jb2RlciA8PCBtdXRlZDsKKyAgICBlbmNvZGVyIDw8IG9wZW5lZEJ5RE9NOwogICAgIGVuY29k
ZXIgPDwgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBlbmNvZGVyIDw8IG1lZGlhUGxh
eWJhY2tJc1N1c3BlbmRlZDsKICAgICBlbmNvZGVyIDw8IG1pbmltdW1TaXplRm9yQXV0b0xheW91
dDsKQEAgLTI5MCw2ICsyOTEsOCBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIHBhcmFtZXRlcnMubXV0ZWQgPSAqbXV0ZWRTdGF0ZUZs
YWdzOwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm9wZW5lZEJ5RE9NKSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMubWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdykpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1lZGlhUGxheWJh
Y2tJc1N1c3BlbmRlZCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggZWIxZWUwOTU5YTUxM2RiODI1N2Q2NGFkZGNlZWE1MDliN2Ez
ZTg2ZS4uNTU3MGY4ZGY0OTg2M2Q4MDQyYTkzODY0OTQ0NDc1NDg3NWY2NjAwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTIw
LDYgKzEyMCw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICAKICAg
ICBmbG9hdCBtZWRpYVZvbHVtZTsKICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyTXV0ZWRTdGF0
ZUZsYWdzIG11dGVkOworICAgIGJvb2wgb3BlbmVkQnlET00geyBmYWxzZSB9OwogICAgIGJvb2wg
bWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBib29sIG1lZGlhUGxheWJhY2tJc1N1c3Bl
bmRlZCB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElOYXZpZ2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbi5oCmluZGV4IGFlNmYwYjU1ZDk5ZjMyMWNkNzg1NTU2MTA2MzRhNWM4NmRhMDEzMzguLjk1
MTE3NmQyZmJmZjZmM2FiOTU2YTE2ODZmNGJkODY0OWM1YzFhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHB1Ymxp
YzoKICAgICBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3Qo
KSBjb25zdCB7IHJldHVybiBtX2xhc3ROYXZpZ2F0aW9uQWN0aW9uLmxvY2tCYWNrRm9yd2FyZExp
c3Q7IH0KIAogICAgIFdURjo6U3RyaW5nIGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fbGFzdE5hdmlnYXRpb25BY3Rpb24uY2xpZW50UmVkaXJlY3RTb3Vy
Y2VGb3JIaXN0b3J5OyB9CisgICAgV2ViQ29yZTo6U2FuZGJveEZsYWdzIGVmZmVjdGl2ZVNhbmRi
b3hGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE5hdmlnYXRpb25BY3Rpb24uZWZmZWN0aXZl
U2FuZGJveEZsYWdzOyB9CiAKICAgICB2b2lkIHNldExhc3ROYXZpZ2F0aW9uQWN0aW9uKGNvbnN0
IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEmIG5hdmlnYXRpb25BY3Rpb24pIHsgbV9sYXN0
TmF2aWdhdGlvbkFjdGlvbiA9IG5hdmlnYXRpb25BY3Rpb247IH0KICAgICBjb25zdCBXZWJLaXQ6
Ok5hdmlnYXRpb25BY3Rpb25EYXRhJiBsYXN0TmF2aWdhdGlvbkFjdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fbGFzdE5hdmlnYXRpb25BY3Rpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IDI4YzIwZTliM2M4MGIwOTJkNDc4MjRiYWZhOWYwYzJk
ZTIzYTg0ODguLjZkMGRhYTUzY2E1MDA3MTA3MzkwNTAzZDI4MDk5NWE0Y2Q4NzZiNjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTE1Miw3ICsx
MTUyLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3gKICAgICAgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFtZUlEOwogICAgICAgICBpZiAoYXV0byog
bWFpbkZyYW1lID0gZnJhbWUucGFnZSgpID8gZnJhbWUucGFnZSgpLT5tYWluRnJhbWUoKSA6IG51
bGxwdHIpCiAgICAgICAgICAgICBtYWluRnJhbWVJRCA9IG1haW5GcmFtZS0+ZnJhbWVJRCgpOwot
ICAgICAgICBGcmFtZUluZm9EYXRhIGZyYW1lSW5mbyB7IGZyYW1lLmlzTWFpbkZyYW1lKCksIHsg
fSwgdXNlck1lZGlhT3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIGZyYW1lLmZyYW1lSUQoKSwgbWFp
bkZyYW1lSUQgfTsKKyAgICAgICAgRnJhbWVJbmZvRGF0YSBmcmFtZUluZm8geyBmcmFtZS5pc01h
aW5GcmFtZSgpLCB7IH0sIHVzZXJNZWRpYU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCB7IH0sIGZy
YW1lLmZyYW1lSUQoKSwgbWFpbkZyYW1lSUQgfTsKICAgICAgICAgUmV0YWluUHRyPFdLRnJhbWVJ
bmZvPiBmcmFtZUluZm9XcmFwcGVyID0gd3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdU
Rk1vdmUoZnJhbWVJbmZvKSwgZnJhbWUucGFnZSgpKSk7CiAKICAgICAgICAgV0tNZWRpYUNhcHR1
cmVUeXBlIHR5cGUgPSBXS01lZGlhQ2FwdHVyZVR5cGVDYW1lcmE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggYjg4YTA3ODQ2ZDc4
ZDYwMGRlN2MwMjNhMGJkMDQwOTZmMDg1N2E2Yy4uZGI5MzI1YzJlYjVhOTdmNmU4MDg5YzBlYWM1
ZTUwNmUwMjY3NWUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmNwcApAQCAtMTQ5LDYgKzE0OSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmNhbmNlbCgpCiAgICAgICAgIHRydWUsIC8vIGlzTWFpbkZyYW1lCiAgICAgICAgIG1f
cmVxdWVzdCwKICAgICAgICAgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKG1fcmVxdWVzdC51
cmwoKSksCisgICAgICAgIHsgfSwKICAgICAgICAgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSwKICAg
ICAgICAgc3RkOjpudWxsb3B0LAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCBmN2E4MTBiMjczZDkwZjRhYmM0Y2ZiMTdlNDNiMmEzZmM5MmRjZTZj
Li44MWU1ZTAxNWYyYzliNDYyZWM3OTczMDVhMzY1YjExMzU2ZDVjYzgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE0MTYsNiArMTQxNiw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0hpc3RvcnkgPSBuYXZp
Z2F0aW9uLmxvY2tIaXN0b3J5KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0JhY2tGb3J3YXJk
TGlzdCA9IG5hdmlnYXRpb24ubG9ja0JhY2tGb3J3YXJkTGlzdCgpOwogICAgIGxvYWRQYXJhbWV0
ZXJzLmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSA9IG5hdmlnYXRpb24uY2xpZW50UmVk
aXJlY3RTb3VyY2VGb3JIaXN0b3J5KCk7CisgICAgbG9hZFBhcmFtZXRlcnMuZWZmZWN0aXZlU2Fu
ZGJveEZsYWdzID0gbmF2aWdhdGlvbi5lZmZlY3RpdmVTYW5kYm94RmxhZ3MoKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluID0gaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbjsKICAgICBsb2FkUGFyYW1ldGVycy5leGlzdGluZ05ldHdvcmtSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyVG9SZXN1bWUgPSBleGlzdGluZ05ldHdvcmtSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyVG9SZXN1bWU7CiAgICAgbWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRs
ZShwcm9jZXNzLCB1cmwsIG1fcGFnZUxvYWRTdGF0ZS5yZXNvdXJjZURpcmVjdG9yeVVSTCgpLCBs
b2FkUGFyYW1ldGVycy5zYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKQEAgLTE2MDIsNiArMTYwMyw3
IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZFNpbXVsYXRlZFJl
cXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1CiAgICAgbG9hZFBhcmFtZXRlcnMubG9ja0hpc3Rv
cnkgPSBuYXZpZ2F0aW9uLT5sb2NrSGlzdG9yeSgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmxvY2tC
YWNrRm9yd2FyZExpc3QgPSBuYXZpZ2F0aW9uLT5sb2NrQmFja0ZvcndhcmRMaXN0KCk7CiAgICAg
bG9hZFBhcmFtZXRlcnMuY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5ID0gbmF2aWdhdGlv
bi0+Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCk7CisgICAgbG9hZFBhcmFtZXRlcnMu
ZWZmZWN0aXZlU2FuZGJveEZsYWdzID0gbmF2aWdhdGlvbi0+ZWZmZWN0aXZlU2FuZGJveEZsYWdz
KCk7CiAgICAgbG9hZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4oKTsKIAogICAgIHNpbXVsYXRlZFJlc3BvbnNlLnNl
dEV4cGVjdGVkQ29udGVudExlbmd0aChkYXRhLnNpemUoKSk7CkBAIC0zNDU1LDcgKzM0NTcsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnRPdmVycmlk
ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0
aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rp
b24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgUmVmUHRyPEFQ
STo6V2Vic2l0ZVBvbGljaWVzPiYmIHBvbGljaWVzLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+
JiYgc2VuZGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdh
dGlvbiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uLCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdl
YkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8sIFJlZlB0
cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiBwb2xpY2llcywgUmVmPFBvbGljeURlY2lzaW9uU2Vu
ZGVyPiYmIHNlbmRlcikKIHsKICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywg
InJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uOiBmcmFtZUlEPSVsbHUsIG5hdmlnYXRp
b25JRD0lbGx1LCBwb2xpY3lBY3Rpb249JXUiLCBmcmFtZS5mcmFtZUlEKCkudG9VSW50NjQoKSwg
bmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgKHVuc2lnbmVkKXBv
bGljeUFjdGlvbik7CiAKQEAgLTM1MDgsNyArMzUxMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpy
ZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCBBCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9j
ZXNzRm9yTmF2aWdhdGlvbigqdGhpcywgKm5hdmlnYXRpb24sIHNvdXJjZVByb2Nlc3MuY29weVJl
ZigpLCBzb3VyY2VVUkwsIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdURk1vdmUod2Vi
c2l0ZURhdGFTdG9yZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcG9s
aWN5QWN0aW9uLCBuYXZpZ2F0aW9uID0gUmVmIHsgKm5hdmlnYXRpb24gfSwgbmF2aWdhdGlvbkFj
dGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHNvdXJjZVByb2Nlc3MgPSBzb3VyY2VQ
cm9jZXNzLmNvcHlSZWYoKSwKKyAgICBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9y
TmF2aWdhdGlvbigqdGhpcywgKm5hdmlnYXRpb24sIHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBz
b3VyY2VVUkwsIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGZyYW1lSW5mbywgV1RGTW92
ZSh3ZWJzaXRlRGF0YVN0b3JlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24gPSBSZWYgeyAqbmF2aWdhdGlvbiB9LCBuYXZpZ2F0
aW9uQWN0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uKSwgc291cmNlUHJvY2VzcyA9IHNv
dXJjZVByb2Nlc3MuY29weVJlZigpLAogICAgICAgICBwb2xpY2llcyA9IFdURk1vdmUocG9saWNp
ZXMpLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnRdIChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3NGb3JOYXZpZ2F0aW9uLCBTdXNwZW5k
ZWRQYWdlUHJveHkqIGRlc3RpbmF0aW9uU3VzcGVuZGVkUGFnZSwgY29uc3QgU3RyaW5nJiByZWFz
b24pIG11dGFibGUgewogICAgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBoYXMgYmVlbiBkZXN0
cm95ZWQsIHRoZW4gbm8gbmVlZCB0byBwcm9jZWVkLgogICAgICAgICBpZiAoaXNDbG9zZWQoKSB8
fCAhbmF2aWdhdGlvblN0YXRlKCkuaGFzTmF2aWdhdGlvbihuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9u
SUQoKSkpIHsKQEAgLTU0MzAsNyArNTQzMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAg
ICAgUmVmIGxpc3RlbmVyID0gZnJhbWUuc2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgZnJhbWUgPSBSZWYgeyBmcmFtZSB9LCBzZW5k
ZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5hdmlnYXRpb24sIG5hdmlnYXRpb25BY3Rpb24sIGZyYW1l
SW5mbywgdXNlckRhdGFPYmplY3QgPSBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3Rz
KHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQ
STo6V2Vic2l0ZVBvbGljaWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2Fybmlu
Zz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5nLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJv
dW5kRG9tYWluPiBpc0FwcEJvdW5kRG9tYWluKSBtdXRhYmxlIHsKICAgICAgICAgV0VCUEFHRVBS
T1hZX1JFTEVBU0VfTE9HKExvYWRpbmcsICJkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OiBsaXN0ZW5lciBjYWxsZWQ6IGZyYW1lSUQ9JWxsdSwgbmF2aWdhdGlvbklEPSVsbHUsIHBvbGlj
eUFjdGlvbj0ldSwgc2FmZUJyb3dzaW5nV2FybmluZz0lZCwgaXNBcHBCb3VuZERvbWFpbj0lZCIs
IGZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSwgbmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5h
dmlnYXRpb25JRCgpIDogMCwgKHVuc2lnbmVkKXBvbGljeUFjdGlvbiwgISFzYWZlQnJvd3NpbmdX
YXJuaW5nLCAhIWlzQXBwQm91bmREb21haW4pOwogCi0gICAgICAgIGF1dG8gY29tcGxldGlvbkhh
bmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcywgZnJhbWUsIHNlbmRlciA9IFdURk1vdmUoc2Vu
ZGVyKSwgbmF2aWdhdGlvbiwgbmF2aWdhdGlvbkFjdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbkFj
dGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHBvbGljaWVzID0gUmVmUHRyIHsg
cG9saWNpZXMgfV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24pIG11dGFibGUgeworICAgICAg
ICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMsIGZyYW1lLCBm
cmFtZUluZm8sIHNlbmRlciA9IFdURk1vdmUoc2VuZGVyKSwgbmF2aWdhdGlvbiwgbmF2aWdhdGlv
bkFjdGlvbiA9IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQsIHBvbGljaWVzID0gUmVmUHRyIHsgcG9saWNpZXMgfV0gKFBvbGljeUFjdGlvbiBw
b2xpY3lBY3Rpb24pIG11dGFibGUgewogICAgICAgICAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFt
ZSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFwb2xpY2llcykgewogICAgICAgICAgICAgICAg
ICAgICBpZiAoYXV0byogZGVmYXVsdFBvbGljaWVzID0gbV9jb25maWd1cmF0aW9uLT5kZWZhdWx0
V2Vic2l0ZVBvbGljaWVzKCkpCkBAIC01NDM5LDcgKzU0NDEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2NlcwogICAgICAgICAgICAgICAgIGlmIChwb2xpY2llcykKICAgICAgICAgICAgICAgICAg
ICAgbmF2aWdhdGlvbi0+c2V0RWZmZWN0aXZlQ29udGVudE1vZGUoZWZmZWN0aXZlQ29udGVudE1v
ZGVBZnRlckFkanVzdGluZ1BvbGljaWVzKCpwb2xpY2llcywgbmF2aWdhdGlvbi0+Y3VycmVudFJl
cXVlc3QoKSkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVjZWl2ZWROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKG5h
dmlnYXRpb25BY3Rpb24pLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFtZSwgV1RG
TW92ZShwb2xpY2llcyksIFdURk1vdmUoc2VuZGVyKSk7CisgICAgICAgICAgICByZWNlaXZlZE5h
dmlnYXRpb25Qb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCksIFdU
Rk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGZy
YW1lLCBmcmFtZUluZm8sIFdURk1vdmUocG9saWNpZXMpLCBXVEZNb3ZlKHNlbmRlcikpOwogICAg
ICAgICB9OwogCiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQpAQCAtODIyMSw2ICs4MjIz
LDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFy
YW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBwYXJhbWV0ZXJzLnRvcENvbnRlbnRJ
bnNldCA9IG1fdG9wQ29udGVudEluc2V0OwogICAgIHBhcmFtZXRlcnMubWVkaWFWb2x1bWUgPSBt
X21lZGlhVm9sdW1lOwogICAgIHBhcmFtZXRlcnMubXV0ZWQgPSBtX211dGVkU3RhdGU7CisgICAg
cGFyYW1ldGVycy5vcGVuZWRCeURPTSA9IG1fb3BlbmVkQnlET007CiAgICAgcGFyYW1ldGVycy5t
YXlTdGFydE1lZGlhV2hlbkluV2luZG93ID0gbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93Owog
ICAgIHBhcmFtZXRlcnMubWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkID0gbV9tZWRpYVBsYXliYWNr
SXNTdXNwZW5kZWQ7CiAgICAgcGFyYW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgPSBt
X21pbmltdW1TaXplRm9yQXV0b0xheW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggY2VlYTkyNzY2Y2Y5ZWIxMzJiOTYxODkwYTU2ZTEzY2JiNmVmYzM3Zi4uNDZh
NGVjNzNkNmFhODQyMDAyMDdjNmI2N2IwYjBjODc0ZDNlNmY2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyMjMsNyArMTIyMyw3IEBAIHB1YmxpYzoKICAgICBj
bGFzcyBQb2xpY3lEZWNpc2lvblNlbmRlcjsKICAgICBlbnVtIGNsYXNzIFdpbGxDb250aW51ZUxv
YWRJbk5ld1Byb2Nlc3MgOiBib29sIHsgTm8sIFllcyB9OwogICAgIHZvaWQgcmVjZWl2ZWRQb2xp
Y3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiosIFJlZlB0
cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgc3RkOjp2YXJpYW50PFJlZjxBUEk6Ok5hdmlnYXRp
b25SZXNwb25zZT4sIFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+PiYmLCBSZWY8UG9saWN5RGVj
aXNpb25TZW5kZXI+JiYsIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiA9
IHsgfSwgV2lsbENvbnRpbnVlTG9hZEluTmV3UHJvY2VzcyA9IFdpbGxDb250aW51ZUxvYWRJbk5l
d1Byb2Nlc3M6Ok5vKTsKLSAgICB2b2lkIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9u
KFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmPEFQSTo6TmF2aWdh
dGlvbkFjdGlvbj4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94
eSYsIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiwgUmVmPFBvbGljeURlY2lzaW9uU2Vu
ZGVyPiYmKTsKKyAgICB2b2lkIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFdlYkNv
cmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFj
dGlvbj4mJiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94eSYsIGNv
bnN0IEZyYW1lSW5mb0RhdGEmLCBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+JiYsIFJlZjxQ
b2xpY3lEZWNpc2lvblNlbmRlcj4mJik7CiAKICAgICB2b2lkIGJhY2tGb3J3YXJkUmVtb3ZlZEl0
ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzZkZTU4ODAyY2U2ZWM5
NGJmNGZjYzhmMmNlNDFmZjliZTczNmVjZi4uYjY1ZTA4NmQ4OGVhY2ZlYmIzNDMzZDdkZDEyNjhh
MTkxZGNiZGQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cApAQCAtMTgxNCw5ICsxODE0LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVtb3ZlUHJvY2Vz
c0Zyb21PcmlnaW5DYWNoZVNldChXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiAgICAgICAgIG1f
c3dhcHBlZFByb2Nlc3Nlc1BlclJlZ2lzdHJhYmxlRG9tYWluLnJlbW92ZShyZWdpc3RyYWJsZURv
bWFpbik7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uKFdl
YlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBQ
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQs
IFJlZjxXZWJzaXRlRGF0YVN0b3JlPiYmIGRhdGFTdG9yZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJp
bmcmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NG
b3JOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVS
TCYgc291cmNlVVJMLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbywgUmVmPFdlYnNp
dGVEYXRhU3RvcmU+JiYgZGF0YVN0b3JlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewotICAgIHByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwocGFn
ZSwgbmF2aWdhdGlvbiwgc291cmNlUHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTCwgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV1RGTW92ZShkYXRhU3RvcmUpLCBbdGhpcywgcGFnZSA9
IFJlZiB7IHBhZ2UgfSwgbmF2aWdhdGlvbiA9IFJlZiB7IG5hdmlnYXRpb24gfSwgc291cmNlUHJv
Y2VzcyA9IHNvdXJjZVByb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkwsIHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgU3VzcGVuZGVkUGFnZVByb3h5
KiBzdXNwZW5kZWRQYWdlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgbXV0YWJsZSB7CisgICAgcHJv
Y2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5hbChwYWdlLCBuYXZpZ2F0aW9uLCBzb3VyY2VQcm9jZXNz
LmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFt
ZUluZm8sIFdURk1vdmUoZGF0YVN0b3JlKSwgW3RoaXMsIHBhZ2UgPSBSZWYgeyBwYWdlIH0sIG5h
dmlnYXRpb24gPSBSZWYgeyBuYXZpZ2F0aW9uIH0sIHNvdXJjZVByb2Nlc3MgPSBzb3VyY2VQcm9j
ZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFN1c3BlbmRlZFBhZ2VQcm94eSogc3VzcGVuZGVkUGFnZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pIG11dGFibGUgewogICAgICAgICAvLyBXZSBhcmUgcHJvY2Vz
cy1zd2FwcGluZyBzbyBhdXRvbWF0aWMgcHJvY2VzcyBwcmV3YXJtaW5nIHdvdWxkIGJlIGJlbmVm
aWNpYWwgaWYgdGhlIGNsaWVudCBoYXMgbm90IGV4cGxpY2l0bHkgZW5hYmxlZCAvIGRpc2FibGVk
IGl0LgogICAgICAgICBib29sIGRvaW5nQW5BdXRvbWF0aWNQcm9jZXNzU3dhcCA9IHByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8g
JiYgcHJvY2Vzcy5wdHIoKSAhPSBzb3VyY2VQcm9jZXNzLnB0cigpOwogICAgICAgICBpZiAoZG9p
bmdBbkF1dG9tYXRpY1Byb2Nlc3NTd2FwICYmICFjb25maWd1cmF0aW9uKCkud2FzQXV0b21hdGlj
UHJvY2Vzc1dhcm1pbmdTZXRCeUNsaWVudCgpICYmICFjb25maWd1cmF0aW9uKCkuY2xpZW50V291
bGRCZW5lZml0RnJvbUF1dG9tYXRpY1Byb2Nlc3NQcmV3YXJtaW5nKCkpIHsKQEAgLTE4MzksNyAr
MTgzOSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uKFdlYlBh
Z2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOjpOYXZpZ2F0CiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JiBw
YWdlLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJMJiBwYWdlU291cmNlVVJMLCBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZjxXZWJz
aXRlRGF0YVN0b3JlPiYmIGRhdGFTdG9yZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NGb3JOYXZpZ2F0
aW9uSW50ZXJuYWwoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mIG5h
dmlnYXRpb24sIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJM
JiBwYWdlU291cmNlVVJMLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbywgUmVmPFdl
YnNpdGVEYXRhU3RvcmU+JiYgZGF0YVN0b3JlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8mIHRhcmdldFVSTCA9IG5hdmlnYXRpb24u
Y3VycmVudFJlcXVlc3QoKS51cmwoKTsKICAgICBhdXRvIHRhcmdldFJlZ2lzdHJhYmxlRG9tYWlu
ID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4geyB0YXJnZXRVUkwgfTsKQEAgLTE4OTcsNiAr
MTg5NywxMyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVy
bmFsKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQVBJOgogICAgICAgICB9CiAgICAgfQogCisg
ICAgLy8gSWYgaXQgaXMgdGhlIGZpcnN0IG5hdmlnYXRpb24gaW4gYSBET00gcG9wdXAgYW5kIHRo
ZXJlIGlzIG5vIG9wZW5lciwgdGhlbiBmb3JjZSBhIHByb2Nlc3Mgc3dhcCBubyBtYXR0ZXIgd2hh
dCBzaW5jZQorICAgIC8vIHBvcHVwIHdpbmRvd3MgYXJlIG9yaWdpbmFsbHkgY3JlYXRlZCBpbiB0
aGVpciBvcGVuZXIncyBwcm9jZXNzLgorICAgIC8vIE5vdGUgdGhhdCB3ZSBjdXJyZW50bHkgZG8g
bm90IHByb2Nlc3Mgc3dhcCBpZiB0aGUgd2luZG93IHBvcHVwIGhhcyBhIG5hbWUuIEluIHRoZW9y
eSwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gc3dhcCBpbiB0aGlzIGNhc2UgdG9vCisgICAgLy8gYnV0
IHdlIHdvdWxkIG5lZWQgdG8gdHJhbnNmZXIgb3ZlciB0aGUgbmFtZSB0byB0aGUgbmV3IHByb2Nl
c3MuIEF0IHRoaXMgcG9pbnQsIGl0IGlzIG5vdCBjbGVhciBpdCBpcyB3b3J0aCB0aGUgZXh0cmEg
Y29tcGxleGl0eS4KKyAgICBpZiAocGFnZS5vcGVuZWRCeURPTSgpICYmICFuYXZpZ2F0aW9uLm9w
ZW5lZEJ5RE9NV2l0aE9wZW5lcigpICYmICFwYWdlLmhhc0NvbW1pdHRlZEFueVByb3Zpc2lvbmFs
TG9hZHMoKSAmJiBmcmFtZUluZm8uZnJhbWVOYW1lLmlzRW1wdHkoKSAmJiAhdGFyZ2V0VVJMLnBy
b3RvY29sSXNCbG9iKCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjcmVhdGVO
ZXdQcm9jZXNzKCksIG51bGxwdHIsICJQcm9jZXNzIHN3YXAgYmVjYXVzZSB0aGlzIGlzIGEgZmly
c3QgbmF2aWdhdGlvbiBpbiBhIERPTSBwb3B1cCB3aXRob3V0IG9wZW5lciJfcyk7CisKICAgICBp
ZiAobmF2aWdhdGlvbi50cmVhdEFzU2FtZU9yaWdpbk5hdmlnYXRpb24oKSkKICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc291cmNlUHJvY2VzcyksIG51bGxwdHIsICJU
aGUgdHJlYXRBc1NhbWVPcmlnaW5OYXZpZ2F0aW9uIGZsYWcgaXMgc2V0Il9zKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNjgyOGQzNzNjOGMzOWRkNGU1
MjZkNGU2ZWU4NzY1MzBjYmNjZjAyMC4uZTQ4N2Q3ODNhMmExZjRiZDczYmEzMTU4NzA2MzM0MmRi
ZWJhMzcyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00
NDYsNyArNDQ2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzRm9yZWdyb3VuZFdlYlByb2Nlc3Nl
cygpIGNvbnN0IHsgcmV0dXJuIG1fZm9yZWdyb3VuZFdlYlByb2Nlc3NDb3VudGVyLnZhbHVlKCk7
IH0KICAgICBib29sIGhhc0JhY2tncm91bmRXZWJQcm9jZXNzZXMoKSBjb25zdCB7IHJldHVybiBt
X2JhY2tncm91bmRXZWJQcm9jZXNzQ291bnRlci52YWx1ZSgpOyB9CiAKLSAgICB2b2lkIHByb2Nl
c3NGb3JOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYsIFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJMJiBzb3VyY2VVUkws
IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFN1c3BlbmRlZFBh
Z2VQcm94eSosIGNvbnN0IFN0cmluZyYpPiYmKTsKKyAgICB2b2lkIHByb2Nlc3NGb3JOYXZpZ2F0
aW9uKFdlYlBhZ2VQcm94eSYsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYsIFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBSZWY8V2Vic2l0ZURhdGFT
dG9yZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBT
dXNwZW5kZWRQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4mJik7CiAKICAgICB2b2lkIGRpZFJl
YWNoR29vZFRpbWVUb1ByZXdhcm0oKTsKIApAQCAtNTIzLDcgKzUyMyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94
eSYsIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIHBsYXRmb3JtSW52
YWxpZGF0ZUNvbnRleHQoKTsKIAotICAgIHZvaWQgcHJvY2Vzc0Zvck5hdmlnYXRpb25JbnRlcm5h
bChXZWJQYWdlUHJveHkmLCBjb25zdCBBUEk6Ok5hdmlnYXRpb24mLCBSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHNvdXJjZVByb2Nlc3MsIGNvbnN0IFVSTCYgc291cmNlVVJMLCBQcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50LCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4mJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5kZWRQYWdlUHJveHkqLCBjb25z
dCBTdHJpbmcmKT4mJik7CisgICAgdm9pZCBwcm9jZXNzRm9yTmF2aWdhdGlvbkludGVybmFsKFdl
YlBhZ2VQcm94eSYsIGNvbnN0IEFQSTo6TmF2aWdhdGlvbiYsIFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgc291cmNlUHJvY2VzcywgY29uc3QgVVJMJiBzb3VyY2VVUkwsIFByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBSZWY8V2Vic2l0ZURhdGFTdG9yZT4m
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBTdXNwZW5k
ZWRQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmKT4mJik7CiAKICAgICBSZWZQdHI8V2ViUHJvY2Vz
c1Byb3h5PiB0cnlUYWtlUHJld2FybWVkUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDk5YTUxYWI1ZmVhYWU0NzlhMDNhM2Q1
ODFjODg5NDcwYjAwZWU5YzIuLjhlYTllODI1ODg5MGMxMGJlNDE4ZTk4MTFlYTM5NzdhNjBhNmM3
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtOTY4LDYgKzk2OCw3IEBA
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0CiAgICAgICAgIG5hdmlnYXRpb25BY3Rpb24uaW5pdGlh
dGVkQnlNYWluRnJhbWUoKSA9PSBJbml0aWF0ZWRCeU1haW5GcmFtZTo6WWVzLAogICAgICAgICBS
ZXNvdXJjZVJlcXVlc3QgeyByZXF1ZXN0ZXIudXJsIH0sCiAgICAgICAgIHJlcXVlc3Rlci5zZWN1
cml0eU9yaWdpbi0+ZGF0YSgpLAorICAgICAgICB7IH0sCiAgICAgICAgIFdURk1vdmUob3JpZ2lu
YXRpbmdGcmFtZUlEKSwKICAgICAgICAgV1RGTW92ZShwYXJlbnRGcmFtZUlEKSwKICAgICB9OwpA
QCAtMTAxMiw2ICsxMDEzLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAgICAgICAgZG9j
dW1lbnRMb2FkZXIgPSBzdGF0aWNfY2FzdDxXZWJEb2N1bWVudExvYWRlcio+KGNvcmVGcmFtZS0+
bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSk7CiAKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5j
bGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkgPSBkb2N1bWVudExvYWRlci0+Y2xpZW50UmVk
aXJlY3RTb3VyY2VGb3JIaXN0b3J5KCk7CisgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEuZWZmZWN0
aXZlU2FuZGJveEZsYWdzID0gY29yZUZyYW1lLT5sb2FkZXIoKS5lZmZlY3RpdmVTYW5kYm94Rmxh
Z3MoKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgogICAgIFJlZiBwcm90ZWN0b3Ig
eyAqY29yZUZyYW1lIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAKaW5kZXggZDkxOWU0NDhmNzU1Zjk4YjZkMGU5ZWFiNzRmNTNmZjI0OGJiYmYzMi4u
OWJkNGNkMmQwY2IxMDNiNDVhYThlNmMxZDQyN2MwYjE3YmY1ZWQxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMTkzLDYgKzE5Myw3IEBA
IEZyYW1lSW5mb0RhdGEgV2ViRnJhbWU6OmluZm8oKSBjb25zdAogICAgICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgdXNlIHRoZSBmdWxsIHJlcXVlc3QuCiAgICAgICAgIFJlc291cmNlUmVxdWVz
dCh1cmwoKSksCiAgICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKG1fY29yZUZy
YW1lLmdldCgpKSwKKyAgICAgICAgbV9jb3JlRnJhbWUgPyBtX2NvcmVGcmFtZS0+dHJlZSgpLm5h
bWUoKS5zdHJpbmcoKSA6IFN0cmluZygpLAogICAgICAgICBtX2ZyYW1lSUQsCiAgICAgICAgIHBh
cmVudCA/IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiB7IHBhcmVudC0+
ZnJhbWVJRCgpIH0gOiBzdGQ6Om51bGxvcHQsCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzE4NjZhMjViYjlkNDc2NzExMDhjNDA5
YThmMmY0YjMzYWFhMzdmNy4uOGZlNWU2NTNkYmQ5MGZmMWIwYjYwMjNiMTI3OTdiMTA3NDEyNjdm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTcyNiw2ICs3MjYsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgaWYgKHBhcmFtZXRl
cnMubWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkKQogICAgICAgICBtX3BhZ2UtPnN1c3BlbmRBbGxN
ZWRpYVBsYXliYWNrKCk7CiAKKyAgICBpZiAocGFyYW1ldGVycy5vcGVuZWRCeURPTSkKKyAgICAg
ICAgbV9wYWdlLT5zZXRPcGVuZWRCeURPTSgpOworCiAgICAgbV9wYWdlLT5zZXRHcm91cE5hbWUo
bV9wYWdlR3JvdXAtPmlkZW50aWZpZXIoKSk7CiAgICAgbV9wYWdlLT5zZXREZXZpY2VTY2FsZUZh
Y3RvcihwYXJhbWV0ZXJzLmRldmljZVNjYWxlRmFjdG9yKTsKICAgICBtX3BhZ2UtPnNldFVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24obV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKTsK
QEAgLTE3MzMsNiArMTczNiw5IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFJlcXVlc3QoTG9hZFBhcmFt
ZXRlcnMmJiBsb2FkUGFyYW1ldGVycykKICAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldENsaWVudFJl
ZGlyZWN0U291cmNlRm9ySGlzdG9yeShsb2FkUGFyYW1ldGVycy5jbGllbnRSZWRpcmVjdFNvdXJj
ZUZvckhpc3RvcnkpOwogICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0SXNSZXF1ZXN0RnJvbUNsaWVu
dE9yVXNlcklucHV0KCk7CiAKKyAgICBpZiAobG9hZFBhcmFtZXRlcnMuZWZmZWN0aXZlU2FuZGJv
eEZsYWdzKQorICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5mb3JjZVNh
bmRib3hGbGFncyhsb2FkUGFyYW1ldGVycy5lZmZlY3RpdmVTYW5kYm94RmxhZ3MpOworCiAgICAg
Y29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkubG9hZFJlcXVlc3QoV1RGTW92ZShmcmFtZUxv
YWRSZXF1ZXN0KSk7CiAKICAgICBBU1NFUlQoIW1fcGVuZGluZ05hdmlnYXRpb25JRCk7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDFjMjU5YjU2
ODViNDc5MWViMjM4N2RhMjhlZGU0OTE2MzNlMWE0ZS4uNmNkMjcyZmJkNjQ0MTk1OTUzYWQwMjE5
ZjA2ODNjOTFjN2M1MjI5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTEwLTIwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9y
IGluaXRpYWwgbmF2aWdhdGlvbiBvZiBhIHBvcHVwIGlmIGl0IGhhcyBubyBvcGVuZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTk5MAorICAgICAg
ICA8cmRhcjovLzg0NDI1NTA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0u
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtQU09OVUlEZWxlZ2F0ZSB3ZWJWaWV3OmNyZWF0
ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjpmb3JOYXZpZ2F0aW9uQWN0aW9uOndpbmRvd0ZlYXR1
cmVzOl0pOgorICAgICAgICAoLVtQU09OVUlEZWxlZ2F0ZSB3ZWJWaWV3RGlkQ2xvc2U6XSk6Cisg
ICAgICAgIFVwZGF0ZWQgZXhpc3RpbmcgQVBJIHRlc3RzIHRvIHJlZmxlY3QgYmVoYXZpb3IgY2hh
bmdlLgorICAgICAgICBBbHNvIGV4dGVuZCBhbiBBUEkgdGVzdCB0byBtYWtlIHN1cmUgdGhhdCBh
IHBvcHVwIG9wZW5lZCBieSBKUyBjYW4gc3RpbGwgY2xvc2UgaXRzZWxmCisgICAgICAgIHZpYSBK
UyAoYnkgY2FsbGluZyB3aW5kb3cuY2xvc2UoKSksIGV2ZW4gaW4gdGhlIGNhc2Ugd2hlcmUgd2Ug
cHJvY2VzcyBzd2FwLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpkaWRS
ZWNlaXZlTWVzc2FnZVRvUGFnZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpvdXRw
dXRUZXh0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6
OmR1bXApOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVQYWdlTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZSk6CisgICAgICAgIFdlIGhhdmUgc29tZSB0ZXN0cyB0aGF0IG9wZW4gYSBuZXcgcG9w
dXAgd2l0aCAnbm9vcGVuZXInIGFuZCB0aGUgcG9wdXAgd291bGQgYmUgdGhlCisgICAgICAgIG9u
ZSB0byBjYWxsIGB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKWAuIFRoaXMgdXNlZCB0byB3b3JrIGZp
bmUgd2hlbiB0aGUgcG9wdXAgd291bGQKKyAgICAgICAgZW5kIHVwIGluIHRoZSBzYW1lIFdlYlBy
b2Nlc3MgYmVjYXVzZSB0aGUgaW5qZWN0ZWQgYnVuZGxlIHdvdWxkIGtub3cgd2hpY2ggcGFnZSBp
cworICAgICAgICB0aGUgbWFpbiB0ZXN0IHBhZ2UgYW5kIHVzZSB0aGF0IG9uZS4gSG93ZXZlciwg
bm93IHRoYXQgd2UgcHJvY2Vzcy1zd2FwLCB0aGUgcG9wdXAKKyAgICAgICAgcGFnZSB3b3VsZCB0
aGluayBpdCBpcyB0aGUgbWFpbiB0ZXN0IHBhZ2UgYW5kIHRyeSB0byBkdW1wIGl0cyBvd24gb3V0
cHV0LiBIb3dldmVyLAorICAgICAgICB0aGUgVUlQcm9jZXNzIHdhc24ndCBsaXN0ZW5pbmcgZm9y
IG1lc3NhZ2VzIGZyb20gYXV4aWxpYXJ5IHBhZ2VzJyBpbmplY3RlZCBidW5kbGVzLgorICAgICAg
ICBUaGUgVUlQcm9jZXNzIG5vdyBsaXN0ZW5zIGZvciB0aG9zZSBtZXNzYWdlcyBhbmQgYXNrcyB0
aGUgbWFpbiB0ZXN0IHBhZ2UgdG8gZHVtcAorICAgICAgICBpdHMgb3V0cHV0IHdoZW4gYW4gYXV4
aWxpYXJ5IHBhZ2UgaW4gYW5vdGhlciBwcm9jZXNzIHNheXMgdGhlIHRlc3QgaXMgZG9uZS4KKwog
MjAyMS0xMC0yMCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+IGFuZCBEYW5hIEVzdHJh
IDxkZXN0cmFAYXBwbGUuY29tPgogCiAgICAgICAgIG1hY09TIGtleS1kcml2ZW4gc21vb3RoIHNj
cm9sbGluZyBkb2VzIG5vdCBzdG9wIHdoZW4gZm9jdXMgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24ubW0KaW5kZXggNGYyZTI2MmMyZDQwNGQ1YTM4MjIwZjU5N2I5OTU5MjkzNTI3
MWI5NS4uNjYxYmNjNmEwNTE3ZGFmYTQ0YmZjYjJhNjg5YTRjOWIzZDZkYjBjNCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC04Niw2ICs4Niw3IEBAIHN0YXRpYyBIYXNoU2V0
PHBpZF90PiBzZWVuUElEczsKIHN0YXRpYyBib29sIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3Q7
CiBzdGF0aWMgYm9vbCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Q7CiBzdGF0aWMgYm9vbCBzaG91
bGRDb252ZXJ0VG9Eb3dubG9hZDsKK3N0YXRpYyBib29sIGRpZENsb3NlV2luZG93Owogc3RhdGlj
IFJldGFpblB0cjxOU1VSTD4gY2xpZW50UmVkaXJlY3RTb3VyY2VVUkw7CiBzdGF0aWMgUmV0YWlu
UHRyPE5TVVJMPiBjbGllbnRSZWRpcmVjdERlc3RpbmF0aW9uVVJMOwogCkBAIC0yNDEsMTAgKzI0
MiwxOCBAQCAtIChudWxsYWJsZSBXS1dlYlZpZXcgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdAogewogICAgIGNyZWF0ZWRXZWJWaWV3ID0g
YWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBbY3JlYXRlZFdl
YlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOl9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOwor
ICAgIFtjcmVhdGVkV2ViVmlldyBzZXRVSURlbGVnYXRlOnNlbGZdOwogICAgIGRpZENyZWF0ZVdl
YlZpZXcgPSB0cnVlOwogICAgIHJldHVybiBjcmVhdGVkV2ViVmlldy5nZXQoKTsKIH0KIAorLSAo
dm9pZCl3ZWJWaWV3RGlkQ2xvc2U6KFdLV2ViVmlldyAqKXdlYlZpZXcKK3sKKyAgICBFWFBFQ1Rf
RVEoY3JlYXRlZFdlYlZpZXcuZ2V0KCksIHdlYlZpZXcpOworICAgIGNyZWF0ZWRXZWJWaWV3ID0g
bnVsbHB0cjsKKyAgICBkaWRDbG9zZVdpbmRvdyA9IHRydWU7Cit9CisKIC0gKHZvaWQpd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdl
OihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFt
ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoKSljb21wbGV0aW9uSGFuZGxlcgogewogICAg
IGRpZFJlY2VpdmVBbGVydCA9IHRydWU7CkBAIC00NTYsNyArNDY1LDE2IEBAIHN0YXRpYyBjb25z
dCBjaGFyKiB3aW5kb3dPcGVuU2FtZVNpdGVOb09wZW5lclRlc3RCeXRlcyA9IFIiUFNPTlJFU09V
UkNFKAogPHNjcmlwdD4KIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICBpZiAoIW9w
ZW5lcikKLSAgICAgICAgd2luZG93Lm9wZW4oInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0
bWwiLCAiX2JsYW5rIiwgIm5vb3BlbmVyIik7CisgICAgICAgIHdpbmRvdy5vcGVuKCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvcG9wdXAuaHRtbCIsICJfYmxhbmsiLCAibm9vcGVuZXIiKTsKK30KKzwv
c2NyaXB0PgorKVBTT05SRVNPVVJDRSI7CisKK3N0YXRpYyBjb25zdCBjaGFyKiB3aW5kb3dPcGVu
V2l0aE5hbWVTYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCis8c2Ny
aXB0Pgord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICghb3BlbmVyKQorICAg
ICAgICB3aW5kb3cub3BlbigicHNvbjovL3d3dy53ZWJraXQub3JnL3BvcHVwLmh0bWwiLCAiZm9v
IiwgIm5vb3BlbmVyIik7CiB9CiA8L3NjcmlwdD4KIClQU09OUkVTT1VSQ0UiOwpAQCAtMTI4Myw3
ICsxMzAxLDggQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZVdpbmRv
d09wZW5Ob09wZW5lcikKICAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nl
c3NJZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfVFJVRSghIXBpZDIpOwogCi0gICAgRVhQRUNUX0VR
KHBpZDEsIHBpZDIpOworICAgIC8vIFNpbmNlIHRoZXJlIGlzIG5vIG9wZW5lciwgd2UgcHJvY2Vz
cy1zd2FwLCBldmVuIHRob3VnaCB0aGUgbmF2aWdhdGlvbiBpcyBzYW1lLXNpdGUuCisgICAgRVhQ
RUNUX05FKHBpZDEsIHBpZDIpOwogfQogCiBURVNUKFByb2Nlc3NTd2FwLCBDcm9zc1NpdGVXaW5k
b3dPcGVuV2l0aE9wZW5lcikKQEAgLTEzMjcsNyArMTM0Niw5IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IENyb3NzU2l0ZVdpbmRvd09wZW5XaXRoT3BlbmVyKQogICAgIEVYUEVDVF9ORShwaWQxLCBwaWQy
KTsKIH0KIAotVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCitl
bnVtIGNsYXNzIEV4cGVjdFN3YXAgeyBObywgWWVzIH07CitlbnVtIGNsYXNzIFdpbmRvd0hhc05h
bWUgOiBib29sIHsgTm8sIFllcyB9Oworc3RhdGljIHZvaWQgcnVuU2FtZVNpdGVXaW5kb3dPcGVu
Tm9PcGVuZXJUZXN0KFdpbmRvd0hhc05hbWUgd2luZG93SGFzTmFtZSwgRXhwZWN0U3dhcCBleHBl
Y3RTd2FwKQogewogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbigpOwogICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtb
V0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJhdGlvbjpwcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKQEAgLTEzMzUsNyArMTM1NiwxMSBAQCBURVNUKFByb2Nlc3NT
d2FwLCBTYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lcikKICAgICBhdXRvIHdlYlZpZXdDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0
KCldOwogICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFlFUzsKLSAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdFdpdGhCeXRlczp3aW5kb3dPcGVuU2FtZVNpdGVO
b09wZW5lclRlc3RCeXRlc10pOworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2No
ZW1lIGFsbG9jXSBpbml0XSk7CisgICAgaWYgKHdpbmRvd0hhc05hbWUgPT0gV2luZG93SGFzTmFt
ZTo6WWVzKQorICAgICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTp3aW5kb3dPcGVuV2l0aE5hbWVTYW1l
U2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKKyAgICBlbHNlCisgICAgICAgIFtoYW5kbGVyIGFkZE1h
cHBpbmdGcm9tVVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9E
YXRhOndpbmRvd09wZW5TYW1lU2l0ZU5vT3BlbmVyVGVzdEJ5dGVzXTsKICAgICBbd2ViVmlld0Nv
bmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVt
ZTpAIlBTT04iXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAtMTM2Myw3ICsxMzg4LDM3IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlV2luZG93T3Blbk5vT3BlbmVyKQogICAgIGF1dG8gcGlk
MiA9IFtjcmVhdGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9U
UlVFKCEhcGlkMik7CiAKLSAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7CisgICAgLy8gU2luY2Ug
dGhlcmUgaXMgbm8gb3BlbmVyLCB3ZSBwcm9jZXNzLXN3YXAsIGV2ZW4gdGhvdWdoIHRoZSBuYXZp
Z2F0aW9uIGlzIHNhbWUtc2l0ZS4KKyAgICBpZiAoZXhwZWN0U3dhcCA9PSBFeHBlY3RTd2FwOjpZ
ZXMpCisgICAgICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKyAgICBlbHNlCisgICAgICAgIEVY
UEVDVF9FUShwaWQxLCBwaWQyKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICByZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9wb3B1cDIuaHRtbCJdXTsKKyAgICBbY3JlYXRlZFdlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBkb25lID0gZmFsc2U7CisgICAgRVhQRUNUX0VRKHBpZDIsIFtjcmVhdGVkV2ViVmlldyBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKKworICAgIC8vIFNpbmNlIHRoZSB3aW5kb3cgd2FzIG9w
ZW5lZCB2aWEgSlMsIGl0IHNob3VsZCBiZSBhYmxlIHRvIGNsb3NlIGl0c2VsZi4KKyAgICBkaWRD
bG9zZVdpbmRvdyA9IGZhbHNlOworICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJ3aW5kb3cuY2xvc2UoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRpZENsb3NlV2luZG93KTsKK30KKworVEVTVChQcm9jZXNzU3dh
cCwgU2FtZVNpdGVXaW5kb3dPcGVuTm9PcGVuZXIpCit7CisgICAgLy8gV2UgcHJvY2Vzcy1zd2Fw
IGV2ZW4gdGhvdWdoIHRoZSBuYXZpZ2F0aW9uIGlzIHNhbWUtc2l0ZSwgYmVjYXVzZSB0aGUgcG9w
dXAgaGFzIG5vIG9wZW5lci4KKyAgICBydW5TYW1lU2l0ZVdpbmRvd09wZW5Ob09wZW5lclRlc3Qo
V2luZG93SGFzTmFtZTo6Tm8sIEV4cGVjdFN3YXA6Olllcyk7Cit9CisKK1RFU1QoUHJvY2Vzc1N3
YXAsIFNhbWVTaXRlV2luZG93T3BlbldpdGhOYW1lTm9PcGVuZXIpCit7CisgICAgLy8gV2UgY3Vy
cmVudGx5IGRvIG5vIHByb2Nlc3Mtc3dhcCB3aGVuIG5hdmlnYXRpbmcgc2FtZS1zaXRlIGEgcG9w
dXAgd2l0aG91dCBvcGVuZXIgaWYgdGhlIHdpbmRvdworICAgIC8vIGhhcyBhIG5hbWUuIFdlIHNo
b3VsZCBiZSBhYmxlIHRvIHN1cHBvcnQgdGhpcyBidXQgd2Ugd291bGQgbmVlZCB0byBwYXNzIHRo
ZSB3aW5kb3cgbmFtZSBvdmVyCisgICAgLy8gdG8gdGhlIG5ldyBwcm9jZXNzLgorICAgIHJ1blNh
bWVTaXRlV2luZG93T3Blbk5vT3BlbmVyVGVzdChXaW5kb3dIYXNOYW1lOjpZZXMsIEV4cGVjdFN3
YXA6Ok5vKTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXRXaXRo
T3BlbmVyKQpAQCAtMTUyMyw3ICsxNTc4LDggQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVC
bGFua1RhcmdldE5vT3BlbmVyKQogICAgIGF1dG8gcGlkMiA9IFtjcmVhdGVkV2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlkMik7CiAKLSAgICBFWFBF
Q1RfRVEocGlkMSwgcGlkMik7CisgICAgLy8gU2luY2UgdGhlcmUgaXMgbm8gb3BlbmVyLCB3ZSBw
cm9jZXNzLXN3YXAsIGV2ZW4gdGhvdWdoIHRoZSBuYXZpZ2F0aW9uIGlzIHNhbWUtc2l0ZS4KKyAg
ICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIFNlcnZlclJl
ZGlyZWN0RnJvbU5ld1dlYlZpZXcpCkBAIC01MjUzLDcgKzUzMDksNiBAQCBURVNUKFByb2Nlc3NT
d2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250cm9sbGVkUHJvY2Vzc1N3YXBwaW5nT2ZPcGVuZWUp
CiAgICAgZG9uZSA9IGZhbHNlOwogfQogCi1lbnVtIGNsYXNzIEV4cGVjdFN3YXAgeyBObywgWWVz
IH07CiBzdGF0aWMgdm9pZCBydW5Qcm9jZXNzU3dhcER1ZVRvUmVsYXRlZFdlYlZpZXdUZXN0KE5T
VVJMKiByZWxhdGVkVmlld1VSTCwgTlNVUkwqIHRhcmdldFVSTCwgRXhwZWN0U3dhcCBleHBlY3RT
d2FwKQogewogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbigpOwpAQCAtNjI2OSw3ICs2MzI0LDkgQEAgVEVTVChQcm9jZXNzU3dh
cCwgR29CYWNrVG9TdXNwZW5kZWRQYWdlV2l0aE1haW5GcmFtZUlEVGhhdElzTm90T25lKQogICAg
IC8vIE5ldyBXS1dlYlZpZXcgaGFzIG5vdyBuYXZpZ2F0ZWQgdG8gd2Via2l0Lm9yZy4KICAgICBF
WFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIsIFtbY3Jl
YXRlZFdlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwogICAgIGF1dG8gcGlkMiA9IFtjcmVh
dGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwotICAgIEVYUEVDVF9FUShwaWQxLCBw
aWQyKTsKKworICAgIC8vIFdlIHByb2Nlc3Mtc3dhcCBzaW5jZSB0aGVyZSBpcyBubyBvcGVuZXIg
cmVsYXRpb25zaGlwLgorICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKIAogICAgIC8vIENsaWNr
IGxpbmsgaW4gbmV3IFdLV2ViVmlldyBzbyB0aGF0IGl0IG5hdmlnYXRlcyBjcm9zcy1zaXRlIHRv
IGFwcGxlLmNvbS4KICAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAidGVz
dExpbmsuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKQEAgLTYyODgsNyArNjM0NSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFnZVdpdGhNYWluRnJhbWVJ
RFRoYXRJc05vdE9uZSkKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0
Lm9yZy9tYWluMi5odG1sIiwgW1tjcmVhdGVkV2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7
CiAgICAgYXV0byBwaWQ0ID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07
Ci0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDQpOyAvLyBTaG91bGQgaGF2ZSBwcm9jZXNzLXN3YXBw
ZWQgdG8gdGhlIG9yaWdpbmFsICJzdXNwZW5kZWQiIHByb2Nlc3MuCisgICAgRVhQRUNUX0VRKHBp
ZDIsIHBpZDQpOyAvLyBTaG91bGQgaGF2ZSBwcm9jZXNzLXN3YXBwZWQgdG8gdGhlIG9yaWdpbmFs
ICJzdXNwZW5kZWQiIHByb2Nlc3MuCiAKICAgICAvLyBEbyBhIGZyYWdtZW50IG5hdmlnYXRpb24g
aW4gdGhlIG9yaWdpbmFsIFdLV2ViVmlldyBhbmQgbWFrZSBzdXJlIHRoaXMgZG9lcyBub3QgY3Jh
c2guCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCN0ZXN0TGluayJd
XTsKQEAgLTYyOTgsNyArNjM1NSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdvQmFja1RvU3VzcGVu
ZGVkUGFnZVdpdGhNYWluRnJhbWVJRFRoYXRJc05vdE9uZSkKIAogICAgIEVYUEVDVF9XS19TVFJF
UShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sI3Rlc3RMaW5rIiwgW1t3ZWJWaWV3
MSBVUkxdIGFic29sdXRlU3RyaW5nXSk7CiAgICAgYXV0byBwaWQ1ID0gW2NyZWF0ZWRXZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Ci0gICAgRVhQRUNUX0VRKHBpZDEsIHBpZDUpOworICAg
IEVYUEVDVF9FUShwaWQyLCBwaWQ1KTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKaW5kZXggMDIyYmU0MzkxMzU4YjhkMDlhOGY3ZTlkNzBlNzlkZWViNjQ4ODA3
NS4uNjdhN2QxMDBhYjk3Y2NkNDViZjI4YTBjZTcxZmQ2ODcxMTc3ZjRkZSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAKQEAgLTQzNyw2ICs0MzcsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2
ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG0KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KG1lc3NhZ2VOYW1lLCAiTm90aWZ5RG9uZSIpKSB7CisgICAgICAgIEluamVjdGVkQnVuZGxlOjpw
YWdlKCktPmR1bXAoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQ2FsbFVJU2lkZVNjcmlwdENhbGxi
YWNrIikpIHsKICAgICAgICAgYXV0byBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBkaWN0aW9uYXJ5
VmFsdWUobWVzc2FnZUJvZHkpOwogICAgICAgICBhdXRvIGNhbGxiYWNrSUQgPSB1aW50NjRWYWx1
ZShtZXNzYWdlQm9keURpY3Rpb25hcnksICJDYWxsYmFja0lEIik7CkBAIC01ODksNyArNTk0LDcg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZHVtcFRvU3RkRXJyKGNvbnN0IFN0cmluZyYgb3V0cHV0
KQogICAgIHBvc3RQYWdlTWVzc2FnZSgiRHVtcFRvU3RkRXJyIiwgc3RyaW5nID8gc3RyaW5nLT5k
YXRhKCkgOiAiT3V0IG9mIG1lbW9yeVxuIik7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGU6Om91
dHB1dFRleHQoY29uc3QgU3RyaW5nJiBvdXRwdXQpCit2b2lkIEluamVjdGVkQnVuZGxlOjpvdXRw
dXRUZXh0KGNvbnN0IFN0cmluZyYgb3V0cHV0LCBJc0ZpbmFsVGVzdE91dHB1dCBpc0ZpbmFsVGVz
dE91dHB1dCkKIHsKICAgICBpZiAobV9zdGF0ZSAhPSBUZXN0aW5nKQogICAgICAgICByZXR1cm47
CkBAIC02MDAsNyArNjA1LDggQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6b3V0cHV0VGV4dChjb25z
dCBTdHJpbmcmIG91dHB1dCkKICAgICAvLyBXZSB1c2UgV0tCdW5kbGVQYWdlUG9zdE1lc3NhZ2VJ
Z25vcmluZ0Z1bGx5U3luY2hyb25vdXNNb2RlKCkgaW5zdGVhZCBvZiBXS0J1bmRsZVBhZ2VQb3N0
TWVzc2FnZSgpIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCB0ZXh0IG91dHB1dAogICAgIC8vIGlzIGRv
bmUgdmlhIGFzeW5jaHJvbm91cyBJUEMsIGV2ZW4gaWYgdGhlIGNvbm5lY3Rpb24gaXMgaW4gZnVs
bHkgc3luY2hyb25vdXMgbW9kZSBkdWUgdG8gYSBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNN
ZXNzYWdlRm9yVGVzdGluZygpCiAgICAgLy8gY2FsbC4gT3RoZXJ3aXNlLCBtZXNzYWdlcyBsb2dn
ZWQgdmlhIHN5bmMgYW5kIGFzeW5jIElQQyBtYXkgZW5kIHVwIG91dCBvZiBvcmRlciBhbmQgY2F1
c2UgZmxha2luZXNzLgotICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlSWdub3JpbmdGdWxseVN5
bmNocm9ub3VzTW9kZShwYWdlKCktPnBhZ2UoKSwgdG9XSygiVGV4dE91dHB1dCIpLmdldCgpLCB0
b1dLKHN0cmluZyA/IHN0cmluZy0+ZGF0YSgpIDogIk91dCBvZiBtZW1vcnlcbiIpLmdldCgpKTsK
KyAgICBhdXRvIG1lc3NhZ2VOYW1lID0gaXNGaW5hbFRlc3RPdXRwdXQgPT0gSXNGaW5hbFRlc3RP
dXRwdXQ6OlllcyA/IHRvV0soIkZpbmFsVGV4dE91dHB1dCIpIDogdG9XSygiVGV4dE91dHB1dCIp
OworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlSWdub3JpbmdGdWxseVN5bmNocm9ub3VzTW9k
ZShwYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIHRvV0soc3RyaW5nID8gc3RyaW5n
LT5kYXRhKCkgOiAiT3V0IG9mIG1lbW9yeVxuIikuZ2V0KCkpOwogfQogCiB2b2lkIEluamVjdGVk
QnVuZGxlOjpwb3N0TmV3QmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUoYm9vbCB2YWx1ZSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuaAppbmRleCBjZmJhZDA0OTBjMTZiOTc2MmNjMTI5YTE2MjliYzZmZDA4NGJkOGI4Li42ODNm
ZDg1NDc1N2E5MzExYmU0ZDdjOWExZDQ4ZTA2YTYyZTFmN2ZiIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC04
MSw3ICs4MSw4IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZER1bXBQaXhlbHMoKSBjb25zdCB7
IHJldHVybiBtX2R1bXBQaXhlbHM7IH0KICAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVy
cigpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyOyB9OwogCi0gICAg
dm9pZCBvdXRwdXRUZXh0KGNvbnN0IFN0cmluZyYpOworICAgIGVudW0gY2xhc3MgSXNGaW5hbFRl
c3RPdXRwdXQgOiBib29sIHsgTm8sIFllcyB9OworICAgIHZvaWQgb3V0cHV0VGV4dChjb25zdCBT
dHJpbmcmLCBJc0ZpbmFsVGVzdE91dHB1dCA9IElzRmluYWxUZXN0T3V0cHV0OjpObyk7CiAgICAg
dm9pZCBkdW1wVG9TdGRFcnIoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwb3N0TmV3QmVmb3Jl
VW5sb2FkUmV0dXJuVmFsdWUoYm9vbCk7CiAgICAgdm9pZCBwb3N0QWRkQ2hyb21lSW5wdXRGaWVs
ZCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDNjNzQxMjdjZmJlMGRhNDYzZjcxY2E2
MDBhNWNhYzMwODY2YmY0YTIuLmRlOWRlMWZkYzYzMzBjYWUzMjNjYTQ0OTAzNjM3ZTdmYzBhMWU0
MjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTg0Niw3ICs4NDYsNyBAQCB2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6ZHVtcCgpCiAgICAgICAgICAgICBpbmplY3RlZEJ1bmRsZS5zZXRS
ZXBhaW50UmVjdHMoYWRvcHRXSyhXS0J1bmRsZVBhZ2VDb3B5VHJhY2tlZFJlcGFpbnRSZWN0cyht
X3BhZ2UpKS5nZXQoKSk7CiAgICAgfQogCi0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChz
dHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
c3RyaW5nQnVpbGRlci50b1N0cmluZygpLCBJbmplY3RlZEJ1bmRsZTo6SXNGaW5hbFRlc3RPdXRw
dXQ6Olllcyk7CiAgICAgaW5qZWN0ZWRCdW5kbGUuZG9uZSgpOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDA0ZjFkZDIwMjhmZTg1ZGRhYTVlNjU0
OGJiZDM4NTdmYTQwNjQ4ZGEuLjgxMzVhYWY3MWM2MWRhMmEzOTI1NmJhZGY3ZTUzY2QyNDczNjI5
NDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC00OTEs
NiArNDkxLDE0IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFBs
YXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uCiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlTmF2aWdhdGlvbkNsaWVudChuZXdQYWdlLCAmcGFnZU5hdmlnYXRpb25DbGllbnQuYmFz
ZSk7CiAKKyAgICBXS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudFYxIGluamVjdGVkQnVuZGxlQ2xp
ZW50ID0geworICAgICAgICB7IDEsIHRoaXMgfSwKKyAgICAgICAgZGlkUmVjZWl2ZVBhZ2VNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlLAorICAgICAgICBudWxscHRyLAorICAgICAgICBkaWRSZWNl
aXZlU3luY2hyb25vdXNQYWdlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZVdpdGhMaXN0ZW5lciwK
KyAgICB9OworICAgIFdLUGFnZVNldFBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudChuZXdQYWdlLCAm
aW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7CisKICAgICB2aWV3LT5kaWRJbml0aWFsaXplQ2xp
ZW50cygpOwogCiAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnVwZGF0ZVdpbmRvd1Nj
YWxlRm9yVGVzdCh2aWV3LnB0cigpLCAqVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1fY3Vy
cmVudEludm9jYXRpb24pOwpAQCAtMTU3Miw3ICsxNTgwLDE2IEBAIFdLVHlwZVJlZiBUZXN0Q29u
dHJvbGxlcjo6Z2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhKFdLQ29udGV4
dFJlZiwKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZVBhZ2VNZXNzYWdlRnJvbUlu
amVjdGVkQnVuZGxlKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tU
eXBlUmVmIG1lc3NhZ2VCb2R5LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIHN0YXRp
Y19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5k
aWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdlTmFtZSwgbWVzc2FnZUJv
ZHkpOworICAgIGF1dG8qIHRlc3RDb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xs
ZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgaWYgKHBhZ2UgIT0gdGVz
dENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBhZ2UoKSkgeworICAgICAgICAvLyBJZiB0aGlz
IGlzIGEgRG9uZSBtZXNzYWdlIGZyb20gYW4gYXV4aWxpYXJ5IHZpZXcgaW4gaXRzIG93biBXZWJQ
cm9jZXNzIChkdWUgdG8gcHJvY2Vzcy1zd2FwcGluZyksIHdlIG5lZWQgdG8gbm90aWZ5IHRoZSBp
bmplY3RlZCBidW5kbGUgb2YgdGhlIG1haW4gV2ViVmlldworICAgICAgICAvLyB0aGF0IHRoZSB0
ZXN0IGlzIGRvbmUuCisgICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiRG9uZSIpICYmIHRlc3RDb250cm9sbGVyLT5tX2N1cnJlbnRJbnZvY2F0aW9u
KQorICAgICAgICAgICAgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKHRlc3RDb250
cm9sbGVyLT5tYWluV2ViVmlldygpLT5wYWdlKCksIHRvV0soIk5vdGlmeURvbmUiKS5nZXQoKSwg
bnVsbHB0cik7CisgICAgICAgIGlmICghV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIlRleHRPdXRwdXQiKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
dGVzdENvbnRyb2xsZXItPmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3Nh
Z2VOYW1lLCBtZXNzYWdlQm9keSk7CiB9CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2Vp
dmVTeW5jaHJvbm91c1BhZ2VNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlV2l0aExpc3RlbmVyKFdL
UGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VC
b2R5LCBXS01lc3NhZ2VMaXN0ZW5lclJlZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMzQ1MDY5
MzAwOTkyZmIzZTA3MTNlODMyYzQxN2ZjNTFjMDg4ZjA4Yy4uZmY0ZjI1OTQ5N2UxMjFjN2Q5ODBl
OTk3OGU0MzIwYzczNGUzMjEzMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNl
aXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcobWVzc2FnZU5hbWUsICJUZXh0T3V0cHV0IikpIHsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlRleHRPdXRwdXQiKSB8fCBXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiRmluYWxUZXh0T3V0cHV0IikpIHsKICAgICAg
ICAgbV90ZXh0T3V0cHV0LmFwcGVuZCh0b1dURlN0cmluZyhzdHJpbmdWYWx1ZShtZXNzYWdlQm9k
eSkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYzdmYTcxNzU1Zjk5MjllYzZj
M2JmNzgxOWQxNTk0NzkwMmU3OWY0Li43ODRjM2MxNTllMjZmZGQ3OTRjYThmNGIwMjg3ODNiM2Ew
YjcwYjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMjAgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mtc3dhcCBm
b3IgaW5pdGlhbCBuYXZpZ2F0aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5lcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTkwCisgICAg
ICAgIDxyZGFyOi8vODQ0MjU1MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hh
bS4KKworICAgICAgICAqIGZhc3QvZG9tL29wZW4tYW5kLWNsb3NlLWJ5LURPTS5odG1sOgorICAg
ICAgICBUaGUgdGVzdCBpcyByZWx5aW5nIG9uIHRlc3RSdW5uZXIud2luZG93Q291bnQoKSwgd2hp
Y2ggaXMgb25seSBhYmxlIHRvIGNvdW50IHdpbmRvd3MgaW5zaWRlIHRoZQorICAgICAgICBjdXJy
ZW50IFdlYlByb2Nlc3MuIEFkZCBgcmVsPW9wZW5lcmAgdG8gdGhlIGxpbmsgc28gdGhhdCB0aGUg
bmV3IHdpbmRvdyBrZWVwIG9wZW5pbmcgaW4gdGhlIHNhbWUKKyAgICAgICAgcHJvY2Vzcywgc28g
dGhhdCBgdGVzdFJ1bm5lci53aW5kb3dDb3VudCgpYCBhY3R1YWxseSBrZWVwcyB3b3JraW5nIGFz
IGV4cGVjdGVkLgorICAgICAgICBJIGFkZGVkIGFuIEFQSSB0ZXN0IHRvIGNvdmVyIHRvIG1ha2Ug
c3VyZSB0aGF0IHdpbmRvd3Mgb3BlbmVkIGJ5IERPTSBjYW4gc3RpbGwgY2xvc2UgdGhlbXNlbHZl
cworICAgICAgICBpbiB0aGUgY2FzZSB3aGVyZSB3ZSBzd2FwIHByb2Nlc3Nlcy4KKwogMjAyMS0x
MC0yMCAgQXl1bWkgS29qaW1hICA8YXl1bWlfa29qaW1hQGFwcGxlLmNvbT4KIAogICAgICAgICBb
IG1hY09TIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZXZlbnQtdXBsb2Fk
LXByb2dyZXNzLWNyb3Nzb3JpZ2luLmFueS5odG1sIGlzIGEgZmxha3kgZmFpbHVyZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGI4ZjA3M2IzZGE2NTMxMzVkODJiOTRjNjA2MDhi
MzczMmMyNzEzMTQuLjI3OWU0YmI3YTNlOThlMGU5ZWM3NGExYTgxOTk0ZGIzNjM1YjAwYjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTEwLTIw
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViS2l0IHNob3Vs
ZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRpYWwgbmF2aWdhdGlvbiBvZiBhIHBvcHVwIGlmIGl0IGhh
cyBubyBvcGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTk5MAorICAgICAgICA8cmRhcjovLzg0NDI1NTA0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
cm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLWNvZXAtc2FuZGJveC5odHRwcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9w
ZW5lci1wb2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgUmVi
YXNlbGluZSB0ZXN0cyBkdWUgdG8gbWlub3IgbG9nZ2luZyBkaWZmZXJlbmNlcy4KKwogMjAyMS0x
MC0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBNZWRpYVN0cmVhbVRy
YWNrLWJhc2VkIGJhY2tlbmQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vb3Blbi1hbmQtY2xvc2UtYnktRE9NLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9vcGVu
LWFuZC1jbG9zZS1ieS1ET00uaHRtbAppbmRleCA5NTdiNTgzY2RmN2E1NmQ4NTJiYjY5YmZiMmQ3
ZDIxYjk1N2Q2NDBlLi43MWU3MDc1MDk0YjQ0NDhlZWYzNTVlODZiMWIwZmJmZWU3NjVmNWZhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRtbApA
QCAtNTMsNyArNTMsNyBAQCBUbyBydW4gdGhlIHRlc3QgbWFudWFsbHkgY2xpY2sgdGhlIGxpbmsg
YmVsb3cuCiA8YnIvPgogPGRpdiBpZD0iY29uc29sZSIgLz4KIDxici8+Ci08YSBocmVmPSJyZXNv
dXJjZXMvbWlkZGxlLmh0bWwiIGlkPSJhbmNob3JMaW5rIiB0YXJnZXQ9Il9ibGFuayI+T3BlbiBu
ZXcgd2luZG93IHRoYXQgd2lsbCBjbG9zZSBpdHNlbGY8L2E+Cis8YSBocmVmPSJyZXNvdXJjZXMv
bWlkZGxlLmh0bWwiIGlkPSJhbmNob3JMaW5rIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJvcGVuZXIi
Pk9wZW4gbmV3IHdpbmRvdyB0aGF0IHdpbGwgY2xvc2UgaXRzZWxmPC9hPgogPGJyLz48YnIvPgog
CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29lcC1ibG9iLXBvcHVw
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDAzMjNhNTFkNmM1MDM3ODA3YWIyOTJiYzZiZWI0Mzll
NzY4YjNlYzIuLjc2ZmJkNmUxZjdiYzc4ODM5ZjNhYzQ3ZTJiOTVmZjQ3NTQxNDY2NzYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
cm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb2VwLWJsb2ItcG9wdXAuaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC0yLDYgKzIsOCBAQCBDT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBsb2FkIHRv
IGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYQogQ09OU09MRSBN
RVNTQUdFOiBGZXRjaCBBUEkgY2Fubm90IGxvYWQgaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9jb21t
b24vYmxhbmsuaHRtbCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogQ09OU09MRSBNRVNT
QUdFOiBDYW5jZWxsZWQgbG9hZCB0byBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFu
ay5odG1sIGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIHJlc291cmNlJ3MgQ3Jvc3MtT3JpZ2luLVJl
c291cmNlLVBvbGljeSByZXNwb25zZSBoZWFkZXIuCiBDT05TT0xFIE1FU1NBR0U6IEZldGNoIEFQ
SSBjYW5ub3QgbG9hZCBodHRwczovLzEyNy4wLjAuMTo5NDQzL2NvbW1vbi9ibGFuay5odG1sIGR1
ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCBs
b2FkIHRvIGh0dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgYmVjYXVzZSBp
dCB2aW9sYXRlcyB0aGUgcmVzb3VyY2UncyBDcm9zcy1PcmlnaW4tUmVzb3VyY2UtUG9saWN5IHJl
c3BvbnNlIGhlYWRlci4KK0NPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJIGNhbm5vdCBsb2FkIGh0
dHBzOi8vMTI3LjAuMC4xOjk0NDMvY29tbW9uL2JsYW5rLmh0bWwgZHVlIHRvIGFjY2VzcyBjb250
cm9sIGNoZWNrcy4KIAogUEFTUyBDT09QK0NPRVAgYmxvYiBVUkwgcG9wdXA6IHdpbmRvdy5vcGVu
KCkKIFBBU1MgQ09PUCtDT0VQIGJsb2IgVVJMIHBvcHVwOiA8YT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4t
b3BlbmVyLXBvbGljeS9jb29wLWNvZXAtc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LW9wZW5lci1wb2xpY3kvY29vcC1jb2VwLXNhbmRib3guaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IDE3NmUzMTQ1YTc3ODRiYmZlYjkzZjZjOWQ4ZGZmMmFlZjlkODRmNDcuLjM3MzMyNDVjZTcwOWE4
ZDBjYmFmOWJmOGY3M2Q4MWVhODUyMjYzYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGlj
eS9jb29wLWNvZXAtc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXIt
cG9saWN5L2Nvb3AtY29lcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQg
QEAKIENPTlNPTEUgTUVTU0FHRTogTmF2aWdhdGlvbiB3YXMgYmxvY2tlZCBieSBDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeQotQ09OU09MRSBNRVNTQUdFOiBOYXZpZ2F0aW9uIHdhcyBibG9ja2Vk
IGJ5IENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5CiAKIFBBU1MgPGlmcmFtZSBzYW5kYm94PSJh
bGxvdy1wb3B1cHMgYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiI+IFNhbmRib3hlZCBD
cm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeSBwb3B1cCBzaG91bGQgcmVzdWx0IGluIGEgbmV0d29y
ayBlcnJvcgogUEFTUyA8aWZyYW1lIHNhbmRib3g9ImFsbG93LXBvcHVwcyBhbGxvdy1zY3JpcHRz
Ij4gU2FuZGJveGVkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IHBvcHVwIHNob3VsZCByZXN1
bHQgaW4gYSBuZXR3b3JrIGVycm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29v
cC1jc3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29v
cC1jc3Atc2FuZGJveC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNmNhN2UxN2YyZDJiZjk5YmNi
NWQ0OTRjY2RlNDVjMDhjNmNmMjA5NS4uMmZjYzlmYjEzODkxMzgxODYwMDVjYTcyOGQ5ZTNhNDcx
YjJlNjBiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtY3NwLXNhbmRib3gu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLWNzcC1zYW5k
Ym94Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTog
TmF2aWdhdGlvbiB3YXMgYmxvY2tlZCBieSBDcm9zcy1PcmlnaW4tT3BlbmVyLVBvbGljeQorQ09O
U09MRSBNRVNTQUdFOiBOYXZpZ2F0aW9uIHdhcyBibG9ja2VkIGJ5IENyb3NzLU9yaWdpbi1PcGVu
ZXItUG9saWN5CiAKIFBBU1MgQ1NQOiBzYW5kYm94IGFsbG93LXBvcHVwcyBhbGxvdy1zY3JpcHRz
IGFsbG93LXNhbWUtb3JpZ2luOyBDU1Agc2FuZGJveGVkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9s
aWN5IHBvcHVwIHNob3VsZCByZXN1bHQgaW4gYSBuZXR3b3JrIGVycm9yCiBQQVNTIENTUDogc2Fu
ZGJveCBhbGxvdy1wb3B1cHMgYWxsb3ctc2NyaXB0czsgQ1NQIHNhbmRib3hlZCBDcm9zcy1Pcmln
aW4tT3BlbmVyLVBvbGljeSBwb3B1cCBzaG91bGQgcmVzdWx0IGluIGEgbmV0d29yayBlcnJvcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3Atc2FuZGJveC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCAxNzZlMzE0NWE3Nzg0YmJmZWI5M2Y2YzlkOGRmZjJhZWY5ZDg0ZjQ3Li4zNzMzMjQ1
Y2U3MDlhOGQwY2JhZjliZjhmNzNkODFlYTg1MjI2M2I2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5l
ci1wb2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2luLW9wZW5l
ci1wb2xpY3kvY29vcC1zYW5kYm94Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQgQEAK
IENPTlNPTEUgTUVTU0FHRTogTmF2aWdhdGlvbiB3YXMgYmxvY2tlZCBieSBDcm9zcy1PcmlnaW4t
T3BlbmVyLVBvbGljeQotQ09OU09MRSBNRVNTQUdFOiBOYXZpZ2F0aW9uIHdhcyBibG9ja2VkIGJ5
IENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5CiAKIFBBU1MgPGlmcmFtZSBzYW5kYm94PSJhbGxv
dy1wb3B1cHMgYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiI+IFNhbmRib3hlZCBDcm9z
cy1PcmlnaW4tT3BlbmVyLVBvbGljeSBwb3B1cCBzaG91bGQgcmVzdWx0IGluIGEgbmV0d29yayBl
cnJvcgogUEFTUyA8aWZyYW1lIHNhbmRib3g9ImFsbG93LXBvcHVwcyBhbGxvdy1zY3JpcHRzIj4g
U2FuZGJveGVkIENyb3NzLU9yaWdpbi1PcGVuZXItUG9saWN5IHBvcHVwIHNob3VsZCByZXN1bHQg
aW4gYSBuZXR3b3JrIGVycm9yCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>