<?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>218764</bug_id>
          
          <creation_ts>2020-11-10 12:01:52 -0800</creation_ts>
          <short_desc>[WK2] Only the first wheel event in a gesture should be cancelable</short_desc>
          <delta_ts>2020-12-09 10:02:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=219547</see_also>
          <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>
          <dependson>219050</dependson>
    
    <dependson>219213</dependson>
    
    <dependson>219236</dependson>
    
    <dependson>219241</dependson>
    
    <dependson>219373</dependson>
    
    <dependson>219384</dependson>
          <blocked>219547</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>clord</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>pdr</cc>
    
    <cc>pnormand</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706152</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-10 12:01:52 -0800</bug_when>
    <thetext>We should only report the first wheel event in a sequence as cancelable: https://w3c.github.io/uievents/#event-type-wheel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706153</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-10 12:02:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/71248946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707452</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-13 18:29:35 -0800</bug_when>
    <thetext>*** Bug 218765 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707453</commentid>
    <comment_count>3</comment_count>
      <attachid>414114</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-13 18:30:58 -0800</bug_when>
    <thetext>Created attachment 414114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707456</commentid>
    <comment_count>4</comment_count>
      <attachid>414116</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-13 19:37:09 -0800</bug_when>
    <thetext>Created attachment 414116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707460</commentid>
    <comment_count>5</comment_count>
      <attachid>414117</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-13 19:49:37 -0800</bug_when>
    <thetext>Created attachment 414117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707463</commentid>
    <comment_count>6</comment_count>
      <attachid>414119</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-13 19:58:38 -0800</bug_when>
    <thetext>Created attachment 414119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709700</commentid>
    <comment_count>7</comment_count>
      <attachid>414745</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-20 16:40:57 -0800</bug_when>
    <thetext>Created attachment 414745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709721</commentid>
    <comment_count>8</comment_count>
      <attachid>414748</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-20 18:49:40 -0800</bug_when>
    <thetext>Created attachment 414748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709722</commentid>
    <comment_count>9</comment_count>
      <attachid>414749</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-20 19:00:06 -0800</bug_when>
    <thetext>Created attachment 414749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711826</commentid>
    <comment_count>10</comment_count>
      <attachid>415347</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-03 14:31:28 -0800</bug_when>
    <thetext>Created attachment 415347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711839</commentid>
    <comment_count>11</comment_count>
      <attachid>415351</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-03 14:47:19 -0800</bug_when>
    <thetext>Created attachment 415351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711951</commentid>
    <comment_count>12</comment_count>
      <attachid>415387</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-03 22:00:22 -0800</bug_when>
    <thetext>Created attachment 415387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711958</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-03 23:10:30 -0800</bug_when>
    <thetext>Committed r270425: &lt;https://trac.webkit.org/changeset/270425&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415387.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713204</commentid>
    <comment_count>14</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-12-09 09:42:09 -0800</bug_when>
    <thetext>Seems like this broke scrolling in GTK... I can&apos;t scroll any page with current ToT. Reverting this commit brings my wheel to a functional state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713209</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2020-12-09 10:02:55 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #14)
&gt; Seems like this broke scrolling in GTK... I can&apos;t scroll any page with
&gt; current ToT. Reverting this commit brings my wheel to a functional state.

lmoura is working on this regression in bug 219547.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414114</attachid>
            <date>2020-11-13 18:30:58 -0800</date>
            <delta_ts>2020-11-13 19:43:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201113183058.patch</filename>
            <type>text/plain</type>
            <size>50552</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTUyMDljYzg2NjUwNmZj
MDFlZTQwZGJiYmQyM2ZjYmMyYjQ5YmQ2YS4uYmRiMjMzYThmZTMwYTY2MzJmOTc4MzZjMWU0NTM0
MTUzN2E0M2U5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTExLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZp
cnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXZl
bnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNh
bmNlbGFibGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZl
bnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS5odG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNwYXRjaFdoZWVsRXZlbnQpOgorICAg
ICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudDo6V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpXaGVlbEV2ZW50OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50Lmg6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnRJbnRlcm5hbCk6CisgICAgICAgICogcGFnZS9F
dmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OndoZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxv
Y2tDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvaW50ZXJMb2NrQ29udHJvbGxl
cjo6ZGlzcGF0Y2hMb2NrZWRXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRU
ZXN0TW9uaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAg
KiBwYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oOgorICAgICAgICAqIHBhZ2UvaW9zL0V2ZW50
SGFuZGxlcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVu
dCk6CisgICAgICAgICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6d2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGlu
YXRvcjo6aGFuZGxlV2hlZWxFdmVudCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpk
ZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWU6OnNldEdlc3R1cmVSZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCk6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2hl
ZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpuZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nIGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0
ZXJNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6
d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWM6OnBlcmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6Om5leHREZWZlcklkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdo
ZWVsRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1Bs
YXRmb3JtV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaDoKKwogMjAyMC0xMS0xMiAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb3JjZSB3aGVl
bCBldmVudCBsaXN0ZW5lcnMgb24gdGhlIHJvb3QgdG8gYmUgcGFzc2l2ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAy
N2JhNjZjODcyNTEwZThhMmY3YjE2NjBiY2RhOWQ1NjNmNjRjMGFjLi4xNzdhYTgyZGNlYWFiZDA5
ZTI2YzQxZWJlZWVmNDhjODkzMzY0YjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIw
LTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2Vs
YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4
NzY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpo
YW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50
KToKKwogMjAyMC0xMS0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBGb3JjZSB3aGVlbCBldmVudCBsaXN0ZW5lcnMgb24gdGhlIHJvb3QgdG8gYmUg
cGFzc2l2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGY3N2U1NjYwYzk4OWE2NTFjN2E5MTM4
NDg4YTcxZTIyYmE5NzEzNDIuLjk5ZWM1Y2MzMTYyMWIwYTVlMDA2MGZhNTZkZGEwNGNhYWE5Yzk2
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTQyMCw5ICs0MjAsOSBAQCBib29sIEVsZW1l
bnQ6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3Jt
RXZlbnQsIGNvbnN0CiAgICAgcmV0dXJuIGRpZE5vdFN3YWxsb3dFdmVudDsKIH0KIAotYm9vbCBF
bGVtZW50OjpkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBwbGF0
Zm9ybUV2ZW50KQorYm9vbCBFbGVtZW50OjpkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4mIHBy
b2Nlc3NpbmcsIEV2ZW50OjpJc0NhbmNlbGFibGUgaXNDYW5jZWxhYmxlKQogewotICAgIGF1dG8g
ZXZlbnQgPSBXaGVlbEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVudCwgZG9jdW1lbnQoKS53aW5k
b3dQcm94eSgpKTsKKyAgICBhdXRvIGV2ZW50ID0gV2hlZWxFdmVudDo6Y3JlYXRlKHBsYXRmb3Jt
RXZlbnQsIGRvY3VtZW50KCkud2luZG93UHJveHkoKSwgaXNDYW5jZWxhYmxlKTsKIAogICAgIC8v
IEV2ZW50cyB3aXRoIG5vIGRlbHRhcyBhcmUgaW1wb3J0YW50IGJlY2F1c2UgdGhleSBjb252ZXkg
cGxhdGZvcm0gaW5mb3JtYXRpb24gYWJvdXQgc2Nyb2xsIGdlc3R1cmVzCiAgICAgLy8gYW5kIG1v
bWVudHVtIGJlZ2lubmluZyBvciBlbmRpbmcuIEhvd2V2ZXIsIHRob3NlIGV2ZW50cyBzaG91bGQg
bm90IGJlIHNlbnQgdG8gdGhlIERPTSBzaW5jZSBzb21lCkBAIC00MzAsMTIgKzQzMCwyMSBAQCBi
b29sIEVsZW1lbnQ6OmRpc3BhdGNoV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHBsYXRmb3JtRXZlbnQpCiAgICAgLy8gZXZlbnQgaGFuZGxlciwgYW5kIG91ciBwbGF0Zm9ybSBj
b2RlIHdpbGwgY29ycmVjdGx5IGhhbmRsZSB0aGUgcGhhc2UgY2hhbmdlcy4gQ2FsbGluZyBzdG9w
UHJvcGFnYXRpb24oKQogICAgIC8vIHdpbGwgcHJldmVudCB0aGUgZXZlbnQgZnJvbSBiZWluZyBz
ZW50IHRvIHRoZSBET00sIGJ1dCB3aWxsIHN0aWxsIGNhbGwgdGhlIGRlZmF1bHQgZXZlbnQgaGFu
ZGxlci4KICAgICAvLyBGSVhNRTogTW92ZSB0aGlzIGxvZ2ljIGludG8gV2hlZWxFdmVudDo6Y3Jl
YXRlLgotICAgIGlmICghcGxhdGZvcm1FdmVudC5kZWx0YVgoKSAmJiAhcGxhdGZvcm1FdmVudC5k
ZWx0YVkoKSkKKyAgICBpZiAocGxhdGZvcm1FdmVudC5kZWx0YSgpLmlzWmVybygpKQogICAgICAg
ICBldmVudC0+c3RvcFByb3BhZ2F0aW9uKCk7CisgICAgZWxzZQorICAgICAgICBwcm9jZXNzaW5n
LmFkZChFdmVudEhhbmRsaW5nOjpEaXNwYXRjaGVkVG9ET00pOwogCiAgICAgZGlzcGF0Y2hFdmVu
dChldmVudCk7CiAgICAgCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJFbGVtZW50ICIgPDwgKnRoaXMgPDwgIiBkaXNwYXRjaFdoZWVsRXZlbnQ6IGRlZmF1bHRQcmV2
ZW50ZWQgIiA8PCBldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpIDw8ICIgZGVmYXVsdEhhbmRsZWQg
IiA8PCBldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSk7CisgICAgCisgICAgaWYgKGV2ZW50LT5kZWZh
dWx0UHJldmVudGVkKCkpCisgICAgICAgIHByb2Nlc3NpbmcuYWRkKEV2ZW50SGFuZGxpbmc6OkRl
ZmF1bHRQcmV2ZW50ZWQpOworCisgICAgaWYgKGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQorICAg
ICAgICBwcm9jZXNzaW5nLmFkZChFdmVudEhhbmRsaW5nOjpEZWZhdWx0SGFuZGxlZCk7CisKICAg
ICByZXR1cm4gIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkgJiYgIWV2ZW50LT5kZWZhdWx0SGFu
ZGxlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA5YmM3ZDIwYzlkY2NkNzFkYmY5NDMz
ZGExNTQ3NDIwZTZhNzFiMzMzLi5mY2I3Y2ViNjI1YjkxNDM5NzhjZmE3N2ZkM2ZlOGE3OGNmNDFk
OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTY2LDYgKzY2LDggQEAgc3RydWN0IEtleWZyYW1l
QW5pbWF0aW9uT3B0aW9uczsKIHN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnM7CiBzdHJ1Y3Qg
U2Nyb2xsVG9PcHRpb25zOwogCitlbnVtIGNsYXNzIEV2ZW50UHJvY2Vzc2luZyA6IHVpbnQ4X3Q7
CisKICNpZiBFTkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQogc3RydWN0IEludGVyc2VjdGlv
bk9ic2VydmVyRGF0YTsKICNlbmRpZgpAQCAtNTMwLDcgKzUzMiw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFNhdmVkTGF5ZXJTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYpOwogCiAgICAg
Ym9vbCBkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnRUeXBlLCBpbnQgY2xpY2tDb3VudCA9IDAsIEVsZW1lbnQqIHJlbGF0
ZWRUYXJnZXQgPSBudWxscHRyKTsKLSAgICBib29sIGRpc3BhdGNoV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmKTsKKyAgICBib29sIGRpc3BhdGNoV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4mLCBFdmVudDo6SXND
YW5jZWxhYmxlID0gRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKTsKICAgICBib29sIGRpc3BhdGNo
S2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7CiAgICAgYm9vbCBkaXNwYXRj
aFNpbXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIFNpbXVsYXRlZENsaWNrTW91
c2VFdmVudE9wdGlvbnMgPSBTZW5kTm9FdmVudHMsIFNpbXVsYXRlZENsaWNrVmlzdWFsT3B0aW9u
cyA9IFNob3dQcmVzc2VkTG9vayk7CiAgICAgdm9pZCBkaXNwYXRjaEZvY3VzSW5FdmVudChjb25z
dCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVt
ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAppbmRleCA2ZjVkMTVmYjJkM2E0OTAxMDdh
N2ViOGY3NzFiOTVkYzQzNDIyZmNkLi40OGVhNWJkMzE0YTUyMzAzNjViMzE3YjU4ODEwOGFkNjc3
NDMyNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCkBAIC01MCw4ICs1MCw4IEBAIGlu
bGluZSBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0
IEluaXQmIGluaXRpYWxpemVyKQogewogfQogCi1pbmxpbmUgV2hlZWxFdmVudDo6V2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2luZG93UHJveHk+JiYg
dmlldykKLSAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIENhbkJ1YmJs
ZTo6WWVzLCBJc0NhbmNlbGFibGU6OlllcywgSXNDb21wb3NlZDo6WWVzLCBldmVudC50aW1lc3Rh
bXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgV1RGTW92ZSh2aWV3KSwgMCwKK2lubGlu
ZSBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBJc0NhbmNlbGFibGUgaXNDYW5jZWxhYmxlKQor
ICAgIDogTW91c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgQ2FuQnViYmxlOjpZZXMs
IGlzQ2FuY2VsYWJsZSwgSXNDb21wb3NlZDo6WWVzLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSwgV1RGTW92ZSh2aWV3KSwgMCwKICAgICAgICAgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKSAsIHsgfSwgZXZlbnQubW9kaWZpZXJzKCks
IDAsIDAsIG51bGxwdHIsIDAsIDAsIElzU2ltdWxhdGVkOjpObywgSXNUcnVzdGVkOjpZZXMpCiAg
ICAgLCBtX3doZWVsRGVsdGEoZXZlbnQud2hlZWxUaWNrc1goKSAqIFRpY2tNdWx0aXBsaWVyLCBl
dmVudC53aGVlbFRpY2tzWSgpICogVGlja011bHRpcGxpZXIpCiAgICAgLCBtX2RlbHRhWCgtZXZl
bnQuZGVsdGFYKCkpCkBAIC02MSw5ICs2MSw5IEBAIGlubGluZSBXaGVlbEV2ZW50OjpXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFJlZlB0cjxXaW5kb3dQcm94CiB7
CiB9CiAKLVJlZjxXaGVlbEV2ZW50PiBXaGVlbEV2ZW50OjpjcmVhdGUoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcpCitSZWY8V2hlZWxF
dmVudD4gV2hlZWxFdmVudDo6Y3JlYXRlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3LCBJc0NhbmNlbGFibGUgaXNDYW5jZWxhYmxlKQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdoZWVsRXZlbnQoZXZlbnQsIFdURk1vdmUodmll
dykpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXaGVlbEV2ZW50KGV2ZW50LCBXVEZNb3Zl
KHZpZXcpLCBpc0NhbmNlbGFibGUpKTsKIH0KIAogUmVmPFdoZWVsRXZlbnQ+IFdoZWVsRXZlbnQ6
OmNyZWF0ZUZvckJpbmRpbmdzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVl
bEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCmluZGV4IGNmZDU5Nzc1
NGY1Y2EwMGU4NzBkZjJmMjc0NDgxNzU4NmE4YmVhYzYuLjYyNDRhMzIyMWI2YTMwNTc0ZTRmNTQw
NTBmOWZkNTE4OGNiMDcyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaApAQCAtNDAsNyArNDAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIERPTV9ERUxUQV9QQUdFCiAgICAgfTsKIAotICAgIHN0YXRp
YyBSZWY8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFJlZlB0
cjxXaW5kb3dQcm94eT4mJik7CisgICAgc3RhdGljIFJlZjxXaGVlbEV2ZW50PiBjcmVhdGUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBJc0NhbmNlbGFi
bGUgPSBJc0NhbmNlbGFibGU6Olllcyk7CiAgICAgc3RhdGljIFJlZjxXaGVlbEV2ZW50PiBjcmVh
dGVGb3JCaW5kaW5ncygpOwogCiAgICAgc3RydWN0IEluaXQgOiBNb3VzZUV2ZW50SW5pdCB7CkBA
IC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2hlZWxFdmVudCgpOwogICAg
IFdoZWVsRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIGNvbnN0IEluaXQmKTsKLSAgICBXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFJlZlB0cjxXaW5kb3dQcm94eT4mJik7Cisg
ICAgV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBSZWZQdHI8V2luZG93UHJv
eHk+JiYsIElzQ2FuY2VsYWJsZSk7CiAKICAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFj
ZSgpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXgg
NWJlOTgwNDYyNjEzZTIxZDNiMTJlNmUwZTUzM2Q2MTA0ODk5ZDJmMS4uOGExNDk0MTk1OWJiM2Jj
NzgwOGQxZDRkNGRhNWE2NGJmZmJiZGIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcApAQCAtMjc5Myw2ICsyNzkzLDEwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hl
ZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50CiAgICAg
cmV0dXJuIGRpZEhhbmRsZUV2ZW50OwogfQogCit2b2lkIEV2ZW50SGFuZGxlcjo6d2hlZWxFdmVu
dFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRp
b25TZXQ8RXZlbnRIYW5kbGluZz4pCit7Cit9CisKIGJvb2wgRXZlbnRIYW5kbGVyOjpwbGF0Zm9y
bUNvbXBsZXRlUGxhdGZvcm1XaWRnZXRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYsIGNvbnN0IFdpZGdldCYsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JikKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTI4NjMsNiArMjg2NywxNCBAQCBib29sIEV2ZW50SGFuZGxlcjo6
Y29tcGxldGVXaWRnZXRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IGNvbgogfQogCiBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
cz4gcHJvY2Vzc2luZ1N0ZXBzKQoreworICAgIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBoYW5k
bGluZzsKKyAgICBib29sIGhhbmRsZWQgPSBoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwoZXZlbnQs
IHByb2Nlc3NpbmdTdGVwcywgaGFuZGxpbmcpOworICAgIHdoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQoZXZlbnQsIGhhbmRsaW5nKTsKKyAgICByZXR1cm4gaGFuZGxlZDsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnRJbnRlcm5hbChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4g
cHJvY2Vzc2luZ1N0ZXBzLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4mIGhhbmRsaW5nKQogewog
ICAgIGF1dG8qIGRvY3VtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1l
bnQpCkBAIC0yOTI1LDcgKzI5MzcsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBPcHRpb25TZXQ8VwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFlbGVtZW50LT5kaXNwYXRjaFdoZWVs
RXZlbnQoZXZlbnQpKSB7CisgICAgICAgIGF1dG8gaXNDYW5jZWxhYmxlID0gcHJvY2Vzc2luZ1N0
ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9j
a2luZ0RPTUV2ZW50RGlzcGF0Y2gpID8gRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzIDogRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm87CisgICAgICAgIGlmICghZWxlbWVudC0+ZGlzcGF0Y2hXaGVlbEV2
ZW50KGV2ZW50LCBoYW5kbGluZywgaXNDYW5jZWxhYmxlKSkgewogICAgICAgICAgICAgbV9pc0hh
bmRsaW5nV2hlZWxFdmVudCA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVBcmVh
ICYmIHNjcm9sbGFibGVBcmVhLT5zY3JvbGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZSgpKSB7CiAg
ICAgICAgICAgICAgICAgLy8gV2ViIGRldmVsb3BlciBpcyBjb250cm9sbGluZyBzY3JvbGxpbmcs
IHNvIGRvbid0IGF0dGVtcHQgdG8gbGF0Y2guCkBAIC0yOTU1LDYgKzI5NjgsNyBAQCBib29sIEV2
ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2
ZW50LCBPcHRpb25TZXQ8VwogICAgICAgICBoYW5kbGVkRXZlbnQgPSBwcm9jZXNzV2hlZWxFdmVu
dEZvclNjcm9sbGluZyhldmVudCwgc2Nyb2xsYWJsZUFyZWEpOwogICAgICAgICBwcm9jZXNzV2hl
ZWxFdmVudEZvclNjcm9sbFNuYXAoZXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKICAgICB9CisKICAg
ICByZXR1cm4gaGFuZGxlZEV2ZW50OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApp
bmRleCBlODU1ODg2NTY1NGY5MzQzODVkMjgwZWIzOWZmYTE4MzM0YThjZDhhLi45MGM3ODdiNjdl
MmYzZGMyOWQ0NTg4ZWViZjU4N2ZhOTM1MWRlOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmgKQEAgLTIwOCw4ICsyMDgsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaGFuZGxlTW91c2VN
b3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgSGl0VGVzdFJlc3VsdCogPSBudWxs
cHRyLCBib29sIG9ubHlVcGRhdGVTY3JvbGxiYXJzID0gZmFsc2UpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
Jik7CiAgICAgYm9vbCBoYW5kbGVNb3VzZUZvcmNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50Jik7CisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+
KTsKICAgICB2b2lkIGRlZmF1bHRXaGVlbEV2ZW50SGFuZGxlcihOb2RlKiwgV2hlZWxFdmVudCYp
OworICAgIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pOworCiAgICAgYm9vbCBo
YW5kbGVQYXN0ZUdsb2JhbFNlbGVjdGlvbihjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIAog
I2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRT
KQpAQCAtNDUyLDYgKzQ1NSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHBhc3NNb3VzZURvd25F
dmVudFRvV2lkZ2V0KFdpZGdldCopOwogCisgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50SW50ZXJu
YWwoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM+LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4mKTsKICAgICBib29sIHBhc3NXaGVl
bEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgV2lkZ2V0JiwgT3B0aW9u
U2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+KTsKICAgICB2b2lkIGRldGVybWluZVdoZWVs
RXZlbnRUYXJnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPEVsZW1lbnQ+JiBl
dmVudFRhcmdldCwgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mLCBib29sJiBpc092ZXJXaWRnZXQp
OwogICAgIHZvaWQgcmVjb3JkV2hlZWxFdmVudEZvckRlbHRhRmlsdGVyKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDQ3ZDAzMTA3ZjA0
YTI5NDhkZmU5NzgyYjMzMDA1OWE4OGQxYzUzMmEuLjA4YjNjMTBmY2ZlMTYyNzYyYWU0MjIwMTZi
NTIxZGFiNTFlODY0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTUxNDUsNyAr
NTE0NSw3IEBAIGJvb2wgRnJhbWVWaWV3Ojp3aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCkKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogICAgIGlmIChh
dXRvIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkg
ewogICAgICAgICBpZiAoc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmNvb3JkaW5hdGVzU2Nyb2xsaW5n
Rm9yRnJhbWVWaWV3KCp0aGlzKSkKLSAgICAgICAgICAgIHJldHVybiBzY3JvbGxpbmdDb29yZGlu
YXRvci0+aGFuZGxlV2hlZWxFdmVudCgqdGhpcywgd2hlZWxFdmVudCwgc2Nyb2xsaW5nTm9kZUlE
KCkpOworICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5wZXJmb3JtRGVm
YXVsdFdoZWVsRXZlbnRIYW5kbGluZyh3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQoKSk7CiAg
ICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxv
Y2tDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9s
bGVyLmNwcAppbmRleCBlYWRjZWUzNmU5NzNhMWRkM2JlNzY4N2U4OWQwN2I0Mzk0OWQyM2RkLi5j
ZjFhYzVkMGEyMzhiNDUzODE1ZWNkZGE4MjEyNzI3YTEyZDhlYTcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCkBAIC0xOTMsNyArMTkzLDggQEAg
dm9pZCBQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmRpc3BhdGNoTG9ja2VkV2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGUKICAgICBpZiAoIW1fZWxlbWVudCB8fCAhbV9lbGVtZW50
LT5kb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZWxlbWVudC0+
ZGlzcGF0Y2hXaGVlbEV2ZW50KGV2ZW50KTsKKyAgICBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4g
ZGVmYXVsdEhhbmRsaW5nOworICAgIG1fZWxlbWVudC0+ZGlzcGF0Y2hXaGVlbEV2ZW50KGV2ZW50
LCBkZWZhdWx0SGFuZGxpbmcpOwogfQogCiB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6Y2xl
YXJFbGVtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRl
c3RNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9y
LmNwcAppbmRleCAwZTFhYjRkYzk5ZDlmYWY5NzhmMTIxY2Y2ZjE1ZjNlMDZjN2RkODM4Li42Mzc3
MjAyODY2MTgxZjBjNmRkYmRlMmE3M2VjNzgzZjg0ODdjNzBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCkBAIC0xNzAsNiArMTcwLDcgQEAgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgV2hlZWxFdmVudFRlc3RNb25pdG9y
OjpEZWZlclJlYXNvbiByZWFzb24KICAgICBzd2l0Y2ggKHJlYXNvbikgewogICAgIGNhc2UgV2hl
ZWxFdmVudFRlc3RNb25pdG9yOjpIYW5kbGluZ1doZWVsRXZlbnQ6IHRzIDw8ICJoYW5kbGluZyB3
aGVlbCBldmVudCI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpIYW5k
bGluZ1doZWVsRXZlbnRPbk1haW5UaHJlYWQ6IHRzIDw8ICJoYW5kbGluZyB3aGVlbCBldmVudCBv
biBtYWluIHRocmVhZCI7IGJyZWFrOworICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpS
ZXBvcnRET01FdmVudEhhbmRsaW5nOiB0cyA8PCAicmVwb3J0IERPTSBldmVudCBoYW5kbGluZyI7
IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSdWJiZXJiYW5kSW5Qcm9n
cmVzczogdHMgPDwgInJ1YmJlcmJhbmRpbmciOyBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6U2Nyb2xsU25hcEluUHJvZ3Jlc3M6IHRzIDw8ICJzY3JvbGwtc25hcHBpbmci
OyBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsaW5nVGhyZWFk
U3luY05lZWRlZDogdHMgPDwgInNjcm9sbGluZyB0aHJlYWQgc3luYyBuZWVkZWQiOyBicmVhazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCmluZGV4IDAyNjEw
M2Y0ZWM4M2ViMjY4OWZhMmIzZWMxMjI1ZjA1MGFlNjM4ZWQuLjkyMDc3ZTlkNWZhYjBlZjlmZTI2
ZjA1NTI1NzM3MjhjMWM3Njc1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hl
ZWxFdmVudFRlc3RNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50
VGVzdE1vbml0b3IuaApAQCAtNTAsMTEgKzUwLDEyIEBAIHB1YmxpYzoKICAgICBlbnVtIERlZmVy
UmVhc29uIHsKICAgICAgICAgSGFuZGxpbmdXaGVlbEV2ZW50ICAgICAgICAgICAgICA9IDEgPDwg
MCwKICAgICAgICAgSGFuZGxpbmdXaGVlbEV2ZW50T25NYWluVGhyZWFkICA9IDEgPDwgMSwKLSAg
ICAgICAgUnViYmVyYmFuZEluUHJvZ3Jlc3MgICAgICAgICAgICA9IDEgPDwgMiwKLSAgICAgICAg
U2Nyb2xsU25hcEluUHJvZ3Jlc3MgICAgICAgICAgICA9IDEgPDwgMywKLSAgICAgICAgU2Nyb2xs
aW5nVGhyZWFkU3luY05lZWRlZCAgICAgICA9IDEgPDwgNCwKLSAgICAgICAgQ29udGVudFNjcm9s
bEluUHJvZ3Jlc3MgICAgICAgICA9IDEgPDwgNSwKLSAgICAgICAgUmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24gICAgICAgICA9IDEgPDwgNiwKKyAgICAgICAgUmVwb3J0RE9NRXZlbnRIYW5kbGluZyAg
ICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgUnViYmVyYmFuZEluUHJvZ3Jlc3MgICAgICAgICAg
ICA9IDEgPDwgMywKKyAgICAgICAgU2Nyb2xsU25hcEluUHJvZ3Jlc3MgICAgICAgICAgICA9IDEg
PDwgNCwKKyAgICAgICAgU2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCAgICAgICA9IDEgPDwgNSwK
KyAgICAgICAgQ29udGVudFNjcm9sbEluUHJvZ3Jlc3MgICAgICAgICA9IDEgPDwgNiwKKyAgICAg
ICAgUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24gICAgICAgICA9IDEgPDwgNywKICAgICB9OwogICAg
IHR5cGVkZWYgY29uc3Qgdm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KaW5kZXggYzU1NTI0NTcyMWU5ZmYy
MzBlZDViZGM5ZGQyMmU1ZjE0MGI4N2NmMi4uN2QxZDVhNGM3Y2VhNWE2N2I4ZjMxMjE4ODA2Njkw
ZTZkZWIyZWE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5k
bGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5t
bQpAQCAtMTA3LDcgKzEwNyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50KFdlYkV2
ZW50ICpldmVudCkKIAogICAgIEN1cnJlbnRFdmVudFNjb3BlIHNjb3BlKGV2ZW50KTsKIAotICAg
IGJvb2wgZXZlbnRXYXNIYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybUV2ZW50RmFj
dG9yeTo6Y3JlYXRlUGxhdGZvcm1XaGVlbEV2ZW50KGV2ZW50KSwgeyBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9KTsKKyAgICBib29sIGV2ZW50V2Fz
SGFuZGxlZCA9IGhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBs
YXRmb3JtV2hlZWxFdmVudChldmVudCksIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9KTsKICAgICBldmVudC53YXNIYW5kbGVkID0g
ZXZlbnRXYXNIYW5kbGVkOwogICAgIHJldHVybiBldmVudFdhc0hhbmRsZWQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggYWY3MzVlZTdhZWE2Nzgz
MDU0MjVjMzEzOGQ4NTAwYzZkOGVmNzM3MC4uZWEzNTc3ZWE0MThmNGUyOTQ4ZTE4Y2E5MTkxN2Nl
NjAyYzZlNjUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5k
bGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5t
bQpAQCAtNjMsNiArNjMsNyBAQAogI2ltcG9ydCAiU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyLmgi
CiAjaW1wb3J0ICJTY3JvbGxhYmxlQXJlYS5oIgogI2ltcG9ydCAiU2Nyb2xsYmFyLmgiCisjaW1w
b3J0ICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2ltcG9ydCAiU2V0dGluZ3MuaCIKICNpbXBv
cnQgIlNoYWRvd1Jvb3QuaCIKICNpbXBvcnQgIlNpbXBsZVJhbmdlLmgiCkBAIC0xNDYsNyArMTQ3
LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OndoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIEN1cnJlbnRFdmVudFNjb3BlIHNjb3BlKGV2ZW50LCBu
aWwpOwotICAgIHJldHVybiBoYW5kbGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5Ojpj
cmVhdGVQbGF0Zm9ybVdoZWVsRXZlbnQoZXZlbnQsIHBhZ2UtPmNocm9tZSgpLnBsYXRmb3JtUGFn
ZUNsaWVudCgpKSwgeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Ny
b2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnRE
aXNwYXRjaCB9KTsKKyAgICByZXR1cm4gaGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybUV2ZW50RmFj
dG9yeTo6Y3JlYXRlUGxhdGZvcm1XaGVlbEV2ZW50KGV2ZW50LCBwYWdlLT5jaHJvbWUoKS5wbGF0
Zm9ybVBhZ2VDbGllbnQoKSksIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJs
b2NraW5nRE9NRXZlbnREaXNwYXRjaCB9KTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OmtleUV2
ZW50KE5TRXZlbnQgKmV2ZW50KQpAQCAtOTUyLDYgKzk1MywyMyBAQCBib29sIEV2ZW50SGFuZGxl
cjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbAogICAgIHJldHVybiBkaWRIYW5kbGVFdmVudDsKIH0KIAordm9pZCBFdmVudEhhbmRs
ZXI6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZGVmYXVsdEhhbmRs
aW5nKQoreworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgaWYgKCFtX2ZyYW1lLnBh
Z2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS52
aWV3KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byBz
Y3JvbGxpbmdDb29yZGluYXRvciA9IG1fZnJhbWUucGFnZSgpLT5zY3JvbGxpbmdDb29yZGluYXRv
cigpKSB7CisgICAgICAgIGlmIChzY3JvbGxpbmdDb29yZGluYXRvci0+Y29vcmRpbmF0ZXNTY3Jv
bGxpbmdGb3JGcmFtZVZpZXcoKnZpZXcpKQorICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0
b3ItPndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZGVmYXVs
dEhhbmRsaW5nKTsKKyAgICB9CisjZW5kaWYKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OnBsYXRm
b3JtQ29tcGxldGVQbGF0Zm9ybVdpZGdldFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50LCBjb25zdCBXaWRnZXQmIHdpZGdldCwgY29uc3QgV2Vha1B0cjxTY3Jv
bGxhYmxlQXJlYT4mIHNjcm9sbGFibGVBcmVhKQogewogICAgIC8vIFdlYktpdDE6IFByZXZlbnQg
bXVsdGlwbGUgY29waWVzIG9mIHRoZSBzY3JvbGxXaGVlbCBldmVudCBmcm9tIGJlaW5nIHNlbnQg
dG8gdGhlIE5TU2Nyb2xsVmlldyB3aWRnZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCAyYzUzZWMwNTEyM2MyMzVh
MDBhNmZkN2QzMjAwNGFlNzYzZDMzOGViLi43Yjc0ZjhhOTA1MWUzNTk5YzRkYmY0MmJhZmMwODll
MWJlNDhmNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTEyNyw3ICsxMjcsOCBAQCBwdWJsaWM6CiAgICAgLy8g
VGhlc2UgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSB1bmlxdWUgdG8gdGhlIHRocmVh
ZGVkIHNjcm9sbGluZyBhcmNoaXRlY3R1cmUuIAogICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmVl
U3RhdGVJZk5lZWRlZCgpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRp
b25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmLCBjb25zdCBJbnRQb2ludCYsIFNjcm9sbFR5cGUgPSBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6
OkNsYW1wZWQpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVs
RXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9k
ZUlEKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRGVmYXVsdFdo
ZWVsRXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2Rl
SUQpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRXYXNQcm9j
ZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2
ZW50SGFuZGxpbmc+KSB7IH0KIAogICAgIC8vIENyZWF0ZSBhbiB1bnBhcmVudGVkIG5vZGUuCiAg
ICAgdmlydHVhbCBTY3JvbGxpbmdOb2RlSUQgY3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwg
U2Nyb2xsaW5nTm9kZUlEIG5ld05vZGVJRCkgeyByZXR1cm4gbmV3Tm9kZUlEOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IDBkYTcz
ZWNkMzk1ZjYxMTdiNDA4OGQ5MGQ1MWIxMDQwMzE3MDAxZTAuLjY5OWRmM2NlMGQ5NTAxNjc0MTI5
MDE4ZjQzNGExNjcyNDdjMTQ5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC03Myw2ICs3Myw5IEBAIE9wdGlvblNldDxXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJv
Y2Vzc2luCiAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8
ICJTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luZyAiIDw8IHdoZWVs
RXZlbnQgPDwgIiBoYXZlIGxhdGNoZWQgbm9kZSAiIDw8IGxhdGNoZWROb2RlQW5kU3RlcHMtPnNj
cm9sbGluZ05vZGVJRCA8PCAiIHN0ZXBzICIgPDwgbGF0Y2hlZE5vZGVBbmRTdGVwcy0+cHJvY2Vz
c2luZ1N0ZXBzKTsKICAgICAgICAgcmV0dXJuIGxhdGNoZWROb2RlQW5kU3RlcHMtPnByb2Nlc3Np
bmdTdGVwczsKICAgICB9CisgICAgCisgICAgaWYgKHdoZWVsRXZlbnQuaXNHZXN0dXJlQmVnaW4o
KSB8fCB3aGVlbEV2ZW50LmlzTm9uR2VzdHVyZUV2ZW50KCkpCisgICAgICAgIG1fdHJlZVN0YXRl
LnJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoID0gV1RGOjpudWxsb3B0OwogCiAgICAg
bV9sYXRjaGluZ0NvbnRyb2xsZXIucmVjZWl2ZWRXaGVlbEV2ZW50KHdoZWVsRXZlbnQsIG1fYWxs
b3dMYXRjaGluZyk7CiAKQEAgLTkzLDE2ICs5NiwyMCBAQCBPcHRpb25TZXQ8V2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwcz4gU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3Np
bgogICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJcblNj
cm9sbGluZ1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nOiB3aGVlbEV2ZW50ICIg
PDwgd2hlZWxFdmVudCA8PCAiIG1hcHBlZCB0byBjb250ZW50IHBvaW50ICIgPDwgcG9zaXRpb24g
PDwgIiwgaW4gbm9uLWZhc3QgcmVnaW9uICIgPDwgaXNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9u
KTsKIAogICAgICAgICAgICAgaWYgKGlzU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbikKLSAgICAg
ICAgICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFk
Rm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9N
RXZlbnREaXNwYXRjaCB9OworICAgICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggfTsKICAgICAgICAg
fQogCiAjaWYgRU5BQkxFKFdIRUVMX0VWRU5UX1JFR0lPTlMpCiAgICAgICAgIGF1dG8gZXZlbnRM
aXN0ZW5lclR5cGVzID0gZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQocG9zaXRpb24p
OwotICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJS
ZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpKQotICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICAgICAg
aWYgKGV2ZW50TGlzdGVuZXJUeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6
Tm9uUGFzc2l2ZVdoZWVsKSkgeworICAgICAgICAgICAgaWYgKG1fdHJlZVN0YXRlLnJlcXVpcmVz
U3luY2hyb25vdXNFdmVudERpc3BhdGNoICYmICEqbV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJv
bm91c0V2ZW50RGlzcGF0Y2gpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBz
OjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07CisKKyAgICAgICAg
ICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3Jv
bGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RP
TUV2ZW50RGlzcGF0Y2ggfTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChldmVudExpc3RlbmVy
VHlwZXMuY29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6OldoZWVsKSkKLSAgICAgICAg
ICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCwg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2gg
fTsKKyAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9s
bGluZ1RocmVhZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJs
b2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OwogI2VuZGlmCiAgICAgICAgIHJldHVybiB7IFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCB9OwogICAgIH0oKTsKQEAgLTE2
Myw3ICsxNzAsOCBAQCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbgogICAgICAgICByZXR1cm4gaGFu
ZGxlV2hlZWxFdmVudFdpdGhOb2RlKHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcywgbm9kZS5n
ZXQoKSk7CiAgICAgfSgpOwogCi0gICAgcmVzdWx0LnN0ZXBzLmFkZChwcm9jZXNzaW5nU3RlcHMg
JiBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRj
aCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwcz4gbWFpblRocmVhZFN0ZXBzID0geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWlu
VGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoLCBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07CisgICAgcmVz
dWx0LnN0ZXBzLmFkZChwcm9jZXNzaW5nU3RlcHMgJiBtYWluVGhyZWFkU3RlcHMpOwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKQEAgLTQ4Miw2ICs0OTAsMTIgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
OjpzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50IHBvc2l0aW9uKQogICAgIG1f
dHJlZVN0YXRlLm1haW5GcmFtZVNjcm9sbFBvc2l0aW9uID0gcG9zaXRpb247CiB9CiAKK3ZvaWQg
U2Nyb2xsaW5nVHJlZTo6c2V0R2VzdHVyZVJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNo
KGJvb2wgcmVxdWlyZXNTeW5jaHJvbm91c0Rpc3BhdGNoKQoreworICAgIExvY2tIb2xkZXIgbG9j
ayhtX3RyZWVTdGF0ZU11dGV4KTsKKyAgICBtX3RyZWVTdGF0ZS5yZXF1aXJlc1N5bmNocm9ub3Vz
RXZlbnREaXNwYXRjaCA9IHJlcXVpcmVzU3luY2hyb25vdXNEaXNwYXRjaDsKK30KKwogVHJhY2tp
bmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRv
bVN0cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCBwKQogewogICAgIExvY2tIb2xkZXIgbG9jayht
X3RyZWVTdGF0ZU11dGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaAppbmRleCAzZTc5ZmViNDliMTI1OTE5NmVjMWNhNjY0MDk3ODU1ZjkzNjRhZjgy
Li5mZDQ1MTU0OTkwZjM1NjQ1MWUzNTcxZGUyYWFjNmQ1YzI5MTNlNDcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC01OSw3ICs1OSw3IEBA
IHVzaW5nIFBsYXRmb3JtRGlzcGxheUlEID0gdWludDMyX3Q7CiBzdHJ1Y3QgV2hlZWxFdmVudEhh
bmRsaW5nUmVzdWx0IHsKICAgICBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4g
c3RlcHM7CiAgICAgYm9vbCB3YXNIYW5kbGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG5lZWRzTWFp
blRocmVhZFByb2Nlc3NpbmcoKSBjb25zdCB7IHJldHVybiBzdGVwcy5jb250YWluc0FueSh7IFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZl
bnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0pOyB9Cisg
ICAgYm9vbCBuZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkgY29uc3QgeyByZXR1cm4gc3RlcHMu
Y29udGFpbnNBbnkoeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Ny
b2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yTm9uQmxvY2tp
bmdET01FdmVudERpc3BhdGNoLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFk
Rm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH0pOyB9CiAKICAgICBzdGF0aWMgV2hlZWxFdmVu
dEhhbmRsaW5nUmVzdWx0IGhhbmRsZWQoT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM+IHN0ZXBzID0geyB9KQogICAgIHsKQEAgLTIzOCw2ICsyMzgsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgRmxvYXRQb2ludCBtYWluRnJhbWVTY3JvbGxQb3NpdGlvbigpIGNvbnN0OwogICAgIHZvaWQg
c2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2ludCk7CiAKKyAgICB2b2lkIHNldEdl
c3R1cmVSZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaChib29sKTsKKwogICAgIE9wdGlv
bmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKCk7CiAKICAgICB2b2lkIGFwcGx5
TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwpAQCAtMjc4LDYgKzI4MCw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIEZsb2F0UG9pbnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb247CiAgICAgICAgIFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCB7IDAgfTsKICAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+
IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQ7CisgICAgICAgIE9wdGlvbmFsPGJvb2w+IHJlcXVpcmVz
U3luY2hyb25vdXNFdmVudERpc3BhdGNoOwogICAgICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJ
RD4gbm9kZXNXaXRoQWN0aXZlUnViYmVyQmFuZGluZzsKICAgICAgICAgSGFzaFNldDxTY3JvbGxp
bmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2ZVNjcm9sbFNuYXA7CiAgICAgICAgIEhhc2hTZXQ8U2Ny
b2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVVc2VyU2Nyb2xsczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCmlu
ZGV4IDkzNzk0NTZlYWUxN2IwOTgyY2I1ZDUyZDk5NWZjYWRlZDU0YjdkNGQuLmY3ZWQxZWVmZDI4
MDExNjMyOWJhZDNmYWE5YjM2N2M5YzJlMGRjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtNjcsMTMg
KzY3LDIzIEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6
OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XCiBib29sIFRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCB0YXJnZXROb2RlSUQpCiB7CiAgICAg
TE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU6OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQgIiA8PCB3aGVlbEV2ZW50KTsKLSAg
ICBTZXRGb3JTY29wZTxib29sPiBkaXNhbGxvd0xhdGNoaW5nU2NvcGUobV9hbGxvd0xhdGNoaW5n
LCBmYWxzZSk7CiAKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVNdXRleCk7CisKKyAgICBT
ZXRGb3JTY29wZTxib29sPiBkaXNhbGxvd0xhdGNoaW5nU2NvcGUobV9hbGxvd0xhdGNoaW5nLCBm
YWxzZSk7CiAgICAgUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiB0YXJnZXROb2RlID0gbm9kZUZv
cklEKHRhcmdldE5vZGVJRCk7CiAgICAgYXV0byByZXN1bHQgPSBoYW5kbGVXaGVlbEV2ZW50V2l0
aE5vZGUod2hlZWxFdmVudCwgeyB9LCB0YXJnZXROb2RlLmdldCgpKTsKICAgICByZXR1cm4gcmVz
dWx0Lndhc0hhbmRsZWQ7CiB9CiAKK3ZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3aGVlbEV2
ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9w
dGlvblNldDxFdmVudEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQoreworICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3aGVlbEV2
ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkIC0gaGFuZGxpbmcgIiA8PCBldmVudEhhbmRsaW5n
KTsKKworICAgIGlmIChldmVudEhhbmRsaW5nLmNvbnRhaW5zKEV2ZW50SGFuZGxpbmc6OkRpc3Bh
dGNoZWRUb0RPTSkpCisgICAgICAgIHNldEdlc3R1cmVSZXF1aXJlc1N5bmNocm9ub3VzRXZlbnRE
aXNwYXRjaChldmVudEhhbmRsaW5nLmNvbnRhaW5zKEV2ZW50SGFuZGxpbmc6OkRlZmF1bHRQcmV2
ZW50ZWQpKTsKK30KKwogdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmludmFsaWRhdGUoKQog
ewogICAgIC8vIEludmFsaWRhdGUgaXMgZGlzcGF0Y2hlZCBieSB0aGUgU2Nyb2xsaW5nQ29vcmRp
bmF0b3IgY2xhc3Mgb24gdGhlIFNjcm9sbGluZ1RocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAppbmRleCA0ZjY4ZWJj
NTQzY2UzNDg1YzkzZTBmNmUwNjVmMThhMjIyZjg5MDc3Li41ZjBhNzU1NDQyZmI0YTFiMDI5NmI0
ZDViNWMwNDExMDRjM2Y0ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtNDgsNiArNDgsNyBAQCBwdWJsaWM6
CiAgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+KSBv
dmVycmlkZTsKIAogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIHZvaWQgd2hlZWxF
dmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBP
cHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXggYjIyYTc2YjA5MTRiYWQ2NjkxNGZkZmRk
MmNlNmQ1OTdlNTJmNjE1Ny4uZWU1NzU2NzdkMWIxMWRjMmM4ZmU0MDRhM2QyNDQ4ODE5MThhOWYw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKQEAgLTQxLDcgKzQxLDggQEAgcHVibGljOgogICAg
IHZvaWQgY29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKSBmaW5hbDsKIAogICAgIC8vIEhhbmRsZSB0
aGUgd2hlZWwgZXZlbnQgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQuIFJldHVybnMgd2hldGhlciB0
aGUgZXZlbnQgd2FzIGhhbmRsZWQgb3Igbm90LgotICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChG
cmFtZVZpZXcmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpIG92
ZXJyaWRlOworICAgIGJvb2wgcGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFuZGxpbmcoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlEKSBmaW5hbDsKKyAgICB2b2lkIHdo
ZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICB2b2lk
IHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0K
aW5kZXggYjQ5ZjEwYzlmY2MwZmFmYmQ5NThkNzJlMGEwZDY4ZGM1Mjc5YmYzZC4uNzU1MDZmMjEz
NjdhZDQ2YWRlYzkxZTFjNWM4NDgyMTc4ZjM1MmI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5t
bQpAQCAtNzMsNyArNzMsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpwYWdlRGVz
dHJveWVkKCkKICAgICB9KTsKIH0KIAotYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6aGFu
ZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQsIFNjcm9sbGluZ05vZGVJRCB0YXJnZXROb2RlKQorYm9vbCBTY3JvbGxpbmdDb29yZGlu
YXRvck1hYzo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFuZGxpbmcoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZSkKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3BhZ2UpOwpAQCAtOTMsNiAr
OTMsMjkgQEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudChG
cmFtZVZpZXcmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
c3RhdGljIHVpbnQ2NF90IG5leHREZWZlcklkZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50
NjRfdCBkZWZlcklkZW50aWZpZXI7CisgICAgcmV0dXJuICsrZGVmZXJJZGVudGlmaWVyOworfQor
Cit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlN
YWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0
PEV2ZW50SGFuZGxpbmc+IGRlZmF1bHRIYW5kbGluZykKK3sKKyAgICB1aW50NjRfdCBkZWZlcklk
ZW50aWZpZXIgPSAwOworICAgIGlmIChtX3BhZ2UgJiYgbV9wYWdlLT5pc01vbml0b3JpbmdXaGVl
bEV2ZW50cygpKSB7CisgICAgICAgIGRlZmVySWRlbnRpZmllciA9IG5leHREZWZlcklkZW50aWZp
ZXIoKTsKKyAgICAgICAgbV9wYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0b3IoKS0+ZGVmZXJGb3JS
ZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVB
cmVhSWRlbnRpZmllcj4oZGVmZXJJZGVudGlmaWVyKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpS
ZXBvcnRET01FdmVudEhhbmRsaW5nKTsKKyAgICB9CisKKyAgICBSZWZQdHI8VGhyZWFkZWRTY3Jv
bGxpbmdUcmVlPiB0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBkb3duY2FzdDxUaHJlYWRlZFNjcm9s
bGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSk7CisgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRj
aChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcsIGRl
ZmVySWRlbnRpZmllcl0geworICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZl
bnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZGVmYXVsdEhhbmRsaW5nKTsK
KworICAgICAgICBpZiAodGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5pc01vbml0b3JpbmdXaGVlbEV2
ZW50cygpKQorICAgICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5yZW1vdmVXaGVlbEV2
ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihkZWZlcklkZW50aWZp
ZXIpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcpOworICAg
IH0pOworfQorCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzY2hlZHVsZVRyZWVTdGF0
ZUNvbW1pdCgpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgb25lIG5lZWRzIHdvcmsuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDE4YTUyNTZj
ODNhN2YzOGUzYjdkMDg2MGNmYzc5NmY5YWNiZDk0ZjMuLjY0N2M3MjlmYzJlZDkyMjE4MTRiNzc0
ZTE0MmEwMjQ5MTZiY2Q1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTWFjLm1tCkBAIC03Nyw3ICs3Nyw3IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3Vs
dCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50
CiB7CiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCiAgICAgaWYgKGhhc1N5bmNocm9ub3Vz
U2Nyb2xsaW5nUmVhc29ucygpKQotICAgICAgICByZXR1cm4geyB7IFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0sIGZhbHNlIH07CisgICAgICAgIHJl
dHVybiB7IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGlu
ZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9N
RXZlbnREaXNwYXRjaCB9LCBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBpZiAoIWNhbkhhbmRsZVdo
ZWVsRXZlbnQod2hlZWxFdmVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50
LmgKaW5kZXggN2I5YjczYzlkOTMyZGNhNzFiNmM4NTkxZTIxZjZiZWJhNzhlYjg4MS4uZTZjYTky
ZTRmNzY1YzgyOTFlOTc4MWIwZGYyODcyZjJkOTUwZjdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtRXZlbnQuaApAQCAtMzAsNiArMzAsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitlbnVtIGNsYXNzIEV2ZW50SGFuZGxpbmcgOiB1aW50OF90IHsKKyAgICBEaXNwYXRj
aGVkVG9ET00gICAgID0gMSA8PCAwLAorICAgIERlZmF1bHRQcmV2ZW50ZWQgICAgPSAxIDw8IDEs
CisgICAgRGVmYXVsdEhhbmRsZWQgICAgICA9IDEgPDwgMiwKK307CisKIGNsYXNzIFBsYXRmb3Jt
RXZlbnQgewogcHVibGljOgogICAgIGVudW0gVHlwZSA6IHVpbnQ4X3QgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKaW5kZXggNDI2NjNiNzhhNDVl
ZGQ4OTlmNTA1MDAxZDYxNWFjOTZlZmM3MDcxNi4uZWMxNTJhM2U0ODg0Mzk0ZmRhNjU0MWViNDA1
OWMyMGI0MGYxODM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdo
ZWVsRXZlbnQuY3BwCkBAIC02NCw3ICs2NCwxOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzIHN0ZXBzKQogICAgIHN3aXRj
aCAoc3RlcHMpIHsKICAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGlu
Z1RocmVhZDogdHMgPDwgInNjcm9sbGluZyB0aHJlYWQiOyBicmVhazsKICAgICBjYXNlIFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmc6IHRzIDw8ICJtYWlu
IHRocmVhZCBzY3JvbGxpbmciOyBicmVhazsKLSAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoOiB0cyA8PCAibWFpbiB0aHJlYWQg
RE9NIGV2ZW50IGRpc3BhdGNoIjsgYnJlYWs7CisgICAgY2FzZSBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoOiB0cyA8PCAi
bWFpbiB0aHJlYWQgbm9uLWJsb2NraW5nIERPTSBldmVudCBkaXNwYXRjaCI7IGJyZWFrOworICAg
IGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9N
RXZlbnREaXNwYXRjaDogdHMgPDwgIm1haW4gdGhyZWFkIGJsb2NraW5nIERPTSBldmVudCBkaXNw
YXRjaCI7IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEV2ZW50SGFuZGxpbmcgc3RlcHMpCit7CisgICAgc3dp
dGNoIChzdGVwcykgeworICAgIGNhc2UgRXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NOiB0
cyA8PCAiZGlzcGF0Y2hlZCB0byBET00iOyBicmVhazsKKyAgICBjYXNlIEV2ZW50SGFuZGxpbmc6
OkRlZmF1bHRQcmV2ZW50ZWQ6IHRzIDw8ICJkZWZhdWx0IHByZXZlbnRlZCI7IGJyZWFrOworICAg
IGNhc2UgRXZlbnRIYW5kbGluZzo6RGVmYXVsdEhhbmRsZWQ6IHRzIDw8ICJkZWZhdWx0IGhhbmRs
ZWQiOyBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCAzZDU2OTNkODJlMDlmMzMwY2FmYjg5
ZjhiNWVlMjg3NjBiOTMyZmJhLi41ZDQ4NjRkNDU1YTAzNDE2MTg3Y2ExNmE2MjU3MjZhYmJjNGYz
N2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApA
QCAtMzcsOSArMzcsMTAgQEAgY2xhc3MgVGV4dFN0cmVhbTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogZW51bSBjbGFzcyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzIDogdWludDhfdCB7Ci0gICAg
U2Nyb2xsaW5nVGhyZWFkICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKLSAgICBNYWluVGhyZWFk
Rm9yU2Nyb2xsaW5nICAgICAgICAgID0gMSA8PCAxLAotICAgIE1haW5UaHJlYWRGb3JET01FdmVu
dERpc3BhdGNoICAgPSAxIDw8IDIsCisgICAgU2Nyb2xsaW5nVGhyZWFkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICBNYWluVGhyZWFkRm9yU2Nyb2xsaW5nICAgICAg
ICAgICAgICAgICAgICAgID0gMSA8PCAxLAorICAgIE1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RP
TUV2ZW50RGlzcGF0Y2ggICAgPSAxIDw8IDIsCisgICAgTWFpblRocmVhZEZvckJsb2NraW5nRE9N
RXZlbnREaXNwYXRjaCAgICAgICA9IDEgPDwgMywKIH07CiAKIC8vIFRoZSBTY3JvbGxCeVBpeGVs
V2hlZWxFdmVudCBpcyBhIGZpbmUtZ3JhaW5lZCBldmVudCB0aGF0IHNwZWNpZmllcyB0aGUgcHJl
Y2lzZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHNjcm9sbC4KQEAgLTI2NSw1ICsyNjYsNiBAQCBpbmxp
bmUgRmxvYXRQb2ludCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OnN3aXBlVmVsb2NpdHkoKSBjb25zdAog
CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwcyk7CitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RG
OjpUZXh0U3RyZWFtJiwgRXZlbnRIYW5kbGluZyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRl
eCBkYTUxOTU1YmIwMzhmOGJmNzcyOGRlYzU2MTZiZTYwZWZiYmVlYjIzLi45ZGY5MTRkNWRhYzU5
NTRiZjNjMmJjNWUwYmVjZmE2MTk1MzMzMTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xODAsNyArMTgwLDcgQEAgYm9vbCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byBwcm9jZXNz
aW5nU3RlcHMgPSBtX3Njcm9sbGluZ1RyZWUtPmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5n
KHdoZWVsRXZlbnQpOwotICAgIGlmIChwcm9jZXNzaW5nU3RlcHMuY29udGFpbnNBbnkoeyBXaGVl
bEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9KSkKKyAgICBp
ZiAocHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCwgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+d2lsbFdoZWVsRXZl
bnRTdGFydFN3aXBlR2VzdHVyZSh3aGVlbEV2ZW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDU0OWMwM2FkYzUy
MTk3Nzg4OTRkMjEzMzY2ZDdmY2VjY2I1ZWVkNTEuLjc1OThlY2ZiNGI3MjQ4ZTNkNjhmOTJlMzQ5
Y2EzMDI2ZWU5MDE0ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMTIxLDE0ICsxMjEsMTQgQEAgdm9pZCBFdmVu
dERpc3BhdGNoZXI6OndoZWVsRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJX
aGVlbEV2ZW50JiB3aGUKICAgICB9CiAjZW5kaWYKIAotICAgIGF1dG8gcHJvY2Vzc2luZ1N0ZXBz
ID0gT3B0aW9uU2V0PFdlYkNvcmU6OldoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHsgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICBhdXRv
IHByb2Nlc3NpbmdTdGVwcyA9IE9wdGlvblNldDxXZWJDb3JlOjpXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzPiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxp
bmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2
ZW50RGlzcGF0Y2ggfTsKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKICAgICBwcm9jZXNz
aW5nU3RlcHMgPSBbJl0oKSAtPiBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4g
ewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogCiAg
ICAgICAgIGF1dG8gc2Nyb2xsaW5nVHJlZSA9IG1fc2Nyb2xsaW5nVHJlZXMuZ2V0KHBhZ2VJRCk7
CiAgICAgICAgIGlmICghc2Nyb2xsaW5nVHJlZSkKLSAgICAgICAgICAgIHJldHVybiB7IFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH07CisgICAgICAg
ICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Ny
b2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdE
T01FdmVudERpc3BhdGNoIH07CiAgICAgICAgIAogICAgICAgICAvLyBGSVhNRTogSXQncyBwcmV0
dHkgaG9ycmlibGUgdGhhdCB3ZSdyZSB1cGRhdGluZyB0aGUgYmFjay9mb3J3YXJkIHN0YXRlIGhl
cmUuCiAgICAgICAgIC8vIFdlYkNvcmUgc2hvdWxkIGFsd2F5cyBrbm93IHRoZSBjdXJyZW50IHN0
YXRlIGFuZCBrbm93IHdoZW4gaXQgY2hhbmdlcyBzbyB0aGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MzYzZGEwNmJmOTMx
ODBmMjA4YWIxNTI3ZTU5OWM5N2YzMjAzZDA5Li4yOWI4ZjgzMmQ1MjliNjllODI4ZGJjN2NkZDk4
ZTcxN2MxOTZlZDU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTEtMTMgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSB0aGUgZmlyc3Qg
d2hlZWwgZXZlbnQgaW4gYSBnZXN0dXJlIHNob3VsZCBiZSBjYW5jZWxhYmxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3doZWVs
L2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3Np
dmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNl
bGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZl
bnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUuaHRt
bDogQWRkZWQuCisKIDIwMjAtMTEtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgRm9yY2Ugd2hlZWwgZXZlbnQgbGlzdGVuZXJzIG9uIHRoZSByb290
IHRvIGJlIHBhc3NpdmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVs
L2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMmZhNTlkY2MzMDM0MjZhYWVmNWZkYzNjNzRhNzA5N2RmNDUzZmFhMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdo
ZWVsLWV2ZW50LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Rz
IHByZXZlbnREZWZhdWx0IG9uIHRoZSBmaXJzdCBldmVudCByZXN1bHRzIGluIHRoZSByZXN0IG9m
IHRoZSBldmVudHMgYmVpbmcgY2FuY2VsYWJsZQorUEFTUyB3aW5kb3dTY3JvbGxFdmVudENvdW50
IGlzIDAKK1BBU1MgZmlyc3RXYXNDYW5jZWxhYmxlIGlzIHRydWUKK1BBU1MgZmlyc3RXYXNDYW5j
ZWxlZCBpcyB0cnVlCitQQVNTIHN1YnNlcXVlbnRXZXJlQ2FuY2VsYWJsZSBpcyB0cnVlCitQQVNT
IHN1YnNlcXVlbnRXZXJlQ2FuY2VsZWQgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZTAxZDg3NDZkN2E1Yjk5MWZmMzQ0NzNlOThlMDRmNjk2NGIxMmE2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwt
ZXZlbnQtY2FuY2VsYWJsZS5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAg
aGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICN0YXJnZXQgewor
ICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICAgIG1hcmdpbjog
MjBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIHZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBsZXQgd2hlZWxFdmVu
dENvdW50ID0gMDsKKyAgICAgICAgbGV0IHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgPSAwOworCisg
ICAgICAgIGxldCBmaXJzdFdhc0NhbmNlbGFibGU7CisgICAgICAgIGxldCBmaXJzdFdhc0NhbmNl
bGVkOworICAgICAgICBsZXQgc2Vjb25kV2FzQ2FuY2VsYWJsZTsKKyAgICAgICAgbGV0IHNlY29u
ZFdhc0NhbmNlbGVkOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RTY3JvbGwoKQorICAg
ICAgICB7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3VzZVdoZWVsU2Nyb2xsQXQoMTAw
LCAxMDApOworICAgICAgICAgICAgc2hvdWxkQmUoJ3dpbmRvd1Njcm9sbEV2ZW50Q291bnQnLCAn
MCcpOworCisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2ZpcnN0V2FzQ2FuY2VsYWJsZScpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdmaXJzdFdhc0NhbmNlbGVkJyk7CisKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgnc2Vjb25kV2FzQ2FuY2VsYWJsZScpOworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCdzZWNvbmRXYXNDYW5jZWxlZCcpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
JywgKCkgPT4geworICAgICAgICAgICAgZGVidWcoJ1Rlc3RzIHByZXZlbnREZWZhdWx0IG9uIHRo
ZSBmaXJzdCBldmVudCByZXN1bHRzIGluIHRoZSByZXN0IG9mIHRoZSBldmVudHMgYmVpbmcgY2Fu
Y2VsYWJsZScpCisgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RhcmdldCcpOworCisgICAgICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignd2hl
ZWwnLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoIXdoZWVsRXZlbnRDb3VudCkg
eworICAgICAgICAgICAgICAgICAgICBmaXJzdFdhc0NhbmNlbGFibGUgPSBldmVudC5jYW5jZWxh
YmxlOworICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAg
ICAgICAgICAgICAgICBmaXJzdFdhc0NhbmNlbGVkID0gZXZlbnQuZGVmYXVsdFByZXZlbnRlZDsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdoZWVsRXZlbnRDb3VudCA9PSAxKSB7CisgICAg
ICAgICAgICAgICAgICAgIHNlY29uZFdhc0NhbmNlbGFibGUgPSBldmVudC5jYW5jZWxhYmxlOwor
ICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAg
ICAgICAgICBzZWNvbmRXYXNDYW5jZWxlZCA9IGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQ7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrd2hlZWxFdmVudENvdW50OworICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwn
LCAoKSA9PiB7CisgICAgICAgICAgICAgICAgKyt3aW5kb3dTY3JvbGxFdmVudENvdW50OworICAg
ICAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RTY3JvbGws
IDApOworICAgICAgICB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50
LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kYzcxMjk3MWYzYTlkYjNiZmI5Yzc4ZDdmYTcwNWUxMjY0NjFiNWIxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFzc2l2
ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVz
dHMgdGhhdCB3aGVlbCBldmVudHMgaW4gdGhlIHBhc3NpdmUgcmVnaW9uIGFyZSBub24tY2FuY2Vs
YWJsZQorUEFTUyB3aW5kb3dTY3JvbGxFdmVudENvdW50ID4gMCBpcyB0cnVlCitQQVNTIHdhc0Nh
bmNlbGFibGUgaXMgZmFsc2UKK1BBU1Mgd2FzQ2FuY2VsZWQgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1u
b24tY2FuY2VsYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwt
ZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
OTE5MGUyYjA4NGQ4NmExM2RlZWVlMmE1MDUyZTQwMGU0ODYzZjUzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1y
ZWdpb24tbm9uLWNhbmNlbGFibGUuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAg
ICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAjdGFyZ2V0
IHsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgICAgICBtYXJn
aW46IDIwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgbGV0IGlzRmly
c3QgPSB0cnVlOworICAgICAgICBsZXQgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7CisgICAg
ICAgIGxldCB3YXNDYW5jZWxhYmxlOworICAgICAgICBsZXQgd2FzQ2FuY2VsZWQ7CisKKyAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgxMDAsIDEwMCk7CisgICAgICAgICAgICBz
aG91bGRCZVRydWUoJ3dpbmRvd1Njcm9sbEV2ZW50Q291bnQgPiAwJyk7CisKKyAgICAgICAgICAg
IHNob3VsZEJlRmFsc2UoJ3dhc0NhbmNlbGFibGUnKTsKKyAgICAgICAgICAgIHNob3VsZEJlRmFs
c2UoJ3dhc0NhbmNlbGVkJyk7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7Cisg
ICAgICAgICAgICBkZWJ1ZygnVGVzdHMgdGhhdCB3aGVlbCBldmVudHMgaW4gdGhlIHBhc3NpdmUg
cmVnaW9uIGFyZSBub24tY2FuY2VsYWJsZScpCisgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgICAgICAgICB0YXJnZXQuYWRk
RXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAo
aXNGaXJzdCkgeworICAgICAgICAgICAgICAgICAgICB3YXNDYW5jZWxhYmxlID0gZXZlbnQuY2Fu
Y2VsYWJsZTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgd2FzQ2FuY2VsZWQgPSBldmVudC5kZWZhdWx0UHJldmVudGVkOwor
ICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSwgeyBwYXNzaXZlOiB0cnVlIH0pOworCisg
ICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4geworICAg
ICAgICAgICAgICAgICsrd2luZG93U2Nyb2xsRXZlbnRDb3VudDsKKyAgICAgICAgICAgIH0sIGZh
bHNlKTsKKworICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0U2Nyb2xsLCAwKTsKKyAgICAgICAg
fSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0i
dGFyZ2V0Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93
aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1NGExMThkZWQ0YTVkNmQ3YWY2MDYwN2M3MDc0NTRm
NTRlY2I5MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVl
bC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKK1Rlc3RzIHRoYXQgZXZlbnRzIGluIHRoZSBnZXN0dXJlIGFyZSBub24tY2FuY2Vs
YWJsZSBpZiBwcmV2ZW50RGVmYXVsdCB3YXMgbm90IGNhbGxlZCBvbiB0aGUgZmlyc3QgZXZlbnQK
K1BBU1MgZmlyc3RXYXNDYW5jZWxhYmxlIGlzIHRydWUKK1BBU1MgYmVjYW1lTm9uQ2FuY2VsYWJs
ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZl
bnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM5NGNkYWFlMTc4YTM4ZTQ5M2NiNjcwYmU1OGM1YzI5MDE1ZjRlZGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5v
bi1jYW5jZWxhYmxlLmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWln
aHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgI3RhcmdldCB7CisgICAg
ICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMDBweDsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICAgIG1hcmdpbjogMjBw
eDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIHZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBsZXQgd2hlZWxFdmVudENv
dW50ID0gMDsKKworICAgICAgICBsZXQgZmlyc3RXYXNDYW5jZWxhYmxlOworICAgICAgICBsZXQg
YmVjYW1lTm9uQ2FuY2VsYWJsZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0U2Nyb2xs
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFldmVudFNlbmRlcikgeworICAgICAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAs
ICJiZWdhbiIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdV
cGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2Vk
IiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgp
OworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAibm9u
ZSIpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgMCwgImVuZGVkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIud2FpdEZvclNjcm9sbENvbXBsZXRpb24oKTsKKworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCdmaXJzdFdhc0NhbmNlbGFibGUnKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1
ZSgnYmVjYW1lTm9uQ2FuY2VsYWJsZScpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkg
PT4geworICAgICAgICAgICAgZGVidWcoJ1Rlc3RzIHRoYXQgZXZlbnRzIGluIHRoZSBnZXN0dXJl
IGFyZSBub24tY2FuY2VsYWJsZSBpZiBwcmV2ZW50RGVmYXVsdCB3YXMgbm90IGNhbGxlZCBvbiB0
aGUgZmlyc3QgZXZlbnQnKTsKKyAgICAgICAgICAgIGxldCB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3Rl
bmVyKCd3aGVlbCcsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGlmICh3aGVlbEV2ZW50
Q291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmaXJzdFdhc0NhbmNlbGFibGUgPSBl
dmVudC5jYW5jZWxhYmxlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIFdhaXQgZm9yIHRoZSBmaXJzdCBub24tY2FuY2VsYWJsZSBldmVudCBhbmQgY2hl
Y2sgdGhhdCBhbGwgc3Vic2VxdWVudCBldmVudHMgYXJlIG5vbi1jYW5jZWxhYmxlLgorICAgICAg
ICAgICAgICAgICAgICBpZiAoYmVjYW1lTm9uQ2FuY2VsYWJsZSAmJiBldmVudC5jYW5jZWxhYmxl
KQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnU2hvdWxkIG5vdCBzZWUgY2Fu
Y2VsYWJsZSBldmVudCBhZnRlciBub24tY2FuY2VsYWJsZSBldmVudCcpCisKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFldmVudC5jYW5jZWxhYmxlKQorICAgICAgICAgICAgICAgICAgICAgICAg
YmVjYW1lTm9uQ2FuY2VsYWJsZSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICsrd2hlZWxFdmVudENvdW50OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
IHNldFRpbWVvdXQodGVzdFNjcm9sbCwgMCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisgICAg
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="commit-queue"
          id="430901"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414116</attachid>
            <date>2020-11-13 19:37:09 -0800</date>
            <delta_ts>2020-11-13 19:49:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201113193708.patch</filename>
            <type>text/plain</type>
            <size>57816</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTUyMDljYzg2NjUwNmZj
MDFlZTQwZGJiYmQyM2ZjYmMyYjQ5YmQ2YS4uYTRiYzc2OGE1N2Y4M2UxYjYyYjdhMDcxOTJhMGNl
ZmFhNzU2MWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDIwLTExLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZp
cnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIGhhbmRsaW5nIGEgc2VxdWVuY2Ugb2Ygd2hlZWwgZXZl
bnRzIGluIGEgZ2VzdHVyZSBpbiBhIHJlZ2lvbiB3aXRoIG5vbi1wYXNzaXZlIHdoZWVsCisgICAg
ICAgIGV2ZW50IGhhbmRsZXJzLCBvbmx5IGFsbG93IHRoZSBmaXJzdCBldmVudCBpbiB0aGUgc2Vx
dWVuY2UgdG8gY2FsbCBwcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBzdWJzZXF1ZW50IGV2ZW50
cyBhcmUgbWFya2VkIGFzIG5vbi1jYW5jZWxhYmxlLCBzbyBwcmV2ZW50RGVmYXVsdCgpIHdpbGwg
aGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gZG8gYXN5bmMgc2Ny
b2xsaW5nIGV2ZW4gd2hpbGUgaW4gcmVnaW9ucyB3aXRoIGFjdGl2ZSB3aGVlbCBldmVudCBoYW5k
bGVycywKKyAgICAgICAgaWYgdGhvc2UgaGFuZGxlcnMgZG9uJ3QgY2FsbCBwcmV2ZW50RGVmYXVs
dCgpIG9uIHRoZSBmaXJzdCBldmVudC4gVGhpcyBtYXRjaGVzIEJsaW5rCisgICAgICAgIGJlaGF2
aW9yLgorCisgICAgICAgIFRvIGFjaGlldmUgdGhpcywgdHJhY2sgc29tZSBiaXRzIGluIEV2ZW50
SGFuZGxpbmcgdG8ga25vdyB3aGV0aGVyIHRoZSBldmVudCB3YXMgZGlzcGF0Y2hlZAorICAgICAg
ICB0byBzY3JpcHQsIGFuZCB3aGV0aGVyIGl0IHdhcyBjYW5jZWxlZC4gU2VuZCB0aGlzIGRhdGEg
YmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCB2aWEKKyAgICAgICAgd2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZCgpLCB3aGVyZSBpcyBzZXRzIGFuIE9wdGlvbmFsPGJvb2w+IG9u
IFNjcm9sbGluZ1RyZWUuIFRoaXMKKyAgICAgICAgZmxhZyBpcyBjb25zdWx0ZWQgYnkgU2Nyb2xs
aW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcoKSwgYW5kIGlmIHdlIGhhdmUg
cmVjZWl2ZWQKKyAgICAgICAgaXQsIGFuZCB0aGUgZXZlbnQgd2FzIG5vdCBjYW5jZWxlZCwgd2Ug
dXNlIE1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggd2hlbgorICAgICAg
ICBzZW5kaW5nIGV2ZW50cyB0byB0aGUgbWFpbiB0aHJlYWQuIFRoaXMgaXMgdXNlZCB0byBtYXJr
IHRoZSBldmVudCBhcyBub24tY2FuY2VsYWJsZSBpbgorICAgICAgICBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQoKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBhbm90aGVyIFJlcG9ydERP
TUV2ZW50SGFuZGxpbmcgYml0IHRvIFdoZWVsRXZlbnRUZXN0TW9uaXRvciB0byB0cmFjayB0aGUg
cHJvcGFnYXRpb24KKyAgICAgICAgb2YgRXZlbnRIYW5kbGluZyBzdGF0ZSBiYWNrIHRvIHRoZSBz
Y3JvbGxpbmcgdGhyZWFkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy93aGVlbC9maXJz
dC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRz
L3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9u
LWNhbmNlbGFibGUuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0Y2hXaGVlbEV2ZW50KToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5oOgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldoZWVsRXZlbnQ6OldoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5oOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVu
dFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpo
YW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3Ojp3aGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmRpc3BhdGNoTG9j
a2VkV2hlZWxFdmVudCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2
ZW50VGVzdE1vbml0b3IuaDoKKyAgICAgICAgKiBwYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndoZWVsRXZlbnQpOgorICAgICAgICAq
IHBhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndoZWVs
RXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29y
ZGluYXRvcjo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFuZGxpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5U
aHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhhbmRsZVdo
ZWVsRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxF
dmVudFByb2Nlc3NpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFuZGxl
V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJl
UmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2gpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdDo6bmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZyBjb25zdCk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQ
cm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjOjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpuZXh0RGVmZXJJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRm
b3JtL1BsYXRmb3JtRXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisKIDIwMjAtMTEtMTIgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yY2Ugd2hlZWwgZXZlbnQgbGlzdGVu
ZXJzIG9uIHRoZSByb290IHRvIGJlIHBhc3NpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjdiYTY2Yzg3MjUxMGU4
YTJmN2IxNjYwYmNkYTlkNTYzZjY0YzBhYy4uOWJiZGVlN2YwMjBiMThkNzc1YWI2OWE5NWY3ZmNm
MjA3ZjliYzhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0xMS0xMyAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBPbmx5IHRoZSBmaXJz
dCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUgc2hvdWxkIGJlIGNhbmNlbGFibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODc2NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzEyNDg5NDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiBoYW5kbGluZyBhIHNlcXVlbmNlIG9mIHdoZWVsIGV2ZW50
cyBpbiBhIGdlc3R1cmUgaW4gYSByZWdpb24gd2l0aCBub24tcGFzc2l2ZSB3aGVlbAorICAgICAg
ICBldmVudCBoYW5kbGVycywgb25seSBhbGxvdyB0aGUgZmlyc3QgZXZlbnQgaW4gdGhlIHNlcXVl
bmNlIHRvIGNhbGwgcHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgc3Vic2VxdWVudCBldmVudHMg
YXJlIG1hcmtlZCBhcyBub24tY2FuY2VsYWJsZSwgc28gcHJldmVudERlZmF1bHQoKSB3aWxsIGhh
dmUgbm8gZWZmZWN0LgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGRvIGFzeW5jIHNjcm9s
bGluZyBldmVuIHdoaWxlIGluIHJlZ2lvbnMgd2l0aCBhY3RpdmUgd2hlZWwgZXZlbnQgaGFuZGxl
cnMsCisgICAgICAgIGlmIHRob3NlIGhhbmRsZXJzIGRvbid0IGNhbGwgcHJldmVudERlZmF1bHQo
KSBvbiB0aGUgZmlyc3QgZXZlbnQuIFRoaXMgbWF0Y2hlcyBCbGluaworICAgICAgICBiZWhhdmlv
ci4KKworICAgICAgICBUbyBhY2hpZXZlIHRoaXMsIHRyYWNrIHNvbWUgYml0cyBpbiBFdmVudEhh
bmRsaW5nIHRvIGtub3cgd2hldGhlciB0aGUgZXZlbnQgd2FzIGRpc3BhdGNoZWQKKyAgICAgICAg
dG8gc2NyaXB0LCBhbmQgd2hldGhlciBpdCB3YXMgY2FuY2VsZWQuIFNlbmQgdGhpcyBkYXRhIGJh
Y2sgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQgdmlhCisgICAgICAgIHdoZWVsRXZlbnRXYXNQcm9j
ZXNzZWRCeU1haW5UaHJlYWQoKSwgd2hlcmUgaXMgc2V0cyBhbiBPcHRpb25hbDxib29sPiBvbiBT
Y3JvbGxpbmdUcmVlLiBUaGlzCisgICAgICAgIGZsYWcgaXMgY29uc3VsdGVkIGJ5IFNjcm9sbGlu
Z1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKCksIGFuZCBpZiB3ZSBoYXZlIHJl
Y2VpdmVkCisgICAgICAgIGl0LCBhbmQgdGhlIGV2ZW50IHdhcyBub3QgY2FuY2VsZWQsIHdlIHVz
ZSBNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIHdoZW4KKyAgICAgICAg
c2VuZGluZyBldmVudHMgdG8gdGhlIG1haW4gdGhyZWFkLiBUaGlzIGlzIHVzZWQgdG8gbWFyayB0
aGUgZXZlbnQgYXMgbm9uLWNhbmNlbGFibGUgaW4KKyAgICAgICAgRXZlbnRIYW5kbGVyOjpoYW5k
bGVXaGVlbEV2ZW50KCkuCisgICAgICAgIAorICAgICAgICBBZGQgYW5vdGhlciBSZXBvcnRET01F
dmVudEhhbmRsaW5nIGJpdCB0byBXaGVlbEV2ZW50VGVzdE1vbml0b3IgdG8gdHJhY2sgdGhlIHBy
b3BhZ2F0aW9uCisgICAgICAgIG9mIEV2ZW50SGFuZGxpbmcgc3RhdGUgYmFjayB0byB0aGUgc2Ny
b2xsaW5nIHRocmVhZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQpOgorCiAyMDIwLTExLTEyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIHdoZWVsIGV2ZW50
IGxpc3RlbmVycyBvbiB0aGUgcm9vdCB0byBiZSBwYXNzaXZlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggZjc3ZTU2NjBjOTg5YTY1MWM3YTkxMzg0ODhhNzFlMjJiYTk3MTM0Mi4uOTllYzVjYzMx
NjIxYjBhNWUwMDYwZmE1NmRkYTA0Y2FhYTljOTZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtNDIwLDkgKzQyMCw5IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QKICAgICByZXR1cm4gZGlk
Tm90U3dhbGxvd0V2ZW50OwogfQogCi1ib29sIEVsZW1lbnQ6OmRpc3BhdGNoV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHBsYXRmb3JtRXZlbnQpCitib29sIEVsZW1lbnQ6OmRp
c3BhdGNoV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHBsYXRmb3JtRXZlbnQs
IE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiYgcHJvY2Vzc2luZywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZSBpc0NhbmNlbGFibGUpCiB7Ci0gICAgYXV0byBldmVudCA9IFdoZWVsRXZlbnQ6OmNyZWF0ZShw
bGF0Zm9ybUV2ZW50LCBkb2N1bWVudCgpLndpbmRvd1Byb3h5KCkpOworICAgIGF1dG8gZXZlbnQg
PSBXaGVlbEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVudCwgZG9jdW1lbnQoKS53aW5kb3dQcm94
eSgpLCBpc0NhbmNlbGFibGUpOwogCiAgICAgLy8gRXZlbnRzIHdpdGggbm8gZGVsdGFzIGFyZSBp
bXBvcnRhbnQgYmVjYXVzZSB0aGV5IGNvbnZleSBwbGF0Zm9ybSBpbmZvcm1hdGlvbiBhYm91dCBz
Y3JvbGwgZ2VzdHVyZXMKICAgICAvLyBhbmQgbW9tZW50dW0gYmVnaW5uaW5nIG9yIGVuZGluZy4g
SG93ZXZlciwgdGhvc2UgZXZlbnRzIHNob3VsZCBub3QgYmUgc2VudCB0byB0aGUgRE9NIHNpbmNl
IHNvbWUKQEAgLTQzMCwxMiArNDMwLDIxIEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgcGxhdGZvcm1FdmVudCkKICAgICAvLyBldmVu
dCBoYW5kbGVyLCBhbmQgb3VyIHBsYXRmb3JtIGNvZGUgd2lsbCBjb3JyZWN0bHkgaGFuZGxlIHRo
ZSBwaGFzZSBjaGFuZ2VzLiBDYWxsaW5nIHN0b3BQcm9wYWdhdGlvbigpCiAgICAgLy8gd2lsbCBw
cmV2ZW50IHRoZSBldmVudCBmcm9tIGJlaW5nIHNlbnQgdG8gdGhlIERPTSwgYnV0IHdpbGwgc3Rp
bGwgY2FsbCB0aGUgZGVmYXVsdCBldmVudCBoYW5kbGVyLgogICAgIC8vIEZJWE1FOiBNb3ZlIHRo
aXMgbG9naWMgaW50byBXaGVlbEV2ZW50OjpjcmVhdGUuCi0gICAgaWYgKCFwbGF0Zm9ybUV2ZW50
LmRlbHRhWCgpICYmICFwbGF0Zm9ybUV2ZW50LmRlbHRhWSgpKQorICAgIGlmIChwbGF0Zm9ybUV2
ZW50LmRlbHRhKCkuaXNaZXJvKCkpCiAgICAgICAgIGV2ZW50LT5zdG9wUHJvcGFnYXRpb24oKTsK
KyAgICBlbHNlCisgICAgICAgIHByb2Nlc3NpbmcuYWRkKEV2ZW50SGFuZGxpbmc6OkRpc3BhdGNo
ZWRUb0RPTSk7CiAKICAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAKICAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkVsZW1lbnQgIiA8PCAqdGhpcyA8PCAiIGRp
c3BhdGNoV2hlZWxFdmVudDogZGVmYXVsdFByZXZlbnRlZCAiIDw8IGV2ZW50LT5kZWZhdWx0UHJl
dmVudGVkKCkgPDwgIiBkZWZhdWx0SGFuZGxlZCAiIDw8IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgp
KTsKKyAgICAKKyAgICBpZiAoZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSkKKyAgICAgICAgcHJv
Y2Vzc2luZy5hZGQoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCk7CisKKyAgICBpZiAo
ZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgIHByb2Nlc3NpbmcuYWRkKEV2ZW50SGFu
ZGxpbmc6OkRlZmF1bHRIYW5kbGVkKTsKKwogICAgIHJldHVybiAhZXZlbnQtPmRlZmF1bHRQcmV2
ZW50ZWQoKSAmJiAhZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CmluZGV4IDliYzdkMjBjOWRjY2Q3MWRiZjk0MzNkYTE1NDc0MjBlNmE3MWIzMzMuLmZjYjdjZWI2
MjViOTE0Mzk3OGNmYTc3ZmQzZmU4YTc4Y2Y0MWQ5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAt
NjYsNiArNjYsOCBAQCBzdHJ1Y3QgS2V5ZnJhbWVBbmltYXRpb25PcHRpb25zOwogc3RydWN0IFNj
cm9sbEludG9WaWV3T3B0aW9uczsKIHN0cnVjdCBTY3JvbGxUb09wdGlvbnM7CiAKK2VudW0gY2xh
c3MgRXZlbnRQcm9jZXNzaW5nIDogdWludDhfdDsKKwogI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05f
T0JTRVJWRVIpCiBzdHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOwogI2VuZGlmCkBAIC01
MzAsNyArNTMyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2F2ZWRMYXllclNjcm9sbFBvc2l0
aW9uKGNvbnN0IEludFBvaW50Jik7CiAKICAgICBib29sIGRpc3BhdGNoTW91c2VFdmVudChjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCBj
bGlja0NvdW50ID0gMCwgRWxlbWVudCogcmVsYXRlZFRhcmdldCA9IG51bGxwdHIpOwotICAgIGJv
b2wgZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOworICAgIGJv
b2wgZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNl
dDxFdmVudEhhbmRsaW5nPiYsIEV2ZW50OjpJc0NhbmNlbGFibGUgPSBFdmVudDo6SXNDYW5jZWxh
YmxlOjpZZXMpOwogICAgIGJvb2wgZGlzcGF0Y2hLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQmKTsKICAgICBib29sIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVy
bHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0aW9ucyA9IFNlbmROb0V2ZW50
cywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zID0gU2hvd1ByZXNzZWRMb29rKTsKICAgICB2
b2lkIGRpc3BhdGNoRm9jdXNJbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVm
UHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQu
Y3BwCmluZGV4IDZmNWQxNWZiMmQzYTQ5MDEwN2E3ZWI4Zjc3MWI5NWRjNDM0MjJmY2QuLjQ4ZWE1
YmQzMTRhNTIzMDM2NWIzMTdiNTg4MTA4YWQ2Nzc0MzI3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5jcHAKQEAgLTUwLDggKzUwLDggQEAgaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIpCiB7CiB9CiAK
LWlubGluZSBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3KQotICAgIDogTW91c2VFdmVudChldmVu
dE5hbWVzKCkud2hlZWxFdmVudCwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6WWVzLCBJ
c0NvbXBvc2VkOjpZZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGlt
ZSgpLCBXVEZNb3ZlKHZpZXcpLCAwLAoraW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcs
IElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50TmFtZXMo
KS53aGVlbEV2ZW50LCBDYW5CdWJibGU6OlllcywgaXNDYW5jZWxhYmxlLCBJc0NvbXBvc2VkOjpZ
ZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCBXVEZNb3Zl
KHZpZXcpLCAwLAogICAgICAgICBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlv
bigpICwgeyB9LCBldmVudC5tb2RpZmllcnMoKSwgMCwgMCwgbnVsbHB0ciwgMCwgMCwgSXNTaW11
bGF0ZWQ6Ok5vLCBJc1RydXN0ZWQ6OlllcykKICAgICAsIG1fd2hlZWxEZWx0YShldmVudC53aGVl
bFRpY2tzWCgpICogVGlja011bHRpcGxpZXIsIGV2ZW50LndoZWVsVGlja3NZKCkgKiBUaWNrTXVs
dGlwbGllcikKICAgICAsIG1fZGVsdGFYKC1ldmVudC5kZWx0YVgoKSkKQEAgLTYxLDkgKzYxLDkg
QEAgaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3gKIHsKIH0KIAotUmVmPFdoZWVsRXZlbnQ+IFdoZWVs
RXZlbnQ6OmNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2lu
ZG93UHJveHk+JiYgdmlldykKK1JlZjxXaGVlbEV2ZW50PiBXaGVlbEV2ZW50OjpjcmVhdGUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcs
IElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2hlZWxFdmVudChldmVudCwgV1RGTW92ZSh2aWV3KSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdoZWVsRXZlbnQoZXZlbnQsIFdURk1vdmUodmlldyksIGlzQ2FuY2VsYWJsZSkpOwogfQog
CiBSZWY8V2hlZWxFdmVudD4gV2hlZWxFdmVudDo6Y3JlYXRlRm9yQmluZGluZ3MoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmgKaW5kZXggY2ZkNTk3NzU0ZjVjYTAwZTg3MGRmMmYyNzQ0ODE3NTg2YThi
ZWFjNi4uNjI0NGEzMjIxYjZhMzA1NzRlNGY1NDA1MGY5ZmQ1MTg4Y2IwNzIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vV2hlZWxFdmVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgRE9NX0RF
TFRBX1BBR0UKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxXaGVlbEV2ZW50PiBjcmVhdGUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmKTsKKyAgICBzdGF0
aWMgUmVmPFdoZWVsRXZlbnQ+IGNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBSZWZQ
dHI8V2luZG93UHJveHk+JiYsIElzQ2FuY2VsYWJsZSA9IElzQ2FuY2VsYWJsZTo6WWVzKTsKICAg
ICBzdGF0aWMgUmVmPFdoZWVsRXZlbnQ+IGNyZWF0ZUZvckJpbmRpbmdzKCk7CiAKICAgICBzdHJ1
Y3QgSW5pdCA6IE1vdXNlRXZlbnRJbml0IHsKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBXaGVlbEV2ZW50KCk7CiAgICAgV2hlZWxFdmVudChjb25zdCBBdG9tU3RyaW5n
JiwgY29uc3QgSW5pdCYpOwotICAgIFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmKTsKKyAgICBXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgSXNDYW5jZWxhYmxlKTsKIAogICAg
IEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1YmU5ODA0NjI2MTNlMjFkM2IxMmU2ZTBlNTMz
ZDYxMDQ4OTlkMmYxLi44YTE0OTQxOTU5YmIzYmM3ODA4ZDFkNGQ0ZGE1YTY0YmZmYmJkYjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNzkzLDYgKzI3OTMsMTAgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgZXZlbnQKICAgICByZXR1cm4gZGlkSGFuZGxlRXZlbnQ7CiB9CiAK
K3ZvaWQgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikKK3sKK30K
KwogYm9vbCBFdmVudEhhbmRsZXI6OnBsYXRmb3JtQ29tcGxldGVQbGF0Zm9ybVdpZGdldFdoZWVs
RXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2lkZ2V0JiwgY29uc3QgV2Vh
a1B0cjxTY3JvbGxhYmxlQXJlYT4mKQogewogICAgIHJldHVybiB0cnVlOwpAQCAtMjg2Myw2ICsy
ODY3LDE0IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpjb21wbGV0ZVdpZGdldFdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgY29uCiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMpCit7CisgICAg
T3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGhhbmRsaW5nOworICAgIGJvb2wgaGFuZGxlZCA9IGhh
bmRsZVdoZWVsRXZlbnRJbnRlcm5hbChldmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCBoYW5kbGluZyk7
CisgICAgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChldmVudCwgaGFuZGxpbmcp
OworICAgIHJldHVybiBoYW5kbGVkOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hl
ZWxFdmVudEludGVybmFsKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIE9wdGlvblNl
dDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMsIE9wdGlvblNldDxF
dmVudEhhbmRsaW5nPiYgaGFuZGxpbmcpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBtX2ZyYW1l
LmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKQEAgLTI5MjUsNyArMjkzNyw4IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgZXZlbnQsIE9wdGlvblNldDxXCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAoIWVsZW1lbnQtPmRpc3BhdGNoV2hlZWxFdmVudChldmVudCkpIHsKKyAgICAgICAgYXV0
byBpc0NhbmNlbGFibGUgPSBwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCkgPyBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpZZXMgOiBFdmVudDo6SXNDYW5jZWxhYmxlOjpObzsKKyAgICAgICAg
aWYgKCFlbGVtZW50LT5kaXNwYXRjaFdoZWVsRXZlbnQoZXZlbnQsIGhhbmRsaW5nLCBpc0NhbmNl
bGFibGUpKSB7CiAgICAgICAgICAgICBtX2lzSGFuZGxpbmdXaGVlbEV2ZW50ID0gZmFsc2U7CiAg
ICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEgJiYgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFNo
b3VsZENsZWFyTGF0Y2hlZFN0YXRlKCkpIHsKICAgICAgICAgICAgICAgICAvLyBXZWIgZGV2ZWxv
cGVyIGlzIGNvbnRyb2xsaW5nIHNjcm9sbGluZywgc28gZG9uJ3QgYXR0ZW1wdCB0byBsYXRjaC4K
QEAgLTI5NTUsNiArMjk2OCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIE9wdGlvblNldDxXCiAgICAgICAgIGhh
bmRsZWRFdmVudCA9IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGV2ZW50LCBzY3JvbGxh
YmxlQXJlYSk7CiAgICAgICAgIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChldmVudCwg
c2Nyb2xsYWJsZUFyZWEpOwogICAgIH0KKwogICAgIHJldHVybiBoYW5kbGVkRXZlbnQ7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGU4NTU4ODY1NjU0ZjkzNDM4NWQyODBl
YjM5ZmZhMTgzMzRhOGNkOGEuLjkwYzc4N2I2N2UyZjNkYzI5ZDQ1ODhlZWJmNTg3ZmE5MzUxZGU5
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjA4LDggKzIwOCwxMSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBIaXRUZXN0UmVzdWx0KiA9IG51bGxwdHIsIGJvb2wgb25seVVwZGF0ZVNjcm9sbGJh
cnMgPSBmYWxzZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVNb3VzZVJlbGVhc2VF
dmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZU1vdXNlRm9y
Y2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKKwogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25T
ZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4pOwogICAgIHZvaWQgZGVmYXVsdFdoZWVsRXZl
bnRIYW5kbGVyKE5vZGUqLCBXaGVlbEV2ZW50Jik7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJv
Y2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxF
dmVudEhhbmRsaW5nPik7CisKICAgICBib29sIGhhbmRsZVBhc3RlR2xvYmFsU2VsZWN0aW9uKGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
IHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpCkBAIC00NTIsNiArNDU1LDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgcGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoV2lkZ2V0Kik7CiAKKyAg
ICBib29sIGhhbmRsZVdoZWVsRXZlbnRJbnRlcm5hbChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4sIE9wdGlvblNldDxFdmVudEhh
bmRsaW5nPiYpOwogICAgIGJvb2wgcGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmLCBXaWRnZXQmLCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
cz4pOwogICAgIHZvaWQgZGV0ZXJtaW5lV2hlZWxFdmVudFRhcmdldChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmLCBSZWZQdHI8RWxlbWVudD4mIGV2ZW50VGFyZ2V0LCBXZWFrUHRyPFNjcm9sbGFi
bGVBcmVhPiYsIGJvb2wmIGlzT3ZlcldpZGdldCk7CiAgICAgdm9pZCByZWNvcmRXaGVlbEV2ZW50
Rm9yRGVsdGFGaWx0ZXIoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggNDdkMDMxMDdmMDRhMjk0OGRmZTk3ODJiMzMwMDU5YTg4ZDFjNTMy
YS4uMDhiM2MxMGZjZmUxNjI3NjJhZTQyMjAxNmI1MjFkYWI1MWU4NjRkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtNTE0NSw3ICs1MTQ1LDcgQEAgYm9vbCBGcmFtZVZpZXc6Ondo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogI2lmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCiAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0
aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAgICAgIGlmIChzY3JvbGxpbmdDb29y
ZGluYXRvci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JGcmFtZVZpZXcoKnRoaXMpKQotICAgICAg
ICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5oYW5kbGVXaGVlbEV2ZW50KCp0aGlz
LCB3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQoKSk7CisgICAgICAgICAgICByZXR1cm4gc2Ny
b2xsaW5nQ29vcmRpbmF0b3ItPnBlcmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKHdoZWVs
RXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCmluZGV4IGVhZGNlZTM2ZTk3M2Ex
ZGQzYmU3Njg3ZTg5ZDA3YjQzOTQ5ZDIzZGQuLmNmMWFjNWQwYTIzOGI0NTM4MTVlY2RkYTgyMTI3
MjdhMTJkOGVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5jcHAKQEAgLTE5Myw3ICsxOTMsOCBAQCB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6
ZGlzcGF0Y2hMb2NrZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZQogICAg
IGlmICghbV9lbGVtZW50IHx8ICFtX2VsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9lbGVtZW50LT5kaXNwYXRjaFdoZWVsRXZlbnQoZXZlbnQpOwor
ICAgIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmc7CisgICAgbV9lbGVt
ZW50LT5kaXNwYXRjaFdoZWVsRXZlbnQoZXZlbnQsIGRlZmF1bHRIYW5kbGluZyk7CiB9CiAKIHZv
aWQgUG9pbnRlckxvY2tDb250cm9sbGVyOjpjbGVhckVsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCmluZGV4IDBlMWFiNGRjOTlkOWZhZjk3
OGYxMjFjZjZmMTVmM2UwNmM3ZGQ4MzguLjYzNzcyMDI4NjYxODFmMGM2ZGRiZGUyYTczZWM3ODNm
ODQ4N2M3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RN
b25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRv
ci5jcHAKQEAgLTE3MCw2ICsxNzAsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uIHJlYXNvbgogICAgIHN3
aXRjaCAocmVhc29uKSB7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5n
V2hlZWxFdmVudDogdHMgPDwgImhhbmRsaW5nIHdoZWVsIGV2ZW50IjsgYnJlYWs7CiAgICAgY2Fz
ZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZDog
dHMgPDwgImhhbmRsaW5nIHdoZWVsIGV2ZW50IG9uIG1haW4gdGhyZWFkIjsgYnJlYWs7CisgICAg
Y2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmc6IHRzIDw8
ICJyZXBvcnQgRE9NIGV2ZW50IGhhbmRsaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OlJ1YmJlcmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7
IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9n
cmVzczogdHMgPDwgInNjcm9sbC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5n
IHRocmVhZCBzeW5jIG5lZWRlZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxF
dmVudFRlc3RNb25pdG9yLmgKaW5kZXggMDI2MTAzZjRlYzgzZWIyNjg5ZmEyYjNlYzEyMjVmMDUw
YWU2MzhlZC4uOTIwNzdlOWQ1ZmFiMGVmOWZlMjZmMDU1MjU3MzcyOGMxYzc2NzVjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC01MCwxMSArNTAs
MTIgQEAgcHVibGljOgogICAgIGVudW0gRGVmZXJSZWFzb24gewogICAgICAgICBIYW5kbGluZ1do
ZWVsRXZlbnQgICAgICAgICAgICAgID0gMSA8PCAwLAogICAgICAgICBIYW5kbGluZ1doZWVsRXZl
bnRPbk1haW5UaHJlYWQgID0gMSA8PCAxLAotICAgICAgICBSdWJiZXJiYW5kSW5Qcm9ncmVzcyAg
ICAgICAgICAgID0gMSA8PCAyLAotICAgICAgICBTY3JvbGxTbmFwSW5Qcm9ncmVzcyAgICAgICAg
ICAgID0gMSA8PCAzLAotICAgICAgICBTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkICAgICAgID0g
MSA8PCA0LAotICAgICAgICBDb250ZW50U2Nyb2xsSW5Qcm9ncmVzcyAgICAgICAgID0gMSA8PCA1
LAotICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiAgICAgICAgID0gMSA8PCA2LAorICAg
ICAgICBSZXBvcnRET01FdmVudEhhbmRsaW5nICAgICAgICAgID0gMSA8PCAyLAorICAgICAgICBS
dWJiZXJiYW5kSW5Qcm9ncmVzcyAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICBTY3JvbGxT
bmFwSW5Qcm9ncmVzcyAgICAgICAgICAgID0gMSA8PCA0LAorICAgICAgICBTY3JvbGxpbmdUaHJl
YWRTeW5jTmVlZGVkICAgICAgID0gMSA8PCA1LAorICAgICAgICBDb250ZW50U2Nyb2xsSW5Qcm9n
cmVzcyAgICAgICAgID0gMSA8PCA2LAorICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiAg
ICAgICAgID0gMSA8PCA3LAogICAgIH07CiAgICAgdHlwZWRlZiBjb25zdCB2b2lkKiBTY3JvbGxh
YmxlQXJlYUlkZW50aWZpZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxl
cklPUy5tbQppbmRleCBjNTU1MjQ1NzIxZTlmZjIzMGVkNWJkYzlkZDIyZTVmMTQwYjg3Y2YyLi43
ZDFkNWE0YzdjZWE1YTY3YjhmMzEyMTg4MDY2OTBlNmRlYjJlYTZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC0xMDcsNyArMTA3LDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OndoZWVsRXZlbnQoV2ViRXZlbnQgKmV2ZW50KQogCiAgICAgQ3VycmVudEV2
ZW50U2NvcGUgc2NvcGUoZXZlbnQpOwogCi0gICAgYm9vbCBldmVudFdhc0hhbmRsZWQgPSBoYW5k
bGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZl
bnQoZXZlbnQpLCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3Jv
bGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERp
c3BhdGNoIH0pOworICAgIGJvb2wgZXZlbnRXYXNIYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudChQ
bGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1XaGVlbEV2ZW50KGV2ZW50KSwgeyBX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNo
IH0pOwogICAgIGV2ZW50Lndhc0hhbmRsZWQgPSBldmVudFdhc0hhbmRsZWQ7CiAgICAgcmV0dXJu
IGV2ZW50V2FzSGFuZGxlZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbQppbmRleCBhZjczNWVlN2FlYTY3ODMwNTQyNWMzMTM4ZDg1MDBjNmQ4ZWY3MzcwLi5l
YTM1NzdlYTQxOGY0ZTI5NDhlMThjYTkxOTE3Y2U2MDJjNmU2NTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Myw2ICs2Myw3IEBACiAjaW1wb3J0
ICJTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlNjcm9sbGFibGVBcmVhLmgi
CiAjaW1wb3J0ICJTY3JvbGxiYXIuaCIKKyNpbXBvcnQgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgi
CiAjaW1wb3J0ICJTZXR0aW5ncy5oIgogI2ltcG9ydCAiU2hhZG93Um9vdC5oIgogI2ltcG9ydCAi
U2ltcGxlUmFuZ2UuaCIKQEAgLTE0Niw3ICsxNDcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2hl
ZWxFdmVudChOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQ3Vy
cmVudEV2ZW50U2NvcGUgc2NvcGUoZXZlbnQsIG5pbCk7Ci0gICAgcmV0dXJuIGhhbmRsZVdoZWVs
RXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtV2hlZWxFdmVudChldmVu
dCwgcGFnZS0+Y2hyb21lKCkucGxhdGZvcm1QYWdlQ2xpZW50KCkpLCB7IFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0pOworICAgIHJldHVybiBoYW5k
bGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZl
bnQoZXZlbnQsIHBhZ2UtPmNocm9tZSgpLnBsYXRmb3JtUGFnZUNsaWVudCgpKSwgeyBXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJv
Y2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH0pOwog
fQogCiBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC05NTIs
NiArOTUzLDIzIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9s
bGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsCiAgICAgcmV0dXJuIGRpZEhhbmRs
ZUV2ZW50OwogfQogCit2b2lkIEV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5
TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNl
dDxFdmVudEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmcpCit7CisjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKKyAgICBpZiAoIW1fZnJhbWUucGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChhdXRvIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9mcmFt
ZS5wYWdlKCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKKyAgICAgICAgaWYgKHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldygqdmlldykpCisg
ICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5
TWFpblRocmVhZCh3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcpOworICAgIH0KKyNlbmRpZgor
fQorCiBib29sIEV2ZW50SGFuZGxlcjo6cGxhdGZvcm1Db21wbGV0ZVBsYXRmb3JtV2lkZ2V0V2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIGNvbnN0IFdpZGdl
dCYgd2lkZ2V0LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYgc2Nyb2xsYWJsZUFyZWEp
CiB7CiAgICAgLy8gV2ViS2l0MTogUHJldmVudCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNjcm9s
bFdoZWVsIGV2ZW50IGZyb20gYmVpbmcgc2VudCB0byB0aGUgTlNTY3JvbGxWaWV3IHdpZGdldC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IDJjNTNlYzA1MTIzYzIzNWEwMGE2ZmQ3ZDMyMDA0YWU3NjNkMzM4ZWIuLjdi
NzRmOGE5MDUxZTM1OTljNGRiZjQyYmFmYzA4OWUxYmU0OGY0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTI3
LDcgKzEyNyw4IEBAIHB1YmxpYzoKICAgICAvLyBUaGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUg
Y3VycmVudGx5IHVuaXF1ZSB0byB0aGUgdGhyZWFkZWQgc2Nyb2xsaW5nIGFyY2hpdGVjdHVyZS4g
CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVkKCkgeyB9CiAgICAgdmly
dHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNv
bnN0IEludFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Ny
b2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBib29sIHBlcmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pIHsgfQogCiAgICAgLy8g
Q3JlYXRlIGFuIHVucGFyZW50ZWQgbm9kZS4KICAgICB2aXJ0dWFsIFNjcm9sbGluZ05vZGVJRCBj
cmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbmV3Tm9kZUlEKSB7
IHJldHVybiBuZXdOb2RlSUQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMGRhNzNlY2QzOTVmNjExN2I0MDg4ZDkwZDUxYjEwNDAz
MTcwMDFlMC4uNjk5ZGYzY2UwZDk1MDE2NzQxMjkwMThmNDM0YTE2NzI0N2MxNDljZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTcz
LDYgKzczLDkgQEAgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IFNjcm9sbGlu
Z1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW4KICAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmRldGVybWluZVdo
ZWVsRXZlbnRQcm9jZXNzaW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIGhhdmUgbGF0Y2hlZCBub2Rl
ICIgPDwgbGF0Y2hlZE5vZGVBbmRTdGVwcy0+c2Nyb2xsaW5nTm9kZUlEIDw8ICIgc3RlcHMgIiA8
PCBsYXRjaGVkTm9kZUFuZFN0ZXBzLT5wcm9jZXNzaW5nU3RlcHMpOwogICAgICAgICByZXR1cm4g
bGF0Y2hlZE5vZGVBbmRTdGVwcy0+cHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0KKyAgICAKKyAgICBp
ZiAod2hlZWxFdmVudC5pc0dlc3R1cmVCZWdpbigpIHx8IHdoZWVsRXZlbnQuaXNOb25HZXN0dXJl
RXZlbnQoKSkKKyAgICAgICAgbV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlz
cGF0Y2ggPSBXVEY6Om51bGxvcHQ7CiAKICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZl
ZFdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5nKTsKIApAQCAtOTMsMTYgKzk2
LDIwIEBAIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVl
OjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luCiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJF
QU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlxuU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxF
dmVudFByb2Nlc3Npbmc6IHdoZWVsRXZlbnQgIiA8PCB3aGVlbEV2ZW50IDw8ICIgbWFwcGVkIHRv
IGNvbnRlbnQgcG9pbnQgIiA8PCBwb3NpdGlvbiA8PCAiLCBpbiBub24tZmFzdCByZWdpb24gIiA8
PCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pOwogCiAgICAgICAgICAgICBpZiAoaXNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uKQotICAgICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZl
bnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH07CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNj
cm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5n
RE9NRXZlbnREaXNwYXRjaCB9OwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRf
UkVHSU9OUykKICAgICAgICAgYXV0byBldmVudExpc3RlbmVyVHlwZXMgPSBldmVudExpc3RlbmVy
UmVnaW9uVHlwZXNGb3JQb2ludChwb3NpdGlvbik7Ci0gICAgICAgIGlmIChldmVudExpc3RlbmVy
VHlwZXMuY29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCkp
Ci0gICAgICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhy
ZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9y
RE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRh
aW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpKSB7CisgICAgICAg
ICAgICBpZiAobV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2ggJiYg
ISptX3RyZWVTdGF0ZS5yZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCkKKyAgICAgICAg
ICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJl
YWQsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RP
TUV2ZW50RGlzcGF0Y2ggfTsKKworICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICB9
CiAKICAgICAgICAgaWYgKGV2ZW50TGlzdGVuZXJUeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVy
UmVnaW9uVHlwZTo6V2hlZWwpKQotICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpN
YWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICAgICAgcmV0dXJuIHsgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07CiAj
ZW5kaWYKICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xs
aW5nVGhyZWFkIH07CiAgICAgfSgpOwpAQCAtMTYzLDcgKzE3MCw4IEBAIFdoZWVsRXZlbnRIYW5k
bGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVuCiAgICAgICAgIHJldHVybiBoYW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUod2hlZWxF
dmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCBub2RlLmdldCgpKTsKICAgICB9KCk7CiAKLSAgICByZXN1
bHQuc3RlcHMuYWRkKHByb2Nlc3NpbmdTdGVwcyAmIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoKTsKKyAgICBzdGF0aWMgY29uc3RleHByIE9w
dGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBtYWluVGhyZWFkU3RlcHMgPSB7IFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50
RGlzcGF0Y2gsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2lu
Z0RPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICByZXN1bHQuc3RlcHMuYWRkKHByb2Nlc3NpbmdTdGVw
cyAmIG1haW5UaHJlYWRTdGVwcyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNDgyLDYg
KzQ5MCwxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9u
KEZsb2F0UG9pbnQgcG9zaXRpb24pCiAgICAgbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24gPSBwb3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJlUmVx
dWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2goYm9vbCByZXF1aXJlc1N5bmNocm9ub3VzRGlz
cGF0Y2gpCit7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOworICAgIG1f
dHJlZVN0YXRlLnJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoID0gcmVxdWlyZXNTeW5j
aHJvbm91c0Rpc3BhdGNoOworfQorCiBUcmFja2luZ1R5cGUgU2Nyb2xsaW5nVHJlZTo6ZXZlbnRU
cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50
IHApCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDNlNzlmZWI0OWIx
MjU5MTk2ZWMxY2E2NjQwOTc4NTVmOTM2NGFmODIuLmZkNDUxNTQ5OTBmMzU2NDUxZTM1NzFkZTJh
YWM2ZDVjMjkxM2U0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmgKQEAgLTU5LDcgKzU5LDcgQEAgdXNpbmcgUGxhdGZvcm1EaXNwbGF5SUQgPSB1
aW50MzJfdDsKIHN0cnVjdCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgewogICAgIE9wdGlvblNl
dDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBzdGVwczsKICAgICBib29sIHdhc0hhbmRsZWQg
eyBmYWxzZSB9OwotICAgIGJvb2wgbmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZygpIGNvbnN0IHsg
cmV0dXJuIHN0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7IH0KKyAgICBib29sIG5lZWRzTWFpblRocmVhZFByb2Nl
c3NpbmcoKSBjb25zdCB7IHJldHVybiBzdGVwcy5jb250YWluc0FueSh7IFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gsIFdoZWVsRXZl
bnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gg
fSk7IH0KIAogICAgIHN0YXRpYyBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlZChPcHRp
b25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gc3RlcHMgPSB7IH0pCiAgICAgewpAQCAt
MjM4LDYgKzIzOCw4IEBAIHByb3RlY3RlZDoKICAgICBGbG9hdFBvaW50IG1haW5GcmFtZVNjcm9s
bFBvc2l0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihG
bG9hdFBvaW50KTsKIAorICAgIHZvaWQgc2V0R2VzdHVyZVJlcXVpcmVzU3luY2hyb25vdXNFdmVu
dERpc3BhdGNoKGJvb2wpOworCiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQ
ZXJTZWNvbmQoKTsKIAogICAgIHZvaWQgYXBwbHlMYXllclBvc2l0aW9uc0ludGVybmFsKCk7CkBA
IC0yNzgsNiArMjgwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgRmxvYXRQb2ludCBtYWluRnJhbWVT
Y3JvbGxQb3NpdGlvbjsKICAgICAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEIHsgMCB9
OwogICAgICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZDsKKyAg
ICAgICAgT3B0aW9uYWw8Ym9vbD4gcmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2g7CiAg
ICAgICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVSdWJiZXJCYW5k
aW5nOwogICAgICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlU2Ny
b2xsU25hcDsKICAgICAgICAgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2
ZVVzZXJTY3JvbGxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggOTM3OTQ1NmVhZTE3YjA5ODJjYjVkNTJk
OTk1ZmNhZGVkNTRiN2Q0ZC4uZjdlZDFlZWZkMjgwMTE2MzI5YmFkM2ZhYTliMzY3YzljMmUwZGM0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC02NywxMyArNjcsMjMgQEAgV2hlZWxFdmVudEhhbmRsaW5n
UmVzdWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVcKIGJvb2wgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJN
YWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5n
Tm9kZUlEIHRhcmdldE5vZGVJRCkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFp
blRocmVhZCAiIDw8IHdoZWVsRXZlbnQpOwotICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93
TGF0Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGZhbHNlKTsKIAorICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fdHJlZU11dGV4KTsKKworICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93TGF0
Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGZhbHNlKTsKICAgICBSZWZQdHI8U2Nyb2xsaW5n
VHJlZU5vZGU+IHRhcmdldE5vZGUgPSBub2RlRm9ySUQodGFyZ2V0Tm9kZUlEKTsKICAgICBhdXRv
IHJlc3VsdCA9IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVlbEV2ZW50LCB7IH0sIHRhcmdl
dE5vZGUuZ2V0KCkpOwogICAgIHJldHVybiByZXN1bHQud2FzSGFuZGxlZDsKIH0KIAordm9pZCBU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50
SGFuZGxpbmcpCit7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQg
LSBoYW5kbGluZyAiIDw8IGV2ZW50SGFuZGxpbmcpOworCisgICAgaWYgKGV2ZW50SGFuZGxpbmcu
Y29udGFpbnMoRXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NKSkKKyAgICAgICAgc2V0R2Vz
dHVyZVJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoKGV2ZW50SGFuZGxpbmcuY29udGFp
bnMoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCkpOworfQorCiB2b2lkIFRocmVhZGVk
U2Nyb2xsaW5nVHJlZTo6aW52YWxpZGF0ZSgpCiB7CiAgICAgLy8gSW52YWxpZGF0ZSBpcyBkaXNw
YXRjaGVkIGJ5IHRoZSBTY3JvbGxpbmdDb29yZGluYXRvciBjbGFzcyBvbiB0aGUgU2Nyb2xsaW5n
VGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oCmluZGV4IDRmNjhlYmM1NDNjZTM0ODVjOTNlMGY2ZTA2NWYxOGEyMjJm
ODkwNzcuLjVmMGE3NTU0NDJmYjRhMWIwMjk2YjRkNWI1YzA0MTEwNGMzZjRlYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1
bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYW5kbGVX
aGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9s
bGluZ05vZGVJRCk7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFk
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAK
ICAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApp
bmRleCBiMjJhNzZiMDkxNGJhZDY2OTE0ZmRmZGQyY2U2ZDU5N2U1MmY2MTU3Li5lZTU3NTY3N2Qx
YjExZGMyYzhmZTQwNGEzZDI0NDg4MTkxOGE5ZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApA
QCAtNDEsNyArNDEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRl
ZCgpIGZpbmFsOwogCiAgICAgLy8gSGFuZGxlIHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Nyb2xs
aW5nIHRocmVhZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZCBvciBub3Qu
Ci0gICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBwZXJmb3JtRGVm
YXVsdFdoZWVsRXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxp
bmdOb2RlSUQpIGZpbmFsOworICAgIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4p
IGZpbmFsOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRleCBiNDlmMTBjOWZjYzBmYWZiZDk1OGQ3
MmUwYTBkNjhkYzUyNzliZjNkLi43NTUwNmYyMTM2N2FkNDZhZGVjOTFlMWM1Yzg0ODIxNzhmMzUy
YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OnBhZ2VEZXN0cm95ZWQoKQogICAgIH0pOwogfQogCi1ib29s
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdl
dE5vZGUpCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpwZXJmb3JtRGVmYXVsdFdoZWVs
RXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9s
bGluZ05vZGVJRCB0YXJnZXROb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fcGFnZSk7CkBAIC05Myw2ICs5MywyOSBAQCBib29sIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdgogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdWludDY0X3QgbmV4dERlZmVySWRl
bnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGRlZmVySWRlbnRpZmllcjsKKyAgICBy
ZXR1cm4gKytkZWZlcklkZW50aWZpZXI7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZGVmYXVsdEhhbmRs
aW5nKQoreworICAgIHVpbnQ2NF90IGRlZmVySWRlbnRpZmllciA9IDA7CisgICAgaWYgKG1fcGFn
ZSAmJiBtX3BhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpIHsKKyAgICAgICAgZGVmZXJJ
ZGVudGlmaWVyID0gbmV4dERlZmVySWRlbnRpZmllcigpOworICAgICAgICBtX3BhZ2UtPndoZWVs
RXZlbnRUZXN0TW9uaXRvcigpLT5kZWZlckZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihkZWZlcklkZW50aWZp
ZXIpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcpOworICAg
IH0KKworICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5n
VHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsK
KyAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdo
ZWVsRXZlbnQsIGRlZmF1bHRIYW5kbGluZywgZGVmZXJJZGVudGlmaWVyXSB7CisgICAgICAgIHRo
cmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3
aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcpOworCisgICAgICAgIGlmICh0aHJlYWRlZFNjcm9s
bGluZ1RyZWUtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCisgICAgICAgICAgICB0aHJlYWRl
ZFNjcm9sbGluZ1RyZWUtPnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9y
UmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXI+KGRlZmVySWRlbnRpZmllciksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6
UmVwb3J0RE9NRXZlbnRIYW5kbGluZyk7CisgICAgfSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWM6OnNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkKIHsKICAgICAvLyBGSVhNRTog
VGhpcyBvbmUgbmVlZHMgd29yay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWMubW0KaW5kZXggMThhNTI1NmM4M2E3ZjM4ZTNiN2QwODYwY2ZjNzk2ZjlhY2Jk
OTRmMy4uNjQ3YzcyOWZjMmVkOTIyMTgxNGI3NzRlMTQyYTAyNDkxNmJjZDVhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KQEAgLTc3LDcgKzc3
LDcgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQKIHsKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RI
UkVBRCkKICAgICBpZiAoaGFzU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCkpCi0gICAgICAg
IHJldHVybiB7IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9s
bGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlz
cGF0Y2ggfSwgZmFsc2UgfTsKKyAgICAgICAgcmV0dXJuIHsgeyBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBz
OjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH0sIGZhbHNlIH07CiAj
ZW5kaWYKIAogICAgIGlmICghY2FuSGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JOaWNvc2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcAppbmRleCBkOWUxZTZiMjgxM2NjNDU2
ZGU4YzNjMDE4MTViMjFjNjA3ZDg0MTg3Li45ZGFjMTJkMjU4NDYwMWU3MWU1ZGVjMGY2NWJmNjM2
MTVhMzdhYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNv
c2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWEuY3BwCkBA
IC02OSw3ICs2OSw3IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpjb21taXRU
cmVlU3RhdGVJZk5lZWRlZCgpCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWVDb21taXR0ZXJUaW1l
ci5zdG9wKCk7CiB9CiAKLWJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpoYW5kbGVX
aGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdldE5vZGUpCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
Tmljb3NpYTo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFuZGxpbmcoRnJhbWVWaWV3JiwgY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0
Tm9kZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3BhZ2Up
OwpAQCAtODEsNiArODEsMTMgQEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6Omhh
bmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGUKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQs
IE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmcpCit7CisgICAgU2Nyb2xs
aW5nVGhyZWFkOjpkaXNwYXRjaChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlID0gbWFrZVJlZihkb3du
Y2FzdDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+KCpzY3JvbGxpbmdUcmVlKCkpKSwgd2hlZWxFdmVu
dCwgZGVmYXVsdEhhbmRsaW5nXSB7CisgICAgICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hl
ZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxp
bmcpOworICAgIH0pOworfQorCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6c2No
ZWR1bGVUcmVlU3RhdGVDb21taXQoKQogewogICAgIGlmICghbV9zY3JvbGxpbmdTdGF0ZVRyZWVD
b21taXR0ZXJUaW1lci5pc0FjdGl2ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNv
c2lhLmgKaW5kZXggODQ1NjY1Y2U3NzE4YzYwZGQ0ZGIxMjgwNmNkZjNjOTE1NGY4ZTRmMi4uMTA2
MTI1N2I4Yzk0NzIwMTU5MGE5NTk2YmYxYWI4NDkwYzA1OWQyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29z
aWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTmljb3NpYS5oCkBAIC00NCw3ICs0NCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgY29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKSBvdmVycmlkZTsKIAotICAgIGJvb2wgaGFuZGxl
V2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxp
bmdOb2RlSUQpIG92ZXJyaWRlOworICAgIGJvb2wgcGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFu
ZGxpbmcoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9k
ZUlEKSBvdmVycmlkZTsKKyAgICB2b2lkIHdoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJl
YWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKaW5kZXggN2I5
YjczYzlkOTMyZGNhNzFiNmM4NTkxZTIxZjZiZWJhNzhlYjg4MS4uZTZjYTkyZTRmNzY1YzgyOTFl
OTc4MWIwZGYyODcyZjJkOTUwZjdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
RXZlbnQuaApAQCAtMzAsNiArMzAsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVt
IGNsYXNzIEV2ZW50SGFuZGxpbmcgOiB1aW50OF90IHsKKyAgICBEaXNwYXRjaGVkVG9ET00gICAg
ID0gMSA8PCAwLAorICAgIERlZmF1bHRQcmV2ZW50ZWQgICAgPSAxIDw8IDEsCisgICAgRGVmYXVs
dEhhbmRsZWQgICAgICA9IDEgPDwgMiwKK307CisKIGNsYXNzIFBsYXRmb3JtRXZlbnQgewogcHVi
bGljOgogICAgIGVudW0gVHlwZSA6IHVpbnQ4X3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKaW5kZXggNDI2NjNiNzhhNDVlZGQ4OTlmNTA1MDAx
ZDYxNWFjOTZlZmM3MDcxNi4uZWMxNTJhM2U0ODg0Mzk0ZmRhNjU0MWViNDA1OWMyMGI0MGYxODM3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3Bw
CkBAIC02NCw3ICs2NCwxOCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzIHN0ZXBzKQogICAgIHN3aXRjaCAoc3RlcHMpIHsK
ICAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZDogdHMg
PDwgInNjcm9sbGluZyB0aHJlYWQiOyBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmc6IHRzIDw8ICJtYWluIHRocmVhZCBzY3Jv
bGxpbmciOyBicmVhazsKLSAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5U
aHJlYWRGb3JET01FdmVudERpc3BhdGNoOiB0cyA8PCAibWFpbiB0aHJlYWQgRE9NIGV2ZW50IGRp
c3BhdGNoIjsgYnJlYWs7CisgICAgY2FzZSBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWlu
VGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoOiB0cyA8PCAibWFpbiB0aHJlYWQg
bm9uLWJsb2NraW5nIERPTSBldmVudCBkaXNwYXRjaCI7IGJyZWFrOworICAgIGNhc2UgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRj
aDogdHMgPDwgIm1haW4gdGhyZWFkIGJsb2NraW5nIERPTSBldmVudCBkaXNwYXRjaCI7IGJyZWFr
OworICAgIH0KKyAgICByZXR1cm4gdHM7Cit9CisKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIEV2ZW50SGFuZGxpbmcgc3RlcHMpCit7CisgICAgc3dpdGNoIChzdGVwcykg
eworICAgIGNhc2UgRXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NOiB0cyA8PCAiZGlzcGF0
Y2hlZCB0byBET00iOyBicmVhazsKKyAgICBjYXNlIEV2ZW50SGFuZGxpbmc6OkRlZmF1bHRQcmV2
ZW50ZWQ6IHRzIDw8ICJkZWZhdWx0IHByZXZlbnRlZCI7IGJyZWFrOworICAgIGNhc2UgRXZlbnRI
YW5kbGluZzo6RGVmYXVsdEhhbmRsZWQ6IHRzIDw8ICJkZWZhdWx0IGhhbmRsZWQiOyBicmVhazsK
ICAgICB9CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybVdoZWVsRXZlbnQuaAppbmRleCAzZDU2OTNkODJlMDlmMzMwY2FmYjg5ZjhiNWVlMjg3NjBi
OTMyZmJhLi41ZDQ4NjRkNDU1YTAzNDE2MTg3Y2ExNmE2MjU3MjZhYmJjNGYzN2Y3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApAQCAtMzcsOSArMzcs
MTAgQEAgY2xhc3MgVGV4dFN0cmVhbTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFz
cyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzIDogdWludDhfdCB7Ci0gICAgU2Nyb2xsaW5nVGhy
ZWFkICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKLSAgICBNYWluVGhyZWFkRm9yU2Nyb2xsaW5n
ICAgICAgICAgID0gMSA8PCAxLAotICAgIE1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoICAg
PSAxIDw8IDIsCisgICAgU2Nyb2xsaW5nVGhyZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEgPDwgMCwKKyAgICBNYWluVGhyZWFkRm9yU2Nyb2xsaW5nICAgICAgICAgICAgICAgICAg
ICAgID0gMSA8PCAxLAorICAgIE1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0
Y2ggICAgPSAxIDw8IDIsCisgICAgTWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRj
aCAgICAgICA9IDEgPDwgMywKIH07CiAKIC8vIFRoZSBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCBp
cyBhIGZpbmUtZ3JhaW5lZCBldmVudCB0aGF0IHNwZWNpZmllcyB0aGUgcHJlY2lzZSBudW1iZXIg
b2YgcGl4ZWxzIHRvIHNjcm9sbC4KQEAgLTI2NSw1ICsyNjYsNiBAQCBpbmxpbmUgRmxvYXRQb2lu
dCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OnN3aXBlVmVsb2NpdHkoKSBjb25zdAogCiBXRUJDT1JFX0VY
UE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50Jik7CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyk7CitX
RUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFt
JiwgRXZlbnRIYW5kbGluZyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCBkYTUxOTU1YmIw
MzhmOGJmNzcyOGRlYzU2MTZiZTYwZWZiYmVlYjIzLi45ZGY5MTRkNWRhYzU5NTRiZjNjMmJjNWUw
YmVjZmE2MTk1MzMzMTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3BwCkBAIC0xODAsNyArMTgwLDcgQEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBt
X3Njcm9sbGluZ1RyZWUtPmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKHdoZWVsRXZlbnQp
OwotICAgIGlmIChwcm9jZXNzaW5nU3RlcHMuY29udGFpbnNBbnkoeyBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9KSkKKyAgICBpZiAocHJvY2Vzc2lu
Z1N0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5v
bkJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKG1fc2Nyb2xsaW5nVHJlZS0+d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBl
R2VzdHVyZSh3aGVlbEV2ZW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDU0OWMwM2FkYzUyMTk3Nzg4OTRkMjEz
MzY2ZDdmY2VjY2I1ZWVkNTEuLjc1OThlY2ZiNGI3MjQ4ZTNkNjhmOTJlMzQ5Y2EzMDI2ZWU5MDE0
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmNwcApAQCAtMTIxLDE0ICsxMjEsMTQgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6
OndoZWVsRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiB3
aGUKICAgICB9CiAjZW5kaWYKIAotICAgIGF1dG8gcHJvY2Vzc2luZ1N0ZXBzID0gT3B0aW9uU2V0
PFdlYkNvcmU6OldoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHsgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICBhdXRvIHByb2Nlc3NpbmdT
dGVwcyA9IE9wdGlvblNldDxXZWJDb3JlOjpXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB7IFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZl
bnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gg
fTsKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKICAgICBwcm9jZXNzaW5nU3RlcHMgPSBb
Jl0oKSAtPiBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gewogICAgICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3Njcm9sbGluZ1RyZWVzTXV0ZXgpOwogCiAgICAgICAgIGF1dG8g
c2Nyb2xsaW5nVHJlZSA9IG1fc2Nyb2xsaW5nVHJlZXMuZ2V0KHBhZ2VJRCk7CiAgICAgICAgIGlm
ICghc2Nyb2xsaW5nVHJlZSkKLSAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH07CisgICAgICAgICAgICByZXR1cm4g
eyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVl
bEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3Bh
dGNoIH07CiAgICAgICAgIAogICAgICAgICAvLyBGSVhNRTogSXQncyBwcmV0dHkgaG9ycmlibGUg
dGhhdCB3ZSdyZSB1cGRhdGluZyB0aGUgYmFjay9mb3J3YXJkIHN0YXRlIGhlcmUuCiAgICAgICAg
IC8vIFdlYkNvcmUgc2hvdWxkIGFsd2F5cyBrbm93IHRoZSBjdXJyZW50IHN0YXRlIGFuZCBrbm93
IHdoZW4gaXQgY2hhbmdlcyBzbyB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5k
ZXggZmJhMTlkODc1MTkwYTNlOGY2NDQ4NjlkNDJjMGNlMjM1YWRlZTliMC4uZjc3YzI2MmUwOTRm
MWIyMmIyN2VkMWQyNGEyYzY0ZDBlMmJjMzcyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKQEAgLTIxMzcsNyArMjEzNyw3IEBAIGJvb2wgV2ViVmlldzo6bW91c2VXaGVlbChXUEFS
QU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtLCBib29sIGlzTW91c2VIV2hlZWwpCiAgICAgaWYgKCFj
b3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBjb3JlRnJhbWUt
PmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCwgeyBXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9KTsKKyAgICByZXR1cm4g
Y29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQsIHsg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRj
aCB9KTsKIH0KIAogYm9vbCBXZWJWaWV3Ojp2ZXJ0aWNhbFNjcm9sbChXUEFSQU0gd1BhcmFtLCBM
UEFSQU0gLypsUGFyYW0qLykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MzYzZGEwNmJmOTMxODBmMjA4YWIxNTI3ZTU5OWM5
N2YzMjAzZDA5Li5hYjY4ZGJlYzJmNTJkOTZkNjFiNjdkMTZkMDMxNGQ5Y2ZkYzI1YmRiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzcgQEAKKzIwMjAtMTEtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSB0aGUgZmlyc3Qgd2hlZWwgZXZlbnQgaW4gYSBn
ZXN0dXJlIHNob3VsZCBiZSBjYW5jZWxhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMjQ4
OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdo
ZW4gaGFuZGxpbmcgYSBzZXF1ZW5jZSBvZiB3aGVlbCBldmVudHMgaW4gYSBnZXN0dXJlIGluIGEg
cmVnaW9uIHdpdGggbm9uLXBhc3NpdmUgd2hlZWwKKyAgICAgICAgZXZlbnQgaGFuZGxlcnMsIG9u
bHkgYWxsb3cgdGhlIGZpcnN0IGV2ZW50IGluIHRoZSBzZXF1ZW5jZSB0byBjYWxsIHByZXZlbnRE
ZWZhdWx0KCk7CisgICAgICAgIHN1YnNlcXVlbnQgZXZlbnRzIGFyZSBtYXJrZWQgYXMgbm9uLWNh
bmNlbGFibGUsIHNvIHByZXZlbnREZWZhdWx0KCkgd2lsbCBoYXZlIG5vIGVmZmVjdC4KKworICAg
ICAgICBUaGlzIGFsbG93cyB1cyB0byBkbyBhc3luYyBzY3JvbGxpbmcgZXZlbiB3aGlsZSBpbiBy
ZWdpb25zIHdpdGggYWN0aXZlIHdoZWVsIGV2ZW50IGhhbmRsZXJzLAorICAgICAgICBpZiB0aG9z
ZSBoYW5kbGVycyBkb24ndCBjYWxsIHByZXZlbnREZWZhdWx0KCkgb24gdGhlIGZpcnN0IGV2ZW50
LiBUaGlzIG1hdGNoZXMgQmxpbmsKKyAgICAgICAgYmVoYXZpb3IuCisKKyAgICAgICAgVG8gYWNo
aWV2ZSB0aGlzLCB0cmFjayBzb21lIGJpdHMgaW4gRXZlbnRIYW5kbGluZyB0byBrbm93IHdoZXRo
ZXIgdGhlIGV2ZW50IHdhcyBkaXNwYXRjaGVkCisgICAgICAgIHRvIHNjcmlwdCwgYW5kIHdoZXRo
ZXIgaXQgd2FzIGNhbmNlbGVkLiBTZW5kIHRoaXMgZGF0YSBiYWNrIHRvIHRoZSBzY3JvbGxpbmcg
dGhyZWFkIHZpYQorICAgICAgICB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKCks
IHdoZXJlIGlzIHNldHMgYW4gT3B0aW9uYWw8Ym9vbD4gb24gU2Nyb2xsaW5nVHJlZS4gVGhpcwor
ICAgICAgICBmbGFnIGlzIGNvbnN1bHRlZCBieSBTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVl
bEV2ZW50UHJvY2Vzc2luZygpLCBhbmQgaWYgd2UgaGF2ZSByZWNlaXZlZAorICAgICAgICBpdCwg
YW5kIHRoZSBldmVudCB3YXMgbm90IGNhbmNlbGVkLCB3ZSB1c2UgTWFpblRocmVhZEZvck5vbkJs
b2NraW5nRE9NRXZlbnREaXNwYXRjaCB3aGVuCisgICAgICAgIHNlbmRpbmcgZXZlbnRzIHRvIHRo
ZSBtYWluIHRocmVhZC4gVGhpcyBpcyB1c2VkIHRvIG1hcmsgdGhlIGV2ZW50IGFzIG5vbi1jYW5j
ZWxhYmxlIGluCisgICAgICAgIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCgpLgorICAg
ICAgICAKKyAgICAgICAgQWRkIGFub3RoZXIgUmVwb3J0RE9NRXZlbnRIYW5kbGluZyBiaXQgdG8g
V2hlZWxFdmVudFRlc3RNb25pdG9yIHRvIHRyYWNrIHRoZSBwcm9wYWdhdGlvbgorICAgICAgICBv
ZiBFdmVudEhhbmRsaW5nIHN0YXRlIGJhY2sgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQuCisKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hl
ZWwtZXZlbnQtY2FuY2VsYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93
aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50LWlu
LXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMt
YmVjb21lLW5vbi1jYW5jZWxhYmxlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTEyICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIHdoZWVsIGV2
ZW50IGxpc3RlbmVycyBvbiB0aGUgcm9vdCB0byBiZSBwYXNzaXZlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2
ZW50LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmYTU5ZGNjMzAzNDI2YWFl
ZjVmZGMzYzc0YTcwOTdkZjQ1M2ZhYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyBwcmV2ZW50RGVmYXVsdCBvbiB0aGUgZmlyc3QgZXZl
bnQgcmVzdWx0cyBpbiB0aGUgcmVzdCBvZiB0aGUgZXZlbnRzIGJlaW5nIGNhbmNlbGFibGUKK1BB
U1Mgd2luZG93U2Nyb2xsRXZlbnRDb3VudCBpcyAwCitQQVNTIGZpcnN0V2FzQ2FuY2VsYWJsZSBp
cyB0cnVlCitQQVNTIGZpcnN0V2FzQ2FuY2VsZWQgaXMgdHJ1ZQorUEFTUyBzdWJzZXF1ZW50V2Vy
ZUNhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyBzdWJzZXF1ZW50V2VyZUNhbmNlbGVkIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1j
YW5jZWxhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVl
bC1ldmVudC1jYW5jZWxhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UwMWQ4NzQ2ZDdhNWI5OTFmZjM0
NDczZTk4ZTA0ZjY5NjRiMTJhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUuaHRtbApAQCAtMCwwICsx
LDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAg
ICAgICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAg
ICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2
ZXI7CisgICAgICAgICAgICBtYXJnaW46IDIwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9IHRydWU7
CisKKyAgICAgICAgbGV0IHdoZWVsRXZlbnRDb3VudCA9IDA7CisgICAgICAgIGxldCB3aW5kb3dT
Y3JvbGxFdmVudENvdW50ID0gMDsKKworICAgICAgICBsZXQgZmlyc3RXYXNDYW5jZWxhYmxlOwor
ICAgICAgICBsZXQgZmlyc3RXYXNDYW5jZWxlZDsKKyAgICAgICAgbGV0IHNlY29uZFdhc0NhbmNl
bGFibGU7CisgICAgICAgIGxldCBzZWNvbmRXYXNDYW5jZWxlZDsKKworICAgICAgICBhc3luYyBm
dW5jdGlvbiB0ZXN0U2Nyb2xsKCkKKyAgICAgICAgeworICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIubW91c2VXaGVlbFNjcm9sbEF0KDEwMCwgMTAwKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCd3
aW5kb3dTY3JvbGxFdmVudENvdW50JywgJzAnKTsKKworICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCdmaXJzdFdhc0NhbmNlbGFibGUnKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnZmlyc3RX
YXNDYW5jZWxlZCcpOworCisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3NlY29uZFdhc0NhbmNl
bGFibGUnKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnc2Vjb25kV2FzQ2FuY2VsZWQnKTsK
KworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCdU
ZXN0cyBwcmV2ZW50RGVmYXVsdCBvbiB0aGUgZmlyc3QgZXZlbnQgcmVzdWx0cyBpbiB0aGUgcmVz
dCBvZiB0aGUgZXZlbnRzIGJlaW5nIGNhbmNlbGFibGUnKQorICAgICAgICAgICAgbGV0IHRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgICAgICAgICAgdGFy
Z2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgaWYgKCF3aGVlbEV2ZW50Q291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RXYXND
YW5jZWxhYmxlID0gZXZlbnQuY2FuY2VsYWJsZTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RXYXNDYW5jZWxlZCA9
IGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh3aGVl
bEV2ZW50Q291bnQgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBzZWNvbmRXYXNDYW5jZWxh
YmxlID0gZXZlbnQuY2FuY2VsYWJsZTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVu
dERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICAgICAgc2Vjb25kV2FzQ2FuY2VsZWQgPSBldmVu
dC5kZWZhdWx0UHJldmVudGVkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAr
K3doZWVsRXZlbnRDb3VudDsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4geworICAgICAgICAgICAgICAgICsrd2lu
ZG93U2Nyb2xsRXZlbnRDb3VudDsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICAg
ICAgc2V0VGltZW91dCh0ZXN0U2Nyb2xsLCAwKTsKKyAgICAgICAgfSwgZmFsc2UpOworICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNz
aXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJs
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM3MTI5NzFmM2E5ZGIzYmZiOWM3OGQ3ZmE3MDVl
MTI2NDYxYjViMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3do
ZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3RzIHRoYXQgd2hlZWwgZXZlbnRzIGluIHRoZSBwYXNz
aXZlIHJlZ2lvbiBhcmUgbm9uLWNhbmNlbGFibGUKK1BBU1Mgd2luZG93U2Nyb2xsRXZlbnRDb3Vu
dCA+IDAgaXMgdHJ1ZQorUEFTUyB3YXNDYW5jZWxhYmxlIGlzIGZhbHNlCitQQVNTIHdhc0NhbmNl
bGVkIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwt
ZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5j
ZWxhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjkxOTBlMmIwODRkODZhMTNkZWVlZTJhNTA1MmU0MDBl
NDg2M2Y1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVs
L3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLmh0bWwKQEAgLTAs
MCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4K
KyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgI3RhcmdldCB7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
c2lsdmVyOworICAgICAgICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIGxldCBpc0ZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgbGV0IHdpbmRvd1Nj
cm9sbEV2ZW50Q291bnQgPSAwOworICAgICAgICBsZXQgd2FzQ2FuY2VsYWJsZTsKKyAgICAgICAg
bGV0IHdhc0NhbmNlbGVkOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RTY3JvbGwoKQor
ICAgICAgICB7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3VzZVdoZWVsU2Nyb2xsQXQo
MTAwLCAxMDApOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCd3aW5kb3dTY3JvbGxFdmVudENv
dW50ID4gMCcpOworCisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCd3YXNDYW5jZWxhYmxlJyk7
CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCd3YXNDYW5jZWxlZCcpOworCisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICAgICAgZGVidWcoJ1Rlc3RzIHRoYXQgd2hl
ZWwgZXZlbnRzIGluIHRoZSBwYXNzaXZlIHJlZ2lvbiBhcmUgbm9uLWNhbmNlbGFibGUnKQorICAg
ICAgICAgICAgbGV0IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsK
KworICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgKGV2ZW50KSA9
PiB7CisgICAgICAgICAgICAgICAgaWYgKGlzRmlyc3QpIHsKKyAgICAgICAgICAgICAgICAgICAg
d2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAgICAgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgICAgIHdhc0NhbmNlbGVkID0g
ZXZlbnQuZGVmYXVsdFByZXZlbnRlZDsKKyAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZh
bHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0s
IHsgcGFzc2l2ZTogdHJ1ZSB9KTsKKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ3Njcm9sbCcsICgpID0+IHsKKyAgICAgICAgICAgICAgICArK3dpbmRvd1Njcm9sbEV2ZW50
Q291bnQ7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQo
dGVzdFNjcm9sbCwgMCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisgICAgPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVu
dHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTRhMTE4
ZGVkNGE1ZDZkN2FmNjA2MDdjNzA3NDU0ZjU0ZWNiOTA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2Vs
YWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0cyB0aGF0IGV2ZW50cyBpbiB0
aGUgZ2VzdHVyZSBhcmUgbm9uLWNhbmNlbGFibGUgaWYgcHJldmVudERlZmF1bHQgd2FzIG5vdCBj
YWxsZWQgb24gdGhlIGZpcnN0IGV2ZW50CitQQVNTIGZpcnN0V2FzQ2FuY2VsYWJsZSBpcyB0cnVl
CitQQVNTIGJlY2FtZU5vbkNhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNh
bmNlbGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTRjZGFhZTE3OGEzOGU0OTNjYjY3MGJlNThjNWMy
OTAxNWY0ZWRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hl
ZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS5odG1sCkBAIC0wLDAgKzEsODEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAg
IGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7
CisgICAgICAgICAgICBtYXJnaW46IDIwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICAgICAgbGV0IHdoZWVsRXZlbnRDb3VudCA9IDA7CisKKyAgICAgICAgbGV0IGZpcnN0V2Fz
Q2FuY2VsYWJsZTsKKyAgICAgICAgbGV0IGJlY2FtZU5vbkNhbmNlbGFibGU7CisKKyAgICAgICAg
YXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICgh
ZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KDEwMCwgMTAwKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAiYmVnYW4iLCAibm9uZSIpOworICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2Vk
IiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgp
OworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAibm9u
ZSIpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIsICJub25lIik7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JTY3JvbGxDb21wbGV0
aW9uKCk7CisKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnZmlyc3RXYXNDYW5jZWxhYmxlJyk7
CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2JlY2FtZU5vbkNhbmNlbGFibGUnKTsKKworICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCdUZXN0cyB0
aGF0IGV2ZW50cyBpbiB0aGUgZ2VzdHVyZSBhcmUgbm9uLWNhbmNlbGFibGUgaWYgcHJldmVudERl
ZmF1bHQgd2FzIG5vdCBjYWxsZWQgb24gdGhlIGZpcnN0IGV2ZW50Jyk7CisgICAgICAgICAgICBs
ZXQgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAgICAg
ICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoZXZlbnQpID0+IHsKKyAgICAg
ICAgICAgICAgICBpZiAod2hlZWxFdmVudENvdW50ID09IDApIHsKKyAgICAgICAgICAgICAgICAg
ICAgZmlyc3RXYXNDYW5jZWxhYmxlID0gZXZlbnQuY2FuY2VsYWJsZTsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgZmlyc3Qgbm9u
LWNhbmNlbGFibGUgZXZlbnQgYW5kIGNoZWNrIHRoYXQgYWxsIHN1YnNlcXVlbnQgZXZlbnRzIGFy
ZSBub24tY2FuY2VsYWJsZS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGJlY2FtZU5vbkNhbmNl
bGFibGUgJiYgZXZlbnQuY2FuY2VsYWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoJ1Nob3VsZCBub3Qgc2VlIGNhbmNlbGFibGUgZXZlbnQgYWZ0ZXIgbm9uLWNhbmNlbGFi
bGUgZXZlbnQnKQorCisgICAgICAgICAgICAgICAgICAgIGlmICghZXZlbnQuY2FuY2VsYWJsZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJlY2FtZU5vbkNhbmNlbGFibGUgPSB0cnVlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK3doZWVsRXZlbnRDb3VudDsKKyAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RTY3JvbGwsIDApOworICAg
ICAgICB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2
IGlkPSJ0YXJnZXQiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414117</attachid>
            <date>2020-11-13 19:49:37 -0800</date>
            <delta_ts>2020-11-13 19:58:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201113194936.patch</filename>
            <type>text/plain</type>
            <size>57820</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTUyMDljYzg2NjUwNmZj
MDFlZTQwZGJiYmQyM2ZjYmMyYjQ5YmQ2YS4uYTRiYzc2OGE1N2Y4M2UxYjYyYjdhMDcxOTJhMGNl
ZmFhNzU2MWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDIwLTExLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZp
cnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIGhhbmRsaW5nIGEgc2VxdWVuY2Ugb2Ygd2hlZWwgZXZl
bnRzIGluIGEgZ2VzdHVyZSBpbiBhIHJlZ2lvbiB3aXRoIG5vbi1wYXNzaXZlIHdoZWVsCisgICAg
ICAgIGV2ZW50IGhhbmRsZXJzLCBvbmx5IGFsbG93IHRoZSBmaXJzdCBldmVudCBpbiB0aGUgc2Vx
dWVuY2UgdG8gY2FsbCBwcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBzdWJzZXF1ZW50IGV2ZW50
cyBhcmUgbWFya2VkIGFzIG5vbi1jYW5jZWxhYmxlLCBzbyBwcmV2ZW50RGVmYXVsdCgpIHdpbGwg
aGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gZG8gYXN5bmMgc2Ny
b2xsaW5nIGV2ZW4gd2hpbGUgaW4gcmVnaW9ucyB3aXRoIGFjdGl2ZSB3aGVlbCBldmVudCBoYW5k
bGVycywKKyAgICAgICAgaWYgdGhvc2UgaGFuZGxlcnMgZG9uJ3QgY2FsbCBwcmV2ZW50RGVmYXVs
dCgpIG9uIHRoZSBmaXJzdCBldmVudC4gVGhpcyBtYXRjaGVzIEJsaW5rCisgICAgICAgIGJlaGF2
aW9yLgorCisgICAgICAgIFRvIGFjaGlldmUgdGhpcywgdHJhY2sgc29tZSBiaXRzIGluIEV2ZW50
SGFuZGxpbmcgdG8ga25vdyB3aGV0aGVyIHRoZSBldmVudCB3YXMgZGlzcGF0Y2hlZAorICAgICAg
ICB0byBzY3JpcHQsIGFuZCB3aGV0aGVyIGl0IHdhcyBjYW5jZWxlZC4gU2VuZCB0aGlzIGRhdGEg
YmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCB2aWEKKyAgICAgICAgd2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZCgpLCB3aGVyZSBpcyBzZXRzIGFuIE9wdGlvbmFsPGJvb2w+IG9u
IFNjcm9sbGluZ1RyZWUuIFRoaXMKKyAgICAgICAgZmxhZyBpcyBjb25zdWx0ZWQgYnkgU2Nyb2xs
aW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcoKSwgYW5kIGlmIHdlIGhhdmUg
cmVjZWl2ZWQKKyAgICAgICAgaXQsIGFuZCB0aGUgZXZlbnQgd2FzIG5vdCBjYW5jZWxlZCwgd2Ug
dXNlIE1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggd2hlbgorICAgICAg
ICBzZW5kaW5nIGV2ZW50cyB0byB0aGUgbWFpbiB0aHJlYWQuIFRoaXMgaXMgdXNlZCB0byBtYXJr
IHRoZSBldmVudCBhcyBub24tY2FuY2VsYWJsZSBpbgorICAgICAgICBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQoKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBhbm90aGVyIFJlcG9ydERP
TUV2ZW50SGFuZGxpbmcgYml0IHRvIFdoZWVsRXZlbnRUZXN0TW9uaXRvciB0byB0cmFjayB0aGUg
cHJvcGFnYXRpb24KKyAgICAgICAgb2YgRXZlbnRIYW5kbGluZyBzdGF0ZSBiYWNrIHRvIHRoZSBz
Y3JvbGxpbmcgdGhyZWFkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy93aGVlbC9maXJz
dC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRz
L3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9u
LWNhbmNlbGFibGUuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0Y2hXaGVlbEV2ZW50KToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5oOgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldoZWVsRXZlbnQ6OldoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5oOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVu
dFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpo
YW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3Ojp3aGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmRpc3BhdGNoTG9j
a2VkV2hlZWxFdmVudCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2
ZW50VGVzdE1vbml0b3IuaDoKKyAgICAgICAgKiBwYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndoZWVsRXZlbnQpOgorICAgICAgICAq
IHBhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndoZWVs
RXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29y
ZGluYXRvcjo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFuZGxpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5U
aHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhhbmRsZVdo
ZWVsRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxF
dmVudFByb2Nlc3NpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFuZGxl
V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJl
UmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2gpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdDo6bmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZyBjb25zdCk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQ
cm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjOjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpuZXh0RGVmZXJJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRm
b3JtL1BsYXRmb3JtRXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisKIDIwMjAtMTEtMTIgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yY2Ugd2hlZWwgZXZlbnQgbGlzdGVu
ZXJzIG9uIHRoZSByb290IHRvIGJlIHBhc3NpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjdiYTY2Yzg3MjUxMGU4
YTJmN2IxNjYwYmNkYTlkNTYzZjY0YzBhYy4uOWJiZGVlN2YwMjBiMThkNzc1YWI2OWE5NWY3ZmNm
MjA3ZjliYzhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0xMS0xMyAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBPbmx5IHRoZSBmaXJz
dCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUgc2hvdWxkIGJlIGNhbmNlbGFibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODc2NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzEyNDg5NDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiBoYW5kbGluZyBhIHNlcXVlbmNlIG9mIHdoZWVsIGV2ZW50
cyBpbiBhIGdlc3R1cmUgaW4gYSByZWdpb24gd2l0aCBub24tcGFzc2l2ZSB3aGVlbAorICAgICAg
ICBldmVudCBoYW5kbGVycywgb25seSBhbGxvdyB0aGUgZmlyc3QgZXZlbnQgaW4gdGhlIHNlcXVl
bmNlIHRvIGNhbGwgcHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgc3Vic2VxdWVudCBldmVudHMg
YXJlIG1hcmtlZCBhcyBub24tY2FuY2VsYWJsZSwgc28gcHJldmVudERlZmF1bHQoKSB3aWxsIGhh
dmUgbm8gZWZmZWN0LgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGRvIGFzeW5jIHNjcm9s
bGluZyBldmVuIHdoaWxlIGluIHJlZ2lvbnMgd2l0aCBhY3RpdmUgd2hlZWwgZXZlbnQgaGFuZGxl
cnMsCisgICAgICAgIGlmIHRob3NlIGhhbmRsZXJzIGRvbid0IGNhbGwgcHJldmVudERlZmF1bHQo
KSBvbiB0aGUgZmlyc3QgZXZlbnQuIFRoaXMgbWF0Y2hlcyBCbGluaworICAgICAgICBiZWhhdmlv
ci4KKworICAgICAgICBUbyBhY2hpZXZlIHRoaXMsIHRyYWNrIHNvbWUgYml0cyBpbiBFdmVudEhh
bmRsaW5nIHRvIGtub3cgd2hldGhlciB0aGUgZXZlbnQgd2FzIGRpc3BhdGNoZWQKKyAgICAgICAg
dG8gc2NyaXB0LCBhbmQgd2hldGhlciBpdCB3YXMgY2FuY2VsZWQuIFNlbmQgdGhpcyBkYXRhIGJh
Y2sgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQgdmlhCisgICAgICAgIHdoZWVsRXZlbnRXYXNQcm9j
ZXNzZWRCeU1haW5UaHJlYWQoKSwgd2hlcmUgaXMgc2V0cyBhbiBPcHRpb25hbDxib29sPiBvbiBT
Y3JvbGxpbmdUcmVlLiBUaGlzCisgICAgICAgIGZsYWcgaXMgY29uc3VsdGVkIGJ5IFNjcm9sbGlu
Z1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKCksIGFuZCBpZiB3ZSBoYXZlIHJl
Y2VpdmVkCisgICAgICAgIGl0LCBhbmQgdGhlIGV2ZW50IHdhcyBub3QgY2FuY2VsZWQsIHdlIHVz
ZSBNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIHdoZW4KKyAgICAgICAg
c2VuZGluZyBldmVudHMgdG8gdGhlIG1haW4gdGhyZWFkLiBUaGlzIGlzIHVzZWQgdG8gbWFyayB0
aGUgZXZlbnQgYXMgbm9uLWNhbmNlbGFibGUgaW4KKyAgICAgICAgRXZlbnRIYW5kbGVyOjpoYW5k
bGVXaGVlbEV2ZW50KCkuCisgICAgICAgIAorICAgICAgICBBZGQgYW5vdGhlciBSZXBvcnRET01F
dmVudEhhbmRsaW5nIGJpdCB0byBXaGVlbEV2ZW50VGVzdE1vbml0b3IgdG8gdHJhY2sgdGhlIHBy
b3BhZ2F0aW9uCisgICAgICAgIG9mIEV2ZW50SGFuZGxpbmcgc3RhdGUgYmFjayB0byB0aGUgc2Ny
b2xsaW5nIHRocmVhZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQpOgorCiAyMDIwLTExLTEyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIHdoZWVsIGV2ZW50
IGxpc3RlbmVycyBvbiB0aGUgcm9vdCB0byBiZSBwYXNzaXZlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggZjc3ZTU2NjBjOTg5YTY1MWM3YTkxMzg0ODhhNzFlMjJiYTk3MTM0Mi4uOTllYzVjYzMx
NjIxYjBhNWUwMDYwZmE1NmRkYTA0Y2FhYTljOTZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtNDIwLDkgKzQyMCw5IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QKICAgICByZXR1cm4gZGlk
Tm90U3dhbGxvd0V2ZW50OwogfQogCi1ib29sIEVsZW1lbnQ6OmRpc3BhdGNoV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHBsYXRmb3JtRXZlbnQpCitib29sIEVsZW1lbnQ6OmRp
c3BhdGNoV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHBsYXRmb3JtRXZlbnQs
IE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiYgcHJvY2Vzc2luZywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZSBpc0NhbmNlbGFibGUpCiB7Ci0gICAgYXV0byBldmVudCA9IFdoZWVsRXZlbnQ6OmNyZWF0ZShw
bGF0Zm9ybUV2ZW50LCBkb2N1bWVudCgpLndpbmRvd1Byb3h5KCkpOworICAgIGF1dG8gZXZlbnQg
PSBXaGVlbEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVudCwgZG9jdW1lbnQoKS53aW5kb3dQcm94
eSgpLCBpc0NhbmNlbGFibGUpOwogCiAgICAgLy8gRXZlbnRzIHdpdGggbm8gZGVsdGFzIGFyZSBp
bXBvcnRhbnQgYmVjYXVzZSB0aGV5IGNvbnZleSBwbGF0Zm9ybSBpbmZvcm1hdGlvbiBhYm91dCBz
Y3JvbGwgZ2VzdHVyZXMKICAgICAvLyBhbmQgbW9tZW50dW0gYmVnaW5uaW5nIG9yIGVuZGluZy4g
SG93ZXZlciwgdGhvc2UgZXZlbnRzIHNob3VsZCBub3QgYmUgc2VudCB0byB0aGUgRE9NIHNpbmNl
IHNvbWUKQEAgLTQzMCwxMiArNDMwLDIxIEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgcGxhdGZvcm1FdmVudCkKICAgICAvLyBldmVu
dCBoYW5kbGVyLCBhbmQgb3VyIHBsYXRmb3JtIGNvZGUgd2lsbCBjb3JyZWN0bHkgaGFuZGxlIHRo
ZSBwaGFzZSBjaGFuZ2VzLiBDYWxsaW5nIHN0b3BQcm9wYWdhdGlvbigpCiAgICAgLy8gd2lsbCBw
cmV2ZW50IHRoZSBldmVudCBmcm9tIGJlaW5nIHNlbnQgdG8gdGhlIERPTSwgYnV0IHdpbGwgc3Rp
bGwgY2FsbCB0aGUgZGVmYXVsdCBldmVudCBoYW5kbGVyLgogICAgIC8vIEZJWE1FOiBNb3ZlIHRo
aXMgbG9naWMgaW50byBXaGVlbEV2ZW50OjpjcmVhdGUuCi0gICAgaWYgKCFwbGF0Zm9ybUV2ZW50
LmRlbHRhWCgpICYmICFwbGF0Zm9ybUV2ZW50LmRlbHRhWSgpKQorICAgIGlmIChwbGF0Zm9ybUV2
ZW50LmRlbHRhKCkuaXNaZXJvKCkpCiAgICAgICAgIGV2ZW50LT5zdG9wUHJvcGFnYXRpb24oKTsK
KyAgICBlbHNlCisgICAgICAgIHByb2Nlc3NpbmcuYWRkKEV2ZW50SGFuZGxpbmc6OkRpc3BhdGNo
ZWRUb0RPTSk7CiAKICAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAKICAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkVsZW1lbnQgIiA8PCAqdGhpcyA8PCAiIGRp
c3BhdGNoV2hlZWxFdmVudDogZGVmYXVsdFByZXZlbnRlZCAiIDw8IGV2ZW50LT5kZWZhdWx0UHJl
dmVudGVkKCkgPDwgIiBkZWZhdWx0SGFuZGxlZCAiIDw8IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgp
KTsKKyAgICAKKyAgICBpZiAoZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSkKKyAgICAgICAgcHJv
Y2Vzc2luZy5hZGQoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCk7CisKKyAgICBpZiAo
ZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgIHByb2Nlc3NpbmcuYWRkKEV2ZW50SGFu
ZGxpbmc6OkRlZmF1bHRIYW5kbGVkKTsKKwogICAgIHJldHVybiAhZXZlbnQtPmRlZmF1bHRQcmV2
ZW50ZWQoKSAmJiAhZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CmluZGV4IDliYzdkMjBjOWRjY2Q3MWRiZjk0MzNkYTE1NDc0MjBlNmE3MWIzMzMuLmZjYjdjZWI2
MjViOTE0Mzk3OGNmYTc3ZmQzZmU4YTc4Y2Y0MWQ5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAt
NjYsNiArNjYsOCBAQCBzdHJ1Y3QgS2V5ZnJhbWVBbmltYXRpb25PcHRpb25zOwogc3RydWN0IFNj
cm9sbEludG9WaWV3T3B0aW9uczsKIHN0cnVjdCBTY3JvbGxUb09wdGlvbnM7CiAKK2VudW0gY2xh
c3MgRXZlbnRQcm9jZXNzaW5nIDogdWludDhfdDsKKwogI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05f
T0JTRVJWRVIpCiBzdHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOwogI2VuZGlmCkBAIC01
MzAsNyArNTMyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2F2ZWRMYXllclNjcm9sbFBvc2l0
aW9uKGNvbnN0IEludFBvaW50Jik7CiAKICAgICBib29sIGRpc3BhdGNoTW91c2VFdmVudChjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCBj
bGlja0NvdW50ID0gMCwgRWxlbWVudCogcmVsYXRlZFRhcmdldCA9IG51bGxwdHIpOwotICAgIGJv
b2wgZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOworICAgIGJv
b2wgZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNl
dDxFdmVudEhhbmRsaW5nPiYsIEV2ZW50OjpJc0NhbmNlbGFibGUgPSBFdmVudDo6SXNDYW5jZWxh
YmxlOjpZZXMpOwogICAgIGJvb2wgZGlzcGF0Y2hLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQmKTsKICAgICBib29sIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVy
bHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0aW9ucyA9IFNlbmROb0V2ZW50
cywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zID0gU2hvd1ByZXNzZWRMb29rKTsKICAgICB2
b2lkIGRpc3BhdGNoRm9jdXNJbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVm
UHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQu
Y3BwCmluZGV4IDZmNWQxNWZiMmQzYTQ5MDEwN2E3ZWI4Zjc3MWI5NWRjNDM0MjJmY2QuLjQ4ZWE1
YmQzMTRhNTIzMDM2NWIzMTdiNTg4MTA4YWQ2Nzc0MzI3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5jcHAKQEAgLTUwLDggKzUwLDggQEAgaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIpCiB7CiB9CiAK
LWlubGluZSBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3KQotICAgIDogTW91c2VFdmVudChldmVu
dE5hbWVzKCkud2hlZWxFdmVudCwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6WWVzLCBJ
c0NvbXBvc2VkOjpZZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGlt
ZSgpLCBXVEZNb3ZlKHZpZXcpLCAwLAoraW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcs
IElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50TmFtZXMo
KS53aGVlbEV2ZW50LCBDYW5CdWJibGU6OlllcywgaXNDYW5jZWxhYmxlLCBJc0NvbXBvc2VkOjpZ
ZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCBXVEZNb3Zl
KHZpZXcpLCAwLAogICAgICAgICBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlv
bigpICwgeyB9LCBldmVudC5tb2RpZmllcnMoKSwgMCwgMCwgbnVsbHB0ciwgMCwgMCwgSXNTaW11
bGF0ZWQ6Ok5vLCBJc1RydXN0ZWQ6OlllcykKICAgICAsIG1fd2hlZWxEZWx0YShldmVudC53aGVl
bFRpY2tzWCgpICogVGlja011bHRpcGxpZXIsIGV2ZW50LndoZWVsVGlja3NZKCkgKiBUaWNrTXVs
dGlwbGllcikKICAgICAsIG1fZGVsdGFYKC1ldmVudC5kZWx0YVgoKSkKQEAgLTYxLDkgKzYxLDkg
QEAgaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3gKIHsKIH0KIAotUmVmPFdoZWVsRXZlbnQ+IFdoZWVs
RXZlbnQ6OmNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2lu
ZG93UHJveHk+JiYgdmlldykKK1JlZjxXaGVlbEV2ZW50PiBXaGVlbEV2ZW50OjpjcmVhdGUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcs
IElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2hlZWxFdmVudChldmVudCwgV1RGTW92ZSh2aWV3KSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdoZWVsRXZlbnQoZXZlbnQsIFdURk1vdmUodmlldyksIGlzQ2FuY2VsYWJsZSkpOwogfQog
CiBSZWY8V2hlZWxFdmVudD4gV2hlZWxFdmVudDo6Y3JlYXRlRm9yQmluZGluZ3MoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmgKaW5kZXggY2ZkNTk3NzU0ZjVjYTAwZTg3MGRmMmYyNzQ0ODE3NTg2YThi
ZWFjNi4uNjI0NGEzMjIxYjZhMzA1NzRlNGY1NDA1MGY5ZmQ1MTg4Y2IwNzIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vV2hlZWxFdmVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgRE9NX0RF
TFRBX1BBR0UKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxXaGVlbEV2ZW50PiBjcmVhdGUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmKTsKKyAgICBzdGF0
aWMgUmVmPFdoZWVsRXZlbnQ+IGNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBSZWZQ
dHI8V2luZG93UHJveHk+JiYsIElzQ2FuY2VsYWJsZSA9IElzQ2FuY2VsYWJsZTo6WWVzKTsKICAg
ICBzdGF0aWMgUmVmPFdoZWVsRXZlbnQ+IGNyZWF0ZUZvckJpbmRpbmdzKCk7CiAKICAgICBzdHJ1
Y3QgSW5pdCA6IE1vdXNlRXZlbnRJbml0IHsKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBXaGVlbEV2ZW50KCk7CiAgICAgV2hlZWxFdmVudChjb25zdCBBdG9tU3RyaW5n
JiwgY29uc3QgSW5pdCYpOwotICAgIFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmKTsKKyAgICBXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgSXNDYW5jZWxhYmxlKTsKIAogICAg
IEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1YmU5ODA0NjI2MTNlMjFkM2IxMmU2ZTBlNTMz
ZDYxMDQ4OTlkMmYxLi44YTE0OTQxOTU5YmIzYmM3ODA4ZDFkNGQ0ZGE1YTY0YmZmYmJkYjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNzkzLDYgKzI3OTMsMTAgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgZXZlbnQKICAgICByZXR1cm4gZGlkSGFuZGxlRXZlbnQ7CiB9CiAK
K3ZvaWQgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikKK3sKK30K
KwogYm9vbCBFdmVudEhhbmRsZXI6OnBsYXRmb3JtQ29tcGxldGVQbGF0Zm9ybVdpZGdldFdoZWVs
RXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2lkZ2V0JiwgY29uc3QgV2Vh
a1B0cjxTY3JvbGxhYmxlQXJlYT4mKQogewogICAgIHJldHVybiB0cnVlOwpAQCAtMjg2Myw2ICsy
ODY3LDE0IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpjb21wbGV0ZVdpZGdldFdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgY29uCiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMpCit7CisgICAg
T3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGhhbmRsaW5nOworICAgIGJvb2wgaGFuZGxlZCA9IGhh
bmRsZVdoZWVsRXZlbnRJbnRlcm5hbChldmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCBoYW5kbGluZyk7
CisgICAgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChldmVudCwgaGFuZGxpbmcp
OworICAgIHJldHVybiBoYW5kbGVkOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hl
ZWxFdmVudEludGVybmFsKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIE9wdGlvblNl
dDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMsIE9wdGlvblNldDxF
dmVudEhhbmRsaW5nPiYgaGFuZGxpbmcpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBtX2ZyYW1l
LmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKQEAgLTI5MjUsNyArMjkzNyw4IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgZXZlbnQsIE9wdGlvblNldDxXCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAoIWVsZW1lbnQtPmRpc3BhdGNoV2hlZWxFdmVudChldmVudCkpIHsKKyAgICAgICAgYXV0
byBpc0NhbmNlbGFibGUgPSBwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCkgPyBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpZZXMgOiBFdmVudDo6SXNDYW5jZWxhYmxlOjpObzsKKyAgICAgICAg
aWYgKCFlbGVtZW50LT5kaXNwYXRjaFdoZWVsRXZlbnQoZXZlbnQsIGhhbmRsaW5nLCBpc0NhbmNl
bGFibGUpKSB7CiAgICAgICAgICAgICBtX2lzSGFuZGxpbmdXaGVlbEV2ZW50ID0gZmFsc2U7CiAg
ICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEgJiYgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFNo
b3VsZENsZWFyTGF0Y2hlZFN0YXRlKCkpIHsKICAgICAgICAgICAgICAgICAvLyBXZWIgZGV2ZWxv
cGVyIGlzIGNvbnRyb2xsaW5nIHNjcm9sbGluZywgc28gZG9uJ3QgYXR0ZW1wdCB0byBsYXRjaC4K
QEAgLTI5NTUsNiArMjk2OCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIE9wdGlvblNldDxXCiAgICAgICAgIGhh
bmRsZWRFdmVudCA9IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGV2ZW50LCBzY3JvbGxh
YmxlQXJlYSk7CiAgICAgICAgIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChldmVudCwg
c2Nyb2xsYWJsZUFyZWEpOwogICAgIH0KKwogICAgIHJldHVybiBoYW5kbGVkRXZlbnQ7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGU4NTU4ODY1NjU0ZjkzNDM4NWQyODBl
YjM5ZmZhMTgzMzRhOGNkOGEuLjkwYzc4N2I2N2UyZjNkYzI5ZDQ1ODhlZWJmNTg3ZmE5MzUxZGU5
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjA4LDggKzIwOCwxMSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBIaXRUZXN0UmVzdWx0KiA9IG51bGxwdHIsIGJvb2wgb25seVVwZGF0ZVNjcm9sbGJh
cnMgPSBmYWxzZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVNb3VzZVJlbGVhc2VF
dmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZU1vdXNlRm9y
Y2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKKwogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25T
ZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4pOwogICAgIHZvaWQgZGVmYXVsdFdoZWVsRXZl
bnRIYW5kbGVyKE5vZGUqLCBXaGVlbEV2ZW50Jik7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJv
Y2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxF
dmVudEhhbmRsaW5nPik7CisKICAgICBib29sIGhhbmRsZVBhc3RlR2xvYmFsU2VsZWN0aW9uKGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
IHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpCkBAIC00NTIsNiArNDU1LDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgcGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoV2lkZ2V0Kik7CiAKKyAg
ICBib29sIGhhbmRsZVdoZWVsRXZlbnRJbnRlcm5hbChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4sIE9wdGlvblNldDxFdmVudEhh
bmRsaW5nPiYpOwogICAgIGJvb2wgcGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmLCBXaWRnZXQmLCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
cz4pOwogICAgIHZvaWQgZGV0ZXJtaW5lV2hlZWxFdmVudFRhcmdldChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmLCBSZWZQdHI8RWxlbWVudD4mIGV2ZW50VGFyZ2V0LCBXZWFrUHRyPFNjcm9sbGFi
bGVBcmVhPiYsIGJvb2wmIGlzT3ZlcldpZGdldCk7CiAgICAgdm9pZCByZWNvcmRXaGVlbEV2ZW50
Rm9yRGVsdGFGaWx0ZXIoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggNDdkMDMxMDdmMDRhMjk0OGRmZTk3ODJiMzMwMDU5YTg4ZDFjNTMy
YS4uMDhiM2MxMGZjZmUxNjI3NjJhZTQyMjAxNmI1MjFkYWI1MWU4NjRkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtNTE0NSw3ICs1MTQ1LDcgQEAgYm9vbCBGcmFtZVZpZXc6Ondo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogI2lmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCiAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0
aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAgICAgIGlmIChzY3JvbGxpbmdDb29y
ZGluYXRvci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JGcmFtZVZpZXcoKnRoaXMpKQotICAgICAg
ICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5oYW5kbGVXaGVlbEV2ZW50KCp0aGlz
LCB3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQoKSk7CisgICAgICAgICAgICByZXR1cm4gc2Ny
b2xsaW5nQ29vcmRpbmF0b3ItPnBlcmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKHdoZWVs
RXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCmluZGV4IGVhZGNlZTM2ZTk3M2Ex
ZGQzYmU3Njg3ZTg5ZDA3YjQzOTQ5ZDIzZGQuLmNmMWFjNWQwYTIzOGI0NTM4MTVlY2RkYTgyMTI3
MjdhMTJkOGVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5jcHAKQEAgLTE5Myw3ICsxOTMsOCBAQCB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6
ZGlzcGF0Y2hMb2NrZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZQogICAg
IGlmICghbV9lbGVtZW50IHx8ICFtX2VsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9lbGVtZW50LT5kaXNwYXRjaFdoZWVsRXZlbnQoZXZlbnQpOwor
ICAgIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmc7CisgICAgbV9lbGVt
ZW50LT5kaXNwYXRjaFdoZWVsRXZlbnQoZXZlbnQsIGRlZmF1bHRIYW5kbGluZyk7CiB9CiAKIHZv
aWQgUG9pbnRlckxvY2tDb250cm9sbGVyOjpjbGVhckVsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCmluZGV4IDBlMWFiNGRjOTlkOWZhZjk3
OGYxMjFjZjZmMTVmM2UwNmM3ZGQ4MzguLjYzNzcyMDI4NjYxODFmMGM2ZGRiZGUyYTczZWM3ODNm
ODQ4N2M3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RN
b25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRv
ci5jcHAKQEAgLTE3MCw2ICsxNzAsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uIHJlYXNvbgogICAgIHN3
aXRjaCAocmVhc29uKSB7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5n
V2hlZWxFdmVudDogdHMgPDwgImhhbmRsaW5nIHdoZWVsIGV2ZW50IjsgYnJlYWs7CiAgICAgY2Fz
ZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZDog
dHMgPDwgImhhbmRsaW5nIHdoZWVsIGV2ZW50IG9uIG1haW4gdGhyZWFkIjsgYnJlYWs7CisgICAg
Y2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmc6IHRzIDw8
ICJyZXBvcnQgRE9NIGV2ZW50IGhhbmRsaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OlJ1YmJlcmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7
IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9n
cmVzczogdHMgPDwgInNjcm9sbC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5n
IHRocmVhZCBzeW5jIG5lZWRlZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxF
dmVudFRlc3RNb25pdG9yLmgKaW5kZXggMDI2MTAzZjRlYzgzZWIyNjg5ZmEyYjNlYzEyMjVmMDUw
YWU2MzhlZC4uOTIwNzdlOWQ1ZmFiMGVmOWZlMjZmMDU1MjU3MzcyOGMxYzc2NzVjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC01MCwxMSArNTAs
MTIgQEAgcHVibGljOgogICAgIGVudW0gRGVmZXJSZWFzb24gewogICAgICAgICBIYW5kbGluZ1do
ZWVsRXZlbnQgICAgICAgICAgICAgID0gMSA8PCAwLAogICAgICAgICBIYW5kbGluZ1doZWVsRXZl
bnRPbk1haW5UaHJlYWQgID0gMSA8PCAxLAotICAgICAgICBSdWJiZXJiYW5kSW5Qcm9ncmVzcyAg
ICAgICAgICAgID0gMSA8PCAyLAotICAgICAgICBTY3JvbGxTbmFwSW5Qcm9ncmVzcyAgICAgICAg
ICAgID0gMSA8PCAzLAotICAgICAgICBTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkICAgICAgID0g
MSA8PCA0LAotICAgICAgICBDb250ZW50U2Nyb2xsSW5Qcm9ncmVzcyAgICAgICAgID0gMSA8PCA1
LAotICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiAgICAgICAgID0gMSA8PCA2LAorICAg
ICAgICBSZXBvcnRET01FdmVudEhhbmRsaW5nICAgICAgICAgID0gMSA8PCAyLAorICAgICAgICBS
dWJiZXJiYW5kSW5Qcm9ncmVzcyAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICBTY3JvbGxT
bmFwSW5Qcm9ncmVzcyAgICAgICAgICAgID0gMSA8PCA0LAorICAgICAgICBTY3JvbGxpbmdUaHJl
YWRTeW5jTmVlZGVkICAgICAgID0gMSA8PCA1LAorICAgICAgICBDb250ZW50U2Nyb2xsSW5Qcm9n
cmVzcyAgICAgICAgID0gMSA8PCA2LAorICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiAg
ICAgICAgID0gMSA8PCA3LAogICAgIH07CiAgICAgdHlwZWRlZiBjb25zdCB2b2lkKiBTY3JvbGxh
YmxlQXJlYUlkZW50aWZpZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxl
cklPUy5tbQppbmRleCBjNTU1MjQ1NzIxZTlmZjIzMGVkNWJkYzlkZDIyZTVmMTQwYjg3Y2YyLi43
ZDFkNWE0YzdjZWE1YTY3YjhmMzEyMTg4MDY2OTBlNmRlYjJlYTZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC0xMDcsNyArMTA3LDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OndoZWVsRXZlbnQoV2ViRXZlbnQgKmV2ZW50KQogCiAgICAgQ3VycmVudEV2
ZW50U2NvcGUgc2NvcGUoZXZlbnQpOwogCi0gICAgYm9vbCBldmVudFdhc0hhbmRsZWQgPSBoYW5k
bGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZl
bnQoZXZlbnQpLCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3Jv
bGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERp
c3BhdGNoIH0pOworICAgIGJvb2wgZXZlbnRXYXNIYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudChQ
bGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1XaGVlbEV2ZW50KGV2ZW50KSwgeyBX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNo
IH0pOwogICAgIGV2ZW50Lndhc0hhbmRsZWQgPSBldmVudFdhc0hhbmRsZWQ7CiAgICAgcmV0dXJu
IGV2ZW50V2FzSGFuZGxlZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbQppbmRleCBhZjczNWVlN2FlYTY3ODMwNTQyNWMzMTM4ZDg1MDBjNmQ4ZWY3MzcwLi5l
YTM1NzdlYTQxOGY0ZTI5NDhlMThjYTkxOTE3Y2U2MDJjNmU2NTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Myw2ICs2Myw3IEBACiAjaW1wb3J0
ICJTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlNjcm9sbGFibGVBcmVhLmgi
CiAjaW1wb3J0ICJTY3JvbGxiYXIuaCIKKyNpbXBvcnQgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgi
CiAjaW1wb3J0ICJTZXR0aW5ncy5oIgogI2ltcG9ydCAiU2hhZG93Um9vdC5oIgogI2ltcG9ydCAi
U2ltcGxlUmFuZ2UuaCIKQEAgLTE0Niw3ICsxNDcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2hl
ZWxFdmVudChOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQ3Vy
cmVudEV2ZW50U2NvcGUgc2NvcGUoZXZlbnQsIG5pbCk7Ci0gICAgcmV0dXJuIGhhbmRsZVdoZWVs
RXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtV2hlZWxFdmVudChldmVu
dCwgcGFnZS0+Y2hyb21lKCkucGxhdGZvcm1QYWdlQ2xpZW50KCkpLCB7IFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0pOworICAgIHJldHVybiBoYW5k
bGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZl
bnQoZXZlbnQsIHBhZ2UtPmNocm9tZSgpLnBsYXRmb3JtUGFnZUNsaWVudCgpKSwgeyBXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJv
Y2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH0pOwog
fQogCiBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC05NTIs
NiArOTUzLDIzIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9s
bGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsCiAgICAgcmV0dXJuIGRpZEhhbmRs
ZUV2ZW50OwogfQogCit2b2lkIEV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5
TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNl
dDxFdmVudEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmcpCit7CisjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKKyAgICBpZiAoIW1fZnJhbWUucGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChhdXRvIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9mcmFt
ZS5wYWdlKCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKKyAgICAgICAgaWYgKHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldygqdmlldykpCisg
ICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5
TWFpblRocmVhZCh3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcpOworICAgIH0KKyNlbmRpZgor
fQorCiBib29sIEV2ZW50SGFuZGxlcjo6cGxhdGZvcm1Db21wbGV0ZVBsYXRmb3JtV2lkZ2V0V2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIGNvbnN0IFdpZGdl
dCYgd2lkZ2V0LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYgc2Nyb2xsYWJsZUFyZWEp
CiB7CiAgICAgLy8gV2ViS2l0MTogUHJldmVudCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNjcm9s
bFdoZWVsIGV2ZW50IGZyb20gYmVpbmcgc2VudCB0byB0aGUgTlNTY3JvbGxWaWV3IHdpZGdldC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IDJjNTNlYzA1MTIzYzIzNWEwMGE2ZmQ3ZDMyMDA0YWU3NjNkMzM4ZWIuLjdi
NzRmOGE5MDUxZTM1OTljNGRiZjQyYmFmYzA4OWUxYmU0OGY0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTI3
LDcgKzEyNyw4IEBAIHB1YmxpYzoKICAgICAvLyBUaGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUg
Y3VycmVudGx5IHVuaXF1ZSB0byB0aGUgdGhyZWFkZWQgc2Nyb2xsaW5nIGFyY2hpdGVjdHVyZS4g
CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVkKCkgeyB9CiAgICAgdmly
dHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNv
bnN0IEludFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Ny
b2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBib29sIHBlcmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pIHsgfQogCiAgICAgLy8g
Q3JlYXRlIGFuIHVucGFyZW50ZWQgbm9kZS4KICAgICB2aXJ0dWFsIFNjcm9sbGluZ05vZGVJRCBj
cmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbmV3Tm9kZUlEKSB7
IHJldHVybiBuZXdOb2RlSUQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMGRhNzNlY2QzOTVmNjExN2I0MDg4ZDkwZDUxYjEwNDAz
MTcwMDFlMC4uNjk5ZGYzY2UwZDk1MDE2NzQxMjkwMThmNDM0YTE2NzI0N2MxNDljZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTcz
LDYgKzczLDkgQEAgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IFNjcm9sbGlu
Z1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW4KICAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmRldGVybWluZVdo
ZWVsRXZlbnRQcm9jZXNzaW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIGhhdmUgbGF0Y2hlZCBub2Rl
ICIgPDwgbGF0Y2hlZE5vZGVBbmRTdGVwcy0+c2Nyb2xsaW5nTm9kZUlEIDw8ICIgc3RlcHMgIiA8
PCBsYXRjaGVkTm9kZUFuZFN0ZXBzLT5wcm9jZXNzaW5nU3RlcHMpOwogICAgICAgICByZXR1cm4g
bGF0Y2hlZE5vZGVBbmRTdGVwcy0+cHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0KKyAgICAKKyAgICBp
ZiAod2hlZWxFdmVudC5pc0dlc3R1cmVCZWdpbigpIHx8IHdoZWVsRXZlbnQuaXNOb25HZXN0dXJl
RXZlbnQoKSkKKyAgICAgICAgbV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlz
cGF0Y2ggPSBXVEY6Om51bGxvcHQ7CiAKICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZl
ZFdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5nKTsKIApAQCAtOTMsMTYgKzk2
LDIwIEBAIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVl
OjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luCiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJF
QU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlxuU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxF
dmVudFByb2Nlc3Npbmc6IHdoZWVsRXZlbnQgIiA8PCB3aGVlbEV2ZW50IDw8ICIgbWFwcGVkIHRv
IGNvbnRlbnQgcG9pbnQgIiA8PCBwb3NpdGlvbiA8PCAiLCBpbiBub24tZmFzdCByZWdpb24gIiA8
PCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pOwogCiAgICAgICAgICAgICBpZiAoaXNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uKQotICAgICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZl
bnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH07CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNj
cm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5n
RE9NRXZlbnREaXNwYXRjaCB9OwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRf
UkVHSU9OUykKICAgICAgICAgYXV0byBldmVudExpc3RlbmVyVHlwZXMgPSBldmVudExpc3RlbmVy
UmVnaW9uVHlwZXNGb3JQb2ludChwb3NpdGlvbik7Ci0gICAgICAgIGlmIChldmVudExpc3RlbmVy
VHlwZXMuY29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCkp
Ci0gICAgICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhy
ZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9y
RE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRh
aW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpKSB7CisgICAgICAg
ICAgICBpZiAobV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2ggJiYg
ISptX3RyZWVTdGF0ZS5yZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCkKKyAgICAgICAg
ICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJl
YWQsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RP
TUV2ZW50RGlzcGF0Y2ggfTsKKworICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICB9
CiAKICAgICAgICAgaWYgKGV2ZW50TGlzdGVuZXJUeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVy
UmVnaW9uVHlwZTo6V2hlZWwpKQotICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpN
YWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICAgICAgcmV0dXJuIHsgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07CiAj
ZW5kaWYKICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xs
aW5nVGhyZWFkIH07CiAgICAgfSgpOwpAQCAtMTYzLDcgKzE3MCw4IEBAIFdoZWVsRXZlbnRIYW5k
bGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVuCiAgICAgICAgIHJldHVybiBoYW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUod2hlZWxF
dmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCBub2RlLmdldCgpKTsKICAgICB9KCk7CiAKLSAgICByZXN1
bHQuc3RlcHMuYWRkKHByb2Nlc3NpbmdTdGVwcyAmIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoKTsKKyAgICBzdGF0aWMgY29uc3RleHByIE9w
dGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBtYWluVGhyZWFkU3RlcHMgPSB7IFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50
RGlzcGF0Y2gsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2lu
Z0RPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICByZXN1bHQuc3RlcHMuYWRkKHByb2Nlc3NpbmdTdGVw
cyAmIG1haW5UaHJlYWRTdGVwcyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNDgyLDYg
KzQ5MCwxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9u
KEZsb2F0UG9pbnQgcG9zaXRpb24pCiAgICAgbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24gPSBwb3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJlUmVx
dWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2goYm9vbCByZXF1aXJlc1N5bmNocm9ub3VzRGlz
cGF0Y2gpCit7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOworICAgIG1f
dHJlZVN0YXRlLnJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoID0gcmVxdWlyZXNTeW5j
aHJvbm91c0Rpc3BhdGNoOworfQorCiBUcmFja2luZ1R5cGUgU2Nyb2xsaW5nVHJlZTo6ZXZlbnRU
cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50
IHApCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDNlNzlmZWI0OWIx
MjU5MTk2ZWMxY2E2NjQwOTc4NTVmOTM2NGFmODIuLmZkNDUxNTQ5OTBmMzU2NDUxZTM1NzFkZTJh
YWM2ZDVjMjkxM2U0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmgKQEAgLTU5LDcgKzU5LDcgQEAgdXNpbmcgUGxhdGZvcm1EaXNwbGF5SUQgPSB1
aW50MzJfdDsKIHN0cnVjdCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgewogICAgIE9wdGlvblNl
dDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBzdGVwczsKICAgICBib29sIHdhc0hhbmRsZWQg
eyBmYWxzZSB9OwotICAgIGJvb2wgbmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZygpIGNvbnN0IHsg
cmV0dXJuIHN0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7IH0KKyAgICBib29sIG5lZWRzTWFpblRocmVhZFByb2Nl
c3NpbmcoKSBjb25zdCB7IHJldHVybiBzdGVwcy5jb250YWluc0FueSh7IFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gsIFdoZWVsRXZl
bnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gg
fSk7IH0KIAogICAgIHN0YXRpYyBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlZChPcHRp
b25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gc3RlcHMgPSB7IH0pCiAgICAgewpAQCAt
MjM4LDYgKzIzOCw4IEBAIHByb3RlY3RlZDoKICAgICBGbG9hdFBvaW50IG1haW5GcmFtZVNjcm9s
bFBvc2l0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihG
bG9hdFBvaW50KTsKIAorICAgIHZvaWQgc2V0R2VzdHVyZVJlcXVpcmVzU3luY2hyb25vdXNFdmVu
dERpc3BhdGNoKGJvb2wpOworCiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQ
ZXJTZWNvbmQoKTsKIAogICAgIHZvaWQgYXBwbHlMYXllclBvc2l0aW9uc0ludGVybmFsKCk7CkBA
IC0yNzgsNiArMjgwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgRmxvYXRQb2ludCBtYWluRnJhbWVT
Y3JvbGxQb3NpdGlvbjsKICAgICAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEIHsgMCB9
OwogICAgICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZDsKKyAg
ICAgICAgT3B0aW9uYWw8Ym9vbD4gcmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2g7CiAg
ICAgICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVSdWJiZXJCYW5k
aW5nOwogICAgICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlU2Ny
b2xsU25hcDsKICAgICAgICAgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2
ZVVzZXJTY3JvbGxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggOTM3OTQ1NmVhZTE3YjA5ODJjYjVkNTJk
OTk1ZmNhZGVkNTRiN2Q0ZC4uZjdlZDFlZWZkMjgwMTE2MzI5YmFkM2ZhYTliMzY3YzljMmUwZGM0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC02NywxMyArNjcsMjMgQEAgV2hlZWxFdmVudEhhbmRsaW5n
UmVzdWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVcKIGJvb2wgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJN
YWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5n
Tm9kZUlEIHRhcmdldE5vZGVJRCkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFp
blRocmVhZCAiIDw8IHdoZWVsRXZlbnQpOwotICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93
TGF0Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGZhbHNlKTsKIAorICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fdHJlZU11dGV4KTsKKworICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93TGF0
Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGZhbHNlKTsKICAgICBSZWZQdHI8U2Nyb2xsaW5n
VHJlZU5vZGU+IHRhcmdldE5vZGUgPSBub2RlRm9ySUQodGFyZ2V0Tm9kZUlEKTsKICAgICBhdXRv
IHJlc3VsdCA9IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVlbEV2ZW50LCB7IH0sIHRhcmdl
dE5vZGUuZ2V0KCkpOwogICAgIHJldHVybiByZXN1bHQud2FzSGFuZGxlZDsKIH0KIAordm9pZCBU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50
SGFuZGxpbmcpCit7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQg
LSBoYW5kbGluZyAiIDw8IGV2ZW50SGFuZGxpbmcpOworCisgICAgaWYgKGV2ZW50SGFuZGxpbmcu
Y29udGFpbnMoRXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NKSkKKyAgICAgICAgc2V0R2Vz
dHVyZVJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoKGV2ZW50SGFuZGxpbmcuY29udGFp
bnMoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCkpOworfQorCiB2b2lkIFRocmVhZGVk
U2Nyb2xsaW5nVHJlZTo6aW52YWxpZGF0ZSgpCiB7CiAgICAgLy8gSW52YWxpZGF0ZSBpcyBkaXNw
YXRjaGVkIGJ5IHRoZSBTY3JvbGxpbmdDb29yZGluYXRvciBjbGFzcyBvbiB0aGUgU2Nyb2xsaW5n
VGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oCmluZGV4IDRmNjhlYmM1NDNjZTM0ODVjOTNlMGY2ZTA2NWYxOGEyMjJm
ODkwNzcuLjVmMGE3NTU0NDJmYjRhMWIwMjk2YjRkNWI1YzA0MTEwNGMzZjRlYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1
bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYW5kbGVX
aGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9s
bGluZ05vZGVJRCk7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFk
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAK
ICAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApp
bmRleCBiMjJhNzZiMDkxNGJhZDY2OTE0ZmRmZGQyY2U2ZDU5N2U1MmY2MTU3Li5lZTU3NTY3N2Qx
YjExZGMyYzhmZTQwNGEzZDI0NDg4MTkxOGE5ZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApA
QCAtNDEsNyArNDEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRl
ZCgpIGZpbmFsOwogCiAgICAgLy8gSGFuZGxlIHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Nyb2xs
aW5nIHRocmVhZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZCBvciBub3Qu
Ci0gICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBwZXJmb3JtRGVm
YXVsdFdoZWVsRXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxp
bmdOb2RlSUQpIGZpbmFsOworICAgIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4p
IGZpbmFsOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRleCBiNDlmMTBjOWZjYzBmYWZiZDk1OGQ3
MmUwYTBkNjhkYzUyNzliZjNkLi43NTUwNmYyMTM2N2FkNDZhZGVjOTFlMWM1Yzg0ODIxNzhmMzUy
YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OnBhZ2VEZXN0cm95ZWQoKQogICAgIH0pOwogfQogCi1ib29s
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdl
dE5vZGUpCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpwZXJmb3JtRGVmYXVsdFdoZWVs
RXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9s
bGluZ05vZGVJRCB0YXJnZXROb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fcGFnZSk7CkBAIC05Myw2ICs5MywyOSBAQCBib29sIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdgogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdWludDY0X3QgbmV4dERlZmVySWRl
bnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGRlZmVySWRlbnRpZmllcjsKKyAgICBy
ZXR1cm4gKytkZWZlcklkZW50aWZpZXI7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZGVmYXVsdEhhbmRs
aW5nKQoreworICAgIHVpbnQ2NF90IGRlZmVySWRlbnRpZmllciA9IDA7CisgICAgaWYgKG1fcGFn
ZSAmJiBtX3BhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpIHsKKyAgICAgICAgZGVmZXJJ
ZGVudGlmaWVyID0gbmV4dERlZmVySWRlbnRpZmllcigpOworICAgICAgICBtX3BhZ2UtPndoZWVs
RXZlbnRUZXN0TW9uaXRvcigpLT5kZWZlckZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihkZWZlcklkZW50aWZp
ZXIpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcpOworICAg
IH0KKworICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5n
VHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsK
KyAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdo
ZWVsRXZlbnQsIGRlZmF1bHRIYW5kbGluZywgZGVmZXJJZGVudGlmaWVyXSB7CisgICAgICAgIHRo
cmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3
aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcpOworCisgICAgICAgIGlmICh0aHJlYWRlZFNjcm9s
bGluZ1RyZWUtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCisgICAgICAgICAgICB0aHJlYWRl
ZFNjcm9sbGluZ1RyZWUtPnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9y
UmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXI+KGRlZmVySWRlbnRpZmllciksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6
UmVwb3J0RE9NRXZlbnRIYW5kbGluZyk7CisgICAgfSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWM6OnNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkKIHsKICAgICAvLyBGSVhNRTog
VGhpcyBvbmUgbmVlZHMgd29yay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWMubW0KaW5kZXggMThhNTI1NmM4M2E3ZjM4ZTNiN2QwODYwY2ZjNzk2ZjlhY2Jk
OTRmMy4uNjQ3YzcyOWZjMmVkOTIyMTgxNGI3NzRlMTQyYTAyNDkxNmJjZDVhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KQEAgLTc3LDcgKzc3
LDcgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQKIHsKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RI
UkVBRCkKICAgICBpZiAoaGFzU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCkpCi0gICAgICAg
IHJldHVybiB7IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9s
bGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlz
cGF0Y2ggfSwgZmFsc2UgfTsKKyAgICAgICAgcmV0dXJuIHsgeyBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBz
OjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH0sIGZhbHNlIH07CiAj
ZW5kaWYKIAogICAgIGlmICghY2FuSGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JOaWNvc2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcAppbmRleCBkOWUxZTZiMjgxM2NjNDU2
ZGU4YzNjMDE4MTViMjFjNjA3ZDg0MTg3Li5hMjI4YzJiOTA3MDMyYzZlOGY0MmZjZDA0NDVkZWY2
Zjk4NTc5ODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNv
c2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWEuY3BwCkBA
IC02OSw3ICs2OSw3IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpjb21taXRU
cmVlU3RhdGVJZk5lZWRlZCgpCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWVDb21taXR0ZXJUaW1l
ci5zdG9wKCk7CiB9CiAKLWJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpoYW5kbGVX
aGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdldE5vZGUpCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
Tmljb3NpYTo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFuZGxpbmcoRnJhbWVWaWV3JiwgY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0
Tm9kZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3BhZ2Up
OwpAQCAtODEsNiArODEsMTMgQEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6Omhh
bmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGUKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OndoZWVsRXZlbnRX
YXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2
ZW50LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZGVmYXVsdEhhbmRsaW5nKQoreworICAgIFNj
cm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3RocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IG1ha2VSZWYo
ZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPigqc2Nyb2xsaW5nVHJlZSgpKSksIHdoZWVs
RXZlbnQsIGRlZmF1bHRIYW5kbGluZ10geworICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUt
PndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZGVmYXVsdEhh
bmRsaW5nKTsKKyAgICB9KTsKK30KKwogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6
OnNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsaW5nU3RhdGVU
cmVlQ29tbWl0dGVyVGltZXIuaXNBY3RpdmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Tmljb3NpYS5oCmluZGV4IDg0NTY2NWNlNzcxOGM2MGRkNGRiMTI4MDZjZGYzYzkxNTRmOGU0ZjIu
LjEwNjEyNTdiOGM5NDcyMDE1OTBhOTU5NmJmMWFiODQ5MGMwNTlkMjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JO
aWNvc2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3Jv
bGxpbmdDb29yZGluYXRvck5pY29zaWEuaApAQCAtNDQsNyArNDQsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVkKCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIGhh
bmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Ny
b2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICBib29sIHBlcmZvcm1EZWZhdWx0V2hlZWxFdmVu
dEhhbmRsaW5nKEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGlu
Z05vZGVJRCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWlu
VGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5n
Pikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1p
dCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4
IDdiOWI3M2M5ZDkzMmRjYTcxYjZjODU5MWUyMWY2YmViYTc4ZWI4ODEuLmU2Y2E5MmU0Zjc2NWM4
MjkxZTk3ODFiMGRmMjg3MmYyZDk1MGY3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50LmgKQEAgLTMwLDYgKzMwLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
ZW51bSBjbGFzcyBFdmVudEhhbmRsaW5nIDogdWludDhfdCB7CisgICAgRGlzcGF0Y2hlZFRvRE9N
ICAgICA9IDEgPDwgMCwKKyAgICBEZWZhdWx0UHJldmVudGVkICAgID0gMSA8PCAxLAorICAgIERl
ZmF1bHRIYW5kbGVkICAgICAgPSAxIDw8IDIsCit9OworCiBjbGFzcyBQbGF0Zm9ybUV2ZW50IHsK
IHB1YmxpYzoKICAgICBlbnVtIFR5cGUgOiB1aW50OF90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCmluZGV4IDQyNjYzYjc4YTQ1ZWRkODk5ZjUw
NTAwMWQ2MTVhYzk2ZWZjNzA3MTYuLmVjMTUyYTNlNDg4NDM5NGZkYTY1NDFlYjQwNTljMjBiNDBm
MTgzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxF
dmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50
LmNwcApAQCAtNjQsNyArNjQsMTggQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyBzdGVwcykKICAgICBzd2l0Y2ggKHN0ZXBz
KSB7CiAgICAgY2FzZSBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQ6
IHRzIDw8ICJzY3JvbGxpbmcgdGhyZWFkIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50UHJv
Y2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nOiB0cyA8PCAibWFpbiB0aHJlYWQg
c2Nyb2xsaW5nIjsgYnJlYWs7Ci0gICAgY2FzZSBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpN
YWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaDogdHMgPDwgIm1haW4gdGhyZWFkIERPTSBldmVu
dCBkaXNwYXRjaCI7IGJyZWFrOworICAgIGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6
TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnREaXNwYXRjaDogdHMgPDwgIm1haW4gdGhy
ZWFkIG5vbi1ibG9ja2luZyBET00gZXZlbnQgZGlzcGF0Y2giOyBicmVhazsKKyAgICBjYXNlIFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlz
cGF0Y2g6IHRzIDw8ICJtYWluIHRocmVhZCBibG9ja2luZyBET00gZXZlbnQgZGlzcGF0Y2giOyBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBFdmVudEhhbmRsaW5nIHN0ZXBzKQoreworICAgIHN3aXRjaCAoc3Rl
cHMpIHsKKyAgICBjYXNlIEV2ZW50SGFuZGxpbmc6OkRpc3BhdGNoZWRUb0RPTTogdHMgPDwgImRp
c3BhdGNoZWQgdG8gRE9NIjsgYnJlYWs7CisgICAgY2FzZSBFdmVudEhhbmRsaW5nOjpEZWZhdWx0
UHJldmVudGVkOiB0cyA8PCAiZGVmYXVsdCBwcmV2ZW50ZWQiOyBicmVhazsKKyAgICBjYXNlIEV2
ZW50SGFuZGxpbmc6OkRlZmF1bHRIYW5kbGVkOiB0cyA8PCAiZGVmYXVsdCBoYW5kbGVkIjsgYnJl
YWs7CiAgICAgfQogICAgIHJldHVybiB0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1XaGVlbEV2ZW50LmgKaW5kZXggM2Q1NjkzZDgyZTA5ZjMzMGNhZmI4OWY4YjVlZTI4
NzYwYjkzMmZiYS4uNWQ0ODY0ZDQ1NWEwMzQxNjE4N2NhMTZhNjI1NzI2YWJiYzRmMzdmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTM3LDkg
KzM3LDEwIEBAIGNsYXNzIFRleHRTdHJlYW07CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0g
Y2xhc3MgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3QgewotICAgIFNjcm9sbGlu
Z1RocmVhZCAgICAgICAgICAgICAgICAgPSAxIDw8IDAsCi0gICAgTWFpblRocmVhZEZvclNjcm9s
bGluZyAgICAgICAgICA9IDEgPDwgMSwKLSAgICBNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRj
aCAgID0gMSA8PCAyLAorICAgIFNjcm9sbGluZ1RocmVhZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxIDw8IDAsCisgICAgTWFpblRocmVhZEZvclNjcm9sbGluZyAgICAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMSwKKyAgICBNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERp
c3BhdGNoICAgID0gMSA8PCAyLAorICAgIE1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlz
cGF0Y2ggICAgICAgPSAxIDw8IDMsCiB9OwogCiAvLyBUaGUgU2Nyb2xsQnlQaXhlbFdoZWVsRXZl
bnQgaXMgYSBmaW5lLWdyYWluZWQgZXZlbnQgdGhhdCBzcGVjaWZpZXMgdGhlIHByZWNpc2UgbnVt
YmVyIG9mIHBpeGVscyB0byBzY3JvbGwuCkBAIC0yNjUsNSArMjY2LDYgQEAgaW5saW5lIEZsb2F0
UG9pbnQgUGxhdGZvcm1XaGVlbEV2ZW50Ojpzd2lwZVZlbG9jaXR5KCkgY29uc3QKIAogV0VCQ09S
RV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMp
OworV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIEV2ZW50SGFuZGxpbmcpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggZGE1MTk1
NWJiMDM4ZjhiZjc3MjhkZWM1NjE2YmU2MGVmYmJlZWIyMy4uOWRmOTE0ZDVkYWM1OTU0YmYzYzJi
YzVlMGJlY2ZhNjE5NTMzMzE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmNwcApAQCAtMTgwLDcgKzE4MCw3IEBAIGJvb2wgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8gcHJvY2Vzc2luZ1N0ZXBz
ID0gbV9zY3JvbGxpbmdUcmVlLT5kZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luZyh3aGVlbEV2
ZW50KTsKLSAgICBpZiAocHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSkpCisgICAgaWYgKHByb2Nl
c3NpbmdTdGVwcy5jb250YWluc0FueSh7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5U
aHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRG
b3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggfSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmIChtX3Njcm9sbGluZ1RyZWUtPndpbGxXaGVlbEV2ZW50U3RhcnRT
d2lwZUdlc3R1cmUod2hlZWxFdmVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA1NDljMDNhZGM1MjE5Nzc4ODk0
ZDIxMzM2NmQ3ZmNlY2NiNWVlZDUxLi43NTk4ZWNmYjRiNzI0OGUzZDY4ZjkyZTM0OWNhMzAyNmVl
OTAxNGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTEyMSwxNCArMTIxLDE0IEBAIHZvaWQgRXZlbnREaXNwYXRj
aGVyOjp3aGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVu
dCYgd2hlCiAgICAgfQogI2VuZGlmCiAKLSAgICBhdXRvIHByb2Nlc3NpbmdTdGVwcyA9IE9wdGlv
blNldDxXZWJDb3JlOjpXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB7IFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH07CisgICAgYXV0byBwcm9jZXNz
aW5nU3RlcHMgPSBPcHRpb25TZXQ8V2ViQ29yZTo6V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4g
eyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVl
bEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3Bh
dGNoIH07CiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCiAgICAgcHJvY2Vzc2luZ1N0ZXBz
ID0gWyZdKCkgLT4gT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHsKICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKIAogICAgICAgICBh
dXRvIHNjcm9sbGluZ1RyZWUgPSBtX3Njcm9sbGluZ1RyZWVzLmdldChwYWdlSUQpOwogICAgICAg
ICBpZiAoIXNjcm9sbGluZ1RyZWUpCi0gICAgICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJv
Y2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICAgICAgcmV0
dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnRE
aXNwYXRjaCB9OwogICAgICAgICAKICAgICAgICAgLy8gRklYTUU6IEl0J3MgcHJldHR5IGhvcnJp
YmxlIHRoYXQgd2UncmUgdXBkYXRpbmcgdGhlIGJhY2svZm9yd2FyZCBzdGF0ZSBoZXJlLgogICAg
ICAgICAvLyBXZWJDb3JlIHNob3VsZCBhbHdheXMga25vdyB0aGUgY3VycmVudCBzdGF0ZSBhbmQg
a25vdyB3aGVuIGl0IGNoYW5nZXMgc28gdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
CmluZGV4IGZiYTE5ZDg3NTE5MGEzZThmNjQ0ODY5ZDQyYzBjZTIzNWFkZWU5YjAuLmY3N2MyNjJl
MDk0ZjFiMjJiMjdlZDFkMjRhMmM2NGQwZTJiYzM3MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuY3BwCkBAIC0yMTM3LDcgKzIxMzcsNyBAQCBib29sIFdlYlZpZXc6Om1vdXNlV2hlZWwo
V1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSwgYm9vbCBpc01vdXNlSFdoZWVsKQogICAgIGlm
ICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gY29yZUZy
YW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQsIHsgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7CisgICAgcmV0
dXJuIGNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50
LCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlz
cGF0Y2ggfSk7CiB9CiAKIGJvb2wgV2ViVmlldzo6dmVydGljYWxTY3JvbGwoV1BBUkFNIHdQYXJh
bSwgTFBBUkFNIC8qbFBhcmFtKi8pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjM2M2RhMDZiZjkzMTgwZjIwOGFiMTUyN2U1
OTljOTdmMzIwM2QwOS4uYWI2OGRiZWMyZjUyZDk2ZDYxYjY3ZDE2ZDAzMTRkOWNmZGMyNWJkYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGlu
IGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIGhhbmRsaW5nIGEgc2VxdWVuY2Ugb2Ygd2hlZWwgZXZlbnRzIGluIGEgZ2VzdHVyZSBp
biBhIHJlZ2lvbiB3aXRoIG5vbi1wYXNzaXZlIHdoZWVsCisgICAgICAgIGV2ZW50IGhhbmRsZXJz
LCBvbmx5IGFsbG93IHRoZSBmaXJzdCBldmVudCBpbiB0aGUgc2VxdWVuY2UgdG8gY2FsbCBwcmV2
ZW50RGVmYXVsdCgpOworICAgICAgICBzdWJzZXF1ZW50IGV2ZW50cyBhcmUgbWFya2VkIGFzIG5v
bi1jYW5jZWxhYmxlLCBzbyBwcmV2ZW50RGVmYXVsdCgpIHdpbGwgaGF2ZSBubyBlZmZlY3QuCisK
KyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gZG8gYXN5bmMgc2Nyb2xsaW5nIGV2ZW4gd2hpbGUg
aW4gcmVnaW9ucyB3aXRoIGFjdGl2ZSB3aGVlbCBldmVudCBoYW5kbGVycywKKyAgICAgICAgaWYg
dGhvc2UgaGFuZGxlcnMgZG9uJ3QgY2FsbCBwcmV2ZW50RGVmYXVsdCgpIG9uIHRoZSBmaXJzdCBl
dmVudC4gVGhpcyBtYXRjaGVzIEJsaW5rCisgICAgICAgIGJlaGF2aW9yLgorCisgICAgICAgIFRv
IGFjaGlldmUgdGhpcywgdHJhY2sgc29tZSBiaXRzIGluIEV2ZW50SGFuZGxpbmcgdG8ga25vdyB3
aGV0aGVyIHRoZSBldmVudCB3YXMgZGlzcGF0Y2hlZAorICAgICAgICB0byBzY3JpcHQsIGFuZCB3
aGV0aGVyIGl0IHdhcyBjYW5jZWxlZC4gU2VuZCB0aGlzIGRhdGEgYmFjayB0byB0aGUgc2Nyb2xs
aW5nIHRocmVhZCB2aWEKKyAgICAgICAgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVh
ZCgpLCB3aGVyZSBpcyBzZXRzIGFuIE9wdGlvbmFsPGJvb2w+IG9uIFNjcm9sbGluZ1RyZWUuIFRo
aXMKKyAgICAgICAgZmxhZyBpcyBjb25zdWx0ZWQgYnkgU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5l
V2hlZWxFdmVudFByb2Nlc3NpbmcoKSwgYW5kIGlmIHdlIGhhdmUgcmVjZWl2ZWQKKyAgICAgICAg
aXQsIGFuZCB0aGUgZXZlbnQgd2FzIG5vdCBjYW5jZWxlZCwgd2UgdXNlIE1haW5UaHJlYWRGb3JO
b25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggd2hlbgorICAgICAgICBzZW5kaW5nIGV2ZW50cyB0
byB0aGUgbWFpbiB0aHJlYWQuIFRoaXMgaXMgdXNlZCB0byBtYXJrIHRoZSBldmVudCBhcyBub24t
Y2FuY2VsYWJsZSBpbgorICAgICAgICBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoKS4K
KyAgICAgICAgCisgICAgICAgIEFkZCBhbm90aGVyIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcgYml0
IHRvIFdoZWVsRXZlbnRUZXN0TW9uaXRvciB0byB0cmFjayB0aGUgcHJvcGFnYXRpb24KKyAgICAg
ICAgb2YgRXZlbnRIYW5kbGluZyBzdGF0ZSBiYWNrIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgor
CisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJs
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3doZWVsL2ZpcnN0
LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVu
dC1pbi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZl
bnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS5odG1sOiBBZGRlZC4KKwogMjAyMC0xMS0xMiAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGb3JjZSB3aGVl
bCBldmVudCBsaXN0ZW5lcnMgb24gdGhlIHJvb3QgdG8gYmUgcGFzc2l2ZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVl
bC1ldmVudC1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmE1OWRjYzMwMzQy
NmFhZWY1ZmRjM2M3NGE3MDk3ZGY0NTNmYWExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgcHJldmVudERlZmF1bHQgb24gdGhlIGZpcnN0
IGV2ZW50IHJlc3VsdHMgaW4gdGhlIHJlc3Qgb2YgdGhlIGV2ZW50cyBiZWluZyBjYW5jZWxhYmxl
CitQQVNTIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgaXMgMAorUEFTUyBmaXJzdFdhc0NhbmNlbGFi
bGUgaXMgdHJ1ZQorUEFTUyBmaXJzdFdhc0NhbmNlbGVkIGlzIHRydWUKK1BBU1Mgc3Vic2VxdWVu
dFdlcmVDYW5jZWxhYmxlIGlzIHRydWUKK1BBU1Mgc3Vic2VxdWVudFdlcmVDYW5jZWxlZCBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZl
bnQtY2FuY2VsYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qt
d2hlZWwtZXZlbnQtY2FuY2VsYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMDFkODc0NmQ3YTViOTkx
ZmYzNDQ3M2U5OGUwNGY2OTY0YjEyYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLmh0bWwKQEAgLTAs
MCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4K
KyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgI3RhcmdldCB7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
c2lsdmVyOworICAgICAgICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIGxldCB3aGVlbEV2ZW50Q291bnQgPSAwOworICAgICAgICBsZXQgd2lu
ZG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7CisKKyAgICAgICAgbGV0IGZpcnN0V2FzQ2FuY2VsYWJs
ZTsKKyAgICAgICAgbGV0IGZpcnN0V2FzQ2FuY2VsZWQ7CisgICAgICAgIGxldCBzZWNvbmRXYXND
YW5jZWxhYmxlOworICAgICAgICBsZXQgc2Vjb25kV2FzQ2FuY2VsZWQ7CisKKyAgICAgICAgYXN5
bmMgZnVuY3Rpb24gdGVzdFNjcm9sbCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgxMDAsIDEwMCk7CisgICAgICAgICAgICBzaG91bGRC
ZSgnd2luZG93U2Nyb2xsRXZlbnRDb3VudCcsICcwJyk7CisKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgnZmlyc3RXYXNDYW5jZWxhYmxlJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2Zp
cnN0V2FzQ2FuY2VsZWQnKTsKKworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdzZWNvbmRXYXND
YW5jZWxhYmxlJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3NlY29uZFdhc0NhbmNlbGVk
Jyk7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1
ZygnVGVzdHMgcHJldmVudERlZmF1bHQgb24gdGhlIGZpcnN0IGV2ZW50IHJlc3VsdHMgaW4gdGhl
IHJlc3Qgb2YgdGhlIGV2ZW50cyBiZWluZyBjYW5jZWxhYmxlJykKKyAgICAgICAgICAgIGxldCB0
YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAgICAgICAg
IHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIChldmVudCkgPT4geworICAgICAgICAg
ICAgICAgIGlmICghd2hlZWxFdmVudENvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0
V2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAgICAgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2Vs
ZWQgPSBldmVudC5kZWZhdWx0UHJldmVudGVkOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
d2hlZWxFdmVudENvdW50ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgc2Vjb25kV2FzQ2Fu
Y2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgICAgIHNlY29uZFdhc0NhbmNlbGVkID0g
ZXZlbnQuZGVmYXVsdFByZXZlbnRlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgKyt3aGVlbEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHsKKyAgICAgICAgICAgICAgICAr
K3dpbmRvd1Njcm9sbEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIHNldFRpbWVvdXQodGVzdFNjcm9sbCwgMCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+
CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4t
cGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNl
bGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNzEyOTcxZjNhOWRiM2JmYjljNzhkN2Zh
NzA1ZTEyNjQ2MWI1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0cyB0aGF0IHdoZWVsIGV2ZW50cyBpbiB0aGUg
cGFzc2l2ZSByZWdpb24gYXJlIG5vbi1jYW5jZWxhYmxlCitQQVNTIHdpbmRvd1Njcm9sbEV2ZW50
Q291bnQgPiAwIGlzIHRydWUKK1BBU1Mgd2FzQ2FuY2VsYWJsZSBpcyBmYWxzZQorUEFTUyB3YXND
YW5jZWxlZCBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3do
ZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1ub24t
Y2FuY2VsYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MTkwZTJiMDg0ZDg2YTEzZGVlZWUyYTUwNTJl
NDAwZTQ4NjNmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS5odG1sCkBA
IC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5
bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgd2lkdGg6IDIwMHB4
OworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHNpbHZlcjsKKyAgICAgICAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgICAgICBsZXQgaXNGaXJzdCA9IHRydWU7CisgICAgICAgIGxldCB3aW5k
b3dTY3JvbGxFdmVudENvdW50ID0gMDsKKyAgICAgICAgbGV0IHdhc0NhbmNlbGFibGU7CisgICAg
ICAgIGxldCB3YXNDYW5jZWxlZDsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0U2Nyb2xs
KCkKKyAgICAgICAgeworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIubW91c2VXaGVlbFNjcm9s
bEF0KDEwMCwgMTAwKTsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnd2luZG93U2Nyb2xsRXZl
bnRDb3VudCA+IDAnKTsKKworICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgnd2FzQ2FuY2VsYWJs
ZScpOworICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgnd2FzQ2FuY2VsZWQnKTsKKworICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAgIGRlYnVnKCdUZXN0cyB0aGF0
IHdoZWVsIGV2ZW50cyBpbiB0aGUgcGFzc2l2ZSByZWdpb24gYXJlIG5vbi1jYW5jZWxhYmxlJykK
KyAgICAgICAgICAgIGxldCB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0
Jyk7CisKKyAgICAgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgIGlmIChpc0ZpcnN0KSB7CisgICAgICAgICAgICAgICAg
ICAgIHdhc0NhbmNlbGFibGUgPSBldmVudC5jYW5jZWxhYmxlOworICAgICAgICAgICAgICAgICAg
ICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAgICAgICB3YXNDYW5jZWxl
ZCA9IGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQ7CisgICAgICAgICAgICAgICAgICAgIGlzRmlyc3Qg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICB9LCB7IHBhc3NpdmU6IHRydWUgfSk7CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgKyt3aW5kb3dTY3JvbGxF
dmVudENvdW50OworICAgICAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAgICAgICBzZXRUaW1l
b3V0KHRlc3RTY3JvbGwsIDApOworICAgICAgICB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorICAgIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNl
bGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwt
ZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU0
YTExOGRlZDRhNWQ2ZDdhZjYwNjA3YzcwNzQ1NGY1NGVjYjkwNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNh
bmNlbGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorVGVzdHMgdGhhdCBldmVudHMg
aW4gdGhlIGdlc3R1cmUgYXJlIG5vbi1jYW5jZWxhYmxlIGlmIHByZXZlbnREZWZhdWx0IHdhcyBu
b3QgY2FsbGVkIG9uIHRoZSBmaXJzdCBldmVudAorUEFTUyBmaXJzdFdhc0NhbmNlbGFibGUgaXMg
dHJ1ZQorUEFTUyBiZWNhbWVOb25DYW5jZWxhYmxlIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5v
bi1jYW5jZWxhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk0Y2RhYWUxNzhhMzhlNDkzY2I2NzBiZTU4
YzVjMjkwMTVmNGVkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUuaHRtbApAQCAtMCwwICsx
LDgxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAg
ICAgICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAg
ICAgICAgIGhlaWdodDogMTAwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2ls
dmVyOworICAgICAgICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgICAgIGxldCB3aGVlbEV2ZW50Q291bnQgPSAwOworCisgICAgICAgIGxldCBmaXJz
dFdhc0NhbmNlbGFibGU7CisgICAgICAgIGxldCBiZWNhbWVOb25DYW5jZWxhYmxlOworCisgICAg
ICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RTY3JvbGwoKQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIWV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbygxMDAsIDEwMCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAiY2hh
bmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRh
dGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwg
Im5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAiZW5kZWQiLCAibm9uZSIpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2Nyb2xsQ29t
cGxldGlvbigpOworCisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2ZpcnN0V2FzQ2FuY2VsYWJs
ZScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdiZWNhbWVOb25DYW5jZWxhYmxlJyk7CisK
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygnVGVz
dHMgdGhhdCBldmVudHMgaW4gdGhlIGdlc3R1cmUgYXJlIG5vbi1jYW5jZWxhYmxlIGlmIHByZXZl
bnREZWZhdWx0IHdhcyBub3QgY2FsbGVkIG9uIHRoZSBmaXJzdCBldmVudCcpOworICAgICAgICAg
ICAgbGV0IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAg
ICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgaWYgKHdoZWVsRXZlbnRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAg
ICAgICAgIGZpcnN0V2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIGZpcnN0
IG5vbi1jYW5jZWxhYmxlIGV2ZW50IGFuZCBjaGVjayB0aGF0IGFsbCBzdWJzZXF1ZW50IGV2ZW50
cyBhcmUgbm9uLWNhbmNlbGFibGUuCisgICAgICAgICAgICAgICAgICAgIGlmIChiZWNhbWVOb25D
YW5jZWxhYmxlICYmIGV2ZW50LmNhbmNlbGFibGUpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCdTaG91bGQgbm90IHNlZSBjYW5jZWxhYmxlIGV2ZW50IGFmdGVyIG5vbi1jYW5j
ZWxhYmxlIGV2ZW50JykKKworICAgICAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LmNhbmNlbGFi
bGUpCisgICAgICAgICAgICAgICAgICAgICAgICBiZWNhbWVOb25DYW5jZWxhYmxlID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKyt3aGVlbEV2ZW50Q291bnQ7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0U2Nyb2xsLCAwKTsK
KyAgICAgICAgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414119</attachid>
            <date>2020-11-13 19:58:38 -0800</date>
            <delta_ts>2020-11-17 13:18:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201113195837.patch</filename>
            <type>text/plain</type>
            <size>57796</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTUyMDljYzg2NjUwNmZj
MDFlZTQwZGJiYmQyM2ZjYmMyYjQ5YmQ2YS4uYTRiYzc2OGE1N2Y4M2UxYjYyYjdhMDcxOTJhMGNl
ZmFhNzU2MWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDIwLTExLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZp
cnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIGhhbmRsaW5nIGEgc2VxdWVuY2Ugb2Ygd2hlZWwgZXZl
bnRzIGluIGEgZ2VzdHVyZSBpbiBhIHJlZ2lvbiB3aXRoIG5vbi1wYXNzaXZlIHdoZWVsCisgICAg
ICAgIGV2ZW50IGhhbmRsZXJzLCBvbmx5IGFsbG93IHRoZSBmaXJzdCBldmVudCBpbiB0aGUgc2Vx
dWVuY2UgdG8gY2FsbCBwcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBzdWJzZXF1ZW50IGV2ZW50
cyBhcmUgbWFya2VkIGFzIG5vbi1jYW5jZWxhYmxlLCBzbyBwcmV2ZW50RGVmYXVsdCgpIHdpbGwg
aGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gZG8gYXN5bmMgc2Ny
b2xsaW5nIGV2ZW4gd2hpbGUgaW4gcmVnaW9ucyB3aXRoIGFjdGl2ZSB3aGVlbCBldmVudCBoYW5k
bGVycywKKyAgICAgICAgaWYgdGhvc2UgaGFuZGxlcnMgZG9uJ3QgY2FsbCBwcmV2ZW50RGVmYXVs
dCgpIG9uIHRoZSBmaXJzdCBldmVudC4gVGhpcyBtYXRjaGVzIEJsaW5rCisgICAgICAgIGJlaGF2
aW9yLgorCisgICAgICAgIFRvIGFjaGlldmUgdGhpcywgdHJhY2sgc29tZSBiaXRzIGluIEV2ZW50
SGFuZGxpbmcgdG8ga25vdyB3aGV0aGVyIHRoZSBldmVudCB3YXMgZGlzcGF0Y2hlZAorICAgICAg
ICB0byBzY3JpcHQsIGFuZCB3aGV0aGVyIGl0IHdhcyBjYW5jZWxlZC4gU2VuZCB0aGlzIGRhdGEg
YmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCB2aWEKKyAgICAgICAgd2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZCgpLCB3aGVyZSBpcyBzZXRzIGFuIE9wdGlvbmFsPGJvb2w+IG9u
IFNjcm9sbGluZ1RyZWUuIFRoaXMKKyAgICAgICAgZmxhZyBpcyBjb25zdWx0ZWQgYnkgU2Nyb2xs
aW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcoKSwgYW5kIGlmIHdlIGhhdmUg
cmVjZWl2ZWQKKyAgICAgICAgaXQsIGFuZCB0aGUgZXZlbnQgd2FzIG5vdCBjYW5jZWxlZCwgd2Ug
dXNlIE1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggd2hlbgorICAgICAg
ICBzZW5kaW5nIGV2ZW50cyB0byB0aGUgbWFpbiB0aHJlYWQuIFRoaXMgaXMgdXNlZCB0byBtYXJr
IHRoZSBldmVudCBhcyBub24tY2FuY2VsYWJsZSBpbgorICAgICAgICBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQoKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBhbm90aGVyIFJlcG9ydERP
TUV2ZW50SGFuZGxpbmcgYml0IHRvIFdoZWVsRXZlbnRUZXN0TW9uaXRvciB0byB0cmFjayB0aGUg
cHJvcGFnYXRpb24KKyAgICAgICAgb2YgRXZlbnRIYW5kbGluZyBzdGF0ZSBiYWNrIHRvIHRoZSBz
Y3JvbGxpbmcgdGhyZWFkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy93aGVlbC9maXJz
dC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRz
L3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9u
LWNhbmNlbGFibGUuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0Y2hXaGVlbEV2ZW50KToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5oOgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldoZWVsRXZlbnQ6OldoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudDo6
Y3JlYXRlKToKKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5oOgorICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVu
dFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpo
YW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3Ojp3aGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmRpc3BhdGNoTG9j
a2VkV2hlZWxFdmVudCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2
ZW50VGVzdE1vbml0b3IuaDoKKyAgICAgICAgKiBwYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndoZWVsRXZlbnQpOgorICAgICAgICAq
IHBhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndoZWVs
RXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29y
ZGluYXRvcjo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFuZGxpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5U
aHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhhbmRsZVdo
ZWVsRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxF
dmVudFByb2Nlc3NpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFuZGxl
V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJl
UmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2gpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdDo6bmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZyBjb25zdCk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQ
cm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjOjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpuZXh0RGVmZXJJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRm
b3JtL1BsYXRmb3JtRXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisKIDIwMjAtMTEtMTIgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yY2Ugd2hlZWwgZXZlbnQgbGlzdGVu
ZXJzIG9uIHRoZSByb290IHRvIGJlIHBhc3NpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjdiYTY2Yzg3MjUxMGU4
YTJmN2IxNjYwYmNkYTlkNTYzZjY0YzBhYy4uOWJiZGVlN2YwMjBiMThkNzc1YWI2OWE5NWY3ZmNm
MjA3ZjliYzhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0xMS0xMyAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBPbmx5IHRoZSBmaXJz
dCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUgc2hvdWxkIGJlIGNhbmNlbGFibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODc2NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzEyNDg5NDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2hlbiBoYW5kbGluZyBhIHNlcXVlbmNlIG9mIHdoZWVsIGV2ZW50
cyBpbiBhIGdlc3R1cmUgaW4gYSByZWdpb24gd2l0aCBub24tcGFzc2l2ZSB3aGVlbAorICAgICAg
ICBldmVudCBoYW5kbGVycywgb25seSBhbGxvdyB0aGUgZmlyc3QgZXZlbnQgaW4gdGhlIHNlcXVl
bmNlIHRvIGNhbGwgcHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgc3Vic2VxdWVudCBldmVudHMg
YXJlIG1hcmtlZCBhcyBub24tY2FuY2VsYWJsZSwgc28gcHJldmVudERlZmF1bHQoKSB3aWxsIGhh
dmUgbm8gZWZmZWN0LgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGRvIGFzeW5jIHNjcm9s
bGluZyBldmVuIHdoaWxlIGluIHJlZ2lvbnMgd2l0aCBhY3RpdmUgd2hlZWwgZXZlbnQgaGFuZGxl
cnMsCisgICAgICAgIGlmIHRob3NlIGhhbmRsZXJzIGRvbid0IGNhbGwgcHJldmVudERlZmF1bHQo
KSBvbiB0aGUgZmlyc3QgZXZlbnQuIFRoaXMgbWF0Y2hlcyBCbGluaworICAgICAgICBiZWhhdmlv
ci4KKworICAgICAgICBUbyBhY2hpZXZlIHRoaXMsIHRyYWNrIHNvbWUgYml0cyBpbiBFdmVudEhh
bmRsaW5nIHRvIGtub3cgd2hldGhlciB0aGUgZXZlbnQgd2FzIGRpc3BhdGNoZWQKKyAgICAgICAg
dG8gc2NyaXB0LCBhbmQgd2hldGhlciBpdCB3YXMgY2FuY2VsZWQuIFNlbmQgdGhpcyBkYXRhIGJh
Y2sgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQgdmlhCisgICAgICAgIHdoZWVsRXZlbnRXYXNQcm9j
ZXNzZWRCeU1haW5UaHJlYWQoKSwgd2hlcmUgaXMgc2V0cyBhbiBPcHRpb25hbDxib29sPiBvbiBT
Y3JvbGxpbmdUcmVlLiBUaGlzCisgICAgICAgIGZsYWcgaXMgY29uc3VsdGVkIGJ5IFNjcm9sbGlu
Z1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKCksIGFuZCBpZiB3ZSBoYXZlIHJl
Y2VpdmVkCisgICAgICAgIGl0LCBhbmQgdGhlIGV2ZW50IHdhcyBub3QgY2FuY2VsZWQsIHdlIHVz
ZSBNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIHdoZW4KKyAgICAgICAg
c2VuZGluZyBldmVudHMgdG8gdGhlIG1haW4gdGhyZWFkLiBUaGlzIGlzIHVzZWQgdG8gbWFyayB0
aGUgZXZlbnQgYXMgbm9uLWNhbmNlbGFibGUgaW4KKyAgICAgICAgRXZlbnRIYW5kbGVyOjpoYW5k
bGVXaGVlbEV2ZW50KCkuCisgICAgICAgIAorICAgICAgICBBZGQgYW5vdGhlciBSZXBvcnRET01F
dmVudEhhbmRsaW5nIGJpdCB0byBXaGVlbEV2ZW50VGVzdE1vbml0b3IgdG8gdHJhY2sgdGhlIHBy
b3BhZ2F0aW9uCisgICAgICAgIG9mIEV2ZW50SGFuZGxpbmcgc3RhdGUgYmFjayB0byB0aGUgc2Ny
b2xsaW5nIHRocmVhZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQpOgorCiAyMDIwLTExLTEyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIHdoZWVsIGV2ZW50
IGxpc3RlbmVycyBvbiB0aGUgcm9vdCB0byBiZSBwYXNzaXZlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggZjc3ZTU2NjBjOTg5YTY1MWM3YTkxMzg0ODhhNzFlMjJiYTk3MTM0Mi4uOTllYzVjYzMx
NjIxYjBhNWUwMDYwZmE1NmRkYTA0Y2FhYTljOTZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtNDIwLDkgKzQyMCw5IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QKICAgICByZXR1cm4gZGlk
Tm90U3dhbGxvd0V2ZW50OwogfQogCi1ib29sIEVsZW1lbnQ6OmRpc3BhdGNoV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHBsYXRmb3JtRXZlbnQpCitib29sIEVsZW1lbnQ6OmRp
c3BhdGNoV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHBsYXRmb3JtRXZlbnQs
IE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiYgcHJvY2Vzc2luZywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZSBpc0NhbmNlbGFibGUpCiB7Ci0gICAgYXV0byBldmVudCA9IFdoZWVsRXZlbnQ6OmNyZWF0ZShw
bGF0Zm9ybUV2ZW50LCBkb2N1bWVudCgpLndpbmRvd1Byb3h5KCkpOworICAgIGF1dG8gZXZlbnQg
PSBXaGVlbEV2ZW50OjpjcmVhdGUocGxhdGZvcm1FdmVudCwgZG9jdW1lbnQoKS53aW5kb3dQcm94
eSgpLCBpc0NhbmNlbGFibGUpOwogCiAgICAgLy8gRXZlbnRzIHdpdGggbm8gZGVsdGFzIGFyZSBp
bXBvcnRhbnQgYmVjYXVzZSB0aGV5IGNvbnZleSBwbGF0Zm9ybSBpbmZvcm1hdGlvbiBhYm91dCBz
Y3JvbGwgZ2VzdHVyZXMKICAgICAvLyBhbmQgbW9tZW50dW0gYmVnaW5uaW5nIG9yIGVuZGluZy4g
SG93ZXZlciwgdGhvc2UgZXZlbnRzIHNob3VsZCBub3QgYmUgc2VudCB0byB0aGUgRE9NIHNpbmNl
IHNvbWUKQEAgLTQzMCwxMiArNDMwLDIxIEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgcGxhdGZvcm1FdmVudCkKICAgICAvLyBldmVu
dCBoYW5kbGVyLCBhbmQgb3VyIHBsYXRmb3JtIGNvZGUgd2lsbCBjb3JyZWN0bHkgaGFuZGxlIHRo
ZSBwaGFzZSBjaGFuZ2VzLiBDYWxsaW5nIHN0b3BQcm9wYWdhdGlvbigpCiAgICAgLy8gd2lsbCBw
cmV2ZW50IHRoZSBldmVudCBmcm9tIGJlaW5nIHNlbnQgdG8gdGhlIERPTSwgYnV0IHdpbGwgc3Rp
bGwgY2FsbCB0aGUgZGVmYXVsdCBldmVudCBoYW5kbGVyLgogICAgIC8vIEZJWE1FOiBNb3ZlIHRo
aXMgbG9naWMgaW50byBXaGVlbEV2ZW50OjpjcmVhdGUuCi0gICAgaWYgKCFwbGF0Zm9ybUV2ZW50
LmRlbHRhWCgpICYmICFwbGF0Zm9ybUV2ZW50LmRlbHRhWSgpKQorICAgIGlmIChwbGF0Zm9ybUV2
ZW50LmRlbHRhKCkuaXNaZXJvKCkpCiAgICAgICAgIGV2ZW50LT5zdG9wUHJvcGFnYXRpb24oKTsK
KyAgICBlbHNlCisgICAgICAgIHByb2Nlc3NpbmcuYWRkKEV2ZW50SGFuZGxpbmc6OkRpc3BhdGNo
ZWRUb0RPTSk7CiAKICAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAKICAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkVsZW1lbnQgIiA8PCAqdGhpcyA8PCAiIGRp
c3BhdGNoV2hlZWxFdmVudDogZGVmYXVsdFByZXZlbnRlZCAiIDw8IGV2ZW50LT5kZWZhdWx0UHJl
dmVudGVkKCkgPDwgIiBkZWZhdWx0SGFuZGxlZCAiIDw8IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgp
KTsKKyAgICAKKyAgICBpZiAoZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSkKKyAgICAgICAgcHJv
Y2Vzc2luZy5hZGQoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCk7CisKKyAgICBpZiAo
ZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgIHByb2Nlc3NpbmcuYWRkKEV2ZW50SGFu
ZGxpbmc6OkRlZmF1bHRIYW5kbGVkKTsKKwogICAgIHJldHVybiAhZXZlbnQtPmRlZmF1bHRQcmV2
ZW50ZWQoKSAmJiAhZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CmluZGV4IDliYzdkMjBjOWRjY2Q3MWRiZjk0MzNkYTE1NDc0MjBlNmE3MWIzMzMuLmZjYjdjZWI2
MjViOTE0Mzk3OGNmYTc3ZmQzZmU4YTc4Y2Y0MWQ5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAt
NjYsNiArNjYsOCBAQCBzdHJ1Y3QgS2V5ZnJhbWVBbmltYXRpb25PcHRpb25zOwogc3RydWN0IFNj
cm9sbEludG9WaWV3T3B0aW9uczsKIHN0cnVjdCBTY3JvbGxUb09wdGlvbnM7CiAKK2VudW0gY2xh
c3MgRXZlbnRQcm9jZXNzaW5nIDogdWludDhfdDsKKwogI2lmIEVOQUJMRShJTlRFUlNFQ1RJT05f
T0JTRVJWRVIpCiBzdHJ1Y3QgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEYXRhOwogI2VuZGlmCkBAIC01
MzAsNyArNTMyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2F2ZWRMYXllclNjcm9sbFBvc2l0
aW9uKGNvbnN0IEludFBvaW50Jik7CiAKICAgICBib29sIGRpc3BhdGNoTW91c2VFdmVudChjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCBj
bGlja0NvdW50ID0gMCwgRWxlbWVudCogcmVsYXRlZFRhcmdldCA9IG51bGxwdHIpOwotICAgIGJv
b2wgZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOworICAgIGJv
b2wgZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNl
dDxFdmVudEhhbmRsaW5nPiYsIEV2ZW50OjpJc0NhbmNlbGFibGUgPSBFdmVudDo6SXNDYW5jZWxh
YmxlOjpZZXMpOwogICAgIGJvb2wgZGlzcGF0Y2hLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQmKTsKICAgICBib29sIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVy
bHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0aW9ucyA9IFNlbmROb0V2ZW50
cywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zID0gU2hvd1ByZXNzZWRMb29rKTsKICAgICB2
b2lkIGRpc3BhdGNoRm9jdXNJbkV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVm
UHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQu
Y3BwCmluZGV4IDZmNWQxNWZiMmQzYTQ5MDEwN2E3ZWI4Zjc3MWI5NWRjNDM0MjJmY2QuLjQ4ZWE1
YmQzMTRhNTIzMDM2NWIzMTdiNTg4MTA4YWQ2Nzc0MzI3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5jcHAKQEAgLTUwLDggKzUwLDggQEAgaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQo
Y29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIpCiB7CiB9CiAK
LWlubGluZSBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3KQotICAgIDogTW91c2VFdmVudChldmVu
dE5hbWVzKCkud2hlZWxFdmVudCwgQ2FuQnViYmxlOjpZZXMsIElzQ2FuY2VsYWJsZTo6WWVzLCBJ
c0NvbXBvc2VkOjpZZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGlt
ZSgpLCBXVEZNb3ZlKHZpZXcpLCAwLAoraW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcs
IElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50TmFtZXMo
KS53aGVlbEV2ZW50LCBDYW5CdWJibGU6OlllcywgaXNDYW5jZWxhYmxlLCBJc0NvbXBvc2VkOjpZ
ZXMsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCBXVEZNb3Zl
KHZpZXcpLCAwLAogICAgICAgICBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlv
bigpICwgeyB9LCBldmVudC5tb2RpZmllcnMoKSwgMCwgMCwgbnVsbHB0ciwgMCwgMCwgSXNTaW11
bGF0ZWQ6Ok5vLCBJc1RydXN0ZWQ6OlllcykKICAgICAsIG1fd2hlZWxEZWx0YShldmVudC53aGVl
bFRpY2tzWCgpICogVGlja011bHRpcGxpZXIsIGV2ZW50LndoZWVsVGlja3NZKCkgKiBUaWNrTXVs
dGlwbGllcikKICAgICAsIG1fZGVsdGFYKC1ldmVudC5kZWx0YVgoKSkKQEAgLTYxLDkgKzYxLDkg
QEAgaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3gKIHsKIH0KIAotUmVmPFdoZWVsRXZlbnQ+IFdoZWVs
RXZlbnQ6OmNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2lu
ZG93UHJveHk+JiYgdmlldykKK1JlZjxXaGVlbEV2ZW50PiBXaGVlbEV2ZW50OjpjcmVhdGUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcs
IElzQ2FuY2VsYWJsZSBpc0NhbmNlbGFibGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2hlZWxFdmVudChldmVudCwgV1RGTW92ZSh2aWV3KSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdoZWVsRXZlbnQoZXZlbnQsIFdURk1vdmUodmlldyksIGlzQ2FuY2VsYWJsZSkpOwogfQog
CiBSZWY8V2hlZWxFdmVudD4gV2hlZWxFdmVudDo6Y3JlYXRlRm9yQmluZGluZ3MoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmgKaW5kZXggY2ZkNTk3NzU0ZjVjYTAwZTg3MGRmMmYyNzQ0ODE3NTg2YThi
ZWFjNi4uNjI0NGEzMjIxYjZhMzA1NzRlNGY1NDA1MGY5ZmQ1MTg4Y2IwNzIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vV2hlZWxFdmVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICAgICAgRE9NX0RF
TFRBX1BBR0UKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxXaGVlbEV2ZW50PiBjcmVhdGUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmKTsKKyAgICBzdGF0
aWMgUmVmPFdoZWVsRXZlbnQ+IGNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBSZWZQ
dHI8V2luZG93UHJveHk+JiYsIElzQ2FuY2VsYWJsZSA9IElzQ2FuY2VsYWJsZTo6WWVzKTsKICAg
ICBzdGF0aWMgUmVmPFdoZWVsRXZlbnQ+IGNyZWF0ZUZvckJpbmRpbmdzKCk7CiAKICAgICBzdHJ1
Y3QgSW5pdCA6IE1vdXNlRXZlbnRJbml0IHsKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBXaGVlbEV2ZW50KCk7CiAgICAgV2hlZWxFdmVudChjb25zdCBBdG9tU3RyaW5n
JiwgY29uc3QgSW5pdCYpOwotICAgIFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmKTsKKyAgICBXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgSXNDYW5jZWxhYmxlKTsKIAogICAg
IEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1YmU5ODA0NjI2MTNlMjFkM2IxMmU2ZTBlNTMz
ZDYxMDQ4OTlkMmYxLi44YTE0OTQxOTU5YmIzYmM3ODA4ZDFkNGQ0ZGE1YTY0YmZmYmJkYjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNzkzLDYgKzI3OTMsMTAgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgZXZlbnQKICAgICByZXR1cm4gZGlkSGFuZGxlRXZlbnQ7CiB9CiAK
K3ZvaWQgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikKK3sKK30K
KwogYm9vbCBFdmVudEhhbmRsZXI6OnBsYXRmb3JtQ29tcGxldGVQbGF0Zm9ybVdpZGdldFdoZWVs
RXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2lkZ2V0JiwgY29uc3QgV2Vh
a1B0cjxTY3JvbGxhYmxlQXJlYT4mKQogewogICAgIHJldHVybiB0cnVlOwpAQCAtMjg2Myw2ICsy
ODY3LDE0IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpjb21wbGV0ZVdpZGdldFdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgY29uCiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMpCit7CisgICAg
T3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGhhbmRsaW5nOworICAgIGJvb2wgaGFuZGxlZCA9IGhh
bmRsZVdoZWVsRXZlbnRJbnRlcm5hbChldmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCBoYW5kbGluZyk7
CisgICAgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChldmVudCwgaGFuZGxpbmcp
OworICAgIHJldHVybiBoYW5kbGVkOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hl
ZWxFdmVudEludGVybmFsKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIE9wdGlvblNl
dDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMsIE9wdGlvblNldDxF
dmVudEhhbmRsaW5nPiYgaGFuZGxpbmcpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBtX2ZyYW1l
LmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKQEAgLTI5MjUsNyArMjkzNyw4IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgZXZlbnQsIE9wdGlvblNldDxXCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAoIWVsZW1lbnQtPmRpc3BhdGNoV2hlZWxFdmVudChldmVudCkpIHsKKyAgICAgICAgYXV0
byBpc0NhbmNlbGFibGUgPSBwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCkgPyBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpZZXMgOiBFdmVudDo6SXNDYW5jZWxhYmxlOjpObzsKKyAgICAgICAg
aWYgKCFlbGVtZW50LT5kaXNwYXRjaFdoZWVsRXZlbnQoZXZlbnQsIGhhbmRsaW5nLCBpc0NhbmNl
bGFibGUpKSB7CiAgICAgICAgICAgICBtX2lzSGFuZGxpbmdXaGVlbEV2ZW50ID0gZmFsc2U7CiAg
ICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEgJiYgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFNo
b3VsZENsZWFyTGF0Y2hlZFN0YXRlKCkpIHsKICAgICAgICAgICAgICAgICAvLyBXZWIgZGV2ZWxv
cGVyIGlzIGNvbnRyb2xsaW5nIHNjcm9sbGluZywgc28gZG9uJ3QgYXR0ZW1wdCB0byBsYXRjaC4K
QEAgLTI5NTUsNiArMjk2OCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIE9wdGlvblNldDxXCiAgICAgICAgIGhh
bmRsZWRFdmVudCA9IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGV2ZW50LCBzY3JvbGxh
YmxlQXJlYSk7CiAgICAgICAgIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChldmVudCwg
c2Nyb2xsYWJsZUFyZWEpOwogICAgIH0KKwogICAgIHJldHVybiBoYW5kbGVkRXZlbnQ7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGU4NTU4ODY1NjU0ZjkzNDM4NWQyODBl
YjM5ZmZhMTgzMzRhOGNkOGEuLjkwYzc4N2I2N2UyZjNkYzI5ZDQ1ODhlZWJmNTg3ZmE5MzUxZGU5
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjA4LDggKzIwOCwxMSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBIaXRUZXN0UmVzdWx0KiA9IG51bGxwdHIsIGJvb2wgb25seVVwZGF0ZVNjcm9sbGJh
cnMgPSBmYWxzZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVNb3VzZVJlbGVhc2VF
dmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZU1vdXNlRm9y
Y2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKKwogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25T
ZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4pOwogICAgIHZvaWQgZGVmYXVsdFdoZWVsRXZl
bnRIYW5kbGVyKE5vZGUqLCBXaGVlbEV2ZW50Jik7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJv
Y2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxF
dmVudEhhbmRsaW5nPik7CisKICAgICBib29sIGhhbmRsZVBhc3RlR2xvYmFsU2VsZWN0aW9uKGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
IHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpCkBAIC00NTIsNiArNDU1LDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgcGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoV2lkZ2V0Kik7CiAKKyAg
ICBib29sIGhhbmRsZVdoZWVsRXZlbnRJbnRlcm5hbChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4sIE9wdGlvblNldDxFdmVudEhh
bmRsaW5nPiYpOwogICAgIGJvb2wgcGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmLCBXaWRnZXQmLCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
cz4pOwogICAgIHZvaWQgZGV0ZXJtaW5lV2hlZWxFdmVudFRhcmdldChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmLCBSZWZQdHI8RWxlbWVudD4mIGV2ZW50VGFyZ2V0LCBXZWFrUHRyPFNjcm9sbGFi
bGVBcmVhPiYsIGJvb2wmIGlzT3ZlcldpZGdldCk7CiAgICAgdm9pZCByZWNvcmRXaGVlbEV2ZW50
Rm9yRGVsdGFGaWx0ZXIoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggNDdkMDMxMDdmMDRhMjk0OGRmZTk3ODJiMzMwMDU5YTg4ZDFjNTMy
YS4uMDhiM2MxMGZjZmUxNjI3NjJhZTQyMjAxNmI1MjFkYWI1MWU4NjRkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtNTE0NSw3ICs1MTQ1LDcgQEAgYm9vbCBGcmFtZVZpZXc6Ondo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogI2lmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCiAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0
aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAgICAgIGlmIChzY3JvbGxpbmdDb29y
ZGluYXRvci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JGcmFtZVZpZXcoKnRoaXMpKQotICAgICAg
ICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5oYW5kbGVXaGVlbEV2ZW50KCp0aGlz
LCB3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQoKSk7CisgICAgICAgICAgICByZXR1cm4gc2Ny
b2xsaW5nQ29vcmRpbmF0b3ItPnBlcmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKHdoZWVs
RXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCmluZGV4IGVhZGNlZTM2ZTk3M2Ex
ZGQzYmU3Njg3ZTg5ZDA3YjQzOTQ5ZDIzZGQuLmNmMWFjNWQwYTIzOGI0NTM4MTVlY2RkYTgyMTI3
MjdhMTJkOGVhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5jcHAKQEAgLTE5Myw3ICsxOTMsOCBAQCB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6
ZGlzcGF0Y2hMb2NrZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZQogICAg
IGlmICghbV9lbGVtZW50IHx8ICFtX2VsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9lbGVtZW50LT5kaXNwYXRjaFdoZWVsRXZlbnQoZXZlbnQpOwor
ICAgIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmc7CisgICAgbV9lbGVt
ZW50LT5kaXNwYXRjaFdoZWVsRXZlbnQoZXZlbnQsIGRlZmF1bHRIYW5kbGluZyk7CiB9CiAKIHZv
aWQgUG9pbnRlckxvY2tDb250cm9sbGVyOjpjbGVhckVsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCmluZGV4IDBlMWFiNGRjOTlkOWZhZjk3
OGYxMjFjZjZmMTVmM2UwNmM3ZGQ4MzguLjYzNzcyMDI4NjYxODFmMGM2ZGRiZGUyYTczZWM3ODNm
ODQ4N2M3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RN
b25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRv
ci5jcHAKQEAgLTE3MCw2ICsxNzAsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uIHJlYXNvbgogICAgIHN3
aXRjaCAocmVhc29uKSB7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5n
V2hlZWxFdmVudDogdHMgPDwgImhhbmRsaW5nIHdoZWVsIGV2ZW50IjsgYnJlYWs7CiAgICAgY2Fz
ZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZDog
dHMgPDwgImhhbmRsaW5nIHdoZWVsIGV2ZW50IG9uIG1haW4gdGhyZWFkIjsgYnJlYWs7CisgICAg
Y2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmc6IHRzIDw8
ICJyZXBvcnQgRE9NIGV2ZW50IGhhbmRsaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OlJ1YmJlcmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7
IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9n
cmVzczogdHMgPDwgInNjcm9sbC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5n
IHRocmVhZCBzeW5jIG5lZWRlZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxF
dmVudFRlc3RNb25pdG9yLmgKaW5kZXggMDI2MTAzZjRlYzgzZWIyNjg5ZmEyYjNlYzEyMjVmMDUw
YWU2MzhlZC4uOTIwNzdlOWQ1ZmFiMGVmOWZlMjZmMDU1MjU3MzcyOGMxYzc2NzVjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC01MCwxMSArNTAs
MTIgQEAgcHVibGljOgogICAgIGVudW0gRGVmZXJSZWFzb24gewogICAgICAgICBIYW5kbGluZ1do
ZWVsRXZlbnQgICAgICAgICAgICAgID0gMSA8PCAwLAogICAgICAgICBIYW5kbGluZ1doZWVsRXZl
bnRPbk1haW5UaHJlYWQgID0gMSA8PCAxLAotICAgICAgICBSdWJiZXJiYW5kSW5Qcm9ncmVzcyAg
ICAgICAgICAgID0gMSA8PCAyLAotICAgICAgICBTY3JvbGxTbmFwSW5Qcm9ncmVzcyAgICAgICAg
ICAgID0gMSA8PCAzLAotICAgICAgICBTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkICAgICAgID0g
MSA8PCA0LAotICAgICAgICBDb250ZW50U2Nyb2xsSW5Qcm9ncmVzcyAgICAgICAgID0gMSA8PCA1
LAotICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiAgICAgICAgID0gMSA8PCA2LAorICAg
ICAgICBSZXBvcnRET01FdmVudEhhbmRsaW5nICAgICAgICAgID0gMSA8PCAyLAorICAgICAgICBS
dWJiZXJiYW5kSW5Qcm9ncmVzcyAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICBTY3JvbGxT
bmFwSW5Qcm9ncmVzcyAgICAgICAgICAgID0gMSA8PCA0LAorICAgICAgICBTY3JvbGxpbmdUaHJl
YWRTeW5jTmVlZGVkICAgICAgID0gMSA8PCA1LAorICAgICAgICBDb250ZW50U2Nyb2xsSW5Qcm9n
cmVzcyAgICAgICAgID0gMSA8PCA2LAorICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiAg
ICAgICAgID0gMSA8PCA3LAogICAgIH07CiAgICAgdHlwZWRlZiBjb25zdCB2b2lkKiBTY3JvbGxh
YmxlQXJlYUlkZW50aWZpZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxl
cklPUy5tbQppbmRleCBjNTU1MjQ1NzIxZTlmZjIzMGVkNWJkYzlkZDIyZTVmMTQwYjg3Y2YyLi43
ZDFkNWE0YzdjZWE1YTY3YjhmMzEyMTg4MDY2OTBlNmRlYjJlYTZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC0xMDcsNyArMTA3LDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OndoZWVsRXZlbnQoV2ViRXZlbnQgKmV2ZW50KQogCiAgICAgQ3VycmVudEV2
ZW50U2NvcGUgc2NvcGUoZXZlbnQpOwogCi0gICAgYm9vbCBldmVudFdhc0hhbmRsZWQgPSBoYW5k
bGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZl
bnQoZXZlbnQpLCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3Jv
bGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERp
c3BhdGNoIH0pOworICAgIGJvb2wgZXZlbnRXYXNIYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudChQ
bGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1XaGVlbEV2ZW50KGV2ZW50KSwgeyBX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNo
IH0pOwogICAgIGV2ZW50Lndhc0hhbmRsZWQgPSBldmVudFdhc0hhbmRsZWQ7CiAgICAgcmV0dXJu
IGV2ZW50V2FzSGFuZGxlZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbQppbmRleCBhZjczNWVlN2FlYTY3ODMwNTQyNWMzMTM4ZDg1MDBjNmQ4ZWY3MzcwLi5l
YTM1NzdlYTQxOGY0ZTI5NDhlMThjYTkxOTE3Y2U2MDJjNmU2NTM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02Myw2ICs2Myw3IEBACiAjaW1wb3J0
ICJTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlNjcm9sbGFibGVBcmVhLmgi
CiAjaW1wb3J0ICJTY3JvbGxiYXIuaCIKKyNpbXBvcnQgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgi
CiAjaW1wb3J0ICJTZXR0aW5ncy5oIgogI2ltcG9ydCAiU2hhZG93Um9vdC5oIgogI2ltcG9ydCAi
U2ltcGxlUmFuZ2UuaCIKQEAgLTE0Niw3ICsxNDcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2hl
ZWxFdmVudChOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQ3Vy
cmVudEV2ZW50U2NvcGUgc2NvcGUoZXZlbnQsIG5pbCk7Ci0gICAgcmV0dXJuIGhhbmRsZVdoZWVs
RXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtV2hlZWxFdmVudChldmVu
dCwgcGFnZS0+Y2hyb21lKCkucGxhdGZvcm1QYWdlQ2xpZW50KCkpLCB7IFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0pOworICAgIHJldHVybiBoYW5k
bGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZl
bnQoZXZlbnQsIHBhZ2UtPmNocm9tZSgpLnBsYXRmb3JtUGFnZUNsaWVudCgpKSwgeyBXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJv
Y2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH0pOwog
fQogCiBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC05NTIs
NiArOTUzLDIzIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9s
bGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsCiAgICAgcmV0dXJuIGRpZEhhbmRs
ZUV2ZW50OwogfQogCit2b2lkIEV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5
TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNl
dDxFdmVudEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmcpCit7CisjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKKyAgICBpZiAoIW1fZnJhbWUucGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChhdXRvIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9mcmFt
ZS5wYWdlKCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKKyAgICAgICAgaWYgKHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldygqdmlldykpCisg
ICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5
TWFpblRocmVhZCh3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcpOworICAgIH0KKyNlbmRpZgor
fQorCiBib29sIEV2ZW50SGFuZGxlcjo6cGxhdGZvcm1Db21wbGV0ZVBsYXRmb3JtV2lkZ2V0V2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIGNvbnN0IFdpZGdl
dCYgd2lkZ2V0LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYgc2Nyb2xsYWJsZUFyZWEp
CiB7CiAgICAgLy8gV2ViS2l0MTogUHJldmVudCBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIHNjcm9s
bFdoZWVsIGV2ZW50IGZyb20gYmVpbmcgc2VudCB0byB0aGUgTlNTY3JvbGxWaWV3IHdpZGdldC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IDJjNTNlYzA1MTIzYzIzNWEwMGE2ZmQ3ZDMyMDA0YWU3NjNkMzM4ZWIuLjdi
NzRmOGE5MDUxZTM1OTljNGRiZjQyYmFmYzA4OWUxYmU0OGY0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTI3
LDcgKzEyNyw4IEBAIHB1YmxpYzoKICAgICAvLyBUaGVzZSB2aXJ0dWFsIGZ1bmN0aW9ucyBhcmUg
Y3VycmVudGx5IHVuaXF1ZSB0byB0aGUgdGhyZWFkZWQgc2Nyb2xsaW5nIGFyY2hpdGVjdHVyZS4g
CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVkKCkgeyB9CiAgICAgdmly
dHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNv
bnN0IEludFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Ny
b2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBib29sIHBlcmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pIHsgfQogCiAgICAgLy8g
Q3JlYXRlIGFuIHVucGFyZW50ZWQgbm9kZS4KICAgICB2aXJ0dWFsIFNjcm9sbGluZ05vZGVJRCBj
cmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbmV3Tm9kZUlEKSB7
IHJldHVybiBuZXdOb2RlSUQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMGRhNzNlY2QzOTVmNjExN2I0MDg4ZDkwZDUxYjEwNDAz
MTcwMDFlMC4uNjk5ZGYzY2UwZDk1MDE2NzQxMjkwMThmNDM0YTE2NzI0N2MxNDljZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTcz
LDYgKzczLDkgQEAgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IFNjcm9sbGlu
Z1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW4KICAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmRldGVybWluZVdo
ZWVsRXZlbnRQcm9jZXNzaW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIGhhdmUgbGF0Y2hlZCBub2Rl
ICIgPDwgbGF0Y2hlZE5vZGVBbmRTdGVwcy0+c2Nyb2xsaW5nTm9kZUlEIDw8ICIgc3RlcHMgIiA8
PCBsYXRjaGVkTm9kZUFuZFN0ZXBzLT5wcm9jZXNzaW5nU3RlcHMpOwogICAgICAgICByZXR1cm4g
bGF0Y2hlZE5vZGVBbmRTdGVwcy0+cHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0KKyAgICAKKyAgICBp
ZiAod2hlZWxFdmVudC5pc0dlc3R1cmVCZWdpbigpIHx8IHdoZWVsRXZlbnQuaXNOb25HZXN0dXJl
RXZlbnQoKSkKKyAgICAgICAgbV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlz
cGF0Y2ggPSBXVEY6Om51bGxvcHQ7CiAKICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZl
ZFdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5nKTsKIApAQCAtOTMsMTYgKzk2
LDIwIEBAIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVl
OjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luCiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJF
QU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlxuU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxF
dmVudFByb2Nlc3Npbmc6IHdoZWVsRXZlbnQgIiA8PCB3aGVlbEV2ZW50IDw8ICIgbWFwcGVkIHRv
IGNvbnRlbnQgcG9pbnQgIiA8PCBwb3NpdGlvbiA8PCAiLCBpbiBub24tZmFzdCByZWdpb24gIiA8
PCBpc1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pOwogCiAgICAgICAgICAgICBpZiAoaXNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uKQotICAgICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZl
bnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH07CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNj
cm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5n
RE9NRXZlbnREaXNwYXRjaCB9OwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRf
UkVHSU9OUykKICAgICAgICAgYXV0byBldmVudExpc3RlbmVyVHlwZXMgPSBldmVudExpc3RlbmVy
UmVnaW9uVHlwZXNGb3JQb2ludChwb3NpdGlvbik7Ci0gICAgICAgIGlmIChldmVudExpc3RlbmVy
VHlwZXMuY29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCkp
Ci0gICAgICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhy
ZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9y
RE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRh
aW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpKSB7CisgICAgICAg
ICAgICBpZiAobV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2ggJiYg
ISptX3RyZWVTdGF0ZS5yZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCkKKyAgICAgICAg
ICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJl
YWQsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RP
TUV2ZW50RGlzcGF0Y2ggfTsKKworICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICB9
CiAKICAgICAgICAgaWYgKGV2ZW50TGlzdGVuZXJUeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVy
UmVnaW9uVHlwZTo6V2hlZWwpKQotICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpN
YWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICAgICAgcmV0dXJuIHsgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07CiAj
ZW5kaWYKICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xs
aW5nVGhyZWFkIH07CiAgICAgfSgpOwpAQCAtMTYzLDcgKzE3MCw4IEBAIFdoZWVsRXZlbnRIYW5k
bGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVuCiAgICAgICAgIHJldHVybiBoYW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUod2hlZWxF
dmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCBub2RlLmdldCgpKTsKICAgICB9KCk7CiAKLSAgICByZXN1
bHQuc3RlcHMuYWRkKHByb2Nlc3NpbmdTdGVwcyAmIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoKTsKKyAgICBzdGF0aWMgY29uc3RleHByIE9w
dGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBtYWluVGhyZWFkU3RlcHMgPSB7IFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50
RGlzcGF0Y2gsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2lu
Z0RPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICByZXN1bHQuc3RlcHMuYWRkKHByb2Nlc3NpbmdTdGVw
cyAmIG1haW5UaHJlYWRTdGVwcyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNDgyLDYg
KzQ5MCwxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9u
KEZsb2F0UG9pbnQgcG9zaXRpb24pCiAgICAgbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24gPSBwb3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJlUmVx
dWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2goYm9vbCByZXF1aXJlc1N5bmNocm9ub3VzRGlz
cGF0Y2gpCit7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOworICAgIG1f
dHJlZVN0YXRlLnJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoID0gcmVxdWlyZXNTeW5j
aHJvbm91c0Rpc3BhdGNoOworfQorCiBUcmFja2luZ1R5cGUgU2Nyb2xsaW5nVHJlZTo6ZXZlbnRU
cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9tU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50
IHApCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDNlNzlmZWI0OWIx
MjU5MTk2ZWMxY2E2NjQwOTc4NTVmOTM2NGFmODIuLmZkNDUxNTQ5OTBmMzU2NDUxZTM1NzFkZTJh
YWM2ZDVjMjkxM2U0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmgKQEAgLTU5LDcgKzU5LDcgQEAgdXNpbmcgUGxhdGZvcm1EaXNwbGF5SUQgPSB1
aW50MzJfdDsKIHN0cnVjdCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgewogICAgIE9wdGlvblNl
dDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBzdGVwczsKICAgICBib29sIHdhc0hhbmRsZWQg
eyBmYWxzZSB9OwotICAgIGJvb2wgbmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZygpIGNvbnN0IHsg
cmV0dXJuIHN0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7IH0KKyAgICBib29sIG5lZWRzTWFpblRocmVhZFByb2Nl
c3NpbmcoKSBjb25zdCB7IHJldHVybiBzdGVwcy5jb250YWluc0FueSh7IFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gsIFdoZWVsRXZl
bnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gg
fSk7IH0KIAogICAgIHN0YXRpYyBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlZChPcHRp
b25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gc3RlcHMgPSB7IH0pCiAgICAgewpAQCAt
MjM4LDYgKzIzOCw4IEBAIHByb3RlY3RlZDoKICAgICBGbG9hdFBvaW50IG1haW5GcmFtZVNjcm9s
bFBvc2l0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihG
bG9hdFBvaW50KTsKIAorICAgIHZvaWQgc2V0R2VzdHVyZVJlcXVpcmVzU3luY2hyb25vdXNFdmVu
dERpc3BhdGNoKGJvb2wpOworCiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQ
ZXJTZWNvbmQoKTsKIAogICAgIHZvaWQgYXBwbHlMYXllclBvc2l0aW9uc0ludGVybmFsKCk7CkBA
IC0yNzgsNiArMjgwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgRmxvYXRQb2ludCBtYWluRnJhbWVT
Y3JvbGxQb3NpdGlvbjsKICAgICAgICAgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEIHsgMCB9
OwogICAgICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZDsKKyAg
ICAgICAgT3B0aW9uYWw8Ym9vbD4gcmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2g7CiAg
ICAgICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVSdWJiZXJCYW5k
aW5nOwogICAgICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlU2Ny
b2xsU25hcDsKICAgICAgICAgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2
ZVVzZXJTY3JvbGxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggOTM3OTQ1NmVhZTE3YjA5ODJjYjVkNTJk
OTk1ZmNhZGVkNTRiN2Q0ZC4uZjdlZDFlZWZkMjgwMTE2MzI5YmFkM2ZhYTliMzY3YzljMmUwZGM0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC02NywxMyArNjcsMjMgQEAgV2hlZWxFdmVudEhhbmRsaW5n
UmVzdWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVcKIGJvb2wgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJN
YWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5n
Tm9kZUlEIHRhcmdldE5vZGVJRCkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFp
blRocmVhZCAiIDw8IHdoZWVsRXZlbnQpOwotICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93
TGF0Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGZhbHNlKTsKIAorICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fdHJlZU11dGV4KTsKKworICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93TGF0
Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGZhbHNlKTsKICAgICBSZWZQdHI8U2Nyb2xsaW5n
VHJlZU5vZGU+IHRhcmdldE5vZGUgPSBub2RlRm9ySUQodGFyZ2V0Tm9kZUlEKTsKICAgICBhdXRv
IHJlc3VsdCA9IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVlbEV2ZW50LCB7IH0sIHRhcmdl
dE5vZGUuZ2V0KCkpOwogICAgIHJldHVybiByZXN1bHQud2FzSGFuZGxlZDsKIH0KIAordm9pZCBU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50
SGFuZGxpbmcpCit7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQg
LSBoYW5kbGluZyAiIDw8IGV2ZW50SGFuZGxpbmcpOworCisgICAgaWYgKGV2ZW50SGFuZGxpbmcu
Y29udGFpbnMoRXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NKSkKKyAgICAgICAgc2V0R2Vz
dHVyZVJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoKGV2ZW50SGFuZGxpbmcuY29udGFp
bnMoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCkpOworfQorCiB2b2lkIFRocmVhZGVk
U2Nyb2xsaW5nVHJlZTo6aW52YWxpZGF0ZSgpCiB7CiAgICAgLy8gSW52YWxpZGF0ZSBpcyBkaXNw
YXRjaGVkIGJ5IHRoZSBTY3JvbGxpbmdDb29yZGluYXRvciBjbGFzcyBvbiB0aGUgU2Nyb2xsaW5n
VGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oCmluZGV4IDRmNjhlYmM1NDNjZTM0ODVjOTNlMGY2ZTA2NWYxOGEyMjJm
ODkwNzcuLjVmMGE3NTU0NDJmYjRhMWIwMjk2YjRkNWI1YzA0MTEwNGMzZjRlYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1
bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYW5kbGVX
aGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9s
bGluZ05vZGVJRCk7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFk
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAK
ICAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApp
bmRleCBiMjJhNzZiMDkxNGJhZDY2OTE0ZmRmZGQyY2U2ZDU5N2U1MmY2MTU3Li5lZTU3NTY3N2Qx
YjExZGMyYzhmZTQwNGEzZDI0NDg4MTkxOGE5ZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApA
QCAtNDEsNyArNDEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRl
ZCgpIGZpbmFsOwogCiAgICAgLy8gSGFuZGxlIHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Nyb2xs
aW5nIHRocmVhZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZCBvciBub3Qu
Ci0gICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBwZXJmb3JtRGVm
YXVsdFdoZWVsRXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxp
bmdOb2RlSUQpIGZpbmFsOworICAgIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4p
IGZpbmFsOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRleCBiNDlmMTBjOWZjYzBmYWZiZDk1OGQ3
MmUwYTBkNjhkYzUyNzliZjNkLi43NTUwNmYyMTM2N2FkNDZhZGVjOTFlMWM1Yzg0ODIxNzhmMzUy
YjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OnBhZ2VEZXN0cm95ZWQoKQogICAgIH0pOwogfQogCi1ib29s
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdl
dE5vZGUpCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpwZXJmb3JtRGVmYXVsdFdoZWVs
RXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9s
bGluZ05vZGVJRCB0YXJnZXROb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fcGFnZSk7CkBAIC05Myw2ICs5MywyOSBAQCBib29sIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdgogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdWludDY0X3QgbmV4dERlZmVySWRl
bnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGRlZmVySWRlbnRpZmllcjsKKyAgICBy
ZXR1cm4gKytkZWZlcklkZW50aWZpZXI7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZGVmYXVsdEhhbmRs
aW5nKQoreworICAgIHVpbnQ2NF90IGRlZmVySWRlbnRpZmllciA9IDA7CisgICAgaWYgKG1fcGFn
ZSAmJiBtX3BhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpIHsKKyAgICAgICAgZGVmZXJJ
ZGVudGlmaWVyID0gbmV4dERlZmVySWRlbnRpZmllcigpOworICAgICAgICBtX3BhZ2UtPndoZWVs
RXZlbnRUZXN0TW9uaXRvcigpLT5kZWZlckZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihkZWZlcklkZW50aWZp
ZXIpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcpOworICAg
IH0KKworICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5n
VHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsK
KyAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdo
ZWVsRXZlbnQsIGRlZmF1bHRIYW5kbGluZywgZGVmZXJJZGVudGlmaWVyXSB7CisgICAgICAgIHRo
cmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3
aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcpOworCisgICAgICAgIGlmICh0aHJlYWRlZFNjcm9s
bGluZ1RyZWUtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCisgICAgICAgICAgICB0aHJlYWRl
ZFNjcm9sbGluZ1RyZWUtPnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9y
UmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxl
QXJlYUlkZW50aWZpZXI+KGRlZmVySWRlbnRpZmllciksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6
UmVwb3J0RE9NRXZlbnRIYW5kbGluZyk7CisgICAgfSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWM6OnNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkKIHsKICAgICAvLyBGSVhNRTog
VGhpcyBvbmUgbmVlZHMgd29yay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWMubW0KaW5kZXggMThhNTI1NmM4M2E3ZjM4ZTNiN2QwODYwY2ZjNzk2ZjlhY2Jk
OTRmMy4uNjQ3YzcyOWZjMmVkOTIyMTgxNGI3NzRlMTQyYTAyNDkxNmJjZDVhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0KQEAgLTc3LDcgKzc3
LDcgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQKIHsKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RI
UkVBRCkKICAgICBpZiAoaGFzU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCkpCi0gICAgICAg
IHJldHVybiB7IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9s
bGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlz
cGF0Y2ggfSwgZmFsc2UgfTsKKyAgICAgICAgcmV0dXJuIHsgeyBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBz
OjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH0sIGZhbHNlIH07CiAj
ZW5kaWYKIAogICAgIGlmICghY2FuSGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JOaWNvc2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcAppbmRleCBkOWUxZTZiMjgxM2NjNDU2
ZGU4YzNjMDE4MTViMjFjNjA3ZDg0MTg3Li4zMTQxNzQ4YmZkZDIzMjE0MmRmMmFjMzJkMzg2YjAz
NTMwYWE2YTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNv
c2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWEuY3BwCkBA
IC02OSw3ICs2OSw3IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpjb21taXRU
cmVlU3RhdGVJZk5lZWRlZCgpCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWVDb21taXR0ZXJUaW1l
ci5zdG9wKCk7CiB9CiAKLWJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpoYW5kbGVX
aGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdldE5vZGUpCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
Tmljb3NpYTo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFuZGxpbmcoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZSkKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3BhZ2UpOwpAQCAtODEsNiAr
ODEsMTMgQEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OmhhbmRsZVdoZWVsRXZl
bnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
dm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25T
ZXQ8RXZlbnRIYW5kbGluZz4gZGVmYXVsdEhhbmRsaW5nKQoreworICAgIFNjcm9sbGluZ1RocmVh
ZDo6ZGlzcGF0Y2goW3RocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IG1ha2VSZWYoZG93bmNhc3Q8VGhy
ZWFkZWRTY3JvbGxpbmdUcmVlPigqc2Nyb2xsaW5nVHJlZSgpKSksIHdoZWVsRXZlbnQsIGRlZmF1
bHRIYW5kbGluZ10geworICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZlbnRX
YXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZGVmYXVsdEhhbmRsaW5nKTsKKyAg
ICB9KTsKK30KKwogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OnNjaGVkdWxlVHJl
ZVN0YXRlQ29tbWl0KCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsaW5nU3RhdGVUcmVlQ29tbWl0dGVy
VGltZXIuaXNBY3RpdmUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5oCmlu
ZGV4IDg0NTY2NWNlNzcxOGM2MGRkNGRiMTI4MDZjZGYzYzkxNTRmOGU0ZjIuLmJlZjcxMDYwZGFi
NGVlNWNhZjNhYWRkYTIyZTFkZTE5NDJkOTBhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGlu
YXRvck5pY29zaWEuaApAQCAtNDQsNyArNDQsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbW1p
dFRyZWVTdGF0ZUlmTmVlZGVkKCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIGhhbmRsZVdoZWVsRXZl
bnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlE
KSBvdmVycmlkZTsKKyAgICBib29sIHBlcmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAg
dm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
CiAgICAgdm9pZCBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDdiOWI3M2M5ZDkzMmRjYTcxYjZjODU5
MWUyMWY2YmViYTc4ZWI4ODEuLmU2Y2E5MmU0Zjc2NWM4MjkxZTk3ODFiMGRmMjg3MmYyZDk1MGY3
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTMwLDYgKzMw
LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBFdmVudEhhbmRsaW5n
IDogdWludDhfdCB7CisgICAgRGlzcGF0Y2hlZFRvRE9NICAgICA9IDEgPDwgMCwKKyAgICBEZWZh
dWx0UHJldmVudGVkICAgID0gMSA8PCAxLAorICAgIERlZmF1bHRIYW5kbGVkICAgICAgPSAxIDw8
IDIsCit9OworCiBjbGFzcyBQbGF0Zm9ybUV2ZW50IHsKIHB1YmxpYzoKICAgICBlbnVtIFR5cGUg
OiB1aW50OF90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
V2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuY3BwCmluZGV4IDQyNjYzYjc4YTQ1ZWRkODk5ZjUwNTAwMWQ2MTVhYzk2ZWZjNzA3MTYuLmVj
MTUyYTNlNDg4NDM5NGZkYTY1NDFlYjQwNTljMjBiNDBmMTgzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcApAQCAtNjQsNyArNjQsMTggQEAg
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwcyBzdGVwcykKICAgICBzd2l0Y2ggKHN0ZXBzKSB7CiAgICAgY2FzZSBXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQ6IHRzIDw8ICJzY3JvbGxpbmcgdGhyZWFk
IjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFk
Rm9yU2Nyb2xsaW5nOiB0cyA8PCAibWFpbiB0aHJlYWQgc2Nyb2xsaW5nIjsgYnJlYWs7Ci0gICAg
Y2FzZSBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNw
YXRjaDogdHMgPDwgIm1haW4gdGhyZWFkIERPTSBldmVudCBkaXNwYXRjaCI7IGJyZWFrOworICAg
IGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5n
RE9NRXZlbnREaXNwYXRjaDogdHMgPDwgIm1haW4gdGhyZWFkIG5vbi1ibG9ja2luZyBET00gZXZl
bnQgZGlzcGF0Y2giOyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2g6IHRzIDw8ICJtYWluIHRocmVh
ZCBibG9ja2luZyBET00gZXZlbnQgZGlzcGF0Y2giOyBicmVhazsKKyAgICB9CisgICAgcmV0dXJu
IHRzOworfQorCitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBFdmVudEhh
bmRsaW5nIHN0ZXBzKQoreworICAgIHN3aXRjaCAoc3RlcHMpIHsKKyAgICBjYXNlIEV2ZW50SGFu
ZGxpbmc6OkRpc3BhdGNoZWRUb0RPTTogdHMgPDwgImRpc3BhdGNoZWQgdG8gRE9NIjsgYnJlYWs7
CisgICAgY2FzZSBFdmVudEhhbmRsaW5nOjpEZWZhdWx0UHJldmVudGVkOiB0cyA8PCAiZGVmYXVs
dCBwcmV2ZW50ZWQiOyBicmVhazsKKyAgICBjYXNlIEV2ZW50SGFuZGxpbmc6OkRlZmF1bHRIYW5k
bGVkOiB0cyA8PCAiZGVmYXVsdCBoYW5kbGVkIjsgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiB0
czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKaW5k
ZXggM2Q1NjkzZDgyZTA5ZjMzMGNhZmI4OWY4YjVlZTI4NzYwYjkzMmZiYS4uNWQ0ODY0ZDQ1NWEw
MzQxNjE4N2NhMTZhNjI1NzI2YWJiYzRmMzdmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTM3LDkgKzM3LDEwIEBAIGNsYXNzIFRleHRTdHJl
YW07CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwcyA6IHVpbnQ4X3QgewotICAgIFNjcm9sbGluZ1RocmVhZCAgICAgICAgICAgICAgICAg
PSAxIDw8IDAsCi0gICAgTWFpblRocmVhZEZvclNjcm9sbGluZyAgICAgICAgICA9IDEgPDwgMSwK
LSAgICBNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCAgID0gMSA8PCAyLAorICAgIFNjcm9s
bGluZ1RocmVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDAsCisgICAgTWFp
blRocmVhZEZvclNjcm9sbGluZyAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMSwKKyAgICBN
YWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoICAgID0gMSA8PCAyLAorICAg
IE1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggICAgICAgPSAxIDw8IDMsCiB9
OwogCiAvLyBUaGUgU2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQgaXMgYSBmaW5lLWdyYWluZWQgZXZl
bnQgdGhhdCBzcGVjaWZpZXMgdGhlIHByZWNpc2UgbnVtYmVyIG9mIHBpeGVscyB0byBzY3JvbGwu
CkBAIC0yNjUsNSArMjY2LDYgQEAgaW5saW5lIEZsb2F0UG9pbnQgUGxhdGZvcm1XaGVlbEV2ZW50
Ojpzd2lwZVZlbG9jaXR5KCkgY29uc3QKIAogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYp
OwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMpOworV0VCQ09SRV9FWFBPUlQgV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEV2ZW50SGFuZGxpbmcpOwog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggZGE1MTk1NWJiMDM4ZjhiZjc3MjhkZWM1NjE2YmU2
MGVmYmJlZWIyMy4uOWRmOTE0ZDVkYWM1OTU0YmYzYzJiYzVlMGJlY2ZhNjE5NTMzMzE4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAt
MTgwLDcgKzE4MCw3IEBAIGJvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGF1dG8gcHJvY2Vzc2luZ1N0ZXBzID0gbV9zY3JvbGxpbmdUcmVlLT5kZXRl
cm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luZyh3aGVlbEV2ZW50KTsKLSAgICBpZiAocHJvY2Vzc2lu
Z1N0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRP
TUV2ZW50RGlzcGF0Y2ggfSkpCisgICAgaWYgKHByb2Nlc3NpbmdTdGVwcy5jb250YWluc0FueSh7
IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlz
cGF0Y2gsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RP
TUV2ZW50RGlzcGF0Y2ggfSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX3Nj
cm9sbGluZ1RyZWUtPndpbGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdlc3R1cmUod2hlZWxFdmVudCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmNwcAppbmRleCA1NDljMDNhZGM1MjE5Nzc4ODk0ZDIxMzM2NmQ3ZmNlY2NiNWVlZDUxLi43
NTk4ZWNmYjRiNzI0OGUzZDY4ZjkyZTM0OWNhMzAyNmVlOTAxNGY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTEy
MSwxNCArMTIxLDE0IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAgICAgfQogI2VuZGlmCiAK
LSAgICBhdXRvIHByb2Nlc3NpbmdTdGVwcyA9IE9wdGlvblNldDxXZWJDb3JlOjpXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzPiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRG
b3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01F
dmVudERpc3BhdGNoIH07CisgICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBPcHRpb25TZXQ8V2Vi
Q29yZTo6V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpN
YWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07CiAjaWYgRU5BQkxFKFNDUk9M
TElOR19USFJFQUQpCiAgICAgcHJvY2Vzc2luZ1N0ZXBzID0gWyZdKCkgLT4gT3B0aW9uU2V0PFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9z
Y3JvbGxpbmdUcmVlc011dGV4KTsKIAogICAgICAgICBhdXRvIHNjcm9sbGluZ1RyZWUgPSBtX3Nj
cm9sbGluZ1RyZWVzLmdldChwYWdlSUQpOwogICAgICAgICBpZiAoIXNjcm9sbGluZ1RyZWUpCi0g
ICAgICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFk
Rm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9N
RXZlbnREaXNwYXRjaCB9OworICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OwogICAgICAgICAKICAg
ICAgICAgLy8gRklYTUU6IEl0J3MgcHJldHR5IGhvcnJpYmxlIHRoYXQgd2UncmUgdXBkYXRpbmcg
dGhlIGJhY2svZm9yd2FyZCBzdGF0ZSBoZXJlLgogICAgICAgICAvLyBXZWJDb3JlIHNob3VsZCBh
bHdheXMga25vdyB0aGUgY3VycmVudCBzdGF0ZSBhbmQga25vdyB3aGVuIGl0IGNoYW5nZXMgc28g
dGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGZiYTE5ZDg3NTE5MGEzZThm
NjQ0ODY5ZDQyYzBjZTIzNWFkZWU5YjAuLmY3N2MyNjJlMDk0ZjFiMjJiMjdlZDFkMjRhMmM2NGQw
ZTJiYzM3MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0yMTM3LDcgKzIx
MzcsNyBAQCBib29sIFdlYlZpZXc6Om1vdXNlV2hlZWwoV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQ
YXJhbSwgYm9vbCBpc01vdXNlSFdoZWVsKQogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gY29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5oYW5k
bGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQsIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7CisgICAgcmV0dXJuIGNvcmVGcmFtZS0+ZXZlbnRIYW5k
bGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggfSk7CiB9CiAKIGJvb2wgV2Vi
Vmlldzo6dmVydGljYWxTY3JvbGwoV1BBUkFNIHdQYXJhbSwgTFBBUkFNIC8qbFBhcmFtKi8pCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNjM2M2RhMDZiZjkzMTgwZjIwOGFiMTUyN2U1OTljOTdmMzIwM2QwOS4uYWI2OGRiZWMy
ZjUyZDk2ZDYxYjY3ZDE2ZDAzMTRkOWNmZGMyNWJkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisy
MDIwLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2Fu
Y2VsYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE4NzY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGhhbmRsaW5nIGEgc2VxdWVu
Y2Ugb2Ygd2hlZWwgZXZlbnRzIGluIGEgZ2VzdHVyZSBpbiBhIHJlZ2lvbiB3aXRoIG5vbi1wYXNz
aXZlIHdoZWVsCisgICAgICAgIGV2ZW50IGhhbmRsZXJzLCBvbmx5IGFsbG93IHRoZSBmaXJzdCBl
dmVudCBpbiB0aGUgc2VxdWVuY2UgdG8gY2FsbCBwcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBz
dWJzZXF1ZW50IGV2ZW50cyBhcmUgbWFya2VkIGFzIG5vbi1jYW5jZWxhYmxlLCBzbyBwcmV2ZW50
RGVmYXVsdCgpIHdpbGwgaGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAgVGhpcyBhbGxvd3MgdXMg
dG8gZG8gYXN5bmMgc2Nyb2xsaW5nIGV2ZW4gd2hpbGUgaW4gcmVnaW9ucyB3aXRoIGFjdGl2ZSB3
aGVlbCBldmVudCBoYW5kbGVycywKKyAgICAgICAgaWYgdGhvc2UgaGFuZGxlcnMgZG9uJ3QgY2Fs
bCBwcmV2ZW50RGVmYXVsdCgpIG9uIHRoZSBmaXJzdCBldmVudC4gVGhpcyBtYXRjaGVzIEJsaW5r
CisgICAgICAgIGJlaGF2aW9yLgorCisgICAgICAgIFRvIGFjaGlldmUgdGhpcywgdHJhY2sgc29t
ZSBiaXRzIGluIEV2ZW50SGFuZGxpbmcgdG8ga25vdyB3aGV0aGVyIHRoZSBldmVudCB3YXMgZGlz
cGF0Y2hlZAorICAgICAgICB0byBzY3JpcHQsIGFuZCB3aGV0aGVyIGl0IHdhcyBjYW5jZWxlZC4g
U2VuZCB0aGlzIGRhdGEgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCB2aWEKKyAgICAgICAg
d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCgpLCB3aGVyZSBpcyBzZXRzIGFuIE9w
dGlvbmFsPGJvb2w+IG9uIFNjcm9sbGluZ1RyZWUuIFRoaXMKKyAgICAgICAgZmxhZyBpcyBjb25z
dWx0ZWQgYnkgU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcoKSwg
YW5kIGlmIHdlIGhhdmUgcmVjZWl2ZWQKKyAgICAgICAgaXQsIGFuZCB0aGUgZXZlbnQgd2FzIG5v
dCBjYW5jZWxlZCwgd2UgdXNlIE1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0
Y2ggd2hlbgorICAgICAgICBzZW5kaW5nIGV2ZW50cyB0byB0aGUgbWFpbiB0aHJlYWQuIFRoaXMg
aXMgdXNlZCB0byBtYXJrIHRoZSBldmVudCBhcyBub24tY2FuY2VsYWJsZSBpbgorICAgICAgICBF
dmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBh
bm90aGVyIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcgYml0IHRvIFdoZWVsRXZlbnRUZXN0TW9uaXRv
ciB0byB0cmFjayB0aGUgcHJvcGFnYXRpb24KKyAgICAgICAgb2YgRXZlbnRIYW5kbGluZyBzdGF0
ZSBiYWNrIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgorCisgICAgICAgICogZmFzdC9ldmVudHMv
d2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4t
cGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1ub24t
Y2FuY2VsYWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbC93aGVl
bC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJs
ZS5odG1sOiBBZGRlZC4KKwogMjAyMC0xMS0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBGb3JjZSB3aGVlbCBldmVudCBsaXN0ZW5lcnMgb24gdGhl
IHJvb3QgdG8gYmUgcGFzc2l2ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZmE1OWRjYzMwMzQyNmFhZWY1ZmRjM2M3NGE3MDk3ZGY0NTNm
YWExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmly
c3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGVzdHMgcHJldmVudERlZmF1bHQgb24gdGhlIGZpcnN0IGV2ZW50IHJlc3VsdHMgaW4gdGhlIHJl
c3Qgb2YgdGhlIGV2ZW50cyBiZWluZyBjYW5jZWxhYmxlCitQQVNTIHdpbmRvd1Njcm9sbEV2ZW50
Q291bnQgaXMgMAorUEFTUyBmaXJzdFdhc0NhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyBmaXJzdFdh
c0NhbmNlbGVkIGlzIHRydWUKK1BBU1Mgc3Vic2VxdWVudFdlcmVDYW5jZWxhYmxlIGlzIHRydWUK
K1BBU1Mgc3Vic2VxdWVudFdlcmVDYW5jZWxlZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNlMDFkODc0NmQ3YTViOTkxZmYzNDQ3M2U5OGUwNGY2OTY0YjEyYTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC9maXJzdC13
aGVlbC1ldmVudC1jYW5jZWxhYmxlLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAg
ICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgI3Rhcmdl
dCB7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4
OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICAgICAgbWFy
Z2luOiAyMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGxldCB3aGVl
bEV2ZW50Q291bnQgPSAwOworICAgICAgICBsZXQgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7
CisKKyAgICAgICAgbGV0IGZpcnN0V2FzQ2FuY2VsYWJsZTsKKyAgICAgICAgbGV0IGZpcnN0V2Fz
Q2FuY2VsZWQ7CisgICAgICAgIGxldCBzZWNvbmRXYXNDYW5jZWxhYmxlOworICAgICAgICBsZXQg
c2Vjb25kV2FzQ2FuY2VsZWQ7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdXNlV2hlZWxTY3JvbGxB
dCgxMDAsIDEwMCk7CisgICAgICAgICAgICBzaG91bGRCZSgnd2luZG93U2Nyb2xsRXZlbnRDb3Vu
dCcsICcwJyk7CisKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnZmlyc3RXYXNDYW5jZWxhYmxl
Jyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2ZpcnN0V2FzQ2FuY2VsZWQnKTsKKworICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCdzZWNvbmRXYXNDYW5jZWxhYmxlJyk7CisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ3NlY29uZFdhc0NhbmNlbGVkJyk7CisKKyAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdHMgcHJldmVudERlZmF1bHQg
b24gdGhlIGZpcnN0IGV2ZW50IHJlc3VsdHMgaW4gdGhlIHJlc3Qgb2YgdGhlIGV2ZW50cyBiZWlu
ZyBjYW5jZWxhYmxlJykKKyAgICAgICAgICAgIGxldCB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVy
KCd3aGVlbCcsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGlmICghd2hlZWxFdmVudENv
dW50KSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNh
bmNlbGFibGU7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgICAgICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2VsZWQgPSBldmVudC5kZWZhdWx0UHJldmVu
dGVkOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2hlZWxFdmVudENvdW50ID09IDEpIHsK
KyAgICAgICAgICAgICAgICAgICAgc2Vjb25kV2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFi
bGU7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAg
ICAgICAgICAgICAgIHNlY29uZFdhc0NhbmNlbGVkID0gZXZlbnQuZGVmYXVsdFByZXZlbnRlZDsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKyt3aGVlbEV2ZW50Q291bnQ7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Nj
cm9sbCcsICgpID0+IHsKKyAgICAgICAgICAgICAgICArK3dpbmRvd1Njcm9sbEV2ZW50Q291bnQ7
CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQodGVzdFNj
cm9sbCwgMCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNl
bGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwt
ZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRjNzEyOTcxZjNhOWRiM2JmYjljNzhkN2ZhNzA1ZTEyNjQ2MWI1YjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1w
YXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBA
CitUZXN0cyB0aGF0IHdoZWVsIGV2ZW50cyBpbiB0aGUgcGFzc2l2ZSByZWdpb24gYXJlIG5vbi1j
YW5jZWxhYmxlCitQQVNTIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgPiAwIGlzIHRydWUKK1BBU1Mg
d2FzQ2FuY2VsYWJsZSBpcyBmYWxzZQorUEFTUyB3YXNDYW5jZWxlZCBpcyBmYWxzZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVn
aW9uLW5vbi1jYW5jZWxhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93
aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY5MTkwZTJiMDg0ZDg2YTEzZGVlZWUyYTUwNTJlNDAwZTQ4NjNmNTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNz
aXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAg
ICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICN0
YXJnZXQgeworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAy
MDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICAg
IG1hcmdpbjogMjBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIHZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBsZXQg
aXNGaXJzdCA9IHRydWU7CisgICAgICAgIGxldCB3aW5kb3dTY3JvbGxFdmVudENvdW50ID0gMDsK
KyAgICAgICAgbGV0IHdhc0NhbmNlbGFibGU7CisgICAgICAgIGxldCB3YXNDYW5jZWxlZDsKKwor
ICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0U2Nyb2xsKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIubW91c2VXaGVlbFNjcm9sbEF0KDEwMCwgMTAwKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgnd2luZG93U2Nyb2xsRXZlbnRDb3VudCA+IDAnKTsKKworICAgICAg
ICAgICAgc2hvdWxkQmVGYWxzZSgnd2FzQ2FuY2VsYWJsZScpOworICAgICAgICAgICAgc2hvdWxk
QmVGYWxzZSgnd2FzQ2FuY2VsZWQnKTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+
IHsKKyAgICAgICAgICAgIGRlYnVnKCdUZXN0cyB0aGF0IHdoZWVsIGV2ZW50cyBpbiB0aGUgcGFz
c2l2ZSByZWdpb24gYXJlIG5vbi1jYW5jZWxhYmxlJykKKyAgICAgICAgICAgIGxldCB0YXJnZXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAgICAgICAgIHRhcmdl
dC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIChldmVudCkgPT4geworICAgICAgICAgICAgICAg
IGlmIChpc0ZpcnN0KSB7CisgICAgICAgICAgICAgICAgICAgIHdhc0NhbmNlbGFibGUgPSBldmVu
dC5jYW5jZWxhYmxlOworICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OworICAgICAgICAgICAgICAgICAgICB3YXNDYW5jZWxlZCA9IGV2ZW50LmRlZmF1bHRQcmV2ZW50
ZWQ7CisgICAgICAgICAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9LCB7IHBhc3NpdmU6IHRydWUgfSk7
CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7
CisgICAgICAgICAgICAgICAgKyt3aW5kb3dTY3JvbGxFdmVudENvdW50OworICAgICAgICAgICAg
fSwgZmFsc2UpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RTY3JvbGwsIDApOworICAg
ICAgICB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2
IGlkPSJ0YXJnZXQiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3do
ZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2Vs
YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU0YTExOGRlZDRhNWQ2ZDdhZjYwNjA3Yzcw
NzQ1NGY1NGVjYjkwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNyBAQAorVGVzdHMgdGhhdCBldmVudHMgaW4gdGhlIGdlc3R1cmUgYXJlIG5vbi1j
YW5jZWxhYmxlIGlmIHByZXZlbnREZWZhdWx0IHdhcyBub3QgY2FsbGVkIG9uIHRoZSBmaXJzdCBl
dmVudAorUEFTUyBmaXJzdFdhc0NhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyBiZWNhbWVOb25DYW5j
ZWxhYmxlIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVl
bC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzk0Y2RhYWUxNzhhMzhlNDkzY2I2NzBiZTU4YzVjMjkwMTVmNGVkZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNv
bWUtbm9uLWNhbmNlbGFibGUuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAg
IGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAjdGFyZ2V0IHsK
KyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwMHB4Owor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICAgICAgbWFyZ2lu
OiAyMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGxldCB3aGVlbEV2
ZW50Q291bnQgPSAwOworCisgICAgICAgIGxldCBmaXJzdFdhc0NhbmNlbGFibGU7CisgICAgICAg
IGxldCBiZWNhbWVOb25DYW5jZWxhYmxlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3RT
Y3JvbGwoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIWV2ZW50U2VuZGVyKSB7CisgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7
CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7CisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMCwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRl
cmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgImNo
YW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBk
YXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAiY2hhbmdlZCIs
ICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAwLCAiZW5kZWQiLCAibm9uZSIpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2Nyb2xsQ29tcGxldGlvbigpOworCisgICAgICAgICAg
ICBzaG91bGRCZVRydWUoJ2ZpcnN0V2FzQ2FuY2VsYWJsZScpOworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCdiZWNhbWVOb25DYW5jZWxhYmxlJyk7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdHMgdGhhdCBldmVudHMgaW4gdGhlIGdl
c3R1cmUgYXJlIG5vbi1jYW5jZWxhYmxlIGlmIHByZXZlbnREZWZhdWx0IHdhcyBub3QgY2FsbGVk
IG9uIHRoZSBmaXJzdCBldmVudCcpOworICAgICAgICAgICAgbGV0IHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50
TGlzdGVuZXIoJ3doZWVsJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdoZWVs
RXZlbnRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2VsYWJs
ZSA9IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIGZpcnN0IG5vbi1jYW5jZWxhYmxlIGV2ZW50IGFu
ZCBjaGVjayB0aGF0IGFsbCBzdWJzZXF1ZW50IGV2ZW50cyBhcmUgbm9uLWNhbmNlbGFibGUuCisg
ICAgICAgICAgICAgICAgICAgIGlmIChiZWNhbWVOb25DYW5jZWxhYmxlICYmIGV2ZW50LmNhbmNl
bGFibGUpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdTaG91bGQgbm90IHNl
ZSBjYW5jZWxhYmxlIGV2ZW50IGFmdGVyIG5vbi1jYW5jZWxhYmxlIGV2ZW50JykKKworICAgICAg
ICAgICAgICAgICAgICBpZiAoIWV2ZW50LmNhbmNlbGFibGUpCisgICAgICAgICAgICAgICAgICAg
ICAgICBiZWNhbWVOb25DYW5jZWxhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgKyt3aGVlbEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgc2V0VGltZW91dCh0ZXN0U2Nyb2xsLCAwKTsKKyAgICAgICAgfSwgZmFsc2UpOworICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4K
KyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="430911"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414745</attachid>
            <date>2020-11-20 16:40:57 -0800</date>
            <delta_ts>2020-11-20 18:39:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201120164056.patch</filename>
            <type>text/plain</type>
            <size>83600</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZlYzRjZWJkZjRiODQ4
YWI3NDg4NmQzNGY0NjExZmEwYWUxODhmNS4uNzdhOGUyOGMyMDliY2QyYWU2MTdmZGEwYWZmYTNm
NTAzNzIzMzBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NiBAQAorMjAyMC0xMS0xMyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBPbmx5IHRoZSBm
aXJzdCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUgc2hvdWxkIGJlIGNhbmNlbGFibGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODc2NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzEyNDg5NDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiBoYW5kbGluZyBhIHNlcXVlbmNlIG9mIHdoZWVsIGV2
ZW50cyBpbiBhIGdlc3R1cmUgaW4gYSByZWdpb24gd2l0aCBub24tcGFzc2l2ZSB3aGVlbAorICAg
ICAgICBldmVudCBoYW5kbGVycywgb25seSBhbGxvdyB0aGUgZmlyc3QgZXZlbnQgaW4gdGhlIHNl
cXVlbmNlIHRvIGNhbGwgcHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgc3Vic2VxdWVudCBldmVu
dHMgYXJlIG1hcmtlZCBhcyBub24tY2FuY2VsYWJsZSwgc28gcHJldmVudERlZmF1bHQoKSB3aWxs
IGhhdmUgbm8gZWZmZWN0LgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIGRvIGFzeW5jIHNj
cm9sbGluZyBldmVuIHdoaWxlIGluIHJlZ2lvbnMgd2l0aCBhY3RpdmUgd2hlZWwgZXZlbnQgaGFu
ZGxlcnMsCisgICAgICAgIGlmIHRob3NlIGhhbmRsZXJzIGRvbid0IGNhbGwgcHJldmVudERlZmF1
bHQoKSBvbiB0aGUgZmlyc3QgZXZlbnQuIFRoaXMgbWF0Y2hlcyBCbGluaworICAgICAgICBiZWhh
dmlvci4KKworICAgICAgICBUbyBhY2hpZXZlIHRoaXMsIHRyYWNrIHNvbWUgYml0cyBpbiBFdmVu
dEhhbmRsaW5nIHRvIGtub3cgd2hldGhlciB0aGUgZXZlbnQgd2FzIGRpc3BhdGNoZWQKKyAgICAg
ICAgdG8gc2NyaXB0LCBhbmQgd2hldGhlciBpdCB3YXMgY2FuY2VsZWQuIFNlbmQgdGhpcyBkYXRh
IGJhY2sgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQgdmlhCisgICAgICAgIHdoZWVsRXZlbnRXYXNQ
cm9jZXNzZWRCeU1haW5UaHJlYWQoKSwgd2hlcmUgaXMgc2V0cyBhbiBPcHRpb25hbDxib29sPiBv
biBTY3JvbGxpbmdUcmVlLiBUaGlzCisgICAgICAgIGZsYWcgaXMgY29uc3VsdGVkIGJ5IFNjcm9s
bGluZ1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKCksIGFuZCBpZiB3ZSBoYXZl
IHJlY2VpdmVkCisgICAgICAgIGl0LCBhbmQgdGhlIGV2ZW50IHdhcyBub3QgY2FuY2VsZWQsIHdl
IHVzZSBNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIHdoZW4KKyAgICAg
ICAgc2VuZGluZyBldmVudHMgdG8gdGhlIG1haW4gdGhyZWFkLiBUaGlzIGlzIHVzZWQgdG8gbWFy
ayB0aGUgZXZlbnQgYXMgbm9uLWNhbmNlbGFibGUgaW4KKyAgICAgICAgRXZlbnRIYW5kbGVyOjpo
YW5kbGVXaGVlbEV2ZW50KCkuCisKKyAgICAgICAgVGhlIHNjcm9sbGluZyB0aHJlYWQgd2FpdHMg
Zm9yIHRoZSAiYmVnYW4iIGV2ZW50IHRvIGNvbWUgYmFjayBmcm9tIHRoZSBtYWluIHRocmVhZCBh
ZnRlciBET00KKyAgICAgICAgZGlzcGF0Y2hpbmcgYnkgYmxvY2tpbmcgb24gYSBjb25kaXRpb24g
dmFyaWFibGUgaW4KKyAgICAgICAgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3YWl0Rm9yRXZlbnRU
b0JlUHJvY2Vzc2VkQnlNYWluVGhyZWFkKCkuIFRoaXMgY3VycmVudGx5IGhhcyBhIDUwbXMKKyAg
ICAgICAgdGltZW91dCwgYWZ0ZXIgd2hpY2ggdGhlIGdlc3R1cmUgd2lsbCBwcm9jZWVkIHdpdGgg
dW5jYW5jZWxhYmxlIGV2ZW50cy4KKworICAgICAgICBJdCdzIGltcG9ydGFudCB0aGF0IHRoZSAi
YmVnYW4iIGV2ZW50IGNvbWVzIGJhY2sgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQgYWZ0ZXIgbWFp
biB0aHJlYWQKKyAgICAgICAgcHJvY2Vzc2luZyAoaWYgbm90IGNhbmNlbGVkKSwgYmVjYXVzZSB0
aGlzIGV2ZW50IG5lZWRzIHRvIHRyaWdnZXIgbGF0Y2hpbmcgYW5kIHNldCAiaW4KKyAgICAgICAg
Z2VzdHVyZSIgc3RhdGUgb24gdGhlIFNjcm9sbGluZ0NvbnRyb2xsZXJzIG9mIHNjcm9sbGluZyB0
cmVlIG5vZGVzLgorCisgICAgICAgIEFkZCBhbm90aGVyIFBvc3RNYWluVGhyZWFkV2hlZWxFdmVu
dEhhbmRsaW5nIGJpdCB0byBXaGVlbEV2ZW50VGVzdE1vbml0b3IgdG8gdHJhY2sgdGhlCisgICAg
ICAgIHBvc3QtbWFpbi10aHJlYWQgcHJvcGFnYXRpb24gb2YgZXZlbnRzIHRvIHRoZSBzY3JvbGxp
bmcgdGhyZWFkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVl
bC1ldmVudC1jYW5jZWxhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3doZWVs
L3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNl
bGFibGUuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6ZGlzcGF0Y2hXaGVlbEV2ZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5o
OgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVs
RXZlbnQ6OldoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudDo6Y3JlYXRl
KToKKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVX
aGVlbEV2ZW50SW50ZXJuYWwpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAg
ICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp3
aGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmRpc3BhdGNoTG9ja2VkV2hl
ZWxFdmVudCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVz
dE1vbml0b3IuaDoKKyAgICAgICAgKiBwYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW06CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndoZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2Uv
bWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndoZWVsRXZlbnRX
YXNQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRv
cjo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50SGFuZGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhhbmRsZVdoZWVsRXZl
bnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFBy
b2Nlc3NpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJlUmVxdWly
ZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2gpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnRIYW5kbGluZ1Jlc3Vs
dDo6bmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZyBjb25zdCk6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCk6CisgICAg
ICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNz
ZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xs
aW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpw
ZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0
RGVmZXJJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL1Bs
YXRmb3JtRXZlbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1XaGVlbEV2ZW50Lmg6CisKKzIwMjAtMTEtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgRGlzcGF0Y2ggbWFpbi10aHJlYWQgb3ZlcmZsb3cg
c2Nyb2xscyB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCBhcyB3ZSBkbyBmb3IgcGFnZSBzY3JvbGxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyMTMK
KworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFVuaWZ5IHRoZSBi
ZWhhdmlvciBvZiBvdmVyZmxvdyBzY3JvbGxpbmcgYW5kIHBhZ2Ugc2Nyb2xsaW5nIGZvciBzeW5j
aHJvbm91cyBzY3JvbGxzLgorCisgICAgICAgIFNvbWV3aGF0IHN1cnByaXNpbmdseSwgc3luY2hy
b25vdXMgcGFnZSBzY3JvbGxzIG1vdmUgbGF5ZXJzIHZpYSBhIGRpc3BhdGNoIHRvIHRoZSBzY3Jv
bGxpbmcgdGhyZWFkIGluCisgICAgICAgIEZyYW1lVmlldzo6aGFuZGxlV2hlZWxFdmVudEZvclNj
cm9sbGluZygpLCBidXQgb3ZlcmZsb3cgc2Nyb2xscyBqdXN0IGRpZCBtYWluIHRocmVhZCBjb21w
b3NpdGluZyB1cGRhdGVzCisgICAgICAgIHRvIHNldCB0aGUgbmV3IGxheWVyIHBvc2l0aW9ucy4K
KworICAgICAgICBBIGZ1dHVyZSBwYXRjaCB3aWxsIHJlcXVpcmUgdGhhdCB0aGUgImJlZ2FuIiBl
dmVudCBmb3IgYSBzeW5jaHJvbm91cyBzY3JvbGwgZ2V0cyBiYWNrIHRvIHRoZSBzY3JvbGxpbmcg
dGhyZWFkLAorICAgICAgICBzbyB1bmlmeSB0aGVzZSBjb2RlIHBhdGhzIHRvIGhhdmUgb3ZlcmZs
b3cgc2Nyb2xscyBhbHNvIGxldmVyYWdlIGhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQo
KSwgdmlhCisgICAgICAgIFJlbmRlckxheWVyOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5n
KCkuCisKKyAgICAgICAgVGhlcmUncyBzb21lIGZhbGxvdXQgZnJvbSB0aGlzLiBUaHJlYWRlZFNj
cm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoKSBjYWxscyBpbnRv
IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSgpLAorICAgICAgICBidXQgaW4gdGhpcyBzcGVjaWFs
IGNhc2UgdGhhdCBjb2RlcGF0aCBuZWVkcyB0byBrbm93IHRoYXQgd2UncmUgaW4gYSBzcGVjaWFs
ICJwb3N0IG1haW4gdGhyZWFkIiBtb2RlIHRoYXQgc2hvdWxkCisgICAgICAgICAgICAxLiBCZWhh
dmUgYXMgaWYgdGhlIG5vZGUgaXMgbGF0Y2hlZCwgaS5lLiBkb24ndCBwcm9wYWdhdGUgdG8gcGFy
ZW50IG5vZGVzLAorICAgICAgICAgICAgICAgYW5kIHRhcmdldCB0aGUgbm9kZSBpZiBpZiBpdCdz
IHNjcm9sbGVkIHRvIGEgdGhlIG1pbiBvciBtYXggdG8gYWxsb3cgcnViYmVyYmFuZGluZworICAg
ICAgICAgICAgMi4gU2Nyb2xsIGV2ZW4gaWYgdGhlIG5vZGUgaGFzIHN5bmNocm9ub3VzIHNjcm9s
bGluZyByZWFzb25zCisgICAgICAgIFRoaXMgbW9kZSBpcyByZXByZXNlbnRlZCBieSB0aGUgRXZl
bnRUYXJnZXRpbmcgdmFsdWUuCisKKyAgICAgICAgRmluYWxseSwgRXZlbnRIYW5kbGVyOjpoYW5k
bGVXaGVlbEV2ZW50SW50ZXJuYWwoKSBzaG91bGQgb25seSBjbGVhciBsYXRjaGluZyBzdGF0ZSBp
ZiB0aGUgY29udGVudCBoYXMgY2FsbGVkIHByZXZlbnREZWZhdWx0KCkKKyAgICAgICAgb24gdGhl
IGV2ZW50LgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwpOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXI6OnVwZGF0ZUFuZEZldGNoTGF0Y2hpbmdT
dGF0ZUZvckZyYW1lKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRXaXRo
Tm9kZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjYW5IYW5kbGVXaGVlbEV2
ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Ny
b2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6
OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpo
YW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hl
ZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmg6CisKIDIwMjAtMTEtMjAgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuYW1lIExpbmVJdGVy
YXRvckxlZ2FjeTo6bG9naWNhbExlZnQvcmlnaHQgdG8gY29udGVudExlZnQvcmlnaHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZTU0NTM2NDA1MWEwOWIzNDg3MGRlODk0MzMzZThjOGIxM2E3MTBkZi4uY2U4YTM2ODVk
MGRkZGQ0NjBiZDk0MzRjOGZmMDFiMGQxZTZjZDhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBA
QAorMjAyMC0xMS0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBPbmx5IHRoZSBmaXJzdCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUgc2hvdWxkIGJl
IGNhbmNlbGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODc2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEyNDg5NDY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gRXZlbnREaXNwYXRjaGVy
Ojp3aGVlbEV2ZW50KCksIGFsbCB3aGVlbCBldmVudHMgbm93IGJvdW5jZSB0aHJvdWdoIHRoZSBz
Y3JvbGxpbmcKKyAgICAgICAgdGhyZWFkLCBldmVuIHRob3NlIGRlc3RpbmVkIGZvciBtYWluIHRo
cmVhZCBzY3JvbGxpbmcuIFRoaXMgYWxsb3dzIHRoZSBzY3JvbGxpbmcgdGhyZWFkCisgICAgICAg
IHRvIHdhaXQgb24gYSBjb25kaXRpb24gZm9yIHRoZSBldmVudCB0byBjb21lIGJhY2sgdG8gdGhl
IHNjcm9sbGluZyB0aHJlYWQgdmlhCisgICAgICAgIGhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5U
aHJlYWQoKSwgc2luY2Ugd2UgaGF2ZSB0byBrbm93IHdoZXRoZXIgY29udGVudCBjYWxsZWQKKyAg
ICAgICAgcHJldmVudERlZmF1bHQoKSBvbiB0aGUgZmlyc3QgZXZlbnQgYmVmb3JlIHNlbmRpbmcg
c3Vic2VxdWVudCBldmVudHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KToKKworMjAyMC0xMS0yMCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNwYXRjaCBtYWlu
LXRocmVhZCBvdmVyZmxvdyBzY3JvbGxzIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkIGFzIHdlIGRv
IGZvciBwYWdlIHNjcm9sbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxOTIxMworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisgICAg
ICAgIAorICAgICAgICBVbmlmeSB0aGUgYmVoYXZpb3Igb2Ygb3ZlcmZsb3cgc2Nyb2xsaW5nIGFu
ZCBwYWdlIHNjcm9sbGluZyBmb3Igc3luY2hyb25vdXMgc2Nyb2xscy4KKyAgICAgICAgCisgICAg
ICAgIFNvbWV3aGF0IHN1cnByaXNpbmdseSwgc3luY2hyb25vdXMgcGFnZSBzY3JvbGxzIG1vdmUg
bGF5ZXJzIHZpYSBhIGRpc3BhdGNoIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkIGluCisgICAgICAg
IEZyYW1lVmlldzo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZygpLCBidXQgb3ZlcmZsb3cg
c2Nyb2xscyBqdXN0IGRpZCBtYWluIHRocmVhZCBjb21wb3NpdGluZyB1cGRhdGVzCisgICAgICAg
IHRvIHNldCB0aGUgbmV3IGxheWVyIHBvc2l0aW9ucy4KKworICAgICAgICBBIGZ1dHVyZSBwYXRj
aCB3aWxsIHJlcXVpcmUgdGhhdCB0aGUgImJlZ2FuIiBldmVudCBmb3IgYSBzeW5jaHJvbm91cyBz
Y3JvbGwgZ2V0cyBiYWNrIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkLAorICAgICAgICBzbyB1bmlm
eSB0aGVzZSBjb2RlIHBhdGhzIHRvIGhhdmUgb3ZlcmZsb3cgc2Nyb2xscyBhbHNvIGxldmVyYWdl
IGhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoKSwgdmlhCisgICAgICAgIFJlbmRlckxh
eWVyOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKCkuCisKKyAgICAgICAgVGhlcmUncyBz
b21lIGZhbGxvdXQgZnJvbSB0aGlzLiBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVs
RXZlbnRBZnRlck1haW5UaHJlYWQoKSBjYWxscyBpbnRvIGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9k
ZSgpLAorICAgICAgICBidXQgaW4gdGhpcyBzcGVjaWFsIGNhc2UgdGhhdCBjb2RlcGF0aCBuZWVk
cyB0byBrbm93IHRoYXQgd2UncmUgaW4gYSBzcGVjaWFsICJwb3N0IG1haW4gdGhyZWFkIiBtb2Rl
IHRoYXQgc2hvdWxkCisgICAgICAgICAgICAxLiBCZWhhdmUgYXMgaWYgdGhlIG5vZGUgaXMgbGF0
Y2hlZCwgaS5lLiBkb24ndCBwcm9wYWdhdGUgdG8gcGFyZW50IG5vZGVzLAorICAgICAgICAgICAg
ICAgYW5kIHRhcmdldCB0aGUgbm9kZSBpZiBpZiBpdCdzIHNjcm9sbGVkIHRvIGEgdGhlIG1pbiBv
ciBtYXggdG8gYWxsb3cgcnViYmVyYmFuZGluZworICAgICAgICAgICAgMi4gU2Nyb2xsIGV2ZW4g
aWYgdGhlIG5vZGUgaGFzIHN5bmNocm9ub3VzIHNjcm9sbGluZyByZWFzb25zCisgICAgICAgIFRo
aXMgbW9kZSBpcyByZXByZXNlbnRlZCBieSB0aGUgRXZlbnRUYXJnZXRpbmcgdmFsdWUuCisKKyAg
ICAgICAgRmluYWxseSwgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwoKSBz
aG91bGQgb25seSBjbGVhciBsYXRjaGluZyBzdGF0ZSBpZiB0aGUgY29udGVudCBoYXMgY2FsbGVk
IHByZXZlbnREZWZhdWx0KCkKKyAgICAgICAgb24gdGhlIGV2ZW50LgorCisgICAgICAgICogVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZVJlbW90ZU1hYy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlV2hl
ZWxFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oOgorCiAyMDIwLTExLTIwICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBz
b21lIHdoZWVsLWV2ZW50IGhhbmRsaW5nIGZ1bmN0aW9ucyBmb3IgY2xhcml0eQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IGQ2MWM3ZjY5NTQxMmE1NWIxNjQ2MzBmN2VkY2U5Y2NmM2I1MTg3MWUu
LjBiNGM5ZDhkY2JlOTYwN2EyZmRmZjBkMjI4YTA0YmI5NDZkNzUwMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTQzNyw3ICs0MzcsNyBAQCBib29sIEVsZW1lbnQ6OmRpc3BhdGNoV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHBsYXRmb3JtRXZlbnQsIE9wdGlvbgogCiAg
ICAgZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgCi0gICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9s
bGluZywgc3RyZWFtIDw8ICJFbGVtZW50ICIgPDwgKnRoaXMgPDwgIiBkaXNwYXRjaFdoZWVsRXZl
bnQ6IGRlZmF1bHRQcmV2ZW50ZWQgIiA8PCBldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpIDw8ICIg
ZGVmYXVsdEhhbmRsZWQgIiA8PCBldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSk7CisgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJFbGVtZW50ICIgPDwgKnRoaXMgPDwgIiBk
aXNwYXRjaFdoZWVsRXZlbnQ6IChjYW5jZWxhYmxlICIgPDwgZXZlbnQtPmNhbmNlbGFibGUoKSA8
PCAiKSBkZWZhdWx0UHJldmVudGVkICIgPDwgZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSA8PCAi
IGRlZmF1bHRIYW5kbGVkICIgPDwgZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpOwogICAgIAogICAg
IGlmIChldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpKQogICAgICAgICBwcm9jZXNzaW5nLmFkZChF
dmVudEhhbmRsaW5nOjpEZWZhdWx0UHJldmVudGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAppbmRleCAyMDg0ZmU0Y2YwMDgyOGVhYWFmZDQ0ZWE2ODNjMzFmZmFmNTZiNjNkLi45
NTgyZjMyYmNmMWFiYWJiYWYwNjk1YjlkODljMDMyZDU2ZjM5YzI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTUsNyArMzE1LDcgQEAgc3RhdGljIGJvb2wgZGlkU2Ny
b2xsSW5TY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0
IFdoZWUKICAgICByZXR1cm4gZGlkSGFuZGxlV2hlZWxFdmVudDsKIH0KIAotc3RhdGljIGJvb2wg
aGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3RhcnROb2Rl
LCBjb25zdCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBjb25zdCBGbG9hdFNpemUmIGZpbHRlcmVk
UGxhdGZvcm1EZWx0YSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJlZFZlbG9jaXR5KQorc3RhdGlj
IGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goTm9kZSogc3Rh
cnROb2RlLCBjb25zdCBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBjb25zdCBGbG9hdFNpemUmIGZp
bHRlcmVkUGxhdGZvcm1EZWx0YSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJlZFZlbG9jaXR5LCBP
cHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZykKIHsKICAgICBib29sIHNob3Vs
ZEhhbmRsZUV2ZW50ID0gd2hlZWxFdmVudC5kZWx0YVgoKSB8fCB3aGVlbEV2ZW50LmRlbHRhWSgp
OwogI2lmIEVOQUJMRShXSEVFTF9FVkVOVF9MQVRDSElORykKQEAgLTM0Niw3ICszNDYsNyBAQCBz
dGF0aWMgYm9vbCBoYW5kbGVXaGVlbEV2ZW50SW5BcHByb3ByaWF0ZUVuY2xvc2luZ0JveChOb2Rl
KiBzdGFydE5vZGUsIGNvbnN0IFdoZQogICAgICAgICAgICAgYm9vbCBzY3JvbGxpbmdXYXNIYW5k
bGVkOwogICAgICAgICAgICAgaWYgKHBsYXRmb3JtRXZlbnQpIHsKICAgICAgICAgICAgICAgICBh
dXRvIGNvcGllZEV2ZW50ID0gcGxhdGZvcm1FdmVudC0+Y29weVdpdGhEZWx0YXNBbmRWZWxvY2l0
eShmaWx0ZXJlZFBsYXRmb3JtRGVsdGEud2lkdGgoKSwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLmhl
aWdodCgpLCBmaWx0ZXJlZFZlbG9jaXR5KTsKLSAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNI
YW5kbGVkID0gYm94TGF5ZXItPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29waWVkRXZl
bnQpOworICAgICAgICAgICAgICAgIHNjcm9sbGluZ1dhc0hhbmRsZWQgPSBib3hMYXllci0+aGFu
ZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb3BpZWRFdmVudCwgZXZlbnRIYW5kbGluZyk7CiAg
ICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0g
ZGlkU2Nyb2xsSW5TY3JvbGxhYmxlQXJlYSgqYm94TGF5ZXIsIHdoZWVsRXZlbnQpOwogCkBAIC0y
NzgwLDE0ICsyNzgwLDE0IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvcmRXaGVlbEV2ZW50Rm9y
RGVsdGFGaWx0ZXIoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVuCiAgICAgICAgIHBhZ2Ut
PndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT51cGRhdGVGcm9tRGVsdGEoRmxvYXRTaXplKGV2ZW50
LmRlbHRhWCgpLCBldmVudC5kZWx0YVkoKSkpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cHJv
Y2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVu
dCwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mKQorYm9vbCBFdmVudEhhbmRsZXI6OnBy
b2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZl
bnQsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxp
bmc+IGV2ZW50SGFuZGxpbmcpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2Zy
YW1lKTsKIAogICAgIC8vIFdlIGRvIGFub3RoZXIgY2hlY2sgb24gdGhlIGZyYW1lIHZpZXcgYmVj
YXVzZSB0aGUgZXZlbnQgaGFuZGxlciBjYW4gcnVuIEpTIHdoaWNoIHJlc3VsdHMgaW4gdGhlIGZy
YW1lIGdldHRpbmcgZGVzdHJveWVkLgogICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUudmll
dygpOwogICAgIAotICAgIGJvb2wgZGlkSGFuZGxlRXZlbnQgPSB2aWV3ID8gdmlldy0+aGFuZGxl
V2hlZWxFdmVudEZvclNjcm9sbGluZyhldmVudCkgOiBmYWxzZTsKKyAgICBib29sIGRpZEhhbmRs
ZUV2ZW50ID0gdmlldyA/IHZpZXctPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoZXZlbnQs
IGV2ZW50SGFuZGxpbmcpIDogZmFsc2U7CiAgICAgbV9pc0hhbmRsaW5nV2hlZWxFdmVudCA9IGZh
bHNlOwogICAgIHJldHVybiBkaWRIYW5kbGVFdmVudDsKIH0KQEAgLTI4NjksNiArMjg2OSw3IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgZXZlbnQsIE9wdGlvblNldDxXCiB7CiAgICAgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+
IGhhbmRsaW5nOwogICAgIGJvb2wgaGFuZGxlZCA9IGhhbmRsZVdoZWVsRXZlbnRJbnRlcm5hbChl
dmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCBoYW5kbGluZyk7CisgICAgLy8gd2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZCgpIG1heSBoYXZlIGFscmVhZHkgYmVlbiBjYWxsZWQgdmlhIHBl
cmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKCksIGJ1dCB0aGlzIGVuc3VyZXMgdGhhdCBp
dCdzIGFsd2F5cyBjYWxsZWQgaWYgdGhhdCBjb2RlIHBhdGggZG9lbnMndCBydW4uCiAgICAgd2hl
ZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChldmVudCwgaGFuZGxpbmcpOwogICAgIHJl
dHVybiBoYW5kbGVkOwogfQpAQCAtMjk0MSw3ICsyOTQyLDggQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZVdoZWVsRXZlbnRJbnRlcm5hbChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50
LCBPcHQKICAgICAgICAgICAgIG1faXNIYW5kbGluZ1doZWVsRXZlbnQgPSBmYWxzZTsKICAgICAg
ICAgICAgIGlmIChzY3JvbGxhYmxlQXJlYSAmJiBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsU2hvdWxk
Q2xlYXJMYXRjaGVkU3RhdGUoKSkgewogICAgICAgICAgICAgICAgIC8vIFdlYiBkZXZlbG9wZXIg
aXMgY29udHJvbGxpbmcgc2Nyb2xsaW5nLCBzbyBkb24ndCBhdHRlbXB0IHRvIGxhdGNoLgotICAg
ICAgICAgICAgICAgIGNsZWFyTGF0Y2hlZFN0YXRlKCk7CisgICAgICAgICAgICAgICAgaWYgKGhh
bmRsaW5nLmNvbnRhaW5zQWxsKHsgRXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NLCBFdmVu
dEhhbmRsaW5nOjpEZWZhdWx0UHJldmVudGVkIH0pKQorICAgICAgICAgICAgICAgICAgICBjbGVh
ckxhdGNoZWRTdGF0ZSgpOwogICAgICAgICAgICAgICAgIHNjcm9sbGFibGVBcmVhLT5zZXRTY3Jv
bGxTaG91bGRDbGVhckxhdGNoZWRTdGF0ZShmYWxzZSk7CiAgICAgICAgICAgICB9CiAKQEAgLTI5
NjQsNyArMjk2Niw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJu
YWwoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgT3B0CiAjZW5kaWYKICAgICBpZiAo
YWxsb3dTY3JvbGxpbmcpIHsKICAgICAgICAgLy8gRklYTUU6IHByb2Nlc3NXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKCkgaXMgb25seSBjYWxsZWQgZm9yIEZyYW1lVmlldyBzY3JvbGxpbmcsIG5vdCBv
dmVyZmxvdyBzY3JvbGxpbmcsIHdoaWNoIGlzIGNvbmZ1c2luZy4KLSAgICAgICAgaGFuZGxlZEV2
ZW50ID0gcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoZXZlbnQsIHNjcm9sbGFibGVBcmVh
KTsKKyAgICAgICAgaGFuZGxlZEV2ZW50ID0gcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmco
ZXZlbnQsIHNjcm9sbGFibGVBcmVhLCBoYW5kbGluZyk7CiAgICAgICAgIHByb2Nlc3NXaGVlbEV2
ZW50Rm9yU2Nyb2xsU25hcChldmVudCwgc2Nyb2xsYWJsZUFyZWEpOwogICAgIH0KIApAQCAtMzAw
Niw2ICszMDA4LDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0V2hlZWxFdmVudEhhbmRs
ZXIoTm9kZSogc3RhcnROb2RlLCBXaGVlbEV2ZW50JiB3aGVlbEV2CiAgICAgICAgIGZpbHRlcmVk
UGxhdGZvcm1EZWx0YS5zZXRIZWlnaHQocGxhdGZvcm1XaGVlbEV2ZW50LT5kZWx0YVkoKSk7CiAg
ICAgfQogCisgICAgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcgPSB7IEV2
ZW50SGFuZGxpbmc6OkRpc3BhdGNoZWRUb0RPTSB9OworICAgIGlmICh3aGVlbEV2ZW50LmRlZmF1
bHRQcmV2ZW50ZWQoKSkKKyAgICAgICAgZXZlbnRIYW5kbGluZy5hZGQoRXZlbnRIYW5kbGluZzo6
RGVmYXVsdFByZXZlbnRlZCk7CisKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCiAg
ICAgaWYgKG1fZnJhbWUucGFnZSgpLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+aXNGaWx0ZXJp
bmdEZWx0YXMoKSkgewogICAgICAgICBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEgPSBtX2ZyYW1lLnBh
Z2UoKS0+d2hlZWxFdmVudERlbHRhRmlsdGVyKCktPmZpbHRlcmVkRGVsdGEoKTsKQEAgLTMwMjUs
MTQgKzMwMzEsMTQgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRXaGVlbEV2ZW50SGFuZGxl
cihOb2RlKiBzdGFydE5vZGUsIFdoZWVsRXZlbnQmIHdoZWVsRXYKICAgICAgICAgYXV0byBwbGF0
Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRlcmx5aW5nUGxhdGZvcm1FdmVudCgpOwogICAgICAg
ICBpZiAocGxhdGZvcm1FdmVudCkgewogICAgICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBs
YXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURl
bHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxv
Y2l0eSk7Ci0gICAgICAgICAgICBpZiAobGF0Y2hlZFNjcm9sbGVyLT5oYW5kbGVXaGVlbEV2ZW50
Rm9yU2Nyb2xsaW5nKGNvcGllZEV2ZW50KSkKKyAgICAgICAgICAgIGlmIChsYXRjaGVkU2Nyb2xs
ZXItPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29waWVkRXZlbnQsIGV2ZW50SGFuZGxp
bmcpKQogICAgICAgICAgICAgICAgIHdoZWVsRXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKGhh
bmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KHN0YXJ0Tm9kZSwgd2hlZWxF
dmVudCwgZmlsdGVyZWRQbGF0Zm9ybURlbHRhLCBmaWx0ZXJlZFZlbG9jaXR5KSkKKyAgICBpZiAo
aGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdCb3goc3RhcnROb2RlLCB3aGVl
bEV2ZW50LCBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEsIGZpbHRlcmVkVmVsb2NpdHksIGV2ZW50SGFu
ZGxpbmcpKQogICAgICAgICB3aGVlbEV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDkwYzc4N2I2N2UyZjNkYzI5ZDQ1ODhlZWJm
NTg3ZmE5MzUxZGU5ZDkuLjliY2ViNGVkMzkwYjg4NGEyNWM4OGE5ZmY2OTYyMmU4ZTk0NWI5MWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNDU5LDcgKzQ1OSw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIFdpZGdldCYsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPik7CiAg
ICAgdm9pZCBkZXRlcm1pbmVXaGVlbEV2ZW50VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYsIFJlZlB0cjxFbGVtZW50PiYgZXZlbnRUYXJnZXQsIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+
JiwgYm9vbCYgaXNPdmVyV2lkZ2V0KTsKICAgICB2b2lkIHJlY29yZFdoZWVsRXZlbnRGb3JEZWx0
YUZpbHRlcihjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKLSAgICBib29sIHByb2Nlc3NXaGVl
bEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQ
dHI8U2Nyb2xsYWJsZUFyZWE+Jik7CisgICAgYm9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9s
bGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVB
cmVhPiYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAgICAgdm9pZCBwcm9jZXNzV2hlZWxF
dmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2Vha1B0
cjxTY3JvbGxhYmxlQXJlYT4mKTsKICAgICBib29sIGNvbXBsZXRlV2lkZ2V0V2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXZWFrUHRyPFdpZGdldD4mLCBjb25zdCBX
ZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5k
ZXggMzA1OGQ5MWRlNjVhOWNjMzhkNTkwNjc5MGFkMzJhN2M2NzgxODJmYi4uNzRmMzBlYWI3MGMx
NGMzNTU1MjlhNzdjMWZjZGMxODMwYTEzYzZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtNTA5OCw3ICs1MDk4LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnJlbW92ZUNoaWxkKFdpZGdl
dCYgd2lkZ2V0KQogICAgIFNjcm9sbFZpZXc6OnJlbW92ZUNoaWxkKHdpZGdldCk7CiB9CiAKLWJv
b2wgRnJhbWVWaWV3OjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK2Jvb2wgRnJhbWVWaWV3OjpoYW5kbGVXaGVlbEV2ZW50
Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9u
U2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcpCiB7CiAgICAgLy8gTm90ZSB0aGF0IHRv
IGFsbG93IGZvciBydWJiZXItYmFuZCBvdmVyLXNjcm9sbCBiZWhhdmlvciwgZXZlbiBub24tc2Ny
b2xsYWJsZSB2aWV3cwogICAgIC8vIHNob3VsZCBoYW5kbGUgd2hlZWwgZXZlbnRzLgpAQCAtNTEy
OCwxMSArNTEyOCwxMSBAQCBib29sIEZyYW1lVmlldzo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9s
bGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbgogI2lmIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCiAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAgICAgIGlmIChzY3JvbGxpbmdDb29yZGluYXRv
ci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JGcmFtZVZpZXcoKnRoaXMpKQotICAgICAgICAgICAg
cmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5n
KHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKKyAgICAgICAgICAgIHJldHVybiBzY3Jv
bGxpbmdDb29yZGluYXRvci0+aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyh3aGVlbEV2ZW50
LCBzY3JvbGxpbmdOb2RlSUQoKSwgZXZlbnRIYW5kbGluZyk7CiAgICAgfQogI2VuZGlmCiAKLSAg
ICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hl
ZWxFdmVudCk7CisgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKHdoZWVsRXZlbnQsIGV2ZW50SGFuZGxpbmcpOwogfQogCiBib29sIEZyYW1lVmll
dzo6aXNWZXJ0aWNhbERvY3VtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4
IGIyMmZhNmNiODJmYmJlMjAwYTFjNzQyYWQwMmY1M2ZkZGM1Y2RjMDAuLmNhMDA4ZjgxMTAxNjY0
NTFmYzFlMmMwYzcxNWJjNzM3NWI2NDM5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAt
NTY1LDcgKzU2NSw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3Ig
cG9ydHMgdGhhdCBuZWVkIHRvIGhhbmRsZSB3aGVlbCBldmVudHMgbWFudWFsbHkuCiAgICAgLy8g
T24gTWFjIFdlYktpdDEgdGhlIHVuZGVybHlpbmcgTlNTY3JvbGxWaWV3IGp1c3QgZG9lcyB0aGUg
c2Nyb2xsaW5nLCBidXQgb24gbW9zdCBvdGhlciBwbGF0Zm9ybXMKICAgICAvLyB3ZSBuZWVkIHRo
aXMgZnVuY3Rpb24gaW4gb3JkZXIgdG8gZG8gdGhlIHNjcm9sbCBvdXJzZWx2ZXMuCi0gICAgYm9v
bCBoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYp
IGZpbmFsOworICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pIGZpbmFsOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVk
KGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0
TW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5j
cHAKaW5kZXggNjM3NzIwMjg2NjE4MWYwYzZkZGJkZTJhNzNlYzc4M2Y4NDg3YzcwYi4uYmVhZWRi
ZjJlZWQ0YzUzNGQ5MjM1NWI3M2RjNWEzOGRkN2RjNTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6
RGVmZXJSZWFzb24gcmVhc29uCiAgICAgc3dpdGNoIChyZWFzb24pIHsKICAgICBjYXNlIFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50OiB0cyA8PCAiaGFuZGxpbmcgd2hl
ZWwgZXZlbnQiOyBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxp
bmdXaGVlbEV2ZW50T25NYWluVGhyZWFkOiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQgb24g
bWFpbiB0aHJlYWQiOyBicmVhazsKLSAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UmVw
b3J0RE9NRXZlbnRIYW5kbGluZzogdHMgPDwgInJlcG9ydCBET00gZXZlbnQgaGFuZGxpbmciOyBi
cmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UG9zdE1haW5UaHJlYWRXaGVl
bEV2ZW50SGFuZGxpbmc6IHRzIDw8ICJwb3N0LW1haW4gdGhyZWFkIGV2ZW50IGhhbmRsaW5nIjsg
YnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJ1YmJlcmJhbmRJblByb2dy
ZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRl
c3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9ncmVzczogdHMgPDwgInNjcm9sbC1zbmFwcGluZyI7
IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxpbmdUaHJlYWRT
eW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5nIHRocmVhZCBzeW5jIG5lZWRlZCI7IGJyZWFrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmgKaW5kZXggOTIwNzdl
OWQ1ZmFiMGVmOWZlMjZmMDU1MjU3MzcyOGMxYzc2NzVjZC4uNmQxYjEyNmExNzdmNmM4Yjk0YTgz
OWYzNzZhZmRhZmY3NTU3YWJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVl
bEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRU
ZXN0TW9uaXRvci5oCkBAIC00OCwxNCArNDgsMTQgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgY2xlYXJBbGxUZXN0RGVmZXJyYWxzKCk7CiAgICAgCiAgICAgZW51bSBEZWZlclJl
YXNvbiB7Ci0gICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudCAgICAgICAgICAgICAgPSAxIDw8IDAs
Ci0gICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZCAgPSAxIDw8IDEsCi0gICAg
ICAgIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcgICAgICAgICAgPSAxIDw8IDIsCi0gICAgICAgIFJ1
YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIFNjcm9sbFNu
YXBJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDQsCi0gICAgICAgIFNjcm9sbGluZ1RocmVh
ZFN5bmNOZWVkZWQgICAgICAgPSAxIDw8IDUsCi0gICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dy
ZXNzICAgICAgICAgPSAxIDw8IDYsCi0gICAgICAgIFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uICAg
ICAgICAgPSAxIDw8IDcsCisgICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudCAgICAgICAgICAgICAg
ICAgID0gMSA8PCAwLAorICAgICAgICBIYW5kbGluZ1doZWVsRXZlbnRPbk1haW5UaHJlYWQgICAg
ICA9IDEgPDwgMSwKKyAgICAgICAgUG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmcgICAg
PSAxIDw8IDIsCisgICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAgICAgICAgID0g
MSA8PCAzLAorICAgICAgICBTY3JvbGxTbmFwSW5Qcm9ncmVzcyAgICAgICAgICAgICAgICA9IDEg
PDwgNCwKKyAgICAgICAgU2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCAgICAgICAgICAgPSAxIDw8
IDUsCisgICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAgICAgICAgICAgID0gMSA8PCA2
LAorICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiAgICAgICAgICAgICA9IDEgPDwgNywK
ICAgICB9OwogICAgIHR5cGVkZWYgY29uc3Qgdm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVy
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggYWZk
NzZkMjU2ZWQwY2Y0N2UzZWFiMzQ5OGU0MTc2ZGI2OTcyNTBlNC4uNTFiYWIwZTE5MmY3YTU3Mjg0
NDhkZDEzMTQ5ZTYzMzJkN2MwNWMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50
SGFuZGxlck1hYy5tbQpAQCAtOTA0LDcgKzkwNCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNv
cmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
CiAgICAgcGFnZS0+d2hlZWxFdmVudERlbHRhRmlsdGVyKCktPnVwZGF0ZUZyb21EZWx0YShGbG9h
dFNpemUod2hlZWxFdmVudC5kZWx0YVgoKSwgd2hlZWxFdmVudC5kZWx0YVkoKSkpOwogfQogCi1i
b29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVh
PiYgc2Nyb2xsYWJsZUFyZWEpCitib29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRG
b3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBjb25zdCBX
ZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYgc2Nyb2xsYWJsZUFyZWEsIE9wdGlvblNldDxFdmVudEhh
bmRsaW5nPiBldmVudEhhbmRsaW5nKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRj
aGluZywgc3RyZWFtIDw8ICJFdmVudEhhbmRsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xs
aW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIC0gc2Nyb2xsYWJsZUFyZWEgIiA8PCBWYWx1ZU9yTnVs
bChzY3JvbGxhYmxlQXJlYS5nZXQoKSkgPDwgIiB1c2UgbGF0Y2hlZCBlbGVtZW50ICIgPDwgd2hl
ZWxFdmVudC51c2VMYXRjaGVkRXZlbnRFbGVtZW50KCkpOwogCkBAIC05MzksNyArOTM5LDcgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlZWwKIAogICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
TGF0Y2hpbmcsIHN0cmVhbSA8PCAiIHNlbmRpbmcgdG8gdmlldyAiIDw8ICp2aWV3KTsKIAotICAg
ICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSB2aWV3LT5oYW5kbGVXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKHdoZWVsRXZlbnQpOworICAgICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQg
PSB2aWV3LT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHdoZWVsRXZlbnQsIGV2ZW50SGFu
ZGxpbmcpOwogICAgICAgICAvLyBJZiB0aGUgcGxhdGZvcm0gd2lkZ2V0IGlzIGhhbmRsaW5nIHRo
ZSBldmVudCwgd2UgYWx3YXlzIHdhbnQgdG8gcmV0dXJuIGZhbHNlLgogICAgICAgICBpZiAodmll
dy0+cGxhdGZvcm1XaWRnZXQoKSkKICAgICAgICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSBm
YWxzZTsKQEAgLTk0OCw3ICs5NDgsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVs
RXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbAogICAgICAg
ICByZXR1cm4gZGlkSGFuZGxlV2hlZWxFdmVudDsKICAgICB9CiAgICAgCi0gICAgYm9vbCBkaWRI
YW5kbGVFdmVudCA9IHZpZXctPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVu
dCk7CisgICAgYm9vbCBkaWRIYW5kbGVFdmVudCA9IHZpZXctPmhhbmRsZVdoZWVsRXZlbnRGb3JT
Y3JvbGxpbmcod2hlZWxFdmVudCwgZXZlbnRIYW5kbGluZyk7CiAgICAgbV9pc0hhbmRsaW5nV2hl
ZWxFdmVudCA9IGZhbHNlOwogICAgIHJldHVybiBkaWRIYW5kbGVFdmVudDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRy
b2xsZXIuY3BwCmluZGV4IDY0YTZlM2VkMGI1MDFmNTFlMDllMWU0YWI0OWNkOTcyYzk5MDhhNWYu
LjRlZDRkOTc1YTdlYTQ1MDA5N2ZjYmI0ZGU5YTJlMDMyMWM2YTY3N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdDb250cm9s
bGVyLmNwcApAQCAtMTIwLDYgKzEyMCw3IEBAIHZvaWQgU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVy
Ojp1cGRhdGVBbmRGZXRjaExhdGNoaW5nU3RhdGVGb3JGcmFtZShGcmFtZSYgZnJhbWUsCiAgICAg
ICAgICAgICAgICAgc3RhdGUuc2Nyb2xsYWJsZUFyZWEgPSBzY3JvbGxhYmxlQXJlYTsKICAgICAg
ICAgICAgIHN0YXRlLmlzT3ZlcldpZGdldCA9IGlzT3ZlcldpZGdldDsKIAorICAgICAgICAgICAg
TE9HX1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbExhdGNoaW5n
Q29udHJvbGxlcjo6dXBkYXRlQW5kRmV0Y2hMYXRjaGluZ1N0YXRlRm9yRnJhbWUoKSAtIHB1c2hp
bmcgc3RhdGUgZm9yIEZyYW1lICIgPDwgJmZyYW1lIDw8ICIgZWxlbWVudCAiIDw8IHN0YXRlLndo
ZWVsRXZlbnRFbGVtZW50LmdldCgpIDw8ICIgc2Nyb2xsYWJsZUFyZWEgIiA8PCBzdGF0ZS5zY3Jv
bGxhYmxlQXJlYSk7CiAgICAgICAgICAgICBtX2ZyYW1lU3RhdGVTdGFjay5hcHBlbmQoV1RGTW92
ZShzdGF0ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xNDMsNiArMTQ0
LDggQEAgdm9pZCBTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXI6OnVwZGF0ZUFuZEZldGNoTGF0Y2hp
bmdTdGF0ZUZvckZyYW1lKEZyYW1lJiBmcmFtZSwKICAgICAgICAgICAgIGxhdGNoZWRFbGVtZW50
ID0gc3RhdGUud2hlZWxFdmVudEVsZW1lbnQuZ2V0KCk7CiAgICAgICAgICAgICBzY3JvbGxhYmxl
QXJlYSA9IHN0YXRlLnNjcm9sbGFibGVBcmVhOwogICAgICAgICAgICAgaXNPdmVyV2lkZ2V0ID0g
c3RhdGUuaXNPdmVyV2lkZ2V0OworCisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
TGF0Y2hpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyOjp1cGRhdGVBbmRG
ZXRjaExhdGNoaW5nU3RhdGVGb3JGcmFtZSgpIC0gdXNpbmcgc3RhdGUgZm9yIEZyYW1lICIgPDwg
JmZyYW1lIDw8ICIgZWxlbWVudCAiIDw8IGxhdGNoZWRFbGVtZW50LmdldCgpIDw8ICIgc2Nyb2xs
YWJsZUFyZWEgIiA8PCBzY3JvbGxhYmxlQXJlYSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAppbmRleCBhNTAwZTgyYTliZjNhNmU0MmYxNzYzNjkzZTA0MmJiMDkyMTA2NDFmLi5lODU2Mjgz
MDRiOTcyY2NmYzA3YmIwYTRkNmVmMjFlNWJjYTc2OWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTEyNyw3ICsx
MjcsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhlc2UgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGN1cnJl
bnRseSB1bmlxdWUgdG8gdGhlIHRocmVhZGVkIHNjcm9sbGluZyBhcmNoaXRlY3R1cmUuIAogICAg
IHZpcnR1YWwgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpIHsgfQogICAgIHZpcnR1YWwg
Ym9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmLCBjb25zdCBJ
bnRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENs
YW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
dmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlEKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIFNjcm9sbGluZ05vZGVJRCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KSB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWlu
VGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5n
PikgeyB9CiAKICAgICAvLyBDcmVhdGUgYW4gdW5wYXJlbnRlZCBub2RlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCBiMDM2YWEyZWQx
ZmJiMTc1ZmExNDQ3NDg3NzI5NGM3YTg3NGQzYTNkLi5iYmJhYTIzNTZkODdlZDI2MDliMDA1MzE0
ZTZmZmZhNGEwNmUyNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcApAQCAtNzMsNiArNzMsOCBAQCBPcHRpb25TZXQ8V2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwcz4gU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3Np
bgogICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8PCAiU2Ny
b2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcgIiA8PCB3aGVlbEV2ZW50
IDw8ICIgaGF2ZSBsYXRjaGVkIG5vZGUgIiA8PCBsYXRjaGVkTm9kZUFuZFN0ZXBzLT5zY3JvbGxp
bmdOb2RlSUQgPDwgIiBzdGVwcyAiIDw8IGxhdGNoZWROb2RlQW5kU3RlcHMtPnByb2Nlc3NpbmdT
dGVwcyk7CiAgICAgICAgIHJldHVybiBsYXRjaGVkTm9kZUFuZFN0ZXBzLT5wcm9jZXNzaW5nU3Rl
cHM7CiAgICAgfQorICAgIGlmICh3aGVlbEV2ZW50LmlzR2VzdHVyZUJlZ2luKCkgfHwgd2hlZWxF
dmVudC5pc05vbkdlc3R1cmVFdmVudCgpKQorICAgICAgICBtX3RyZWVTdGF0ZS5yZXF1aXJlc1N5
bmNocm9ub3VzRXZlbnREaXNwYXRjaCA9IFdURjo6bnVsbG9wdDsKIAogICAgIGF1dG8gcHJvY2Vz
c2luZ1N0ZXBzID0gWyZdKCkgLT4gT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+
IHsKICAgICAgICAgaWYgKCFtX3Jvb3ROb2RlKQpAQCAtOTYsOCArOTgsMTIgQEAgT3B0aW9uU2V0
PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IFNjcm9sbGluZ1RyZWU6OmRldGVybWluZVdoZWVs
RXZlbnRQcm9jZXNzaW4KIAogI2lmIEVOQUJMRShXSEVFTF9FVkVOVF9SRUdJT05TKQogICAgICAg
ICBhdXRvIGV2ZW50TGlzdGVuZXJUeXBlcyA9IGV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclBv
aW50KHBvc2l0aW9uKTsKLSAgICAgICAgaWYgKGV2ZW50TGlzdGVuZXJUeXBlcy5jb250YWlucyhF
dmVudExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9uUGFzc2l2ZVdoZWVsKSkKKyAgICAgICAgaWYgKGV2
ZW50TGlzdGVuZXJUeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVyUmVnaW9uVHlwZTo6Tm9uUGFz
c2l2ZVdoZWVsKSkgeworICAgICAgICAgICAgaWYgKG1fdHJlZVN0YXRlLnJlcXVpcmVzU3luY2hy
b25vdXNFdmVudERpc3BhdGNoICYmICEqbV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2
ZW50RGlzcGF0Y2gpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWlu
VGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07CisKICAgICAgICAgICAgIHJl
dHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcs
IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50
RGlzcGF0Y2ggfTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChldmVudExpc3RlbmVyVHlwZXMu
Y29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6OldoZWVsKSkKICAgICAgICAgICAgIHJl
dHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCwgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnREaXNw
YXRjaCB9OwpAQCAtMTY4LDEyICsxNzQsMTIgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNj
cm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW4KICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1XaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5n
VHJlZTo6aGFuZGxlV2hlZWxFdmVudFdpdGhOb2RlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3Np
bmdTdGVwcywgU2Nyb2xsaW5nVHJlZU5vZGUqIG5vZGUpCitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1
bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudFdpdGhOb2RlKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM+IHByb2Nlc3NpbmdTdGVwcywgU2Nyb2xsaW5nVHJlZU5vZGUqIG5vZGUsIEV2ZW50VGFyZ2V0
aW5nIGV2ZW50VGFyZ2V0aW5nKQogewogICAgIHdoaWxlIChub2RlKSB7CiAgICAgICAgIGlmIChp
czxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpKSB7CiAgICAgICAgICAgICBhdXRv
JiBzY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpu
b2RlKTsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gc2Nyb2xsaW5nTm9kZS5oYW5kbGVXaGVl
bEV2ZW50KHdoZWVsRXZlbnQpOworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdO
b2RlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCwgZXZlbnRUYXJnZXRpbmcpOwogCiAgICAg
ICAgICAgICBpZiAocmVzdWx0Lndhc0hhbmRsZWQpIHsKICAgICAgICAgICAgICAgICBtX2xhdGNo
aW5nQ29udHJvbGxlci5ub2RlRGlkSGFuZGxlRXZlbnQoc2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdO
b2RlSUQoKSwgcHJvY2Vzc2luZ1N0ZXBzLCB3aGVlbEV2ZW50LCBtX2FsbG93TGF0Y2hpbmcpOwpA
QCAtMTgxLDcgKzE4Nyw3IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVl
OjpoYW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUoY29uc3QgUGxhdGZvcm1XCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKHJlc3Vs
dC5uZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkpCisgICAgICAgICAgICBpZiAocmVzdWx0Lm5l
ZWRzTWFpblRocmVhZFByb2Nlc3NpbmcoKSB8fCBldmVudFRhcmdldGluZyAhPSBFdmVudFRhcmdl
dGluZzo6UHJvcGFnYXRlKQogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAg
IH0KIApAQCAtNDgzLDYgKzQ4OSwxOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFt
ZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24pCiAgICAgbV90cmVlU3RhdGUubWFp
bkZyYW1lU2Nyb2xsUG9zaXRpb24gPSBwb3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVl
OjpzZXRHZXN0dXJlUmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2goYm9vbCByZXF1aXJl
c1N5bmNocm9ub3VzRGlzcGF0Y2gpCit7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRl
TXV0ZXgpOworICAgIG1fdHJlZVN0YXRlLnJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNo
ID0gcmVxdWlyZXNTeW5jaHJvbm91c0Rpc3BhdGNoOworfQorCitPcHRpb25hbDxib29sPiBTY3Jv
bGxpbmdUcmVlOjpnZXN0dXJlUmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2goKQorewor
ICAgIExvY2tIb2xkZXIgbG9jayhtX3RyZWVTdGF0ZU11dGV4KTsKKyAgICByZXR1cm4gbV90cmVl
U3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2g7Cit9CisKIFRyYWNraW5nVHlw
ZSBTY3JvbGxpbmdUcmVlOjpldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21TdHJp
bmcmIGV2ZW50TmFtZSwgSW50UG9pbnQgcCkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVl
U3RhdGVNdXRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmgKaW5kZXggYzhiYzFhMzhmYmY5MGQ1YjE0Nzc2ODUwYWM4YjNkZmJiZmQ4NWM0OS4uMzgx
NDc3OWUxZWY0MzJjMzNkNTQxZjRlZTk0YTQ0NTE1NjZiNmFiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtNzUsNiArNzUsOCBAQCBzdHJ1
Y3QgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IHsKICAgICB9CiB9OwogCitlbnVtIGNsYXNzIEV2
ZW50VGFyZ2V0aW5nIDogdWludDhfdCB7IE5vZGVPbmx5LCBQcm9wYWdhdGUgfTsKKwogY2xhc3Mg
U2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdUcmVl
PiB7CiBmcmllbmQgY2xhc3MgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjsKIHB1Ymxp
YzoKQEAgLTIwMyw2ICsyMDUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxvY2tMYXll
cnNGb3JIaXRUZXN0aW5nKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVubG9ja0xheWVyc0Zvckhp
dFRlc3RpbmcoKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZEV2ZW50VG9NYWluVGhy
ZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3YWl0
Rm9yRXZlbnRUb0JlUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYpIHsgfTsKKwogICAgIExvY2smIHRyZWVNdXRleCgpIHsgcmV0dXJuIG1fdHJlZU11dGV4OyB9
CiAKICAgICB2b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCwgT3B0
aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpOwpAQCAtMjMzLDExICsyMzgs
MTQgQEAgcHVibGljOgogICAgIFZlY3RvcjxTY3JvbGxVcGRhdGU+IHRha2VQZW5kaW5nU2Nyb2xs
VXBkYXRlcygpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhh
bmRsZVdoZWVsRXZlbnRXaXRoTm9kZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25T
ZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4sIFNjcm9sbGluZ1RyZWVOb2RlKik7CisgICAg
V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZShjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4s
IFNjcm9sbGluZ1RyZWVOb2RlKiwgRXZlbnRUYXJnZXRpbmcgPSBFdmVudFRhcmdldGluZzo6UHJv
cGFnYXRlKTsKIAogICAgIEZsb2F0UG9pbnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKSBjb25z
dDsKICAgICB2b2lkIHNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQpOwogCisg
ICAgdm9pZCBzZXRHZXN0dXJlUmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2goYm9vbCk7
CisgICAgT3B0aW9uYWw8Ym9vbD4gZ2VzdHVyZVJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3Bh
dGNoKCk7CisKICAgICBPcHRpb25hbDx1bnNpZ25lZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZCgp
OwogCiAgICAgdm9pZCBhcHBseUxheWVyUG9zaXRpb25zSW50ZXJuYWwoKTsKQEAgLTI3OCw2ICsy
ODYsNyBAQCBwcml2YXRlOgogICAgICAgICBGbG9hdFBvaW50IG1haW5GcmFtZVNjcm9sbFBvc2l0
aW9uOwogICAgICAgICBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQgeyAwIH07CiAgICAgICAg
IE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kOworICAgICAgICBPcHRp
b25hbDxib29sPiByZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaDsKICAgICAgICAgSGFz
aFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2ZVJ1YmJlckJhbmRpbmc7CiAgICAg
ICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVTY3JvbGxTbmFwOwog
ICAgICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlVXNlclNjcm9s
bHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGQwZTA0ZmNmMzc0MWM4
MTRlOGE0Y2QzOTlhODg5YWZkNjg3MmNjZjUuLjIzM2VjMGM2NGRhYjI2OTE2YzgwYzUxZDIzY2Nk
MjIxOTg5MzQwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCkBAIC00MSwx
NSArNDEsMTggQEAgc3RhdGljIGNvbnN0IFNlY29uZHMgcmVzZXRMYXRjaGVkU3RhdGVUaW1lb3V0
IHsgMTAwX21zIH07CiAKIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OlNjcm9sbGlu
Z1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgU2Nyb2xsaW5nVHJl
ZUxhdGNoaW5nQ29udHJvbGxlcjo6cmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+
LCBib29sIGFsbG93TGF0Y2hpbmcpCit2b2lkIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xs
ZXI6OnJlY2VpdmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMs
IGJvb2wgYWxsb3dMYXRjaGluZykKIHsKICAgICBpZiAoIWFsbG93TGF0Y2hpbmcpCiAgICAgICAg
IHJldHVybjsKIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF0Y2hlZE5vZGVNdXRleCk7Ci0g
ICAgaWYgKHdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSAmJiBtX2xhdGNoZWROb2RlQW5kU3Rl
cHMgJiYgIWxhdGNoZWROb2RlSXNSZWxldmFudCgpKSB7Ci0gICAgICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9s
bGVyICIgPDwgdGhpcyA8PCAiIHJlY2VpdmVkV2hlZWxFdmVudCAtICIgPDwgKE1vbm90b25pY1Rp
bWU6Om5vdygpIC0gbV9sYXN0TGF0Y2hlZE5vZGVJbnRlcmF0aW9uVGltZSkubWlsbGlzZWNvbmRz
KCkgPDwgIm1zIHNpbmNlIGxhc3QgZXZlbnQsIGNsZWFyaW5nIGxhdGNoZWQgbm9kZSIpOwotICAg
ICAgICBtX2xhdGNoZWROb2RlQW5kU3RlcHMucmVzZXQoKTsKKyAgICBpZiAod2hlZWxFdmVudC5p
c0dlc3R1cmVTdGFydCgpICYmICFsYXRjaGVkTm9kZUlzUmVsZXZhbnQoKSkgeworICAgICAgICBp
ZiAobV9sYXRjaGVkTm9kZUFuZFN0ZXBzKSB7CisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0o
U2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ciAiIDw8IHRoaXMgPDwgIiByZWNlaXZlZFdoZWVsRXZlbnQgLSAiIDw8IChNb25vdG9uaWNUaW1l
Ojpub3coKSAtIG1fbGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWUpLm1pbGxpc2Vjb25kcygp
IDw8ICJtcyBzaW5jZSBsYXN0IGV2ZW50LCBjbGVhcmluZyBsYXRjaGVkIG5vZGUiKTsKKyAgICAg
ICAgICAgIG1fbGF0Y2hlZE5vZGVBbmRTdGVwcy5yZXNldCgpOworICAgICAgICB9CisgICAgICAg
IG1fcHJvY2Vzc2luZ1N0ZXBzRm9yQ3VycmVudEdlc3R1cmUgPSBwcm9jZXNzaW5nU3RlcHM7CiAg
ICAgfQogfQogCkBAIC05Niw5ICs5OSwyNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0Nv
bnRyb2xsZXI6Om5vZGVEaWRIYW5kbGVFdmVudChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHdoZWVsRXZlbnQuZGVsdGEoKS5pc1plcm8o
KSB8fCAhd2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpKQorICAgIGF1dG8gc2hvdWxkTGF0Y2gg
PSBbJl0oKSB7CisgICAgICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhKCkuaXNaZXJvKCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKHdoZWVsRXZlbnQuaXNHZXN0dXJl
U3RhcnQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGlmICghd2hlZWxF
dmVudC5pc0dlc3R1cmVDb250aW51YXRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICBpZiAobV9wcm9jZXNzaW5nU3RlcHNGb3JDdXJyZW50R2VzdHVyZS52YWx1ZU9y
KE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB7IH0pLmNvbnRhaW5zKFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcpICYmIHByb2Nlc3Np
bmdTdGVwcy5jb250YWlucyhXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJl
YWQpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH07CisgICAgCisgICAgaWYgKCFzaG91bGRMYXRjaCgpKQogICAgICAgICByZXR1cm47CiAK
KyAgICBtX3Byb2Nlc3NpbmdTdGVwc0ZvckN1cnJlbnRHZXN0dXJlID0gcHJvY2Vzc2luZ1N0ZXBz
OworCiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9s
bGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIgIiA8PCB0aGlzIDw8ICIgbm9kZURpZEhhbmRsZUV2
ZW50OiBsYXRjaGluZyB0byAiIDw8IHNjcm9sbGluZ05vZGVJRCk7CiAgICAgbV9sYXRjaGVkTm9k
ZUFuZFN0ZXBzID0gU2Nyb2xsaW5nTm9kZUFuZFByb2Nlc3NpbmdTdGVwcyB7IHNjcm9sbGluZ05v
ZGVJRCwgcHJvY2Vzc2luZ1N0ZXBzIH07CiAgICAgbV9sYXN0TGF0Y2hlZE5vZGVJbnRlcmF0aW9u
VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5o
CmluZGV4IGJlZTU5MzE1YjVkNmUzZjA1YTU5OWZhYzBhM2I5YjA4NzVlMTcwOGEuLjY0MThlYTg4
NTczNzA5ZTY0MWEzY2YzMTc4ODdhOTY0Y2UzY2VmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250
cm9sbGVyLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgTG9jayBt
X2xhdGNoZWROb2RlTXV0ZXg7CiAgICAgT3B0aW9uYWw8U2Nyb2xsaW5nTm9kZUFuZFByb2Nlc3Np
bmdTdGVwcz4gbV9sYXRjaGVkTm9kZUFuZFN0ZXBzOworICAgIE9wdGlvbmFsPE9wdGlvblNldDxX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPj4gbV9wcm9jZXNzaW5nU3RlcHNGb3JDdXJyZW50R2Vz
dHVyZTsKICAgICBNb25vdG9uaWNUaW1lIG1fbGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWU7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggMWU1OTBiMjAyOGJlZjRmNzEyNmRj
YWQ5NTI0OGUyNWZiZjQ2NmIzYS4uMjUzOWQzZDJlMTRiM2UyYzMxOGI0MDMwZjU3NDQ5YjAwOTc3
NjE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIGJvb2wg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmlzTGF0Y2hlZE5vZGUoKSBjb25zdAogICAgIHJl
dHVybiBzY3JvbGxpbmdUcmVlKCkubGF0Y2hlZE5vZGVJRCgpID09IHNjcm9sbGluZ05vZGVJRCgp
OwogfQogCi1ib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjYW5IYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKK2Jvb2wgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNhbkhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBFdmVudFRhcmdldGluZyBldmVudFRhcmdldGluZykg
Y29uc3QKIHsKICAgICBpZiAoIWNhbkhhdmVTY3JvbGxiYXJzKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTE0NSwxMyArMTQ1LDEzIEBAIGJvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OmNhbkhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3CiAKICAg
ICAvLyBXZSBhbHdheXMgcnViYmVyLWJhbmQgdGhlIGxhdGNoZWQgbm9kZSwgb3IgdGhlIHJvb3Qg
bm9kZS4KICAgICAvLyBUaGUgc3RhdGVsZXNzIHdoZWVsIGV2ZW50IGRvZXNuJ3QgdHJpZ2dlciBy
dWJiZXItYmFuZC4KLSAgICBpZiAoaXNMYXRjaGVkTm9kZSgpIHx8IChpc1Jvb3ROb2RlKCkgJiYg
IXdoZWVsRXZlbnQuaXNOb25HZXN0dXJlRXZlbnQoKSkpCisgICAgaWYgKGlzTGF0Y2hlZE5vZGUo
KSB8fCBldmVudFRhcmdldGluZyA9PSBFdmVudFRhcmdldGluZzo6Tm9kZU9ubHkgfHwgKGlzUm9v
dE5vZGUoKSAmJiAhd2hlZWxFdmVudC5pc05vbkdlc3R1cmVFdmVudCgpKSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICByZXR1cm4gZXZlbnRDYW5TY3JvbGxDb250ZW50cyh3aGVlbEV2ZW50
KTsKIH0KIAotV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpCitXaGVlbEV2
ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgRXZlbnRUYXJnZXRpbmcpCiB7CiAgICAg
cmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5kbGVkKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGUuaAppbmRleCAxM2FmZDNjYzAwZTIxOWEyNzgyMjEwM2EzNzcxMzU5YTUzYmQ4MDMx
Li41OWNhMjM5NjMwMmVlMTk4NmU0MDk4YWMwMGJhYWEyNjNlZGM2NDRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlLmgKQEAgLTI4LDExICsyOCw5IEBACiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
IAogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJSZWN0RWRnZXMuaCIKICNpbmNsdWRl
ICJTY3JvbGxTbmFwT2Zmc2V0c0luZm8uaCIKLSNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCi0jaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZU5v
ZGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTUsOCArNTMsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2Rl
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDb21wbGV0ZUNvbW1pdEZvck5vZGUoKSBmaW5hbDsK
IAotICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYpIGNvbnN0OwotICAgIHZpcnR1YWwgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CisgICAgdmlydHVhbCBi
b29sIGNhbkhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgRXZlbnRU
YXJnZXRpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgRXZlbnRUYXJnZXRpbmcg
PSBFdmVudFRhcmdldGluZzo6UHJvcGFnYXRlKTsKIAogICAgIEZsb2F0UG9pbnQgY3VycmVudFNj
cm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb247IH0K
ICAgICBGbG9hdFBvaW50IGN1cnJlbnRTY3JvbGxPZmZzZXQoKSBjb25zdCB7IHJldHVybiBTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKG1fY3VycmVudFNjcm9sbFBvc2l0
aW9uLCB0b0Zsb2F0U2l6ZShtX3Njcm9sbE9yaWdpbikpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAppbmRleCA3
MjcxNWMwZWYyNjNjODE4ZjlkNDZkN2E5NWFmZDNiZjBjZDJlZjdjLi45NDQyZmVhYzk3ZWQxNjMy
MTNkZDM0NmRhNjFlYzZmNDYxMmE2MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTY0LDIxICs2NCw3
OSBAQCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5k
bGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtVwogICAgIHJldHVybiBTY3JvbGxpbmdUcmVlOjpo
YW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CiB9CiAKLWJvb2wg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdl
dE5vZGVJRCkKK2Jvb2wgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0
ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xs
aW5nTm9kZUlEIHRhcmdldE5vZGVJRCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFu
ZGxpbmcpCiB7Ci0gICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQgIiA8PCB3
aGVlbEV2ZW50KTsKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQo
KSk7CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRocmVhZGVk
U2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCAiIDw8IHdoZWVs
RXZlbnQgPDwgIiBub2RlICIgPDwgdGFyZ2V0Tm9kZUlEIDw8ICIgZXZlbnRIYW5kbGluZyAiIDw8
IGV2ZW50SGFuZGxpbmcpOwogCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVlTXV0ZXgpOwog
Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZGlzYWxsb3dMYXRjaGluZ1Njb3BlKG1fYWxsb3dMYXRj
aGluZywgZmFsc2UpOworICAgIGJvb2wgYWxsb3dMYXRjaGluZyA9IGZhbHNlOworICAgIE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHM7CisgICAgYm9v
bCB0cmFuc2l0aW9uaW5nVG9Bc3luY0dlc3R1cmUgPSBbJl0geworICAgICAgICByZXR1cm4gd2hl
ZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpICYmICFldmVudEhhbmRsaW5nLmNvbnRhaW5zQWxsKHsg
RXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NLCBFdmVudEhhbmRsaW5nOjpEZWZhdWx0UHJl
dmVudGVkIH0gKTsKKyAgICB9KCk7CisKKyAgICBpZiAodHJhbnNpdGlvbmluZ1RvQXN5bmNHZXN0
dXJlKSB7CisgICAgICAgIGFsbG93TGF0Y2hpbmcgPSB0cnVlOworICAgICAgICBwcm9jZXNzaW5n
U3RlcHMgPSB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCwgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnRE
aXNwYXRjaCB9OworICAgIH0KKworICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93TGF0Y2hp
bmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGFsbG93TGF0Y2hpbmcpOwogICAgIFJlZlB0cjxTY3Jv
bGxpbmdUcmVlTm9kZT4gdGFyZ2V0Tm9kZSA9IG5vZGVGb3JJRCh0YXJnZXROb2RlSUQpOwotICAg
IGF1dG8gcmVzdWx0ID0gaGFuZGxlV2hlZWxFdmVudFdpdGhOb2RlKHdoZWVsRXZlbnQsIHsgfSwg
dGFyZ2V0Tm9kZS5nZXQoKSk7CisgICAgYXV0byByZXN1bHQgPSBoYW5kbGVXaGVlbEV2ZW50V2l0
aE5vZGUod2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCB0YXJnZXROb2RlLmdldCgpLCBFdmVu
dFRhcmdldGluZzo6Tm9kZU9ubHkpOwogICAgIHJldHVybiByZXN1bHQud2FzSGFuZGxlZDsKIH0K
IAotdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1h
aW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxp
bmc+KQordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25T
ZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZykKIHsKLSAgICAvLyBGSVhNRTogU2V0IHN0
YXRlIGJhc2VkIG9uIEV2ZW50SGFuZGxpbmcgZmxhZ3MuCisgICAgTE9HX1dJVEhfU1RSRUFNKFNj
cm9sbGluZywgc3RyZWFtIDw8ICJUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQ
cm9jZXNzZWRCeU1haW5UaHJlYWQgLSBoYW5kbGluZyAiIDw8IGV2ZW50SGFuZGxpbmcpOworCisg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAKKyAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3RyZWVNdXRleCk7CisgICAgaWYgKG1fcmVjZWl2ZWRCZWdhbkV2ZW50RnJvbU1haW5UaHJlYWQg
fHwgIXdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKGV2ZW50SGFuZGxpbmcuY29udGFpbnMoRXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9N
KSkKKyAgICAgICAgc2V0R2VzdHVyZVJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoKGV2
ZW50SGFuZGxpbmcuY29udGFpbnMoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCkpOwor
CisgICAgbV9yZWNlaXZlZEJlZ2FuRXZlbnRGcm9tTWFpblRocmVhZCA9IHRydWU7CisgICAgbV93
YWl0aW5nRm9yQmVnYW5FdmVudENvbmRpdGlvbi5ub3RpZnlPbmUoKTsKK30KKwordm9pZCBUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OndpbGxTZW5kRXZlbnRUb01haW5UaHJlYWQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JikKK3sKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRU
aHJlYWQoKSk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVNdXRleCk7CisgICAgbV9y
ZWNlaXZlZEJlZ2FuRXZlbnRGcm9tTWFpblRocmVhZCA9IGZhbHNlOworfQorCit2b2lkIFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6d2FpdEZvckV2ZW50VG9CZVByb2Nlc3NlZEJ5TWFpblRocmVhZChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCit7CisgICAgQVNTRVJUKFNjcm9s
bGluZ1RocmVhZDo6aXNDdXJyZW50VGhyZWFkKCkpOworCisgICAgaWYgKCF3aGVlbEV2ZW50Lmlz
R2VzdHVyZVN0YXJ0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fdHJlZU11dGV4KTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBtYXhBbGxvd2FibGVN
YWluVGhyZWFkRGVsYXkgPSA1MF9tczsKKyAgICBhdXRvIHN0YXJ0VGltZSA9IE1vbm90b25pY1Rp
bWU6Om5vdygpOworICAgIGF1dG8gdGltZW91dFRpbWUgPSBzdGFydFRpbWUgKyBtYXhBbGxvd2Fi
bGVNYWluVGhyZWFkRGVsYXk7CisKKyAgICBib29sIHJlY2VpdmVkRXZlbnQgPSBtX3dhaXRpbmdG
b3JCZWdhbkV2ZW50Q29uZGl0aW9uLndhaXRVbnRpbChtX3RyZWVNdXRleCwgdGltZW91dFRpbWUs
IFsmXSB7CisgICAgICAgIHJldHVybiBtX3JlY2VpdmVkQmVnYW5FdmVudEZyb21NYWluVGhyZWFk
OworICAgIH0pOworCisgICAgaWYgKCFyZWNlaXZlZEV2ZW50KSB7CisgICAgICAgIC8vIFRpbWVk
IG91dCwgZ28gYXN5bmNocm9ub3VzLgorICAgICAgICBzZXRHZXN0dXJlUmVxdWlyZXNTeW5jaHJv
bm91c0V2ZW50RGlzcGF0Y2goZmFsc2UpOworICAgIH0KKworICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3YWl0Rm9yQmVnYW5F
dmVudEZyb21NYWluVGhyZWFkIGRvbmUgLSB0aW1lZCBvdXQgIiA8PCAhcmVjZWl2ZWRFdmVudCA8
PCAiIHJlcXVpcmVzIHN5bmMgZGlzcGF0Y2ggIiA8PCBnZXN0dXJlUmVxdWlyZXNTeW5jaHJvbm91
c0V2ZW50RGlzcGF0Y2goKSk7CiB9CiAKIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjppbnZh
bGlkYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVh
ZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXggNWYwYTc1NTQ0MmZiNGExYjAyOTZiNGQ1YjVjMDQxMTA0
YzNmNGVhZi4uMWEyZTkxNDcwMDljOTFhZTQyZmVlN2U1NGFiMzA1Nzk5YmNkN2QyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmgKQEAgLTQ3LDkgKzQ3LDEyIEBAIHB1YmxpYzoKIAogICAgIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPikgb3ZlcnJpZGU7CiAKLSAgICBib29sIGhh
bmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jiwg
U2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBib29sIGhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJl
YWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlELCBPcHRpb25TZXQ8
RXZlbnRIYW5kbGluZz4pOwogICAgIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4p
OwogCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aWxsU2VuZEV2ZW50VG9NYWluVGhyZWFkKGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
d2FpdEZvckV2ZW50VG9CZVByb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKSBmaW5hbDsKKwogICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwbGF5RGlkUmVmcmVzaChQbGF0Zm9ybURpc3BsYXlJRCk7
CkBAIC04Niw3ICs4OSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpc3BsYXlEaWRSZWZyZXNo
T25TY3JvbGxpbmdUaHJlYWQoKTsKICAgICB2b2lkIHdhaXRGb3JSZW5kZXJpbmdVcGRhdGVDb21w
bGV0aW9uT3JUaW1lb3V0KCk7Ci0gICAgCisKICAgICBib29sIGNhblVwZGF0ZUxheWVyc09uU2Ny
b2xsaW5nVGhyZWFkKCkgY29uc3Q7CiAKICAgICB2b2lkIHNjaGVkdWxlRGVsYXllZFJlbmRlcmlu
Z1VwZGF0ZURldGVjdGlvblRpbWVyKFNlY29uZHMpOwpAQCAtMTA0LDYgKzEwNyw5IEBAIHByaXZh
dGU6CiAgICAgU3luY2hyb25pemF0aW9uU3RhdGUgbV9zdGF0ZSB7IFN5bmNocm9uaXphdGlvblN0
YXRlOjpJZGxlIH07CiAgICAgQ29uZGl0aW9uIG1fc3RhdGVDb25kaXRpb247CiAKKyAgICBib29s
IG1fcmVjZWl2ZWRCZWdhbkV2ZW50RnJvbU1haW5UaHJlYWQgeyBmYWxzZSB9OworICAgIENvbmRp
dGlvbiBtX3dhaXRpbmdGb3JCZWdhbkV2ZW50Q29uZGl0aW9uOworCiAgICAgLy8gRHluYW1pY2Fs
bHkgYWxsb2NhdGVkIGJlY2F1c2UgaXQgaGFzIHRvIHVzZSB0aGUgU2Nyb2xsaW5nVGhyZWFkJ3Mg
cnVubG9vcC4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVuTG9vcDo6VGltZXI8VGhyZWFkZWRTY3Jv
bGxpbmdUcmVlPj4gbV9kZWxheWVkUmVuZGVyaW5nVXBkYXRlRGV0ZWN0aW9uVGltZXI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXggYWU2ZjRlNGU0ZDRlM2MzMzA1MmJlOWI5Mjk0OGJkNzFm
YmZmNTNmMC4uMjFmZWRhOTFiYmUzZTM1ZWFkMzBkNmI0NWM2NzUyY2YxYTFmYWIwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY29t
bWl0VHJlZVN0YXRlSWZOZWVkZWQoKSBmaW5hbDsKIAogICAgIC8vIEhhbmRsZSB0aGUgd2hlZWwg
ZXZlbnQgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQuIFJldHVybnMgd2hldGhlciB0aGUgZXZlbnQg
d2FzIGhhbmRsZWQgb3Igbm90LgotICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGlu
Zyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOworICAg
IGJvb2wgaGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmLCBTY3JvbGxpbmdOb2RlSUQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikgZmluYWw7CiAg
ICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikgZmluYWw7CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggNDc2ZjRlNmJhYThiY2Q2NzAxNmYxZTcyYmI4
Y2Q0ZjhhNDVlMGExMi4uMDI3YjI0MjhlNzhkMjA5YjNhMmM1NWE3YzZjMTdlNTNiY2MyNmIzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtNzMsNDQgKzczLDM3IEBAIHZvaWQgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWM6OnBhZ2VEZXN0cm95ZWQoKQogICAgIH0pOwogfQogCi1ib29sIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdldE5v
ZGVJRCkKK2Jvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnRGb3JT
Y3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdO
b2RlSUQgdGFyZ2V0Tm9kZSwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9wYWdlKTsKIAor
ICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9
IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKKyAgICB0
aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQo
d2hlZWxFdmVudCwgZXZlbnRIYW5kbGluZyk7CisKICAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLT53
aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJlKHdoZWVsRXZlbnQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nIC0gc2Vu
ZGluZyBldmVudCB0byBzY3JvbGxpbmcgdGhyZWFkLCBub2RlICIgPDwgdGFyZ2V0Tm9kZUlEKTsK
LSAgICAKLSAgICBSZWZQdHI8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiB0aHJlYWRlZFNjcm9sbGlu
Z1RyZWUgPSBkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSk7
Ci0gICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3
aGVlbEV2ZW50LCB0YXJnZXROb2RlSURdIHsKLSAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVl
LT5oYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKHdoZWVsRXZlbnQsIHRhcmdldE5vZGVJ
RCk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdD
b29yZGluYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyAtIHNlbmRpbmcgZXZl
bnQgdG8gc2Nyb2xsaW5nIHRocmVhZCwgbm9kZSAiIDw8IHRhcmdldE5vZGUpOworCisgICAgaWYg
KG1fcGFnZSAmJiBtX3BhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCisgICAgICAgIG1f
cGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCktPmRlZmVyRm9yUmVhc29uKHJlaW50ZXJwcmV0
X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHRh
cmdldE5vZGUpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlBvc3RNYWluVGhyZWFkV2hlZWxFdmVu
dEhhbmRsaW5nKTsKKworICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3RocmVhZGVkU2Ny
b2xsaW5nVHJlZSwgd2hlZWxFdmVudCwgdGFyZ2V0Tm9kZSwgZXZlbnRIYW5kbGluZ10geworICAg
ICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJl
YWQod2hlZWxFdmVudCwgdGFyZ2V0Tm9kZSwgZXZlbnRIYW5kbGluZyk7CisKKyAgICAgICAgaWYg
KHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKKyAgICAg
ICAgICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+cmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0
aW9uRGVmZXJyYWxGb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0
b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4odGFyZ2V0Tm9kZSksIFdoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6UG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmcpOwogICAgIH0pOwogICAg
IHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdWludDY0X3QgbmV4dERlZmVySWRlbnRpZmllcigp
Ci17Ci0gICAgc3RhdGljIHVpbnQ2NF90IGRlZmVySWRlbnRpZmllcjsKLSAgICByZXR1cm4gKytk
ZWZlcklkZW50aWZpZXI7Ci19Ci0KLXZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OndoZWVs
RXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZGVmYXVsdEhhbmRsaW5nKQordm9p
ZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxFdmVu
dEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQogewotICAgIHVpbnQ2NF90IGRlZmVySWRlbnRpZmll
ciA9IDA7Ci0gICAgaWYgKG1fcGFnZSAmJiBtX3BhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRz
KCkpIHsKLSAgICAgICAgZGVmZXJJZGVudGlmaWVyID0gbmV4dERlZmVySWRlbnRpZmllcigpOwot
ICAgICAgICBtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpLT5kZWZlckZvclJlYXNvbihy
ZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVu
dGlmaWVyPihkZWZlcklkZW50aWZpZXIpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERP
TUV2ZW50SGFuZGxpbmcpOwotICAgIH0KKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2Vk
QnlNYWluVGhyZWFkICIgPDwgZXZlbnRIYW5kbGluZyk7CiAKICAgICBSZWZQdHI8VGhyZWFkZWRT
Y3JvbGxpbmdUcmVlPiB0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBkb3duY2FzdDxUaHJlYWRlZFNj
cm9sbGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSk7Ci0gICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNw
YXRjaChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcs
IGRlZmVySWRlbnRpZmllcl0gewotICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndoZWVs
RXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZGVmYXVsdEhhbmRsaW5n
KTsKLQotICAgICAgICBpZiAodGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5pc01vbml0b3JpbmdXaGVl
bEV2ZW50cygpKQotICAgICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5yZW1vdmVXaGVl
bEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihkZWZlcklkZW50
aWZpZXIpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcpOwot
ICAgIH0pOworICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVudFdhc1Byb2Nlc3Nl
ZEJ5TWFpblRocmVhZCh3aGVlbEV2ZW50LCBldmVudEhhbmRsaW5nKTsKIH0KIAogdm9pZCBTY3Jv
bGxpbmdDb29yZGluYXRvck1hYzo6c2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLmgKaW5kZXggN2Q0Y2JhZDBkMDZjZTZmMDkw
MWY0ZTk2YTllYmY1ZTE5YmVlNzMwMS4uYzBlODI3YzRiZmFlNDI2YzIxNGNhN2Q2YTYzNzBiOGM1
YmQyODYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCkBA
IC01MSw3ICs1MSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNvbW1pdFN0YXRlQmVmb3JlQ2hp
bGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21t
aXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7
CiAKLSAgICBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKKyAgICBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1
bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBFdmVudFRhcmdl
dGluZykgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcG9zaXRpb25SZWxh
dGVkTGF5ZXJzKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMubW0KaW5kZXggYTI2ZDFlMWU1OTI2MzkyY2E0NjFkNjJiODJmZmU0NmE1MjQ1ODNl
NS4uZTBiZmZiODZiYTI4MWE3ODBlNjhkYWI0MzI4ZWZiYWMxODk3NTE3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTExNyw5ICsxMTcsOSBAQCB2
b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmNvbW1pdFN0YXRlQWZ0ZXJD
aGlsZHJlbihjb25zdCBTY3JvbGxpbgogICAgICAgICB1cGRhdGVNYWluRnJhbWVQaW5BbmRSdWJi
ZXJiYW5kU3RhdGUoKTsKIH0KIAotV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBFdmVudFRhcmdldGluZyBldmVudFRhcmdldGluZykK
IHsKLSAgICBpZiAoIWNhbkhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCkpCisgICAgaWYgKCFj
YW5IYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQsIGV2ZW50VGFyZ2V0aW5nKSkKICAgICAgICAg
cmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5kbGVkKCk7CiAKICAgICBib29s
IGhhbmRsZWQgPSBtX2RlbGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaAppbmRleCBkYWFkN2I5
Y2ZhMmMzZTJkMDg1YzljNWE5NWI0OWIwY2VjMzYzMmMwLi42Y2ZkNWZlNWY3MzRhMGU1M2QwOWEy
MzE2ZDc1MTk0OTQxYTAxNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlTWFjLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVw
b3NpdGlvblNjcm9sbGluZ0xheWVycygpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVwb3NpdGlvblJl
bGF0ZWRMYXllcnMoKSBvdmVycmlkZTsKIAotICAgIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBo
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOworICAg
IFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIEV2ZW50VGFyZ2V0aW5nKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2
b2lkIHdpbGxCZURlc3Ryb3llZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCA2NDdjNzI5ZmMyZWQ5MjIxODE0Yjc3NGUxNDJh
MDI0OTE2YmNkNWFjLi42ZDJiMDI4N2NhOWRmYzMwODE2ZmJhYjY0ZWUwMmM0OTM5YjJkYmZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAt
NzMsMTQgKzczLDE0IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1h
Yzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAgICAgfQogfQogCi1XaGVl
bEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1h
Yzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQp
CitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQsIEV2ZW50VGFyZ2V0aW5nIGV2ZW50VGFyZ2V0aW5nKQogewogI2lmIEVOQUJMRShTQ1JP
TExJTkdfVEhSRUFEKQotICAgIGlmIChoYXNTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKSkK
KyAgICBpZiAoaGFzU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCkgJiYgZXZlbnRUYXJnZXRp
bmcgIT0gRXZlbnRUYXJnZXRpbmc6Ok5vZGVPbmx5KQogICAgICAgICByZXR1cm4geyB7IFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gg
fSwgZmFsc2UgfTsKICNlbmRpZgogCi0gICAgaWYgKCFjYW5IYW5kbGVXaGVlbEV2ZW50KHdoZWVs
RXZlbnQpKQorICAgIGlmICghY2FuSGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBldmVudFRh
cmdldGluZykpCiAgICAgICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6OnVuaGFu
ZGxlZCgpOwogCiAgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6cmVzdWx0KG1f
ZGVsZWdhdGUuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVOaWNvc2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCmluZGV4IDIyMTlh
NzBiMGNhODZmNTlmYTdiNzViMjM5MmIzNzNkNDZmYjdjYWQuLjIyMjIzM2RlOGQyNzJlMDRjYzY4
Zjk5Y2VlY2JkNmIxYWRkN2RkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwCkBAIC0xNTgsOSArMTU4LDkgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6ZW5zdXJlU2Nyb2xsQW5pbWF0
aW9uU21vb3RoKCkKIH0KICNlbmRpZgogCi1XaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWE6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgRXZlbnRUYXJnZXRpbmcgZXZl
bnRUYXJnZXRpbmcpCiB7Ci0gICAgaWYgKCFjYW5IYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQp
KQorICAgIGlmICghY2FuSGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBldmVudFRhcmdldGlu
ZykpCiAgICAgICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6OnVuaGFuZGxlZCgp
OwogCiAjaWYgRU5BQkxFKEtJTkVUSUNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTmljb3NpYS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5oCmluZGV4IDcwZmYxNTA1NWM3MDQx
NWYzY2Y5MWExZTRlZTIxYTgwYWRhZDM4NjMuLjdhZGNiZDQyYjEwMzhjYjdkOGZjN2I4Njk5M2Nm
NzNkZWVmYjEzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25p
Y29zaWEvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29zaWEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVOaWNvc2lhLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVu
c3VyZVNjcm9sbEFuaW1hdGlvblNtb290aCgpOwogI2VuZGlmCiAKLSAgICBXaGVlbEV2ZW50SGFu
ZGxpbmdSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBv
dmVycmlkZTsKKyAgICBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBFdmVudFRhcmdldGluZykgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIHN0b3BTY3JvbGxBbmltYXRpb25zKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKaW5k
ZXggM2IzMjQ4NmY0Y2M3NzZhNjJlYjVhODZhN2U3NjBkMjE5ZDFiYjgwOC4uNjEwMWEwYmZlNGNm
ZWVlY2RlYjBhNDgzYzc5YTE1OGY5ZTQwZTVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKQEAgLTE0OCw5ICsx
NDgsOSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpl
bnN1cmVTY3JvbGxBbmltYXRpb25TbW9vdGgoKQogfQogI2VuZGlmCiAKLVdoZWVsRXZlbnRIYW5k
bGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitXaGVl
bEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5p
Y29zaWE6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2
ZW50LCBFdmVudFRhcmdldGluZyBldmVudFRhcmdldGluZykKIHsKLSAgICBpZiAoIWNhbkhhbmRs
ZVdoZWVsRXZlbnQod2hlZWxFdmVudCkpCisgICAgaWYgKCFjYW5IYW5kbGVXaGVlbEV2ZW50KHdo
ZWVsRXZlbnQsIGV2ZW50VGFyZ2V0aW5nKSkKICAgICAgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5k
bGluZ1Jlc3VsdDo6dW5oYW5kbGVkKCk7CiAKICNpZiBFTkFCTEUoS0lORVRJQ19TQ1JPTExJTkcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVO
aWNvc2lhLmgKaW5kZXggM2JkMWE0NTMzN2QwMDYzNzg4ZTUwMTg1NzNmYTAxYWUzMDBlYWZmMi4u
OGRmNzhkMDBlYjY3YWE0Y2Y2MjYxOTE4YmRlYzQ4ZGY2YzMzMGZjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuaApAQCAt
NTcsNyArNTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5zdXJlU2Nyb2xsQW5pbWF0aW9uU21v
b3RoKCk7CiAjZW5kaWYKIAotICAgIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOworICAgIFdoZWVsRXZl
bnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYsIEV2ZW50VGFyZ2V0aW5nKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc3RvcFNjcm9sbEFuaW1h
dGlvbnMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwCmluZGV4IGFkNDczMjlhZTBlNTRjYjRjZDEzMDgzOWEyZmQ4MmYzMmJkNjg1ZjYuLjgw
MTY2YTUyMjI4NDVhNzM0ZTkwNmEzZjNjOWJhY2M5Njg1ODE3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFNj
cm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQoY29uc3QgU2Nyb2xsUG9zaXRpb24m
IHBvc2l0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLm5vdGlmeUNvbnRlbnRBcmVhU2Ny
b2xsZWQoc2Nyb2xsUG9zaXRpb24oKSAtIG9sZFBvc2l0aW9uKTsKIH0KIAotYm9vbCBTY3JvbGxh
YmxlQXJlYTo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCitib29sIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVXaGVlbEV2ZW50
Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9u
U2V0PEV2ZW50SGFuZGxpbmc+KQogewogICAgIGlmICghaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5k
YWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaAppbmRleCA0MzgzYjc2Y2FmNzA3NDg2MDFkYTg1MGE3MTQ3OGQ0MzUwMTAx
MWQzLi41YTczOGI4ODZkMGYyMzAwMjhlYmU0OTZlN2UwMDMxYzk0MDQ2OTU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTQ4LDYgKzQ4LDggQEAgY2xhc3Mg
U2Nyb2xsQW5pbWF0b3I7CiBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgVGlsZWRCYWNraW5n
OwogCitlbnVtIGNsYXNzIEV2ZW50SGFuZGxpbmcgOiB1aW50OF90OworCiBpbmxpbmUgaW50IG9m
ZnNldEZvck9yaWVudGF0aW9uKFNjcm9sbE9mZnNldCBvZmZzZXQsIFNjcm9sbGJhck9yaWVudGF0
aW9uIG9yaWVudGF0aW9uKQogewogICAgIHN3aXRjaCAob3JpZW50YXRpb24pIHsKQEAgLTgyLDcg
Kzg0LDcgQEAgcHVibGljOgogICAgIC8vIGV4cGVjdCBpdCB0byBoYXBwZW4gc29tZXRpbWUgaW4g
dGhlIGZ1dHVyZS4KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRl
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5cGU6OlVzZXIsIFNj
cm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpIHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZvclNj
cm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pOwogCiAgICAgYm9vbCB1c2VzU2Ny
b2xsU25hcCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9TY3JvbGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbQppbmRleCA3YmYwMDUxMGVkOTliMmVkYWViYTYyMzllMmYzOTlh
MTMzNzQ3YzkxLi4wNDJmYWUyZDA3ZTM1Njk1M2Y0YjRkM2EyNTg4MzMyZGQ3N2Q4NTMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0K
QEAgLTI1NiwxMSArMjU2LDE2IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgICAgICAg
ICAgc2hvdWxkU3RyZXRjaCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAg
ICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbENvbnRyb2xs
ZXI6OmhhbmRsZVdoZWVsRXZlbnQoKSAtIGRlbHRhWCAiIDw8IGRlbHRhWCA8PCAiIGRlbHRhWSAi
IDw8IGRlbHRhWSA8PCAiIHBpbm5lZCAiIDw8IG1fY2xpZW50LnBpbm5lZEluRGlyZWN0aW9uKEZs
b2F0U2l6ZShkZWx0YVgsIGRlbHRhWSkpIDw8ICIgc2hvdWxkU3RyZXRjaCAiIDw8IHNob3VsZFN0
cmV0Y2gpOwogICAgIH0KIAogICAgIGJvb2wgaGFuZGxlZCA9IHRydWU7CiAKICAgICBpZiAoZGVs
dGFYIHx8IGRlbHRhWSkgeworCisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0
cmVhbSA8PCAiIFNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoKSAtIHNob3VsZFN0
cmV0Y2ggIiA8PCBzaG91bGRTdHJldGNoIDw8ICIgaXNWZXJ0aWNhbGx5U3RyZXRjaGVkICIgPDwg
aXNWZXJ0aWNhbGx5U3RyZXRjaGVkIDw8ICIgbV9pblNjcm9sbEdlc3R1cmUiIDw8IG1faW5TY3Jv
bGxHZXN0dXJlIDw8ICIgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgIiA8PCBtX21vbWVudHVt
U2Nyb2xsSW5Qcm9ncmVzcyk7CisKICAgICAgICAgaWYgKCEoc2hvdWxkU3RyZXRjaCB8fCBpc1Zl
cnRpY2FsbHlTdHJldGNoZWQgfHwgaXNIb3Jpem9udGFsbHlTdHJldGNoZWQpKSB7CiAgICAgICAg
ICAgICBpZiAoZGVsdGFZKSB7CiAgICAgICAgICAgICAgICAgZGVsdGFZICo9IHNjcm9sbFdoZWVs
TXVsdGlwbGllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5k
ZXggMzI2ZTI4ZTYwYzQ3OGIzYWFkNzY5YTZjMTQ1ZDNlNDRhMTAwNTlkMi4uOGVkNTMyZTg3ZDlk
NjgxZDJjNGVjOTBiMTgxM2VjMjgwODRhYzMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCkBAIC0zMTY1LDYgKzMxNjUsMjEgQEAgU2Nyb2xsaW5nTm9kZUlEIFJl
bmRlckxheWVyOjpzY3JvbGxpbmdOb2RlSUQoKSBjb25zdAogICAgIHJldHVybiBiYWNraW5nKCkt
PnNjcm9sbGluZ05vZGVJREZvclJvbGUoU2Nyb2xsQ29vcmRpbmF0aW9uUm9sZTo6U2Nyb2xsaW5n
KTsKIH0KIAorYm9vbCBSZW5kZXJMYXllcjo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxFdmVudEhhbmRs
aW5nPiBldmVudEhhbmRsaW5nKQoreworICAgIGlmICghaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5k
YWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQorICAgIGlmICh1c2VzQXN5bmNTY3JvbGxpbmcoKSAmJiBzY3JvbGxpbmdOb2RlSUQoKSkg
eworICAgICAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlKCkuc2Nyb2xs
aW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgICAgIHJldHVybiBzY3JvbGxpbmdDb29yZGluYXRv
ci0+aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyh3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2Rl
SUQoKSwgZXZlbnRIYW5kbGluZyk7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gU2Nyb2xs
YWJsZUFyZWE6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCwgZXZlbnRI
YW5kbGluZyk7Cit9CisKIEludFJlY3QgUmVuZGVyTGF5ZXI6OnZpc2libGVDb250ZW50UmVjdElu
dGVybmFsKFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xsYmFycyBzY3JvbGxiYXJJbmNs
dXNpb24sIFZpc2libGVDb250ZW50UmVjdEJlaGF2aW9yKSBjb25zdAogewogICAgIEludFNpemUg
c2Nyb2xsYmFyU3BhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4
IGZkZmYyZWZkZmViMTNmYzA3Njk5Njc1MmU4MjA2MmY1OGRkMTcxY2YuLmFhZWQxNTJlMWJkMTI3
MTg3ZGRmYjU5OWFjMWNlODI3N2EwZTVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCkBAIC00OTMsNiArNDkzLDcgQEAgcHVibGljOgogICAgIFNjcm9sbGJhciogdmVy
dGljYWxTY3JvbGxiYXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3ZCYXIuZ2V0KCk7IH0KICAg
ICBTY3JvbGxhYmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdCBmaW5hbDsK
IAorICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pIGZpbmFsOwogICAgIGJvb2wgaXNT
Y3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgpIGZpbmFsOwogICAgIGJvb2wgaGFzU2Nyb2xsYWJs
ZU9yUnViYmVyYmFuZGFibGVBbmNlc3RvcigpIGZpbmFsOwogICAgIGJvb2wgdXNlRGFya0FwcGVh
cmFuY2UoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90
ZU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwCmluZGV4IDI2Y2MwYzI4
NzhiOTY0OThlNTlkOTM1NzZmYjVhMDg1ODcyZDk4NTAuLjI3MDIzOGExOTFhMzc0MzFkMzEwYzc1
MzJlZjMyZTg0OTE1MzAwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1h
Yy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcApAQCAtNzIsOSArNzIs
OSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWM6OnJlcG9z
aXRpb25SZWxhdGVkTGF5ZXJzKCkKICAgICAgICAgbV9zY3JvbGxlclBhaXItPnVwZGF0ZVZhbHVl
cygpOwogfQogCi1XaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCitXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIEV2ZW50VGFyZ2V0aW5nIGV2ZW50VGFyZ2V0aW5n
KQogewotICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVs
RXZlbnQod2hlZWxFdmVudCk7CisgICAgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yzo6aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBldmVudFRhcmdldGluZyk7CiAKICAgICBy
ZXR1cm4gV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpyZXN1bHQobV9zY3JvbGxlclBhaXItPmhh
bmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlUmVtb3RlTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuaAppbmRleCBm
NzAwOGIxNGJmMDliOGRiYTMwY2FjOTgzZDY1N2M1Y2YwMjIyNjQyLi5iNGM3MjAwMTQ5NmQwYTE4
MjIyM2RkYmFiZTAyZDg2N2RmMGZhNzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
bWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuaApAQCAtNDQsNyAr
NDQsNyBAQCBwcml2YXRlOgogICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1v
dGVNYWMoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVUeXBl
LCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOwogCiAgICAgdm9pZCBjb21taXRTdGF0ZUJlZm9y
ZUNoaWxkcmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwot
ICAgIFdlYkNvcmU6OldoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6
OldoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYkNvcmU6
OlBsYXRmb3JtV2hlZWxFdmVudCYsIEV2ZW50VGFyZ2V0aW5nKSBvdmVycmlkZTsKICAgICB2b2lk
IHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkgb3ZlcnJpZGU7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2Nyb2xsZXJQYWlyTWFjPiBtX3Njcm9sbGVyUGFpcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVN
YWMuY3BwCmluZGV4IGI2M2RjMzg4OGU2ODlmMmYwODQ2Y2U4MWU3Njg4Mzk1YWE2OTI5MmQuLmZi
OWZiNTk0NDlkYWUyNDBhOTdmNDhhMDFkN2U3MTkxNWQ0ZWIyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjLmNwcApAQCAtNzIsOSArNzIsOSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVSZW1vdGVNYWM6OnJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkKICAgICBt
X3Njcm9sbGVyUGFpci0+dXBkYXRlVmFsdWVzKCk7CiB9CiAKLVdoZWVsRXZlbnRIYW5kbGluZ1Jl
c3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFjOjpoYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK1doZWVsRXZl
bnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3Rl
TWFjOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCwgRXZlbnRUYXJnZXRpbmcgZXZlbnRUYXJnZXRpbmcpCiB7Ci0gICAgU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAg
ICBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50
KHdoZWVsRXZlbnQsIGV2ZW50VGFyZ2V0aW5nKTsKIAogICAgIHJldHVybiBXaGVlbEV2ZW50SGFu
ZGxpbmdSZXN1bHQ6OnJlc3VsdChtX3Njcm9sbGVyUGFpci0+aGFuZGxlV2hlZWxFdmVudCh3aGVl
bEV2ZW50KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVSZW1vdGVNYWMu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oCmluZGV4IDVjNDk4YmRmMGFiNGNm
YTc0YjMyN2ZiZjA5ODljNTFjNWU0OTAzOTYuLjJlMjU1MGZkOWVkMTMxMTE0NGFjNzMyODY5YTRl
MWRiNTFlZWQ2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5oCkBAIC00NCw3ICs0NCw3IEBA
IHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZVJlbW90ZU1h
YyhXZWJDb3JlOjpTY3JvbGxpbmdUcmVlJiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKIAog
ICAgIHZvaWQgY29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBXZWJDb3JlOjpTY3JvbGxp
bmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpXaGVlbEV2ZW50SGFuZGxpbmdS
ZXN1bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQm
KSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxl
V2hlZWxFdmVudChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQmLCBFdmVudFRhcmdl
dGluZykgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvc2l0aW9uUmVsYXRlZExheWVycygpIG92ZXJy
aWRlOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGVyUGFpck1hYz4gbV9zY3JvbGxlclBh
aXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQppbmRleCA2ODg0ODk3YjJmMzdlOGNhYjYzMzg0MGU2YjlkYTEwOWI4MzliZTYwLi5iODM2
YTE3MDIwYjM3ODAzYjUyNTJmOGYxZTkwM2U2NDI0YTBiOGE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTI5MzgsNyArMjkz
OCw3IEBAIGJvb2wgUERGUGx1Z2luOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZl
bnQmIGV2ZW50KQogICAgIFBERkRpc3BsYXlNb2RlIGRpc3BsYXlNb2RlID0gW21fcGRmTGF5ZXJD
b250cm9sbGVyIGRpc3BsYXlNb2RlXTsKIAogICAgIGlmIChkaXNwbGF5TW9kZSA9PSBrUERGRGlz
cGxheVNpbmdsZVBhZ2VDb250aW51b3VzIHx8IGRpc3BsYXlNb2RlID09IGtQREZEaXNwbGF5VHdv
VXBDb250aW51b3VzKQotICAgICAgICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVdoZWVs
RXZlbnRGb3JTY3JvbGxpbmcocGxhdGZvcm0oZXZlbnQpKTsKKyAgICAgICAgcmV0dXJuIFNjcm9s
bGFibGVBcmVhOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHBsYXRmb3JtKGV2ZW50KSwg
eyB9KTsKIAogICAgIE5TVUludGVnZXIgY3VycmVudFBhZ2VJbmRleCA9IFttX3BkZkxheWVyQ29u
dHJvbGxlciBjdXJyZW50UGFnZUluZGV4XTsKICAgICBib29sIGluRmlyc3RQYWdlID0gIWN1cnJl
bnRQYWdlSW5kZXg7CkBAIC0yOTcxLDcgKzI5NzEsNyBAQCBib29sIFBERlBsdWdpbjo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCi0gICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVXaGVlbEV2ZW50
Rm9yU2Nyb2xsaW5nKHBsYXRmb3JtKGV2ZW50KSk7CisgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVh
OjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHBsYXRmb3JtKGV2ZW50KSwgeyB9KTsKIH0K
IAogTlNEYXRhICpQREZQbHVnaW46OmxpdmVEYXRhKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDc1OThl
Y2ZiNGI3MjQ4ZTNkNjhmOTJlMzQ5Y2EzMDI2ZWU5MDE0ZjQuLjQ5MDUxY2I2NTY2ZmE2NjljODc0
OTU5NmNhYjVlMTQyYTIzMzc2YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMTM4LDEyICsxMzgsMTcgQEAgdm9p
ZCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25z
dCBXZWJXaGVlbEV2ZW50JiB3aGUKICAgICAgICAgICAgIHNjcm9sbGluZ1RyZWUtPnNldE1haW5G
cmFtZUNhblJ1YmJlckJhbmQoeyBjYW5SdWJiZXJCYW5kQXRUb3AsIGNhblJ1YmJlckJhbmRBdFJp
Z2h0LCBjYW5SdWJiZXJCYW5kQXRCb3R0b20sIGNhblJ1YmJlckJhbmRBdExlZnQgfSk7CiAKICAg
ICAgICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBzY3JvbGxpbmdUcmVlLT5kZXRlcm1pbmVXaGVl
bEV2ZW50UHJvY2Vzc2luZyhwbGF0Zm9ybVdoZWVsRXZlbnQpOwotICAgICAgICBpZiAoIXByb2Nl
c3NpbmdTdGVwcy5jb250YWlucyhXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdU
aHJlYWQpKQotICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NpbmdTdGVwczsKIAogICAgICAgICBz
Y3JvbGxpbmdUcmVlLT53aWxsUHJvY2Vzc1doZWVsRXZlbnQoKTsKIAogICAgICAgICBTY3JvbGxp
bmdUaHJlYWQ6OmRpc3BhdGNoKFtzY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCBwbGF0Zm9ybVdo
ZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcywgcGFnZUlELCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldIHsKKyAgICAgICAgICAgIGlmIChwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZykpIHsKKyAgICAg
ICAgICAgICAgICBzY3JvbGxpbmdUcmVlLT53aWxsU2VuZEV2ZW50VG9NYWluVGhyZWFkKHBsYXRm
b3JtV2hlZWxFdmVudCk7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hX
aGVlbEV2ZW50VmlhTWFpblRocmVhZChwYWdlSUQsIHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVw
cyk7CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+d2FpdEZvckV2ZW50VG9CZVByb2Nl
c3NlZEJ5TWFpblRocmVhZChwbGF0Zm9ybVdoZWVsRXZlbnQpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9
IHNjcm9sbGluZ1RyZWUtPmhhbmRsZVdoZWVsRXZlbnQocGxhdGZvcm1XaGVlbEV2ZW50LCBwcm9j
ZXNzaW5nU3RlcHMpOwogCiAgICAgICAgICAgICBpZiAocmVzdWx0Lm5lZWRzTWFpblRocmVhZFBy
b2Nlc3NpbmcoKSkgewpAQCAtMTU5LDE4ICsxNjQsMTQgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6
OndoZWVsRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiB3
aGUKIAogICAgICAgICByZXR1cm4gcHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0oKTsKLQotICAgIGlm
IChwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Ny
b2xsaW5nVGhyZWFkKSkKLSAgICAgICAgcmV0dXJuOwotCiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShjYW5SdWJiZXJCYW5kQXRMZWZ0KTsKICAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0
UmlnaHQpOwogICAgIFVOVVNFRF9QQVJBTShjYW5SdWJiZXJCYW5kQXRUb3ApOwogICAgIFVOVVNF
RF9QQVJBTShjYW5SdWJiZXJCYW5kQXRCb3R0b20pOwotI2VuZGlmCiAKICAgICBkaXNwYXRjaFdo
ZWVsRXZlbnRWaWFNYWluVGhyZWFkKHBhZ2VJRCwgd2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBz
KTsKKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4
MjE4OTgxYzlkZWE1MWJhYjUxMDlhY2I3M2Y4NWY4MTJjMWMwNmIxLi5mNGViMTU2ZWY1ODA3OTc5
MDA2ODgzZjFmMTUzZWI0MzRiYTgzYzY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMTEt
MTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgT25s
eSB0aGUgZmlyc3Qgd2hlZWwgZXZlbnQgaW4gYSBnZXN0dXJlIHNob3VsZCBiZSBjYW5jZWxhYmxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMjQ4OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGZvciBldmVudCBjYW5jZWxhYmlsaXR5
IGluIGEgZ2VzdHVyZS4KKyAgICAgICAgCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWwvZmly
c3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24t
Y2FuY2VsYWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3do
ZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUuaHRtbDogQWRkZWQuCisKKzIw
MjAtMTEtMjAgIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZlcnQgcjI3MDEyNC4gTWFkZSB0aGUgdGVzdCB3b3JzZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTIxMgorCisgICAgICAgIFVucmV2aWV3ZWQg
dGVzdCBnYXJkZW5pbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAyMC0xMS0yMCAgSmFtZXMgRGFycGluaWFuICA8amRhcnBpbmlhbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVXBkYXRlIEFOR0xFIDIwMjAtMTEtMTIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZl
bnQtY2FuY2VsYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhjY2M0YjU4YWNhNTk2YjRj
MjRjNDQ3Yjk0MWFhOTU4OTc5OGNmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHByZXZlbnREZWZhdWx0IG9uIHRoZSBmaXJzdCBldmVu
dCByZXN1bHRzIGluIHRoZSByZXN0IG9mIHRoZSBldmVudHMgYmVpbmcgY2FuY2VsYWJsZQorUEFT
UyB3aW5kb3dTY3JvbGxFdmVudENvdW50IGlzIDAKK1BBU1MgZmlyc3RXYXNDYW5jZWxhYmxlIGlz
IHRydWUKK1BBU1MgZmlyc3RXYXNDYW5jZWxlZCBpcyB0cnVlCitQQVNTIHNlY29uZFdhc0NhbmNl
bGFibGUgaXMgdHJ1ZQorUEFTUyBzZWNvbmRXYXNDYW5jZWxlZCBpcyB0cnVlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2Fu
Y2VsYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMDFkODc0NmQ3YTViOTkxZmYzNDQ3M2U5OGUwNGY2
OTY0YjEyYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVl
bC9maXJzdC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7
CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgI3RhcmdldCB7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWln
aHQ6IDIwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAg
ICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAg
IGxldCB3aGVlbEV2ZW50Q291bnQgPSAwOworICAgICAgICBsZXQgd2luZG93U2Nyb2xsRXZlbnRD
b3VudCA9IDA7CisKKyAgICAgICAgbGV0IGZpcnN0V2FzQ2FuY2VsYWJsZTsKKyAgICAgICAgbGV0
IGZpcnN0V2FzQ2FuY2VsZWQ7CisgICAgICAgIGxldCBzZWNvbmRXYXNDYW5jZWxhYmxlOworICAg
ICAgICBsZXQgc2Vjb25kV2FzQ2FuY2VsZWQ7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVz
dFNjcm9sbCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdXNlV2hl
ZWxTY3JvbGxBdCgxMDAsIDEwMCk7CisgICAgICAgICAgICBzaG91bGRCZSgnd2luZG93U2Nyb2xs
RXZlbnRDb3VudCcsICcwJyk7CisKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnZmlyc3RXYXND
YW5jZWxhYmxlJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2ZpcnN0V2FzQ2FuY2VsZWQn
KTsKKworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdzZWNvbmRXYXNDYW5jZWxhYmxlJyk7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ3NlY29uZFdhc0NhbmNlbGVkJyk7CisKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdHMgcHJldmVu
dERlZmF1bHQgb24gdGhlIGZpcnN0IGV2ZW50IHJlc3VsdHMgaW4gdGhlIHJlc3Qgb2YgdGhlIGV2
ZW50cyBiZWluZyBjYW5jZWxhYmxlJykKKyAgICAgICAgICAgIGxldCB0YXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAgICAgICAgIHRhcmdldC5hZGRFdmVu
dExpc3RlbmVyKCd3aGVlbCcsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGlmICghd2hl
ZWxFdmVudENvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2VsYWJsZSA9
IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZh
dWx0KCk7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2VsZWQgPSBldmVudC5kZWZh
dWx0UHJldmVudGVkOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2hlZWxFdmVudENvdW50
ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgc2Vjb25kV2FzQ2FuY2VsYWJsZSA9IGV2ZW50
LmNhbmNlbGFibGU7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7
CisgICAgICAgICAgICAgICAgICAgIHNlY29uZFdhc0NhbmNlbGVkID0gZXZlbnQuZGVmYXVsdFBy
ZXZlbnRlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKyt3aGVlbEV2ZW50
Q291bnQ7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ3Njcm9sbCcsICgpID0+IHsKKyAgICAgICAgICAgICAgICArK3dpbmRvd1Njcm9sbEV2
ZW50Q291bnQ7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIHNldFRpbWVv
dXQodGVzdFNjcm9sbCwgMCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisgICAgPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2Vs
YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1l
dmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTRh
MTE4ZGVkNGE1ZDZkN2FmNjA2MDdjNzA3NDU0ZjU0ZWNiOTA0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2Fu
Y2VsYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0cyB0aGF0IGV2ZW50cyBp
biB0aGUgZ2VzdHVyZSBhcmUgbm9uLWNhbmNlbGFibGUgaWYgcHJldmVudERlZmF1bHQgd2FzIG5v
dCBjYWxsZWQgb24gdGhlIGZpcnN0IGV2ZW50CitQQVNTIGZpcnN0V2FzQ2FuY2VsYWJsZSBpcyB0
cnVlCitQQVNTIGJlY2FtZU5vbkNhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9u
LWNhbmNlbGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzM4YTQ2ZTcwYzAwNzQxMmY0OWYwZWNkMjRh
ZDJhYjg0ODg1MjdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS5odG1sCkBAIC0wLDAgKzEs
ODEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAg
ICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAg
ICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2
ZXI7CisgICAgICAgICAgICBtYXJnaW46IDIwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9IHRydWU7
CisKKyAgICAgICAgbGV0IHdoZWVsRXZlbnRDb3VudCA9IDA7CisKKyAgICAgICAgbGV0IGZpcnN0
V2FzQ2FuY2VsYWJsZTsKKyAgICAgICAgbGV0IGJlY2FtZU5vbkNhbmNlbGFibGU7CisKKyAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKDEwMCwgMTAwKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAiY2hh
bmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRh
dGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwg
Im5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAiZW5kZWQiLCAibm9uZSIpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2Nyb2xsQ29t
cGxldGlvbigpOworCisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2ZpcnN0V2FzQ2FuY2VsYWJs
ZScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdiZWNhbWVOb25DYW5jZWxhYmxlJyk7CisK
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygnVGVz
dHMgdGhhdCBldmVudHMgaW4gdGhlIGdlc3R1cmUgYXJlIG5vbi1jYW5jZWxhYmxlIGlmIHByZXZl
bnREZWZhdWx0IHdhcyBub3QgY2FsbGVkIG9uIHRoZSBmaXJzdCBldmVudCcpOworICAgICAgICAg
ICAgbGV0IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAg
ICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgaWYgKHdoZWVsRXZlbnRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAg
ICAgICAgIGZpcnN0V2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIGZpcnN0
IG5vbi1jYW5jZWxhYmxlIGV2ZW50IGFuZCBjaGVjayB0aGF0IGFsbCBzdWJzZXF1ZW50IGV2ZW50
cyBhcmUgbm9uLWNhbmNlbGFibGUuCisgICAgICAgICAgICAgICAgICAgIGlmIChiZWNhbWVOb25D
YW5jZWxhYmxlICYmIGV2ZW50LmNhbmNlbGFibGUpCisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCdTaG91bGQgbm90IHNlZSBjYW5jZWxhYmxlIGV2ZW50IGFmdGVyIG5vbi1jYW5j
ZWxhYmxlIGV2ZW50JykKKworICAgICAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LmNhbmNlbGFi
bGUpCisgICAgICAgICAgICAgICAgICAgICAgICBiZWNhbWVOb25DYW5jZWxhYmxlID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKyt3aGVlbEV2ZW50Q291bnQ7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0U2Nyb2xsLCAwKTsK
KyAgICAgICAgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9tYWMvcnViYmVyYmFuZC1vdmVyZmxvdy1pbi13aGVlbC1yZWdpb24tcm9vdC1qaWdnbGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93
LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCmluZGV4IGNlMzU5MDUxZjE5ZGU4YmVl
MDI4YTVlNmIwMGY0YjM0NGVjYWJhY2EuLjI1MjdlMGYyOWMyZmE4NTlkYzkzYTMyNTQ4NDQxM2Q1
Y2JlNzE3NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJi
ZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVs
LXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCkBAIC01MSwxMCArNTEsMTcgQEAKIAogICAgICAgICAg
ICAgLy8gU2Nyb2xsIGRvd24gdG8gbGF0Y2gsIHRoZW4gdXAgdG8gcnViYmVyYmFuZC4KICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgImJlZ2FuIiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwgIm5v
bmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAxMiwg
ImNoYW5nZWQiLCAibm9uZSIpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDEyLCAiY2hhbmdlZCIsICJub25lIik7Cisg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
NSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVuZGVy
aW5nVXBkYXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFu
Z2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0
ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5v
bmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwogICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICJlbmRlZCIsICJub25lIik7CiAKICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LnJlbmRlcmluZ1VwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCAwMDMxYWQ5YjY0YzRmNmZkYTk1Y2ExN2E0NjA1NTQ1MWU3ZjgwNDIzLi5iYWU5
YTEyZjdlMGQ1OTEwMDRiMzYzMTNmMzY0MDVlMWI3YWZiNDY5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjI0OCw1ICsyMjQ4LDMgQEAgd2Via2l0Lm9y
Zy9iLzIxODM0NiBbIE1vamF2ZSBdIGZhc3QvdGV4dC9jYW52YXMtY29sb3ItZm9udHMgWyBTa2lw
IF0KIFsgTW9qYXZlIF0gaHR0cC90ZXN0cy9jYW52YXMvY29sb3ItZm9udHMgWyBTa2lwIF0KIAog
d2Via2l0Lm9yZy9iLzIxOTA2NiBbIE1vamF2ZSBDYXRhbGluYSBdIHdlYnJ0Yy9hdWRpby1zZnJh
bWUuaHRtbCBbIFBhc3MgQ3Jhc2ggXQotCi13ZWJraXQub3JnL2IvMjE5MjEyIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9wbHVnaW50eXBlcy1hZmZlY3RzLWNo
aWxkLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414748</attachid>
            <date>2020-11-20 18:49:40 -0800</date>
            <delta_ts>2020-11-20 19:06:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201120184939.patch</filename>
            <type>text/plain</type>
            <size>58631</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBhZjFmN2I2NjBlZGVh
NDM3OGYwODQyMTg2NGQ1NWY2OTgwYzFkYS4uYTkyZWI4YTc0YmIxMWU5OTk3ZWU2YjcyM2Q0ZjFk
YjhkM2IxMzZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTExLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZp
cnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIGhhbmRsaW5nIGEgc2VxdWVuY2Ugb2Ygd2hlZWwgZXZl
bnRzIGluIGEgZ2VzdHVyZSBpbiBhIHJlZ2lvbiB3aXRoIG5vbi1wYXNzaXZlIHdoZWVsCisgICAg
ICAgIGV2ZW50IGhhbmRsZXJzLCBvbmx5IGFsbG93IHRoZSBmaXJzdCBldmVudCBpbiB0aGUgc2Vx
dWVuY2UgdG8gY2FsbCBwcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBzdWJzZXF1ZW50IGV2ZW50
cyBhcmUgbWFya2VkIGFzIG5vbi1jYW5jZWxhYmxlLCBzbyBwcmV2ZW50RGVmYXVsdCgpIHdpbGwg
aGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gZG8gYXN5bmMgc2Ny
b2xsaW5nIGV2ZW4gd2hpbGUgaW4gcmVnaW9ucyB3aXRoIGFjdGl2ZSB3aGVlbCBldmVudCBoYW5k
bGVycywKKyAgICAgICAgaWYgdGhvc2UgaGFuZGxlcnMgZG9uJ3QgY2FsbCBwcmV2ZW50RGVmYXVs
dCgpIG9uIHRoZSBmaXJzdCBldmVudC4gVGhpcyBtYXRjaGVzIEJsaW5rCisgICAgICAgIGJlaGF2
aW9yLgorCisgICAgICAgIFRvIGFjaGlldmUgdGhpcywgdHJhY2sgc29tZSBiaXRzIGluIEV2ZW50
SGFuZGxpbmcgdG8ga25vdyB3aGV0aGVyIHRoZSBldmVudCB3YXMgZGlzcGF0Y2hlZAorICAgICAg
ICB0byBzY3JpcHQsIGFuZCB3aGV0aGVyIGl0IHdhcyBjYW5jZWxlZC4gU2VuZCB0aGlzIGRhdGEg
YmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCB2aWEKKyAgICAgICAgd2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZCgpLCB3aGVyZSBpcyBzZXRzIGFuIE9wdGlvbmFsPGJvb2w+IG9u
IFNjcm9sbGluZ1RyZWUuIFRoaXMKKyAgICAgICAgZmxhZyBpcyBjb25zdWx0ZWQgYnkgU2Nyb2xs
aW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcoKSwgYW5kIGlmIHdlIGhhdmUg
cmVjZWl2ZWQKKyAgICAgICAgaXQsIGFuZCB0aGUgZXZlbnQgd2FzIG5vdCBjYW5jZWxlZCwgd2Ug
dXNlIE1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggd2hlbgorICAgICAg
ICBzZW5kaW5nIGV2ZW50cyB0byB0aGUgbWFpbiB0aHJlYWQuIFRoaXMgaXMgdXNlZCB0byBtYXJr
IHRoZSBldmVudCBhcyBub24tY2FuY2VsYWJsZSBpbgorICAgICAgICBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQoKS4KKworICAgICAgICBUaGUgc2Nyb2xsaW5nIHRocmVhZCB3YWl0cyBm
b3IgdGhlICJiZWdhbiIgZXZlbnQgdG8gY29tZSBiYWNrIGZyb20gdGhlIG1haW4gdGhyZWFkIGFm
dGVyIERPTQorICAgICAgICBkaXNwYXRjaGluZyBieSBibG9ja2luZyBvbiBhIGNvbmRpdGlvbiB2
YXJpYWJsZSBpbgorICAgICAgICBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JFdmVudFRv
QmVQcm9jZXNzZWRCeU1haW5UaHJlYWQoKS4gVGhpcyBjdXJyZW50bHkgaGFzIGEgNTBtcworICAg
ICAgICB0aW1lb3V0LCBhZnRlciB3aGljaCB0aGUgZ2VzdHVyZSB3aWxsIHByb2NlZWQgd2l0aCB1
bmNhbmNlbGFibGUgZXZlbnRzLgorCisgICAgICAgIEl0J3MgaW1wb3J0YW50IHRoYXQgdGhlICJi
ZWdhbiIgZXZlbnQgY29tZXMgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCBhZnRlciBtYWlu
IHRocmVhZAorICAgICAgICBwcm9jZXNzaW5nIChpZiBub3QgY2FuY2VsZWQpLCBiZWNhdXNlIHRo
aXMgZXZlbnQgbmVlZHMgdG8gdHJpZ2dlciBsYXRjaGluZyBhbmQgc2V0ICJpbgorICAgICAgICBn
ZXN0dXJlIiBzdGF0ZSBvbiB0aGUgU2Nyb2xsaW5nQ29udHJvbGxlcnMgb2Ygc2Nyb2xsaW5nIHRy
ZWUgbm9kZXMuCisKKyAgICAgICAgQWRkIGFub3RoZXIgUG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50
SGFuZGxpbmcgYml0IHRvIFdoZWVsRXZlbnRUZXN0TW9uaXRvciB0byB0cmFjayB0aGUKKyAgICAg
ICAgcG9zdC1tYWluLXRocmVhZCBwcm9wYWdhdGlvbiBvZiBldmVudHMgdG8gdGhlIHNjcm9sbGlu
ZyB0aHJlYWQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVs
LWV2ZW50LWNhbmNlbGFibGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2hlZWwv
d2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2Vs
YWJsZS5odG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpkaXNwYXRjaFdoZWVsRXZlbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6
CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxF
dmVudDo6V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50Lmg6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50V2FzUHJv
Y2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdo
ZWVsRXZlbnRJbnRlcm5hbCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Ondo
ZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBvaW50ZXJMb2NrQ29udHJvbGxlcjo6ZGlzcGF0Y2hMb2NrZWRXaGVl
bEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0
TW9uaXRvci5oOgorICAgICAgICAqIHBhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudCk6CisgICAgICAgICogcGFnZS9t
YWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3
aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6aGFuZGxlV2hlZWxFdmVu
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJv
Y2Vzc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldEdlc3R1cmVSZXF1aXJl
c1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0
OjpuZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFk
ZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2hlZWxFdmVudFdhc1Byb2Nlc3Nl
ZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnBl
cmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Om5leHRE
ZWZlcklkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1FdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybVdoZWVsRXZlbnQuaDoKKwogMjAyMC0xMS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFBvb3IgcmVzYW1wbGluZyBxdWFsaXR5IHdoZW4gdXNpbmcgQXVk
aW9Db250ZXh0IHNhbXBsZVJhdGUgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4NjVlNWI2MzQxMmJm
YzVmYThkMmUzNWVhMzg4NDdiOWIwZmFmOWIuLmYxZDhlZjJmMGEzNjkxMzJlNjM3MzU0YzAyODQw
MjE1MjYxYTg1MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMTEtMTMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSB0aGUgZmly
c3Qgd2hlZWwgZXZlbnQgaW4gYSBnZXN0dXJlIHNob3VsZCBiZSBjYW5jZWxhYmxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcxMjQ4OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCgpLCBhbGwg
d2hlZWwgZXZlbnRzIG5vdyBib3VuY2UgdGhyb3VnaCB0aGUgc2Nyb2xsaW5nCisgICAgICAgIHRo
cmVhZCwgZXZlbiB0aG9zZSBkZXN0aW5lZCBmb3IgbWFpbiB0aHJlYWQgc2Nyb2xsaW5nLiBUaGlz
IGFsbG93cyB0aGUgc2Nyb2xsaW5nIHRocmVhZAorICAgICAgICB0byB3YWl0IG9uIGEgY29uZGl0
aW9uIGZvciB0aGUgZXZlbnQgdG8gY29tZSBiYWNrIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHZp
YQorICAgICAgICBoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKCksIHNpbmNlIHdlIGhh
dmUgdG8ga25vdyB3aGV0aGVyIGNvbnRlbnQgY2FsbGVkCisgICAgICAgIHByZXZlbnREZWZhdWx0
KCkgb24gdGhlIGZpcnN0IGV2ZW50IGJlZm9yZSBzZW5kaW5nIHN1YnNlcXVlbnQgZXZlbnRzLgor
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hl
cjo6d2hlZWxFdmVudCk6CisKIDIwMjAtMTEtMjAgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBQZXJzaXN0IHBlbmRpbmcgYWQgY2xpY2tz
IGFuZCBhdHRyaWJ1dGlvbnMgc28gdGhleSBjYW4gc3Vydml2ZSBicm93c2VyIHJlc3RhcnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAppbmRleCBkNjFjN2Y2OTU0MTJhNTViMTY0NjMwZjdlZGNlOWNjZjNi
NTE4NzFlLi4wYjRjOWQ4ZGNiZTk2MDdhMmZkZmYwZDIyOGEwNGJiOTQ2ZDc1MDJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC00MzcsNyArNDM3LDcgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRj
aFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBPcHRp
b24KIAogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAgIAotICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRWxlbWVudCAiIDw8ICp0aGlzIDw8ICIgZGlzcGF0Y2hX
aGVlbEV2ZW50OiBkZWZhdWx0UHJldmVudGVkICIgPDwgZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQo
KSA8PCAiIGRlZmF1bHRIYW5kbGVkICIgPDwgZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpOworICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRWxlbWVudCAiIDw8ICp0aGlz
IDw8ICIgZGlzcGF0Y2hXaGVlbEV2ZW50OiAoY2FuY2VsYWJsZSAiIDw8IGV2ZW50LT5jYW5jZWxh
YmxlKCkgPDwgIikgZGVmYXVsdFByZXZlbnRlZCAiIDw8IGV2ZW50LT5kZWZhdWx0UHJldmVudGVk
KCkgPDwgIiBkZWZhdWx0SGFuZGxlZCAiIDw8IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKTsKICAg
ICAKICAgICBpZiAoZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSkKICAgICAgICAgcHJvY2Vzc2lu
Zy5hZGQoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKaW5kZXggNjVlYjIwOWQ0ZDM3YTYzYWRhZTI5MzA1ZDJmZjQ3YTBlMjVk
YjE1ZC4uOTU4MmYzMmJjZjFhYmFiYmFmMDY5NWI5ZDg5YzAzMmQ1NmYzOWMyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyBib29s
IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVh
LCBjb25zdCBXaGVlCiAgICAgcmV0dXJuIGRpZEhhbmRsZVdoZWVsRXZlbnQ7CiB9CiAKLXN0YXRp
YyBib29sIGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0
YXJ0Tm9kZSwgY29uc3QgV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgY29uc3QgRmxvYXRTaXplJiBm
aWx0ZXJlZFBsYXRmb3JtRGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyZWRWZWxvY2l0eSkK
K3N0YXRpYyBib29sIGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5v
ZGUqIHN0YXJ0Tm9kZSwgY29uc3QgV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgY29uc3QgRmxvYXRT
aXplJiBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyZWRWZWxv
Y2l0eSwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcpCiB7CiAgICAgYm9v
bCBzaG91bGRIYW5kbGVFdmVudCA9IHdoZWVsRXZlbnQuZGVsdGFYKCkgfHwgd2hlZWxFdmVudC5k
ZWx0YVkoKTsKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCkBAIC0zNDYsNyArMzQ2
LDcgQEAgc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdC
b3goTm9kZSogc3RhcnROb2RlLCBjb25zdCBXaGUKICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5n
V2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50KSB7CiAgICAgICAgICAg
ICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5k
VmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1E
ZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7Ci0gICAgICAgICAgICAgICAgc2Nyb2xs
aW5nV2FzSGFuZGxlZCA9IGJveExheWVyLT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNv
cGllZEV2ZW50KTsKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gYm94TGF5
ZXItPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29waWVkRXZlbnQsIGV2ZW50SGFuZGxp
bmcpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFu
ZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoKmJveExheWVyLCB3aGVlbEV2ZW50KTsK
IApAQCAtMjc4MCwxNCArMjc4MCwxNCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6cmVjb3JkV2hlZWxF
dmVudEZvckRlbHRhRmlsdGVyKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbgogICAgICAg
ICBwYWdlLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+dXBkYXRlRnJvbURlbHRhKEZsb2F0U2l6
ZShldmVudC5kZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpKTsKIH0KIAotYm9vbCBFdmVudEhhbmRs
ZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgZXZlbnQsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JikKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGV2ZW50LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYsIE9wdGlvblNldDxFdmVu
dEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJh
bWUobV9mcmFtZSk7CiAKICAgICAvLyBXZSBkbyBhbm90aGVyIGNoZWNrIG9uIHRoZSBmcmFtZSB2
aWV3IGJlY2F1c2UgdGhlIGV2ZW50IGhhbmRsZXIgY2FuIHJ1biBKUyB3aGljaCByZXN1bHRzIGlu
IHRoZSBmcmFtZSBnZXR0aW5nIGRlc3Ryb3llZC4KICAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2Zy
YW1lLnZpZXcoKTsKICAgICAKLSAgICBib29sIGRpZEhhbmRsZUV2ZW50ID0gdmlldyA/IHZpZXct
PmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoZXZlbnQpIDogZmFsc2U7CisgICAgYm9vbCBk
aWRIYW5kbGVFdmVudCA9IHZpZXcgPyB2aWV3LT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5n
KGV2ZW50LCBldmVudEhhbmRsaW5nKSA6IGZhbHNlOwogICAgIG1faXNIYW5kbGluZ1doZWVsRXZl
bnQgPSBmYWxzZTsKICAgICByZXR1cm4gZGlkSGFuZGxlRXZlbnQ7CiB9CkBAIC0yODY5LDYgKzI4
NjksNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBPcHRpb25TZXQ8VwogewogICAgIE9wdGlvblNldDxFdmVudEhh
bmRsaW5nPiBoYW5kbGluZzsKICAgICBib29sIGhhbmRsZWQgPSBoYW5kbGVXaGVlbEV2ZW50SW50
ZXJuYWwoZXZlbnQsIHByb2Nlc3NpbmdTdGVwcywgaGFuZGxpbmcpOworICAgIC8vIHdoZWVsRXZl
bnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoKSBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gY2FsbGVk
IHZpYSBwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZygpLCBidXQgdGhpcyBlbnN1cmVz
IHRoYXQgaXQncyBhbHdheXMgY2FsbGVkIGlmIHRoYXQgY29kZSBwYXRoIGRvZW5zJ3QgcnVuLgog
ICAgIHdoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoZXZlbnQsIGhhbmRsaW5nKTsK
ICAgICByZXR1cm4gaGFuZGxlZDsKIH0KQEAgLTI5NjUsNyArMjk2Niw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCwgT3B0CiAjZW5kaWYKICAgICBpZiAoYWxsb3dTY3JvbGxpbmcpIHsKICAgICAgICAg
Ly8gRklYTUU6IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKCkgaXMgb25seSBjYWxsZWQg
Zm9yIEZyYW1lVmlldyBzY3JvbGxpbmcsIG5vdCBvdmVyZmxvdyBzY3JvbGxpbmcsIHdoaWNoIGlz
IGNvbmZ1c2luZy4KLSAgICAgICAgaGFuZGxlZEV2ZW50ID0gcHJvY2Vzc1doZWVsRXZlbnRGb3JT
Y3JvbGxpbmcoZXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKKyAgICAgICAgaGFuZGxlZEV2ZW50ID0g
cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoZXZlbnQsIHNjcm9sbGFibGVBcmVhLCBoYW5k
bGluZyk7CiAgICAgICAgIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChldmVudCwgc2Ny
b2xsYWJsZUFyZWEpOwogICAgIH0KIApAQCAtMzAwNyw2ICszMDA4LDEwIEBAIHZvaWQgRXZlbnRI
YW5kbGVyOjpkZWZhdWx0V2hlZWxFdmVudEhhbmRsZXIoTm9kZSogc3RhcnROb2RlLCBXaGVlbEV2
ZW50JiB3aGVlbEV2CiAgICAgICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5zZXRIZWlnaHQocGxh
dGZvcm1XaGVlbEV2ZW50LT5kZWx0YVkoKSk7CiAgICAgfQogCisgICAgT3B0aW9uU2V0PEV2ZW50
SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcgPSB7IEV2ZW50SGFuZGxpbmc6OkRpc3BhdGNoZWRUb0RP
TSB9OworICAgIGlmICh3aGVlbEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQoKSkKKyAgICAgICAgZXZl
bnRIYW5kbGluZy5hZGQoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCk7CisKICNpZiBF
TkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCiAgICAgaWYgKG1fZnJhbWUucGFnZSgpLT53aGVl
bEV2ZW50RGVsdGFGaWx0ZXIoKS0+aXNGaWx0ZXJpbmdEZWx0YXMoKSkgewogICAgICAgICBmaWx0
ZXJlZFBsYXRmb3JtRGVsdGEgPSBtX2ZyYW1lLnBhZ2UoKS0+d2hlZWxFdmVudERlbHRhRmlsdGVy
KCktPmZpbHRlcmVkRGVsdGEoKTsKQEAgLTMwMjYsMTQgKzMwMzEsMTQgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OmRlZmF1bHRXaGVlbEV2ZW50SGFuZGxlcihOb2RlKiBzdGFydE5vZGUsIFdoZWVsRXZl
bnQmIHdoZWVsRXYKICAgICAgICAgYXV0byBwbGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRl
cmx5aW5nUGxhdGZvcm1FdmVudCgpOwogICAgICAgICBpZiAocGxhdGZvcm1FdmVudCkgewogICAg
ICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFz
QW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZv
cm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7Ci0gICAgICAgICAgICBpZiAobGF0
Y2hlZFNjcm9sbGVyLT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvcGllZEV2ZW50KSkK
KyAgICAgICAgICAgIGlmIChsYXRjaGVkU2Nyb2xsZXItPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3Jv
bGxpbmcoY29waWVkRXZlbnQsIGV2ZW50SGFuZGxpbmcpKQogICAgICAgICAgICAgICAgIHdoZWVs
RXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRl
RW5jbG9zaW5nQm94KHN0YXJ0Tm9kZSwgd2hlZWxFdmVudCwgZmlsdGVyZWRQbGF0Zm9ybURlbHRh
LCBmaWx0ZXJlZFZlbG9jaXR5KSkKKyAgICBpZiAoaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlh
dGVFbmNsb3NpbmdCb3goc3RhcnROb2RlLCB3aGVlbEV2ZW50LCBmaWx0ZXJlZFBsYXRmb3JtRGVs
dGEsIGZpbHRlcmVkVmVsb2NpdHksIGV2ZW50SGFuZGxpbmcpKQogICAgICAgICB3aGVlbEV2ZW50
LnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmlu
ZGV4IDkwYzc4N2I2N2UyZjNkYzI5ZDQ1ODhlZWJmNTg3ZmE5MzUxZGU5ZDkuLjliY2ViNGVkMzkw
Yjg4NGEyNWM4OGE5ZmY2OTYyMmU4ZTk0NWI5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaApAQCAtNDU5LDcgKzQ1OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXNzV2hlZWxFdmVu
dFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCYsIE9wdGlvblNldDxX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPik7CiAgICAgdm9pZCBkZXRlcm1pbmVXaGVlbEV2ZW50
VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFJlZlB0cjxFbGVtZW50PiYgZXZlbnRU
YXJnZXQsIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiwgYm9vbCYgaXNPdmVyV2lkZ2V0KTsKICAg
ICB2b2lkIHJlY29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcihjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKTsKLSAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+Jik7CisgICAg
Ym9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYsIE9wdGlvblNldDxFdmVudEhhbmRs
aW5nPik7CiAgICAgdm9pZCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mKTsKICAgICBi
b29sIGNvbXBsZXRlV2lkZ2V0V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBj
b25zdCBXZWFrUHRyPFdpZGdldD4mLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMzA1OGQ5MWRlNjVhOWNjMzhkNTkwNjc5
MGFkMzJhN2M2NzgxODJmYi4uNzRmMzBlYWI3MGMxNGMzNTU1MjlhNzdjMWZjZGMxODMwYTEzYzZh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTA5OCw3ICs1MDk4LDcgQEAgdm9p
ZCBGcmFtZVZpZXc6OnJlbW92ZUNoaWxkKFdpZGdldCYgd2lkZ2V0KQogICAgIFNjcm9sbFZpZXc6
OnJlbW92ZUNoaWxkKHdpZGdldCk7CiB9CiAKLWJvb2wgRnJhbWVWaWV3OjpoYW5kbGVXaGVlbEV2
ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK2Jv
b2wgRnJhbWVWaWV3OjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFu
ZGxpbmcpCiB7CiAgICAgLy8gTm90ZSB0aGF0IHRvIGFsbG93IGZvciBydWJiZXItYmFuZCBvdmVy
LXNjcm9sbCBiZWhhdmlvciwgZXZlbiBub24tc2Nyb2xsYWJsZSB2aWV3cwogICAgIC8vIHNob3Vs
ZCBoYW5kbGUgd2hlZWwgZXZlbnRzLgpAQCAtNTEyOCwxMSArNTEyOCwxMSBAQCBib29sIEZyYW1l
Vmlldzo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbgogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgaWYgKGF1dG8g
c2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAg
ICAgICAgIGlmIChzY3JvbGxpbmdDb29yZGluYXRvci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JG
cmFtZVZpZXcoKnRoaXMpKQotICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9y
LT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJ
RCgpKTsKKyAgICAgICAgICAgIHJldHVybiBzY3JvbGxpbmdDb29yZGluYXRvci0+aGFuZGxlV2hl
ZWxFdmVudEZvclNjcm9sbGluZyh3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQoKSwgZXZlbnRI
YW5kbGluZyk7CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6Omhh
bmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCk7CisgICAgcmV0dXJuIFNjcm9s
bGFibGVBcmVhOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHdoZWVsRXZlbnQsIGV2ZW50
SGFuZGxpbmcpOwogfQogCiBib29sIEZyYW1lVmlldzo6aXNWZXJ0aWNhbERvY3VtZW50KCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGIyMmZhNmNiODJmYmJlMjAwYTFjNzQyYWQw
MmY1M2ZkZGM1Y2RjMDAuLmNhMDA4ZjgxMTAxNjY0NTFmYzFlMmMwYzcxNWJjNzM3NWI2NDM5ZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNTY1LDcgKzU2NSw3IEBAIHB1YmxpYzoKICAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3IgcG9ydHMgdGhhdCBuZWVkIHRvIGhhbmRsZSB3
aGVlbCBldmVudHMgbWFudWFsbHkuCiAgICAgLy8gT24gTWFjIFdlYktpdDEgdGhlIHVuZGVybHlp
bmcgTlNTY3JvbGxWaWV3IGp1c3QgZG9lcyB0aGUgc2Nyb2xsaW5nLCBidXQgb24gbW9zdCBvdGhl
ciBwbGF0Zm9ybXMKICAgICAvLyB3ZSBuZWVkIHRoaXMgZnVuY3Rpb24gaW4gb3JkZXIgdG8gZG8g
dGhlIHNjcm9sbCBvdXJzZWx2ZXMuCi0gICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xs
aW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZpbmFsOworICAgIGJvb2wgaGFuZGxlV2hl
ZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8
RXZlbnRIYW5kbGluZz4pIGZpbmFsOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3Jv
bGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKaW5kZXggNjM3NzIwMjg2NjE4MWYwYzZk
ZGJkZTJhNzNlYzc4M2Y4NDg3YzcwYi4uYmVhZWRiZjJlZWQ0YzUzNGQ5MjM1NWI3M2RjNWEzOGRk
N2RjNTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1v
bml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9y
LmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24gcmVhc29uCiAgICAgc3dp
dGNoIChyZWFzb24pIHsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdX
aGVlbEV2ZW50OiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQiOyBicmVhazsKICAgICBjYXNl
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50T25NYWluVGhyZWFkOiB0
cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQgb24gbWFpbiB0aHJlYWQiOyBicmVhazsKLSAgICBj
YXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZzogdHMgPDwg
InJlcG9ydCBET00gZXZlbnQgaGFuZGxpbmciOyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6UG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmc6IHRzIDw8ICJwb3N0
LW1haW4gdGhyZWFkIGV2ZW50IGhhbmRsaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OlJ1YmJlcmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7
IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9n
cmVzczogdHMgPDwgInNjcm9sbC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5n
IHRocmVhZCBzeW5jIG5lZWRlZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxF
dmVudFRlc3RNb25pdG9yLmgKaW5kZXggOTIwNzdlOWQ1ZmFiMGVmOWZlMjZmMDU1MjU3MzcyOGMx
Yzc2NzVjZC4uNmQxYjEyNmExNzdmNmM4Yjk0YTgzOWYzNzZhZmRhZmY3NTU3YWJjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC00OCwxNCArNDgs
MTQgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUZXN0RGVmZXJy
YWxzKCk7CiAgICAgCiAgICAgZW51bSBEZWZlclJlYXNvbiB7Ci0gICAgICAgIEhhbmRsaW5nV2hl
ZWxFdmVudCAgICAgICAgICAgICAgPSAxIDw8IDAsCi0gICAgICAgIEhhbmRsaW5nV2hlZWxFdmVu
dE9uTWFpblRocmVhZCAgPSAxIDw8IDEsCi0gICAgICAgIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcg
ICAgICAgICAgPSAxIDw8IDIsCi0gICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAg
ICAgPSAxIDw8IDMsCi0gICAgICAgIFNjcm9sbFNuYXBJblByb2dyZXNzICAgICAgICAgICAgPSAx
IDw8IDQsCi0gICAgICAgIFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQgICAgICAgPSAxIDw8IDUs
Ci0gICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAgICAgICAgPSAxIDw8IDYsCi0gICAg
ICAgIFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uICAgICAgICAgPSAxIDw8IDcsCisgICAgICAgIEhh
bmRsaW5nV2hlZWxFdmVudCAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgICAgICBIYW5k
bGluZ1doZWVsRXZlbnRPbk1haW5UaHJlYWQgICAgICA9IDEgPDwgMSwKKyAgICAgICAgUG9zdE1h
aW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmcgICAgPSAxIDw8IDIsCisgICAgICAgIFJ1YmJlcmJh
bmRJblByb2dyZXNzICAgICAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICBTY3JvbGxTbmFw
SW5Qcm9ncmVzcyAgICAgICAgICAgICAgICA9IDEgPDwgNCwKKyAgICAgICAgU2Nyb2xsaW5nVGhy
ZWFkU3luY05lZWRlZCAgICAgICAgICAgPSAxIDw8IDUsCisgICAgICAgIENvbnRlbnRTY3JvbGxJ
blByb2dyZXNzICAgICAgICAgICAgID0gMSA8PCA2LAorICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbiAgICAgICAgICAgICA9IDEgPDwgNywKICAgICB9OwogICAgIHR5cGVkZWYgY29uc3Qg
dm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggYWZkNzZkMjU2ZWQwY2Y0N2UzZWFiMzQ5OGU0MTc2
ZGI2OTcyNTBlNC4uNTFiYWIwZTE5MmY3YTU3Mjg0NDhkZDEzMTQ5ZTYzMzJkN2MwNWMyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtOTA0LDcgKzkw
NCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvcmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlCiAgICAgcGFnZS0+d2hlZWxFdmVudERlbHRh
RmlsdGVyKCktPnVwZGF0ZUZyb21EZWx0YShGbG9hdFNpemUod2hlZWxFdmVudC5kZWx0YVgoKSwg
d2hlZWxFdmVudC5kZWx0YVkoKSkpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1do
ZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYgc2Nyb2xsYWJsZUFyZWEpCitib29sIEV2
ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYgc2Ny
b2xsYWJsZUFyZWEsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQogewog
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJFdmVudEhhbmRs
ZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIC0g
c2Nyb2xsYWJsZUFyZWEgIiA8PCBWYWx1ZU9yTnVsbChzY3JvbGxhYmxlQXJlYS5nZXQoKSkgPDwg
IiB1c2UgbGF0Y2hlZCBlbGVtZW50ICIgPDwgd2hlZWxFdmVudC51c2VMYXRjaGVkRXZlbnRFbGVt
ZW50KCkpOwogCkBAIC05MzksNyArOTM5LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnByb2Nlc3NX
aGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWwKIAog
ICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8PCAiIHNlbmRp
bmcgdG8gdmlldyAiIDw8ICp2aWV3KTsKIAotICAgICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZl
bnQgPSB2aWV3LT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHdoZWVsRXZlbnQpOworICAg
ICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSB2aWV3LT5oYW5kbGVXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKHdoZWVsRXZlbnQsIGV2ZW50SGFuZGxpbmcpOwogICAgICAgICAvLyBJZiB0aGUg
cGxhdGZvcm0gd2lkZ2V0IGlzIGhhbmRsaW5nIHRoZSBldmVudCwgd2UgYWx3YXlzIHdhbnQgdG8g
cmV0dXJuIGZhbHNlLgogICAgICAgICBpZiAodmlldy0+cGxhdGZvcm1XaWRnZXQoKSkKICAgICAg
ICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSBmYWxzZTsKQEAgLTk0OCw3ICs5NDgsNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbAogICAgICAgICByZXR1cm4gZGlkSGFuZGxlV2hlZWxFdmVu
dDsKICAgICB9CiAgICAgCi0gICAgYm9vbCBkaWRIYW5kbGVFdmVudCA9IHZpZXctPmhhbmRsZVdo
ZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCk7CisgICAgYm9vbCBkaWRIYW5kbGVFdmVu
dCA9IHZpZXctPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCwgZXZlbnRI
YW5kbGluZyk7CiAgICAgbV9pc0hhbmRsaW5nV2hlZWxFdmVudCA9IGZhbHNlOwogICAgIHJldHVy
biBkaWRIYW5kbGVFdmVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IGE1MDBlODJhOWJmM2E2ZTQyZjE3NjM2
OTNlMDQyYmIwOTIxMDY0MWYuLmU4NTYyODMwNGI5NzJjY2ZjMDdiYjBhNGQ2ZWYyMWU1YmNhNzY5
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGVzZSB2
aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgY3VycmVudGx5IHVuaXF1ZSB0byB0aGUgdGhyZWFkZWQgc2Ny
b2xsaW5nIGFyY2hpdGVjdHVyZS4gCiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVTdGF0ZUlm
TmVlZGVkKCkgeyB9CiAgICAgdmlydHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IEludFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5
cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZv
clNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnRGb3JTY3Jv
bGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlELCBPcHRpb25T
ZXQ8RXZlbnRIYW5kbGluZz4pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHdo
ZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KSB7IH0KIAogICAgIC8vIENyZWF0ZSBhbiB1bnBh
cmVudGVkIG5vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCmluZGV4IDljODNjZjZmMTM0YzhjOGRlMzkzZDc5MmE0NjE3ZWU3NDI0YzFkNTAu
LmJiYmFhMjM1NmQ4N2VkMjYwOWIwMDUzMTRlNmZmZmE0YTA2ZTI0ZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC03Myw2ICs3Myw4
IEBAIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVlOjpk
ZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luCiAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3Jv
bGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50
UHJvY2Vzc2luZyAiIDw8IHdoZWVsRXZlbnQgPDwgIiBoYXZlIGxhdGNoZWQgbm9kZSAiIDw8IGxh
dGNoZWROb2RlQW5kU3RlcHMtPnNjcm9sbGluZ05vZGVJRCA8PCAiIHN0ZXBzICIgPDwgbGF0Y2hl
ZE5vZGVBbmRTdGVwcy0+cHJvY2Vzc2luZ1N0ZXBzKTsKICAgICAgICAgcmV0dXJuIGxhdGNoZWRO
b2RlQW5kU3RlcHMtPnByb2Nlc3NpbmdTdGVwczsKICAgICB9CisgICAgaWYgKHdoZWVsRXZlbnQu
aXNHZXN0dXJlQmVnaW4oKSB8fCB3aGVlbEV2ZW50LmlzTm9uR2VzdHVyZUV2ZW50KCkpCisgICAg
ICAgIG1fdHJlZVN0YXRlLnJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoID0gV1RGOjpu
dWxsb3B0OwogCiAgICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBbJl0oKSAtPiBPcHRpb25TZXQ8
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gewogICAgICAgICBpZiAoIW1fcm9vdE5vZGUpCkBA
IC05Niw4ICs5OCwxMiBAQCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gU2Ny
b2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbgogCiAjaWYgRU5BQkxFKFdI
RUVMX0VWRU5UX1JFR0lPTlMpCiAgICAgICAgIGF1dG8gZXZlbnRMaXN0ZW5lclR5cGVzID0gZXZl
bnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQocG9zaXRpb24pOwotICAgICAgICBpZiAoZXZl
bnRMaXN0ZW5lclR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNz
aXZlV2hlZWwpKQorICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRhaW5zKEV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpKSB7CisgICAgICAgICAgICBpZiAo
bV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2ggJiYgISptX3RyZWVT
dGF0ZS5yZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQsIFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlz
cGF0Y2ggfTsKKwogICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGV2ZW50TGlzdGVuZXJUeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVyUmVnaW9uVHlw
ZTo6V2hlZWwpKQogICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFk
Rm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07CkBAIC00ODMsNiArNDg5LDE4IEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2ludCBw
b3NpdGlvbikKICAgICBtX3RyZWVTdGF0ZS5tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHBvc2l0
aW9uOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldEdlc3R1cmVSZXF1aXJlc1N5bmNocm9u
b3VzRXZlbnREaXNwYXRjaChib29sIHJlcXVpcmVzU3luY2hyb25vdXNEaXNwYXRjaCkKK3sKKyAg
ICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3RhdGVNdXRleCk7CisgICAgbV90cmVlU3RhdGUucmVx
dWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2ggPSByZXF1aXJlc1N5bmNocm9ub3VzRGlzcGF0
Y2g7Cit9CisKK09wdGlvbmFsPGJvb2w+IFNjcm9sbGluZ1RyZWU6Omdlc3R1cmVSZXF1aXJlc1N5
bmNocm9ub3VzRXZlbnREaXNwYXRjaCgpCit7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0
YXRlTXV0ZXgpOworICAgIHJldHVybiBtX3RyZWVTdGF0ZS5yZXF1aXJlc1N5bmNocm9ub3VzRXZl
bnREaXNwYXRjaDsKK30KKwogVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tp
bmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCBwKQog
ewogICAgIExvY2tIb2xkZXIgbG9jayhtX3RyZWVTdGF0ZU11dGV4KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBmMTNjNTMyODg4MTk4ODdl
MDhmZTQ2ZDhhYmIxNzMwZjZiYzk5NjA2Li4zODE0Nzc5ZTFlZjQzMmMzM2Q1NDFmNGVlOTRhNDQ1
MTU2NmI2YWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oCkBAIC0yMDUsNiArMjA1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2Nr
TGF5ZXJzRm9ySGl0VGVzdGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tMYXllcnNG
b3JIaXRUZXN0aW5nKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRFdmVudFRvTWFp
blRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
d2FpdEZvckV2ZW50VG9CZVByb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKSB7IH07CisKICAgICBMb2NrJiB0cmVlTXV0ZXgoKSB7IHJldHVybiBtX3RyZWVNdXRl
eDsgfQogCiAgICAgdm9pZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQs
IE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKQEAgLTI0MCw2ICsy
NDMsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgRmxvYXRQb2ludCBtYWluRnJhbWVTY3JvbGxQb3NpdGlv
bigpIGNvbnN0OwogICAgIHZvaWQgc2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2lu
dCk7CiAKKyAgICB2b2lkIHNldEdlc3R1cmVSZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRj
aChib29sKTsKKyAgICBPcHRpb25hbDxib29sPiBnZXN0dXJlUmVxdWlyZXNTeW5jaHJvbm91c0V2
ZW50RGlzcGF0Y2goKTsKKwogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVy
U2Vjb25kKCk7CiAKICAgICB2b2lkIGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwpAQCAt
MjgwLDYgKzI4Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIEZsb2F0UG9pbnQgbWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb247CiAgICAgICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCB7IDAgfTsK
ICAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQ7CisgICAg
ICAgIE9wdGlvbmFsPGJvb2w+IHJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoOwogICAg
ICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlUnViYmVyQmFuZGlu
ZzsKICAgICAgICAgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2ZVNjcm9s
bFNuYXA7CiAgICAgICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVV
c2VyU2Nyb2xsczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAKaW5kZXggZDBlMDRm
Y2YzNzQxYzgxNGU4YTRjZDM5OWE4ODlhZmQ2ODcyY2NmNS4uMjMzZWMwYzY0ZGFiMjY5MTZjODBj
NTFkMjNjY2QyMjE5ODkzNDA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAK
QEAgLTQxLDE1ICs0MSwxOCBAQCBzdGF0aWMgY29uc3QgU2Vjb25kcyByZXNldExhdGNoZWRTdGF0
ZVRpbWVvdXQgeyAxMDBfbXMgfTsKIAogU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6
U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcigpID0gZGVmYXVsdDsKIAotdm9pZCBTY3Jv
bGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpyZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwcz4sIGJvb2wgYWxsb3dMYXRjaGluZykKK3ZvaWQgU2Nyb2xsaW5nVHJlZUxhdGNoaW5n
Q29udHJvbGxlcjo6cmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3Np
bmdTdGVwcywgYm9vbCBhbGxvd0xhdGNoaW5nKQogewogICAgIGlmICghYWxsb3dMYXRjaGluZykK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVkTm9kZU11
dGV4KTsKLSAgICBpZiAod2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpICYmIG1fbGF0Y2hlZE5v
ZGVBbmRTdGVwcyAmJiAhbGF0Y2hlZE5vZGVJc1JlbGV2YW50KCkpIHsKLSAgICAgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVMYXRjaGlu
Z0NvbnRyb2xsZXIgIiA8PCB0aGlzIDw8ICIgcmVjZWl2ZWRXaGVlbEV2ZW50IC0gIiA8PCAoTW9u
b3RvbmljVGltZTo6bm93KCkgLSBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lKS5taWxs
aXNlY29uZHMoKSA8PCAibXMgc2luY2UgbGFzdCBldmVudCwgY2xlYXJpbmcgbGF0Y2hlZCBub2Rl
Iik7Ci0gICAgICAgIG1fbGF0Y2hlZE5vZGVBbmRTdGVwcy5yZXNldCgpOworICAgIGlmICh3aGVl
bEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkgJiYgIWxhdGNoZWROb2RlSXNSZWxldmFudCgpKSB7Cisg
ICAgICAgIGlmIChtX2xhdGNoZWROb2RlQW5kU3RlcHMpIHsKKyAgICAgICAgICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdD
b250cm9sbGVyICIgPDwgdGhpcyA8PCAiIHJlY2VpdmVkV2hlZWxFdmVudCAtICIgPDwgKE1vbm90
b25pY1RpbWU6Om5vdygpIC0gbV9sYXN0TGF0Y2hlZE5vZGVJbnRlcmF0aW9uVGltZSkubWlsbGlz
ZWNvbmRzKCkgPDwgIm1zIHNpbmNlIGxhc3QgZXZlbnQsIGNsZWFyaW5nIGxhdGNoZWQgbm9kZSIp
OworICAgICAgICAgICAgbV9sYXRjaGVkTm9kZUFuZFN0ZXBzLnJlc2V0KCk7CisgICAgICAgIH0K
KyAgICAgICAgbV9wcm9jZXNzaW5nU3RlcHNGb3JDdXJyZW50R2VzdHVyZSA9IHByb2Nlc3NpbmdT
dGVwczsKICAgICB9CiB9CiAKQEAgLTk2LDkgKzk5LDI3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUxh
dGNoaW5nQ29udHJvbGxlcjo6bm9kZURpZEhhbmRsZUV2ZW50KFNjcm9sbGluZ05vZGVJRCBzY3Jv
bGxpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAod2hlZWxFdmVudC5kZWx0YSgp
LmlzWmVybygpIHx8ICF3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCisgICAgYXV0byBzaG91
bGRMYXRjaCA9IFsmXSgpIHsKKyAgICAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGEoKS5pc1plcm8o
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAod2hlZWxFdmVudC5p
c0dlc3R1cmVTdGFydCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYg
KCF3aGVlbEV2ZW50LmlzR2VzdHVyZUNvbnRpbnVhdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIGlmIChtX3Byb2Nlc3NpbmdTdGVwc0ZvckN1cnJlbnRHZXN0dXJl
LnZhbHVlT3IoT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHsgfSkuY29udGFp
bnMoV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZykgJiYg
cHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9s
bGluZ1RocmVhZCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfTsKKyAgICAKKyAgICBpZiAoIXNob3VsZExhdGNoKCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIG1fcHJvY2Vzc2luZ1N0ZXBzRm9yQ3VycmVudEdlc3R1cmUgPSBwcm9jZXNz
aW5nU3RlcHM7CisKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8
PCAiU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiBub2RlRGlk
SGFuZGxlRXZlbnQ6IGxhdGNoaW5nIHRvICIgPDwgc2Nyb2xsaW5nTm9kZUlEKTsKICAgICBtX2xh
dGNoZWROb2RlQW5kU3RlcHMgPSBTY3JvbGxpbmdOb2RlQW5kUHJvY2Vzc2luZ1N0ZXBzIHsgc2Ny
b2xsaW5nTm9kZUlELCBwcm9jZXNzaW5nU3RlcHMgfTsKICAgICBtX2xhc3RMYXRjaGVkTm9kZUlu
dGVyYXRpb25UaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250
cm9sbGVyLmgKaW5kZXggYmVlNTkzMTViNWQ2ZTNmMDVhNTk5ZmFjMGEzYjliMDg3NWUxNzA4YS4u
NjQxOGVhODg1NzM3MDllNjQxYTNjZjMxNzg4N2E5NjRjZTNjZWZlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRj
aGluZ0NvbnRyb2xsZXIuaApAQCAtNjQsNiArNjQsNyBAQCBwcml2YXRlOgogCiAgICAgbXV0YWJs
ZSBMb2NrIG1fbGF0Y2hlZE5vZGVNdXRleDsKICAgICBPcHRpb25hbDxTY3JvbGxpbmdOb2RlQW5k
UHJvY2Vzc2luZ1N0ZXBzPiBtX2xhdGNoZWROb2RlQW5kU3RlcHM7CisgICAgT3B0aW9uYWw8T3B0
aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+PiBtX3Byb2Nlc3NpbmdTdGVwc0ZvckN1
cnJlbnRHZXN0dXJlOwogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0TGF0Y2hlZE5vZGVJbnRlcmF0
aW9uVGltZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IDI5ZjBkMjRhMzJlOWU5MjIwM2NmMDQ3
OWM4MzRlOWE3Y2ZjNjQ4ZjUuLjk0NDJmZWFjOTdlZDE2MzIxM2RkMzQ2ZGE2MWVjNmY0NjEyYTYw
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Ny
b2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtNjQsMjEgKzY0LDc5IEBAIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XCiAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQod2hlZWxF
dmVudCwgcHJvY2Vzc2luZ1N0ZXBzKTsKIH0KIAotYm9vbCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6
OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZUlEKQorYm9vbCBUaHJlYWRl
ZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZUlE
LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZykKIHsKLSAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFu
ZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCAiIDw8IHdoZWVsRXZlbnQgPDwgIiBub2RlICIg
PDwgdGFyZ2V0Tm9kZUlEKTsKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRU
aHJlYWQoKSk7CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRo
cmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCAiIDw8
IHdoZWVsRXZlbnQgPDwgIiBub2RlICIgPDwgdGFyZ2V0Tm9kZUlEIDw8ICIgZXZlbnRIYW5kbGlu
ZyAiIDw8IGV2ZW50SGFuZGxpbmcpOwogCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVlTXV0
ZXgpOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZGlzYWxsb3dMYXRjaGluZ1Njb3BlKG1fYWxs
b3dMYXRjaGluZywgZmFsc2UpOworICAgIGJvb2wgYWxsb3dMYXRjaGluZyA9IGZhbHNlOworICAg
IE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHM7Cisg
ICAgYm9vbCB0cmFuc2l0aW9uaW5nVG9Bc3luY0dlc3R1cmUgPSBbJl0geworICAgICAgICByZXR1
cm4gd2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpICYmICFldmVudEhhbmRsaW5nLmNvbnRhaW5z
QWxsKHsgRXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NLCBFdmVudEhhbmRsaW5nOjpEZWZh
dWx0UHJldmVudGVkIH0gKTsKKyAgICB9KCk7CisKKyAgICBpZiAodHJhbnNpdGlvbmluZ1RvQXN5
bmNHZXN0dXJlKSB7CisgICAgICAgIGFsbG93TGF0Y2hpbmcgPSB0cnVlOworICAgICAgICBwcm9j
ZXNzaW5nU3RlcHMgPSB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVh
ZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9N
RXZlbnREaXNwYXRjaCB9OworICAgIH0KKworICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93
TGF0Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGFsbG93TGF0Y2hpbmcpOwogICAgIFJlZlB0
cjxTY3JvbGxpbmdUcmVlTm9kZT4gdGFyZ2V0Tm9kZSA9IG5vZGVGb3JJRCh0YXJnZXROb2RlSUQp
OwotICAgIGF1dG8gcmVzdWx0ID0gaGFuZGxlV2hlZWxFdmVudFdpdGhOb2RlKHdoZWVsRXZlbnQs
IHsgfSwgdGFyZ2V0Tm9kZS5nZXQoKSwgRXZlbnRUYXJnZXRpbmc6Ok5vZGVPbmx5KTsKKyAgICBh
dXRvIHJlc3VsdCA9IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVlbEV2ZW50LCBwcm9jZXNz
aW5nU3RlcHMsIHRhcmdldE5vZGUuZ2V0KCksIEV2ZW50VGFyZ2V0aW5nOjpOb2RlT25seSk7CiAg
ICAgcmV0dXJuIHJlc3VsdC53YXNIYW5kbGVkOwogfQogCi12b2lkIFRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pCit2b2lkIFRocmVhZGVkU2Nyb2xs
aW5nVHJlZTo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBldmVudEhh
bmRsaW5nKQogewotICAgIC8vIEZJWE1FOiBTZXQgc3RhdGUgYmFzZWQgb24gRXZlbnRIYW5kbGlu
ZyBmbGFncy4KKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCAtIGhh
bmRsaW5nICIgPDwgZXZlbnRIYW5kbGluZyk7CisKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIAorICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZU11dGV4KTsKKyAgICBpZiAobV9y
ZWNlaXZlZEJlZ2FuRXZlbnRGcm9tTWFpblRocmVhZCB8fCAhd2hlZWxFdmVudC5pc0dlc3R1cmVT
dGFydCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZXZlbnRIYW5kbGluZy5jb250YWlu
cyhFdmVudEhhbmRsaW5nOjpEaXNwYXRjaGVkVG9ET00pKQorICAgICAgICBzZXRHZXN0dXJlUmVx
dWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2goZXZlbnRIYW5kbGluZy5jb250YWlucyhFdmVu
dEhhbmRsaW5nOjpEZWZhdWx0UHJldmVudGVkKSk7CisKKyAgICBtX3JlY2VpdmVkQmVnYW5FdmVu
dEZyb21NYWluVGhyZWFkID0gdHJ1ZTsKKyAgICBtX3dhaXRpbmdGb3JCZWdhbkV2ZW50Q29uZGl0
aW9uLm5vdGlmeU9uZSgpOworfQorCit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2lsbFNl
bmRFdmVudFRvTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKQoreworICAgIEFT
U0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpKTsKKworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fdHJlZU11dGV4KTsKKyAgICBtX3JlY2VpdmVkQmVnYW5FdmVudEZyb21NYWlu
VGhyZWFkID0gZmFsc2U7Cit9CisKK3ZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3YWl0Rm9y
RXZlbnRUb0JlUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKK3sKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJl
YWQoKSk7CisKKyAgICBpZiAoIXdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVlTXV0ZXgpOworCisgICAgc3Rh
dGljIGNvbnN0ZXhwciBhdXRvIG1heEFsbG93YWJsZU1haW5UaHJlYWREZWxheSA9IDUwX21zOwor
ICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgYXV0byB0aW1l
b3V0VGltZSA9IHN0YXJ0VGltZSArIG1heEFsbG93YWJsZU1haW5UaHJlYWREZWxheTsKKworICAg
IGJvb2wgcmVjZWl2ZWRFdmVudCA9IG1fd2FpdGluZ0ZvckJlZ2FuRXZlbnRDb25kaXRpb24ud2Fp
dFVudGlsKG1fdHJlZU11dGV4LCB0aW1lb3V0VGltZSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1f
cmVjZWl2ZWRCZWdhbkV2ZW50RnJvbU1haW5UaHJlYWQ7CisgICAgfSk7CisKKyAgICBpZiAoIXJl
Y2VpdmVkRXZlbnQpIHsKKyAgICAgICAgLy8gVGltZWQgb3V0LCBnbyBhc3luY2hyb25vdXMuCisg
ICAgICAgIHNldEdlc3R1cmVSZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaChmYWxzZSk7
CisgICAgfQorCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JCZWdhbkV2ZW50RnJvbU1haW5UaHJlYWQgZG9uZSAt
IHRpbWVkIG91dCAiIDw8ICFyZWNlaXZlZEV2ZW50IDw8ICIgcmVxdWlyZXMgc3luYyBkaXNwYXRj
aCAiIDw8IGdlc3R1cmVSZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCgpKTsKIH0KIAog
dm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmludmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAppbmRleCA1
ZjBhNzU1NDQyZmI0YTFiMDI5NmI0ZDViNWMwNDExMDRjM2Y0ZWFmLi4xYTJlOTE0NzAwOWM5MWFl
NDJmZWU3ZTU0YWIzMDU3OTliY2Q3ZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtNDcsOSArNDcsMTIgQEAg
cHVibGljOgogCiAgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM+KSBvdmVycmlkZTsKIAotICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIGJv
b2wgaGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmLCBTY3JvbGxpbmdOb2RlSUQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAgICAgdm9p
ZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHdpbGxTZW5kRXZlbnRUb01haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3YWl0Rm9yRXZlbnRUb0JlUHJvY2Vzc2Vk
QnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZpbmFsOworCiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3Bs
YXlEaWRSZWZyZXNoKFBsYXRmb3JtRGlzcGxheUlEKTsKQEAgLTg2LDcgKzg5LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgZGlzcGxheURpZFJlZnJlc2hPblNjcm9sbGluZ1RocmVhZCgpOwogICAg
IHZvaWQgd2FpdEZvclJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRpb25PclRpbWVvdXQoKTsKLSAgICAK
KwogICAgIGJvb2wgY2FuVXBkYXRlTGF5ZXJzT25TY3JvbGxpbmdUaHJlYWQoKSBjb25zdDsKIAog
ICAgIHZvaWQgc2NoZWR1bGVEZWxheWVkUmVuZGVyaW5nVXBkYXRlRGV0ZWN0aW9uVGltZXIoU2Vj
b25kcyk7CkBAIC0xMDQsNiArMTA3LDkgQEAgcHJpdmF0ZToKICAgICBTeW5jaHJvbml6YXRpb25T
dGF0ZSBtX3N0YXRlIHsgU3luY2hyb25pemF0aW9uU3RhdGU6OklkbGUgfTsKICAgICBDb25kaXRp
b24gbV9zdGF0ZUNvbmRpdGlvbjsKIAorICAgIGJvb2wgbV9yZWNlaXZlZEJlZ2FuRXZlbnRGcm9t
TWFpblRocmVhZCB7IGZhbHNlIH07CisgICAgQ29uZGl0aW9uIG1fd2FpdGluZ0ZvckJlZ2FuRXZl
bnRDb25kaXRpb247CisKICAgICAvLyBEeW5hbWljYWxseSBhbGxvY2F0ZWQgYmVjYXVzZSBpdCBo
YXMgdG8gdXNlIHRoZSBTY3JvbGxpbmdUaHJlYWQncyBydW5sb29wLgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSdW5Mb29wOjpUaW1lcjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+PiBtX2RlbGF5ZWRSZW5k
ZXJpbmdVcGRhdGVEZXRlY3Rpb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAppbmRleCBh
ZTZmNGU0ZTRkNGUzYzMzMDUyYmU5YjkyOTQ4YmQ3MWZiZmY1M2YwLi4yMWZlZGE5MWJiZTNlMzVl
YWQzMGQ2YjQ1YzY3NTJjZjFhMWZhYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApAQCAtNDEs
NyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpIGZp
bmFsOwogCiAgICAgLy8gSGFuZGxlIHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Nyb2xsaW5nIHRo
cmVhZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZCBvciBub3QuCi0gICAg
Ym9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYsIFNjcm9sbGluZ05vZGVJRCkgZmluYWw7CisgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCwgT3B0
aW9uU2V0PEV2ZW50SGFuZGxpbmc+KSBmaW5hbDsKICAgICB2b2lkIHdoZWVsRXZlbnRXYXNQcm9j
ZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2
ZW50SGFuZGxpbmc+KSBmaW5hbDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpp
bmRleCA0NzZmNGU2YmFhOGJjZDY3MDE2ZjFlNzJiYjhjZDRmOGE0NWUwYTEyLi4wMjdiMjQyOGU3
OGQyMDliM2EyYzU1YTdjNmMxN2U1M2JjYzI2YjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1t
CkBAIC03Myw0NCArNzMsMzcgQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6cGFnZURl
c3Ryb3llZCgpCiAgICAgfSk7CiB9CiAKLWJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6Omhh
bmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZUlEKQorYm9vbCBTY3JvbGxpbmdDb29y
ZGluYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCB0YXJnZXROb2RlLCBPcHRpb25T
ZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIEFTU0VSVChtX3BhZ2UpOwogCisgICAgUmVmUHRyPFRocmVhZGVkU2Nyb2xs
aW5nVHJlZT4gdGhyZWFkZWRTY3JvbGxpbmdUcmVlID0gZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxp
bmdUcmVlPihzY3JvbGxpbmdUcmVlKCkpOworICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hl
ZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3aGVlbEV2ZW50LCBldmVudEhhbmRsaW5n
KTsKKwogICAgIGlmIChzY3JvbGxpbmdUcmVlKCktPndpbGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdl
c3R1cmUod2hlZWxFdmVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6Omhh
bmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcgLSBzZW5kaW5nIGV2ZW50IHRvIHNjcm9sbGluZyB0
aHJlYWQsIG5vZGUgIiA8PCB0YXJnZXROb2RlSUQpOwotICAgIAotICAgIFJlZlB0cjxUaHJlYWRl
ZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVhZGVk
U2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKLSAgICBTY3JvbGxpbmdUaHJlYWQ6OmRp
c3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIHRhcmdldE5vZGVJRF0g
ewotICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPmhhbmRsZVdoZWVsRXZlbnRBZnRlck1h
aW5UaHJlYWQod2hlZWxFdmVudCwgdGFyZ2V0Tm9kZUlEKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0o
U2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVl
bEV2ZW50Rm9yU2Nyb2xsaW5nIC0gc2VuZGluZyBldmVudCB0byBzY3JvbGxpbmcgdGhyZWFkLCBu
b2RlICIgPDwgdGFyZ2V0Tm9kZSk7CisKKyAgICBpZiAobV9wYWdlICYmIG1fcGFnZS0+aXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoKSkKKyAgICAgICAgbV9wYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0
b3IoKS0+ZGVmZXJGb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0
b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4odGFyZ2V0Tm9kZSksIFdoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6UG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmcpOworCisgICAgU2Nyb2xs
aW5nVGhyZWFkOjpkaXNwYXRjaChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCB0
YXJnZXROb2RlLCBldmVudEhhbmRsaW5nXSB7CisgICAgICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJl
ZS0+aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCh3aGVlbEV2ZW50LCB0YXJnZXROb2Rl
LCBldmVudEhhbmRsaW5nKTsKKworICAgICAgICBpZiAodGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5p
c01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQorICAgICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdU
cmVlLT5yZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWlu
dGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlm
aWVyPih0YXJnZXROb2RlKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpQb3N0TWFpblRocmVhZFdo
ZWVsRXZlbnRIYW5kbGluZyk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRp
YyB1aW50NjRfdCBuZXh0RGVmZXJJZGVudGlmaWVyKCkKLXsKLSAgICBzdGF0aWMgdWludDY0X3Qg
ZGVmZXJJZGVudGlmaWVyOwotICAgIHJldHVybiArK2RlZmVySWRlbnRpZmllcjsKLX0KLQotdm9p
ZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxFdmVu
dEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmcpCit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Ojp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcp
CiB7Ci0gICAgdWludDY0X3QgZGVmZXJJZGVudGlmaWVyID0gMDsKLSAgICBpZiAobV9wYWdlICYm
IG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewotICAgICAgICBkZWZlcklkZW50
aWZpZXIgPSBuZXh0RGVmZXJJZGVudGlmaWVyKCk7Ci0gICAgICAgIG1fcGFnZS0+d2hlZWxFdmVu
dFRlc3RNb25pdG9yKCktPmRlZmVyRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KGRlZmVySWRlbnRpZmllciks
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZyk7Ci0gICAgfQor
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQgIiA8PCBldmVudEhh
bmRsaW5nKTsKIAogICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Ny
b2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJl
ZSgpKTsKLSAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1Ry
ZWUsIHdoZWVsRXZlbnQsIGRlZmF1bHRIYW5kbGluZywgZGVmZXJJZGVudGlmaWVyXSB7Ci0gICAg
ICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZCh3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcpOwotCi0gICAgICAgIGlmICh0aHJlYWRl
ZFNjcm9sbGluZ1RyZWUtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCi0gICAgICAgICAgICB0
aHJlYWRlZFNjcm9sbGluZ1RyZWUtPnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVy
cmFsRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxhYmxlQXJlYUlkZW50aWZpZXI+KGRlZmVySWRlbnRpZmllciksIFdoZWVsRXZlbnRUZXN0TW9u
aXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZyk7Ci0gICAgfSk7CisgICAgdGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLT53aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHdoZWVsRXZlbnQs
IGV2ZW50SGFuZGxpbmcpOwogfQogCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzY2hl
ZHVsZVRyZWVTdGF0ZUNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5jcHAKaW5kZXggYWQ0NzMyOWFlMGU1NGNiNGNkMTMwODM5YTJmZDgyZjMyYmQ2ODVmNi4u
ODAxNjZhNTIyMjg0NWE3MzRlOTA2YTNmM2M5YmFjYzk2ODU4MTcxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQg
U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZChjb25zdCBTY3JvbGxQb3NpdGlv
biYgcG9zaXRpb24pCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkubm90aWZ5Q29udGVudEFyZWFT
Y3JvbGxlZChzY3JvbGxQb3NpdGlvbigpIC0gb2xkUG9zaXRpb24pOwogfQogCi1ib29sIFNjcm9s
bGFibGVBcmVhOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCkKK2Jvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVdoZWVsRXZl
bnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRp
b25TZXQ8RXZlbnRIYW5kbGluZz4pCiB7CiAgICAgaWYgKCFpc1Njcm9sbGFibGVPclJ1YmJlcmJh
bmRhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oCmluZGV4IDQzODNiNzZjYWY3MDc0ODYwMWRhODUwYTcxNDc4ZDQzNTAx
MDExZDMuLjVhNzM4Yjg4NmQwZjIzMDAyOGViZTQ5NmU3ZTAwMzFjOTQwNDY5NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNDgsNiArNDgsOCBAQCBjbGFz
cyBTY3JvbGxBbmltYXRvcjsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBUaWxlZEJhY2tp
bmc7CiAKK2VudW0gY2xhc3MgRXZlbnRIYW5kbGluZyA6IHVpbnQ4X3Q7CisKIGlubGluZSBpbnQg
b2Zmc2V0Rm9yT3JpZW50YXRpb24oU2Nyb2xsT2Zmc2V0IG9mZnNldCwgU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24pCiB7CiAgICAgc3dpdGNoIChvcmllbnRhdGlvbikgewpAQCAtODIs
NyArODQsNyBAQCBwdWJsaWM6CiAgICAgLy8gZXhwZWN0IGl0IHRvIGhhcHBlbiBzb21ldGltZSBp
biB0aGUgZnV0dXJlLgogICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRh
dGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxUeXBlID0gU2Nyb2xsVHlwZTo6VXNlciwg
U2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgeyByZXR1cm4gZmFsc2U7
IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgYm9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAKICAgICBib29sIHVzZXNT
Y3JvbGxTbmFwKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGUxNTg0NTkwNGZiNmVmYWQ5YjBiMzAwYzdjYmIz
ZjczNDAyNDZmNjkuLjA0MmZhZTJkMDdlMzU2OTUzZjRiNGQzYTI1ODgzMzJkZDc3ZDg1MzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5t
bQpAQCAtMjYzLDYgKzI2Myw5IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgYm9vbCBoYW5k
bGVkID0gdHJ1ZTsKIAogICAgIGlmIChkZWx0YVggfHwgZGVsdGFZKSB7CisKKyAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICIgU2Nyb2xsQ29udHJvbGxlcjo6aGFu
ZGxlV2hlZWxFdmVudCgpIC0gc2hvdWxkU3RyZXRjaCAiIDw8IHNob3VsZFN0cmV0Y2ggPDwgIiBp
c1ZlcnRpY2FsbHlTdHJldGNoZWQgIiA8PCBpc1ZlcnRpY2FsbHlTdHJldGNoZWQgPDwgIiBtX2lu
U2Nyb2xsR2VzdHVyZSIgPDwgbV9pblNjcm9sbEdlc3R1cmUgPDwgIiBtX21vbWVudHVtU2Nyb2xs
SW5Qcm9ncmVzcyAiIDw8IG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzKTsKKwogICAgICAgICBp
ZiAoIShzaG91bGRTdHJldGNoIHx8IGlzVmVydGljYWxseVN0cmV0Y2hlZCB8fCBpc0hvcml6b250
YWxseVN0cmV0Y2hlZCkpIHsKICAgICAgICAgICAgIGlmIChkZWx0YVkpIHsKICAgICAgICAgICAg
ICAgICBkZWx0YVkgKj0gc2Nyb2xsV2hlZWxNdWx0aXBsaWVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA1MjQzZWExYzFiMDQzMTFmMmNiNDIyZWUyMWNl
YzI3ZmIzZDVmZGU4Li44ZWQ1MzJlODdkOWQ2ODFkMmM0ZWM5MGIxODEzZWMyODA4NGFjMzIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTMxNjUsNyArMzE2
NSw3IEBAIFNjcm9sbGluZ05vZGVJRCBSZW5kZXJMYXllcjo6c2Nyb2xsaW5nTm9kZUlEKCkgY29u
c3QKICAgICByZXR1cm4gYmFja2luZygpLT5zY3JvbGxpbmdOb2RlSURGb3JSb2xlKFNjcm9sbENv
b3JkaW5hdGlvblJvbGU6OlNjcm9sbGluZyk7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXI6OmhhbmRs
ZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2
ZW50KQorYm9vbCBSZW5kZXJMYXllcjo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5n
PiBldmVudEhhbmRsaW5nKQogewogICAgIGlmICghaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJs
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMTczLDExICszMTczLDExIEBAIGJvb2wg
UmVuZGVyTGF5ZXI6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAo
dXNlc0FzeW5jU2Nyb2xsaW5nKCkgJiYgc2Nyb2xsaW5nTm9kZUlEKCkpIHsKICAgICAgICAgaWYg
KGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZSgpLnNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkpCi0gICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmhhbmRsZVdoZWVs
RXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCwgc2Nyb2xsaW5nTm9kZUlEKCkpOworICAgICAg
ICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Ny
b2xsaW5nKHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpLCBldmVudEhhbmRsaW5nKTsKICAg
ICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aGFuZGxlV2hlZWxFdmVu
dEZvclNjcm9sbGluZyh3aGVlbEV2ZW50KTsKKyAgICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6Omhh
bmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCwgZXZlbnRIYW5kbGluZyk7CiB9
CiAKIEludFJlY3QgUmVuZGVyTGF5ZXI6OnZpc2libGVDb250ZW50UmVjdEludGVybmFsKFZpc2li
bGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xsYmFycyBzY3JvbGxiYXJJbmNsdXNpb24sIFZpc2li
bGVDb250ZW50UmVjdEJlaGF2aW9yKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAppbmRleCBhMTVkNTFiZmZmNWMzZGM4OWU0ZDAxN2I1OWIxY2ZjZjlmMzc2NTEwLi5h
YWVkMTUyZTFiZDEyNzE4N2RkZmI1OTlhYzFjZTgyNzdhMGU1YTg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDkzLDcgKzQ5Myw3IEBAIHB1YmxpYzoKICAgICBT
Y3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV92QmFy
LmdldCgpOyB9CiAgICAgU2Nyb2xsYWJsZUFyZWEqIGVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkg
Y29uc3QgZmluYWw7CiAKLSAgICBib29sIGhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWw7CisgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50
Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhh
bmRsaW5nPikgZmluYWw7CiAgICAgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlKCkg
ZmluYWw7CiAgICAgYm9vbCBoYXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZUFuY2VzdG9yKCkg
ZmluYWw7CiAgICAgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXgg
Njg4NDg5N2IyZjM3ZThjYWI2MzM4NDBlNmI5ZGExMDliODM5YmU2MC4uYjgzNmExNzAyMGIzNzgw
M2I1MjUyZjhmMWU5MDNlNjQyNGEwYjhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0yOTM4LDcgKzI5MzgsNyBAQCBib29s
IFBERlBsdWdpbjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkK
ICAgICBQREZEaXNwbGF5TW9kZSBkaXNwbGF5TW9kZSA9IFttX3BkZkxheWVyQ29udHJvbGxlciBk
aXNwbGF5TW9kZV07CiAKICAgICBpZiAoZGlzcGxheU1vZGUgPT0ga1BERkRpc3BsYXlTaW5nbGVQ
YWdlQ29udGludW91cyB8fCBkaXNwbGF5TW9kZSA9PSBrUERGRGlzcGxheVR3b1VwQ29udGludW91
cykKLSAgICAgICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Ny
b2xsaW5nKHBsYXRmb3JtKGV2ZW50KSk7CisgICAgICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6
aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhwbGF0Zm9ybShldmVudCksIHsgfSk7CiAKICAg
ICBOU1VJbnRlZ2VyIGN1cnJlbnRQYWdlSW5kZXggPSBbbV9wZGZMYXllckNvbnRyb2xsZXIgY3Vy
cmVudFBhZ2VJbmRleF07CiAgICAgYm9vbCBpbkZpcnN0UGFnZSA9ICFjdXJyZW50UGFnZUluZGV4
OwpAQCAtMjk3MSw3ICsyOTcxLDcgQEAgYm9vbCBQREZQbHVnaW46OmhhbmRsZVdoZWVsRXZlbnQo
Y29uc3QgV2ViV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IAotICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGlu
ZyhwbGF0Zm9ybShldmVudCkpOworICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aGFuZGxlV2hl
ZWxFdmVudEZvclNjcm9sbGluZyhwbGF0Zm9ybShldmVudCksIHsgfSk7CiB9CiAKIE5TRGF0YSAq
UERGUGx1Z2luOjpsaXZlRGF0YSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA3NTk4ZWNmYjRiNzI0OGUz
ZDY4ZjkyZTM0OWNhMzAyNmVlOTAxNGY0Li40OTA1MWNiNjU2NmZhNjY5Yzg3NDk1OTZjYWI1ZTE0
MmEyMzM3NmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTEzOCwxMiArMTM4LDE3IEBAIHZvaWQgRXZlbnREaXNw
YXRjaGVyOjp3aGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxF
dmVudCYgd2hlCiAgICAgICAgICAgICBzY3JvbGxpbmdUcmVlLT5zZXRNYWluRnJhbWVDYW5SdWJi
ZXJCYW5kKHsgY2FuUnViYmVyQmFuZEF0VG9wLCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgY2FuUnVi
YmVyQmFuZEF0Qm90dG9tLCBjYW5SdWJiZXJCYW5kQXRMZWZ0IH0pOwogCiAgICAgICAgIGF1dG8g
cHJvY2Vzc2luZ1N0ZXBzID0gc2Nyb2xsaW5nVHJlZS0+ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nl
c3NpbmcocGxhdGZvcm1XaGVlbEV2ZW50KTsKLSAgICAgICAgaWYgKCFwcm9jZXNzaW5nU3RlcHMu
Y29udGFpbnMoV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkKSkKLSAg
ICAgICAgICAgIHJldHVybiBwcm9jZXNzaW5nU3RlcHM7CiAKICAgICAgICAgc2Nyb2xsaW5nVHJl
ZS0+d2lsbFByb2Nlc3NXaGVlbEV2ZW50KCk7CiAKICAgICAgICAgU2Nyb2xsaW5nVGhyZWFkOjpk
aXNwYXRjaChbc2Nyb2xsaW5nVHJlZSwgd2hlZWxFdmVudCwgcGxhdGZvcm1XaGVlbEV2ZW50LCBw
cm9jZXNzaW5nU3RlcHMsIHBhZ2VJRCwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7
CisgICAgICAgICAgICBpZiAocHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcpKSB7CisgICAgICAgICAgICAgICAg
c2Nyb2xsaW5nVHJlZS0+d2lsbFNlbmRFdmVudFRvTWFpblRocmVhZChwbGF0Zm9ybVdoZWVsRXZl
bnQpOworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV2hlZWxFdmVudFZp
YU1haW5UaHJlYWQocGFnZUlELCB3aGVlbEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMpOworICAgICAg
ICAgICAgICAgIHNjcm9sbGluZ1RyZWUtPndhaXRGb3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5U
aHJlYWQocGxhdGZvcm1XaGVlbEV2ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIAogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdU
cmVlLT5oYW5kbGVXaGVlbEV2ZW50KHBsYXRmb3JtV2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBz
KTsKIAogICAgICAgICAgICAgaWYgKHJlc3VsdC5uZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkp
IHsKQEAgLTE1OSwxOCArMTY0LDE0IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAKICAgICAg
ICAgcmV0dXJuIHByb2Nlc3NpbmdTdGVwczsKICAgICB9KCk7Ci0KLSAgICBpZiAocHJvY2Vzc2lu
Z1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVh
ZCkpCi0gICAgICAgIHJldHVybjsKLQogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVy
QmFuZEF0TGVmdCk7CiAgICAgVU5VU0VEX1BBUkFNKGNhblJ1YmJlckJhbmRBdFJpZ2h0KTsKICAg
ICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0VG9wKTsKICAgICBVTlVTRURfUEFSQU0oY2Fu
UnViYmVyQmFuZEF0Qm90dG9tKTsKLSNlbmRpZgogCiAgICAgZGlzcGF0Y2hXaGVlbEV2ZW50Vmlh
TWFpblRocmVhZChwYWdlSUQsIHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CisjZW5kaWYK
IH0KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTNjMjkwMjc0OTgx
MmRmMjdlMTI5YzQwOTA0MmNmMDNhMmFmOThlYy4uZTI5NDIyZGU0NjkxNTk4MGM2YTMwY2ZjMTk1
MmI3NTExMTk1NTc4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTExLTEzICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZpcnN0
IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0cyBmb3IgZXZlbnQgY2FuY2VsYWJpbGl0eSBpbiBhIGdlc3R1
cmUuCisgICAgICAgIAorICAgICAgICAqIGZhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2
ZW50LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbC93aGVlbC1l
dmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTIwICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUG9vciByZXNhbXBsaW5n
IHF1YWxpdHkgd2hlbiB1c2luZyBBdWRpb0NvbnRleHQgc2FtcGxlUmF0ZSBwYXJhbWV0ZXIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50
LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwv
Zmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhj
Y2M0YjU4YWNhNTk2YjRjMjRjNDQ3Yjk0MWFhOTU4OTc5OGNmNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFi
bGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHByZXZlbnREZWZhdWx0IG9u
IHRoZSBmaXJzdCBldmVudCByZXN1bHRzIGluIHRoZSByZXN0IG9mIHRoZSBldmVudHMgYmVpbmcg
Y2FuY2VsYWJsZQorUEFTUyB3aW5kb3dTY3JvbGxFdmVudENvdW50IGlzIDAKK1BBU1MgZmlyc3RX
YXNDYW5jZWxhYmxlIGlzIHRydWUKK1BBU1MgZmlyc3RXYXNDYW5jZWxlZCBpcyB0cnVlCitQQVNT
IHNlY29uZFdhc0NhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyBzZWNvbmRXYXNDYW5jZWxlZCBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZl
bnQtY2FuY2VsYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qt
d2hlZWwtZXZlbnQtY2FuY2VsYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMDFkODc0NmQ3YTViOTkx
ZmYzNDQ3M2U5OGUwNGY2OTY0YjEyYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1jYW5jZWxhYmxlLmh0bWwKQEAgLTAs
MCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4K
KyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgI3RhcmdldCB7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
c2lsdmVyOworICAgICAgICAgICAgbWFyZ2luOiAyMHB4OworICAgICAgICB9CisgICAgPC9zdHls
ZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIGxldCB3aGVlbEV2ZW50Q291bnQgPSAwOworICAgICAgICBsZXQgd2lu
ZG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7CisKKyAgICAgICAgbGV0IGZpcnN0V2FzQ2FuY2VsYWJs
ZTsKKyAgICAgICAgbGV0IGZpcnN0V2FzQ2FuY2VsZWQ7CisgICAgICAgIGxldCBzZWNvbmRXYXND
YW5jZWxhYmxlOworICAgICAgICBsZXQgc2Vjb25kV2FzQ2FuY2VsZWQ7CisKKyAgICAgICAgYXN5
bmMgZnVuY3Rpb24gdGVzdFNjcm9sbCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgxMDAsIDEwMCk7CisgICAgICAgICAgICBzaG91bGRC
ZSgnd2luZG93U2Nyb2xsRXZlbnRDb3VudCcsICcwJyk7CisKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgnZmlyc3RXYXNDYW5jZWxhYmxlJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2Zp
cnN0V2FzQ2FuY2VsZWQnKTsKKworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdzZWNvbmRXYXND
YW5jZWxhYmxlJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3NlY29uZFdhc0NhbmNlbGVk
Jyk7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1
ZygnVGVzdHMgcHJldmVudERlZmF1bHQgb24gdGhlIGZpcnN0IGV2ZW50IHJlc3VsdHMgaW4gdGhl
IHJlc3Qgb2YgdGhlIGV2ZW50cyBiZWluZyBjYW5jZWxhYmxlJykKKyAgICAgICAgICAgIGxldCB0
YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAgICAgICAg
IHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIChldmVudCkgPT4geworICAgICAgICAg
ICAgICAgIGlmICghd2hlZWxFdmVudENvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0
V2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAgICAgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2Vs
ZWQgPSBldmVudC5kZWZhdWx0UHJldmVudGVkOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo
d2hlZWxFdmVudENvdW50ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgc2Vjb25kV2FzQ2Fu
Y2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgICAgIHNlY29uZFdhc0NhbmNlbGVkID0g
ZXZlbnQuZGVmYXVsdFByZXZlbnRlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgKyt3aGVlbEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHsKKyAgICAgICAgICAgICAgICAr
K3dpbmRvd1Njcm9sbEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAg
ICAgICAgIHNldFRpbWVvdXQodGVzdFNjcm9sbCwgMCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+
CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJl
Y29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NTRhMTE4ZGVkNGE1ZDZkN2FmNjA2MDdjNzA3NDU0ZjU0ZWNiOTA0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRz
LWJlY29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0
cyB0aGF0IGV2ZW50cyBpbiB0aGUgZ2VzdHVyZSBhcmUgbm9uLWNhbmNlbGFibGUgaWYgcHJldmVu
dERlZmF1bHQgd2FzIG5vdCBjYWxsZWQgb24gdGhlIGZpcnN0IGV2ZW50CitQQVNTIGZpcnN0V2Fz
Q2FuY2VsYWJsZSBpcyB0cnVlCitQQVNTIGJlY2FtZU5vbkNhbmNlbGFibGUgaXMgdHJ1ZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9u
LWNhbmNlbGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2
ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzM4YTQ2ZTcwYzAw
NzQxMmY0OWYwZWNkMjRhZDJhYjg0ODg1MjdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS5o
dG1sCkBAIC0wLDAgKzEsODEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgd2lkdGg6
IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDAwcHg7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgICAgICBtYXJnaW46IDIwcHg7CisgICAgICAgIH0K
KyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIganNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgbGV0IHdoZWVsRXZlbnRDb3VudCA9IDA7CisKKyAg
ICAgICAgbGV0IGZpcnN0V2FzQ2FuY2VsYWJsZTsKKyAgICAgICAgbGV0IGJlY2FtZU5vbkNhbmNl
bGFibGU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICghZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImJlZ2FuIiwgIm5v
bmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBl
ci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAibm9uZSIpOwor
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
LTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRl
cmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAiZW5k
ZWQiLCAibm9uZSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53
YWl0Rm9yU2Nyb2xsQ29tcGxldGlvbigpOworCisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2Zp
cnN0V2FzQ2FuY2VsYWJsZScpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdiZWNhbWVOb25D
YW5jZWxhYmxlJyk7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisK
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAg
ICAgICBkZWJ1ZygnVGVzdHMgdGhhdCBldmVudHMgaW4gdGhlIGdlc3R1cmUgYXJlIG5vbi1jYW5j
ZWxhYmxlIGlmIHByZXZlbnREZWZhdWx0IHdhcyBub3QgY2FsbGVkIG9uIHRoZSBmaXJzdCBldmVu
dCcpOworICAgICAgICAgICAgbGV0IHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
YXJnZXQnKTsKKworICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywg
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHdoZWVsRXZlbnRDb3VudCA9PSAwKSB7
CisgICAgICAgICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFi
bGU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2Fp
dCBmb3IgdGhlIGZpcnN0IG5vbi1jYW5jZWxhYmxlIGV2ZW50IGFuZCBjaGVjayB0aGF0IGFsbCBz
dWJzZXF1ZW50IGV2ZW50cyBhcmUgbm9uLWNhbmNlbGFibGUuCisgICAgICAgICAgICAgICAgICAg
IGlmIChiZWNhbWVOb25DYW5jZWxhYmxlICYmIGV2ZW50LmNhbmNlbGFibGUpCisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdTaG91bGQgbm90IHNlZSBjYW5jZWxhYmxlIGV2ZW50
IGFmdGVyIG5vbi1jYW5jZWxhYmxlIGV2ZW50JykKKworICAgICAgICAgICAgICAgICAgICBpZiAo
IWV2ZW50LmNhbmNlbGFibGUpCisgICAgICAgICAgICAgICAgICAgICAgICBiZWNhbWVOb25DYW5j
ZWxhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKyt3aGVl
bEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgc2V0VGltZW91dCh0
ZXN0U2Nyb2xsLCAwKTsKKyAgICAgICAgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvcnViYmVyYmFuZC1vdmVyZmxvdy1pbi13aGVlbC1yZWdp
b24tcm9vdC1qaWdnbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJi
ZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCmluZGV4IGNl
MzU5MDUxZjE5ZGU4YmVlMDI4YTVlNmIwMGY0YjM0NGVjYWJhY2EuLjI1MjdlMGYyOWMyZmE4NTlk
YzkzYTMyNTQ4NDQxM2Q1Y2JlNzE3NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2ds
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92
ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCkBAIC01MSwxMCArNTEsMTcg
QEAKIAogICAgICAgICAgICAgLy8gU2Nyb2xsIGRvd24gdG8gbGF0Y2gsIHRoZW4gdXAgdG8gcnVi
YmVyYmFuZC4KICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImJlZ2FuIiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAs
ICJjaGFuZ2VkIiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwgIm5vbmUiKTsK
LSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAxMiwgImNoYW5nZWQiLCAibm9uZSIpOwotICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDEyLCAiY2hhbmdl
ZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUo
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5v
bmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUs
ICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmlu
Z1VwZGF0ZSgpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIsICJub25lIik7CiAKICAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwo=
</data>
<flag name="commit-queue"
          id="431722"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414749</attachid>
            <date>2020-11-20 19:00:06 -0800</date>
            <delta_ts>2020-11-30 21:19:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201120190005.patch</filename>
            <type>text/plain</type>
            <size>62306</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBhZjFmN2I2NjBlZGVh
NDM3OGYwODQyMTg2NGQ1NWY2OTgwYzFkYS4uYTkyZWI4YTc0YmIxMWU5OTk3ZWU2YjcyM2Q0ZjFk
YjhkM2IxMzZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDIwLTExLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZp
cnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIGhhbmRsaW5nIGEgc2VxdWVuY2Ugb2Ygd2hlZWwgZXZl
bnRzIGluIGEgZ2VzdHVyZSBpbiBhIHJlZ2lvbiB3aXRoIG5vbi1wYXNzaXZlIHdoZWVsCisgICAg
ICAgIGV2ZW50IGhhbmRsZXJzLCBvbmx5IGFsbG93IHRoZSBmaXJzdCBldmVudCBpbiB0aGUgc2Vx
dWVuY2UgdG8gY2FsbCBwcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBzdWJzZXF1ZW50IGV2ZW50
cyBhcmUgbWFya2VkIGFzIG5vbi1jYW5jZWxhYmxlLCBzbyBwcmV2ZW50RGVmYXVsdCgpIHdpbGwg
aGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gZG8gYXN5bmMgc2Ny
b2xsaW5nIGV2ZW4gd2hpbGUgaW4gcmVnaW9ucyB3aXRoIGFjdGl2ZSB3aGVlbCBldmVudCBoYW5k
bGVycywKKyAgICAgICAgaWYgdGhvc2UgaGFuZGxlcnMgZG9uJ3QgY2FsbCBwcmV2ZW50RGVmYXVs
dCgpIG9uIHRoZSBmaXJzdCBldmVudC4gVGhpcyBtYXRjaGVzIEJsaW5rCisgICAgICAgIGJlaGF2
aW9yLgorCisgICAgICAgIFRvIGFjaGlldmUgdGhpcywgdHJhY2sgc29tZSBiaXRzIGluIEV2ZW50
SGFuZGxpbmcgdG8ga25vdyB3aGV0aGVyIHRoZSBldmVudCB3YXMgZGlzcGF0Y2hlZAorICAgICAg
ICB0byBzY3JpcHQsIGFuZCB3aGV0aGVyIGl0IHdhcyBjYW5jZWxlZC4gU2VuZCB0aGlzIGRhdGEg
YmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCB2aWEKKyAgICAgICAgd2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZCgpLCB3aGVyZSBpcyBzZXRzIGFuIE9wdGlvbmFsPGJvb2w+IG9u
IFNjcm9sbGluZ1RyZWUuIFRoaXMKKyAgICAgICAgZmxhZyBpcyBjb25zdWx0ZWQgYnkgU2Nyb2xs
aW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcoKSwgYW5kIGlmIHdlIGhhdmUg
cmVjZWl2ZWQKKyAgICAgICAgaXQsIGFuZCB0aGUgZXZlbnQgd2FzIG5vdCBjYW5jZWxlZCwgd2Ug
dXNlIE1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggd2hlbgorICAgICAg
ICBzZW5kaW5nIGV2ZW50cyB0byB0aGUgbWFpbiB0aHJlYWQuIFRoaXMgaXMgdXNlZCB0byBtYXJr
IHRoZSBldmVudCBhcyBub24tY2FuY2VsYWJsZSBpbgorICAgICAgICBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQoKS4KKworICAgICAgICBUaGUgc2Nyb2xsaW5nIHRocmVhZCB3YWl0cyBm
b3IgdGhlICJiZWdhbiIgZXZlbnQgdG8gY29tZSBiYWNrIGZyb20gdGhlIG1haW4gdGhyZWFkIGFm
dGVyIERPTQorICAgICAgICBkaXNwYXRjaGluZyBieSBibG9ja2luZyBvbiBhIGNvbmRpdGlvbiB2
YXJpYWJsZSBpbgorICAgICAgICBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JFdmVudFRv
QmVQcm9jZXNzZWRCeU1haW5UaHJlYWQoKS4gVGhpcyBjdXJyZW50bHkgaGFzIGEgNTBtcworICAg
ICAgICB0aW1lb3V0LCBhZnRlciB3aGljaCB0aGUgZ2VzdHVyZSB3aWxsIHByb2NlZWQgd2l0aCB1
bmNhbmNlbGFibGUgZXZlbnRzLgorCisgICAgICAgIEl0J3MgaW1wb3J0YW50IHRoYXQgdGhlICJi
ZWdhbiIgZXZlbnQgY29tZXMgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCBhZnRlciBtYWlu
IHRocmVhZAorICAgICAgICBwcm9jZXNzaW5nIChpZiBub3QgY2FuY2VsZWQpLCBiZWNhdXNlIHRo
aXMgZXZlbnQgbmVlZHMgdG8gdHJpZ2dlciBsYXRjaGluZyBhbmQgc2V0ICJpbgorICAgICAgICBn
ZXN0dXJlIiBzdGF0ZSBvbiB0aGUgU2Nyb2xsaW5nQ29udHJvbGxlcnMgb2Ygc2Nyb2xsaW5nIHRy
ZWUgbm9kZXMuCisKKyAgICAgICAgQWRkIGFub3RoZXIgUG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50
SGFuZGxpbmcgYml0IHRvIFdoZWVsRXZlbnRUZXN0TW9uaXRvciB0byB0cmFjayB0aGUKKyAgICAg
ICAgcG9zdC1tYWluLXRocmVhZCBwcm9wYWdhdGlvbiBvZiBldmVudHMgdG8gdGhlIHNjcm9sbGlu
ZyB0aHJlYWQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVs
LWV2ZW50LWNhbmNlbGFibGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2hlZWwv
d2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2Vs
YWJsZS5odG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpkaXNwYXRjaFdoZWVsRXZlbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6
CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxF
dmVudDo6V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50Lmg6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50V2FzUHJv
Y2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFu
ZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdo
ZWVsRXZlbnRJbnRlcm5hbCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Ondo
ZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBvaW50ZXJMb2NrQ29udHJvbGxlcjo6ZGlzcGF0Y2hMb2NrZWRXaGVl
bEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0
TW9uaXRvci5oOgorICAgICAgICAqIHBhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudCk6CisgICAgICAgICogcGFnZS9t
YWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3
aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdDb29yZGluYXRvcjo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6aGFuZGxlV2hlZWxFdmVu
dCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJv
Y2Vzc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldEdlc3R1cmVSZXF1aXJl
c1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0
OjpuZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFk
ZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2hlZWxFdmVudFdhc1Byb2Nlc3Nl
ZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnBl
cmZvcm1EZWZhdWx0V2hlZWxFdmVudEhhbmRsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Om5leHRE
ZWZlcklkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1FdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybVdoZWVsRXZlbnQuaDoKKwogMjAyMC0xMS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFBvb3IgcmVzYW1wbGluZyBxdWFsaXR5IHdoZW4gdXNpbmcgQXVk
aW9Db250ZXh0IHNhbXBsZVJhdGUgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM4NjVlNWI2MzQxMmJm
YzVmYThkMmUzNWVhMzg4NDdiOWIwZmFmOWIuLmYxZDhlZjJmMGEzNjkxMzJlNjM3MzU0YzAyODQw
MjE1MjYxYTg1MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMTEtMTMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSB0aGUgZmly
c3Qgd2hlZWwgZXZlbnQgaW4gYSBnZXN0dXJlIHNob3VsZCBiZSBjYW5jZWxhYmxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcxMjQ4OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCgpLCBhbGwg
d2hlZWwgZXZlbnRzIG5vdyBib3VuY2UgdGhyb3VnaCB0aGUgc2Nyb2xsaW5nCisgICAgICAgIHRo
cmVhZCwgZXZlbiB0aG9zZSBkZXN0aW5lZCBmb3IgbWFpbiB0aHJlYWQgc2Nyb2xsaW5nLiBUaGlz
IGFsbG93cyB0aGUgc2Nyb2xsaW5nIHRocmVhZAorICAgICAgICB0byB3YWl0IG9uIGEgY29uZGl0
aW9uIGZvciB0aGUgZXZlbnQgdG8gY29tZSBiYWNrIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHZp
YQorICAgICAgICBoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKCksIHNpbmNlIHdlIGhh
dmUgdG8ga25vdyB3aGV0aGVyIGNvbnRlbnQgY2FsbGVkCisgICAgICAgIHByZXZlbnREZWZhdWx0
KCkgb24gdGhlIGZpcnN0IGV2ZW50IGJlZm9yZSBzZW5kaW5nIHN1YnNlcXVlbnQgZXZlbnRzLgor
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hl
cjo6d2hlZWxFdmVudCk6CisKIDIwMjAtMTEtMjAgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBQZXJzaXN0IHBlbmRpbmcgYWQgY2xpY2tz
IGFuZCBhdHRyaWJ1dGlvbnMgc28gdGhleSBjYW4gc3Vydml2ZSBicm93c2VyIHJlc3RhcnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAppbmRleCBkNjFjN2Y2OTU0MTJhNTViMTY0NjMwZjdlZGNlOWNjZjNi
NTE4NzFlLi4wYjRjOWQ4ZGNiZTk2MDdhMmZkZmYwZDIyOGEwNGJiOTQ2ZDc1MDJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCkBAIC00MzcsNyArNDM3LDcgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRj
aFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBPcHRp
b24KIAogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAgIAotICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRWxlbWVudCAiIDw8ICp0aGlzIDw8ICIgZGlzcGF0Y2hX
aGVlbEV2ZW50OiBkZWZhdWx0UHJldmVudGVkICIgPDwgZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQo
KSA8PCAiIGRlZmF1bHRIYW5kbGVkICIgPDwgZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpOworICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRWxlbWVudCAiIDw8ICp0aGlz
IDw8ICIgZGlzcGF0Y2hXaGVlbEV2ZW50OiAoY2FuY2VsYWJsZSAiIDw8IGV2ZW50LT5jYW5jZWxh
YmxlKCkgPDwgIikgZGVmYXVsdFByZXZlbnRlZCAiIDw8IGV2ZW50LT5kZWZhdWx0UHJldmVudGVk
KCkgPDwgIiBkZWZhdWx0SGFuZGxlZCAiIDw8IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKTsKICAg
ICAKICAgICBpZiAoZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSkKICAgICAgICAgcHJvY2Vzc2lu
Zy5hZGQoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKaW5kZXggNjVlYjIwOWQ0ZDM3YTYzYWRhZTI5MzA1ZDJmZjQ3YTBlMjVk
YjE1ZC4uOTU4MmYzMmJjZjFhYmFiYmFmMDY5NWI5ZDg5YzAzMmQ1NmYzOWMyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyBib29s
IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVh
LCBjb25zdCBXaGVlCiAgICAgcmV0dXJuIGRpZEhhbmRsZVdoZWVsRXZlbnQ7CiB9CiAKLXN0YXRp
YyBib29sIGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5vZGUqIHN0
YXJ0Tm9kZSwgY29uc3QgV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgY29uc3QgRmxvYXRTaXplJiBm
aWx0ZXJlZFBsYXRmb3JtRGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyZWRWZWxvY2l0eSkK
K3N0YXRpYyBib29sIGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5v
ZGUqIHN0YXJ0Tm9kZSwgY29uc3QgV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgY29uc3QgRmxvYXRT
aXplJiBmaWx0ZXJlZFBsYXRmb3JtRGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyZWRWZWxv
Y2l0eSwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcpCiB7CiAgICAgYm9v
bCBzaG91bGRIYW5kbGVFdmVudCA9IHdoZWVsRXZlbnQuZGVsdGFYKCkgfHwgd2hlZWxFdmVudC5k
ZWx0YVkoKTsKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCkBAIC0zNDYsNyArMzQ2
LDcgQEAgc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlhdGVFbmNsb3NpbmdC
b3goTm9kZSogc3RhcnROb2RlLCBjb25zdCBXaGUKICAgICAgICAgICAgIGJvb2wgc2Nyb2xsaW5n
V2FzSGFuZGxlZDsKICAgICAgICAgICAgIGlmIChwbGF0Zm9ybUV2ZW50KSB7CiAgICAgICAgICAg
ICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFzQW5k
VmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZvcm1E
ZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7Ci0gICAgICAgICAgICAgICAgc2Nyb2xs
aW5nV2FzSGFuZGxlZCA9IGJveExheWVyLT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNv
cGllZEV2ZW50KTsKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdXYXNIYW5kbGVkID0gYm94TGF5
ZXItPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29waWVkRXZlbnQsIGV2ZW50SGFuZGxp
bmcpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nV2FzSGFu
ZGxlZCA9IGRpZFNjcm9sbEluU2Nyb2xsYWJsZUFyZWEoKmJveExheWVyLCB3aGVlbEV2ZW50KTsK
IApAQCAtMjc4MCwxNCArMjc4MCwxNCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6cmVjb3JkV2hlZWxF
dmVudEZvckRlbHRhRmlsdGVyKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbgogICAgICAg
ICBwYWdlLT53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+dXBkYXRlRnJvbURlbHRhKEZsb2F0U2l6
ZShldmVudC5kZWx0YVgoKSwgZXZlbnQuZGVsdGFZKCkpKTsKIH0KIAotYm9vbCBFdmVudEhhbmRs
ZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgZXZlbnQsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JikKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGV2ZW50LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYsIE9wdGlvblNldDxFdmVu
dEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJh
bWUobV9mcmFtZSk7CiAKICAgICAvLyBXZSBkbyBhbm90aGVyIGNoZWNrIG9uIHRoZSBmcmFtZSB2
aWV3IGJlY2F1c2UgdGhlIGV2ZW50IGhhbmRsZXIgY2FuIHJ1biBKUyB3aGljaCByZXN1bHRzIGlu
IHRoZSBmcmFtZSBnZXR0aW5nIGRlc3Ryb3llZC4KICAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2Zy
YW1lLnZpZXcoKTsKICAgICAKLSAgICBib29sIGRpZEhhbmRsZUV2ZW50ID0gdmlldyA/IHZpZXct
PmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoZXZlbnQpIDogZmFsc2U7CisgICAgYm9vbCBk
aWRIYW5kbGVFdmVudCA9IHZpZXcgPyB2aWV3LT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5n
KGV2ZW50LCBldmVudEhhbmRsaW5nKSA6IGZhbHNlOwogICAgIG1faXNIYW5kbGluZ1doZWVsRXZl
bnQgPSBmYWxzZTsKICAgICByZXR1cm4gZGlkSGFuZGxlRXZlbnQ7CiB9CkBAIC0yODY5LDYgKzI4
NjksNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBPcHRpb25TZXQ8VwogewogICAgIE9wdGlvblNldDxFdmVudEhh
bmRsaW5nPiBoYW5kbGluZzsKICAgICBib29sIGhhbmRsZWQgPSBoYW5kbGVXaGVlbEV2ZW50SW50
ZXJuYWwoZXZlbnQsIHByb2Nlc3NpbmdTdGVwcywgaGFuZGxpbmcpOworICAgIC8vIHdoZWVsRXZl
bnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoKSBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gY2FsbGVk
IHZpYSBwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZygpLCBidXQgdGhpcyBlbnN1cmVz
IHRoYXQgaXQncyBhbHdheXMgY2FsbGVkIGlmIHRoYXQgY29kZSBwYXRoIGRvZW5zJ3QgcnVuLgog
ICAgIHdoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoZXZlbnQsIGhhbmRsaW5nKTsK
ICAgICByZXR1cm4gaGFuZGxlZDsKIH0KQEAgLTI5NjUsNyArMjk2Niw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCwgT3B0CiAjZW5kaWYKICAgICBpZiAoYWxsb3dTY3JvbGxpbmcpIHsKICAgICAgICAg
Ly8gRklYTUU6IHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKCkgaXMgb25seSBjYWxsZWQg
Zm9yIEZyYW1lVmlldyBzY3JvbGxpbmcsIG5vdCBvdmVyZmxvdyBzY3JvbGxpbmcsIHdoaWNoIGlz
IGNvbmZ1c2luZy4KLSAgICAgICAgaGFuZGxlZEV2ZW50ID0gcHJvY2Vzc1doZWVsRXZlbnRGb3JT
Y3JvbGxpbmcoZXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKKyAgICAgICAgaGFuZGxlZEV2ZW50ID0g
cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoZXZlbnQsIHNjcm9sbGFibGVBcmVhLCBoYW5k
bGluZyk7CiAgICAgICAgIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChldmVudCwgc2Ny
b2xsYWJsZUFyZWEpOwogICAgIH0KIApAQCAtMzAwNyw2ICszMDA4LDEwIEBAIHZvaWQgRXZlbnRI
YW5kbGVyOjpkZWZhdWx0V2hlZWxFdmVudEhhbmRsZXIoTm9kZSogc3RhcnROb2RlLCBXaGVlbEV2
ZW50JiB3aGVlbEV2CiAgICAgICAgIGZpbHRlcmVkUGxhdGZvcm1EZWx0YS5zZXRIZWlnaHQocGxh
dGZvcm1XaGVlbEV2ZW50LT5kZWx0YVkoKSk7CiAgICAgfQogCisgICAgT3B0aW9uU2V0PEV2ZW50
SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcgPSB7IEV2ZW50SGFuZGxpbmc6OkRpc3BhdGNoZWRUb0RP
TSB9OworICAgIGlmICh3aGVlbEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQoKSkKKyAgICAgICAgZXZl
bnRIYW5kbGluZy5hZGQoRXZlbnRIYW5kbGluZzo6RGVmYXVsdFByZXZlbnRlZCk7CisKICNpZiBF
TkFCTEUoV0hFRUxfRVZFTlRfTEFUQ0hJTkcpCiAgICAgaWYgKG1fZnJhbWUucGFnZSgpLT53aGVl
bEV2ZW50RGVsdGFGaWx0ZXIoKS0+aXNGaWx0ZXJpbmdEZWx0YXMoKSkgewogICAgICAgICBmaWx0
ZXJlZFBsYXRmb3JtRGVsdGEgPSBtX2ZyYW1lLnBhZ2UoKS0+d2hlZWxFdmVudERlbHRhRmlsdGVy
KCktPmZpbHRlcmVkRGVsdGEoKTsKQEAgLTMwMjYsMTQgKzMwMzEsMTQgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OmRlZmF1bHRXaGVlbEV2ZW50SGFuZGxlcihOb2RlKiBzdGFydE5vZGUsIFdoZWVsRXZl
bnQmIHdoZWVsRXYKICAgICAgICAgYXV0byBwbGF0Zm9ybUV2ZW50ID0gd2hlZWxFdmVudC51bmRl
cmx5aW5nUGxhdGZvcm1FdmVudCgpOwogICAgICAgICBpZiAocGxhdGZvcm1FdmVudCkgewogICAg
ICAgICAgICAgYXV0byBjb3BpZWRFdmVudCA9IHBsYXRmb3JtRXZlbnQtPmNvcHlXaXRoRGVsdGFz
QW5kVmVsb2NpdHkoZmlsdGVyZWRQbGF0Zm9ybURlbHRhLndpZHRoKCksIGZpbHRlcmVkUGxhdGZv
cm1EZWx0YS5oZWlnaHQoKSwgZmlsdGVyZWRWZWxvY2l0eSk7Ci0gICAgICAgICAgICBpZiAobGF0
Y2hlZFNjcm9sbGVyLT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvcGllZEV2ZW50KSkK
KyAgICAgICAgICAgIGlmIChsYXRjaGVkU2Nyb2xsZXItPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3Jv
bGxpbmcoY29waWVkRXZlbnQsIGV2ZW50SGFuZGxpbmcpKQogICAgICAgICAgICAgICAgIHdoZWVs
RXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKGhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRl
RW5jbG9zaW5nQm94KHN0YXJ0Tm9kZSwgd2hlZWxFdmVudCwgZmlsdGVyZWRQbGF0Zm9ybURlbHRh
LCBmaWx0ZXJlZFZlbG9jaXR5KSkKKyAgICBpZiAoaGFuZGxlV2hlZWxFdmVudEluQXBwcm9wcmlh
dGVFbmNsb3NpbmdCb3goc3RhcnROb2RlLCB3aGVlbEV2ZW50LCBmaWx0ZXJlZFBsYXRmb3JtRGVs
dGEsIGZpbHRlcmVkVmVsb2NpdHksIGV2ZW50SGFuZGxpbmcpKQogICAgICAgICB3aGVlbEV2ZW50
LnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmlu
ZGV4IDkwYzc4N2I2N2UyZjNkYzI5ZDQ1ODhlZWJmNTg3ZmE5MzUxZGU5ZDkuLjliY2ViNGVkMzkw
Yjg4NGEyNWM4OGE5ZmY2OTYyMmU4ZTk0NWI5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaApAQCAtNDU5LDcgKzQ1OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXNzV2hlZWxFdmVu
dFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCYsIE9wdGlvblNldDxX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPik7CiAgICAgdm9pZCBkZXRlcm1pbmVXaGVlbEV2ZW50
VGFyZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFJlZlB0cjxFbGVtZW50PiYgZXZlbnRU
YXJnZXQsIFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiwgYm9vbCYgaXNPdmVyV2lkZ2V0KTsKICAg
ICB2b2lkIHJlY29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcihjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKTsKLSAgICBib29sIHByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+Jik7CisgICAg
Ym9vbCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYsIE9wdGlvblNldDxFdmVudEhhbmRs
aW5nPik7CiAgICAgdm9pZCBwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mKTsKICAgICBi
b29sIGNvbXBsZXRlV2lkZ2V0V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBj
b25zdCBXZWFrUHRyPFdpZGdldD4mLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMzA1OGQ5MWRlNjVhOWNjMzhkNTkwNjc5
MGFkMzJhN2M2NzgxODJmYi4uNzRmMzBlYWI3MGMxNGMzNTU1MjlhNzdjMWZjZGMxODMwYTEzYzZh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTA5OCw3ICs1MDk4LDcgQEAgdm9p
ZCBGcmFtZVZpZXc6OnJlbW92ZUNoaWxkKFdpZGdldCYgd2lkZ2V0KQogICAgIFNjcm9sbFZpZXc6
OnJlbW92ZUNoaWxkKHdpZGdldCk7CiB9CiAKLWJvb2wgRnJhbWVWaWV3OjpoYW5kbGVXaGVlbEV2
ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK2Jv
b2wgRnJhbWVWaWV3OjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFu
ZGxpbmcpCiB7CiAgICAgLy8gTm90ZSB0aGF0IHRvIGFsbG93IGZvciBydWJiZXItYmFuZCBvdmVy
LXNjcm9sbCBiZWhhdmlvciwgZXZlbiBub24tc2Nyb2xsYWJsZSB2aWV3cwogICAgIC8vIHNob3Vs
ZCBoYW5kbGUgd2hlZWwgZXZlbnRzLgpAQCAtNTEyOCwxMSArNTEyOCwxMSBAQCBib29sIEZyYW1l
Vmlldzo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbgogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgaWYgKGF1dG8g
c2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAg
ICAgICAgIGlmIChzY3JvbGxpbmdDb29yZGluYXRvci0+Y29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JG
cmFtZVZpZXcoKnRoaXMpKQotICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5hdG9y
LT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJ
RCgpKTsKKyAgICAgICAgICAgIHJldHVybiBzY3JvbGxpbmdDb29yZGluYXRvci0+aGFuZGxlV2hl
ZWxFdmVudEZvclNjcm9sbGluZyh3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQoKSwgZXZlbnRI
YW5kbGluZyk7CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6Omhh
bmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCk7CisgICAgcmV0dXJuIFNjcm9s
bGFibGVBcmVhOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHdoZWVsRXZlbnQsIGV2ZW50
SGFuZGxpbmcpOwogfQogCiBib29sIEZyYW1lVmlldzo6aXNWZXJ0aWNhbERvY3VtZW50KCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGIyMmZhNmNiODJmYmJlMjAwYTFjNzQyYWQw
MmY1M2ZkZGM1Y2RjMDAuLmNhMDA4ZjgxMTAxNjY0NTFmYzFlMmMwYzcxNWJjNzM3NWI2NDM5ZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNTY1LDcgKzU2NSw3IEBAIHB1YmxpYzoKICAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3IgcG9ydHMgdGhhdCBuZWVkIHRvIGhhbmRsZSB3
aGVlbCBldmVudHMgbWFudWFsbHkuCiAgICAgLy8gT24gTWFjIFdlYktpdDEgdGhlIHVuZGVybHlp
bmcgTlNTY3JvbGxWaWV3IGp1c3QgZG9lcyB0aGUgc2Nyb2xsaW5nLCBidXQgb24gbW9zdCBvdGhl
ciBwbGF0Zm9ybXMKICAgICAvLyB3ZSBuZWVkIHRoaXMgZnVuY3Rpb24gaW4gb3JkZXIgdG8gZG8g
dGhlIHNjcm9sbCBvdXJzZWx2ZXMuCi0gICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xs
aW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZpbmFsOworICAgIGJvb2wgaGFuZGxlV2hl
ZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8
RXZlbnRIYW5kbGluZz4pIGZpbmFsOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3Jv
bGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKaW5kZXggNjM3NzIwMjg2NjE4MWYwYzZk
ZGJkZTJhNzNlYzc4M2Y4NDg3YzcwYi4uYmVhZWRiZjJlZWQ0YzUzNGQ5MjM1NWI3M2RjNWEzOGRk
N2RjNTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1v
bml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9y
LmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24gcmVhc29uCiAgICAgc3dp
dGNoIChyZWFzb24pIHsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdX
aGVlbEV2ZW50OiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQiOyBicmVhazsKICAgICBjYXNl
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50T25NYWluVGhyZWFkOiB0
cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQgb24gbWFpbiB0aHJlYWQiOyBicmVhazsKLSAgICBj
YXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZzogdHMgPDwg
InJlcG9ydCBET00gZXZlbnQgaGFuZGxpbmciOyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6UG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmc6IHRzIDw8ICJwb3N0
LW1haW4gdGhyZWFkIGV2ZW50IGhhbmRsaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OlJ1YmJlcmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7
IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9n
cmVzczogdHMgPDwgInNjcm9sbC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5n
IHRocmVhZCBzeW5jIG5lZWRlZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxF
dmVudFRlc3RNb25pdG9yLmgKaW5kZXggOTIwNzdlOWQ1ZmFiMGVmOWZlMjZmMDU1MjU3MzcyOGMx
Yzc2NzVjZC4uNmQxYjEyNmExNzdmNmM4Yjk0YTgzOWYzNzZhZmRhZmY3NTU3YWJjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC00OCwxNCArNDgs
MTQgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUZXN0RGVmZXJy
YWxzKCk7CiAgICAgCiAgICAgZW51bSBEZWZlclJlYXNvbiB7Ci0gICAgICAgIEhhbmRsaW5nV2hl
ZWxFdmVudCAgICAgICAgICAgICAgPSAxIDw8IDAsCi0gICAgICAgIEhhbmRsaW5nV2hlZWxFdmVu
dE9uTWFpblRocmVhZCAgPSAxIDw8IDEsCi0gICAgICAgIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcg
ICAgICAgICAgPSAxIDw8IDIsCi0gICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAg
ICAgPSAxIDw8IDMsCi0gICAgICAgIFNjcm9sbFNuYXBJblByb2dyZXNzICAgICAgICAgICAgPSAx
IDw8IDQsCi0gICAgICAgIFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQgICAgICAgPSAxIDw8IDUs
Ci0gICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAgICAgICAgPSAxIDw8IDYsCi0gICAg
ICAgIFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uICAgICAgICAgPSAxIDw8IDcsCisgICAgICAgIEhh
bmRsaW5nV2hlZWxFdmVudCAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgICAgICBIYW5k
bGluZ1doZWVsRXZlbnRPbk1haW5UaHJlYWQgICAgICA9IDEgPDwgMSwKKyAgICAgICAgUG9zdE1h
aW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmcgICAgPSAxIDw8IDIsCisgICAgICAgIFJ1YmJlcmJh
bmRJblByb2dyZXNzICAgICAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICBTY3JvbGxTbmFw
SW5Qcm9ncmVzcyAgICAgICAgICAgICAgICA9IDEgPDwgNCwKKyAgICAgICAgU2Nyb2xsaW5nVGhy
ZWFkU3luY05lZWRlZCAgICAgICAgICAgPSAxIDw8IDUsCisgICAgICAgIENvbnRlbnRTY3JvbGxJ
blByb2dyZXNzICAgICAgICAgICAgID0gMSA8PCA2LAorICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQ
b3NpdGlvbiAgICAgICAgICAgICA9IDEgPDwgNywKICAgICB9OwogICAgIHR5cGVkZWYgY29uc3Qg
dm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggYWZkNzZkMjU2ZWQwY2Y0N2UzZWFiMzQ5OGU0MTc2
ZGI2OTcyNTBlNC4uNTFiYWIwZTE5MmY3YTU3Mjg0NDhkZDEzMTQ5ZTYzMzJkN2MwNWMyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtOTA0LDcgKzkw
NCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvcmRXaGVlbEV2ZW50Rm9yRGVsdGFGaWx0ZXIo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlCiAgICAgcGFnZS0+d2hlZWxFdmVudERlbHRh
RmlsdGVyKCktPnVwZGF0ZUZyb21EZWx0YShGbG9hdFNpemUod2hlZWxFdmVudC5kZWx0YVgoKSwg
d2hlZWxFdmVudC5kZWx0YVkoKSkpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1do
ZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYgc2Nyb2xsYWJsZUFyZWEpCitib29sIEV2
ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYgc2Ny
b2xsYWJsZUFyZWEsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQogewog
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJFdmVudEhhbmRs
ZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIC0g
c2Nyb2xsYWJsZUFyZWEgIiA8PCBWYWx1ZU9yTnVsbChzY3JvbGxhYmxlQXJlYS5nZXQoKSkgPDwg
IiB1c2UgbGF0Y2hlZCBlbGVtZW50ICIgPDwgd2hlZWxFdmVudC51c2VMYXRjaGVkRXZlbnRFbGVt
ZW50KCkpOwogCkBAIC05MzksNyArOTM5LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnByb2Nlc3NX
aGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWwKIAog
ICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8PCAiIHNlbmRp
bmcgdG8gdmlldyAiIDw8ICp2aWV3KTsKIAotICAgICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZl
bnQgPSB2aWV3LT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHdoZWVsRXZlbnQpOworICAg
ICAgICBib29sIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSB2aWV3LT5oYW5kbGVXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKHdoZWVsRXZlbnQsIGV2ZW50SGFuZGxpbmcpOwogICAgICAgICAvLyBJZiB0aGUg
cGxhdGZvcm0gd2lkZ2V0IGlzIGhhbmRsaW5nIHRoZSBldmVudCwgd2UgYWx3YXlzIHdhbnQgdG8g
cmV0dXJuIGZhbHNlLgogICAgICAgICBpZiAodmlldy0+cGxhdGZvcm1XaWRnZXQoKSkKICAgICAg
ICAgICAgIGRpZEhhbmRsZVdoZWVsRXZlbnQgPSBmYWxzZTsKQEAgLTk0OCw3ICs5NDgsNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbAogICAgICAgICByZXR1cm4gZGlkSGFuZGxlV2hlZWxFdmVu
dDsKICAgICB9CiAgICAgCi0gICAgYm9vbCBkaWRIYW5kbGVFdmVudCA9IHZpZXctPmhhbmRsZVdo
ZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCk7CisgICAgYm9vbCBkaWRIYW5kbGVFdmVu
dCA9IHZpZXctPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCwgZXZlbnRI
YW5kbGluZyk7CiAgICAgbV9pc0hhbmRsaW5nV2hlZWxFdmVudCA9IGZhbHNlOwogICAgIHJldHVy
biBkaWRIYW5kbGVFdmVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IGE1MDBlODJhOWJmM2E2ZTQyZjE3NjM2
OTNlMDQyYmIwOTIxMDY0MWYuLmU4NTYyODMwNGI5NzJjY2ZjMDdiYjBhNGQ2ZWYyMWU1YmNhNzY5
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGVzZSB2
aXJ0dWFsIGZ1bmN0aW9ucyBhcmUgY3VycmVudGx5IHVuaXF1ZSB0byB0aGUgdGhyZWFkZWQgc2Ny
b2xsaW5nIGFyY2hpdGVjdHVyZS4gCiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVTdGF0ZUlm
TmVlZGVkKCkgeyB9CiAgICAgdmlydHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0
ZShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IEludFBvaW50JiwgU2Nyb2xsVHlwZSA9IFNjcm9sbFR5
cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZv
clNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnRGb3JTY3Jv
bGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlELCBPcHRpb25T
ZXQ8RXZlbnRIYW5kbGluZz4pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHdo
ZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KSB7IH0KIAogICAgIC8vIENyZWF0ZSBhbiB1bnBh
cmVudGVkIG5vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCmluZGV4IDljODNjZjZmMTM0YzhjOGRlMzkzZDc5MmE0NjE3ZWU3NDI0YzFkNTAu
LmJiYmFhMjM1NmQ4N2VkMjYwOWIwMDUzMTRlNmZmZmE0YTA2ZTI0ZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC03Myw2ICs3Myw4
IEBAIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVlOjpk
ZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luCiAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3Jv
bGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50
UHJvY2Vzc2luZyAiIDw8IHdoZWVsRXZlbnQgPDwgIiBoYXZlIGxhdGNoZWQgbm9kZSAiIDw8IGxh
dGNoZWROb2RlQW5kU3RlcHMtPnNjcm9sbGluZ05vZGVJRCA8PCAiIHN0ZXBzICIgPDwgbGF0Y2hl
ZE5vZGVBbmRTdGVwcy0+cHJvY2Vzc2luZ1N0ZXBzKTsKICAgICAgICAgcmV0dXJuIGxhdGNoZWRO
b2RlQW5kU3RlcHMtPnByb2Nlc3NpbmdTdGVwczsKICAgICB9CisgICAgaWYgKHdoZWVsRXZlbnQu
aXNHZXN0dXJlQmVnaW4oKSB8fCB3aGVlbEV2ZW50LmlzTm9uR2VzdHVyZUV2ZW50KCkpCisgICAg
ICAgIG1fdHJlZVN0YXRlLnJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoID0gV1RGOjpu
dWxsb3B0OwogCiAgICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBbJl0oKSAtPiBPcHRpb25TZXQ8
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gewogICAgICAgICBpZiAoIW1fcm9vdE5vZGUpCkBA
IC05Niw4ICs5OCwxMiBAQCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gU2Ny
b2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbgogCiAjaWYgRU5BQkxFKFdI
RUVMX0VWRU5UX1JFR0lPTlMpCiAgICAgICAgIGF1dG8gZXZlbnRMaXN0ZW5lclR5cGVzID0gZXZl
bnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQocG9zaXRpb24pOwotICAgICAgICBpZiAoZXZl
bnRMaXN0ZW5lclR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNz
aXZlV2hlZWwpKQorICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRhaW5zKEV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpKSB7CisgICAgICAgICAgICBpZiAo
bV90cmVlU3RhdGUucmVxdWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2ggJiYgISptX3RyZWVT
dGF0ZS5yZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQsIFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlz
cGF0Y2ggfTsKKwogICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OworICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGV2ZW50TGlzdGVuZXJUeXBlcy5jb250YWlucyhFdmVudExpc3RlbmVyUmVnaW9uVHlw
ZTo6V2hlZWwpKQogICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFk
Rm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07CkBAIC00ODMsNiArNDg5LDE4IEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2ludCBw
b3NpdGlvbikKICAgICBtX3RyZWVTdGF0ZS5tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHBvc2l0
aW9uOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldEdlc3R1cmVSZXF1aXJlc1N5bmNocm9u
b3VzRXZlbnREaXNwYXRjaChib29sIHJlcXVpcmVzU3luY2hyb25vdXNEaXNwYXRjaCkKK3sKKyAg
ICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3RhdGVNdXRleCk7CisgICAgbV90cmVlU3RhdGUucmVx
dWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2ggPSByZXF1aXJlc1N5bmNocm9ub3VzRGlzcGF0
Y2g7Cit9CisKK09wdGlvbmFsPGJvb2w+IFNjcm9sbGluZ1RyZWU6Omdlc3R1cmVSZXF1aXJlc1N5
bmNocm9ub3VzRXZlbnREaXNwYXRjaCgpCit7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0
YXRlTXV0ZXgpOworICAgIHJldHVybiBtX3RyZWVTdGF0ZS5yZXF1aXJlc1N5bmNocm9ub3VzRXZl
bnREaXNwYXRjaDsKK30KKwogVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tp
bmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCBwKQog
ewogICAgIExvY2tIb2xkZXIgbG9jayhtX3RyZWVTdGF0ZU11dGV4KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBmMTNjNTMyODg4MTk4ODdl
MDhmZTQ2ZDhhYmIxNzMwZjZiYzk5NjA2Li4zODE0Nzc5ZTFlZjQzMmMzM2Q1NDFmNGVlOTRhNDQ1
MTU2NmI2YWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oCkBAIC0yMDUsNiArMjA1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2Nr
TGF5ZXJzRm9ySGl0VGVzdGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tMYXllcnNG
b3JIaXRUZXN0aW5nKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRFdmVudFRvTWFp
blRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
d2FpdEZvckV2ZW50VG9CZVByb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKSB7IH07CisKICAgICBMb2NrJiB0cmVlTXV0ZXgoKSB7IHJldHVybiBtX3RyZWVNdXRl
eDsgfQogCiAgICAgdm9pZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQs
IE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKQEAgLTI0MCw2ICsy
NDMsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgRmxvYXRQb2ludCBtYWluRnJhbWVTY3JvbGxQb3NpdGlv
bigpIGNvbnN0OwogICAgIHZvaWQgc2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2lu
dCk7CiAKKyAgICB2b2lkIHNldEdlc3R1cmVSZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRj
aChib29sKTsKKyAgICBPcHRpb25hbDxib29sPiBnZXN0dXJlUmVxdWlyZXNTeW5jaHJvbm91c0V2
ZW50RGlzcGF0Y2goKTsKKwogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVy
U2Vjb25kKCk7CiAKICAgICB2b2lkIGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwpAQCAt
MjgwLDYgKzI4Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIEZsb2F0UG9pbnQgbWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb247CiAgICAgICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCB7IDAgfTsK
ICAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQ7CisgICAg
ICAgIE9wdGlvbmFsPGJvb2w+IHJlcXVpcmVzU3luY2hyb25vdXNFdmVudERpc3BhdGNoOwogICAg
ICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlUnViYmVyQmFuZGlu
ZzsKICAgICAgICAgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2ZVNjcm9s
bFNuYXA7CiAgICAgICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVV
c2VyU2Nyb2xsczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAKaW5kZXggZDBlMDRm
Y2YzNzQxYzgxNGU4YTRjZDM5OWE4ODlhZmQ2ODcyY2NmNS4uMjMzZWMwYzY0ZGFiMjY5MTZjODBj
NTFkMjNjY2QyMjE5ODkzNDA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAK
QEAgLTQxLDE1ICs0MSwxOCBAQCBzdGF0aWMgY29uc3QgU2Vjb25kcyByZXNldExhdGNoZWRTdGF0
ZVRpbWVvdXQgeyAxMDBfbXMgfTsKIAogU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6
U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcigpID0gZGVmYXVsdDsKIAotdm9pZCBTY3Jv
bGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpyZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwcz4sIGJvb2wgYWxsb3dMYXRjaGluZykKK3ZvaWQgU2Nyb2xsaW5nVHJlZUxhdGNoaW5n
Q29udHJvbGxlcjo6cmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3Np
bmdTdGVwcywgYm9vbCBhbGxvd0xhdGNoaW5nKQogewogICAgIGlmICghYWxsb3dMYXRjaGluZykK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVkTm9kZU11
dGV4KTsKLSAgICBpZiAod2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpICYmIG1fbGF0Y2hlZE5v
ZGVBbmRTdGVwcyAmJiAhbGF0Y2hlZE5vZGVJc1JlbGV2YW50KCkpIHsKLSAgICAgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVMYXRjaGlu
Z0NvbnRyb2xsZXIgIiA8PCB0aGlzIDw8ICIgcmVjZWl2ZWRXaGVlbEV2ZW50IC0gIiA8PCAoTW9u
b3RvbmljVGltZTo6bm93KCkgLSBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lKS5taWxs
aXNlY29uZHMoKSA8PCAibXMgc2luY2UgbGFzdCBldmVudCwgY2xlYXJpbmcgbGF0Y2hlZCBub2Rl
Iik7Ci0gICAgICAgIG1fbGF0Y2hlZE5vZGVBbmRTdGVwcy5yZXNldCgpOworICAgIGlmICh3aGVl
bEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkgJiYgIWxhdGNoZWROb2RlSXNSZWxldmFudCgpKSB7Cisg
ICAgICAgIGlmIChtX2xhdGNoZWROb2RlQW5kU3RlcHMpIHsKKyAgICAgICAgICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdD
b250cm9sbGVyICIgPDwgdGhpcyA8PCAiIHJlY2VpdmVkV2hlZWxFdmVudCAtICIgPDwgKE1vbm90
b25pY1RpbWU6Om5vdygpIC0gbV9sYXN0TGF0Y2hlZE5vZGVJbnRlcmF0aW9uVGltZSkubWlsbGlz
ZWNvbmRzKCkgPDwgIm1zIHNpbmNlIGxhc3QgZXZlbnQsIGNsZWFyaW5nIGxhdGNoZWQgbm9kZSIp
OworICAgICAgICAgICAgbV9sYXRjaGVkTm9kZUFuZFN0ZXBzLnJlc2V0KCk7CisgICAgICAgIH0K
KyAgICAgICAgbV9wcm9jZXNzaW5nU3RlcHNGb3JDdXJyZW50R2VzdHVyZSA9IHByb2Nlc3NpbmdT
dGVwczsKICAgICB9CiB9CiAKQEAgLTk2LDkgKzk5LDI3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUxh
dGNoaW5nQ29udHJvbGxlcjo6bm9kZURpZEhhbmRsZUV2ZW50KFNjcm9sbGluZ05vZGVJRCBzY3Jv
bGxpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAod2hlZWxFdmVudC5kZWx0YSgp
LmlzWmVybygpIHx8ICF3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCisgICAgYXV0byBzaG91
bGRMYXRjaCA9IFsmXSgpIHsKKyAgICAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGEoKS5pc1plcm8o
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAod2hlZWxFdmVudC5p
c0dlc3R1cmVTdGFydCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYg
KCF3aGVlbEV2ZW50LmlzR2VzdHVyZUNvbnRpbnVhdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIGlmIChtX3Byb2Nlc3NpbmdTdGVwc0ZvckN1cnJlbnRHZXN0dXJl
LnZhbHVlT3IoT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHsgfSkuY29udGFp
bnMoV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZykgJiYg
cHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9s
bGluZ1RocmVhZCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfTsKKyAgICAKKyAgICBpZiAoIXNob3VsZExhdGNoKCkpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIG1fcHJvY2Vzc2luZ1N0ZXBzRm9yQ3VycmVudEdlc3R1cmUgPSBwcm9jZXNz
aW5nU3RlcHM7CisKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8
PCAiU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiBub2RlRGlk
SGFuZGxlRXZlbnQ6IGxhdGNoaW5nIHRvICIgPDwgc2Nyb2xsaW5nTm9kZUlEKTsKICAgICBtX2xh
dGNoZWROb2RlQW5kU3RlcHMgPSBTY3JvbGxpbmdOb2RlQW5kUHJvY2Vzc2luZ1N0ZXBzIHsgc2Ny
b2xsaW5nTm9kZUlELCBwcm9jZXNzaW5nU3RlcHMgfTsKICAgICBtX2xhc3RMYXRjaGVkTm9kZUlu
dGVyYXRpb25UaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250
cm9sbGVyLmgKaW5kZXggYmVlNTkzMTViNWQ2ZTNmMDVhNTk5ZmFjMGEzYjliMDg3NWUxNzA4YS4u
NjQxOGVhODg1NzM3MDllNjQxYTNjZjMxNzg4N2E5NjRjZTNjZWZlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRj
aGluZ0NvbnRyb2xsZXIuaApAQCAtNjQsNiArNjQsNyBAQCBwcml2YXRlOgogCiAgICAgbXV0YWJs
ZSBMb2NrIG1fbGF0Y2hlZE5vZGVNdXRleDsKICAgICBPcHRpb25hbDxTY3JvbGxpbmdOb2RlQW5k
UHJvY2Vzc2luZ1N0ZXBzPiBtX2xhdGNoZWROb2RlQW5kU3RlcHM7CisgICAgT3B0aW9uYWw8T3B0
aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+PiBtX3Byb2Nlc3NpbmdTdGVwc0ZvckN1
cnJlbnRHZXN0dXJlOwogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0TGF0Y2hlZE5vZGVJbnRlcmF0
aW9uVGltZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IDI5ZjBkMjRhMzJlOWU5MjIwM2NmMDQ3
OWM4MzRlOWE3Y2ZjNjQ4ZjUuLjk0NDJmZWFjOTdlZDE2MzIxM2RkMzQ2ZGE2MWVjNmY0NjEyYTYw
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Ny
b2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtNjQsMjEgKzY0LDc5IEBAIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XCiAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQod2hlZWxF
dmVudCwgcHJvY2Vzc2luZ1N0ZXBzKTsKIH0KIAotYm9vbCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6
OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZUlEKQorYm9vbCBUaHJlYWRl
ZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZUlE
LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZykKIHsKLSAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFu
ZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCAiIDw8IHdoZWVsRXZlbnQgPDwgIiBub2RlICIg
PDwgdGFyZ2V0Tm9kZUlEKTsKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRU
aHJlYWQoKSk7CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRo
cmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCAiIDw8
IHdoZWVsRXZlbnQgPDwgIiBub2RlICIgPDwgdGFyZ2V0Tm9kZUlEIDw8ICIgZXZlbnRIYW5kbGlu
ZyAiIDw8IGV2ZW50SGFuZGxpbmcpOwogCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVlTXV0
ZXgpOwogCi0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZGlzYWxsb3dMYXRjaGluZ1Njb3BlKG1fYWxs
b3dMYXRjaGluZywgZmFsc2UpOworICAgIGJvb2wgYWxsb3dMYXRjaGluZyA9IGZhbHNlOworICAg
IE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHM7Cisg
ICAgYm9vbCB0cmFuc2l0aW9uaW5nVG9Bc3luY0dlc3R1cmUgPSBbJl0geworICAgICAgICByZXR1
cm4gd2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpICYmICFldmVudEhhbmRsaW5nLmNvbnRhaW5z
QWxsKHsgRXZlbnRIYW5kbGluZzo6RGlzcGF0Y2hlZFRvRE9NLCBFdmVudEhhbmRsaW5nOjpEZWZh
dWx0UHJldmVudGVkIH0gKTsKKyAgICB9KCk7CisKKyAgICBpZiAodHJhbnNpdGlvbmluZ1RvQXN5
bmNHZXN0dXJlKSB7CisgICAgICAgIGFsbG93TGF0Y2hpbmcgPSB0cnVlOworICAgICAgICBwcm9j
ZXNzaW5nU3RlcHMgPSB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVh
ZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9N
RXZlbnREaXNwYXRjaCB9OworICAgIH0KKworICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93
TGF0Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGFsbG93TGF0Y2hpbmcpOwogICAgIFJlZlB0
cjxTY3JvbGxpbmdUcmVlTm9kZT4gdGFyZ2V0Tm9kZSA9IG5vZGVGb3JJRCh0YXJnZXROb2RlSUQp
OwotICAgIGF1dG8gcmVzdWx0ID0gaGFuZGxlV2hlZWxFdmVudFdpdGhOb2RlKHdoZWVsRXZlbnQs
IHsgfSwgdGFyZ2V0Tm9kZS5nZXQoKSwgRXZlbnRUYXJnZXRpbmc6Ok5vZGVPbmx5KTsKKyAgICBh
dXRvIHJlc3VsdCA9IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVlbEV2ZW50LCBwcm9jZXNz
aW5nU3RlcHMsIHRhcmdldE5vZGUuZ2V0KCksIEV2ZW50VGFyZ2V0aW5nOjpOb2RlT25seSk7CiAg
ICAgcmV0dXJuIHJlc3VsdC53YXNIYW5kbGVkOwogfQogCi12b2lkIFRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pCit2b2lkIFRocmVhZGVkU2Nyb2xs
aW5nVHJlZTo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBldmVudEhh
bmRsaW5nKQogewotICAgIC8vIEZJWE1FOiBTZXQgc3RhdGUgYmFzZWQgb24gRXZlbnRIYW5kbGlu
ZyBmbGFncy4KKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCAtIGhh
bmRsaW5nICIgPDwgZXZlbnRIYW5kbGluZyk7CisKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIAorICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZU11dGV4KTsKKyAgICBpZiAobV9y
ZWNlaXZlZEJlZ2FuRXZlbnRGcm9tTWFpblRocmVhZCB8fCAhd2hlZWxFdmVudC5pc0dlc3R1cmVT
dGFydCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZXZlbnRIYW5kbGluZy5jb250YWlu
cyhFdmVudEhhbmRsaW5nOjpEaXNwYXRjaGVkVG9ET00pKQorICAgICAgICBzZXRHZXN0dXJlUmVx
dWlyZXNTeW5jaHJvbm91c0V2ZW50RGlzcGF0Y2goZXZlbnRIYW5kbGluZy5jb250YWlucyhFdmVu
dEhhbmRsaW5nOjpEZWZhdWx0UHJldmVudGVkKSk7CisKKyAgICBtX3JlY2VpdmVkQmVnYW5FdmVu
dEZyb21NYWluVGhyZWFkID0gdHJ1ZTsKKyAgICBtX3dhaXRpbmdGb3JCZWdhbkV2ZW50Q29uZGl0
aW9uLm5vdGlmeU9uZSgpOworfQorCit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2lsbFNl
bmRFdmVudFRvTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKQoreworICAgIEFT
U0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpKTsKKworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fdHJlZU11dGV4KTsKKyAgICBtX3JlY2VpdmVkQmVnYW5FdmVudEZyb21NYWlu
VGhyZWFkID0gZmFsc2U7Cit9CisKK3ZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3YWl0Rm9y
RXZlbnRUb0JlUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKK3sKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJl
YWQoKSk7CisKKyAgICBpZiAoIXdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVlTXV0ZXgpOworCisgICAgc3Rh
dGljIGNvbnN0ZXhwciBhdXRvIG1heEFsbG93YWJsZU1haW5UaHJlYWREZWxheSA9IDUwX21zOwor
ICAgIGF1dG8gc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgYXV0byB0aW1l
b3V0VGltZSA9IHN0YXJ0VGltZSArIG1heEFsbG93YWJsZU1haW5UaHJlYWREZWxheTsKKworICAg
IGJvb2wgcmVjZWl2ZWRFdmVudCA9IG1fd2FpdGluZ0ZvckJlZ2FuRXZlbnRDb25kaXRpb24ud2Fp
dFVudGlsKG1fdHJlZU11dGV4LCB0aW1lb3V0VGltZSwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1f
cmVjZWl2ZWRCZWdhbkV2ZW50RnJvbU1haW5UaHJlYWQ7CisgICAgfSk7CisKKyAgICBpZiAoIXJl
Y2VpdmVkRXZlbnQpIHsKKyAgICAgICAgLy8gVGltZWQgb3V0LCBnbyBhc3luY2hyb25vdXMuCisg
ICAgICAgIHNldEdlc3R1cmVSZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaChmYWxzZSk7
CisgICAgfQorCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JCZWdhbkV2ZW50RnJvbU1haW5UaHJlYWQgZG9uZSAt
IHRpbWVkIG91dCAiIDw8ICFyZWNlaXZlZEV2ZW50IDw8ICIgcmVxdWlyZXMgc3luYyBkaXNwYXRj
aCAiIDw8IGdlc3R1cmVSZXF1aXJlc1N5bmNocm9ub3VzRXZlbnREaXNwYXRjaCgpKTsKIH0KIAog
dm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmludmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAppbmRleCA1
ZjBhNzU1NDQyZmI0YTFiMDI5NmI0ZDViNWMwNDExMDRjM2Y0ZWFmLi4xYTJlOTE0NzAwOWM5MWFl
NDJmZWU3ZTU0YWIzMDU3OTliY2Q3ZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtNDcsOSArNDcsMTIgQEAg
cHVibGljOgogCiAgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM+KSBvdmVycmlkZTsKIAotICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIGJv
b2wgaGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmLCBTY3JvbGxpbmdOb2RlSUQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAgICAgdm9p
ZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHdpbGxTZW5kRXZlbnRUb01haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3YWl0Rm9yRXZlbnRUb0JlUHJvY2Vzc2Vk
QnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZpbmFsOworCiAgICAgdm9p
ZCBpbnZhbGlkYXRlKCkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc3Bs
YXlEaWRSZWZyZXNoKFBsYXRmb3JtRGlzcGxheUlEKTsKQEAgLTg2LDcgKzg5LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgZGlzcGxheURpZFJlZnJlc2hPblNjcm9sbGluZ1RocmVhZCgpOwogICAg
IHZvaWQgd2FpdEZvclJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRpb25PclRpbWVvdXQoKTsKLSAgICAK
KwogICAgIGJvb2wgY2FuVXBkYXRlTGF5ZXJzT25TY3JvbGxpbmdUaHJlYWQoKSBjb25zdDsKIAog
ICAgIHZvaWQgc2NoZWR1bGVEZWxheWVkUmVuZGVyaW5nVXBkYXRlRGV0ZWN0aW9uVGltZXIoU2Vj
b25kcyk7CkBAIC0xMDQsNiArMTA3LDkgQEAgcHJpdmF0ZToKICAgICBTeW5jaHJvbml6YXRpb25T
dGF0ZSBtX3N0YXRlIHsgU3luY2hyb25pemF0aW9uU3RhdGU6OklkbGUgfTsKICAgICBDb25kaXRp
b24gbV9zdGF0ZUNvbmRpdGlvbjsKIAorICAgIGJvb2wgbV9yZWNlaXZlZEJlZ2FuRXZlbnRGcm9t
TWFpblRocmVhZCB7IGZhbHNlIH07CisgICAgQ29uZGl0aW9uIG1fd2FpdGluZ0ZvckJlZ2FuRXZl
bnRDb25kaXRpb247CisKICAgICAvLyBEeW5hbWljYWxseSBhbGxvY2F0ZWQgYmVjYXVzZSBpdCBo
YXMgdG8gdXNlIHRoZSBTY3JvbGxpbmdUaHJlYWQncyBydW5sb29wLgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSdW5Mb29wOjpUaW1lcjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+PiBtX2RlbGF5ZWRSZW5k
ZXJpbmdVcGRhdGVEZXRlY3Rpb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAppbmRleCBh
ZTZmNGU0ZTRkNGUzYzMzMDUyYmU5YjkyOTQ4YmQ3MWZiZmY1M2YwLi4yMWZlZGE5MWJiZTNlMzVl
YWQzMGQ2YjQ1YzY3NTJjZjFhMWZhYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApAQCAtNDEs
NyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpIGZp
bmFsOwogCiAgICAgLy8gSGFuZGxlIHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Nyb2xsaW5nIHRo
cmVhZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZCBvciBub3QuCi0gICAg
Ym9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYsIFNjcm9sbGluZ05vZGVJRCkgZmluYWw7CisgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCwgT3B0
aW9uU2V0PEV2ZW50SGFuZGxpbmc+KSBmaW5hbDsKICAgICB2b2lkIHdoZWVsRXZlbnRXYXNQcm9j
ZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2
ZW50SGFuZGxpbmc+KSBmaW5hbDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpp
bmRleCA0NzZmNGU2YmFhOGJjZDY3MDE2ZjFlNzJiYjhjZDRmOGE0NWUwYTEyLi4wMjdiMjQyOGU3
OGQyMDliM2EyYzU1YTdjNmMxN2U1M2JjYzI2YjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1t
CkBAIC03Myw0NCArNzMsMzcgQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6cGFnZURl
c3Ryb3llZCgpCiAgICAgfSk7CiB9CiAKLWJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6Omhh
bmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZUlEKQorYm9vbCBTY3JvbGxpbmdDb29y
ZGluYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCB0YXJnZXROb2RlLCBPcHRpb25T
ZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIEFTU0VSVChtX3BhZ2UpOwogCisgICAgUmVmUHRyPFRocmVhZGVkU2Nyb2xs
aW5nVHJlZT4gdGhyZWFkZWRTY3JvbGxpbmdUcmVlID0gZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxp
bmdUcmVlPihzY3JvbGxpbmdUcmVlKCkpOworICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hl
ZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3aGVlbEV2ZW50LCBldmVudEhhbmRsaW5n
KTsKKwogICAgIGlmIChzY3JvbGxpbmdUcmVlKCktPndpbGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdl
c3R1cmUod2hlZWxFdmVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6Omhh
bmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcgLSBzZW5kaW5nIGV2ZW50IHRvIHNjcm9sbGluZyB0
aHJlYWQsIG5vZGUgIiA8PCB0YXJnZXROb2RlSUQpOwotICAgIAotICAgIFJlZlB0cjxUaHJlYWRl
ZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVhZGVk
U2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKLSAgICBTY3JvbGxpbmdUaHJlYWQ6OmRp
c3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIHRhcmdldE5vZGVJRF0g
ewotICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPmhhbmRsZVdoZWVsRXZlbnRBZnRlck1h
aW5UaHJlYWQod2hlZWxFdmVudCwgdGFyZ2V0Tm9kZUlEKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0o
U2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVl
bEV2ZW50Rm9yU2Nyb2xsaW5nIC0gc2VuZGluZyBldmVudCB0byBzY3JvbGxpbmcgdGhyZWFkLCBu
b2RlICIgPDwgdGFyZ2V0Tm9kZSk7CisKKyAgICBpZiAobV9wYWdlICYmIG1fcGFnZS0+aXNNb25p
dG9yaW5nV2hlZWxFdmVudHMoKSkKKyAgICAgICAgbV9wYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0
b3IoKS0+ZGVmZXJGb3JSZWFzb24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0
b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4odGFyZ2V0Tm9kZSksIFdoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6UG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmcpOworCisgICAgU2Nyb2xs
aW5nVGhyZWFkOjpkaXNwYXRjaChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCB0
YXJnZXROb2RlLCBldmVudEhhbmRsaW5nXSB7CisgICAgICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJl
ZS0+aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCh3aGVlbEV2ZW50LCB0YXJnZXROb2Rl
LCBldmVudEhhbmRsaW5nKTsKKworICAgICAgICBpZiAodGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5p
c01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQorICAgICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdU
cmVlLT5yZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWlu
dGVycHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlm
aWVyPih0YXJnZXROb2RlKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpQb3N0TWFpblRocmVhZFdo
ZWVsRXZlbnRIYW5kbGluZyk7CiAgICAgfSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRp
YyB1aW50NjRfdCBuZXh0RGVmZXJJZGVudGlmaWVyKCkKLXsKLSAgICBzdGF0aWMgdWludDY0X3Qg
ZGVmZXJJZGVudGlmaWVyOwotICAgIHJldHVybiArK2RlZmVySWRlbnRpZmllcjsKLX0KLQotdm9p
ZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxFdmVu
dEhhbmRsaW5nPiBkZWZhdWx0SGFuZGxpbmcpCit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Ojp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcp
CiB7Ci0gICAgdWludDY0X3QgZGVmZXJJZGVudGlmaWVyID0gMDsKLSAgICBpZiAobV9wYWdlICYm
IG1fcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkgewotICAgICAgICBkZWZlcklkZW50
aWZpZXIgPSBuZXh0RGVmZXJJZGVudGlmaWVyKCk7Ci0gICAgICAgIG1fcGFnZS0+d2hlZWxFdmVu
dFRlc3RNb25pdG9yKCktPmRlZmVyRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVu
dFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KGRlZmVySWRlbnRpZmllciks
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZyk7Ci0gICAgfQor
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQgIiA8PCBldmVudEhh
bmRsaW5nKTsKIAogICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Ny
b2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJl
ZSgpKTsKLSAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1Ry
ZWUsIHdoZWVsRXZlbnQsIGRlZmF1bHRIYW5kbGluZywgZGVmZXJJZGVudGlmaWVyXSB7Ci0gICAg
ICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZCh3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcpOwotCi0gICAgICAgIGlmICh0aHJlYWRl
ZFNjcm9sbGluZ1RyZWUtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCi0gICAgICAgICAgICB0
aHJlYWRlZFNjcm9sbGluZ1RyZWUtPnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVy
cmFsRm9yUmVhc29uKHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxhYmxlQXJlYUlkZW50aWZpZXI+KGRlZmVySWRlbnRpZmllciksIFdoZWVsRXZlbnRUZXN0TW9u
aXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZyk7Ci0gICAgfSk7CisgICAgdGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLT53aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHdoZWVsRXZlbnQs
IGV2ZW50SGFuZGxpbmcpOwogfQogCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzY2hl
ZHVsZVRyZWVTdGF0ZUNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3Np
YS5jcHAKaW5kZXggYjgxMTVlODNjYzc4ZTRmN2Q5M2JiMjljOTA0MjZjZDlmN2UzMWU4My4uYjBh
Y2NhNWQwNGNkZmZmM2VhZmU1MDViODFkZjdiZDE0YzlmODk4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29z
aWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcApAQCAtNjksMjMgKzY5LDI1IEBAIHZvaWQgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpCiAgICAgbV9z
Y3JvbGxpbmdTdGF0ZVRyZWVDb21taXR0ZXJUaW1lci5zdG9wKCk7CiB9CiAKLWJvb2wgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdldE5v
ZGUpCitib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudEZv
clNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGlu
Z05vZGVJRCB0YXJnZXROb2RlLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGlu
ZykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3BhZ2UpOwog
ICAgIEFTU0VSVChzY3JvbGxpbmdUcmVlKCkpOwogCi0gICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNw
YXRjaChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlID0gbWFrZVJlZihkb3duY2FzdDxUaHJlYWRlZFNj
cm9sbGluZ1RyZWU+KCpzY3JvbGxpbmdUcmVlKCkpKSwgd2hlZWxFdmVudCwgdGFyZ2V0Tm9kZV0g
ewotICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPmhhbmRsZVdoZWVsRXZlbnRBZnRlck1h
aW5UaHJlYWQod2hlZWxFdmVudCwgdGFyZ2V0Tm9kZSk7CisgICAgUmVmUHRyPFRocmVhZGVkU2Ny
b2xsaW5nVHJlZT4gdGhyZWFkZWRTY3JvbGxpbmdUcmVlID0gZG93bmNhc3Q8VGhyZWFkZWRTY3Jv
bGxpbmdUcmVlPihzY3JvbGxpbmdUcmVlKCkpOworICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+
d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3aGVlbEV2ZW50LCBldmVudEhhbmRs
aW5nKTsKKworICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3RocmVhZGVkU2Nyb2xsaW5n
VHJlZSwgd2hlZWxFdmVudCwgdGFyZ2V0Tm9kZSwgZXZlbnRIYW5kbGluZ10geworICAgICAgICB0
aHJlYWRlZFNjcm9sbGluZ1RyZWUtPmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQod2hl
ZWxFdmVudCwgdGFyZ2V0Tm9kZSwgZXZlbnRIYW5kbGluZyk7CiAgICAgfSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjp3aGVlbEV2ZW50
V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxF
dmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGRlZmF1bHRIYW5kbGluZykKK3ZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhy
ZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PEV2ZW50
SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcpCiB7Ci0gICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRj
aChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlID0gbWFrZVJlZihkb3duY2FzdDxUaHJlYWRlZFNjcm9s
bGluZ1RyZWU+KCpzY3JvbGxpbmdUcmVlKCkpKSwgd2hlZWxFdmVudCwgZGVmYXVsdEhhbmRsaW5n
XSB7Ci0gICAgICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVudFdhc1Byb2Nlc3Nl
ZEJ5TWFpblRocmVhZCh3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcpOwotICAgIH0pOworICAg
IFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRv
d25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKKyAgICB0aHJl
YWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hl
ZWxFdmVudCwgZXZlbnRIYW5kbGluZyk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JO
aWNvc2lhOjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGlu
YXRvck5pY29zaWEuaAppbmRleCA0ZmExNzRlNTVlYTIzNmRkYWQ4YTdjM2I0MGEwNmZkNmExMzc1
ZWY2Li5iNWQzNGUxZWVmZmVkZmRlYWFmNmQyYThkNGI4YzE1ZWUxMjg2MWFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmgKQEAgLTcsNyArNyw3IEBACiAgKgogICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmVldmVudEhhbmRsaW5nCiAgKiAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwogICog
ICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkCiAgKiAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCkBAIC00NCw3ICs0NCw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgY29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKSBvdmVycmlkZTsK
IAotICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworICAgIGJvb2wgaGFuZGxlV2hl
ZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdO
b2RlSUQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikgb3ZlcnJpZGU7CiAgICAgdm9pZCB3aGVl
bEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYs
IE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggYWQ0NzMyOWFlMGU1NGNi
NGNkMTMwODM5YTJmZDgyZjMyYmQ2ODVmNi4uODAxNjZhNTIyMjg0NWE3MzRlOTA2YTNmM2M5YmFj
Yzk2ODU4MTcxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNw
cApAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFBvc2l0aW9u
Q2hhbmdlZChjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgICAgIHNjcm9sbEFu
aW1hdG9yKCkubm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChzY3JvbGxQb3NpdGlvbigpIC0gb2xk
UG9zaXRpb24pOwogfQogCi1ib29sIFNjcm9sbGFibGVBcmVhOjpoYW5kbGVXaGVlbEV2ZW50Rm9y
U2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK2Jvb2wgU2Ny
b2xsYWJsZUFyZWE6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pCiB7CiAgICAg
aWYgKCFpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDQzODNiNzZj
YWY3MDc0ODYwMWRhODUwYTcxNDc4ZDQzNTAxMDExZDMuLjVhNzM4Yjg4NmQwZjIzMDAyOGViZTQ5
NmU3ZTAwMzFjOTQwNDY5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaApAQCAtNDgsNiArNDgsOCBAQCBjbGFzcyBTY3JvbGxBbmltYXRvcjsKIGNsYXNzIEdyYXBo
aWNzTGF5ZXI7CiBjbGFzcyBUaWxlZEJhY2tpbmc7CiAKK2VudW0gY2xhc3MgRXZlbnRIYW5kbGlu
ZyA6IHVpbnQ4X3Q7CisKIGlubGluZSBpbnQgb2Zmc2V0Rm9yT3JpZW50YXRpb24oU2Nyb2xsT2Zm
c2V0IG9mZnNldCwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7CiAgICAgc3dp
dGNoIChvcmllbnRhdGlvbikgewpAQCAtODIsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgLy8gZXhw
ZWN0IGl0IHRvIGhhcHBlbiBzb21ldGltZSBpbiB0aGUgZnV0dXJlLgogICAgIHZpcnR1YWwgYm9v
bCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3Jv
bGxUeXBlID0gU2Nyb2xsVHlwZTo6VXNlciwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGlu
Zzo6Q2xhbXBlZCkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgYm9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgYm9vbCBoYW5kbGVXaGVlbEV2ZW50
Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhh
bmRsaW5nPik7CiAKICAgICBib29sIHVzZXNTY3JvbGxTbmFwKCkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGUx
NTg0NTkwNGZiNmVmYWQ5YjBiMzAwYzdjYmIzZjczNDAyNDZmNjkuLjA0MmZhZTJkMDdlMzU2OTUz
ZjRiNGQzYTI1ODgzMzJkZDc3ZDg1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMjYzLDYgKzI2Myw5IEBAIGJvb2wgU2Ny
b2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQpCiAgICAgYm9vbCBoYW5kbGVkID0gdHJ1ZTsKIAogICAgIGlmIChkZWx0YVgg
fHwgZGVsdGFZKSB7CisKKyAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFt
IDw8ICIgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudCgpIC0gc2hvdWxkU3RyZXRj
aCAiIDw8IHNob3VsZFN0cmV0Y2ggPDwgIiBpc1ZlcnRpY2FsbHlTdHJldGNoZWQgIiA8PCBpc1Zl
cnRpY2FsbHlTdHJldGNoZWQgPDwgIiBtX2luU2Nyb2xsR2VzdHVyZSIgPDwgbV9pblNjcm9sbEdl
c3R1cmUgPDwgIiBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAiIDw8IG1fbW9tZW50dW1TY3Jv
bGxJblByb2dyZXNzKTsKKwogICAgICAgICBpZiAoIShzaG91bGRTdHJldGNoIHx8IGlzVmVydGlj
YWxseVN0cmV0Y2hlZCB8fCBpc0hvcml6b250YWxseVN0cmV0Y2hlZCkpIHsKICAgICAgICAgICAg
IGlmIChkZWx0YVkpIHsKICAgICAgICAgICAgICAgICBkZWx0YVkgKj0gc2Nyb2xsV2hlZWxNdWx0
aXBsaWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA1
MjQzZWExYzFiMDQzMTFmMmNiNDIyZWUyMWNlYzI3ZmIzZDVmZGU4Li44ZWQ1MzJlODdkOWQ2ODFk
MmM0ZWM5MGIxODEzZWMyODA4NGFjMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKQEAgLTMxNjUsNyArMzE2NSw3IEBAIFNjcm9sbGluZ05vZGVJRCBSZW5kZXJM
YXllcjo6c2Nyb2xsaW5nTm9kZUlEKCkgY29uc3QKICAgICByZXR1cm4gYmFja2luZygpLT5zY3Jv
bGxpbmdOb2RlSURGb3JSb2xlKFNjcm9sbENvb3JkaW5hdGlvblJvbGU6OlNjcm9sbGluZyk7CiB9
CiAKLWJvb2wgUmVuZGVyTGF5ZXI6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorYm9vbCBSZW5kZXJMYXllcjo6aGFuZGxl
V2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPiBldmVudEhhbmRsaW5nKQogewogICAgIGlmICgh
aXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0zMTczLDExICszMTczLDExIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmhhbmRsZVdoZWVsRXZlbnRG
b3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2CiAjaWYgRU5BQkxF
KEFTWU5DX1NDUk9MTElORykKICAgICBpZiAodXNlc0FzeW5jU2Nyb2xsaW5nKCkgJiYgc2Nyb2xs
aW5nTm9kZUlEKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0g
cGFnZSgpLnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hlZWxFdmVudCwg
c2Nyb2xsaW5nTm9kZUlEKCkpOworICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yLT5oYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHdoZWVsRXZlbnQsIHNjcm9sbGluZ05v
ZGVJRCgpLCBldmVudEhhbmRsaW5nKTsKICAgICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBTY3Jv
bGxhYmxlQXJlYTo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyh3aGVlbEV2ZW50KTsKKyAg
ICByZXR1cm4gU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcod2hl
ZWxFdmVudCwgZXZlbnRIYW5kbGluZyk7CiB9CiAKIEludFJlY3QgUmVuZGVyTGF5ZXI6OnZpc2li
bGVDb250ZW50UmVjdEludGVybmFsKFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xsYmFy
cyBzY3JvbGxiYXJJbmNsdXNpb24sIFZpc2libGVDb250ZW50UmVjdEJlaGF2aW9yKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBhMTVkNTFiZmZmNWMzZGM4
OWU0ZDAxN2I1OWIxY2ZjZjlmMzc2NTEwLi5hYWVkMTUyZTFiZDEyNzE4N2RkZmI1OTlhYzFjZTgy
NzdhMGU1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDkz
LDcgKzQ5Myw3IEBAIHB1YmxpYzoKICAgICBTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV92QmFyLmdldCgpOyB9CiAgICAgU2Nyb2xsYWJsZUFyZWEq
IGVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QgZmluYWw7CiAKLSAgICBib29sIGhhbmRs
ZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWw7
CisgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikgZmluYWw7CiAgICAgYm9vbCBpc1Nj
cm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlKCkgZmluYWw7CiAgICAgYm9vbCBoYXNTY3JvbGxhYmxl
T3JSdWJiZXJiYW5kYWJsZUFuY2VzdG9yKCkgZmluYWw7CiAgICAgYm9vbCB1c2VEYXJrQXBwZWFy
YW5jZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggNjg4NDg5N2IyZjM3ZThjYWI2MzM4NDBlNmI5ZGEx
MDliODM5YmU2MC4uYjgzNmExNzAyMGIzNzgwM2I1MjUyZjhmMWU5MDNlNjQyNGEwYjhhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CkBAIC0yOTM4LDcgKzI5MzgsNyBAQCBib29sIFBERlBsdWdpbjo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKICAgICBQREZEaXNwbGF5TW9kZSBkaXNwbGF5TW9k
ZSA9IFttX3BkZkxheWVyQ29udHJvbGxlciBkaXNwbGF5TW9kZV07CiAKICAgICBpZiAoZGlzcGxh
eU1vZGUgPT0ga1BERkRpc3BsYXlTaW5nbGVQYWdlQ29udGludW91cyB8fCBkaXNwbGF5TW9kZSA9
PSBrUERGRGlzcGxheVR3b1VwQ29udGludW91cykKLSAgICAgICAgcmV0dXJuIFNjcm9sbGFibGVB
cmVhOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKHBsYXRmb3JtKGV2ZW50KSk7CisgICAg
ICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhw
bGF0Zm9ybShldmVudCksIHsgfSk7CiAKICAgICBOU1VJbnRlZ2VyIGN1cnJlbnRQYWdlSW5kZXgg
PSBbbV9wZGZMYXllckNvbnRyb2xsZXIgY3VycmVudFBhZ2VJbmRleF07CiAgICAgYm9vbCBpbkZp
cnN0UGFnZSA9ICFjdXJyZW50UGFnZUluZGV4OwpAQCAtMjk3MSw3ICsyOTcxLDcgQEAgYm9vbCBQ
REZQbHVnaW46OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgZXZlbnQpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBTY3JvbGxhYmxlQXJlYTo6
aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhwbGF0Zm9ybShldmVudCkpOworICAgIHJldHVy
biBTY3JvbGxhYmxlQXJlYTo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyhwbGF0Zm9ybShl
dmVudCksIHsgfSk7CiB9CiAKIE5TRGF0YSAqUERGUGx1Z2luOjpsaXZlRGF0YSgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmNwcAppbmRleCA3NTk4ZWNmYjRiNzI0OGUzZDY4ZjkyZTM0OWNhMzAyNmVlOTAxNGY0Li40OTA1
MWNiNjU2NmZhNjY5Yzg3NDk1OTZjYWI1ZTE0MmEyMzM3NmI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTEzOCwx
MiArMTM4LDE3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAgICAgICAgICAgICBzY3JvbGxp
bmdUcmVlLT5zZXRNYWluRnJhbWVDYW5SdWJiZXJCYW5kKHsgY2FuUnViYmVyQmFuZEF0VG9wLCBj
YW5SdWJiZXJCYW5kQXRSaWdodCwgY2FuUnViYmVyQmFuZEF0Qm90dG9tLCBjYW5SdWJiZXJCYW5k
QXRMZWZ0IH0pOwogCiAgICAgICAgIGF1dG8gcHJvY2Vzc2luZ1N0ZXBzID0gc2Nyb2xsaW5nVHJl
ZS0+ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcocGxhdGZvcm1XaGVlbEV2ZW50KTsKLSAg
ICAgICAgaWYgKCFwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwczo6U2Nyb2xsaW5nVGhyZWFkKSkKLSAgICAgICAgICAgIHJldHVybiBwcm9jZXNzaW5nU3Rl
cHM7CiAKICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+d2lsbFByb2Nlc3NXaGVlbEV2ZW50KCk7CiAK
ICAgICAgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChbc2Nyb2xsaW5nVHJlZSwgd2hlZWxF
dmVudCwgcGxhdGZvcm1XaGVlbEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMsIHBhZ2VJRCwgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgICAgICBpZiAocHJvY2Vzc2luZ1N0
ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3Jv
bGxpbmcpKSB7CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+d2lsbFNlbmRFdmVudFRv
TWFpblRocmVhZChwbGF0Zm9ybVdoZWVsRXZlbnQpOworICAgICAgICAgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPmRpc3BhdGNoV2hlZWxFdmVudFZpYU1haW5UaHJlYWQocGFnZUlELCB3aGVlbEV2ZW50
LCBwcm9jZXNzaW5nU3RlcHMpOworICAgICAgICAgICAgICAgIHNjcm9sbGluZ1RyZWUtPndhaXRG
b3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5UaHJlYWQocGxhdGZvcm1XaGVlbEV2ZW50KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIAogICAgICAgICAg
ICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdUcmVlLT5oYW5kbGVXaGVlbEV2ZW50KHBsYXRmb3Jt
V2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBzKTsKIAogICAgICAgICAgICAgaWYgKHJlc3VsdC5u
ZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkpIHsKQEAgLTE1OSwxOCArMTY0LDE0IEBAIHZvaWQg
RXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3Qg
V2ViV2hlZWxFdmVudCYgd2hlCiAKICAgICAgICAgcmV0dXJuIHByb2Nlc3NpbmdTdGVwczsKICAg
ICB9KCk7Ci0KLSAgICBpZiAocHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCkpCi0gICAgICAgIHJldHVybjsKLQogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0TGVmdCk7CiAgICAgVU5VU0VEX1BBUkFN
KGNhblJ1YmJlckJhbmRBdFJpZ2h0KTsKICAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0
VG9wKTsKICAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0Qm90dG9tKTsKLSNlbmRpZgog
CiAgICAgZGlzcGF0Y2hXaGVlbEV2ZW50VmlhTWFpblRocmVhZChwYWdlSUQsIHdoZWVsRXZlbnQs
IHByb2Nlc3NpbmdTdGVwcyk7CisjZW5kaWYKIH0KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9F
VkVOVFMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZTNjMjkwMjc0OTgxMmRmMjdlMTI5YzQwOTA0MmNmMDNhMmFmOThlYy4u
ZTI5NDIyZGU0NjkxNTk4MGM2YTMwY2ZjMTk1MmI3NTExMTk1NTc4MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDIwLTExLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91
bGQgYmUgY2FuY2VsYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBmb3IgZXZl
bnQgY2FuY2VsYWJpbGl0eSBpbiBhIGdlc3R1cmUuCisgICAgICAgIAorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1ldmVudC1jYW5j
ZWxhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2
ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLmh0
bWw6IEFkZGVkLgorCiAyMDIwLTExLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUG9vciByZXNhbXBsaW5nIHF1YWxpdHkgd2hlbiB1c2luZyBBdWRpb0NvbnRl
eHQgc2FtcGxlUmF0ZSBwYXJhbWV0ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3doZWVsL2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhjY2M0YjU4YWNhNTk2YjRjMjRjNDQ3Yjk0MWFhOTU4
OTc5OGNmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVs
L2ZpcnN0LXdoZWVsLWV2ZW50LWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAg
QEAKK1Rlc3RzIHByZXZlbnREZWZhdWx0IG9uIHRoZSBmaXJzdCBldmVudCByZXN1bHRzIGluIHRo
ZSByZXN0IG9mIHRoZSBldmVudHMgYmVpbmcgY2FuY2VsYWJsZQorUEFTUyB3aW5kb3dTY3JvbGxF
dmVudENvdW50IGlzIDAKK1BBU1MgZmlyc3RXYXNDYW5jZWxhYmxlIGlzIHRydWUKK1BBU1MgZmly
c3RXYXNDYW5jZWxlZCBpcyB0cnVlCitQQVNTIHNlY29uZFdhc0NhbmNlbGFibGUgaXMgdHJ1ZQor
UEFTUyBzZWNvbmRXYXNDYW5jZWxlZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2hlZWwvZmlyc3Qtd2hlZWwtZXZlbnQtY2FuY2VsYWJsZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNlMDFkODc0NmQ3YTViOTkxZmYzNDQ3M2U5OGUwNGY2OTY0YjEyYTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC9maXJzdC13aGVlbC1l
dmVudC1jYW5jZWxhYmxlLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBo
ZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgI3RhcmdldCB7Cisg
ICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAg
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICAgICAgbWFyZ2luOiAy
MHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgdmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGxldCB3aGVlbEV2ZW50
Q291bnQgPSAwOworICAgICAgICBsZXQgd2luZG93U2Nyb2xsRXZlbnRDb3VudCA9IDA7CisKKyAg
ICAgICAgbGV0IGZpcnN0V2FzQ2FuY2VsYWJsZTsKKyAgICAgICAgbGV0IGZpcnN0V2FzQ2FuY2Vs
ZWQ7CisgICAgICAgIGxldCBzZWNvbmRXYXNDYW5jZWxhYmxlOworICAgICAgICBsZXQgc2Vjb25k
V2FzQ2FuY2VsZWQ7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbCgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgxMDAs
IDEwMCk7CisgICAgICAgICAgICBzaG91bGRCZSgnd2luZG93U2Nyb2xsRXZlbnRDb3VudCcsICcw
Jyk7CisKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnZmlyc3RXYXNDYW5jZWxhYmxlJyk7Cisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ2ZpcnN0V2FzQ2FuY2VsZWQnKTsKKworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCdzZWNvbmRXYXNDYW5jZWxhYmxlJyk7CisgICAgICAgICAgICBzaG91
bGRCZVRydWUoJ3NlY29uZFdhc0NhbmNlbGVkJyk7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdHMgcHJldmVudERlZmF1bHQgb24gdGhl
IGZpcnN0IGV2ZW50IHJlc3VsdHMgaW4gdGhlIHJlc3Qgb2YgdGhlIGV2ZW50cyBiZWluZyBjYW5j
ZWxhYmxlJykKKyAgICAgICAgICAgIGxldCB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGFyZ2V0Jyk7CisKKyAgICAgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCd3aGVl
bCcsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGlmICghd2hlZWxFdmVudENvdW50KSB7
CisgICAgICAgICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFi
bGU7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAg
ICAgICAgICAgICAgIGZpcnN0V2FzQ2FuY2VsZWQgPSBldmVudC5kZWZhdWx0UHJldmVudGVkOwor
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2hlZWxFdmVudENvdW50ID09IDEpIHsKKyAgICAg
ICAgICAgICAgICAgICAgc2Vjb25kV2FzQ2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFibGU7Cisg
ICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAg
ICAgICAgIHNlY29uZFdhc0NhbmNlbGVkID0gZXZlbnQuZGVmYXVsdFByZXZlbnRlZDsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKyt3aGVlbEV2ZW50Q291bnQ7CisgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcs
ICgpID0+IHsKKyAgICAgICAgICAgICAgICArK3dpbmRvd1Njcm9sbEV2ZW50Q291bnQ7CisgICAg
ICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQodGVzdFNjcm9sbCwg
MCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5v
bi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTRhMTE4ZGVkNGE1ZDZkN2Fm
NjA2MDdjNzA3NDU0ZjU0ZWNiOTA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0cyB0aGF0IGV2ZW50cyBpbiB0aGUgZ2VzdHVyZSBh
cmUgbm9uLWNhbmNlbGFibGUgaWYgcHJldmVudERlZmF1bHQgd2FzIG5vdCBjYWxsZWQgb24gdGhl
IGZpcnN0IGV2ZW50CitQQVNTIGZpcnN0V2FzQ2FuY2VsYWJsZSBpcyB0cnVlCitQQVNTIGJlY2Ft
ZU5vbkNhbmNlbGFibGUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3do
ZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50cy1iZWNvbWUtbm9uLWNhbmNlbGFibGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYzM4YTQ2ZTcwYzAwNzQxMmY0OWYwZWNkMjRhZDJhYjg0ODg1MjdmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZl
bnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS5odG1sCkBAIC0wLDAgKzEsODEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAg
ICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICN0
YXJnZXQgeworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAx
MDAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgICAg
ICBtYXJnaW46IDIwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgbGV0
IHdoZWVsRXZlbnRDb3VudCA9IDA7CisKKyAgICAgICAgbGV0IGZpcnN0V2FzQ2FuY2VsYWJsZTsK
KyAgICAgICAgbGV0IGJlY2FtZU5vbkNhbmNlbGFibGU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rp
b24gdGVzdFNjcm9sbCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghZXZlbnRTZW5kZXIp
IHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxF
dmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVs
cGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7
CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtNSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVu
ZGVyaW5nVXBkYXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAg
ICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAi
Y2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdV
cGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAwLCAiZW5kZWQiLCAibm9uZSIpOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yU2Nyb2xsQ29tcGxldGlvbigpOworCisg
ICAgICAgICAgICBzaG91bGRCZVRydWUoJ2ZpcnN0V2FzQ2FuY2VsYWJsZScpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCdiZWNhbWVOb25DYW5jZWxhYmxlJyk7CisKKyAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdHMgdGhhdCBldmVudHMg
aW4gdGhlIGdlc3R1cmUgYXJlIG5vbi1jYW5jZWxhYmxlIGlmIHByZXZlbnREZWZhdWx0IHdhcyBu
b3QgY2FsbGVkIG9uIHRoZSBmaXJzdCBldmVudCcpOworICAgICAgICAgICAgbGV0IHRhcmdldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworICAgICAgICAgICAgdGFyZ2V0
LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAg
aWYgKHdoZWVsRXZlbnRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0V2Fz
Q2FuY2VsYWJsZSA9IGV2ZW50LmNhbmNlbGFibGU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIGZpcnN0IG5vbi1jYW5jZWxhYmxl
IGV2ZW50IGFuZCBjaGVjayB0aGF0IGFsbCBzdWJzZXF1ZW50IGV2ZW50cyBhcmUgbm9uLWNhbmNl
bGFibGUuCisgICAgICAgICAgICAgICAgICAgIGlmIChiZWNhbWVOb25DYW5jZWxhYmxlICYmIGV2
ZW50LmNhbmNlbGFibGUpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdTaG91
bGQgbm90IHNlZSBjYW5jZWxhYmxlIGV2ZW50IGFmdGVyIG5vbi1jYW5jZWxhYmxlIGV2ZW50JykK
KworICAgICAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LmNhbmNlbGFibGUpCisgICAgICAgICAg
ICAgICAgICAgICAgICBiZWNhbWVOb25DYW5jZWxhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgKyt3aGVlbEV2ZW50Q291bnQ7CisgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0U2Nyb2xsLCAwKTsKKyAgICAgICAgfSwgZmFs
c2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0idGFyZ2V0
Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvcnViYmVy
YmFuZC1vdmVyZmxvdy1pbi13aGVlbC1yZWdpb24tcm9vdC1qaWdnbGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lv
bi1yb290LWppZ2dsZS5odG1sCmluZGV4IGNlMzU5MDUxZjE5ZGU4YmVlMDI4YTVlNmIwMGY0YjM0
NGVjYWJhY2EuLjI1MjdlMGYyOWMyZmE4NTlkYzkzYTMyNTQ4NDQxM2Q1Y2JlNzE3NDkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93
LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1yb290LWpp
Z2dsZS5odG1sCkBAIC01MSwxMCArNTEsMTcgQEAKIAogICAgICAgICAgICAgLy8gU2Nyb2xsIGRv
d24gdG8gbGF0Y2gsIHRoZW4gdXAgdG8gcnViYmVyYmFuZC4KICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImJlZ2Fu
IiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKLSAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMTAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAxMiwgImNoYW5nZWQiLCAibm9u
ZSIpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDEyLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAi
bm9uZSIpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7Cisg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVs
cGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsK
KyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRl
cmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAg
ICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwogICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRl
ZCIsICJub25lIik7CiAKICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0
ZSgpOwo=
</data>
<flag name="commit-queue"
          id="431725"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415347</attachid>
            <date>2020-12-03 14:31:28 -0800</date>
            <delta_ts>2020-12-03 14:52:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201203143127.patch</filename>
            <type>text/plain</type>
            <size>32976</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2ZmRjYjdiYzQ1YTVh
ODZlYTE0MTUzY2I1ZjQ3NmQyN2YzOTY0ZS4uNjlmZjJlZDUwNWVkNDMyODA1NGI0ZTJhNDQ2ZWFj
YTQyMjM4N2MyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDIwLTEyLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZp
cnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXaGVuIGhhbmRsaW5nIGEgc2VxdWVuY2Ugb2Ygd2hlZWwgZXZl
bnRzIGluIGEgZ2VzdHVyZSBpbiBhIHJlZ2lvbiB3aXRoIG5vbi1wYXNzaXZlIHdoZWVsCisgICAg
ICAgIGV2ZW50IGhhbmRsZXJzLCBvbmx5IGFsbG93IHRoZSBmaXJzdCBldmVudCBpbiB0aGUgc2Vx
dWVuY2UgdG8gY2FsbCBwcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBzdWJzZXF1ZW50IGV2ZW50
cyBhcmUgbWFya2VkIGFzIG5vbi1jYW5jZWxhYmxlLCBzbyBwcmV2ZW50RGVmYXVsdCgpIHdpbGwg
aGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gZG8gYXN5bmMgc2Ny
b2xsaW5nIGV2ZW4gd2hpbGUgaW4gcmVnaW9ucyB3aXRoIGFjdGl2ZSB3aGVlbCBldmVudCBoYW5k
bGVycywKKyAgICAgICAgaWYgdGhvc2UgaGFuZGxlcnMgZG9uJ3QgY2FsbCBwcmV2ZW50RGVmYXVs
dCgpIG9uIHRoZSBmaXJzdCBldmVudC4gVGhpcyBtYXRjaGVzIEJsaW5rCisgICAgICAgIGJlaGF2
aW9yLgorCisgICAgICAgIFRvIGFjaGlldmUgdGhpcywgdHJhY2sgc29tZSBiaXRzIGluIEV2ZW50
SGFuZGxpbmcgdG8ga25vdyB3aGV0aGVyIHRoZSBldmVudCB3YXMgZGlzcGF0Y2hlZAorICAgICAg
ICB0byBzY3JpcHQsIGFuZCB3aGV0aGVyIGl0IHdhcyBjYW5jZWxlZC4gU2VuZCB0aGlzIGRhdGEg
YmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCB2aWEKKyAgICAgICAgd2hlZWxFdmVudFdhc1By
b2Nlc3NlZEJ5TWFpblRocmVhZCgpLCB3aGVyZSBpcyBzZXRzIGFuIE9wdGlvbmFsPGJvb2w+IG9u
IFNjcm9sbGluZ1RyZWUuIFRoaXMKKyAgICAgICAgZmxhZyBpcyBjb25zdWx0ZWQgYnkgU2Nyb2xs
aW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcoKSwgYW5kIGlmIHdlIGhhdmUg
cmVjZWl2ZWQKKyAgICAgICAgaXQsIGFuZCB0aGUgZXZlbnQgd2FzIG5vdCBjYW5jZWxlZCwgd2Ug
dXNlIE1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggd2hlbgorICAgICAg
ICBzZW5kaW5nIGV2ZW50cyB0byB0aGUgbWFpbiB0aHJlYWQuIFRoaXMgaXMgdXNlZCB0byBtYXJr
IHRoZSBldmVudCBhcyBub24tY2FuY2VsYWJsZSBpbgorICAgICAgICBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQoKS4KKworICAgICAgICBUaGUgc2Nyb2xsaW5nIHRocmVhZCB3YWl0cyBm
b3IgdGhlICJiZWdhbiIgZXZlbnQgdG8gY29tZSBiYWNrIGZyb20gdGhlIG1haW4gdGhyZWFkIGFm
dGVyIERPTQorICAgICAgICBkaXNwYXRjaGluZyBieSBibG9ja2luZyBvbiBhIGNvbmRpdGlvbiB2
YXJpYWJsZSBpbgorICAgICAgICBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JFdmVudFRv
QmVQcm9jZXNzZWRCeU1haW5UaHJlYWQoKS4gVGhpcyBjdXJyZW50bHkgaGFzIGEgNTBtcworICAg
ICAgICB0aW1lb3V0LCBhZnRlciB3aGljaCB0aGUgZ2VzdHVyZSB3aWxsIHByb2NlZWQgd2l0aCB1
bmNhbmNlbGFibGUgZXZlbnRzLgorCisgICAgICAgIEl0J3MgaW1wb3J0YW50IHRoYXQgdGhlICJi
ZWdhbiIgZXZlbnQgY29tZXMgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCBhZnRlciBtYWlu
IHRocmVhZAorICAgICAgICBwcm9jZXNzaW5nIChpZiBub3QgY2FuY2VsZWQpLCBiZWNhdXNlIHRo
aXMgZXZlbnQgbmVlZHMgdG8gdHJpZ2dlciBsYXRjaGluZyBhbmQgc2V0ICJpbgorICAgICAgICBn
ZXN0dXJlIiBzdGF0ZSBvbiB0aGUgU2Nyb2xsaW5nQ29udHJvbGxlcnMgb2Ygc2Nyb2xsaW5nIHRy
ZWUgbm9kZXMuCisKKyAgICAgICAgQWRkIGFub3RoZXIgUG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50
SGFuZGxpbmcgYml0IHRvIFdoZWVsRXZlbnRUZXN0TW9uaXRvciB0byB0cmFjayB0aGUKKyAgICAg
ICAgcG9zdC1tYWluLXRocmVhZCBwcm9wYWdhdGlvbiBvZiBldmVudHMgdG8gdGhlIHNjcm9sbGlu
ZyB0aHJlYWQuCisKKyAgICAgICAgVGVzdGVkIGJ5IGV4aXN0aW5nIHRlc3RzIGluIGZhc3QvZXZl
bnRzL3doZWVsLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFk
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudEluU2Ny
b2xsYWJsZUFyZWEpOgorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVu
dFRlc3RNb25pdG9yLmg6CisgICAgICAgICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9s
bGluZyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2lu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJlU3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Z2VzdHVyZVN0YXRlKToKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlOjp3aWxsU2VuZEV2ZW50VG9NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWU6OndhaXRGb3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6
cmVjZWl2ZWRXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRj
aGluZ0NvbnRyb2xsZXI6Om5vZGVEaWRIYW5kbGVFdmVudCk6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
aHJlYWRlZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3aGVlbEV2ZW50V2FzUHJv
Y2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6d2lsbFNlbmRFdmVudFRvTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5UaHJlYWQp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50
Rm9yU2Nyb2xsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Ojp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
Om5leHREZWZlcklkZW50aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5
TWFpblRocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQp
OgorCiAyMDIwLTEyLTAzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1lZGlhU2Vzc2lvbkhlbHBlcjo6c2V0U2hhcmVkSGVscGVyKCkgaGFuZ3Mgd2hlbiAibWVk
aWEgaW4gdGhlIEdQVSBwcm9jZXNzIiBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE1NTJkOTMzN2Nj
ODQyNTg1YjA4YjJiMzc4MjFlZDM0NmE5ODgwYjguLjI4ODFmOGRjYjJhYmE1MDY3MmNmYjA0NjFl
OWY1ODhlMTM2NWU2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTItMDMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSB0aGUg
Zmlyc3Qgd2hlZWwgZXZlbnQgaW4gYSBnZXN0dXJlIHNob3VsZCBiZSBjYW5jZWxhYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxMjQ4OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEluIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCgpLCBh
bGwgd2hlZWwgZXZlbnRzIG5vdyBib3VuY2UgdGhyb3VnaCB0aGUgc2Nyb2xsaW5nCisgICAgICAg
IHRocmVhZCwgZXZlbiB0aG9zZSBkZXN0aW5lZCBmb3IgbWFpbiB0aHJlYWQgc2Nyb2xsaW5nLiBU
aGlzIGFsbG93cyB0aGUgc2Nyb2xsaW5nIHRocmVhZAorICAgICAgICB0byB3YWl0IG9uIGEgY29u
ZGl0aW9uIGZvciB0aGUgZXZlbnQgdG8gY29tZSBiYWNrIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFk
IHZpYQorICAgICAgICBoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKCksIHNpbmNlIHdl
IGhhdmUgdG8ga25vdyB3aGV0aGVyIGNvbnRlbnQgY2FsbGVkCisgICAgICAgIHByZXZlbnREZWZh
dWx0KCkgb24gdGhlIGZpcnN0IGV2ZW50IGJlZm9yZSBzZW5kaW5nIHN1YnNlcXVlbnQgZXZlbnRz
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCk6CisKIDIwMjAtMTIt
MDMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgR1BV
IFByb2Nlc3M6IFNhbmRib3ggdmlvbGF0aW9ucyB1bmRlciBJT1N1cmZhY2U6Om1heGltdW1TaXpl
IGluIHRoZSBXZWIgQ29udGVudCBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggMDNmMGI5ZDY4MTJlYjkzNzY5NmY2MjRlZTc3MjVkODI0ZTBkZWEyMi4uMzJmZmNj
YWZjYWQyYTI2MzkxOWNmMTViZWEyYzAxNzZmMGFmZDg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMjcyMiw4ICsyNzIyLDE3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpw
cm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2
ZW50CiAgICAgcmV0dXJuIGRpZEhhbmRsZUV2ZW50OwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6
d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pCit2b2lkIEV2ZW50SGFuZGxlcjo6d2hlZWxF
dmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikKIHsKKyAgICB1cGRhdGVXaGVlbEdl
c3R1cmVTdGF0ZSh3aGVlbEV2ZW50LCBldmVudEhhbmRsaW5nKTsKKworI2lmIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS52aWV3KCk7CisgICAg
aWYgKGF1dG8gc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBtX2ZyYW1lLnBhZ2UoKS0+c2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKSkgeworICAgICAgICBpZiAoc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmNvb3Jk
aW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KCp2aWV3KSkKKyAgICAgICAgICAgIHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLT53aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHdoZWVsRXZl
bnQsIG1fd2hlZWxTY3JvbGxHZXN0dXJlU3RhdGUpOworICAgIH0KKyNlbmRpZgogfQogCiBib29s
IEV2ZW50SGFuZGxlcjo6cGxhdGZvcm1Db21wbGV0ZVBsYXRmb3JtV2lkZ2V0V2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXaWRnZXQmLCBjb25zdCBXZWFrUHRyPFNj
cm9sbGFibGVBcmVhPiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZl
bnRUZXN0TW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9u
aXRvci5jcHAKaW5kZXggZjY1MjUwZTlmNmNiMTVhYzI4MTBjZGQ3ZmYxYWM0NGI0ZWI2ODkxOS4u
M2ViZWExYTQxYjJhNDJkNGJmZWRkY2EyZTczMmMyZDhmYTM1MmY5ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBA
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoZWVsRXZlbnRUZXN0TW9u
aXRvcjo6RGVmZXJSZWFzb24gcmVhc29uCiAgICAgc3dpdGNoIChyZWFzb24pIHsKICAgICBjYXNl
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50OiB0cyA8PCAiaGFuZGxp
bmcgd2hlZWwgZXZlbnQiOyBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6
SGFuZGxpbmdXaGVlbEV2ZW50T25NYWluVGhyZWFkOiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZl
bnQgb24gbWFpbiB0aHJlYWQiOyBicmVhazsKLSAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRv
cjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZzogdHMgPDwgInJlcG9ydCBET00gZXZlbnQgaGFuZGxp
bmciOyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UG9zdE1haW5UaHJl
YWRXaGVlbEV2ZW50SGFuZGxpbmc6IHRzIDw8ICJwb3N0LW1haW4gdGhyZWFkIGV2ZW50IGhhbmRs
aW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJ1YmJlcmJhbmRJ
blByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxF
dmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9ncmVzczogdHMgPDwgInNjcm9sbC1zbmFw
cGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxpbmdU
aHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5nIHRocmVhZCBzeW5jIG5lZWRlZCI7IGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmgKaW5kZXgg
ZmY4ZDc3YzQ0NDFjNGYwMjczOGEyMzVjMTJhY2EzMWM4OWE0NWJhOS4uZWUxMmRlMmQyMTZmMTY2
ODViZGZkYWFlZWE2Y2JiZTQ1YjgwYmVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVs
RXZlbnRUZXN0TW9uaXRvci5oCkBAIC00OCwxNCArNDgsMTQgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUZXN0RGVmZXJyYWxzKCk7CiAgICAgCiAgICAgZW51bSBE
ZWZlclJlYXNvbiB7Ci0gICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudCAgICAgICAgICAgICAgPSAx
IDw8IDAsCi0gICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZCAgPSAxIDw8IDEs
Ci0gICAgICAgIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcgICAgICAgICAgPSAxIDw8IDIsCi0gICAg
ICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIFNj
cm9sbFNuYXBJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDQsCi0gICAgICAgIFNjcm9sbGlu
Z1RocmVhZFN5bmNOZWVkZWQgICAgICAgPSAxIDw8IDUsCi0gICAgICAgIENvbnRlbnRTY3JvbGxJ
blByb2dyZXNzICAgICAgICAgPSAxIDw8IDYsCi0gICAgICAgIFJlcXVlc3RlZFNjcm9sbFBvc2l0
aW9uICAgICAgICAgPSAxIDw8IDcsCisgICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudCAgICAgICAg
ICAgICAgICAgID0gMSA8PCAwLAorICAgICAgICBIYW5kbGluZ1doZWVsRXZlbnRPbk1haW5UaHJl
YWQgICAgICA9IDEgPDwgMSwKKyAgICAgICAgUG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxp
bmcgICAgPSAxIDw8IDIsCisgICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAgICAg
ICAgID0gMSA8PCAzLAorICAgICAgICBTY3JvbGxTbmFwSW5Qcm9ncmVzcyAgICAgICAgICAgICAg
ICA9IDEgPDwgNCwKKyAgICAgICAgU2Nyb2xsaW5nVGhyZWFkU3luY05lZWRlZCAgICAgICAgICAg
PSAxIDw8IDUsCisgICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAgICAgICAgICAgID0g
MSA8PCA2LAorICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiAgICAgICAgICAgICA9IDEg
PDwgNywKICAgICB9OwogICAgIHR5cGVkZWYgY29uc3Qgdm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVu
dGlmaWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRs
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5k
ZXggNGEwZWZlZDdjMmRlYzc5YjVmMzFlNWU3MTY4OTc4MmI3MTYxZTFjYi4uNzE0MTUzNjViYWJh
ZjVhOTQyM2EyOWY2MWI3ODJmZmUzMmI0OTMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtOTU0LDcgKzk1NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
Ojpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsCiAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8
ICIgIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcgcmV0dXJuaW5n
ICIgPDwgZGlkSGFuZGxlV2hlZWxFdmVudCk7CiAgICAgICAgIHJldHVybiBkaWRIYW5kbGVXaGVl
bEV2ZW50OwogICAgIH0KLSAgICAKKwogICAgIGJvb2wgZGlkSGFuZGxlRXZlbnQgPSBoYW5kbGVX
aGVlbEV2ZW50SW5TY3JvbGxhYmxlQXJlYSh3aGVlbEV2ZW50LCAqdmlldywgZXZlbnRIYW5kbGlu
Zyk7CiAgICAgbV9pc0hhbmRsaW5nV2hlZWxFdmVudCA9IGZhbHNlOwogICAgIHJldHVybiBkaWRI
YW5kbGVFdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKaW5kZXggZjMxZmYyMzU3YjA3YTc2MjI1NzViMzZlNjFlZTY1NGY0OWIzZjhiZS4u
YjIwNTUzMmIyMzM1OGIyOTliNTk5N2Q3NDcwZDgzYWE4ZTMwM2UyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTczLDYgKzczLDgg
QEAgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IFNjcm9sbGluZ1RyZWU6OmRl
dGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW4KICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9s
bExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQ
cm9jZXNzaW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIGhhdmUgbGF0Y2hlZCBub2RlICIgPDwgbGF0
Y2hlZE5vZGVBbmRTdGVwcy0+c2Nyb2xsaW5nTm9kZUlEIDw8ICIgc3RlcHMgIiA8PCBsYXRjaGVk
Tm9kZUFuZFN0ZXBzLT5wcm9jZXNzaW5nU3RlcHMpOwogICAgICAgICByZXR1cm4gbGF0Y2hlZE5v
ZGVBbmRTdGVwcy0+cHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0KKyAgICBpZiAod2hlZWxFdmVudC5p
c0dlc3R1cmVTdGFydCgpIHx8IHdoZWVsRXZlbnQuaXNOb25HZXN0dXJlRXZlbnQoKSkKKyAgICAg
ICAgbV90cmVlU3RhdGUuZ2VzdHVyZVN0YXRlID0gV1RGOjpudWxsb3B0OwogCiAgICAgYXV0byBw
cm9jZXNzaW5nU3RlcHMgPSBbJl0oKSAtPiBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwcz4gewogICAgICAgICBpZiAoIW1fcm9vdE5vZGUpCkBAIC05Niw4ICs5OCwxMiBAQCBPcHRp
b25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5l
V2hlZWxFdmVudFByb2Nlc3NpbgogCiAjaWYgRU5BQkxFKFdIRUVMX0VWRU5UX1JFR0lPTlMpCiAg
ICAgICAgIGF1dG8gZXZlbnRMaXN0ZW5lclR5cGVzID0gZXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVz
Rm9yUG9pbnQocG9zaXRpb24pOwotICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRh
aW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpKQorICAgICAgICBp
ZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpO
b25QYXNzaXZlV2hlZWwpKSB7CisgICAgICAgICAgICBpZiAobV90cmVlU3RhdGUuZ2VzdHVyZVN0
YXRlLnZhbHVlT3IoV2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU6OkJsb2NraW5nKSA9PSBXaGVlbFNj
cm9sbEdlc3R1cmVTdGF0ZTo6Tm9uQmxvY2tpbmcpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBXaGVlbEV2ZW50UHJv
Y2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH07
CisKICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5U
aHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRG
b3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChl
dmVudExpc3RlbmVyVHlwZXMuY29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6OldoZWVs
KSkKICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9s
bGluZ1RocmVhZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJs
b2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OwpAQCAtNDgyLDYgKzQ4OCwxOCBAQCB2b2lkIFNjcm9s
bGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQgcG9zaXRpb24p
CiAgICAgbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24gPSBwb3NpdGlvbjsKIH0K
IAordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJlU3RhdGUoT3B0aW9uYWw8V2hlZWxTY3Jv
bGxHZXN0dXJlU3RhdGU+IGdlc3R1cmVTdGF0ZSkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2sobV90
cmVlU3RhdGVNdXRleCk7CisgICAgbV90cmVlU3RhdGUuZ2VzdHVyZVN0YXRlID0gZ2VzdHVyZVN0
YXRlOworfQorCitPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4gU2Nyb2xsaW5nVHJl
ZTo6Z2VzdHVyZVN0YXRlKCkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3RhdGVNdXRl
eCk7CisgICAgcmV0dXJuIG1fdHJlZVN0YXRlLmdlc3R1cmVTdGF0ZTsKK30KKwogVHJhY2tpbmdU
eXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbVN0
cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCBwKQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX3Ry
ZWVTdGF0ZU11dGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaAppbmRleCBiMWU4MTQ3NjAwNTZlYzIxZDVhYzY3MGQ5YTdiMGU2YmVjMjgwOGMzLi44
NWRlMWVjNzY3MjQwNWFhODI1YzAyMmY4NjcwNDY5YTA1ZjE2YzlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0yMTAsNiArMjEwLDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkgeyB9CiAKKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbFNlbmRFdmVudFRvTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2FpdEZvckV2ZW50VG9CZVByb2Nlc3NlZEJ5
TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSB7IH07CisKICAgICBMb2NrJiB0
cmVlTXV0ZXgoKSB7IHJldHVybiBtX3RyZWVNdXRleDsgfQogCiAgICAgdm9pZCB3aW5kb3dTY3Jl
ZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQsIE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFs
RnJhbWVzUGVyU2Vjb25kKTsKQEAgLTI0NSw2ICsyNDgsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgRmxv
YXRQb2ludCBtYWluRnJhbWVTY3JvbGxQb3NpdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0TWFp
bkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2ludCk7CiAKKyAgICB2b2lkIHNldEdlc3R1cmVT
dGF0ZShPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4pOworICAgIE9wdGlvbmFsPFdo
ZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPiBnZXN0dXJlU3RhdGUoKTsKKwogICAgIE9wdGlvbmFsPHVu
c2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKCk7CiAKICAgICB2b2lkIGFwcGx5TGF5ZXJQ
b3NpdGlvbnNJbnRlcm5hbCgpOwpAQCAtMjg1LDYgKzI5MSw3IEBAIHByaXZhdGU6CiAgICAgICAg
IEZsb2F0UG9pbnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb247CiAgICAgICAgIFBsYXRmb3JtRGlz
cGxheUlEIGRpc3BsYXlJRCB7IDAgfTsKICAgICAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IG5vbWlu
YWxGcmFtZXNQZXJTZWNvbmQ7CisgICAgICAgIE9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0
YXRlPiBnZXN0dXJlU3RhdGU7CiAgICAgICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiBub2Rl
c1dpdGhBY3RpdmVSdWJiZXJCYW5kaW5nOwogICAgICAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJ
RD4gbm9kZXNXaXRoQWN0aXZlU2Nyb2xsU25hcDsKICAgICAgICAgSGFzaFNldDxTY3JvbGxpbmdO
b2RlSUQ+IG5vZGVzV2l0aEFjdGl2ZVVzZXJTY3JvbGxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250
cm9sbGVyLmNwcAppbmRleCBkMGUwNGZjZjM3NDFjODE0ZThhNGNkMzk5YTg4OWFmZDY4NzJjY2Y1
Li4yMzNlYzBjNjRkYWIyNjkxNmM4MGM1MWQyM2NjZDIyMTk4OTM0MDlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
TGF0Y2hpbmdDb250cm9sbGVyLmNwcApAQCAtNDEsMTUgKzQxLDE4IEBAIHN0YXRpYyBjb25zdCBT
ZWNvbmRzIHJlc2V0TGF0Y2hlZFN0YXRlVGltZW91dCB7IDEwMF9tcyB9OwogCiBTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyOjpTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyKCkg
PSBkZWZhdWx0OwogCi12b2lkIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OnJlY2Vp
dmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiwgYm9vbCBhbGxvd0xhdGNoaW5nKQordm9p
ZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpyZWNlaXZlZFdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8V2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBzLCBib29sIGFsbG93TGF0Y2hpbmcpCiB7CiAg
ICAgaWYgKCFhbGxvd0xhdGNoaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOwotICAgIGlmICh3aGVlbEV2ZW50LmlzR2VzdHVy
ZVN0YXJ0KCkgJiYgbV9sYXRjaGVkTm9kZUFuZFN0ZXBzICYmICFsYXRjaGVkTm9kZUlzUmVsZXZh
bnQoKSkgewotICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8
PCAiU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlciAiIDw8IHRoaXMgPDwgIiByZWNlaXZl
ZFdoZWVsRXZlbnQgLSAiIDw8IChNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fbGFzdExhdGNoZWRO
b2RlSW50ZXJhdGlvblRpbWUpLm1pbGxpc2Vjb25kcygpIDw8ICJtcyBzaW5jZSBsYXN0IGV2ZW50
LCBjbGVhcmluZyBsYXRjaGVkIG5vZGUiKTsKLSAgICAgICAgbV9sYXRjaGVkTm9kZUFuZFN0ZXBz
LnJlc2V0KCk7CisgICAgaWYgKHdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSAmJiAhbGF0Y2hl
ZE5vZGVJc1JlbGV2YW50KCkpIHsKKyAgICAgICAgaWYgKG1fbGF0Y2hlZE5vZGVBbmRTdGVwcykg
eworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwg
IlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIgIiA8PCB0aGlzIDw8ICIgcmVjZWl2ZWRX
aGVlbEV2ZW50IC0gIiA8PCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2xhc3RMYXRjaGVkTm9k
ZUludGVyYXRpb25UaW1lKS5taWxsaXNlY29uZHMoKSA8PCAibXMgc2luY2UgbGFzdCBldmVudCwg
Y2xlYXJpbmcgbGF0Y2hlZCBub2RlIik7CisgICAgICAgICAgICBtX2xhdGNoZWROb2RlQW5kU3Rl
cHMucmVzZXQoKTsKKyAgICAgICAgfQorICAgICAgICBtX3Byb2Nlc3NpbmdTdGVwc0ZvckN1cnJl
bnRHZXN0dXJlID0gcHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0KIH0KIApAQCAtOTYsOSArOTksMjcg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpub2RlRGlkSGFuZGxlRXZl
bnQoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmICh3aGVlbEV2ZW50LmRlbHRhKCkuaXNaZXJvKCkgfHwgIXdoZWVsRXZlbnQuaXNHZXN0dXJl
U3RhcnQoKSkKKyAgICBhdXRvIHNob3VsZExhdGNoID0gWyZdKCkgeworICAgICAgICBpZiAod2hl
ZWxFdmVudC5kZWx0YSgpLmlzWmVybygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIGlmICh3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgICAgICBpZiAoIXdoZWVsRXZlbnQuaXNHZXN0dXJlQ29udGludWF0aW9u
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG1fcHJvY2Vzc2lu
Z1N0ZXBzRm9yQ3VycmVudEdlc3R1cmUudmFsdWVPcihPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwcz4geyB9KS5jb250YWlucyhXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWlu
VGhyZWFkRm9yU2Nyb2xsaW5nKSAmJiBwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxFdmVu
dFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkKSkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIAorICAgIGlmICghc2hv
dWxkTGF0Y2goKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9wcm9jZXNzaW5nU3RlcHNGb3JD
dXJyZW50R2VzdHVyZSA9IHByb2Nlc3NpbmdTdGVwczsKKwogICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVy
ICIgPDwgdGhpcyA8PCAiIG5vZGVEaWRIYW5kbGVFdmVudDogbGF0Y2hpbmcgdG8gIiA8PCBzY3Jv
bGxpbmdOb2RlSUQpOwogICAgIG1fbGF0Y2hlZE5vZGVBbmRTdGVwcyA9IFNjcm9sbGluZ05vZGVB
bmRQcm9jZXNzaW5nU3RlcHMgeyBzY3JvbGxpbmdOb2RlSUQsIHByb2Nlc3NpbmdTdGVwcyB9Owog
ICAgIG1fbGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3co
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaAppbmRleCBiZWU1OTMxNWI1ZDZlM2YwNWE1
OTlmYWMwYTNiOWIwODc1ZTE3MDhhLi42NDE4ZWE4ODU3MzcwOWU2NDFhM2NmMzE3ODg3YTk2NGNl
M2NlZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5oCkBAIC02NCw2ICs2NCw3IEBA
IHByaXZhdGU6CiAKICAgICBtdXRhYmxlIExvY2sgbV9sYXRjaGVkTm9kZU11dGV4OwogICAgIE9w
dGlvbmFsPFNjcm9sbGluZ05vZGVBbmRQcm9jZXNzaW5nU3RlcHM+IG1fbGF0Y2hlZE5vZGVBbmRT
dGVwczsKKyAgICBPcHRpb25hbDxPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4+
IG1fcHJvY2Vzc2luZ1N0ZXBzRm9yQ3VycmVudEdlc3R1cmU7CiAgICAgTW9ub3RvbmljVGltZSBt
X2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXgg
NTk3ZTQ2NzcyZTk0MTdmNzIyYzZkYjkzYjNhZDExMDMxNDA4MGExZS4uODJlMDdiY2I4NTAwYjgx
OGJjMjQyNTk5MWU4OTA0YTdkMjFkM2Q1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC02NCwyMSArNjQs
NzQgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVcKICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZTo6
aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMpOwogfQogCi1ib29s
IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCB0YXJn
ZXROb2RlSUQsIE9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPikKK2Jvb2wgVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdldE5vZGVJ
RCwgT3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+IGdlc3R1cmVTdGF0ZSkKIHsKLSAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCAiIDw8IHdoZWVsRXZlbnQgPDwg
IiBub2RlICIgPDwgdGFyZ2V0Tm9kZUlEKTsKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjpp
c0N1cnJlbnRUaHJlYWQoKSk7CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJl
YW0gPDwgIlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRo
cmVhZCAiIDw8IHdoZWVsRXZlbnQgPDwgIiBub2RlICIgPDwgdGFyZ2V0Tm9kZUlEIDw8ICIgZ2Vz
dHVyZVN0YXRlICIgPDwgZ2VzdHVyZVN0YXRlKTsKIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
dHJlZU11dGV4KTsKIAotICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93TGF0Y2hpbmdTY29w
ZShtX2FsbG93TGF0Y2hpbmcsIGZhbHNlKTsKKyAgICBib29sIGFsbG93TGF0Y2hpbmcgPSBmYWxz
ZTsKKyAgICBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0
ZXBzOworICAgIGlmIChnZXN0dXJlU3RhdGUudmFsdWVPcihXaGVlbFNjcm9sbEdlc3R1cmVTdGF0
ZTo6QmxvY2tpbmcpID09IFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlOjpOb25CbG9ja2luZykgewor
ICAgICAgICBhbGxvd0xhdGNoaW5nID0gdHJ1ZTsKKyAgICAgICAgcHJvY2Vzc2luZ1N0ZXBzID0g
eyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQsIFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2gg
fTsKKyAgICB9CisKKyAgICBTZXRGb3JTY29wZTxib29sPiBkaXNhbGxvd0xhdGNoaW5nU2NvcGUo
bV9hbGxvd0xhdGNoaW5nLCBhbGxvd0xhdGNoaW5nKTsKICAgICBSZWZQdHI8U2Nyb2xsaW5nVHJl
ZU5vZGU+IHRhcmdldE5vZGUgPSBub2RlRm9ySUQodGFyZ2V0Tm9kZUlEKTsKLSAgICBhdXRvIHJl
c3VsdCA9IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVlbEV2ZW50LCB7IH0sIHRhcmdldE5v
ZGUuZ2V0KCksIEV2ZW50VGFyZ2V0aW5nOjpOb2RlT25seSk7CisgICAgYXV0byByZXN1bHQgPSBo
YW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUod2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCB0YXJn
ZXROb2RlLmdldCgpLCBFdmVudFRhcmdldGluZzo6Tm9kZU9ubHkpOwogICAgIHJldHVybiByZXN1
bHQud2FzSGFuZGxlZDsKIH0KIAotdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZl
bnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0
aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+KQordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4gZ2Vz
dHVyZVN0YXRlKQoreworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAi
VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFk
IC0gZ2VzdHVyZVN0YXRlICIgPDwgZ2VzdHVyZVN0YXRlKTsKKworICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVlTXV0ZXgpOworICAg
IGlmIChtX3JlY2VpdmVkQmVnYW5FdmVudEZyb21NYWluVGhyZWFkIHx8ICF3aGVlbEV2ZW50Lmlz
R2VzdHVyZVN0YXJ0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNldEdlc3R1cmVTdGF0ZShn
ZXN0dXJlU3RhdGUpOworCisgICAgbV9yZWNlaXZlZEJlZ2FuRXZlbnRGcm9tTWFpblRocmVhZCA9
IHRydWU7CisgICAgbV93YWl0aW5nRm9yQmVnYW5FdmVudENvbmRpdGlvbi5ub3RpZnlPbmUoKTsK
K30KKwordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndpbGxTZW5kRXZlbnRUb01haW5UaHJl
YWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikKK3sKKyAgICBBU1NFUlQoU2Nyb2xsaW5nVGhy
ZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7CisKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVN
dXRleCk7CisgICAgbV9yZWNlaXZlZEJlZ2FuRXZlbnRGcm9tTWFpblRocmVhZCA9IGZhbHNlOwor
fQorCit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2FpdEZvckV2ZW50VG9CZVByb2Nlc3Nl
ZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0g
ICAgLy8gRklYTUU6IFNldCBzdGF0ZSBiYXNlZCBvbiBFdmVudEhhbmRsaW5nIGZsYWdzLgorICAg
IEFTU0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpKTsKKworICAgIGlmICgh
d2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3RyZWVNdXRleCk7CisKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8g
bWF4QWxsb3dhYmxlTWFpblRocmVhZERlbGF5ID0gNTBfbXM7CisgICAgYXV0byBzdGFydFRpbWUg
PSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBhdXRvIHRpbWVvdXRUaW1lID0gc3RhcnRUaW1l
ICsgbWF4QWxsb3dhYmxlTWFpblRocmVhZERlbGF5OworCisgICAgYm9vbCByZWNlaXZlZEV2ZW50
ID0gbV93YWl0aW5nRm9yQmVnYW5FdmVudENvbmRpdGlvbi53YWl0VW50aWwobV90cmVlTXV0ZXgs
IHRpbWVvdXRUaW1lLCBbJl0geworICAgICAgICByZXR1cm4gbV9yZWNlaXZlZEJlZ2FuRXZlbnRG
cm9tTWFpblRocmVhZDsKKyAgICB9KTsKKworICAgIGlmICghcmVjZWl2ZWRFdmVudCkgeworICAg
ICAgICAvLyBUaW1lZCBvdXQsIGdvIGFzeW5jaHJvbm91cy4KKyAgICAgICAgc2V0R2VzdHVyZVN0
YXRlKFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlOjpOb25CbG9ja2luZyk7CisgICAgfQorCisgICAg
TE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU6OndhaXRGb3JCZWdhbkV2ZW50RnJvbU1haW5UaHJlYWQgZG9uZSAtIHRpbWVkIG91dCAiIDw8
ICFyZWNlaXZlZEV2ZW50IDw8ICIgZ2VzdHVyZSBzdGF0ZSBpcyAiIDw8IGdlc3R1cmVTdGF0ZSgp
KTsKIH0KIAogdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmludmFsaWRhdGUoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aAppbmRleCA5MzVmZDdkY2NlZTYxYzI0M2ZhOTQxMGM5Y2M4MDM1YWVkYjU1YzZmLi5jOWU0ZGE3
NTE0MDFkMWVlMDczYzUyMmI4MjM4NDFiOTQ2ODhmZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtNTAsNiAr
NTAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFk
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCwgT3B0aW9uYWw8V2hl
ZWxTY3JvbGxHZXN0dXJlU3RhdGU+KTsKICAgICB2b2lkIHdoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uYWw8V2hlZWxTY3Jv
bGxHZXN0dXJlU3RhdGU+KTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2lsbFNlbmRFdmVu
dFRvTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbDsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHdhaXRGb3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWw7CisKICAgICB2b2lkIGludmFsaWRhdGUoKSBv
dmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2goUGxh
dGZvcm1EaXNwbGF5SUQpOwpAQCAtODUsNyArODgsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBk
aXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKCk7CiAgICAgdm9pZCB3YWl0Rm9yUmVu
ZGVyaW5nVXBkYXRlQ29tcGxldGlvbk9yVGltZW91dCgpOwotICAgIAorCiAgICAgYm9vbCBjYW5V
cGRhdGVMYXllcnNPblNjcm9sbGluZ1RocmVhZCgpIGNvbnN0OwogCiAgICAgdm9pZCBzY2hlZHVs
ZURlbGF5ZWRSZW5kZXJpbmdVcGRhdGVEZXRlY3Rpb25UaW1lcihTZWNvbmRzKTsKQEAgLTEwMyw2
ICsxMDYsOSBAQCBwcml2YXRlOgogICAgIFN5bmNocm9uaXphdGlvblN0YXRlIG1fc3RhdGUgeyBT
eW5jaHJvbml6YXRpb25TdGF0ZTo6SWRsZSB9OwogICAgIENvbmRpdGlvbiBtX3N0YXRlQ29uZGl0
aW9uOwogCisgICAgYm9vbCBtX3JlY2VpdmVkQmVnYW5FdmVudEZyb21NYWluVGhyZWFkIHsgZmFs
c2UgfTsKKyAgICBDb25kaXRpb24gbV93YWl0aW5nRm9yQmVnYW5FdmVudENvbmRpdGlvbjsKKwog
ICAgIC8vIER5bmFtaWNhbGx5IGFsbG9jYXRlZCBiZWNhdXNlIGl0IGhhcyB0byB1c2UgdGhlIFNj
cm9sbGluZ1RocmVhZCdzIHJ1bmxvb3AuCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ1bkxvb3A6OlRp
bWVyPFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4+IG1fZGVsYXllZFJlbmRlcmluZ1VwZGF0ZURldGVj
dGlvblRpbWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggOTFhZDc1MDkzNTcyM2M5
ZTkxNWIxYzc5NTdkOGIyNWY0ZjZjZGEwNy4uZjM0ZjI4YTdmMDM1ZGI4MWUzYjE1MzIzZWI2NTZi
OWMwYjI4ZDU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtODIsMjggKzgyLDIyIEBA
IGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxp
bmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIExP
R19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWM6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcgLSBzZW5kaW5nIGV2ZW50IHRvIHNjcm9s
bGluZyB0aHJlYWQsIG5vZGUgIiA8PCB0YXJnZXROb2RlSUQgPDwgIiBnZXN0dXJlU3RhdGUgIiA8
PCBnZXN0dXJlU3RhdGUpOwotICAgIAorCisgICAgYXV0byBkZWZlcnJlciA9IFdoZWVsRXZlbnRU
ZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJlciB7IG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25p
dG9yKCkuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3Jv
bGxhYmxlQXJlYUlkZW50aWZpZXI+KHRhcmdldE5vZGVJRCksIFdoZWVsRXZlbnRUZXN0TW9uaXRv
cjo6UG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmcgfTsKKwogICAgIFJlZlB0cjxUaHJl
YWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKLSAgICBTY3JvbGxpbmdUaHJlYWQ6
OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIHRhcmdldE5vZGVJ
RCwgZ2VzdHVyZVN0YXRlXSB7CisgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChbdGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCB0YXJnZXROb2RlSUQsIGdlc3R1cmVTdGF0ZSwg
ZGVmZXJyZXIgPSBXVEZNb3ZlKGRlZmVycmVyKV0gewogICAgICAgICB0aHJlYWRlZFNjcm9sbGlu
Z1RyZWUtPmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQod2hlZWxFdmVudCwgdGFyZ2V0
Tm9kZUlELCBnZXN0dXJlU3RhdGUpOwogICAgIH0pOwogICAgIHJldHVybiB0cnVlOwogfQogCi1z
dGF0aWMgdWludDY0X3QgbmV4dERlZmVySWRlbnRpZmllcigpCi17Ci0gICAgc3RhdGljIHVpbnQ2
NF90IGRlZmVySWRlbnRpZmllcjsKLSAgICByZXR1cm4gKytkZWZlcklkZW50aWZpZXI7Ci19Ci0K
IHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1h
aW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25hbDxX
aGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4gZ2VzdHVyZVN0YXRlKQogewotICAgIGF1dG8gZGVmZXJy
ZXIgPSBXaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0aW9uRGVmZXJyZXIgeyBtX3BhZ2UtPndo
ZWVsRXZlbnRUZXN0TW9uaXRvcigpLmdldCgpLCByZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihuZXh0RGVmZXJJZGVudGlmaWVy
KCkpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcgfTsKKyAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkICIgPDwgZ2VzdHVyZVN0
YXRlKTsKIAogICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xs
aW5nVHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgp
KTsKLSAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUs
IHdoZWVsRXZlbnQsIGdlc3R1cmVTdGF0ZSwgZGVmZXJyZXIgPSBXVEZNb3ZlKGRlZmVycmVyKV0g
ewotICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQod2hlZWxFdmVudCwgZ2VzdHVyZVN0YXRlKTsKLSAgICB9KTsKKyAgICB0aHJl
YWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hl
ZWxFdmVudCwgZ2VzdHVyZVN0YXRlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1h
Yzo6c2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWEuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRv
ck5pY29zaWEuY3BwCmluZGV4IGQwMWM2ZTc5NjE4YTA1NDk1ZmQxNzg1MWVjNWRhYWExODA1MmRj
N2EuLjc1NWRhNDRlMDJlODRiY2FhZTQ3ODMyYjg4ZTUwMGQ3MmQ4OGNlMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JOaWNvc2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lh
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAKQEAgLTgzLDkgKzgzLDggQEAgYm9vbCBT
Y3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmco
Y29uc3QgUGxhdGZvcm1XaGUKIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6Ondo
ZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50LCBPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4gZ2VzdHVyZVN0
YXRlKQogewotICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3RocmVhZGVkU2Nyb2xsaW5n
VHJlZSA9IG1ha2VSZWYoZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPigqc2Nyb2xsaW5n
VHJlZSgpKSksIHdoZWVsRXZlbnQsIGdlc3R1cmVTdGF0ZV0gewotICAgICAgICB0aHJlYWRlZFNj
cm9sbGluZ1RyZWUtPndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVu
dCwgZ2VzdHVyZVN0YXRlKTsKLSAgICB9KTsKKyAgICBSZWZQdHI8VGhyZWFkZWRTY3JvbGxpbmdU
cmVlPiB0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU+KHNjcm9sbGluZ1RyZWUoKSk7CisgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT53aGVlbEV2
ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHdoZWVsRXZlbnQsIGdlc3R1cmVTdGF0ZSk7CiB9
CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjpzY2hlZHVsZVRyZWVTdGF0ZUNv
bW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmNwcAppbmRleCA4YzNkMjBiOWNjZjgzMGM1Y2M1MDc3MjMxYWJhYzNiOTM4OTdh
MTIyLi4zZGExY2ZlMDQ1ZDg3OWIzMjc5ZWZlOWRiMmM1MDNkMzk5NWU1YTk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAK
QEAgLTEzNiwxMiArMTM2LDE3IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAgICAgICAgICAg
ICBzY3JvbGxpbmdUcmVlLT5zZXRNYWluRnJhbWVDYW5SdWJiZXJCYW5kKHsgY2FuUnViYmVyQmFu
ZEF0VG9wLCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgY2FuUnViYmVyQmFuZEF0Qm90dG9tLCBjYW5S
dWJiZXJCYW5kQXRMZWZ0IH0pOwogCiAgICAgICAgIGF1dG8gcHJvY2Vzc2luZ1N0ZXBzID0gc2Ny
b2xsaW5nVHJlZS0+ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcocGxhdGZvcm1XaGVlbEV2
ZW50KTsKLSAgICAgICAgaWYgKCFwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkKSkKLSAgICAgICAgICAgIHJldHVybiBwcm9j
ZXNzaW5nU3RlcHM7CiAKICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+d2lsbFByb2Nlc3NXaGVlbEV2
ZW50KCk7CiAKICAgICAgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChbc2Nyb2xsaW5nVHJl
ZSwgd2hlZWxFdmVudCwgcGxhdGZvcm1XaGVlbEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMsIHBhZ2VJ
RCwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgICAgICAgICBpZiAocHJv
Y2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJl
YWRGb3JTY3JvbGxpbmcpKSB7CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+d2lsbFNl
bmRFdmVudFRvTWFpblRocmVhZChwbGF0Zm9ybVdoZWVsRXZlbnQpOworICAgICAgICAgICAgICAg
IHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV2hlZWxFdmVudFZpYU1haW5UaHJlYWQocGFnZUlELCB3
aGVlbEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMpOworICAgICAgICAgICAgICAgIHNjcm9sbGluZ1Ry
ZWUtPndhaXRGb3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5UaHJlYWQocGxhdGZvcm1XaGVlbEV2
ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIAog
ICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdUcmVlLT5oYW5kbGVXaGVlbEV2ZW50
KHBsYXRmb3JtV2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBzKTsKIAogICAgICAgICAgICAgaWYg
KHJlc3VsdC5uZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkpIHsKQEAgLTE1NywxOCArMTYyLDE0
IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAKICAgICAgICAgcmV0dXJuIHByb2Nlc3NpbmdT
dGVwczsKICAgICB9KCk7Ci0KLSAgICBpZiAocHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCkpCi0gICAgICAgIHJldHVybjsK
LQogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0TGVmdCk7CiAgICAgVU5V
U0VEX1BBUkFNKGNhblJ1YmJlckJhbmRBdFJpZ2h0KTsKICAgICBVTlVTRURfUEFSQU0oY2FuUnVi
YmVyQmFuZEF0VG9wKTsKICAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0Qm90dG9tKTsK
LSNlbmRpZgogCiAgICAgZGlzcGF0Y2hXaGVlbEV2ZW50VmlhTWFpblRocmVhZChwYWdlSUQsIHdo
ZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CisjZW5kaWYKIH0KIAogI2lmIEVOQUJMRShNQUNf
R0VTVFVSRV9FVkVOVFMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjgwNGIwZTJhNGZkOWNjNmUwMjU2OTAwMTcyNDBmZmY0
YjBhMDU2MC4uZmNiYWYwMWFiMjE2ZDA2ZjA2ZjUyNjMxN2ZlYmJkODk0YjBhZGM2YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIwLTEyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2Vz
dHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1yb290
LWppZ2dsZS5odG1sOiBNYWtlIG1vcmUgcm9idXN0LgorICAgICAgICAqIHBsYXRmb3JtL21hYy13
azIvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS1l
eHBlY3RlZC50eHQ6IFRlc3Qgbm93IHBhc3NlcyBpbiBXSzIuCisKIDIwMjAtMTItMDIgIERpZWdv
IFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVbnJldmll
d2VkIHRlc3QgZ2FyZGVuaW5nLiBHYXJkZW5lZCBzZXZlcmFsIGZsYWt5IHRpbWVvdXQgZmFpbHVy
ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9tYWMvcnViYmVyYmFu
ZC1vdmVyZmxvdy1pbi13aGVlbC1yZWdpb24tcm9vdC1qaWdnbGUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1y
b290LWppZ2dsZS5odG1sCmluZGV4IGNlMzU5MDUxZjE5ZGU4YmVlMDI4YTVlNmIwMGY0YjM0NGVj
YWJhY2EuLjI1MjdlMGYyOWMyZmE4NTlkYzkzYTMyNTQ4NDQxM2Q1Y2JlNzE3NDkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWlu
LXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2ds
ZS5odG1sCkBAIC01MSwxMCArNTEsMTcgQEAKIAogICAgICAgICAgICAgLy8gU2Nyb2xsIGRvd24g
dG8gbGF0Y2gsIHRoZW4gdXAgdG8gcnViYmVyYmFuZC4KICAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImJlZ2FuIiwg
Im5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MTAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAxMiwgImNoYW5nZWQiLCAibm9uZSIp
OwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDEyLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAibm9u
ZSIpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5nVXBkYXRlKCk7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUs
ICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmlu
Z1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwogICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIs
ICJub25lIik7CiAKICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2V2ZW50cy93
aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRz
LWJlY29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDk1NTE3ZDgzYmE1YmIwOGUzYTMzNTc4NzMyZDBkNDhmMzRkZmE2ZTIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1j
YW5jZWxhYmxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRl
c3RzIHRoYXQgZXZlbnRzIGluIHRoZSBnZXN0dXJlIGFyZSBub24tY2FuY2VsYWJsZSBpZiBwcmV2
ZW50RGVmYXVsdCB3YXMgbm90IGNhbGxlZCBvbiB0aGUgZmlyc3QgZXZlbnQKLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZmlyc3RXYXNDYW5jZWxhYmxlIGlzIHRydWUKLUZB
SUwgYmVjYW1lTm9uQ2FuY2VsYWJsZSBzaG91bGQgYmUgdHJ1ZSAob2YgdHlwZSBib29sZWFuKS4g
V2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
</data>
<flag name="commit-queue"
          id="432546"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415351</attachid>
            <date>2020-12-03 14:47:19 -0800</date>
            <delta_ts>2020-12-03 17:06:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201203144718.patch</filename>
            <type>text/plain</type>
            <size>32826</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2ZmRjYjdiYzQ1YTVh
ODZlYTE0MTUzY2I1ZjQ3NmQyN2YzOTY0ZS4uODVjMmM5ZjcxNzcyY2RlYmYwYWMyNzJkNzI3ZTY2
MzcxYWFiMDI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDIwLTEyLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZp
cnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIFdlYktpdDIgdmVyc2lvbiBvZiByMjcw
MzEyLCB3aGVyZSBvbmx5IHRoZSBmaXJzdCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUgaXMKKyAg
ICAgICAgY2FuY2VsYWJsZS4KKworICAgICAgICBXaGVuIHNjcm9sbGluZyBvdmVyIGFuIGVsZW1l
bnQgd2l0aCBoYW5kbGVycywgd2UgZG8gZXZlbnQgaGFuZGxpbmcgb24gdGhlIG1haW4gdGhyZWFk
LAorICAgICAgICBzbyB3ZSBjYW4gdGFrZSB0aGUgY29tcHV0ZSB2YWx1ZSBvZiBFdmVudEhhbmRs
ZXIncyBPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4KKyAgICAgICAgZnJvbSB0aGUg
Zmlyc3QgZXZlbnQgYW5kIHNlbmQgaXQgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZC4KKwor
ICAgICAgICBIb3dldmVyLCB0aGUgc2Nyb2xsaW5nIHRocmVhZCBuZWVkcyB0byBibG9jayB1bnRp
bCB0aGlzIGZpcnN0IGV2ZW50IGNvbWVzIGJhY2sgZnJvbQorICAgICAgICB0aGUgbWFpbiB0aHJl
YWQuIFRvIGFjaGlldmUgdGhpcywgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KCkgbm93IGRp
c3BhY2hlcworICAgICAgICBtYWluIHRocmVhZCBzY3JvbGxzIGZyb20gdGhlIHNjcm9sbGluZyB0
aHJlYWQgKG5vdCB0aGUgZGlzcGF0Y2hlciB0aHJlYWQpLCBhbmQKKyAgICAgICAgd2FpdHMgb24g
bV93YWl0aW5nRm9yQmVnYW5FdmVudENvbmRpdGlvbiB3aXRoIGEgNTBtcyB0aW1lb3V0IGZvciB0
aGF0IGZpcnN0IGV2ZW50IHRvCisgICAgICAgIGNvbWUgYmFjay4KKworICAgICAgICBJbiB0aGUg
bm9ybWFsIGNhc2UsIG1haW4gdGhyZWFkIGhhbmRsaW5nIGRpc3BhdGNoZXMgdGhlIGV2ZW50IGJh
Y2sgdG8gdGhlIHNjcm9sbGluZworICAgICAgICB0aHJlYWQgZm9yIHNjcm9sbGluZyB2aWEgaGFu
ZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCgpLCBhbmQgdGhlbiBjYWxscworICAgICAgICB3
aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKCkgdG8gc2lnbmFsIHRoZSBjb25kaXRp
b24uIElmIGZvciBzb21lIHJlYXNvbgorICAgICAgICBoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWlu
VGhyZWFkKCkgZG9lc24ndCBnZXQgY2FsbGVkIChlLmcuIG5vdGhpbmcgd2FzIHNjcm9sbGFibGUp
LAorICAgICAgICB0aGVuIHdoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoKSBzdGls
bCBnZXRzIGNhbGxlZCB0byBzaWduYWwuCisKKyAgICAgICAgSWYgbV93YWl0aW5nRm9yQmVnYW5F
dmVudENvbmRpdGlvbiB0aW1lcyBvdXQsIHRoZW4gdGhlIHNjcm9sbGluZyB0aHJlYWQgZmFsbHMg
YmFjaworICAgICAgICB0byBub24tYmxvY2tpbmcgYmVoYXZpb3VyIChhcyBpZiB0aGUgZmlyc3Qg
ZXZlbnQgd2FzIG5vdCBjYW5jZWxlZCkuCisKKyAgICAgICAgRmluYWxseSwgd2hlbiB3ZSBrbm93
IHRoZSBnZXN0dXJlIHdpbGwgYmVjb21lIG5vbi1ibG9ja2luZywgd2UgdHJhbnNpdGlvbiB0byBy
dW5uaW5nCisgICAgICAgIHRoZSBzY3JvbGwgZnJvbSB0aGUgc2Nyb2xsaW5nIHRocmVhZCwgd2hp
Y2ggcmVxdWlyZXMgdGhhdCB3ZSBzZXQgdXAgbGF0Y2hpbmcsIGhlbmNlCisgICAgICAgIHRoZSBj
aGFuZ2VzIGluIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuCisKKyAgICAgICAgVGVz
dGVkIGJ5IGV4aXN0aW5nIHRlc3RzIGluIGZhc3QvZXZlbnRzL3doZWVsLgorCisgICAgICAgICog
cGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3
aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudEluU2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAq
IHBhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPDwpOgorICAgICAgICAqIHBhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmg6CisgICAgICAg
ICogcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyk6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vzc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6Z2VzdHVyZVN0YXRlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjp3aWxsU2VuZEV2ZW50
VG9NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OndhaXRGb3JF
dmVudFRvQmVQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6cmVjZWl2ZWRXaGVlbEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6Om5vZGVEaWRI
YW5kbGVFdmVudCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNo
aW5nQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xs
aW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Omhh
bmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFk
ZWRTY3JvbGxpbmdUcmVlOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2lsbFNlbmRFdmVudFRvTWFp
blRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndhaXRG
b3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKTogTmVlZCB0byB0
cmFjayBkZWZlcnJhbAorICAgICAgICBmb3IgV2hlZWxFdmVudFRlc3RNb25pdG9yLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OndoZWVsRXZlbnRXYXNQcm9jZXNz
ZWRCeU1haW5UaHJlYWQpOiBUaGlzIGlzIG5vdyBzeW5jaHJvbm91cworICAgICAgICB0byB0aGUg
c2Nyb2xsaW5nIHRocmVhZCBzbyBubyBuZWVkIGZvciB0aGUgZGVmZXJyZXIuCisgICAgICAgIChX
ZWJDb3JlOjpuZXh0RGVmZXJJZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OndoZWVsRXZlbnRXYXNQcm9j
ZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVl
bEV2ZW50KToKKwogMjAyMC0xMi0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBNZWRpYVNlc3Npb25IZWxwZXI6OnNldFNoYXJlZEhlbHBlcigpIGhhbmdzIHdo
ZW4gIm1lZGlhIGluIHRoZSBHUFUgcHJvY2VzcyIgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxNTUy
ZDkzMzdjYzg0MjU4NWIwOGIyYjM3ODIxZWQzNDZhOTg4MGI4Li4yODgxZjhkY2IyYWJhNTA2NzJj
ZmIwNDYxZTlmNTg4ZTEzNjVlNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTEy
LTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9u
bHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJs
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZl
bnQoKSwgYWxsIHdoZWVsIGV2ZW50cyBub3cgYm91bmNlIHRocm91Z2ggdGhlIHNjcm9sbGluZwor
ICAgICAgICB0aHJlYWQsIGV2ZW4gdGhvc2UgZGVzdGluZWQgZm9yIG1haW4gdGhyZWFkIHNjcm9s
bGluZy4gVGhpcyBhbGxvd3MgdGhlIHNjcm9sbGluZyB0aHJlYWQKKyAgICAgICAgdG8gd2FpdCBv
biBhIGNvbmRpdGlvbiBmb3IgdGhlIGV2ZW50IHRvIGNvbWUgYmFjayB0byB0aGUgc2Nyb2xsaW5n
IHRocmVhZCB2aWEKKyAgICAgICAgaGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCgpLCBz
aW5jZSB3ZSBoYXZlIHRvIGtub3cgd2hldGhlciBjb250ZW50IGNhbGxlZAorICAgICAgICBwcmV2
ZW50RGVmYXVsdCgpIG9uIHRoZSBmaXJzdCBldmVudCBiZWZvcmUgc2VuZGluZyBzdWJzZXF1ZW50
IGV2ZW50cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQpOgorCiAy
MDIwLTEyLTAzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIEdQVSBQcm9jZXNzOiBTYW5kYm94IHZpb2xhdGlvbnMgdW5kZXIgSU9TdXJmYWNlOjptYXhp
bXVtU2l6ZSBpbiB0aGUgV2ViIENvbnRlbnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IDAzZjBiOWQ2ODEyZWI5Mzc2OTZmNjI0ZWU3NzI1ZDgyNGUwZGVhMjIu
LjQ4NDg3OGNmZTY1ZGFiZTRlY2QzOGM3NjQ3NjA5MTM5ODdiYjBhYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI3MjIsOCArMjcyMiwxNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiBldmVudAogICAgIHJldHVybiBkaWRIYW5kbGVFdmVudDsKIH0KIAotdm9pZCBFdmVudEhh
bmRsZXI6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KQordm9pZCBFdmVudEhhbmRsZXI6
OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gZXZlbnRIYW5kbGluZykK
IHsKKyAgICB1cGRhdGVXaGVlbEdlc3R1cmVTdGF0ZSh3aGVlbEV2ZW50LCBldmVudEhhbmRsaW5n
KTsKKworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisgICAgRnJhbWVWaWV3KiB2aWV3ID0g
bV9mcmFtZS52aWV3KCk7CisgICAgaWYgKGF1dG8gc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBtX2Zy
YW1lLnBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkgeworICAgICAgICBpZiAoc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPmNvb3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KCp2aWV3KSkK
KyAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT53aGVlbEV2ZW50V2FzUHJvY2Vzc2Vk
QnlNYWluVGhyZWFkKHdoZWVsRXZlbnQsIG1fd2hlZWxTY3JvbGxHZXN0dXJlU3RhdGUpOworICAg
IH0KKyNlbmRpZgogfQogCiBib29sIEV2ZW50SGFuZGxlcjo6cGxhdGZvcm1Db21wbGV0ZVBsYXRm
b3JtV2lkZ2V0V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXaWRn
ZXQmLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKaW5kZXggZjY1MjUwZTlmNmNiMTVhYzI4MTBj
ZGQ3ZmYxYWM0NGI0ZWI2ODkxOS4uM2ViZWExYTQxYjJhNDJkNGJmZWRkY2EyZTczMmMyZDhmYTM1
MmY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNw
cApAQCAtMTcyLDcgKzE3Miw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24gcmVhc29uCiAgICAgc3dpdGNo
IChyZWFzb24pIHsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVl
bEV2ZW50OiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQiOyBicmVhazsKICAgICBjYXNlIFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50T25NYWluVGhyZWFkOiB0cyA8
PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQgb24gbWFpbiB0aHJlYWQiOyBicmVhazsKLSAgICBjYXNl
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZzogdHMgPDwgInJl
cG9ydCBET00gZXZlbnQgaGFuZGxpbmciOyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6UG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmc6IHRzIDw8ICJwb3N0LW1h
aW4gdGhyZWFkIGV2ZW50IGhhbmRsaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVz
dE1vbml0b3I6OlJ1YmJlcmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7IGJy
ZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9ncmVz
czogdHMgPDwgInNjcm9sbC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRl
c3RNb25pdG9yOjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5nIHRo
cmVhZCBzeW5jIG5lZWRlZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVu
dFRlc3RNb25pdG9yLmgKaW5kZXggZmY4ZDc3YzQ0NDFjNGYwMjczOGEyMzVjMTJhY2EzMWM4OWE0
NWJhOS4uZWUxMmRlMmQyMTZmMTY2ODViZGZkYWFlZWE2Y2JiZTQ1YjgwYmVjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC00OCwxNCArNDgsMTQg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUZXN0RGVmZXJyYWxz
KCk7CiAgICAgCiAgICAgZW51bSBEZWZlclJlYXNvbiB7Ci0gICAgICAgIEhhbmRsaW5nV2hlZWxF
dmVudCAgICAgICAgICAgICAgPSAxIDw8IDAsCi0gICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudE9u
TWFpblRocmVhZCAgPSAxIDw8IDEsCi0gICAgICAgIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcgICAg
ICAgICAgPSAxIDw8IDIsCi0gICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAgICAg
PSAxIDw8IDMsCi0gICAgICAgIFNjcm9sbFNuYXBJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8
IDQsCi0gICAgICAgIFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQgICAgICAgPSAxIDw8IDUsCi0g
ICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAgICAgICAgPSAxIDw8IDYsCi0gICAgICAg
IFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uICAgICAgICAgPSAxIDw8IDcsCisgICAgICAgIEhhbmRs
aW5nV2hlZWxFdmVudCAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgICAgICBIYW5kbGlu
Z1doZWVsRXZlbnRPbk1haW5UaHJlYWQgICAgICA9IDEgPDwgMSwKKyAgICAgICAgUG9zdE1haW5U
aHJlYWRXaGVlbEV2ZW50SGFuZGxpbmcgICAgPSAxIDw8IDIsCisgICAgICAgIFJ1YmJlcmJhbmRJ
blByb2dyZXNzICAgICAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICBTY3JvbGxTbmFwSW5Q
cm9ncmVzcyAgICAgICAgICAgICAgICA9IDEgPDwgNCwKKyAgICAgICAgU2Nyb2xsaW5nVGhyZWFk
U3luY05lZWRlZCAgICAgICAgICAgPSAxIDw8IDUsCisgICAgICAgIENvbnRlbnRTY3JvbGxJblBy
b2dyZXNzICAgICAgICAgICAgID0gMSA8PCA2LAorICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbiAgICAgICAgICAgICA9IDEgPDwgNywKICAgICB9OwogICAgIHR5cGVkZWYgY29uc3Qgdm9p
ZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9F
dmVudEhhbmRsZXJNYWMubW0KaW5kZXggNGEwZWZlZDdjMmRlYzc5YjVmMzFlNWU3MTY4OTc4MmI3
MTYxZTFjYi4uNzE0MTUzNjViYWJhZjVhOTQyM2EyOWY2MWI3ODJmZmUzMmI0OTMxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtOTU0LDcgKzk1NCw3
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsCiAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3Jv
bGxMYXRjaGluZywgc3RyZWFtIDw8ICIgIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRG
b3JTY3JvbGxpbmcgcmV0dXJuaW5nICIgPDwgZGlkSGFuZGxlV2hlZWxFdmVudCk7CiAgICAgICAg
IHJldHVybiBkaWRIYW5kbGVXaGVlbEV2ZW50OwogICAgIH0KLSAgICAKKwogICAgIGJvb2wgZGlk
SGFuZGxlRXZlbnQgPSBoYW5kbGVXaGVlbEV2ZW50SW5TY3JvbGxhYmxlQXJlYSh3aGVlbEV2ZW50
LCAqdmlldywgZXZlbnRIYW5kbGluZyk7CiAgICAgbV9pc0hhbmRsaW5nV2hlZWxFdmVudCA9IGZh
bHNlOwogICAgIHJldHVybiBkaWRIYW5kbGVFdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZjMxZmYyMzU3YjA3YTc2MjI1NzVi
MzZlNjFlZTY1NGY0OWIzZjhiZS4uYjIwNTUzMmIyMzM1OGIyOTliNTk5N2Q3NDcwZDgzYWE4ZTMw
M2UyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHAKQEAgLTczLDYgKzczLDggQEAgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM+IFNjcm9sbGluZ1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW4KICAgICAgICAg
TE9HX1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6
OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIGhhdmUg
bGF0Y2hlZCBub2RlICIgPDwgbGF0Y2hlZE5vZGVBbmRTdGVwcy0+c2Nyb2xsaW5nTm9kZUlEIDw8
ICIgc3RlcHMgIiA8PCBsYXRjaGVkTm9kZUFuZFN0ZXBzLT5wcm9jZXNzaW5nU3RlcHMpOwogICAg
ICAgICByZXR1cm4gbGF0Y2hlZE5vZGVBbmRTdGVwcy0+cHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0K
KyAgICBpZiAod2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpIHx8IHdoZWVsRXZlbnQuaXNOb25H
ZXN0dXJlRXZlbnQoKSkKKyAgICAgICAgbV90cmVlU3RhdGUuZ2VzdHVyZVN0YXRlID0gV1RGOjpu
dWxsb3B0OwogCiAgICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBbJl0oKSAtPiBPcHRpb25TZXQ8
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gewogICAgICAgICBpZiAoIW1fcm9vdE5vZGUpCkBA
IC05Niw4ICs5OCwxMiBAQCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gU2Ny
b2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbgogCiAjaWYgRU5BQkxFKFdI
RUVMX0VWRU5UX1JFR0lPTlMpCiAgICAgICAgIGF1dG8gZXZlbnRMaXN0ZW5lclR5cGVzID0gZXZl
bnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUG9pbnQocG9zaXRpb24pOwotICAgICAgICBpZiAoZXZl
bnRMaXN0ZW5lclR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNz
aXZlV2hlZWwpKQorICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRhaW5zKEV2ZW50
TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpKSB7CisgICAgICAgICAgICBpZiAo
bV90cmVlU3RhdGUuZ2VzdHVyZVN0YXRlLnZhbHVlT3IoV2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU6
OkJsb2NraW5nKSA9PSBXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZTo6Tm9uQmxvY2tpbmcpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5n
VGhyZWFkLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yTm9uQmxvY2tp
bmdET01FdmVudERpc3BhdGNoIH07CisKICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICAg
ICAgfQogCiAgICAgICAgIGlmIChldmVudExpc3RlbmVyVHlwZXMuY29udGFpbnMoRXZlbnRMaXN0
ZW5lclJlZ2lvblR5cGU6OldoZWVsKSkKICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OwpAQCAtNDgyLDYg
KzQ4OCwxOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9u
KEZsb2F0UG9pbnQgcG9zaXRpb24pCiAgICAgbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb24gPSBwb3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJlU3Rh
dGUoT3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+IGdlc3R1cmVTdGF0ZSkKK3sKKyAg
ICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3RhdGVNdXRleCk7CisgICAgbV90cmVlU3RhdGUuZ2Vz
dHVyZVN0YXRlID0gZ2VzdHVyZVN0YXRlOworfQorCitPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1
cmVTdGF0ZT4gU2Nyb2xsaW5nVHJlZTo6Z2VzdHVyZVN0YXRlKCkKK3sKKyAgICBMb2NrSG9sZGVy
IGxvY2sobV90cmVlU3RhdGVNdXRleCk7CisgICAgcmV0dXJuIG1fdHJlZVN0YXRlLmdlc3R1cmVT
dGF0ZTsKK30KKwogVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tpbmdUeXBl
Rm9yUG9pbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCBwKQogewogICAg
IExvY2tIb2xkZXIgbG9jayhtX3RyZWVTdGF0ZU11dGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBiMWU4MTQ3NjAwNTZlYzIxZDVhYzY3
MGQ5YTdiMGU2YmVjMjgwOGMzLi44NWRlMWVjNzY3MjQwNWFhODI1YzAyMmY4NjcwNDY5YTA1ZjE2
YzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5o
CkBAIC0yMTAsNiArMjEwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2NrTGF5ZXJz
Rm9ySGl0VGVzdGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tMYXllcnNGb3JIaXRU
ZXN0aW5nKCkgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRFdmVudFRvTWFpblRocmVh
ZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2FpdEZv
ckV2ZW50VG9CZVByb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
KSB7IH07CisKICAgICBMb2NrJiB0cmVlTXV0ZXgoKSB7IHJldHVybiBtX3RyZWVNdXRleDsgfQog
CiAgICAgdm9pZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQsIE9wdGlv
bmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKQEAgLTI0NSw2ICsyNDgsOSBA
QCBwcm90ZWN0ZWQ6CiAgICAgRmxvYXRQb2ludCBtYWluRnJhbWVTY3JvbGxQb3NpdGlvbigpIGNv
bnN0OwogICAgIHZvaWQgc2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2ludCk7CiAK
KyAgICB2b2lkIHNldEdlc3R1cmVTdGF0ZShPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0
ZT4pOworICAgIE9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPiBnZXN0dXJlU3RhdGUo
KTsKKwogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKCk7CiAK
ICAgICB2b2lkIGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwpAQCAtMjg1LDYgKzI5MSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIEZsb2F0UG9pbnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb247
CiAgICAgICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCB7IDAgfTsKICAgICAgICAgT3B0
aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQ7CisgICAgICAgIE9wdGlvbmFs
PFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPiBnZXN0dXJlU3RhdGU7CiAgICAgICAgIEhhc2hTZXQ8
U2Nyb2xsaW5nTm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVSdWJiZXJCYW5kaW5nOwogICAgICAgICBI
YXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlU2Nyb2xsU25hcDsKICAgICAg
ICAgSGFzaFNldDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2ZVVzZXJTY3JvbGxzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxh
dGNoaW5nQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcAppbmRleCBkMGUwNGZjZjM3NDFjODE0ZThh
NGNkMzk5YTg4OWFmZDY4NzJjY2Y1Li4yMzNlYzBjNjRkYWIyNjkxNmM4MGM1MWQyM2NjZDIyMTk4
OTM0MDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcApAQCAtNDEsMTUgKzQx
LDE4IEBAIHN0YXRpYyBjb25zdCBTZWNvbmRzIHJlc2V0TGF0Y2hlZFN0YXRlVGltZW91dCB7IDEw
MF9tcyB9OwogCiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpTY3JvbGxpbmdUcmVl
TGF0Y2hpbmdDb250cm9sbGVyKCkgPSBkZWZhdWx0OwogCi12b2lkIFNjcm9sbGluZ1RyZWVMYXRj
aGluZ0NvbnRyb2xsZXI6OnJlY2VpdmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiwgYm9v
bCBhbGxvd0xhdGNoaW5nKQordm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpy
ZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBP
cHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBzLCBib29s
IGFsbG93TGF0Y2hpbmcpCiB7CiAgICAgaWYgKCFhbGxvd0xhdGNoaW5nKQogICAgICAgICByZXR1
cm47CiAKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOwotICAgIGlm
ICh3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkgJiYgbV9sYXRjaGVkTm9kZUFuZFN0ZXBzICYm
ICFsYXRjaGVkTm9kZUlzUmVsZXZhbnQoKSkgewotICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsTGF0Y2hpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlciAi
IDw8IHRoaXMgPDwgIiByZWNlaXZlZFdoZWVsRXZlbnQgLSAiIDw8IChNb25vdG9uaWNUaW1lOjpu
b3coKSAtIG1fbGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWUpLm1pbGxpc2Vjb25kcygpIDw8
ICJtcyBzaW5jZSBsYXN0IGV2ZW50LCBjbGVhcmluZyBsYXRjaGVkIG5vZGUiKTsKLSAgICAgICAg
bV9sYXRjaGVkTm9kZUFuZFN0ZXBzLnJlc2V0KCk7CisgICAgaWYgKHdoZWVsRXZlbnQuaXNHZXN0
dXJlU3RhcnQoKSAmJiAhbGF0Y2hlZE5vZGVJc1JlbGV2YW50KCkpIHsKKyAgICAgICAgaWYgKG1f
bGF0Y2hlZE5vZGVBbmRTdGVwcykgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9s
bExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIgIiA8
PCB0aGlzIDw8ICIgcmVjZWl2ZWRXaGVlbEV2ZW50IC0gIiA8PCAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lKS5taWxsaXNlY29uZHMoKSA8PCAi
bXMgc2luY2UgbGFzdCBldmVudCwgY2xlYXJpbmcgbGF0Y2hlZCBub2RlIik7CisgICAgICAgICAg
ICBtX2xhdGNoZWROb2RlQW5kU3RlcHMucmVzZXQoKTsKKyAgICAgICAgfQorICAgICAgICBtX3By
b2Nlc3NpbmdTdGVwc0ZvckN1cnJlbnRHZXN0dXJlID0gcHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0K
IH0KIApAQCAtOTYsOSArOTksMjcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9s
bGVyOjpub2RlRGlkSGFuZGxlRXZlbnQoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhKCkuaXNaZXJvKCkgfHwg
IXdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQoKSkKKyAgICBhdXRvIHNob3VsZExhdGNoID0gWyZd
KCkgeworICAgICAgICBpZiAod2hlZWxFdmVudC5kZWx0YSgpLmlzWmVybygpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICh3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0
KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBpZiAoIXdoZWVsRXZlbnQu
aXNHZXN0dXJlQ29udGludWF0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgaWYgKG1fcHJvY2Vzc2luZ1N0ZXBzRm9yQ3VycmVudEdlc3R1cmUudmFsdWVPcihPcHRp
b25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4geyB9KS5jb250YWlucyhXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nKSAmJiBwcm9jZXNzaW5nU3Rl
cHMuY29udGFpbnMoV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkKSkK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
OworICAgIAorICAgIGlmICghc2hvdWxkTGF0Y2goKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
bV9wcm9jZXNzaW5nU3RlcHNGb3JDdXJyZW50R2VzdHVyZSA9IHByb2Nlc3NpbmdTdGVwczsKKwog
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIG5vZGVEaWRIYW5kbGVFdmVudDog
bGF0Y2hpbmcgdG8gIiA8PCBzY3JvbGxpbmdOb2RlSUQpOwogICAgIG1fbGF0Y2hlZE5vZGVBbmRT
dGVwcyA9IFNjcm9sbGluZ05vZGVBbmRQcm9jZXNzaW5nU3RlcHMgeyBzY3JvbGxpbmdOb2RlSUQs
IHByb2Nlc3NpbmdTdGVwcyB9OwogICAgIG1fbGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWUg
PSBNb25vdG9uaWNUaW1lOjpub3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaAppbmRl
eCBiZWU1OTMxNWI1ZDZlM2YwNWE1OTlmYWMwYTNiOWIwODc1ZTE3MDhhLi42NDE4ZWE4ODU3Mzcw
OWU2NDFhM2NmMzE3ODg3YTk2NGNlM2NlZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ci5oCkBAIC02NCw2ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICBtdXRhYmxlIExvY2sgbV9sYXRj
aGVkTm9kZU11dGV4OwogICAgIE9wdGlvbmFsPFNjcm9sbGluZ05vZGVBbmRQcm9jZXNzaW5nU3Rl
cHM+IG1fbGF0Y2hlZE5vZGVBbmRTdGVwczsKKyAgICBPcHRpb25hbDxPcHRpb25TZXQ8V2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwcz4+IG1fcHJvY2Vzc2luZ1N0ZXBzRm9yQ3VycmVudEdlc3R1cmU7
CiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Ny
b2xsaW5nVHJlZS5jcHAKaW5kZXggNTk3ZTQ2NzcyZTk0MTdmNzIyYzZkYjkzYjNhZDExMDMxNDA4
MGExZS4uODJlMDdiY2I4NTAwYjgxOGJjMjQyNTk5MWU4OTA0YTdkMjFkM2Q1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuY3BwCkBAIC02NCwyMSArNjQsNzQgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVcKICAgICBy
ZXR1cm4gU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBwcm9jZXNz
aW5nU3RlcHMpOwogfQogCi1ib29sIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxF
dmVudEFmdGVyTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQs
IFNjcm9sbGluZ05vZGVJRCB0YXJnZXROb2RlSUQsIE9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVy
ZVN0YXRlPikKK2Jvb2wgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0
ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xs
aW5nTm9kZUlEIHRhcmdldE5vZGVJRCwgT3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+
IGdlc3R1cmVTdGF0ZSkKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0g
PDwgIlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVh
ZCAiIDw8IHdoZWVsRXZlbnQgPDwgIiBub2RlICIgPDwgdGFyZ2V0Tm9kZUlEKTsKKyAgICBBU1NF
UlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7CisKKyAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxl
V2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCAiIDw8IHdoZWVsRXZlbnQgPDwgIiBub2RlICIgPDwg
dGFyZ2V0Tm9kZUlEIDw8ICIgZ2VzdHVyZVN0YXRlICIgPDwgZ2VzdHVyZVN0YXRlKTsKIAogICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZU11dGV4KTsKIAotICAgIFNldEZvclNjb3BlPGJvb2w+
IGRpc2FsbG93TGF0Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGZhbHNlKTsKKyAgICBib29s
IGFsbG93TGF0Y2hpbmcgPSBmYWxzZTsKKyAgICBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBzOworICAgIGlmIChnZXN0dXJlU3RhdGUudmFsdWVPcihX
aGVlbFNjcm9sbEdlc3R1cmVTdGF0ZTo6QmxvY2tpbmcpID09IFdoZWVsU2Nyb2xsR2VzdHVyZVN0
YXRlOjpOb25CbG9ja2luZykgeworICAgICAgICBhbGxvd0xhdGNoaW5nID0gdHJ1ZTsKKyAgICAg
ICAgcHJvY2Vzc2luZ1N0ZXBzID0geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxp
bmdUaHJlYWQsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9j
a2luZ0RPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICB9CisKKyAgICBTZXRGb3JTY29wZTxib29sPiBk
aXNhbGxvd0xhdGNoaW5nU2NvcGUobV9hbGxvd0xhdGNoaW5nLCBhbGxvd0xhdGNoaW5nKTsKICAg
ICBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IHRhcmdldE5vZGUgPSBub2RlRm9ySUQodGFyZ2V0
Tm9kZUlEKTsKLSAgICBhdXRvIHJlc3VsdCA9IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVl
bEV2ZW50LCB7IH0sIHRhcmdldE5vZGUuZ2V0KCksIEV2ZW50VGFyZ2V0aW5nOjpOb2RlT25seSk7
CisgICAgYXV0byByZXN1bHQgPSBoYW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUod2hlZWxFdmVudCwg
cHJvY2Vzc2luZ1N0ZXBzLCB0YXJnZXROb2RlLmdldCgpLCBFdmVudFRhcmdldGluZzo6Tm9kZU9u
bHkpOwogICAgIHJldHVybiByZXN1bHQud2FzSGFuZGxlZDsKIH0KIAotdm9pZCBUaHJlYWRlZFNj
cm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+KQordm9p
ZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJl
YWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25hbDxXaGVlbFNj
cm9sbEdlc3R1cmVTdGF0ZT4gZ2VzdHVyZVN0YXRlKQoreworICAgIExPR19XSVRIX1NUUkVBTShT
Y3JvbGxpbmcsIHN0cmVhbSA8PCAiVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3aGVlbEV2ZW50V2Fz
UHJvY2Vzc2VkQnlNYWluVGhyZWFkIC0gZ2VzdHVyZVN0YXRlICIgPDwgZ2VzdHVyZVN0YXRlKTsK
KworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgCisgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV90cmVlTXV0ZXgpOworICAgIGlmIChtX3JlY2VpdmVkQmVnYW5FdmVudEZyb21NYWluVGhy
ZWFkIHx8ICF3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNldEdlc3R1cmVTdGF0ZShnZXN0dXJlU3RhdGUpOworCisgICAgbV9yZWNlaXZlZEJlZ2Fu
RXZlbnRGcm9tTWFpblRocmVhZCA9IHRydWU7CisgICAgbV93YWl0aW5nRm9yQmVnYW5FdmVudENv
bmRpdGlvbi5ub3RpZnlPbmUoKTsKK30KKwordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Ondp
bGxTZW5kRXZlbnRUb01haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikKK3sKKyAg
ICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7CisKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3RyZWVNdXRleCk7CisgICAgbV9yZWNlaXZlZEJlZ2FuRXZlbnRGcm9t
TWFpblRocmVhZCA9IGZhbHNlOworfQorCit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2Fp
dEZvckV2ZW50VG9CZVByb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQpCiB7Ci0gICAgLy8gRklYTUU6IFNldCBzdGF0ZSBiYXNlZCBvbiBFdmVu
dEhhbmRsaW5nIGZsYWdzLgorICAgIEFTU0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRo
cmVhZCgpKTsKKworICAgIGlmICghd2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVNdXRleCk7CisKKyAgICBz
dGF0aWMgY29uc3RleHByIGF1dG8gbWF4QWxsb3dhYmxlTWFpblRocmVhZERlbGF5ID0gNTBfbXM7
CisgICAgYXV0byBzdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBhdXRvIHRp
bWVvdXRUaW1lID0gc3RhcnRUaW1lICsgbWF4QWxsb3dhYmxlTWFpblRocmVhZERlbGF5OworCisg
ICAgYm9vbCByZWNlaXZlZEV2ZW50ID0gbV93YWl0aW5nRm9yQmVnYW5FdmVudENvbmRpdGlvbi53
YWl0VW50aWwobV90cmVlTXV0ZXgsIHRpbWVvdXRUaW1lLCBbJl0geworICAgICAgICByZXR1cm4g
bV9yZWNlaXZlZEJlZ2FuRXZlbnRGcm9tTWFpblRocmVhZDsKKyAgICB9KTsKKworICAgIGlmICgh
cmVjZWl2ZWRFdmVudCkgeworICAgICAgICAvLyBUaW1lZCBvdXQsIGdvIGFzeW5jaHJvbm91cy4K
KyAgICAgICAgc2V0R2VzdHVyZVN0YXRlKFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlOjpOb25CbG9j
a2luZyk7CisgICAgfQorCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JCZWdhbkV2ZW50RnJvbU1haW5UaHJlYWQg
ZG9uZSAtIHRpbWVkIG91dCAiIDw8ICFyZWNlaXZlZEV2ZW50IDw8ICIgZ2VzdHVyZSBzdGF0ZSBp
cyAiIDw8IGdlc3R1cmVTdGF0ZSgpKTsKIH0KIAogdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6
OmludmFsaWRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaAppbmRleCA5MzVmZDdkY2NlZTYxYzI0M2ZhOTQxMGM5Y2M4
MDM1YWVkYjU1YzZmLi5jOWU0ZGE3NTE0MDFkMWVlMDczYzUyMmI4MjM4NDFiOTQ2ODhmZGJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9s
bGluZ1RyZWUuaApAQCAtNTAsNiArNTAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVXaGVl
bEV2ZW50QWZ0ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGlu
Z05vZGVJRCwgT3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+KTsKICAgICB2b2lkIHdo
ZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgT3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+KTsKIAorICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgd2lsbFNlbmRFdmVudFRvTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdhaXRGb3JFdmVudFRvQmVQcm9j
ZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWw7CisKICAg
ICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGlzcGxheURpZFJlZnJlc2goUGxhdGZvcm1EaXNwbGF5SUQpOwpAQCAtODUsNyArODgsNyBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKCk7
CiAgICAgdm9pZCB3YWl0Rm9yUmVuZGVyaW5nVXBkYXRlQ29tcGxldGlvbk9yVGltZW91dCgpOwot
ICAgIAorCiAgICAgYm9vbCBjYW5VcGRhdGVMYXllcnNPblNjcm9sbGluZ1RocmVhZCgpIGNvbnN0
OwogCiAgICAgdm9pZCBzY2hlZHVsZURlbGF5ZWRSZW5kZXJpbmdVcGRhdGVEZXRlY3Rpb25UaW1l
cihTZWNvbmRzKTsKQEAgLTEwMyw2ICsxMDYsOSBAQCBwcml2YXRlOgogICAgIFN5bmNocm9uaXph
dGlvblN0YXRlIG1fc3RhdGUgeyBTeW5jaHJvbml6YXRpb25TdGF0ZTo6SWRsZSB9OwogICAgIENv
bmRpdGlvbiBtX3N0YXRlQ29uZGl0aW9uOwogCisgICAgYm9vbCBtX3JlY2VpdmVkQmVnYW5FdmVu
dEZyb21NYWluVGhyZWFkIHsgZmFsc2UgfTsKKyAgICBDb25kaXRpb24gbV93YWl0aW5nRm9yQmVn
YW5FdmVudENvbmRpdGlvbjsKKwogICAgIC8vIER5bmFtaWNhbGx5IGFsbG9jYXRlZCBiZWNhdXNl
IGl0IGhhcyB0byB1c2UgdGhlIFNjcm9sbGluZ1RocmVhZCdzIHJ1bmxvb3AuCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFJ1bkxvb3A6OlRpbWVyPFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4+IG1fZGVsYXll
ZFJlbmRlcmluZ1VwZGF0ZURldGVjdGlvblRpbWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0K
aW5kZXggOTFhZDc1MDkzNTcyM2M5ZTkxNWIxYzc5NTdkOGIyNWY0ZjZjZGEwNy4uZjM0ZjI4YTdm
MDM1ZGI4MWUzYjE1MzIzZWI2NTZiOWMwYjI4ZDU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5t
bQpAQCAtODIsMjggKzgyLDIyIEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRs
ZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAi
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcgLSBz
ZW5kaW5nIGV2ZW50IHRvIHNjcm9sbGluZyB0aHJlYWQsIG5vZGUgIiA8PCB0YXJnZXROb2RlSUQg
PDwgIiBnZXN0dXJlU3RhdGUgIiA8PCBnZXN0dXJlU3RhdGUpOwotICAgIAorCisgICAgYXV0byBk
ZWZlcnJlciA9IFdoZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJlciB7IG1fcGFn
ZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8V2hlZWxF
dmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KHRhcmdldE5vZGVJRCks
IFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmcg
fTsKKwogICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5n
VHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsK
LSAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdo
ZWVsRXZlbnQsIHRhcmdldE5vZGVJRCwgZ2VzdHVyZVN0YXRlXSB7CisgICAgU2Nyb2xsaW5nVGhy
ZWFkOjpkaXNwYXRjaChbdGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCB0YXJnZXRO
b2RlSUQsIGdlc3R1cmVTdGF0ZSwgZGVmZXJyZXIgPSBXVEZNb3ZlKGRlZmVycmVyKV0gewogICAg
ICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJl
YWQod2hlZWxFdmVudCwgdGFyZ2V0Tm9kZUlELCBnZXN0dXJlU3RhdGUpOwogICAgIH0pOwogICAg
IHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdWludDY0X3QgbmV4dERlZmVySWRlbnRpZmllcigp
Ci17Ci0gICAgc3RhdGljIHVpbnQ2NF90IGRlZmVySWRlbnRpZmllcjsKLSAgICByZXR1cm4gKytk
ZWZlcklkZW50aWZpZXI7Ci19Ci0KIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OndoZWVs
RXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50LCBPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4gZ2VzdHVyZVN0YXRl
KQogewotICAgIGF1dG8gZGVmZXJyZXIgPSBXaGVlbEV2ZW50VGVzdE1vbml0b3JDb21wbGV0aW9u
RGVmZXJyZXIgeyBtX3BhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpLmdldCgpLCByZWludGVy
cHJldF9jYXN0PFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVy
PihuZXh0RGVmZXJJZGVudGlmaWVyKCkpLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERP
TUV2ZW50SGFuZGxpbmcgfTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0g
PDwgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWlu
VGhyZWFkICIgPDwgZ2VzdHVyZVN0YXRlKTsKIAogICAgIFJlZlB0cjxUaHJlYWRlZFNjcm9sbGlu
Z1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5n
VHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKLSAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0
aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIGdlc3R1cmVTdGF0ZSwgZGVmZXJyZXIg
PSBXVEZNb3ZlKGRlZmVycmVyKV0gewotICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndo
ZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZ2VzdHVyZVN0YXRl
KTsKLSAgICB9KTsKKyAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZlbnRXYXNQcm9j
ZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZ2VzdHVyZVN0YXRlKTsKIH0KIAogdm9pZCBT
Y3JvbGxpbmdDb29yZGluYXRvck1hYzo6c2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29y
ZGluYXRvck5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3Np
YS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWEuY3BwCmluZGV4IGQwMWM2ZTc5NjE4YTA1NDk1
ZmQxNzg1MWVjNWRhYWExODA1MmRjN2EuLjc1NWRhNDRlMDJlODRiY2FhZTQ3ODMyYjg4ZTUwMGQ3
MmQ4OGNlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29z
aWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAKQEAg
LTgzLDkgKzgzLDggQEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OmhhbmRsZVdo
ZWVsRXZlbnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGUKIAogdm9pZCBTY3JvbGxpbmdD
b29yZGluYXRvck5pY29zaWE6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25hbDxXaGVlbFNjcm9sbEdl
c3R1cmVTdGF0ZT4gZ2VzdHVyZVN0YXRlKQogewotICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0
Y2goW3RocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IG1ha2VSZWYoZG93bmNhc3Q8VGhyZWFkZWRTY3Jv
bGxpbmdUcmVlPigqc2Nyb2xsaW5nVHJlZSgpKSksIHdoZWVsRXZlbnQsIGdlc3R1cmVTdGF0ZV0g
ewotICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQod2hlZWxFdmVudCwgZ2VzdHVyZVN0YXRlKTsKLSAgICB9KTsKKyAgICBSZWZQ
dHI8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiB0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBkb3duY2Fz
dDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSk7CisgICAgdGhyZWFkZWRT
Y3JvbGxpbmdUcmVlLT53aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHdoZWVsRXZl
bnQsIGdlc3R1cmVTdGF0ZSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lh
OjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA4YzNkMjBiOWNjZjgzMGM1
Y2M1MDc3MjMxYWJhYzNiOTM4OTdhMTIyLi4zZGExY2ZlMDQ1ZDg3OWIzMjc5ZWZlOWRiMmM1MDNk
Mzk5NWU1YTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTEzNiwxMiArMTM2LDE3IEBAIHZvaWQgRXZlbnREaXNw
YXRjaGVyOjp3aGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxF
dmVudCYgd2hlCiAgICAgICAgICAgICBzY3JvbGxpbmdUcmVlLT5zZXRNYWluRnJhbWVDYW5SdWJi
ZXJCYW5kKHsgY2FuUnViYmVyQmFuZEF0VG9wLCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgY2FuUnVi
YmVyQmFuZEF0Qm90dG9tLCBjYW5SdWJiZXJCYW5kQXRMZWZ0IH0pOwogCiAgICAgICAgIGF1dG8g
cHJvY2Vzc2luZ1N0ZXBzID0gc2Nyb2xsaW5nVHJlZS0+ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nl
c3NpbmcocGxhdGZvcm1XaGVlbEV2ZW50KTsKLSAgICAgICAgaWYgKCFwcm9jZXNzaW5nU3RlcHMu
Y29udGFpbnMoV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkKSkKLSAg
ICAgICAgICAgIHJldHVybiBwcm9jZXNzaW5nU3RlcHM7CiAKICAgICAgICAgc2Nyb2xsaW5nVHJl
ZS0+d2lsbFByb2Nlc3NXaGVlbEV2ZW50KCk7CiAKICAgICAgICAgU2Nyb2xsaW5nVGhyZWFkOjpk
aXNwYXRjaChbc2Nyb2xsaW5nVHJlZSwgd2hlZWxFdmVudCwgcGxhdGZvcm1XaGVlbEV2ZW50LCBw
cm9jZXNzaW5nU3RlcHMsIHBhZ2VJRCwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7
CisgICAgICAgICAgICBpZiAocHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcpKSB7CisgICAgICAgICAgICAgICAg
c2Nyb2xsaW5nVHJlZS0+d2lsbFNlbmRFdmVudFRvTWFpblRocmVhZChwbGF0Zm9ybVdoZWVsRXZl
bnQpOworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmRpc3BhdGNoV2hlZWxFdmVudFZp
YU1haW5UaHJlYWQocGFnZUlELCB3aGVlbEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMpOworICAgICAg
ICAgICAgICAgIHNjcm9sbGluZ1RyZWUtPndhaXRGb3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5U
aHJlYWQocGxhdGZvcm1XaGVlbEV2ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIAogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdU
cmVlLT5oYW5kbGVXaGVlbEV2ZW50KHBsYXRmb3JtV2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBz
KTsKIAogICAgICAgICAgICAgaWYgKHJlc3VsdC5uZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkp
IHsKQEAgLTE1NywxOCArMTYyLDE0IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAKICAgICAg
ICAgcmV0dXJuIHByb2Nlc3NpbmdTdGVwczsKICAgICB9KCk7Ci0KLSAgICBpZiAocHJvY2Vzc2lu
Z1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVh
ZCkpCi0gICAgICAgIHJldHVybjsKLQogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY2FuUnViYmVy
QmFuZEF0TGVmdCk7CiAgICAgVU5VU0VEX1BBUkFNKGNhblJ1YmJlckJhbmRBdFJpZ2h0KTsKICAg
ICBVTlVTRURfUEFSQU0oY2FuUnViYmVyQmFuZEF0VG9wKTsKICAgICBVTlVTRURfUEFSQU0oY2Fu
UnViYmVyQmFuZEF0Qm90dG9tKTsKLSNlbmRpZgogCiAgICAgZGlzcGF0Y2hXaGVlbEV2ZW50Vmlh
TWFpblRocmVhZChwYWdlSUQsIHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CisjZW5kaWYK
IH0KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjgwNGIwZTJhNGZk
OWNjNmUwMjU2OTAwMTcyNDBmZmY0YjBhMDU2MC4uZmNiYWYwMWFiMjE2ZDA2ZjA2ZjUyNjMxN2Zl
YmJkODk0YjBhZGM2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEyLTAzICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZpcnN0
IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93
LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sOiBNYWtlIG1vcmUgcm9idXN0LgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy13azIvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJl
Y29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQ6IFRlc3Qgbm93IHBhc3NlcyBpbiBXSzIu
CisKIDIwMjAtMTItMDIgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbV1BFXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBHYXJkZW5lZCBzZXZlcmFs
IGZsYWt5IHRpbWVvdXQgZmFpbHVyZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9tYWMvcnViYmVyYmFuZC1vdmVyZmxvdy1pbi13aGVlbC1yZWdpb24tcm9vdC1qaWdn
bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJm
bG93LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCmluZGV4IGNlMzU5MDUxZjE5ZGU4
YmVlMDI4YTVlNmIwMGY0YjM0NGVjYWJhY2EuLjI1MjdlMGYyOWMyZmE4NTlkYzkzYTMyNTQ4NDQx
M2Q1Y2JlNzE3NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9y
dWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdo
ZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCkBAIC01MSwxMCArNTEsMTcgQEAKIAogICAgICAg
ICAgICAgLy8gU2Nyb2xsIGRvd24gdG8gbGF0Y2gsIHRoZW4gdXAgdG8gcnViYmVyYmFuZC4KICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAtMSwgImJlZ2FuIiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwg
Im5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAx
MiwgImNoYW5nZWQiLCAibm9uZSIpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDEyLCAiY2hhbmdlZCIsICJub25lIik7
CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtNSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVu
ZGVyaW5nVXBkYXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAg
ICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJj
aGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1Vw
ZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwg
Im5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwog
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICJlbmRlZCIsICJub25lIik7CiAKICAgICAgICAgICAgIGF3YWl0IFVJSGVs
cGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxh
YmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9ldmVu
dHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1NTE3ZDgzYmE1YmIwOGUzYTMzNTc4NzMy
ZDBkNDhmMzRkZmE2ZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2V2ZW50cy93aGVlbC93aGVl
bC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDExICswLDAgQEAKLVRlc3RzIHRoYXQgZXZlbnRzIGluIHRoZSBnZXN0dXJlIGFyZSBu
b24tY2FuY2VsYWJsZSBpZiBwcmV2ZW50RGVmYXVsdCB3YXMgbm90IGNhbGxlZCBvbiB0aGUgZmly
c3QgZXZlbnQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZmlyc3RXYXND
YW5jZWxhYmxlIGlzIHRydWUKLUZBSUwgYmVjYW1lTm9uQ2FuY2VsYWJsZSBzaG91bGQgYmUgdHJ1
ZSAob2YgdHlwZSBib29sZWFuKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLgot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
</data>
<flag name="review"
          id="432544"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="432567"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415387</attachid>
            <date>2020-12-03 22:00:22 -0800</date>
            <delta_ts>2020-12-03 23:10:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218764-20201203220021.patch</filename>
            <type>text/plain</type>
            <size>37152</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI2ZmRjYjdiYzQ1YTVh
ODZlYTE0MTUzY2I1ZjQ3NmQyN2YzOTY0ZS4uYmI4M2EyMWRkYzUyMGFmYzQyZmIyYjYyZTA4Zjhm
YWZhNzFlYTM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDIwLTEyLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgdGhlIGZp
cnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTI0ODk0Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9y
dG9uLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgV2ViS2l0MiB2ZXJzaW9uIG9mIHIyNzAzMTIs
IHdoZXJlIG9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBpcworICAgICAg
ICBjYW5jZWxhYmxlLgorCisgICAgICAgIFdoZW4gc2Nyb2xsaW5nIG92ZXIgYW4gZWxlbWVudCB3
aXRoIGhhbmRsZXJzLCB3ZSBkbyBldmVudCBoYW5kbGluZyBvbiB0aGUgbWFpbiB0aHJlYWQsCisg
ICAgICAgIHNvIHdlIGNhbiB0YWtlIHRoZSBjb21wdXRlIHZhbHVlIG9mIEV2ZW50SGFuZGxlcidz
IE9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPgorICAgICAgICBmcm9tIHRoZSBmaXJz
dCBldmVudCBhbmQgc2VuZCBpdCBiYWNrIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgorCisgICAg
ICAgIEhvd2V2ZXIsIHRoZSBzY3JvbGxpbmcgdGhyZWFkIG5lZWRzIHRvIGJsb2NrIHVudGlsIHRo
aXMgZmlyc3QgZXZlbnQgY29tZXMgYmFjayBmcm9tCisgICAgICAgIHRoZSBtYWluIHRocmVhZC4g
VG8gYWNoaWV2ZSB0aGlzLCBFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQoKSBub3cgZGlzcGFj
aGVzCisgICAgICAgIG1haW4gdGhyZWFkIHNjcm9sbHMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRocmVh
ZCAobm90IHRoZSBkaXNwYXRjaGVyIHRocmVhZCksIGFuZAorICAgICAgICB3YWl0cyBvbiBtX3dh
aXRpbmdGb3JCZWdhbkV2ZW50Q29uZGl0aW9uIHdpdGggYSA1MG1zIHRpbWVvdXQgZm9yIHRoYXQg
Zmlyc3QgZXZlbnQgdG8KKyAgICAgICAgY29tZSBiYWNrLgorCisgICAgICAgIEluIHRoZSBub3Jt
YWwgY2FzZSwgbWFpbiB0aHJlYWQgaGFuZGxpbmcgZGlzcGF0Y2hlcyB0aGUgZXZlbnQgYmFjayB0
byB0aGUgc2Nyb2xsaW5nCisgICAgICAgIHRocmVhZCBmb3Igc2Nyb2xsaW5nIHZpYSBoYW5kbGVX
aGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKCksIGFuZCB0aGVuIGNhbGxzCisgICAgICAgIHdoZWVs
RXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoKSB0byBzaWduYWwgdGhlIGNvbmRpdGlvbi4g
SWYgZm9yIHNvbWUgcmVhc29uCisgICAgICAgIGhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJl
YWQoKSBkb2Vzbid0IGdldCBjYWxsZWQgKGUuZy4gbm90aGluZyB3YXMgc2Nyb2xsYWJsZSksCisg
ICAgICAgIHRoZW4gd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCgpIHN0aWxsIGdl
dHMgY2FsbGVkIHRvIHNpZ25hbC4KKworICAgICAgICBJZiBtX3dhaXRpbmdGb3JCZWdhbkV2ZW50
Q29uZGl0aW9uIHRpbWVzIG91dCwgdGhlbiB0aGUgc2Nyb2xsaW5nIHRocmVhZCBmYWxscyBiYWNr
CisgICAgICAgIHRvIG5vbi1ibG9ja2luZyBiZWhhdmlvdXIgKGFzIGlmIHRoZSBmaXJzdCBldmVu
dCB3YXMgbm90IGNhbmNlbGVkKS4KKworICAgICAgICBGaW5hbGx5LCB3aGVuIHdlIGtub3cgdGhl
IGdlc3R1cmUgd2lsbCBiZWNvbWUgbm9uLWJsb2NraW5nLCB3ZSB0cmFuc2l0aW9uIHRvIHJ1bm5p
bmcKKyAgICAgICAgdGhlIHNjcm9sbCBmcm9tIHRoZSBzY3JvbGxpbmcgdGhyZWFkLCB3aGljaCBy
ZXF1aXJlcyB0aGF0IHdlIHNldCB1cCBsYXRjaGluZywgaGVuY2UKKyAgICAgICAgdGhlIGNoYW5n
ZXMgaW4gU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci4KKworICAgICAgICBUZXN0ZWQg
YnkgZXhpc3RpbmcgdGVzdHMgaW4gZmFzdC9ldmVudHMvd2hlZWwuCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OndoZWVs
RXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50SW5TY3JvbGxhYmxlQXJlYSk6CisgICAgICAgICogcGFn
ZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8
PCk6CisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaDoKKyAgICAgICAgKiBw
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6
OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWU6OnNldEdlc3R1cmVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpnZXN0dXJlU3RhdGUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OndpbGxTZW5kRXZlbnRUb01h
aW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6d2FpdEZvckV2ZW50
VG9CZVByb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpyZWNlaXZlZFdoZWVsRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6bm9kZURpZEhhbmRs
ZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdD
b250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxl
V2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNj
cm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3aWxsU2VuZEV2ZW50VG9NYWluVGhy
ZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2FpdEZvckV2
ZW50VG9CZVByb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnRGb3JTY3JvbGxpbmcpOiBOZWVkIHRvIHRyYWNr
IGRlZmVycmFsCisgICAgICAgIGZvciBXaGVlbEV2ZW50VGVzdE1vbml0b3IuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5
TWFpblRocmVhZCk6IFRoaXMgaXMgbm93IHN5bmNocm9ub3VzCisgICAgICAgIHRvIHRoZSBzY3Jv
bGxpbmcgdGhyZWFkIHNvIG5vIG5lZWQgZm9yIHRoZSBkZWZlcnJlci4KKyAgICAgICAgKFdlYkNv
cmU6Om5leHREZWZlcklkZW50aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6d2hlZWxFdmVudFdhc1Byb2Nlc3Nl
ZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZl
bnQpOgorCiAyMDIwLTEyLTAzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1lZGlhU2Vzc2lvbkhlbHBlcjo6c2V0U2hhcmVkSGVscGVyKCkgaGFuZ3Mgd2hlbiAi
bWVkaWEgaW4gdGhlIEdQVSBwcm9jZXNzIiBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE1NTJkOTMz
N2NjODQyNTg1YjA4YjJiMzc4MjFlZDM0NmE5ODgwYjguLjRhYTk5MWI2NTg2YWUzYmU0NmZhOTFi
YjQyOTQ3ZWQ3MDI1NmIzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTItMDMg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSB0
aGUgZmlyc3Qgd2hlZWwgZXZlbnQgaW4gYSBnZXN0dXJlIHNob3VsZCBiZSBjYW5jZWxhYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3NjQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMjQ4OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgSW4gRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KCksIGFs
bCB3aGVlbCBldmVudHMgbm93IGJvdW5jZSB0aHJvdWdoIHRoZSBzY3JvbGxpbmcKKyAgICAgICAg
dGhyZWFkLCBldmVuIHRob3NlIGRlc3RpbmVkIGZvciBtYWluIHRocmVhZCBzY3JvbGxpbmcuIFRo
aXMgYWxsb3dzIHRoZSBzY3JvbGxpbmcgdGhyZWFkCisgICAgICAgIHRvIHdhaXQgb24gYSBjb25k
aXRpb24gZm9yIHRoZSBldmVudCB0byBjb21lIGJhY2sgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQg
dmlhCisgICAgICAgIGhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoKSwgc2luY2Ugd2Ug
aGF2ZSB0byBrbm93IHdoZXRoZXIgY29udGVudCBjYWxsZWQKKyAgICAgICAgcHJldmVudERlZmF1
bHQoKSBvbiB0aGUgZmlyc3QgZXZlbnQgYmVmb3JlIHNlbmRpbmcgc3Vic2VxdWVudCBldmVudHMu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KToKKwogMjAyMC0xMi0w
MyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBHUFUg
UHJvY2VzczogU2FuZGJveCB2aW9sYXRpb25zIHVuZGVyIElPU3VyZmFjZTo6bWF4aW11bVNpemUg
aW4gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCAwM2YwYjlkNjgxMmViOTM3Njk2ZjYyNGVlNzcyNWQ4MjRlMGRlYTIyLi42YWJkZGIy
NTYzZTkwNTFmOTRmMGVjODg2YjQ5OGFmYzdmNzFiNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCkBAIC0yNzIyLDggKzI3MjIsMTcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBy
b2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZl
bnQKICAgICByZXR1cm4gZGlkSGFuZGxlRXZlbnQ7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjp3
aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPikKK3ZvaWQgRXZlbnRIYW5kbGVyOjp3aGVlbEV2
ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcpCiB7CisgICAg
dXBkYXRlV2hlZWxHZXN0dXJlU3RhdGUod2hlZWxFdmVudCwgZXZlbnRIYW5kbGluZyk7CisKKyNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorICAgIEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUu
dmlldygpOworICAgIGlmIChhdXRvIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9mcmFtZS5wYWdl
KCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKKyAgICAgICAgaWYgKHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldygqdmlldykpCisgICAgICAg
ICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZCh3aGVlbEV2ZW50LCBtX3doZWVsU2Nyb2xsR2VzdHVyZVN0YXRlKTsKKyAgICB9CisjZW5k
aWYKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OnBsYXRmb3JtQ29tcGxldGVQbGF0Zm9ybVdpZGdl
dFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2lkZ2V0JiwgY29u
c3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mKQpAQCAtMjk4Miw3ICsyOTkxLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnRJbkFwcHJvcHJpYXRlRW5jbG9zaW5nQm94KE5v
ZGUqIHN0YXJ0Tm9kZSwgY28KIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50SW5T
Y3JvbGxhYmxlQXJlYShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9s
bGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50
SGFuZGxpbmcpCiB7CiAgICAgYXV0byBnZXN0dXJlU3RhdGUgPSB1cGRhdGVXaGVlbEdlc3R1cmVT
dGF0ZSh3aGVlbEV2ZW50LCBldmVudEhhbmRsaW5nKTsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsaW5nLCBzdHJlYW0gPDwgIkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudEluU2Nyb2xs
YWJsZUFyZWEoKSAtIGV2ZW50SGFuZGxpbmcgIiA8PCBldmVudEhhbmRsaW5nIDw8ICIgLT4gZ2Vz
dHVyZSBzdGF0ZSAiIDw8IGdlc3R1cmVTdGF0ZSk7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9s
bGluZywgc3RyZWFtIDw8ICJFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnRJblNjcm9sbGFi
bGVBcmVhKCkgIiA8PCBzY3JvbGxhYmxlQXJlYSA8PCAiIC0gZXZlbnRIYW5kbGluZyAiIDw8IGV2
ZW50SGFuZGxpbmcgPDwgIiAtPiBnZXN0dXJlIHN0YXRlICIgPDwgZ2VzdHVyZVN0YXRlKTsKICAg
ICByZXR1cm4gc2Nyb2xsYWJsZUFyZWEuaGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyh3aGVl
bEV2ZW50LCBnZXN0dXJlU3RhdGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVs
RXZlbnRUZXN0TW9uaXRvci5jcHAKaW5kZXggZjY1MjUwZTlmNmNiMTVhYzI4MTBjZGQ3ZmYxYWM0
NGI0ZWI2ODkxOS4uM2ViZWExYTQxYjJhNDJkNGJmZWRkY2EyZTczMmMyZDhmYTM1MmY5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcApAQCAtMTcy
LDcgKzE3Miw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24gcmVhc29uCiAgICAgc3dpdGNoIChyZWFzb24p
IHsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50OiB0
cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQiOyBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50T25NYWluVGhyZWFkOiB0cyA8PCAiaGFuZGxp
bmcgd2hlZWwgZXZlbnQgb24gbWFpbiB0aHJlYWQiOyBicmVhazsKLSAgICBjYXNlIFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRIYW5kbGluZzogdHMgPDwgInJlcG9ydCBET00g
ZXZlbnQgaGFuZGxpbmciOyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6
UG9zdE1haW5UaHJlYWRXaGVlbEV2ZW50SGFuZGxpbmc6IHRzIDw8ICJwb3N0LW1haW4gdGhyZWFk
IGV2ZW50IGhhbmRsaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6
OlJ1YmJlcmJhbmRJblByb2dyZXNzOiB0cyA8PCAicnViYmVyYmFuZGluZyI7IGJyZWFrOwogICAg
IGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxTbmFwSW5Qcm9ncmVzczogdHMgPDwg
InNjcm9sbC1zbmFwcGluZyI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFRlc3RNb25pdG9y
OjpTY3JvbGxpbmdUaHJlYWRTeW5jTmVlZGVkOiB0cyA8PCAic2Nyb2xsaW5nIHRocmVhZCBzeW5j
IG5lZWRlZCI7IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2
ZW50VGVzdE1vbml0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25p
dG9yLmgKaW5kZXggZmY4ZDc3YzQ0NDFjNGYwMjczOGEyMzVjMTJhY2EzMWM4OWE0NWJhOS4uZWUx
MmRlMmQyMTZmMTY2ODViZGZkYWFlZWE2Y2JiZTQ1YjgwYmVjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oCkBAIC00OCwxNCArNDgsMTQgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJBbGxUZXN0RGVmZXJyYWxzKCk7CiAgICAg
CiAgICAgZW51bSBEZWZlclJlYXNvbiB7Ci0gICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudCAgICAg
ICAgICAgICAgPSAxIDw8IDAsCi0gICAgICAgIEhhbmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVh
ZCAgPSAxIDw8IDEsCi0gICAgICAgIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcgICAgICAgICAgPSAx
IDw8IDIsCi0gICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDMs
Ci0gICAgICAgIFNjcm9sbFNuYXBJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDQsCi0gICAg
ICAgIFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQgICAgICAgPSAxIDw8IDUsCi0gICAgICAgIENv
bnRlbnRTY3JvbGxJblByb2dyZXNzICAgICAgICAgPSAxIDw8IDYsCi0gICAgICAgIFJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uICAgICAgICAgPSAxIDw8IDcsCisgICAgICAgIEhhbmRsaW5nV2hlZWxF
dmVudCAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgICAgICBIYW5kbGluZ1doZWVsRXZl
bnRPbk1haW5UaHJlYWQgICAgICA9IDEgPDwgMSwKKyAgICAgICAgUG9zdE1haW5UaHJlYWRXaGVl
bEV2ZW50SGFuZGxpbmcgICAgPSAxIDw8IDIsCisgICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNz
ICAgICAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICBTY3JvbGxTbmFwSW5Qcm9ncmVzcyAg
ICAgICAgICAgICAgICA9IDEgPDwgNCwKKyAgICAgICAgU2Nyb2xsaW5nVGhyZWFkU3luY05lZWRl
ZCAgICAgICAgICAgPSAxIDw8IDUsCisgICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAg
ICAgICAgICAgID0gMSA8PCA2LAorICAgICAgICBSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiAgICAg
ICAgICAgICA9IDEgPDwgNywKICAgICB9OwogICAgIHR5cGVkZWYgY29uc3Qgdm9pZCogU2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRs
ZXJNYWMubW0KaW5kZXggNGEwZWZlZDdjMmRlYzc5YjVmMzFlNWU3MTY4OTc4MmI3MTYxZTFjYi4u
NzE0MTUzNjViYWJhZjVhOTQyM2EyOWY2MWI3ODJmZmUzMmI0OTMxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtOTU0LDcgKzk1NCw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsCiAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGlu
Zywgc3RyZWFtIDw8ICIgIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxp
bmcgcmV0dXJuaW5nICIgPDwgZGlkSGFuZGxlV2hlZWxFdmVudCk7CiAgICAgICAgIHJldHVybiBk
aWRIYW5kbGVXaGVlbEV2ZW50OwogICAgIH0KLSAgICAKKwogICAgIGJvb2wgZGlkSGFuZGxlRXZl
bnQgPSBoYW5kbGVXaGVlbEV2ZW50SW5TY3JvbGxhYmxlQXJlYSh3aGVlbEV2ZW50LCAqdmlldywg
ZXZlbnRIYW5kbGluZyk7CiAgICAgbV9pc0hhbmRsaW5nV2hlZWxFdmVudCA9IGZhbHNlOwogICAg
IHJldHVybiBkaWRIYW5kbGVFdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZjMxZmYyMzU3YjA3YTc2MjI1NzViMzZlNjFlZTY1
NGY0OWIzZjhiZS4uYjIwNTUzMmIyMzM1OGIyOTliNTk5N2Q3NDcwZDgzYWE4ZTMwM2UyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAg
LTczLDYgKzczLDggQEAgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IFNjcm9s
bGluZ1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW4KICAgICAgICAgTE9HX1dJVEhf
U1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmRldGVybWlu
ZVdoZWVsRXZlbnRQcm9jZXNzaW5nICIgPDwgd2hlZWxFdmVudCA8PCAiIGhhdmUgbGF0Y2hlZCBu
b2RlICIgPDwgbGF0Y2hlZE5vZGVBbmRTdGVwcy0+c2Nyb2xsaW5nTm9kZUlEIDw8ICIgc3RlcHMg
IiA8PCBsYXRjaGVkTm9kZUFuZFN0ZXBzLT5wcm9jZXNzaW5nU3RlcHMpOwogICAgICAgICByZXR1
cm4gbGF0Y2hlZE5vZGVBbmRTdGVwcy0+cHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0KKyAgICBpZiAo
d2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpIHx8IHdoZWVsRXZlbnQuaXNOb25HZXN0dXJlRXZl
bnQoKSkKKyAgICAgICAgbV90cmVlU3RhdGUuZ2VzdHVyZVN0YXRlID0gV1RGOjpudWxsb3B0Owog
CiAgICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBbJl0oKSAtPiBPcHRpb25TZXQ8V2hlZWxFdmVu
dFByb2Nlc3NpbmdTdGVwcz4gewogICAgICAgICBpZiAoIW1fcm9vdE5vZGUpCkBAIC05Niw4ICs5
OCwxMiBAQCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gU2Nyb2xsaW5nVHJl
ZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbgogCiAjaWYgRU5BQkxFKFdIRUVMX0VWRU5U
X1JFR0lPTlMpCiAgICAgICAgIGF1dG8gZXZlbnRMaXN0ZW5lclR5cGVzID0gZXZlbnRMaXN0ZW5l
clJlZ2lvblR5cGVzRm9yUG9pbnQocG9zaXRpb24pOwotICAgICAgICBpZiAoZXZlbnRMaXN0ZW5l
clR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwp
KQorICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lclR5cGVzLmNvbnRhaW5zKEV2ZW50TGlzdGVuZXJS
ZWdpb25UeXBlOjpOb25QYXNzaXZlV2hlZWwpKSB7CisgICAgICAgICAgICBpZiAobV90cmVlU3Rh
dGUuZ2VzdHVyZVN0YXRlLnZhbHVlT3IoV2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU6OkJsb2NraW5n
KSA9PSBXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZTo6Tm9uQmxvY2tpbmcpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkLCBX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yTm9uQmxvY2tpbmdET01FdmVu
dERpc3BhdGNoIH07CisKICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICAgICAgfQogCiAg
ICAgICAgIGlmIChldmVudExpc3RlbmVyVHlwZXMuY29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lv
blR5cGU6OldoZWVsKSkKICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6OlNjcm9sbGluZ1RocmVhZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRo
cmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OwpAQCAtNDgyLDYgKzQ4OCwxOCBA
QCB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9p
bnQgcG9zaXRpb24pCiAgICAgbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24gPSBw
b3NpdGlvbjsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRHZXN0dXJlU3RhdGUoT3B0aW9u
YWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+IGdlc3R1cmVTdGF0ZSkKK3sKKyAgICBMb2NrSG9s
ZGVyIGxvY2sobV90cmVlU3RhdGVNdXRleCk7CisgICAgbV90cmVlU3RhdGUuZ2VzdHVyZVN0YXRl
ID0gZ2VzdHVyZVN0YXRlOworfQorCitPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4g
U2Nyb2xsaW5nVHJlZTo6Z2VzdHVyZVN0YXRlKCkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2sobV90
cmVlU3RhdGVNdXRleCk7CisgICAgcmV0dXJuIG1fdHJlZVN0YXRlLmdlc3R1cmVTdGF0ZTsKK30K
KwogVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQo
Y29uc3QgQXRvbVN0cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCBwKQogewogICAgIExvY2tIb2xk
ZXIgbG9jayhtX3RyZWVTdGF0ZU11dGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBiMWU4MTQ3NjAwNTZlYzIxZDVhYzY3MGQ5YTdiMGU2
YmVjMjgwOGMzLi44NWRlMWVjNzY3MjQwNWFhODI1YzAyMmY4NjcwNDY5YTA1ZjE2YzlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0yMTAs
NiArMjEwLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2NrTGF5ZXJzRm9ySGl0VGVz
dGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkg
eyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRFdmVudFRvTWFpblRocmVhZChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2FpdEZvckV2ZW50VG9C
ZVByb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSB7IH07CisK
ICAgICBMb2NrJiB0cmVlTXV0ZXgoKSB7IHJldHVybiBtX3RyZWVNdXRleDsgfQogCiAgICAgdm9p
ZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQsIE9wdGlvbmFsPHVuc2ln
bmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKQEAgLTI0NSw2ICsyNDgsOSBAQCBwcm90ZWN0
ZWQ6CiAgICAgRmxvYXRQb2ludCBtYWluRnJhbWVTY3JvbGxQb3NpdGlvbigpIGNvbnN0OwogICAg
IHZvaWQgc2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2ludCk7CiAKKyAgICB2b2lk
IHNldEdlc3R1cmVTdGF0ZShPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1cmVTdGF0ZT4pOworICAg
IE9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPiBnZXN0dXJlU3RhdGUoKTsKKwogICAg
IE9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKCk7CiAKICAgICB2b2lk
IGFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpOwpAQCAtMjg1LDYgKzI5MSw3IEBAIHByaXZh
dGU6CiAgICAgICAgIEZsb2F0UG9pbnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb247CiAgICAgICAg
IFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCB7IDAgfTsKICAgICAgICAgT3B0aW9uYWw8dW5z
aWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQ7CisgICAgICAgIE9wdGlvbmFsPFdoZWVsU2Ny
b2xsR2VzdHVyZVN0YXRlPiBnZXN0dXJlU3RhdGU7CiAgICAgICAgIEhhc2hTZXQ8U2Nyb2xsaW5n
Tm9kZUlEPiBub2Rlc1dpdGhBY3RpdmVSdWJiZXJCYW5kaW5nOwogICAgICAgICBIYXNoU2V0PFNj
cm9sbGluZ05vZGVJRD4gbm9kZXNXaXRoQWN0aXZlU2Nyb2xsU25hcDsKICAgICAgICAgSGFzaFNl
dDxTY3JvbGxpbmdOb2RlSUQ+IG5vZGVzV2l0aEFjdGl2ZVVzZXJTY3JvbGxzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
TGF0Y2hpbmdDb250cm9sbGVyLmNwcAppbmRleCBkMGUwNGZjZjM3NDFjODE0ZThhNGNkMzk5YTg4
OWFmZDY4NzJjY2Y1Li4yMzNlYzBjNjRkYWIyNjkxNmM4MGM1MWQyM2NjZDIyMTk4OTM0MDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0
Y2hpbmdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcApAQCAtNDEsMTUgKzQxLDE4IEBAIHN0
YXRpYyBjb25zdCBTZWNvbmRzIHJlc2V0TGF0Y2hlZFN0YXRlVGltZW91dCB7IDEwMF9tcyB9Owog
CiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpTY3JvbGxpbmdUcmVlTGF0Y2hpbmdD
b250cm9sbGVyKCkgPSBkZWZhdWx0OwogCi12b2lkIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXI6OnJlY2VpdmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiwgYm9vbCBhbGxvd0xh
dGNoaW5nKQordm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpyZWNlaXZlZFdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBzLCBib29sIGFsbG93TGF0
Y2hpbmcpCiB7CiAgICAgaWYgKCFhbGxvd0xhdGNoaW5nKQogICAgICAgICByZXR1cm47CiAKICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOwotICAgIGlmICh3aGVlbEV2
ZW50LmlzR2VzdHVyZVN0YXJ0KCkgJiYgbV9sYXRjaGVkTm9kZUFuZFN0ZXBzICYmICFsYXRjaGVk
Tm9kZUlzUmVsZXZhbnQoKSkgewotICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hp
bmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlciAiIDw8IHRoaXMg
PDwgIiByZWNlaXZlZFdoZWVsRXZlbnQgLSAiIDw8IChNb25vdG9uaWNUaW1lOjpub3coKSAtIG1f
bGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWUpLm1pbGxpc2Vjb25kcygpIDw8ICJtcyBzaW5j
ZSBsYXN0IGV2ZW50LCBjbGVhcmluZyBsYXRjaGVkIG5vZGUiKTsKLSAgICAgICAgbV9sYXRjaGVk
Tm9kZUFuZFN0ZXBzLnJlc2V0KCk7CisgICAgaWYgKHdoZWVsRXZlbnQuaXNHZXN0dXJlU3RhcnQo
KSAmJiAhbGF0Y2hlZE5vZGVJc1JlbGV2YW50KCkpIHsKKyAgICAgICAgaWYgKG1fbGF0Y2hlZE5v
ZGVBbmRTdGVwcykgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5n
LCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIgIiA8PCB0aGlzIDw8
ICIgcmVjZWl2ZWRXaGVlbEV2ZW50IC0gIiA8PCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2xh
c3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lKS5taWxsaXNlY29uZHMoKSA8PCAibXMgc2luY2Ug
bGFzdCBldmVudCwgY2xlYXJpbmcgbGF0Y2hlZCBub2RlIik7CisgICAgICAgICAgICBtX2xhdGNo
ZWROb2RlQW5kU3RlcHMucmVzZXQoKTsKKyAgICAgICAgfQorICAgICAgICBtX3Byb2Nlc3NpbmdT
dGVwc0ZvckN1cnJlbnRHZXN0dXJlID0gcHJvY2Vzc2luZ1N0ZXBzOwogICAgIH0KIH0KIApAQCAt
OTYsOSArOTksMjcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpub2Rl
RGlkSGFuZGxlRXZlbnQoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhKCkuaXNaZXJvKCkgfHwgIXdoZWVsRXZl
bnQuaXNHZXN0dXJlU3RhcnQoKSkKKyAgICBhdXRvIHNob3VsZExhdGNoID0gWyZdKCkgeworICAg
ICAgICBpZiAod2hlZWxFdmVudC5kZWx0YSgpLmlzWmVybygpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIGlmICh3aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBpZiAoIXdoZWVsRXZlbnQuaXNHZXN0dXJl
Q29udGludWF0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYg
KG1fcHJvY2Vzc2luZ1N0ZXBzRm9yQ3VycmVudEdlc3R1cmUudmFsdWVPcihPcHRpb25TZXQ8V2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4geyB9KS5jb250YWlucyhXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nKSAmJiBwcm9jZXNzaW5nU3RlcHMuY29udGFp
bnMoV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIAor
ICAgIGlmICghc2hvdWxkTGF0Y2goKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9wcm9jZXNz
aW5nU3RlcHNGb3JDdXJyZW50R2VzdHVyZSA9IHByb2Nlc3NpbmdTdGVwczsKKwogICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTGF0Y2hp
bmdDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIG5vZGVEaWRIYW5kbGVFdmVudDogbGF0Y2hpbmcg
dG8gIiA8PCBzY3JvbGxpbmdOb2RlSUQpOwogICAgIG1fbGF0Y2hlZE5vZGVBbmRTdGVwcyA9IFNj
cm9sbGluZ05vZGVBbmRQcm9jZXNzaW5nU3RlcHMgeyBzY3JvbGxpbmdOb2RlSUQsIHByb2Nlc3Np
bmdTdGVwcyB9OwogICAgIG1fbGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWUgPSBNb25vdG9u
aWNUaW1lOjpub3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaAppbmRleCBiZWU1OTMx
NWI1ZDZlM2YwNWE1OTlmYWMwYTNiOWIwODc1ZTE3MDhhLi42NDE4ZWE4ODU3MzcwOWU2NDFhM2Nm
MzE3ODg3YTk2NGNlM2NlZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5oCkBAIC02
NCw2ICs2NCw3IEBAIHByaXZhdGU6CiAKICAgICBtdXRhYmxlIExvY2sgbV9sYXRjaGVkTm9kZU11
dGV4OwogICAgIE9wdGlvbmFsPFNjcm9sbGluZ05vZGVBbmRQcm9jZXNzaW5nU3RlcHM+IG1fbGF0
Y2hlZE5vZGVBbmRTdGVwczsKKyAgICBPcHRpb25hbDxPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwcz4+IG1fcHJvY2Vzc2luZ1N0ZXBzRm9yQ3VycmVudEdlc3R1cmU7CiAgICAgTW9u
b3RvbmljVGltZSBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5jcHAKaW5kZXggNTk3ZTQ2NzcyZTk0MTdmNzIyYzZkYjkzYjNhZDExMDMxNDA4MGExZS4uODJl
MDdiY2I4NTAwYjgxOGJjMjQyNTk5MWU4OTA0YTdkMjFkM2Q1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBA
IC02NCwyMSArNjQsNzQgQEAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFRocmVhZGVkU2Nyb2xs
aW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVcKICAgICByZXR1cm4gU2Ny
b2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMp
OwogfQogCi1ib29sIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVy
TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGlu
Z05vZGVJRCB0YXJnZXROb2RlSUQsIE9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPikK
K2Jvb2wgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhy
ZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlE
IHRhcmdldE5vZGVJRCwgT3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+IGdlc3R1cmVT
dGF0ZSkKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCAiIDw8IHdo
ZWVsRXZlbnQgPDwgIiBub2RlICIgPDwgdGFyZ2V0Tm9kZUlEKTsKKyAgICBBU1NFUlQoU2Nyb2xs
aW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7CisKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsaW5nLCBzdHJlYW0gPDwgIlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVu
dEFmdGVyTWFpblRocmVhZCAiIDw8IHdoZWVsRXZlbnQgPDwgIiBub2RlICIgPDwgdGFyZ2V0Tm9k
ZUlEIDw8ICIgZ2VzdHVyZVN0YXRlICIgPDwgZ2VzdHVyZVN0YXRlKTsKIAogICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fdHJlZU11dGV4KTsKIAotICAgIFNldEZvclNjb3BlPGJvb2w+IGRpc2FsbG93
TGF0Y2hpbmdTY29wZShtX2FsbG93TGF0Y2hpbmcsIGZhbHNlKTsKKyAgICBib29sIGFsbG93TGF0
Y2hpbmcgPSBmYWxzZTsKKyAgICBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4g
cHJvY2Vzc2luZ1N0ZXBzOworICAgIGlmIChnZXN0dXJlU3RhdGUudmFsdWVPcihXaGVlbFNjcm9s
bEdlc3R1cmVTdGF0ZTo6QmxvY2tpbmcpID09IFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlOjpOb25C
bG9ja2luZykgeworICAgICAgICBhbGxvd0xhdGNoaW5nID0gdHJ1ZTsKKyAgICAgICAgcHJvY2Vz
c2luZ1N0ZXBzID0geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQs
IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2
ZW50RGlzcGF0Y2ggfTsKKyAgICB9CisKKyAgICBTZXRGb3JTY29wZTxib29sPiBkaXNhbGxvd0xh
dGNoaW5nU2NvcGUobV9hbGxvd0xhdGNoaW5nLCBhbGxvd0xhdGNoaW5nKTsKICAgICBSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+IHRhcmdldE5vZGUgPSBub2RlRm9ySUQodGFyZ2V0Tm9kZUlEKTsK
LSAgICBhdXRvIHJlc3VsdCA9IGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVlbEV2ZW50LCB7
IH0sIHRhcmdldE5vZGUuZ2V0KCksIEV2ZW50VGFyZ2V0aW5nOjpOb2RlT25seSk7CisgICAgYXV0
byByZXN1bHQgPSBoYW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUod2hlZWxFdmVudCwgcHJvY2Vzc2lu
Z1N0ZXBzLCB0YXJnZXROb2RlLmdldCgpLCBFdmVudFRhcmdldGluZzo6Tm9kZU9ubHkpOwogICAg
IHJldHVybiByZXN1bHQud2FzSGFuZGxlZDsKIH0KIAotdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiwgT3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+KQordm9pZCBUaHJlYWRl
ZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25hbDxXaGVlbFNjcm9sbEdlc3R1
cmVTdGF0ZT4gZ2VzdHVyZVN0YXRlKQoreworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcs
IHN0cmVhbSA8PCAiVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2Vk
QnlNYWluVGhyZWFkIC0gZ2VzdHVyZVN0YXRlICIgPDwgZ2VzdHVyZVN0YXRlKTsKKworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVl
TXV0ZXgpOworICAgIGlmIChtX3JlY2VpdmVkQmVnYW5FdmVudEZyb21NYWluVGhyZWFkIHx8ICF3
aGVlbEV2ZW50LmlzR2VzdHVyZVN0YXJ0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNldEdl
c3R1cmVTdGF0ZShnZXN0dXJlU3RhdGUpOworCisgICAgbV9yZWNlaXZlZEJlZ2FuRXZlbnRGcm9t
TWFpblRocmVhZCA9IHRydWU7CisgICAgbV93YWl0aW5nRm9yQmVnYW5FdmVudENvbmRpdGlvbi5u
b3RpZnlPbmUoKTsKK30KKwordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndpbGxTZW5kRXZl
bnRUb01haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikKK3sKKyAgICBBU1NFUlQo
U2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQoKSk7CisKKyAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX3RyZWVNdXRleCk7CisgICAgbV9yZWNlaXZlZEJlZ2FuRXZlbnRGcm9tTWFpblRocmVh
ZCA9IGZhbHNlOworfQorCit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2FpdEZvckV2ZW50
VG9CZVByb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQpCiB7Ci0gICAgLy8gRklYTUU6IFNldCBzdGF0ZSBiYXNlZCBvbiBFdmVudEhhbmRsaW5n
IGZsYWdzLgorICAgIEFTU0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpKTsK
KworICAgIGlmICghd2hlZWxFdmVudC5pc0dlc3R1cmVTdGFydCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVNdXRleCk7CisKKyAgICBzdGF0aWMgY29u
c3RleHByIGF1dG8gbWF4QWxsb3dhYmxlTWFpblRocmVhZERlbGF5ID0gNTBfbXM7CisgICAgYXV0
byBzdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBhdXRvIHRpbWVvdXRUaW1l
ID0gc3RhcnRUaW1lICsgbWF4QWxsb3dhYmxlTWFpblRocmVhZERlbGF5OworCisgICAgYm9vbCBy
ZWNlaXZlZEV2ZW50ID0gbV93YWl0aW5nRm9yQmVnYW5FdmVudENvbmRpdGlvbi53YWl0VW50aWwo
bV90cmVlTXV0ZXgsIHRpbWVvdXRUaW1lLCBbJl0geworICAgICAgICByZXR1cm4gbV9yZWNlaXZl
ZEJlZ2FuRXZlbnRGcm9tTWFpblRocmVhZDsKKyAgICB9KTsKKworICAgIGlmICghcmVjZWl2ZWRF
dmVudCkgeworICAgICAgICAvLyBUaW1lZCBvdXQsIGdvIGFzeW5jaHJvbm91cy4KKyAgICAgICAg
c2V0R2VzdHVyZVN0YXRlKFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlOjpOb25CbG9ja2luZyk7Cisg
ICAgfQorCisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJUaHJlYWRl
ZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JCZWdhbkV2ZW50RnJvbU1haW5UaHJlYWQgZG9uZSAtIHRp
bWVkIG91dCAiIDw8ICFyZWNlaXZlZEV2ZW50IDw8ICIgZ2VzdHVyZSBzdGF0ZSBpcyAiIDw8IGdl
c3R1cmVTdGF0ZSgpKTsKIH0KIAogdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmludmFsaWRh
dGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuaAppbmRleCA5MzVmZDdkY2NlZTYxYzI0M2ZhOTQxMGM5Y2M4MDM1YWVkYjU1
YzZmLi5jOWU0ZGE3NTE0MDFkMWVlMDczYzUyMmI4MjM4NDFiOTQ2ODhmZGJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aApAQCAtNTAsNiArNTAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50QWZ0
ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCwg
T3B0aW9uYWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+KTsKICAgICB2b2lkIHdoZWVsRXZlbnRX
YXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9u
YWw8V2hlZWxTY3JvbGxHZXN0dXJlU3RhdGU+KTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
d2lsbFNlbmRFdmVudFRvTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5h
bDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdhaXRGb3JFdmVudFRvQmVQcm9jZXNzZWRCeU1h
aW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWw7CisKICAgICB2b2lkIGlu
dmFsaWRhdGUoKSBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheURp
ZFJlZnJlc2goUGxhdGZvcm1EaXNwbGF5SUQpOwpAQCAtODUsNyArODgsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKCk7CiAgICAgdm9p
ZCB3YWl0Rm9yUmVuZGVyaW5nVXBkYXRlQ29tcGxldGlvbk9yVGltZW91dCgpOwotICAgIAorCiAg
ICAgYm9vbCBjYW5VcGRhdGVMYXllcnNPblNjcm9sbGluZ1RocmVhZCgpIGNvbnN0OwogCiAgICAg
dm9pZCBzY2hlZHVsZURlbGF5ZWRSZW5kZXJpbmdVcGRhdGVEZXRlY3Rpb25UaW1lcihTZWNvbmRz
KTsKQEAgLTEwMyw2ICsxMDYsOSBAQCBwcml2YXRlOgogICAgIFN5bmNocm9uaXphdGlvblN0YXRl
IG1fc3RhdGUgeyBTeW5jaHJvbml6YXRpb25TdGF0ZTo6SWRsZSB9OwogICAgIENvbmRpdGlvbiBt
X3N0YXRlQ29uZGl0aW9uOwogCisgICAgYm9vbCBtX3JlY2VpdmVkQmVnYW5FdmVudEZyb21NYWlu
VGhyZWFkIHsgZmFsc2UgfTsKKyAgICBDb25kaXRpb24gbV93YWl0aW5nRm9yQmVnYW5FdmVudENv
bmRpdGlvbjsKKwogICAgIC8vIER5bmFtaWNhbGx5IGFsbG9jYXRlZCBiZWNhdXNlIGl0IGhhcyB0
byB1c2UgdGhlIFNjcm9sbGluZ1RocmVhZCdzIHJ1bmxvb3AuCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFJ1bkxvb3A6OlRpbWVyPFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4+IG1fZGVsYXllZFJlbmRlcmlu
Z1VwZGF0ZURldGVjdGlvblRpbWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggOTFh
ZDc1MDkzNTcyM2M5ZTkxNWIxYzc5NTdkOGIyNWY0ZjZjZGEwNy4uZWE3N2Y5ZTFiN2Y5MWMwMTVk
M2M0MjY3NjZmMTJhNDNiY2ZiZmZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtODEs
MjkgKzgxLDIzIEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmhhbmRsZVdoZWVsRXZl
bnRGb3JTY3JvbGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2CiAgICAgaWYgKHNjcm9sbGluZ1Ry
ZWUoKS0+d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSh3aGVlbEV2ZW50KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFt
IDw8ICJTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGlu
ZyAtIHNlbmRpbmcgZXZlbnQgdG8gc2Nyb2xsaW5nIHRocmVhZCwgbm9kZSAiIDw8IHRhcmdldE5v
ZGVJRCA8PCAiIGdlc3R1cmVTdGF0ZSAiIDw8IGdlc3R1cmVTdGF0ZSk7Ci0gICAgCisgICAgTE9H
X1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdDb29yZGluYXRvck1h
Yzo6aGFuZGxlV2hlZWxFdmVudEZvclNjcm9sbGluZyAiIDw8IHdoZWVsRXZlbnQgPDwgIiAtIHNl
bmRpbmcgZXZlbnQgdG8gc2Nyb2xsaW5nIHRocmVhZCwgbm9kZSAiIDw8IHRhcmdldE5vZGVJRCA8
PCAiIGdlc3R1cmVTdGF0ZSAiIDw8IGdlc3R1cmVTdGF0ZSk7CisKKyAgICBhdXRvIGRlZmVycmVy
ID0gV2hlZWxFdmVudFRlc3RNb25pdG9yQ29tcGxldGlvbkRlZmVycmVyIHsgbV9wYWdlLT53aGVl
bEV2ZW50VGVzdE1vbml0b3IoKS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVz
dE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllcj4odGFyZ2V0Tm9kZUlEKSwgV2hlZWxF
dmVudFRlc3RNb25pdG9yOjpQb3N0TWFpblRocmVhZFdoZWVsRXZlbnRIYW5kbGluZyB9OworCiAg
ICAgUmVmUHRyPFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4gdGhyZWFkZWRTY3JvbGxpbmdUcmVlID0g
ZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPihzY3JvbGxpbmdUcmVlKCkpOwotICAgIFNj
cm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3RocmVhZGVkU2Nyb2xsaW5nVHJlZSwgd2hlZWxFdmVu
dCwgdGFyZ2V0Tm9kZUlELCBnZXN0dXJlU3RhdGVdIHsKKyAgICBTY3JvbGxpbmdUaHJlYWQ6OmRp
c3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIHRhcmdldE5vZGVJRCwg
Z2VzdHVyZVN0YXRlLCBkZWZlcnJlciA9IFdURk1vdmUoZGVmZXJyZXIpXSB7CiAgICAgICAgIHRo
cmVhZGVkU2Nyb2xsaW5nVHJlZS0+aGFuZGxlV2hlZWxFdmVudEFmdGVyTWFpblRocmVhZCh3aGVl
bEV2ZW50LCB0YXJnZXROb2RlSUQsIGdlc3R1cmVTdGF0ZSk7CiAgICAgfSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXN0YXRpYyB1aW50NjRfdCBuZXh0RGVmZXJJZGVudGlmaWVyKCkKLXsKLSAg
ICBzdGF0aWMgdWludDY0X3QgZGVmZXJJZGVudGlmaWVyOwotICAgIHJldHVybiArK2RlZmVySWRl
bnRpZmllcjsKLX0KLQogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQsIE9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0YXRlPiBnZXN0dXJlU3RhdGUpCiB7Ci0g
ICAgYXV0byBkZWZlcnJlciA9IFdoZWVsRXZlbnRUZXN0TW9uaXRvckNvbXBsZXRpb25EZWZlcnJl
ciB7IG1fcGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkuZ2V0KCksIHJlaW50ZXJwcmV0X2Nh
c3Q8V2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXI+KG5leHRE
ZWZlcklkZW50aWZpZXIoKSksIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRI
YW5kbGluZyB9OworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQg
IiA8PCBnZXN0dXJlU3RhdGUpOwogCiAgICAgUmVmUHRyPFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4g
dGhyZWFkZWRTY3JvbGxpbmdUcmVlID0gZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPihz
Y3JvbGxpbmdUcmVlKCkpOwotICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3RocmVhZGVk
U2Nyb2xsaW5nVHJlZSwgd2hlZWxFdmVudCwgZ2VzdHVyZVN0YXRlLCBkZWZlcnJlciA9IFdURk1v
dmUoZGVmZXJyZXIpXSB7Ci0gICAgICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVu
dFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3aGVlbEV2ZW50LCBnZXN0dXJlU3RhdGUpOwotICAg
IH0pOworICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5
TWFpblRocmVhZCh3aGVlbEV2ZW50LCBnZXN0dXJlU3RhdGUpOwogfQogCiB2b2lkIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjOjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Tmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAKaW5kZXggZDAxYzZlNzk2MThhMDU0OTVmZDE3ODUx
ZWM1ZGFhYTE4MDUyZGM3YS4uNzU1ZGE0NGUwMmU4NGJjYWFlNDc4MzJiODhlNTAwZDcyZDg4Y2Uy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3Jv
bGxpbmdDb29yZGluYXRvck5pY29zaWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcApAQCAtODMsOSAr
ODMsOCBAQCBib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVu
dEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZQogCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yTmljb3NpYTo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvbmFsPFdoZWVsU2Nyb2xsR2VzdHVyZVN0
YXRlPiBnZXN0dXJlU3RhdGUpCiB7Ci0gICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChbdGhy
ZWFkZWRTY3JvbGxpbmdUcmVlID0gbWFrZVJlZihkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU+KCpzY3JvbGxpbmdUcmVlKCkpKSwgd2hlZWxFdmVudCwgZ2VzdHVyZVN0YXRlXSB7Ci0gICAg
ICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZCh3aGVlbEV2ZW50LCBnZXN0dXJlU3RhdGUpOwotICAgIH0pOworICAgIFJlZlB0cjxUaHJl
YWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25jYXN0PFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKKyAgICB0aHJlYWRlZFNjcm9sbGlu
Z1RyZWUtPndoZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZ2Vz
dHVyZVN0YXRlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OnNjaGVk
dWxlVHJlZVN0YXRlQ29tbWl0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1X
aGVlbEV2ZW50LmgKaW5kZXggZDY1OTU4NTNjMTlkNDUxZGVhMGFmYTg0MjQwNmE1ZTE3YzZlOGNk
Ny4uZDcxNjkzNDZhMjQwMjNjMmE0Nzg3YWUzNDU0MGEzNzYwN2MwYTJkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTIwOCw3ICsyMDgsOCBA
QCBpbmxpbmUgYm9vbCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OnVzZUxhdGNoZWRFdmVudEVsZW1lbnQo
KSBjb25zdAogICAgICAgICB8fCBtX3BoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpD
aGFuZ2VkCiAgICAgICAgIHx8IG1fbW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZTo6QmVnYW4KICAgICAgICAgfHwgbV9tb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlOjpDaGFuZ2VkCi0gICAgICAgIHx8IChtX3BoYXNlID09IFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlOjpFbmRlZCAmJiBtX21vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2U6Ok5vbmUpOworICAgICAgICB8fCAobV9waGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZTo6RW5kZWQgJiYgbV9tb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
OjpOb25lKQorICAgICAgICB8fCAobV9waGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6
Tm9uZSAmJiBtX21vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkVuZGVk
KTsKIH0KIAogaW5saW5lIGJvb2wgUGxhdGZvcm1XaGVlbEV2ZW50Ojppc0dlc3R1cmVDb250aW51
YXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggOGMzZDIwYjljY2Y4MzBjNWNjNTA3NzIzMWFiYWMz
YjkzODk3YTEyMi4uM2RhMWNmZTA0NWQ4NzliMzI3OWVmZTlkYjJjNTAzZDM5OTVlNWE5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwCkBAIC0xMzYsMTIgKzEzNiwxNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxF
dmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZQogICAg
ICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+c2V0TWFpbkZyYW1lQ2FuUnViYmVyQmFuZCh7IGNhblJ1
YmJlckJhbmRBdFRvcCwgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGNhblJ1YmJlckJhbmRBdEJvdHRv
bSwgY2FuUnViYmVyQmFuZEF0TGVmdCB9KTsKIAogICAgICAgICBhdXRvIHByb2Nlc3NpbmdTdGVw
cyA9IHNjcm9sbGluZ1RyZWUtPmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKHBsYXRmb3Jt
V2hlZWxFdmVudCk7Ci0gICAgICAgIGlmICghcHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCkpCi0gICAgICAgICAgICByZXR1
cm4gcHJvY2Vzc2luZ1N0ZXBzOwogCiAgICAgICAgIHNjcm9sbGluZ1RyZWUtPndpbGxQcm9jZXNz
V2hlZWxFdmVudCgpOwogCiAgICAgICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3Njcm9s
bGluZ1RyZWUsIHdoZWVsRXZlbnQsIHBsYXRmb3JtV2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBz
LCBwYWdlSUQsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICAgICAg
aWYgKHByb2Nlc3NpbmdTdGVwcy5jb250YWlucyhXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpN
YWluVGhyZWFkRm9yU2Nyb2xsaW5nKSkgeworICAgICAgICAgICAgICAgIHNjcm9sbGluZ1RyZWUt
PndpbGxTZW5kRXZlbnRUb01haW5UaHJlYWQocGxhdGZvcm1XaGVlbEV2ZW50KTsKKyAgICAgICAg
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFkKHBh
Z2VJRCwgd2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBzKTsKKyAgICAgICAgICAgICAgICBzY3Jv
bGxpbmdUcmVlLT53YWl0Rm9yRXZlbnRUb0JlUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHBsYXRmb3Jt
V2hlZWxFdmVudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAg
ICAgICAKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gc2Nyb2xsaW5nVHJlZS0+aGFuZGxlV2hl
ZWxFdmVudChwbGF0Zm9ybVdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CiAKICAgICAgICAg
ICAgIGlmIChyZXN1bHQubmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZygpKSB7CkBAIC0xNTcsMTgg
KzE2MiwxNCBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZQogCiAgICAgICAgIHJldHVybiBwcm9j
ZXNzaW5nU3RlcHM7CiAgICAgfSgpOwotCi0gICAgaWYgKHByb2Nlc3NpbmdTdGVwcy5jb250YWlu
cyhXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQpKQotICAgICAgICBy
ZXR1cm47Ci0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNhblJ1YmJlckJhbmRBdExlZnQpOwog
ICAgIFVOVVNFRF9QQVJBTShjYW5SdWJiZXJCYW5kQXRSaWdodCk7CiAgICAgVU5VU0VEX1BBUkFN
KGNhblJ1YmJlckJhbmRBdFRvcCk7CiAgICAgVU5VU0VEX1BBUkFNKGNhblJ1YmJlckJhbmRBdEJv
dHRvbSk7Ci0jZW5kaWYKIAogICAgIGRpc3BhdGNoV2hlZWxFdmVudFZpYU1haW5UaHJlYWQocGFn
ZUlELCB3aGVlbEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMpOworI2VuZGlmCiB9CiAKICNpZiBFTkFC
TEUoTUFDX0dFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI4MDRiMGUyYTRmZDljYzZlMDI1NjkwMDE3
MjQwZmZmNGIwYTA1NjAuLjNmMTc2YjA5NTkzNzFhN2QxODZhZGQxZmNhNWUyZjFlY2E4MDBjNmYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBPbmx5IHRoZSBmaXJzdCB3aGVlbCBldmVudCBp
biBhIGdlc3R1cmUgc2hvdWxkIGJlIGNhbmNlbGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODc2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzEyNDg5NDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAq
IGZhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1y
b290LWppZ2dsZS5odG1sOiBNYWtlIG1vcmUgcm9idXN0LgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy13azIvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJs
ZS1leHBlY3RlZC50eHQ6IFRlc3Qgbm93IHBhc3NlcyBpbiBXSzIuCisKIDIwMjAtMTItMDIgIERp
ZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVbnJl
dmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBHYXJkZW5lZCBzZXZlcmFsIGZsYWt5IHRpbWVvdXQgZmFp
bHVyZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9z
Y3JvbGwtbGF0Y2hlZC1uZXN0ZWQtZGl2Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9sYXRjaGluZy9zY3JvbGwtbGF0Y2hlZC1uZXN0ZWQtZGl2Lmh0bWwKaW5kZXggMzc3YjgwMjdl
YWY2OGJiYzAyNjRhZjIzM2Y3OTA2Yzk3MDZiYTJiNC4uYTUzYmVjZjViN2Q5YTcxMGVmM2M0MGU1
M2Q4ZTMxODdhMzUxYzEyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvc2Nyb2xsLWxhdGNoZWQtbmVzdGVkLWRpdi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL3Njcm9sbC1sYXRjaGVkLW5lc3RlZC1kaXYuaHRtbApA
QCAtMTAsNiArMTAsNyBAQAogICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXIt
Z3JhZGllbnQoc2lsdmVyLCB3aGl0ZSAyMDBweCk7CiB9CiA8L3N0eWxlPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgog
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwpAQCAtNDMsMTEgKzQ0LDkgQEAKICAgICAgICAgICAg
IHRlc3RGYWlsZWQoImRpdiByZWNlaXZlZCB3aGVlbCBldmVudHMgZHVyaW5nIHRoZSBzZWNvbmQg
Z2VzdHVyZS4iKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGVzdFBhc3NlZCgiZGl2IGRp
ZCBub3QgcmVjZWl2ZSB3aGVlbCBldmVudHMgZHVyaW5nIHRoZSBzZWNvbmQgZ2VzdHVyZS4iKTsK
LQotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBjaGVja0Zv
ckZpcnN0U2Nyb2xsKCkKKyAgICBhc3luYyBmdW5jdGlvbiBkb1NlY29uZFNjcm9sbCgpCiAgICAg
ewogICAgICAgICAvLyAncGFyZW50JyBzaG91bGQgbm90IGhhdmUgc2Nyb2xsZWQsIGFuZCB0aGUg
Y29udGVudCBvZiAndGFyZ2V0JyBzaG91bGQKICAgICAgICAgLy8gbm90IGhhdmUgbW92ZWQuIEhv
d2V2ZXIsICd3cmFwcGVyJyBzaG91bGQgaGF2ZSBtb3ZlZC4KQEAgLTgxLDEwICs4MCwxMSBAQAog
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ25vbmUnLCAnY29udGludWUn
KTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcpOwotICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0
ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTZWNvbmRTY3JvbGwpOworCisgICAgICAgIGF3
YWl0IFVJSGVscGVyLndhaXRGb3JTY3JvbGxDb21wbGV0aW9uKCk7CiAgICAgfQogCi0gICAgZnVu
Y3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgYXN5bmMgZnVuY3Rpb24gZG9GaXJzdFNjcm9sbCgpCiAg
ICAgewogICAgICAgICBwYWdlU2Nyb2xsUG9zaXRpb25CZWZvcmUgPSBkb2N1bWVudC5zY3JvbGxp
bmdFbGVtZW50LnNjcm9sbFRvcDsKIApAQCAtMTEwLDcgKzExMCwxNiBAQAogICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICdu
b25lJywgJ2JlZ2luJyk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICdub25lJywgJ2NvbnRpbnVlJyk7CiAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAw
LCAnbm9uZScsICdlbmQnKTsKLSAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5n
Q29tcGxldGVzKGNoZWNrRm9yRmlyc3RTY3JvbGwpOworICAgICAgICAKKyAgICAgICAgYXdhaXQg
VUlIZWxwZXIud2FpdEZvclNjcm9sbENvbXBsZXRpb24oKTsKKyAgICB9CisKKyAgICBhc3luYyBm
dW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICB7CisgICAgICAgIGF3YWl0IGRvRmlyc3RTY3JvbGwo
KTsKKyAgICAgICAgYXdhaXQgZG9TZWNvbmRTY3JvbGwoKTsKKyAgICAgICAgY2hlY2tGb3JTZWNv
bmRTY3JvbGwoKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfQogCiAgICAgZnVuY3Rp
b24gc2V0dXBUb3BMZXZlbCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9tYWMvcnViYmVyYmFuZC1vdmVyZmxvdy1pbi13aGVlbC1yZWdpb24tcm9vdC1qaWdnbGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWlu
LXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCmluZGV4IGNlMzU5MDUxZjE5ZGU4YmVlMDI4
YTVlNmIwMGY0YjM0NGVjYWJhY2EuLjI1MjdlMGYyOWMyZmE4NTlkYzkzYTMyNTQ4NDQxM2Q1Y2Jl
NzE3NDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJi
YW5kLW92ZXJmbG93LWluLXdoZWVsLXJlZ2lvbi1yb290LWppZ2dsZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL21hYy9ydWJiZXJiYW5kLW92ZXJmbG93LWluLXdoZWVsLXJl
Z2lvbi1yb290LWppZ2dsZS5odG1sCkBAIC01MSwxMCArNTEsMTcgQEAKIAogICAgICAgICAgICAg
Ly8gU2Nyb2xsIGRvd24gdG8gbGF0Y2gsIHRoZW4gdXAgdG8gcnViYmVyYmFuZC4KICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgImJlZ2FuIiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwgIm5vbmUi
KTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKLSAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAxMiwgImNo
YW5nZWQiLCAibm9uZSIpOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDEyLCAiY2hhbmdlZCIsICJub25lIik7CisgICAg
ICAgICAgICBhd2FpdCBVSUhlbHBlci5yZW5kZXJpbmdVcGRhdGUoKTsKKyAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwg
ImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVuZGVyaW5n
VXBkYXRlKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2Vk
IiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgp
OworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUi
KTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJlbmRlcmluZ1VwZGF0ZSgpOwogICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDAsICJlbmRlZCIsICJub25lIik7CiAKICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnJl
bmRlcmluZ1VwZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvZmFzdC9ldmVudHMvd2hl
ZWwvd2hlZWwtZXZlbnRzLWJlY29tZS1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1NTE3ZDgzYmE1YmIwOGUzYTMzNTc4NzMyZDBkNDhm
MzRkZmE2ZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVu
dHMtYmVjb21lLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDExICswLDAgQEAKLVRlc3RzIHRoYXQgZXZlbnRzIGluIHRoZSBnZXN0dXJlIGFyZSBub24tY2Fu
Y2VsYWJsZSBpZiBwcmV2ZW50RGVmYXVsdCB3YXMgbm90IGNhbGxlZCBvbiB0aGUgZmlyc3QgZXZl
bnQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZmlyc3RXYXNDYW5jZWxh
YmxlIGlzIHRydWUKLUZBSUwgYmVjYW1lTm9uQ2FuY2VsYWJsZSBzaG91bGQgYmUgdHJ1ZSAob2Yg
dHlwZSBib29sZWFuKS4gV2FzIHVuZGVmaW5lZCAob2YgdHlwZSB1bmRlZmluZWQpLgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
</data>

          </attachment>
      

    </bug>

</bugzilla>