<?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>219050</bug_id>
          
          <creation_ts>2020-11-17 13:04:54 -0800</creation_ts>
          <short_desc>Propagate wheel event handling back to the scrolling thread</short_desc>
          <delta_ts>2020-11-18 12:16:20 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218764</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>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>kangil.han</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1708356</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-17 13:04:54 -0800</bug_when>
    <thetext>Propagate wheel event handling back to the scrolling thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708361</commentid>
    <comment_count>1</comment_count>
      <attachid>414377</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-17 13:18:36 -0800</bug_when>
    <thetext>Created attachment 414377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708482</commentid>
    <comment_count>2</comment_count>
      <attachid>414405</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-17 20:35:07 -0800</bug_when>
    <thetext>Created attachment 414405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708710</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-18 12:15:06 -0800</bug_when>
    <thetext>Committed r269973: &lt;https://trac.webkit.org/changeset/269973&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414405.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708711</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-18 12:16:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/71550276&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414377</attachid>
            <date>2020-11-17 13:18:36 -0800</date>
            <delta_ts>2020-11-17 20:35:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219050-20201117131835.patch</filename>
            <type>text/plain</type>
            <size>49539</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVjOThiZGYxMGMwMDRm
YjQyODkxZTIwOTYzMDQyNzg5NjQ3NTE4NC4uZjJiZDIzZTk0ZGIzMmM2ODMyNDhjMDQ5MzY1Mjlm
YTcxYjcxZDQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDIwLTExLTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0ZSB3
aGVlbCBldmVudCBoYW5kbGluZyBiYWNrIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkwNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmVwYXJlIHRvIGZpeCB3
ZWJraXQub3JnL2IvMjE4NzY0IGJ5IGFkZGluZyBhIHdheSBmb3IgdGhlIG1haW4gdGhyZWFkIHRv
IGNvbW11bmljYXRlIGJhY2sKKyAgICAgICAgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQgaW5mb3Jt
YXRpb24gYWJvdXQgd2hldGhlciB0aGUgd2hlZWwgZXZlbnQgd2FzIGRpc3BhdGNoZWQgdG8gSlMs
CisgICAgICAgIGFuZCB3aGV0aGVyIHByZXZlbnREZWZhdWx0KCkgd2FzIGNhbGxlZCBvbiBpdC4K
KworICAgICAgICBUaGUgRXZlbnRIYW5kbGluZyBlbnVtIGhhcyBiaXRzIHRoYXQgYXJlIHNldCB3
aGVuIHRoZSBldmVudCBpcyBkaXNwYXRjaGVkIHRvIEpTLAorICAgICAgICB3aGVuIGl0J3MgY2Fu
Y2VsZWQsIGFuZCBpZiBkZWZhdWx0IGhhbmRsaW5nIGhhcHBlbmVkLiBUaGVzZSB2YWx1ZXMgYXJl
IGZpbGxlZCBpbgorICAgICAgICBFbGVtZW50OjpkaXNwYXRjaFdoZWVsRXZlbnQoKS4gVGhleSBw
cm9wYWdhdGUgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCB2aWEKKyAgICAgICAgRXZlbnRI
YW5kbGVyOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKCksIHdob3NlIG1hY09T
IGltcGxlbWVudGF0aW9uCisgICAgICAgIGNhbGxzIGludG8gdGhlIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yLCB3aGljaCB3aWxsIHNldCBzdGF0ZSBvbiB0aGUgU2Nyb2xsaW5nVHJlZSBpbgorICAgICAg
ICBhIGZ1dHVyZSBwYXRjaC4KKworICAgICAgICBXaGVlbEV2ZW50VGVzdE1vbml0b3IgZ2FpbnMg
YSAicmVhc29uIiBmbGFnIHRvIHRyYWNrIHRoZSBhc3luYyBwcm9wYWdhdGlvbiBvZgorICAgICAg
ICB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKCkgYmFjayB0byB0aGUgc2Nyb2xs
aW5nIHRocmVhZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBpbmZyYXN0cnVjdHVy
ZSBmb3IgdGhlIHNjcm9sbGluZyB0aHJlYWQgdG8gc3BlY2lmeSB0aGF0IHdoZWVsIGV2ZW50cwor
ICAgICAgICBzZW50IHRvIHRoZSBtYWluIHRocmVhZCB3aWxsIGJlIHVuY2FuY2VsYWJsZTsgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwcyBnYWlucworICAgICAgICBNYWluVGhyZWFkRm9yTm9uQmxv
Y2tpbmdET01FdmVudERpc3BhdGNoIGFuZCBNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERp
c3BhdGNoLAorICAgICAgICBhbmQgaWYgTWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnRE
aXNwYXRjaCBpcyBzZXQsIHRoZW4gd2UgY3JlYXRlCisgICAgICAgIFdoZWVsRXZlbnRzIHdpdGgg
SXNDYW5jZWxhYmxlOjpOby4gVGhpcyB3aWxsIGJlIHRoZSBjYXNlIGZvciB3aGVlbCBldmVudHMg
aW4KKyAgICAgICAgdGhlIHBhc3NpdmUgZXZlbnQgcmVnaW9uLgorCisgICAgICAgIFJlbmFtZSBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6aGFuZGxlV2hlZWxFdmVudCgpIHRvIHBlcmZvcm1EZWZhdWx0
V2hlZWxFdmVudEhhbmRsaW5nKCkKKyAgICAgICAgZm9yIGNsYXJpdHksIGFuZCBzdG9wIHBhc3Np
bmcgdGhlIEZyYW1lVmlldyogd2hpY2ggd2FzIHVudXNlZC4KKworICAgICAgICBBZGQgYSBtaXNz
aW5nIGxvY2sgaW4gVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJN
YWluVGhyZWFkKCkuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpkaXNwYXRjaFdoZWVsRXZlbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50
Lmg6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hl
ZWxFdmVudDo6V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpjcmVh
dGUpOgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50Lmg6CisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50V2Fz
UHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZVdoZWVsRXZlbnRJbnRlcm5hbCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OndoZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBvaW50ZXJMb2NrQ29udHJvbGxlcjo6ZGlzcGF0Y2hMb2NrZWRX
aGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRU
ZXN0TW9uaXRvci5oOgorICAgICAgICAqIHBhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudCk6CisgICAgICAgICogcGFn
ZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
Ojp3aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVu
dFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdDb29yZGluYXRvcjo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVh
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6aGFuZGxlV2hlZWxF
dmVudCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50
UHJvY2Vzc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVl
bEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6Om5lZWRzTWFpblRocmVhZFBy
b2Nlc3NpbmcgY29uc3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVM
YXRjaGluZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUxh
dGNoaW5nQ29udHJvbGxlcjo6cmVjZWl2ZWRXaGVlbEV2ZW50KTogU2VuZCBpbiBXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzIHdoaWNoCisgICAgICAgIGEgZnV0dXJlIHBhdGNoIHdpbGwgdXNlLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50
QWZ0ZXJNYWluVGhyZWFkKTogVGhlcmUgd2FzIGEgbWlzc2luZyBsb2NrIGhlcmUuCisgICAgICAg
IChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpwZXJm
b3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0RGVm
ZXJJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Ojp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50
SGFuZGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lh
Ojp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudCk6IERlbGV0ZWQu
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5p
Y29zaWEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmg6CisgICAgICAgICog
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPDwpOiBBZGQgZHVtcGluZyBvZiBFdmVudEhhbmRsaW5nLgorICAgICAgICAqIHBsYXRmb3Jt
L1BsYXRmb3JtV2hlZWxFdmVudC5oOgorCiAyMDIwLTExLTE3ICBNZWdhbiBHYXJkbmVyICA8bWVn
YW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgU3BlY3VsYXRpdmUgZml4IGZvciBsb2Nh
bGl6YWJsZVN0cmluZ3Muc3RyaW5nIGluIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTgxZDI0ZDE5MzU2
ZmU0OTYwNTE2MjlmZDZhZjU5NmE5ZWY5NTJkZC4uZjdkMDc3NDUwMjk4MDk2ODRkZTdjM2I4MjU2
ZDhkZDg2MGM2ODkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0xMS0xNyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGUg
d2hlZWwgZXZlbnQgaGFuZGxpbmcgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MDUwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBGb3Igbm93
LCB1c2UgTWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCBmb3IgdGhlIGRlZmF1
bHQgc3RlcHMgKHVzZWQgYnkgbm9uLW1hY09TIHBsYXRmb3JtcykuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYW5k
bGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KToK
KwogMjAyMC0xMS0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIFJlbW92ZSBhY2Nlc3MgdG8gdGhlIHVudXNlZCBBcHBsZVNOQkZCVXNlckNs
aWVudCBJT0tpdCBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDMyMzkwMzM5
ZTU5MDBkN2Y2Njg4OTc4ZDg2MWUxYmE3N2ZlNzkwNWUuLjQyYTg4NmRjNzQwYWMwY2IxOTRiYzY2
YjlmYmMyZjk1ZmY2MzgzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAyMC0xMS0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KKworICAgICAgICBQcm9wYWdhdGUgd2hlZWwgZXZlbnQgaGFuZGxpbmcgYmFjayB0byB0aGUg
c2Nyb2xsaW5nIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIE1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2guCisKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om1vdXNlV2hlZWwpOgorCiAy
MDIwLTExLTExICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1v
dmUgdW51c2VkIEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIHNldHRpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAppbmRleCA3OGE5NjQ2MDczZjBhNDdiMmY5N2FmMjA4NmZlMjhhZGQzZmE4
YWQ2Li5kNjFjN2Y2OTU0MTJhNTViMTY0NjMwZjdlZGNlOWNjZjNiNTE4NzFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC00MjAsOSArNDIwLDkgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1v
dXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdAog
ICAgIHJldHVybiBkaWROb3RTd2FsbG93RXZlbnQ7CiB9CiAKLWJvb2wgRWxlbWVudDo6ZGlzcGF0
Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgcGxhdGZvcm1FdmVudCkKK2Jv
b2wgRWxlbWVudDo6ZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
cGxhdGZvcm1FdmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+JiBwcm9jZXNzaW5nLCBFdmVu
dDo6SXNDYW5jZWxhYmxlIGlzQ2FuY2VsYWJsZSkKIHsKLSAgICBhdXRvIGV2ZW50ID0gV2hlZWxF
dmVudDo6Y3JlYXRlKHBsYXRmb3JtRXZlbnQsIGRvY3VtZW50KCkud2luZG93UHJveHkoKSk7Cisg
ICAgYXV0byBldmVudCA9IFdoZWVsRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50LCBkb2N1bWVu
dCgpLndpbmRvd1Byb3h5KCksIGlzQ2FuY2VsYWJsZSk7CiAKICAgICAvLyBFdmVudHMgd2l0aCBu
byBkZWx0YXMgYXJlIGltcG9ydGFudCBiZWNhdXNlIHRoZXkgY29udmV5IHBsYXRmb3JtIGluZm9y
bWF0aW9uIGFib3V0IHNjcm9sbCBnZXN0dXJlcwogICAgIC8vIGFuZCBtb21lbnR1bSBiZWdpbm5p
bmcgb3IgZW5kaW5nLiBIb3dldmVyLCB0aG9zZSBldmVudHMgc2hvdWxkIG5vdCBiZSBzZW50IHRv
IHRoZSBET00gc2luY2Ugc29tZQpAQCAtNDMwLDEyICs0MzAsMjEgQEAgYm9vbCBFbGVtZW50Ojpk
aXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBwbGF0Zm9ybUV2ZW50
KQogICAgIC8vIGV2ZW50IGhhbmRsZXIsIGFuZCBvdXIgcGxhdGZvcm0gY29kZSB3aWxsIGNvcnJl
Y3RseSBoYW5kbGUgdGhlIHBoYXNlIGNoYW5nZXMuIENhbGxpbmcgc3RvcFByb3BhZ2F0aW9uKCkK
ICAgICAvLyB3aWxsIHByZXZlbnQgdGhlIGV2ZW50IGZyb20gYmVpbmcgc2VudCB0byB0aGUgRE9N
LCBidXQgd2lsbCBzdGlsbCBjYWxsIHRoZSBkZWZhdWx0IGV2ZW50IGhhbmRsZXIuCiAgICAgLy8g
RklYTUU6IE1vdmUgdGhpcyBsb2dpYyBpbnRvIFdoZWVsRXZlbnQ6OmNyZWF0ZS4KLSAgICBpZiAo
IXBsYXRmb3JtRXZlbnQuZGVsdGFYKCkgJiYgIXBsYXRmb3JtRXZlbnQuZGVsdGFZKCkpCisgICAg
aWYgKHBsYXRmb3JtRXZlbnQuZGVsdGEoKS5pc1plcm8oKSkKICAgICAgICAgZXZlbnQtPnN0b3BQ
cm9wYWdhdGlvbigpOworICAgIGVsc2UKKyAgICAgICAgcHJvY2Vzc2luZy5hZGQoRXZlbnRIYW5k
bGluZzo6RGlzcGF0Y2hlZFRvRE9NKTsKIAogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAg
IAogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRWxlbWVudCAiIDw8
ICp0aGlzIDw8ICIgZGlzcGF0Y2hXaGVlbEV2ZW50OiBkZWZhdWx0UHJldmVudGVkICIgPDwgZXZl
bnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSA8PCAiIGRlZmF1bHRIYW5kbGVkICIgPDwgZXZlbnQtPmRl
ZmF1bHRIYW5kbGVkKCkpOworICAgIAorICAgIGlmIChldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgp
KQorICAgICAgICBwcm9jZXNzaW5nLmFkZChFdmVudEhhbmRsaW5nOjpEZWZhdWx0UHJldmVudGVk
KTsKKworICAgIGlmIChldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAgICAgcHJvY2Vzc2lu
Zy5hZGQoRXZlbnRIYW5kbGluZzo6RGVmYXVsdEhhbmRsZWQpOworCiAgICAgcmV0dXJuICFldmVu
dC0+ZGVmYXVsdFByZXZlbnRlZCgpICYmICFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKaW5kZXggOWJjN2QyMGM5ZGNjZDcxZGJmOTQzM2RhMTU0NzQyMGU2YTcx
YjMzMy4uZmNiN2NlYjYyNWI5MTQzOTc4Y2ZhNzdmZDNmZThhNzhjZjQxZDlkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCkBAIC02Niw2ICs2Niw4IEBAIHN0cnVjdCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlv
bnM7CiBzdHJ1Y3QgU2Nyb2xsSW50b1ZpZXdPcHRpb25zOwogc3RydWN0IFNjcm9sbFRvT3B0aW9u
czsKIAorZW51bSBjbGFzcyBFdmVudFByb2Nlc3NpbmcgOiB1aW50OF90OworCiAjaWYgRU5BQkxF
KElOVEVSU0VDVElPTl9PQlNFUlZFUikKIHN0cnVjdCBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7
CiAjZW5kaWYKQEAgLTUzMCw3ICs1MzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTYXZlZExh
eWVyU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmKTsKIAogICAgIGJvb2wgZGlzcGF0Y2hN
b3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2
ZW50VHlwZSwgaW50IGNsaWNrQ291bnQgPSAwLCBFbGVtZW50KiByZWxhdGVkVGFyZ2V0ID0gbnVs
bHB0cik7Ci0gICAgYm9vbCBkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50Jik7CisgICAgYm9vbCBkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+JiwgRXZlbnQ6OklzQ2FuY2VsYWJsZSA9IEV2
ZW50OjpJc0NhbmNlbGFibGU6Olllcyk7CiAgICAgYm9vbCBkaXNwYXRjaEtleUV2ZW50KGNvbnN0
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIGJvb2wgZGlzcGF0Y2hTaW11bGF0ZWRDbGlj
ayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNlRXZlbnRPcHRpb25z
ID0gU2VuZE5vRXZlbnRzLCBTaW11bGF0ZWRDbGlja1Zpc3VhbE9wdGlvbnMgPSBTaG93UHJlc3Nl
ZExvb2spOwogICAgIHZvaWQgZGlzcGF0Y2hGb2N1c0luRXZlbnQoY29uc3QgQXRvbVN0cmluZyYg
ZXZlbnRUeXBlLCBSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2VkRWxlbWVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vV2hlZWxFdmVudC5jcHAKaW5kZXggNmY1ZDE1ZmIyZDNhNDkwMTA3YTdlYjhmNzcxYjk1ZGM0
MzQyMmZjZC4uNDhlYTViZDMxNGE1MjMwMzY1YjMxN2I1ODgxMDhhZDY3NzQzMjc2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsOCArNTAsOCBAQCBpbmxpbmUgV2hlZWxFdmVu
dDo6V2hlZWxFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFs
aXplcikKIHsKIH0KIAotaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcpCi0gICAgOiBN
b3VzZUV2ZW50KGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCBDYW5CdWJibGU6OlllcywgSXNDYW5j
ZWxhYmxlOjpZZXMsIElzQ29tcG9zZWQ6OlllcywgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1h
dGVNb25vdG9uaWNUaW1lKCksIFdURk1vdmUodmlldyksIDAsCitpbmxpbmUgV2hlZWxFdmVudDo6
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2luZG93
UHJveHk+JiYgdmlldywgSXNDYW5jZWxhYmxlIGlzQ2FuY2VsYWJsZSkKKyAgICA6IE1vdXNlRXZl
bnQoZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIENhbkJ1YmJsZTo6WWVzLCBpc0NhbmNlbGFibGUs
IElzQ29tcG9zZWQ6OlllcywgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNU
aW1lKCksIFdURk1vdmUodmlldyksIDAsCiAgICAgICAgIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCks
IGV2ZW50LnBvc2l0aW9uKCkgLCB7IH0sIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxscHRy
LCAwLCAwLCBJc1NpbXVsYXRlZDo6Tm8sIElzVHJ1c3RlZDo6WWVzKQogICAgICwgbV93aGVlbERl
bHRhKGV2ZW50LndoZWVsVGlja3NYKCkgKiBUaWNrTXVsdGlwbGllciwgZXZlbnQud2hlZWxUaWNr
c1koKSAqIFRpY2tNdWx0aXBsaWVyKQogICAgICwgbV9kZWx0YVgoLWV2ZW50LmRlbHRhWCgpKQpA
QCAtNjEsOSArNjEsOSBAQCBpbmxpbmUgV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2luZG93UHJveAogewogfQogCi1SZWY8V2hl
ZWxFdmVudD4gV2hlZWxFdmVudDo6Y3JlYXRlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZl
bnQsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3KQorUmVmPFdoZWVsRXZlbnQ+IFdoZWVsRXZl
bnQ6OmNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2luZG93
UHJveHk+JiYgdmlldywgSXNDYW5jZWxhYmxlIGlzQ2FuY2VsYWJsZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXaGVlbEV2ZW50KGV2ZW50LCBXVEZNb3ZlKHZpZXcpKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2hlZWxFdmVudChldmVudCwgV1RGTW92ZSh2aWV3KSwgaXNDYW5j
ZWxhYmxlKSk7CiB9CiAKIFJlZjxXaGVlbEV2ZW50PiBXaGVlbEV2ZW50OjpjcmVhdGVGb3JCaW5k
aW5ncygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAppbmRleCBjZmQ1OTc3NTRmNWNhMDBlODcwZGYy
ZjI3NDQ4MTc1ODZhOGJlYWM2Li42MjQ0YTMyMjFiNmEzMDU3NGU0ZjU0MDUwZjlmZDUxODhjYjA3
MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgog
ICAgICAgICBET01fREVMVEFfUEFHRQogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPFdoZWVsRXZl
bnQ+IGNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBSZWZQdHI8V2luZG93UHJveHk+
JiYpOworICAgIHN0YXRpYyBSZWY8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgSXNDYW5jZWxhYmxlID0gSXNDYW5jZWxh
YmxlOjpZZXMpOwogICAgIHN0YXRpYyBSZWY8V2hlZWxFdmVudD4gY3JlYXRlRm9yQmluZGluZ3Mo
KTsKIAogICAgIHN0cnVjdCBJbml0IDogTW91c2VFdmVudEluaXQgewpAQCAtNzYsNyArNzYsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdoZWVsRXZlbnQoKTsKICAgICBXaGVlbEV2ZW50KGNv
bnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0Jik7Ci0gICAgV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBSZWZQdHI8V2luZG93UHJveHk+JiYpOworICAgIFdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBJc0NhbmNl
bGFibGUpOwogCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDZhZTQyYzFlYTkxNDk3
ZmYwZDMyNDU4NjMyOTQxOWE5MzQ2YTJlNzAuLjA3ZjJiMDJhNWEwNTEyN2EyNWUwNDIwMjJhNTQw
ODRkMzhlYTFjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI3OTIs
NiArMjc5MiwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3Jv
bGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudAogICAgIHJldHVybiBkaWRIYW5k
bGVFdmVudDsKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFu
ZGxpbmc+KQoreworfQorCiBib29sIEV2ZW50SGFuZGxlcjo6cGxhdGZvcm1Db21wbGV0ZVBsYXRm
b3JtV2lkZ2V0V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXaWRn
ZXQmLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYpCiB7CiAgICAgcmV0dXJuIHRydWU7
CkBAIC0yODYyLDYgKzI4NjYsMTQgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmNvbXBsZXRlV2lkZ2V0
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBjb24KIH0KIAogYm9v
bCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3NpbmdT
dGVwcykKK3sKKyAgICBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gaGFuZGxpbmc7CisgICAgYm9v
bCBoYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudEludGVybmFsKGV2ZW50LCBwcm9jZXNzaW5nU3Rl
cHMsIGhhbmRsaW5nKTsKKyAgICB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGV2
ZW50LCBoYW5kbGluZyk7CisgICAgcmV0dXJuIGhhbmRsZWQ7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBl
dmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3NpbmdTdGVw
cywgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+JiBoYW5kbGluZykKIHsKICAgICBhdXRvKiBkb2N1
bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQpAQCAtMjkyNCw3
ICsyOTM2LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiBldmVudCwgT3B0aW9uU2V0PFcKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCi0gICAgICAgIGlmICghZWxlbWVudC0+ZGlzcGF0Y2hXaGVlbEV2ZW50KGV2ZW50KSkg
eworICAgICAgICBhdXRvIGlzQ2FuY2VsYWJsZSA9IHByb2Nlc3NpbmdTdGVwcy5jb250YWlucyhX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERp
c3BhdGNoKSA/IEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcyA6IEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vOworICAgICAgICBpZiAoIWVsZW1lbnQtPmRpc3BhdGNoV2hlZWxFdmVudChldmVudCwgaGFu
ZGxpbmcsIGlzQ2FuY2VsYWJsZSkpIHsKICAgICAgICAgICAgIG1faXNIYW5kbGluZ1doZWVsRXZl
bnQgPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlQXJlYSAmJiBzY3JvbGxhYmxl
QXJlYS0+c2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoKSkgewogICAgICAgICAgICAgICAg
IC8vIFdlYiBkZXZlbG9wZXIgaXMgY29udHJvbGxpbmcgc2Nyb2xsaW5nLCBzbyBkb24ndCBhdHRl
bXB0IHRvIGxhdGNoLgpAQCAtMjk1NCw2ICsyOTY3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgT3B0aW9uU2V0
PFcKICAgICAgICAgaGFuZGxlZEV2ZW50ID0gcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmco
ZXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKICAgICAgICAgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3Jv
bGxTbmFwKGV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7CiAgICAgfQorCiAgICAgcmV0dXJuIGhhbmRs
ZWRFdmVudDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggZTg1NTg4NjU2
NTRmOTM0Mzg1ZDI4MGViMzlmZmExODMzNGE4Y2Q4YS4uOTBjNzg3YjY3ZTJmM2RjMjlkNDU4OGVl
YmY1ODdmYTkzNTFkZTlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yMDgs
OCArMjA4LDExIEBAIHB1YmxpYzoKICAgICBib29sIGhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYsIEhpdFRlc3RSZXN1bHQqID0gbnVsbHB0ciwgYm9vbCBvbmx5
VXBkYXRlU2Nyb2xsYmFycyA9IGZhbHNlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRs
ZU1vdXNlUmVsZWFzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogICAgIGJvb2wg
aGFuZGxlTW91c2VGb3JjZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOworCiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPik7CiAgICAgdm9pZCBk
ZWZhdWx0V2hlZWxFdmVudEhhbmRsZXIoTm9kZSosIFdoZWVsRXZlbnQmKTsKKyAgICB2b2lkIHdo
ZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KTsKKwogICAgIGJvb2wgaGFuZGxlUGFzdGVHbG9i
YWxTZWxlY3Rpb24oY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAKICNpZiBFTkFCTEUoSU9T
X1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKQEAgLTQ1Miw2ICs0
NTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChX
aWRnZXQqKTsKIAorICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEludGVybmFsKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiwgT3B0
aW9uU2V0PEV2ZW50SGFuZGxpbmc+Jik7CiAgICAgYm9vbCBwYXNzV2hlZWxFdmVudFRvV2lkZ2V0
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCYsIE9wdGlvblNldDxXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzPik7CiAgICAgdm9pZCBkZXRlcm1pbmVXaGVlbEV2ZW50VGFyZ2V0KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFJlZlB0cjxFbGVtZW50PiYgZXZlbnRUYXJnZXQsIFdl
YWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiwgYm9vbCYgaXNPdmVyV2lkZ2V0KTsKICAgICB2b2lkIHJl
Y29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcihjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBiMWNjMjI3ZWQ0OGExMDBlYjkzYjlhYTM4
OWRjODQ1MjdmMWQ2YWU3Li40YTFkY2Y1Yzc2MjhkYTgyMTI0ZjRkZGViM2EzMTZlZmE5YTY1Y2Y3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01MTI3LDcgKzUxMjcsNyBAQCBib29s
IEZyYW1lVmlldzo6d2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQpCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAoYXV0byBzY3JvbGxpbmdD
b29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKICAgICAgICAgaWYg
KHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldygq
dGhpcykpCi0gICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmhhbmRsZVdo
ZWVsRXZlbnQoKnRoaXMsIHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBzY3JvbGxpbmdDb29yZGluYXRvci0+cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50
SGFuZGxpbmcod2hlZWxFdmVudCwgc2Nyb2xsaW5nTm9kZUlEKCkpOwogICAgIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKaW5kZXgg
ZWFkY2VlMzZlOTczYTFkZDNiZTc2ODdlODlkMDdiNDM5NDlkMjNkZC4uY2YxYWM1ZDBhMjM4YjQ1
MzgxNWVjZGRhODIxMjcyN2ExMmQ4ZWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9p
bnRlckxvY2tDb250cm9sbGVyLmNwcApAQCAtMTkzLDcgKzE5Myw4IEBAIHZvaWQgUG9pbnRlckxv
Y2tDb250cm9sbGVyOjpkaXNwYXRjaExvY2tlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiBlCiAgICAgaWYgKCFtX2VsZW1lbnQgfHwgIW1fZWxlbWVudC0+ZG9jdW1lbnQoKS5m
cmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2VsZW1lbnQtPmRpc3BhdGNoV2hlZWxF
dmVudChldmVudCk7CisgICAgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGRlZmF1bHRIYW5kbGlu
ZzsKKyAgICBtX2VsZW1lbnQtPmRpc3BhdGNoV2hlZWxFdmVudChldmVudCwgZGVmYXVsdEhhbmRs
aW5nKTsKIH0KIAogdm9pZCBQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmNsZWFyRWxlbWVudCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKaW5kZXggMGUx
YWI0ZGM5OWQ5ZmFmOTc4ZjEyMWNmNmYxNWYzZTA2YzdkZDgzOC4uNjM3NzIwMjg2NjE4MWYwYzZk
ZGJkZTJhNzNlYzc4M2Y4NDg3YzcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9X
aGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxF
dmVudFRlc3RNb25pdG9yLmNwcApAQCAtMTcwLDYgKzE3MCw3IEBAIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24g
cmVhc29uCiAgICAgc3dpdGNoIChyZWFzb24pIHsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9u
aXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50OiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQiOyBi
cmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50
T25NYWluVGhyZWFkOiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQgb24gbWFpbiB0aHJlYWQi
OyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRI
YW5kbGluZzogdHMgPDwgInJlcG9ydCBET00gZXZlbnQgaGFuZGxpbmciOyBicmVhazsKICAgICBj
YXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UnViYmVyYmFuZEluUHJvZ3Jlc3M6IHRzIDw8ICJy
dWJiZXJiYW5kaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNj
cm9sbFNuYXBJblByb2dyZXNzOiB0cyA8PCAic2Nyb2xsLXNuYXBwaW5nIjsgYnJlYWs7CiAgICAg
Y2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQ6IHRz
IDw8ICJzY3JvbGxpbmcgdGhyZWFkIHN5bmMgbmVlZGVkIjsgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAppbmRleCAwMjYxMDNmNGVjODNlYjI2ODlm
YTJiM2VjMTIyNWYwNTBhZTYzOGVkLi45MjA3N2U5ZDVmYWIwZWY5ZmUyNmYwNTUyNTczNzI4YzFj
NzY3NWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9u
aXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmgK
QEAgLTUwLDExICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgZW51bSBEZWZlclJlYXNvbiB7CiAgICAg
ICAgIEhhbmRsaW5nV2hlZWxFdmVudCAgICAgICAgICAgICAgPSAxIDw8IDAsCiAgICAgICAgIEhh
bmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZCAgPSAxIDw8IDEsCi0gICAgICAgIFJ1YmJlcmJh
bmRJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDIsCi0gICAgICAgIFNjcm9sbFNuYXBJblBy
b2dyZXNzICAgICAgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIFNjcm9sbGluZ1RocmVhZFN5bmNO
ZWVkZWQgICAgICAgPSAxIDw8IDQsCi0gICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAg
ICAgICAgPSAxIDw8IDUsCi0gICAgICAgIFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uICAgICAgICAg
PSAxIDw8IDYsCisgICAgICAgIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcgICAgICAgICAgPSAxIDw8
IDIsCisgICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDMsCisg
ICAgICAgIFNjcm9sbFNuYXBJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDQsCisgICAgICAg
IFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQgICAgICAgPSAxIDw8IDUsCisgICAgICAgIENvbnRl
bnRTY3JvbGxJblByb2dyZXNzICAgICAgICAgPSAxIDw8IDYsCisgICAgICAgIFJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uICAgICAgICAgPSAxIDw8IDcsCiAgICAgfTsKICAgICB0eXBlZGVmIGNvbnN0
IHZvaWQqIFNjcm9sbGFibGVBcmVhSWRlbnRpZmllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCmluZGV4IGM1NTUyNDU3MjFlOWZmMjMwZWQ1YmRjOWRkMjJl
NWYxNDBiODdjZjIuLjdkMWQ1YTRjN2NlYTVhNjdiOGYzMTIxODgwNjY5MGU2ZGViMmVhNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KQEAgLTEwNyw3ICsx
MDcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudChXZWJFdmVudCAqZXZlbnQpCiAK
ICAgICBDdXJyZW50RXZlbnRTY29wZSBzY29wZShldmVudCk7CiAKLSAgICBib29sIGV2ZW50V2Fz
SGFuZGxlZCA9IGhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBs
YXRmb3JtV2hlZWxFdmVudChldmVudCksIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7CisgICAgYm9vbCBldmVudFdhc0hhbmRsZWQgPSBoYW5k
bGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZl
bnQoZXZlbnQpLCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3Jv
bGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RP
TUV2ZW50RGlzcGF0Y2ggfSk7CiAgICAgZXZlbnQud2FzSGFuZGxlZCA9IGV2ZW50V2FzSGFuZGxl
ZDsKICAgICByZXR1cm4gZXZlbnRXYXNIYW5kbGVkOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGFmNzM1ZWU3YWVhNjc4MzA1NDI1YzMxMzhkODUw
MGM2ZDhlZjczNzAuLjE0YTlmYWM5ODQwNDBkNjUyZTIwNWQxMGRkYzAxODAzMDZkNGYxZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTYzLDYgKzYz
LDcgQEAKICNpbXBvcnQgIlNjcm9sbExhdGNoaW5nQ29udHJvbGxlci5oIgogI2ltcG9ydCAiU2Ny
b2xsYWJsZUFyZWEuaCIKICNpbXBvcnQgIlNjcm9sbGJhci5oIgorI2ltcG9ydCAiU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaCIKICNpbXBvcnQgIlNldHRpbmdzLmgiCiAjaW1wb3J0ICJTaGFkb3dSb290
LmgiCiAjaW1wb3J0ICJTaW1wbGVSYW5nZS5oIgpAQCAtMTQ2LDcgKzE0Nyw3IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjp3aGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBDdXJyZW50RXZlbnRTY29wZSBzY29wZShldmVudCwgbmlsKTsKLSAgICByZXR1
cm4gaGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1X
aGVlbEV2ZW50KGV2ZW50LCBwYWdlLT5jaHJvbWUoKS5wbGF0Zm9ybVBhZ2VDbGllbnQoKSksIHsg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7Cisg
ICAgcmV0dXJuIGhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBs
YXRmb3JtV2hlZWxFdmVudChldmVudCwgcGFnZS0+Y2hyb21lKCkucGxhdGZvcm1QYWdlQ2xpZW50
KCkpLCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcs
IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50
RGlzcGF0Y2ggfSk7CiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpl
dmVudCkKQEAgLTk1Miw2ICs5NTMsMjYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnByb2Nlc3NXaGVl
bEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWwKICAgICBy
ZXR1cm4gZGlkSGFuZGxlRXZlbnQ7CiB9CiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50
V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxF
dmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcpCit7CisjaWYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBpZiAoIW1fZnJhbWUucGFnZSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKTsKKyAgICBpZiAo
IXZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yID0gbV9mcmFtZS5wYWdlKCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKKyAgICAgICAg
aWYgKHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmll
dygqdmlldykpCisgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+d2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3aGVlbEV2ZW50LCBldmVudEhhbmRsaW5nKTsKKyAgICB9
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh3aGVlbEV2ZW50KTsKKyAgICBVTlVTRURfUEFSQU0o
ZXZlbnRIYW5kbGluZyk7CisjZW5kaWYKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OnBsYXRmb3Jt
Q29tcGxldGVQbGF0Zm9ybVdpZGdldFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50LCBjb25zdCBXaWRnZXQmIHdpZGdldCwgY29uc3QgV2Vha1B0cjxTY3JvbGxh
YmxlQXJlYT4mIHNjcm9sbGFibGVBcmVhKQogewogICAgIC8vIFdlYktpdDE6IFByZXZlbnQgbXVs
dGlwbGUgY29waWVzIG9mIHRoZSBzY3JvbGxXaGVlbCBldmVudCBmcm9tIGJlaW5nIHNlbnQgdG8g
dGhlIE5TU2Nyb2xsVmlldyB3aWRnZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCAyYzUzZWMwNTEyM2MyMzVhMDBh
NmZkN2QzMjAwNGFlNzYzZDMzOGViLi43Yjc0ZjhhOTA1MWUzNTk5YzRkYmY0MmJhZmMwODllMWJl
NDhmNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTEyNyw3ICsxMjcsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGhl
c2UgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSB1bmlxdWUgdG8gdGhlIHRocmVhZGVk
IHNjcm9sbGluZyBhcmNoaXRlY3R1cmUuIAogICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmVlU3Rh
dGVJZk5lZWRlZCgpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoU2Nyb2xsYWJsZUFyZWEmLCBjb25zdCBJbnRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZl
bnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlE
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRGVmYXVsdFdoZWVs
RXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQp
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRXYXNQcm9jZXNz
ZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50
SGFuZGxpbmc+KSB7IH0KIAogICAgIC8vIENyZWF0ZSBhbiB1bnBhcmVudGVkIG5vZGUuCiAgICAg
dmlydHVhbCBTY3JvbGxpbmdOb2RlSUQgY3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEIG5ld05vZGVJRCkgeyByZXR1cm4gbmV3Tm9kZUlEOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IDBkYTczZWNk
Mzk1ZjYxMTdiNDA4OGQ5MGQ1MWIxMDQwMzE3MDAxZTAuLjdiMmZiMTc0OTliN2NmMjgyNmM1MGUz
MWFlODM2OTI1YmExOTY4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuY3BwCkBAIC03NCw4ICs3NCw2IEBAIE9wdGlvblNldDxXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vz
c2luCiAgICAgICAgIHJldHVybiBsYXRjaGVkTm9kZUFuZFN0ZXBzLT5wcm9jZXNzaW5nU3RlcHM7
CiAgICAgfQogCi0gICAgbV9sYXRjaGluZ0NvbnRyb2xsZXIucmVjZWl2ZWRXaGVlbEV2ZW50KHdo
ZWVsRXZlbnQsIG1fYWxsb3dMYXRjaGluZyk7Ci0KICAgICBhdXRvIHByb2Nlc3NpbmdTdGVwcyA9
IFsmXSgpIC0+IE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB7CiAgICAgICAg
IGlmICghbV9yb290Tm9kZSkKICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCB9OwpAQCAtOTMsMjAgKzkxLDIyIEBAIE9wdGlvblNl
dDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVl
bEV2ZW50UHJvY2Vzc2luCiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIlxuU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3Npbmc6
IHdoZWVsRXZlbnQgIiA8PCB3aGVlbEV2ZW50IDw8ICIgbWFwcGVkIHRvIGNvbnRlbnQgcG9pbnQg
IiA8PCBwb3NpdGlvbiA8PCAiLCBpbiBub24tZmFzdCByZWdpb24gIiA8PCBpc1N5bmNocm9ub3Vz
RGlzcGF0Y2hSZWdpb24pOwogCiAgICAgICAgICAgICBpZiAoaXNTeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uKQotICAgICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1h
aW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIHsg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRj
aCB9OwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfUkVHSU9OUykKICAgICAg
ICAgYXV0byBldmVudExpc3RlbmVyVHlwZXMgPSBldmVudExpc3RlbmVyUmVnaW9uVHlwZXNGb3JQ
b2ludChwb3NpdGlvbik7CiAgICAgICAgIGlmIChldmVudExpc3RlbmVyVHlwZXMuY29udGFpbnMo
RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCkpCi0gICAgICAgICAgICBy
ZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5n
LCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRj
aCB9OworICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OwogCiAgICAgICAgIGlmIChldmVudExpc3Rl
bmVyVHlwZXMuY29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6OldoZWVsKSkKLSAgICAg
ICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVh
ZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0
Y2ggfTsKKyAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNj
cm9sbGluZ1RocmVhZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJs
b2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OwogI2VuZGlmCiAgICAgICAgIHJldHVybiB7IFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCB9OwogICAgIH0oKTsKIAorICAg
IG1fbGF0Y2hpbmdDb250cm9sbGVyLnJlY2VpdmVkV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBwcm9j
ZXNzaW5nU3RlcHMsIG1fYWxsb3dMYXRjaGluZyk7CisKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQcm9j
ZXNzaW5nOiBwcm9jZXNzaW5nU3RlcHMgIiA8PCBwcm9jZXNzaW5nU3RlcHMpOwogCiAgICAgcmV0
dXJuIHByb2Nlc3NpbmdTdGVwczsKQEAgLTEyMSw3ICsxMjEsNyBAQCBXaGVlbEV2ZW50SGFuZGxp
bmdSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbgogICAgIGlmIChpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQogICAgICAgICByZWNl
aXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKLSAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5y
ZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5nKTsKKyAgICBtX2xh
dGNoaW5nQ29udHJvbGxlci5yZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCwgcHJvY2Vzc2lu
Z1N0ZXBzLCBtX2FsbG93TGF0Y2hpbmcpOwogCiAgICAgYXV0byByZXN1bHQgPSBbJl0gewogICAg
ICAgICBpZiAoIW1fcm9vdE5vZGUpCkBAIC0xNjMsNyArMTYzLDggQEAgV2hlZWxFdmVudEhhbmRs
aW5nUmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW4KICAgICAgICAgcmV0dXJuIGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVlbEV2
ZW50LCBwcm9jZXNzaW5nU3RlcHMsIG5vZGUuZ2V0KCkpOwogICAgIH0oKTsKIAotICAgIHJlc3Vs
dC5zdGVwcy5hZGQocHJvY2Vzc2luZ1N0ZXBzICYgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6
TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2gpOworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0
aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IG1haW5UaHJlYWRTdGVwcyA9IHsgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnRE
aXNwYXRjaCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5n
RE9NRXZlbnREaXNwYXRjaCB9OworICAgIHJlc3VsdC5zdGVwcy5hZGQocHJvY2Vzc2luZ1N0ZXBz
ICYgbWFpblRocmVhZFN0ZXBzKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggM2U3OWZlYjQ5YjEy
NTkxOTZlYzFjYTY2NDA5Nzg1NWY5MzY0YWY4Mi4uYzhiYzFhMzhmYmY5MGQ1YjE0Nzc2ODUwYWM4
YjNkZmJiZmQ4NWM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaApAQCAtNTksNyArNTksNyBAQCB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVp
bnQzMl90Owogc3RydWN0IFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCB7CiAgICAgT3B0aW9uU2V0
PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHN0ZXBzOwogICAgIGJvb2wgd2FzSGFuZGxlZCB7
IGZhbHNlIH07Ci0gICAgYm9vbCBuZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkgY29uc3QgeyBy
ZXR1cm4gc3RlcHMuY29udGFpbnNBbnkoeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWlu
VGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFk
Rm9yRE9NRXZlbnREaXNwYXRjaCB9KTsgfQorICAgIGJvb2wgbmVlZHNNYWluVGhyZWFkUHJvY2Vz
c2luZygpIGNvbnN0IHsgcmV0dXJuIHN0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCwgV2hlZWxFdmVu
dFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9
KTsgfQogCiAgICAgc3RhdGljIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVkKE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBzdGVwcyA9IHsgfSkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hp
bmdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGY5NmU4ODQxOTFmYzU0NTc3YmYxZjNh
M2ZjYzRhNDJiODk2OGY3YmEuLmQwZTA0ZmNmMzc0MWM4MTRlOGE0Y2QzOTlhODg5YWZkNjg3MmNj
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBA
IHN0YXRpYyBjb25zdCBTZWNvbmRzIHJlc2V0TGF0Y2hlZFN0YXRlVGltZW91dCB7IDEwMF9tcyB9
OwogCiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpTY3JvbGxpbmdUcmVlTGF0Y2hp
bmdDb250cm9sbGVyKCkgPSBkZWZhdWx0OwogCi12b2lkIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0Nv
bnRyb2xsZXI6OnJlY2VpdmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdo
ZWVsRXZlbnQsIGJvb2wgYWxsb3dMYXRjaGluZykKK3ZvaWQgU2Nyb2xsaW5nVHJlZUxhdGNoaW5n
Q29udHJvbGxlcjo6cmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+LCBib29sIGFs
bG93TGF0Y2hpbmcpCiB7CiAgICAgaWYgKCFhbGxvd0xhdGNoaW5nKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
TGF0Y2hpbmdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgKaW5kZXggYzcyNDk3ZDU1MjcwZjcwZTg5ZTg3
ZjNjZTU4ODMxZWNhNWM1Njg1Ny4uYmVlNTkzMTViNWQ2ZTNmMDVhNTk5ZmFjMGEzYjliMDg3NWUx
NzA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZUxhdGNoaW5nQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaApAQCAtNDgsNyArNDgsNyBAQCBw
dWJsaWM6CiAKICAgICBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyKCk7CiAKLSAgICB2
b2lkIHJlY2VpdmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBib29sIGFs
bG93TGF0Y2hpbmcpOworICAgIHZvaWQgcmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiwgYm9vbCBh
bGxvd0xhdGNoaW5nKTsKIAogICAgIE9wdGlvbmFsPFNjcm9sbGluZ05vZGVBbmRQcm9jZXNzaW5n
U3RlcHM+IGxhdGNoaW5nRGF0YUZvckV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGJv
b2wgYWxsb3dMYXRjaGluZykgY29uc3Q7CiAgICAgdm9pZCBub2RlRGlkSGFuZGxlRXZlbnQoU2Ny
b2xsaW5nTm9kZUlELCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4sIGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYsIGJvb2wgYWxsb3dMYXRjaGluZyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcApp
bmRleCA5Mzc5NDU2ZWFlMTdiMDk4MmNiNWQ1MmQ5OTVmY2FkZWQ1NGI3ZDRkLi43MjcxNWMwZWYy
NjNjODE4ZjlkNDZkN2E5NWFmZDNiZjBjZDJlZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTY3LDEz
ICs2NywyMCBAQCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgVGhyZWFkZWRTY3JvbGxpbmdUcmVl
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtVwogYm9vbCBUaHJlYWRlZFNjcm9sbGlu
Z1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZUlEKQogewogICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiVGhyZWFkZWRTY3JvbGxpbmdU
cmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkICIgPDwgd2hlZWxFdmVudCk7Ci0g
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZGlzYWxsb3dMYXRjaGluZ1Njb3BlKG1fYWxsb3dMYXRjaGlu
ZywgZmFsc2UpOwogCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVlTXV0ZXgpOworCisgICAg
U2V0Rm9yU2NvcGU8Ym9vbD4gZGlzYWxsb3dMYXRjaGluZ1Njb3BlKG1fYWxsb3dMYXRjaGluZywg
ZmFsc2UpOwogICAgIFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gdGFyZ2V0Tm9kZSA9IG5vZGVG
b3JJRCh0YXJnZXROb2RlSUQpOwogICAgIGF1dG8gcmVzdWx0ID0gaGFuZGxlV2hlZWxFdmVudFdp
dGhOb2RlKHdoZWVsRXZlbnQsIHsgfSwgdGFyZ2V0Tm9kZS5nZXQoKSk7CiAgICAgcmV0dXJuIHJl
c3VsdC53YXNIYW5kbGVkOwogfQogCit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2hlZWxF
dmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBP
cHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pCit7CisgICAgLy8gRklYTUU6IFNldCBzdGF0ZSBiYXNl
ZCBvbiBFdmVudEhhbmRsaW5nIGZsYWdzLgorfQorCiB2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJl
ZTo6aW52YWxpZGF0ZSgpCiB7CiAgICAgLy8gSW52YWxpZGF0ZSBpcyBkaXNwYXRjaGVkIGJ5IHRo
ZSBTY3JvbGxpbmdDb29yZGluYXRvciBjbGFzcyBvbiB0aGUgU2Nyb2xsaW5nVGhyZWFkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5oCmluZGV4IDRmNjhlYmM1NDNjZTM0ODVjOTNlMGY2ZTA2NWYxOGEyMjJmODkwNzcuLjVmMGE3
NTU0NDJmYjRhMWIwMjk2YjRkNWI1YzA0MTEwNGMzZjRlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC00OCw2
ICs0OCw3IEBAIHB1YmxpYzoKICAgICBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8V2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwcz4pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50QWZ0
ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCk7
CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAKICAgICB2b2lkIGlu
dmFsaWRhdGUoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAppbmRleCBiMjJhNzZi
MDkxNGJhZDY2OTE0ZmRmZGQyY2U2ZDU5N2U1MmY2MTU3Li5lZTU3NTY3N2QxYjExZGMyYzhmZTQw
NGEzZDI0NDg4MTkxOGE5ZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApAQCAtNDEsNyArNDEs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpIGZpbmFsOwog
CiAgICAgLy8gSGFuZGxlIHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZC4g
UmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZCBvciBub3QuCi0gICAgYm9vbCBo
YW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNj
cm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBwZXJmb3JtRGVmYXVsdFdoZWVsRXZl
bnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQpIGZp
bmFsOworICAgIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pIGZpbmFsOwogCiBw
cml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdD
b29yZGluYXRvck1hYy5tbQppbmRleCBiNDlmMTBjOWZjYzBmYWZiZDk1OGQ3MmUwYTBkNjhkYzUy
NzliZjNkLi4xNTZiNjAxNDQ4NjAzYjgxYjFkM2QwNDk1YjZkMmM0NTM4ZTA2ZWQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWM6OnBhZ2VEZXN0cm95ZWQoKQogICAgIH0pOwogfQogCi1ib29sIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdldE5vZGUpCitib29s
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGlu
Zyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCB0
YXJnZXROb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1f
cGFnZSk7CkBAIC04Myw5ICs4Myw2IEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6Omhh
bmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2CiAKICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjOjpoYW5kbGVXaGVlbEV2ZW50IC0gc2VuZGluZyBldmVudCB0byBzY3JvbGxpbmcgdGhyZWFk
Iik7CiAgICAgCi0gICAgLy8gRklYTUU6IE92ZXIgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQsIHdl
J2xsIGhpdC10ZXN0IHRoZSBsYXllcnMgYW5kIHBvc3NpYmx5IHNlbmQgdGhlIGV2ZW50IHRvIGEg
bm9kZQotICAgIC8vIHdoaWNoIHdlJ3ZlIGFscmVhZHkgZGlzY291bnRlZCBvbiB0aGUgbWFpbiB0
aHJlYWQuIFRoaXMgbmVlZHMgdG8gdGFyZ2V0IGEgc3BlY2lmaWMgbm9kZS4KLQogICAgIFJlZlB0
cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25jYXN0
PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKICAgICBTY3JvbGxpbmdU
aHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIHRhcmdl
dE5vZGVdIHsKICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5oYW5kbGVXaGVlbEV2ZW50
QWZ0ZXJNYWluVGhyZWFkKHdoZWVsRXZlbnQsIHRhcmdldE5vZGUpOwpAQCAtOTMsNiArOTAsMjkg
QEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudChGcmFtZVZp
ZXcmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGlj
IHVpbnQ2NF90IG5leHREZWZlcklkZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBk
ZWZlcklkZW50aWZpZXI7CisgICAgcmV0dXJuICsrZGVmZXJJZGVudGlmaWVyOworfQorCit2b2lk
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhy
ZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PEV2ZW50
SGFuZGxpbmc+IGRlZmF1bHRIYW5kbGluZykKK3sKKyAgICB1aW50NjRfdCBkZWZlcklkZW50aWZp
ZXIgPSAwOworICAgIGlmIChtX3BhZ2UgJiYgbV9wYWdlLT5pc01vbml0b3JpbmdXaGVlbEV2ZW50
cygpKSB7CisgICAgICAgIGRlZmVySWRlbnRpZmllciA9IG5leHREZWZlcklkZW50aWZpZXIoKTsK
KyAgICAgICAgbV9wYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0b3IoKS0+ZGVmZXJGb3JSZWFzb24o
cmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRl
bnRpZmllcj4oZGVmZXJJZGVudGlmaWVyKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSZXBvcnRE
T01FdmVudEhhbmRsaW5nKTsKKyAgICB9CisKKyAgICBSZWZQdHI8VGhyZWFkZWRTY3JvbGxpbmdU
cmVlPiB0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU+KHNjcm9sbGluZ1RyZWUoKSk7CisgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChbdGhy
ZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcsIGRlZmVySWRl
bnRpZmllcl0geworICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZlbnRXYXNQ
cm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZGVmYXVsdEhhbmRsaW5nKTsKKworICAg
ICAgICBpZiAodGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5pc01vbml0b3JpbmdXaGVlbEV2ZW50cygp
KQorICAgICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5yZW1vdmVXaGVlbEV2ZW50VGVz
dENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihkZWZlcklkZW50aWZpZXIpLCBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcpOworICAgIH0pOwor
fQorCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1p
dCgpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgb25lIG5lZWRzIHdvcmsuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDE4YTUyNTZjODNhN2Yz
OGUzYjdkMDg2MGNmYzc5NmY5YWNiZDk0ZjMuLjY0N2M3MjlmYzJlZDkyMjE4MTRiNzc0ZTE0MmEw
MjQ5MTZiY2Q1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlTWFjLm1tCkBAIC03Nyw3ICs3Nyw3IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50CiB7CiAj
aWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCiAgICAgaWYgKGhhc1N5bmNocm9ub3VzU2Nyb2xs
aW5nUmVhc29ucygpKQotICAgICAgICByZXR1cm4geyB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1h
aW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0sIGZhbHNlIH07CisgICAgICAgIHJldHVybiB7
IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnRE
aXNwYXRjaCB9LCBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBpZiAoIWNhbkhhbmRsZVdoZWVsRXZl
bnQod2hlZWxFdmVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAK
aW5kZXggZDllMWU2YjI4MTNjYzQ1NmRlOGMzYzAxODE1YjIxYzYwN2Q4NDE4Ny4uMzE0MTc0OGJm
ZGQyMzIxNDJkZjJhYzMyZDM4NmIwMzUzMGFhNmE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JOaWNvc2lhLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTmljb3NpYTo6Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKQogICAgIG1fc2Nyb2xsaW5n
U3RhdGVUcmVlQ29tbWl0dGVyVGltZXIuc3RvcCgpOwogfQogCi1ib29sIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCB0YXJnZXROb2RlKQorYm9v
bCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OnBlcmZvcm1EZWZhdWx0V2hlZWxFdmVudEhh
bmRsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9k
ZUlEIHRhcmdldE5vZGUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NF
UlQobV9wYWdlKTsKQEAgLTgxLDYgKzgxLDEzIEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JO
aWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhOjp3
aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGRlZmF1bHRIYW5kbGluZykK
K3sKKyAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUg
PSBtYWtlUmVmKGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oKnNjcm9sbGluZ1RyZWUo
KSkpLCB3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmddIHsKKyAgICAgICAgdGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLT53aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHdoZWVsRXZlbnQs
IGRlZmF1bHRIYW5kbGluZyk7CisgICAgfSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0
b3JOaWNvc2lhOjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpCiB7CiAgICAgaWYgKCFtX3Njcm9s
bGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyLmlzQWN0aXZlKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmlj
b3NpYS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdD
b29yZGluYXRvck5pY29zaWEuaAppbmRleCA4NDU2NjVjZTc3MThjNjBkZDRkYjEyODA2Y2RmM2M5
MTU0ZjhlNGYyLi5iZWY3MTA2MGRhYjRlZTVjYWYzYWFkZGEyMmUxZGUxOTQyZDkwYWIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25p
Y29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmgKQEAgLTQ0LDcgKzQ0LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpIG92ZXJyaWRlOwogCi0g
ICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBwZXJmb3JtRGVmYXVs
dFdoZWVsRXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdO
b2RlSUQpIG92ZXJyaWRlOworICAgIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRo
cmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4p
IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAppbmRleCA3
YjliNzNjOWQ5MzJkY2E3MWI2Yzg1OTFlMjFmNmJlYmE3OGViODgxLi5lNmNhOTJlNGY3NjVjODI5
MWU5NzgxYjBkZjI4NzJmMmQ5NTBmN2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1FdmVudC5oCkBAIC0zMCw2ICszMCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Vu
dW0gY2xhc3MgRXZlbnRIYW5kbGluZyA6IHVpbnQ4X3QgeworICAgIERpc3BhdGNoZWRUb0RPTSAg
ICAgPSAxIDw8IDAsCisgICAgRGVmYXVsdFByZXZlbnRlZCAgICA9IDEgPDwgMSwKKyAgICBEZWZh
dWx0SGFuZGxlZCAgICAgID0gMSA8PCAyLAorfTsKKwogY2xhc3MgUGxhdGZvcm1FdmVudCB7CiBw
dWJsaWM6CiAgICAgZW51bSBUeXBlIDogdWludDhfdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAppbmRleCA0MjY2M2I3OGE0NWVkZDg5OWY1MDUw
MDFkNjE1YWM5NmVmYzcwNzE2Li5lYzE1MmEzZTQ4ODQzOTRmZGE2NTQxZWI0MDU5YzIwYjQwZjE4
MzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5j
cHAKQEAgLTY0LDcgKzY0LDE4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgc3RlcHMpCiAgICAgc3dpdGNoIChzdGVwcykg
ewogICAgIGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkOiB0
cyA8PCAic2Nyb2xsaW5nIHRocmVhZCI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZzogdHMgPDwgIm1haW4gdGhyZWFkIHNj
cm9sbGluZyI7IGJyZWFrOwotICAgIGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2g6IHRzIDw8ICJtYWluIHRocmVhZCBET00gZXZlbnQg
ZGlzcGF0Y2giOyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1h
aW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2g6IHRzIDw8ICJtYWluIHRocmVh
ZCBub24tYmxvY2tpbmcgRE9NIGV2ZW50IGRpc3BhdGNoIjsgYnJlYWs7CisgICAgY2FzZSBXaGVl
bEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3Bh
dGNoOiB0cyA8PCAibWFpbiB0aHJlYWQgYmxvY2tpbmcgRE9NIGV2ZW50IGRpc3BhdGNoIjsgYnJl
YWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgRXZlbnRIYW5kbGluZyBzdGVwcykKK3sKKyAgICBzd2l0Y2ggKHN0ZXBz
KSB7CisgICAgY2FzZSBFdmVudEhhbmRsaW5nOjpEaXNwYXRjaGVkVG9ET006IHRzIDw8ICJkaXNw
YXRjaGVkIHRvIERPTSI7IGJyZWFrOworICAgIGNhc2UgRXZlbnRIYW5kbGluZzo6RGVmYXVsdFBy
ZXZlbnRlZDogdHMgPDwgImRlZmF1bHQgcHJldmVudGVkIjsgYnJlYWs7CisgICAgY2FzZSBFdmVu
dEhhbmRsaW5nOjpEZWZhdWx0SGFuZGxlZDogdHMgPDwgImRlZmF1bHQgaGFuZGxlZCI7IGJyZWFr
OwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IDNkNTY5M2Q4MmUwOWYzMzBjYWZiODlmOGI1ZWUyODc2
MGI5MzJmYmEuLjVkNDg2NGQ0NTVhMDM0MTYxODdjYTE2YTYyNTcyNmFiYmM0ZjM3ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0zNyw5ICsz
NywxMCBAQCBjbGFzcyBUZXh0U3RyZWFtOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNs
YXNzIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgOiB1aW50OF90IHsKLSAgICBTY3JvbGxpbmdU
aHJlYWQgICAgICAgICAgICAgICAgID0gMSA8PCAwLAotICAgIE1haW5UaHJlYWRGb3JTY3JvbGxp
bmcgICAgICAgICAgPSAxIDw8IDEsCi0gICAgTWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2gg
ICA9IDEgPDwgMiwKKyAgICBTY3JvbGxpbmdUaHJlYWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID0gMSA8PCAwLAorICAgIE1haW5UaHJlYWRGb3JTY3JvbGxpbmcgICAgICAgICAgICAgICAg
ICAgICAgPSAxIDw8IDEsCisgICAgTWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnREaXNw
YXRjaCAgICA9IDEgPDwgMiwKKyAgICBNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3Bh
dGNoICAgICAgID0gMSA8PCAzLAogfTsKIAogLy8gVGhlIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50
IGlzIGEgZmluZS1ncmFpbmVkIGV2ZW50IHRoYXQgc3BlY2lmaWVzIHRoZSBwcmVjaXNlIG51bWJl
ciBvZiBwaXhlbHMgdG8gc2Nyb2xsLgpAQCAtMjY1LDUgKzI2Niw2IEBAIGlubGluZSBGbG9hdFBv
aW50IFBsYXRmb3JtV2hlZWxFdmVudDo6c3dpcGVWZWxvY2l0eSgpIGNvbnN0CiAKIFdFQkNPUkVf
RVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzKTsK
K1dFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJl
YW0mLCBFdmVudEhhbmRsaW5nKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGRhNTE5NTVi
YjAzOGY4YmY3NzI4ZGVjNTYxNmJlNjBlZmJiZWViMjMuLjlkZjkxNGQ1ZGFjNTk1NGJmM2MyYmM1
ZTBiZWNmYTYxOTUzMzMxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5jcHAKQEAgLTE4MCw3ICsxODAsNyBAQCBib29sIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIHByb2Nlc3NpbmdTdGVwcyA9
IG1fc2Nyb2xsaW5nVHJlZS0+ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3Npbmcod2hlZWxFdmVu
dCk7Ci0gICAgaWYgKHByb2Nlc3NpbmdTdGVwcy5jb250YWluc0FueSh7IFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0pKQorICAgIGlmIChwcm9jZXNz
aW5nU3RlcHMuY29udGFpbnNBbnkoeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhy
ZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9y
Tm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpN
YWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH0pKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT53aWxsV2hlZWxFdmVudFN0YXJ0U3dp
cGVHZXN0dXJlKHdoZWVsRXZlbnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNTQ5YzAzYWRjNTIxOTc3ODg5NGQy
MTMzNjZkN2ZjZWNjYjVlZWQ1MS4uNzU5OGVjZmI0YjcyNDhlM2Q2OGY5MmUzNDljYTMwMjZlZTkw
MTRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuY3BwCkBAIC0xMjEsMTQgKzEyMSwxNCBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQm
IHdoZQogICAgIH0KICNlbmRpZgogCi0gICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBPcHRpb25T
ZXQ8V2ViQ29yZTo6V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4geyBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9OworICAgIGF1dG8gcHJvY2Vzc2lu
Z1N0ZXBzID0gT3B0aW9uU2V0PFdlYkNvcmU6OldoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHsg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRj
aCB9OwogI2lmIEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQogICAgIHByb2Nlc3NpbmdTdGVwcyA9
IFsmXSgpIC0+IE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB7CiAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CiAKICAgICAgICAgYXV0
byBzY3JvbGxpbmdUcmVlID0gbV9zY3JvbGxpbmdUcmVlcy5nZXQocGFnZUlEKTsKICAgICAgICAg
aWYgKCFzY3JvbGxpbmdUcmVlKQotICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICAgICAgICAgIHJldHVy
biB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlz
cGF0Y2ggfTsKICAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBJdCdzIHByZXR0eSBob3JyaWJs
ZSB0aGF0IHdlJ3JlIHVwZGF0aW5nIHRoZSBiYWNrL2ZvcndhcmQgc3RhdGUgaGVyZS4KICAgICAg
ICAgLy8gV2ViQ29yZSBzaG91bGQgYWx3YXlzIGtub3cgdGhlIGN1cnJlbnQgc3RhdGUgYW5kIGtu
b3cgd2hlbiBpdCBjaGFuZ2VzIHNvIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApp
bmRleCBmYmExOWQ4NzUxOTBhM2U4ZjY0NDg2OWQ0MmMwY2UyMzVhZGVlOWIwLi5mNzdjMjYyZTA5
NGYxYjIyYjI3ZWQxZDI0YTJjNjRkMGUyYmMzNzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcApAQCAtMjEzNyw3ICsyMTM3LDcgQEAgYm9vbCBXZWJWaWV3Ojptb3VzZVdoZWVsKFdQ
QVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNNb3VzZUhXaGVlbCkKICAgICBpZiAo
IWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGNvcmVGcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCB7IFdoZWVsRXZl
bnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0pOworICAgIHJldHVy
biBjb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCwg
eyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVl
bEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3Bh
dGNoIH0pOwogfQogCiBib29sIFdlYlZpZXc6OnZlcnRpY2FsU2Nyb2xsKFdQQVJBTSB3UGFyYW0s
IExQQVJBTSAvKmxQYXJhbSovKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFz
c2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNzEy
OTcxZjNhOWRiM2JmYjljNzhkN2ZhNzA1ZTEyNjQ2MWI1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lv
bi1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0cyB0aGF0
IHdoZWVsIGV2ZW50cyBpbiB0aGUgcGFzc2l2ZSByZWdpb24gYXJlIG5vbi1jYW5jZWxhYmxlCitQ
QVNTIHdpbmRvd1Njcm9sbEV2ZW50Q291bnQgPiAwIGlzIHRydWUKK1BBU1Mgd2FzQ2FuY2VsYWJs
ZSBpcyBmYWxzZQorUEFTUyB3YXNDYW5jZWxlZCBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5j
ZWxhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1p
bi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MTkwZTJi
MDg0ZDg2YTEzZGVlZWUyYTUwNTJlNDAwZTQ4NjNmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1u
b24tY2FuY2VsYWJsZS5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVp
Z2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICN0YXJnZXQgeworICAg
ICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICAgIG1hcmdpbjogMjBw
eDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIHZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBsZXQgaXNGaXJzdCA9IHRy
dWU7CisgICAgICAgIGxldCB3aW5kb3dTY3JvbGxFdmVudENvdW50ID0gMDsKKyAgICAgICAgbGV0
IHdhc0NhbmNlbGFibGU7CisgICAgICAgIGxldCB3YXNDYW5jZWxlZDsKKworICAgICAgICBhc3lu
YyBmdW5jdGlvbiB0ZXN0U2Nyb2xsKCkKKyAgICAgICAgeworICAgICAgICAgICAgYXdhaXQgVUlI
ZWxwZXIubW91c2VXaGVlbFNjcm9sbEF0KDEwMCwgMTAwKTsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgnd2luZG93U2Nyb2xsRXZlbnRDb3VudCA+IDAnKTsKKworICAgICAgICAgICAgc2hvdWxk
QmVGYWxzZSgnd2FzQ2FuY2VsYWJsZScpOworICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgnd2Fz
Q2FuY2VsZWQnKTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKwor
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAg
ICAgIGRlYnVnKCdUZXN0cyB0aGF0IHdoZWVsIGV2ZW50cyBpbiB0aGUgcGFzc2l2ZSByZWdpb24g
YXJlIG5vbi1jYW5jZWxhYmxlJykKKyAgICAgICAgICAgIGxldCB0YXJnZXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKKyAgICAgICAgICAgIHRhcmdldC5hZGRFdmVudExp
c3RlbmVyKCd3aGVlbCcsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGlmIChpc0ZpcnN0
KSB7CisgICAgICAgICAgICAgICAgICAgIHdhc0NhbmNlbGFibGUgPSBldmVudC5jYW5jZWxhYmxl
OworICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAg
ICAgICAgICAgICB3YXNDYW5jZWxlZCA9IGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQ7CisgICAgICAg
ICAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICB9LCB7IHBhc3NpdmU6IHRydWUgfSk7CisKKyAgICAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAg
ICAgICAgKyt3aW5kb3dTY3JvbGxFdmVudENvdW50OworICAgICAgICAgICAgfSwgZmFsc2UpOwor
CisgICAgICAgICAgICBzZXRUaW1lb3V0KHRlc3RTY3JvbGwsIDApOworICAgICAgICB9LCBmYWxz
ZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJ0YXJnZXQi
PjwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414405</attachid>
            <date>2020-11-17 20:35:07 -0800</date>
            <delta_ts>2020-11-18 12:15:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219050-20201117203506.patch</filename>
            <type>text/plain</type>
            <size>52395</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVjOThiZGYxMGMwMDRm
YjQyODkxZTIwOTYzMDQyNzg5NjQ3NTE4NC4uZjJiZDIzZTk0ZGIzMmM2ODMyNDhjMDQ5MzY1Mjlm
YTcxYjcxZDQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDIwLTExLTE3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFByb3BhZ2F0ZSB3
aGVlbCBldmVudCBoYW5kbGluZyBiYWNrIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkwNTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmVwYXJlIHRvIGZpeCB3
ZWJraXQub3JnL2IvMjE4NzY0IGJ5IGFkZGluZyBhIHdheSBmb3IgdGhlIG1haW4gdGhyZWFkIHRv
IGNvbW11bmljYXRlIGJhY2sKKyAgICAgICAgdG8gdGhlIHNjcm9sbGluZyB0aHJlYWQgaW5mb3Jt
YXRpb24gYWJvdXQgd2hldGhlciB0aGUgd2hlZWwgZXZlbnQgd2FzIGRpc3BhdGNoZWQgdG8gSlMs
CisgICAgICAgIGFuZCB3aGV0aGVyIHByZXZlbnREZWZhdWx0KCkgd2FzIGNhbGxlZCBvbiBpdC4K
KworICAgICAgICBUaGUgRXZlbnRIYW5kbGluZyBlbnVtIGhhcyBiaXRzIHRoYXQgYXJlIHNldCB3
aGVuIHRoZSBldmVudCBpcyBkaXNwYXRjaGVkIHRvIEpTLAorICAgICAgICB3aGVuIGl0J3MgY2Fu
Y2VsZWQsIGFuZCBpZiBkZWZhdWx0IGhhbmRsaW5nIGhhcHBlbmVkLiBUaGVzZSB2YWx1ZXMgYXJl
IGZpbGxlZCBpbgorICAgICAgICBFbGVtZW50OjpkaXNwYXRjaFdoZWVsRXZlbnQoKS4gVGhleSBw
cm9wYWdhdGUgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCB2aWEKKyAgICAgICAgRXZlbnRI
YW5kbGVyOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKCksIHdob3NlIG1hY09T
IGltcGxlbWVudGF0aW9uCisgICAgICAgIGNhbGxzIGludG8gdGhlIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yLCB3aGljaCB3aWxsIHNldCBzdGF0ZSBvbiB0aGUgU2Nyb2xsaW5nVHJlZSBpbgorICAgICAg
ICBhIGZ1dHVyZSBwYXRjaC4KKworICAgICAgICBXaGVlbEV2ZW50VGVzdE1vbml0b3IgZ2FpbnMg
YSAicmVhc29uIiBmbGFnIHRvIHRyYWNrIHRoZSBhc3luYyBwcm9wYWdhdGlvbiBvZgorICAgICAg
ICB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKCkgYmFjayB0byB0aGUgc2Nyb2xs
aW5nIHRocmVhZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBpbmZyYXN0cnVjdHVy
ZSBmb3IgdGhlIHNjcm9sbGluZyB0aHJlYWQgdG8gc3BlY2lmeSB0aGF0IHdoZWVsIGV2ZW50cwor
ICAgICAgICBzZW50IHRvIHRoZSBtYWluIHRocmVhZCB3aWxsIGJlIHVuY2FuY2VsYWJsZTsgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwcyBnYWlucworICAgICAgICBNYWluVGhyZWFkRm9yTm9uQmxv
Y2tpbmdET01FdmVudERpc3BhdGNoIGFuZCBNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERp
c3BhdGNoLAorICAgICAgICBhbmQgaWYgTWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnRE
aXNwYXRjaCBpcyBzZXQsIHRoZW4gd2UgY3JlYXRlCisgICAgICAgIFdoZWVsRXZlbnRzIHdpdGgg
SXNDYW5jZWxhYmxlOjpOby4gVGhpcyB3aWxsIGJlIHRoZSBjYXNlIGZvciB3aGVlbCBldmVudHMg
aW4KKyAgICAgICAgdGhlIHBhc3NpdmUgZXZlbnQgcmVnaW9uLgorCisgICAgICAgIFJlbmFtZSBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6aGFuZGxlV2hlZWxFdmVudCgpIHRvIHBlcmZvcm1EZWZhdWx0
V2hlZWxFdmVudEhhbmRsaW5nKCkKKyAgICAgICAgZm9yIGNsYXJpdHksIGFuZCBzdG9wIHBhc3Np
bmcgdGhlIEZyYW1lVmlldyogd2hpY2ggd2FzIHVudXNlZC4KKworICAgICAgICBBZGQgYSBtaXNz
aW5nIGxvY2sgaW4gVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJN
YWluVGhyZWFkKCkuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpkaXNwYXRjaFdoZWVsRXZlbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50
Lmg6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hl
ZWxFdmVudDo6V2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpjcmVh
dGUpOgorICAgICAgICAqIGRvbS9XaGVlbEV2ZW50Lmg6CisgICAgICAgICogcGFnZS9FdmVudEhh
bmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50V2Fz
UHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZVdoZWVsRXZlbnRJbnRlcm5hbCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OndoZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBvaW50ZXJMb2NrQ29udHJvbGxlcjo6ZGlzcGF0Y2hMb2NrZWRX
aGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRU
ZXN0TW9uaXRvci5oOgorICAgICAgICAqIHBhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudCk6CisgICAgICAgICogcGFn
ZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
Ojp3aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVu
dFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5h
dG9yOjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdDb29yZGluYXRvcjo6d2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVh
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6aGFuZGxlV2hlZWxF
dmVudCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50
UHJvY2Vzc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVl
bEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6Om5lZWRzTWFpblRocmVhZFBy
b2Nlc3NpbmcgY29uc3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVM
YXRjaGluZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUxh
dGNoaW5nQ29udHJvbGxlcjo6cmVjZWl2ZWRXaGVlbEV2ZW50KTogU2VuZCBpbiBXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzIHdoaWNoCisgICAgICAgIGEgZnV0dXJlIHBhdGNoIHdpbGwgdXNlLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50
QWZ0ZXJNYWluVGhyZWFkKTogVGhlcmUgd2FzIGEgbWlzc2luZyBsb2NrIGhlcmUuCisgICAgICAg
IChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpwZXJm
b3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5kbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0RGVm
ZXJJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Ojp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50
SGFuZGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lh
Ojp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudCk6IERlbGV0ZWQu
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5p
Y29zaWEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmg6CisgICAgICAgICog
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPDwpOiBBZGQgZHVtcGluZyBvZiBFdmVudEhhbmRsaW5nLgorICAgICAgICAqIHBsYXRmb3Jt
L1BsYXRmb3JtV2hlZWxFdmVudC5oOgorCiAyMDIwLTExLTE3ICBNZWdhbiBHYXJkbmVyICA8bWVn
YW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgU3BlY3VsYXRpdmUgZml4IGZvciBsb2Nh
bGl6YWJsZVN0cmluZ3Muc3RyaW5nIGluIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTgxZDI0ZDE5MzU2
ZmU0OTYwNTE2MjlmZDZhZjU5NmE5ZWY5NTJkZC4uZjdkMDc3NDUwMjk4MDk2ODRkZTdjM2I4MjU2
ZDhkZDg2MGM2ODkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0xMS0xNyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGUg
d2hlZWwgZXZlbnQgaGFuZGxpbmcgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MDUwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBGb3Igbm93
LCB1c2UgTWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCBmb3IgdGhlIGRlZmF1
bHQgc3RlcHMgKHVzZWQgYnkgbm9uLW1hY09TIHBsYXRmb3JtcykuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYW5k
bGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KToK
KwogMjAyMC0xMS0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIFJlbW92ZSBhY2Nlc3MgdG8gdGhlIHVudXNlZCBBcHBsZVNOQkZCVXNlckNs
aWVudCBJT0tpdCBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDMyMzkwMzM5
ZTU5MDBkN2Y2Njg4OTc4ZDg2MWUxYmE3N2ZlNzkwNWUuLjQyYTg4NmRjNzQwYWMwY2IxOTRiYzY2
YjlmYmMyZjk1ZmY2MzgzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAyMC0xMS0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KKworICAgICAgICBQcm9wYWdhdGUgd2hlZWwgZXZlbnQgaGFuZGxpbmcgYmFjayB0byB0aGUg
c2Nyb2xsaW5nIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIE1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2guCisKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om1vdXNlV2hlZWwpOgorCiAy
MDIwLTExLTExICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1v
dmUgdW51c2VkIEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIHNldHRpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAppbmRleCA3OGE5NjQ2MDczZjBhNDdiMmY5N2FmMjA4NmZlMjhhZGQzZmE4
YWQ2Li5kNjFjN2Y2OTU0MTJhNTViMTY0NjMwZjdlZGNlOWNjZjNiNTE4NzFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC00MjAsOSArNDIwLDkgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1v
dXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdAog
ICAgIHJldHVybiBkaWROb3RTd2FsbG93RXZlbnQ7CiB9CiAKLWJvb2wgRWxlbWVudDo6ZGlzcGF0
Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgcGxhdGZvcm1FdmVudCkKK2Jv
b2wgRWxlbWVudDo6ZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
cGxhdGZvcm1FdmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+JiBwcm9jZXNzaW5nLCBFdmVu
dDo6SXNDYW5jZWxhYmxlIGlzQ2FuY2VsYWJsZSkKIHsKLSAgICBhdXRvIGV2ZW50ID0gV2hlZWxF
dmVudDo6Y3JlYXRlKHBsYXRmb3JtRXZlbnQsIGRvY3VtZW50KCkud2luZG93UHJveHkoKSk7Cisg
ICAgYXV0byBldmVudCA9IFdoZWVsRXZlbnQ6OmNyZWF0ZShwbGF0Zm9ybUV2ZW50LCBkb2N1bWVu
dCgpLndpbmRvd1Byb3h5KCksIGlzQ2FuY2VsYWJsZSk7CiAKICAgICAvLyBFdmVudHMgd2l0aCBu
byBkZWx0YXMgYXJlIGltcG9ydGFudCBiZWNhdXNlIHRoZXkgY29udmV5IHBsYXRmb3JtIGluZm9y
bWF0aW9uIGFib3V0IHNjcm9sbCBnZXN0dXJlcwogICAgIC8vIGFuZCBtb21lbnR1bSBiZWdpbm5p
bmcgb3IgZW5kaW5nLiBIb3dldmVyLCB0aG9zZSBldmVudHMgc2hvdWxkIG5vdCBiZSBzZW50IHRv
IHRoZSBET00gc2luY2Ugc29tZQpAQCAtNDMwLDEyICs0MzAsMjEgQEAgYm9vbCBFbGVtZW50Ojpk
aXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBwbGF0Zm9ybUV2ZW50
KQogICAgIC8vIGV2ZW50IGhhbmRsZXIsIGFuZCBvdXIgcGxhdGZvcm0gY29kZSB3aWxsIGNvcnJl
Y3RseSBoYW5kbGUgdGhlIHBoYXNlIGNoYW5nZXMuIENhbGxpbmcgc3RvcFByb3BhZ2F0aW9uKCkK
ICAgICAvLyB3aWxsIHByZXZlbnQgdGhlIGV2ZW50IGZyb20gYmVpbmcgc2VudCB0byB0aGUgRE9N
LCBidXQgd2lsbCBzdGlsbCBjYWxsIHRoZSBkZWZhdWx0IGV2ZW50IGhhbmRsZXIuCiAgICAgLy8g
RklYTUU6IE1vdmUgdGhpcyBsb2dpYyBpbnRvIFdoZWVsRXZlbnQ6OmNyZWF0ZS4KLSAgICBpZiAo
IXBsYXRmb3JtRXZlbnQuZGVsdGFYKCkgJiYgIXBsYXRmb3JtRXZlbnQuZGVsdGFZKCkpCisgICAg
aWYgKHBsYXRmb3JtRXZlbnQuZGVsdGEoKS5pc1plcm8oKSkKICAgICAgICAgZXZlbnQtPnN0b3BQ
cm9wYWdhdGlvbigpOworICAgIGVsc2UKKyAgICAgICAgcHJvY2Vzc2luZy5hZGQoRXZlbnRIYW5k
bGluZzo6RGlzcGF0Y2hlZFRvRE9NKTsKIAogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAg
IAogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRWxlbWVudCAiIDw8
ICp0aGlzIDw8ICIgZGlzcGF0Y2hXaGVlbEV2ZW50OiBkZWZhdWx0UHJldmVudGVkICIgPDwgZXZl
bnQtPmRlZmF1bHRQcmV2ZW50ZWQoKSA8PCAiIGRlZmF1bHRIYW5kbGVkICIgPDwgZXZlbnQtPmRl
ZmF1bHRIYW5kbGVkKCkpOworICAgIAorICAgIGlmIChldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgp
KQorICAgICAgICBwcm9jZXNzaW5nLmFkZChFdmVudEhhbmRsaW5nOjpEZWZhdWx0UHJldmVudGVk
KTsKKworICAgIGlmIChldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAgICAgcHJvY2Vzc2lu
Zy5hZGQoRXZlbnRIYW5kbGluZzo6RGVmYXVsdEhhbmRsZWQpOworCiAgICAgcmV0dXJuICFldmVu
dC0+ZGVmYXVsdFByZXZlbnRlZCgpICYmICFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKaW5kZXggOWJjN2QyMGM5ZGNjZDcxZGJmOTQzM2RhMTU0NzQyMGU2YTcx
YjMzMy4uZmNiN2NlYjYyNWI5MTQzOTc4Y2ZhNzdmZDNmZThhNzhjZjQxZDlkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5oCkBAIC02Niw2ICs2Niw4IEBAIHN0cnVjdCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlv
bnM7CiBzdHJ1Y3QgU2Nyb2xsSW50b1ZpZXdPcHRpb25zOwogc3RydWN0IFNjcm9sbFRvT3B0aW9u
czsKIAorZW51bSBjbGFzcyBFdmVudFByb2Nlc3NpbmcgOiB1aW50OF90OworCiAjaWYgRU5BQkxF
KElOVEVSU0VDVElPTl9PQlNFUlZFUikKIHN0cnVjdCBJbnRlcnNlY3Rpb25PYnNlcnZlckRhdGE7
CiAjZW5kaWYKQEAgLTUzMCw3ICs1MzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTYXZlZExh
eWVyU2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmKTsKIAogICAgIGJvb2wgZGlzcGF0Y2hN
b3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2
ZW50VHlwZSwgaW50IGNsaWNrQ291bnQgPSAwLCBFbGVtZW50KiByZWxhdGVkVGFyZ2V0ID0gbnVs
bHB0cik7Ci0gICAgYm9vbCBkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50Jik7CisgICAgYm9vbCBkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+JiwgRXZlbnQ6OklzQ2FuY2VsYWJsZSA9IEV2
ZW50OjpJc0NhbmNlbGFibGU6Olllcyk7CiAgICAgYm9vbCBkaXNwYXRjaEtleUV2ZW50KGNvbnN0
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIGJvb2wgZGlzcGF0Y2hTaW11bGF0ZWRDbGlj
ayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01vdXNlRXZlbnRPcHRpb25z
ID0gU2VuZE5vRXZlbnRzLCBTaW11bGF0ZWRDbGlja1Zpc3VhbE9wdGlvbnMgPSBTaG93UHJlc3Nl
ZExvb2spOwogICAgIHZvaWQgZGlzcGF0Y2hGb2N1c0luRXZlbnQoY29uc3QgQXRvbVN0cmluZyYg
ZXZlbnRUeXBlLCBSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2VkRWxlbWVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vV2hlZWxFdmVudC5jcHAKaW5kZXggNmY1ZDE1ZmIyZDNhNDkwMTA3YTdlYjhmNzcxYjk1ZGM0
MzQyMmZjZC4uNDhlYTViZDMxNGE1MjMwMzY1YjMxN2I1ODgxMDhhZDY3NzQzMjc2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsOCArNTAsOCBAQCBpbmxpbmUgV2hlZWxFdmVu
dDo6V2hlZWxFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFs
aXplcikKIHsKIH0KIAotaW5saW5lIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiBldmVudCwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmIHZpZXcpCi0gICAgOiBN
b3VzZUV2ZW50KGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCBDYW5CdWJibGU6OlllcywgSXNDYW5j
ZWxhYmxlOjpZZXMsIElzQ29tcG9zZWQ6OlllcywgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1h
dGVNb25vdG9uaWNUaW1lKCksIFdURk1vdmUodmlldyksIDAsCitpbmxpbmUgV2hlZWxFdmVudDo6
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2luZG93
UHJveHk+JiYgdmlldywgSXNDYW5jZWxhYmxlIGlzQ2FuY2VsYWJsZSkKKyAgICA6IE1vdXNlRXZl
bnQoZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIENhbkJ1YmJsZTo6WWVzLCBpc0NhbmNlbGFibGUs
IElzQ29tcG9zZWQ6OlllcywgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNU
aW1lKCksIFdURk1vdmUodmlldyksIDAsCiAgICAgICAgIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCks
IGV2ZW50LnBvc2l0aW9uKCkgLCB7IH0sIGV2ZW50Lm1vZGlmaWVycygpLCAwLCAwLCBudWxscHRy
LCAwLCAwLCBJc1NpbXVsYXRlZDo6Tm8sIElzVHJ1c3RlZDo6WWVzKQogICAgICwgbV93aGVlbERl
bHRhKGV2ZW50LndoZWVsVGlja3NYKCkgKiBUaWNrTXVsdGlwbGllciwgZXZlbnQud2hlZWxUaWNr
c1koKSAqIFRpY2tNdWx0aXBsaWVyKQogICAgICwgbV9kZWx0YVgoLWV2ZW50LmRlbHRhWCgpKQpA
QCAtNjEsOSArNjEsOSBAQCBpbmxpbmUgV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2luZG93UHJveAogewogfQogCi1SZWY8V2hl
ZWxFdmVudD4gV2hlZWxFdmVudDo6Y3JlYXRlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZl
bnQsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiB2aWV3KQorUmVmPFdoZWVsRXZlbnQ+IFdoZWVsRXZl
bnQ6OmNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBSZWZQdHI8V2luZG93
UHJveHk+JiYgdmlldywgSXNDYW5jZWxhYmxlIGlzQ2FuY2VsYWJsZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXaGVlbEV2ZW50KGV2ZW50LCBXVEZNb3ZlKHZpZXcpKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2hlZWxFdmVudChldmVudCwgV1RGTW92ZSh2aWV3KSwgaXNDYW5j
ZWxhYmxlKSk7CiB9CiAKIFJlZjxXaGVlbEV2ZW50PiBXaGVlbEV2ZW50OjpjcmVhdGVGb3JCaW5k
aW5ncygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAppbmRleCBjZmQ1OTc3NTRmNWNhMDBlODcwZGYy
ZjI3NDQ4MTc1ODZhOGJlYWM2Li42MjQ0YTMyMjFiNmEzMDU3NGU0ZjU0MDUwZjlmZDUxODhjYjA3
MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgog
ICAgICAgICBET01fREVMVEFfUEFHRQogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPFdoZWVsRXZl
bnQ+IGNyZWF0ZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBSZWZQdHI8V2luZG93UHJveHk+
JiYpOworICAgIHN0YXRpYyBSZWY8V2hlZWxFdmVudD4gY3JlYXRlKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIFJlZlB0cjxXaW5kb3dQcm94eT4mJiwgSXNDYW5jZWxhYmxlID0gSXNDYW5jZWxh
YmxlOjpZZXMpOwogICAgIHN0YXRpYyBSZWY8V2hlZWxFdmVudD4gY3JlYXRlRm9yQmluZGluZ3Mo
KTsKIAogICAgIHN0cnVjdCBJbml0IDogTW91c2VFdmVudEluaXQgewpAQCAtNzYsNyArNzYsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdoZWVsRXZlbnQoKTsKICAgICBXaGVlbEV2ZW50KGNv
bnN0IEF0b21TdHJpbmcmLCBjb25zdCBJbml0Jik7Ci0gICAgV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBSZWZQdHI8V2luZG93UHJveHk+JiYpOworICAgIFdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPFdpbmRvd1Byb3h5PiYmLCBJc0NhbmNl
bGFibGUpOwogCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDZhZTQyYzFlYTkxNDk3
ZmYwZDMyNDU4NjMyOTQxOWE5MzQ2YTJlNzAuLjA3ZjJiMDJhNWEwNTEyN2EyNWUwNDIwMjJhNTQw
ODRkMzhlYTFjMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI3OTIs
NiArMjc5MiwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3Jv
bGxpbmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudAogICAgIHJldHVybiBkaWRIYW5k
bGVFdmVudDsKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6OndoZWVsRXZlbnRXYXNQcm9jZXNzZWRC
eU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50SGFu
ZGxpbmc+KQoreworfQorCiBib29sIEV2ZW50SGFuZGxlcjo6cGxhdGZvcm1Db21wbGV0ZVBsYXRm
b3JtV2lkZ2V0V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXaWRn
ZXQmLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYpCiB7CiAgICAgcmV0dXJuIHRydWU7
CkBAIC0yODYyLDYgKzI4NjYsMTQgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmNvbXBsZXRlV2lkZ2V0
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBjb24KIH0KIAogYm9v
bCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3NpbmdT
dGVwcykKK3sKKyAgICBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4gaGFuZGxpbmc7CisgICAgYm9v
bCBoYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudEludGVybmFsKGV2ZW50LCBwcm9jZXNzaW5nU3Rl
cHMsIGhhbmRsaW5nKTsKKyAgICB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGV2
ZW50LCBoYW5kbGluZyk7CisgICAgcmV0dXJuIGhhbmRsZWQ7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVXaGVlbEV2ZW50SW50ZXJuYWwoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBl
dmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3NpbmdTdGVw
cywgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+JiBoYW5kbGluZykKIHsKICAgICBhdXRvKiBkb2N1
bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQpAQCAtMjkyNCw3
ICsyOTM2LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiBldmVudCwgT3B0aW9uU2V0PFcKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCi0gICAgICAgIGlmICghZWxlbWVudC0+ZGlzcGF0Y2hXaGVlbEV2ZW50KGV2ZW50KSkg
eworICAgICAgICBhdXRvIGlzQ2FuY2VsYWJsZSA9IHByb2Nlc3NpbmdTdGVwcy5jb250YWlucyhX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERp
c3BhdGNoKSA/IEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcyA6IEV2ZW50OjpJc0NhbmNlbGFibGU6
Ok5vOworICAgICAgICBpZiAoIWVsZW1lbnQtPmRpc3BhdGNoV2hlZWxFdmVudChldmVudCwgaGFu
ZGxpbmcsIGlzQ2FuY2VsYWJsZSkpIHsKICAgICAgICAgICAgIG1faXNIYW5kbGluZ1doZWVsRXZl
bnQgPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlQXJlYSAmJiBzY3JvbGxhYmxl
QXJlYS0+c2Nyb2xsU2hvdWxkQ2xlYXJMYXRjaGVkU3RhdGUoKSkgewogICAgICAgICAgICAgICAg
IC8vIFdlYiBkZXZlbG9wZXIgaXMgY29udHJvbGxpbmcgc2Nyb2xsaW5nLCBzbyBkb24ndCBhdHRl
bXB0IHRvIGxhdGNoLgpAQCAtMjk1NCw2ICsyOTY3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgT3B0aW9uU2V0
PFcKICAgICAgICAgaGFuZGxlZEV2ZW50ID0gcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxpbmco
ZXZlbnQsIHNjcm9sbGFibGVBcmVhKTsKICAgICAgICAgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3Jv
bGxTbmFwKGV2ZW50LCBzY3JvbGxhYmxlQXJlYSk7CiAgICAgfQorCiAgICAgcmV0dXJuIGhhbmRs
ZWRFdmVudDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggZTg1NTg4NjU2
NTRmOTM0Mzg1ZDI4MGViMzlmZmExODMzNGE4Y2Q4YS4uOTBjNzg3YjY3ZTJmM2RjMjlkNDU4OGVl
YmY1ODdmYTkzNTFkZTlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yMDgs
OCArMjA4LDExIEBAIHB1YmxpYzoKICAgICBib29sIGhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYsIEhpdFRlc3RSZXN1bHQqID0gbnVsbHB0ciwgYm9vbCBvbmx5
VXBkYXRlU2Nyb2xsYmFycyA9IGZhbHNlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRs
ZU1vdXNlUmVsZWFzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogICAgIGJvb2wg
aGFuZGxlTW91c2VGb3JjZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOworCiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPik7CiAgICAgdm9pZCBk
ZWZhdWx0V2hlZWxFdmVudEhhbmRsZXIoTm9kZSosIFdoZWVsRXZlbnQmKTsKKyAgICB2b2lkIHdo
ZWVsRXZlbnRXYXNQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+KTsKKwogICAgIGJvb2wgaGFuZGxlUGFzdGVHbG9i
YWxTZWxlY3Rpb24oY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAKICNpZiBFTkFCTEUoSU9T
X1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKQEAgLTQ1Miw2ICs0
NTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChX
aWRnZXQqKTsKIAorICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEludGVybmFsKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiwgT3B0
aW9uU2V0PEV2ZW50SGFuZGxpbmc+Jik7CiAgICAgYm9vbCBwYXNzV2hlZWxFdmVudFRvV2lkZ2V0
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCYsIE9wdGlvblNldDxXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzPik7CiAgICAgdm9pZCBkZXRlcm1pbmVXaGVlbEV2ZW50VGFyZ2V0KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFJlZlB0cjxFbGVtZW50PiYgZXZlbnRUYXJnZXQsIFdl
YWtQdHI8U2Nyb2xsYWJsZUFyZWE+JiwgYm9vbCYgaXNPdmVyV2lkZ2V0KTsKICAgICB2b2lkIHJl
Y29yZFdoZWVsRXZlbnRGb3JEZWx0YUZpbHRlcihjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBiMWNjMjI3ZWQ0OGExMDBlYjkzYjlhYTM4
OWRjODQ1MjdmMWQ2YWU3Li40YTFkY2Y1Yzc2MjhkYTgyMTI0ZjRkZGViM2EzMTZlZmE5YTY1Y2Y3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01MTI3LDcgKzUxMjcsNyBAQCBib29s
IEZyYW1lVmlldzo6d2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQpCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAoYXV0byBzY3JvbGxpbmdD
b29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKICAgICAgICAgaWYg
KHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldygq
dGhpcykpCi0gICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmhhbmRsZVdo
ZWVsRXZlbnQoKnRoaXMsIHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKKyAgICAgICAg
ICAgIHJldHVybiBzY3JvbGxpbmdDb29yZGluYXRvci0+cGVyZm9ybURlZmF1bHRXaGVlbEV2ZW50
SGFuZGxpbmcod2hlZWxFdmVudCwgc2Nyb2xsaW5nTm9kZUlEKCkpOwogICAgIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKaW5kZXgg
ZWFkY2VlMzZlOTczYTFkZDNiZTc2ODdlODlkMDdiNDM5NDlkMjNkZC4uY2YxYWM1ZDBhMjM4YjQ1
MzgxNWVjZGRhODIxMjcyN2ExMmQ4ZWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9p
bnRlckxvY2tDb250cm9sbGVyLmNwcApAQCAtMTkzLDcgKzE5Myw4IEBAIHZvaWQgUG9pbnRlckxv
Y2tDb250cm9sbGVyOjpkaXNwYXRjaExvY2tlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiBlCiAgICAgaWYgKCFtX2VsZW1lbnQgfHwgIW1fZWxlbWVudC0+ZG9jdW1lbnQoKS5m
cmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2VsZW1lbnQtPmRpc3BhdGNoV2hlZWxF
dmVudChldmVudCk7CisgICAgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGRlZmF1bHRIYW5kbGlu
ZzsKKyAgICBtX2VsZW1lbnQtPmRpc3BhdGNoV2hlZWxFdmVudChldmVudCwgZGVmYXVsdEhhbmRs
aW5nKTsKIH0KIAogdm9pZCBQb2ludGVyTG9ja0NvbnRyb2xsZXI6OmNsZWFyRWxlbWVudCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHAKaW5kZXggMGUx
YWI0ZGM5OWQ5ZmFmOTc4ZjEyMWNmNmYxNWYzZTA2YzdkZDgzOC4uNjM3NzIwMjg2NjE4MWYwYzZk
ZGJkZTJhNzNlYzc4M2Y4NDg3YzcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9X
aGVlbEV2ZW50VGVzdE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxF
dmVudFRlc3RNb25pdG9yLmNwcApAQCAtMTcwLDYgKzE3MCw3IEBAIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgdHMsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24g
cmVhc29uCiAgICAgc3dpdGNoIChyZWFzb24pIHsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9u
aXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50OiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQiOyBi
cmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6SGFuZGxpbmdXaGVlbEV2ZW50
T25NYWluVGhyZWFkOiB0cyA8PCAiaGFuZGxpbmcgd2hlZWwgZXZlbnQgb24gbWFpbiB0aHJlYWQi
OyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UmVwb3J0RE9NRXZlbnRI
YW5kbGluZzogdHMgPDwgInJlcG9ydCBET00gZXZlbnQgaGFuZGxpbmciOyBicmVhazsKICAgICBj
YXNlIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6UnViYmVyYmFuZEluUHJvZ3Jlc3M6IHRzIDw8ICJy
dWJiZXJiYW5kaW5nIjsgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNj
cm9sbFNuYXBJblByb2dyZXNzOiB0cyA8PCAic2Nyb2xsLXNuYXBwaW5nIjsgYnJlYWs7CiAgICAg
Y2FzZSBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQ6IHRz
IDw8ICJzY3JvbGxpbmcgdGhyZWFkIHN5bmMgbmVlZGVkIjsgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3IuaAppbmRleCAwMjYxMDNmNGVjODNlYjI2ODlm
YTJiM2VjMTIyNWYwNTBhZTYzOGVkLi45MjA3N2U5ZDVmYWIwZWY5ZmUyNmYwNTUyNTczNzI4YzFj
NzY3NWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9u
aXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmgK
QEAgLTUwLDExICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgZW51bSBEZWZlclJlYXNvbiB7CiAgICAg
ICAgIEhhbmRsaW5nV2hlZWxFdmVudCAgICAgICAgICAgICAgPSAxIDw8IDAsCiAgICAgICAgIEhh
bmRsaW5nV2hlZWxFdmVudE9uTWFpblRocmVhZCAgPSAxIDw8IDEsCi0gICAgICAgIFJ1YmJlcmJh
bmRJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDIsCi0gICAgICAgIFNjcm9sbFNuYXBJblBy
b2dyZXNzICAgICAgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIFNjcm9sbGluZ1RocmVhZFN5bmNO
ZWVkZWQgICAgICAgPSAxIDw8IDQsCi0gICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dyZXNzICAg
ICAgICAgPSAxIDw8IDUsCi0gICAgICAgIFJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uICAgICAgICAg
PSAxIDw8IDYsCisgICAgICAgIFJlcG9ydERPTUV2ZW50SGFuZGxpbmcgICAgICAgICAgPSAxIDw8
IDIsCisgICAgICAgIFJ1YmJlcmJhbmRJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDMsCisg
ICAgICAgIFNjcm9sbFNuYXBJblByb2dyZXNzICAgICAgICAgICAgPSAxIDw8IDQsCisgICAgICAg
IFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQgICAgICAgPSAxIDw8IDUsCisgICAgICAgIENvbnRl
bnRTY3JvbGxJblByb2dyZXNzICAgICAgICAgPSAxIDw8IDYsCisgICAgICAgIFJlcXVlc3RlZFNj
cm9sbFBvc2l0aW9uICAgICAgICAgPSAxIDw8IDcsCiAgICAgfTsKICAgICB0eXBlZGVmIGNvbnN0
IHZvaWQqIFNjcm9sbGFibGVBcmVhSWRlbnRpZmllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCmluZGV4IGM1NTUyNDU3MjFlOWZmMjMwZWQ1YmRjOWRkMjJl
NWYxNDBiODdjZjIuLjdkMWQ1YTRjN2NlYTVhNjdiOGYzMTIxODgwNjY5MGU2ZGViMmVhNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KQEAgLTEwNyw3ICsx
MDcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudChXZWJFdmVudCAqZXZlbnQpCiAK
ICAgICBDdXJyZW50RXZlbnRTY29wZSBzY29wZShldmVudCk7CiAKLSAgICBib29sIGV2ZW50V2Fz
SGFuZGxlZCA9IGhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBs
YXRmb3JtV2hlZWxFdmVudChldmVudCksIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7CisgICAgYm9vbCBldmVudFdhc0hhbmRsZWQgPSBoYW5k
bGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZl
bnQoZXZlbnQpLCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3Jv
bGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RP
TUV2ZW50RGlzcGF0Y2ggfSk7CiAgICAgZXZlbnQud2FzSGFuZGxlZCA9IGV2ZW50V2FzSGFuZGxl
ZDsKICAgICByZXR1cm4gZXZlbnRXYXNIYW5kbGVkOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGFmNzM1ZWU3YWVhNjc4MzA1NDI1YzMxMzhkODUw
MGM2ZDhlZjczNzAuLjE0YTlmYWM5ODQwNDBkNjUyZTIwNWQxMGRkYzAxODAzMDZkNGYxZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTYzLDYgKzYz
LDcgQEAKICNpbXBvcnQgIlNjcm9sbExhdGNoaW5nQ29udHJvbGxlci5oIgogI2ltcG9ydCAiU2Ny
b2xsYWJsZUFyZWEuaCIKICNpbXBvcnQgIlNjcm9sbGJhci5oIgorI2ltcG9ydCAiU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaCIKICNpbXBvcnQgIlNldHRpbmdzLmgiCiAjaW1wb3J0ICJTaGFkb3dSb290
LmgiCiAjaW1wb3J0ICJTaW1wbGVSYW5nZS5oIgpAQCAtMTQ2LDcgKzE0Nyw3IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjp3aGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBDdXJyZW50RXZlbnRTY29wZSBzY29wZShldmVudCwgbmlsKTsKLSAgICByZXR1
cm4gaGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1X
aGVlbEV2ZW50KGV2ZW50LCBwYWdlLT5jaHJvbWUoKS5wbGF0Zm9ybVBhZ2VDbGllbnQoKSksIHsg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7Cisg
ICAgcmV0dXJuIGhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBs
YXRmb3JtV2hlZWxFdmVudChldmVudCwgcGFnZS0+Y2hyb21lKCkucGxhdGZvcm1QYWdlQ2xpZW50
KCkpLCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcs
IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50
RGlzcGF0Y2ggfSk7CiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpl
dmVudCkKQEAgLTk1Miw2ICs5NTMsMjYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnByb2Nlc3NXaGVl
bEV2ZW50Rm9yU2Nyb2xsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWwKICAgICBy
ZXR1cm4gZGlkSGFuZGxlRXZlbnQ7CiB9CiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50
V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxF
dmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGV2ZW50SGFuZGxpbmcpCit7CisjaWYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKKyAgICBpZiAoIW1fZnJhbWUucGFnZSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKTsKKyAgICBpZiAo
IXZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yID0gbV9mcmFtZS5wYWdlKCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKKyAgICAgICAg
aWYgKHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmll
dygqdmlldykpCisgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+d2hlZWxFdmVudFdh
c1Byb2Nlc3NlZEJ5TWFpblRocmVhZCh3aGVlbEV2ZW50LCBldmVudEhhbmRsaW5nKTsKKyAgICB9
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh3aGVlbEV2ZW50KTsKKyAgICBVTlVTRURfUEFSQU0o
ZXZlbnRIYW5kbGluZyk7CisjZW5kaWYKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OnBsYXRmb3Jt
Q29tcGxldGVQbGF0Zm9ybVdpZGdldFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50LCBjb25zdCBXaWRnZXQmIHdpZGdldCwgY29uc3QgV2Vha1B0cjxTY3JvbGxh
YmxlQXJlYT4mIHNjcm9sbGFibGVBcmVhKQogewogICAgIC8vIFdlYktpdDE6IFByZXZlbnQgbXVs
dGlwbGUgY29waWVzIG9mIHRoZSBzY3JvbGxXaGVlbCBldmVudCBmcm9tIGJlaW5nIHNlbnQgdG8g
dGhlIE5TU2Nyb2xsVmlldyB3aWRnZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCAyYzUzZWMwNTEyM2MyMzVhMDBh
NmZkN2QzMjAwNGFlNzYzZDMzOGViLi43Yjc0ZjhhOTA1MWUzNTk5YzRkYmY0MmJhZmMwODllMWJl
NDhmNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTEyNyw3ICsxMjcsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGhl
c2UgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGN1cnJlbnRseSB1bmlxdWUgdG8gdGhlIHRocmVhZGVk
IHNjcm9sbGluZyBhcmNoaXRlY3R1cmUuIAogICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmVlU3Rh
dGVJZk5lZWRlZCgpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoU2Nyb2xsYWJsZUFyZWEmLCBjb25zdCBJbnRQb2ludCYsIFNjcm9sbFR5cGUgPSBTY3Jv
bGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNs
YW1wZWQpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZl
bnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlE
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRGVmYXVsdFdoZWVs
RXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQp
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRXYXNQcm9jZXNz
ZWRCeU1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PEV2ZW50
SGFuZGxpbmc+KSB7IH0KIAogICAgIC8vIENyZWF0ZSBhbiB1bnBhcmVudGVkIG5vZGUuCiAgICAg
dmlydHVhbCBTY3JvbGxpbmdOb2RlSUQgY3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEIG5ld05vZGVJRCkgeyByZXR1cm4gbmV3Tm9kZUlEOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IDBkYTczZWNk
Mzk1ZjYxMTdiNDA4OGQ5MGQ1MWIxMDQwMzE3MDAxZTAuLmIwMzZhYTJlZDFmYmIxNzVmYTE0NDc0
ODc3Mjk0YzdhODc0ZDNhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuY3BwCkBAIC03NCw4ICs3NCw2IEBAIE9wdGlvblNldDxXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vz
c2luCiAgICAgICAgIHJldHVybiBsYXRjaGVkTm9kZUFuZFN0ZXBzLT5wcm9jZXNzaW5nU3RlcHM7
CiAgICAgfQogCi0gICAgbV9sYXRjaGluZ0NvbnRyb2xsZXIucmVjZWl2ZWRXaGVlbEV2ZW50KHdo
ZWVsRXZlbnQsIG1fYWxsb3dMYXRjaGluZyk7Ci0KICAgICBhdXRvIHByb2Nlc3NpbmdTdGVwcyA9
IFsmXSgpIC0+IE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB7CiAgICAgICAg
IGlmICghbV9yb290Tm9kZSkKICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCB9OwpAQCAtOTMsMjAgKzkxLDIyIEBAIE9wdGlvblNl
dDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVl
bEV2ZW50UHJvY2Vzc2luCiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIlxuU2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3Npbmc6
IHdoZWVsRXZlbnQgIiA8PCB3aGVlbEV2ZW50IDw8ICIgbWFwcGVkIHRvIGNvbnRlbnQgcG9pbnQg
IiA8PCBwb3NpdGlvbiA8PCAiLCBpbiBub24tZmFzdCByZWdpb24gIiA8PCBpc1N5bmNocm9ub3Vz
RGlzcGF0Y2hSZWdpb24pOwogCiAgICAgICAgICAgICBpZiAoaXNTeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uKQotICAgICAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1h
aW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIHsg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRj
aCB9OwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoV0hFRUxfRVZFTlRfUkVHSU9OUykKICAgICAg
ICAgYXV0byBldmVudExpc3RlbmVyVHlwZXMgPSBldmVudExpc3RlbmVyUmVnaW9uVHlwZXNGb3JQ
b2ludChwb3NpdGlvbik7CiAgICAgICAgIGlmIChldmVudExpc3RlbmVyVHlwZXMuY29udGFpbnMo
RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6Ok5vblBhc3NpdmVXaGVlbCkpCi0gICAgICAgICAgICBy
ZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5n
LCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRj
aCB9OworICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVh
ZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OwogCiAgICAgICAgIGlmIChldmVudExpc3Rl
bmVyVHlwZXMuY29udGFpbnMoRXZlbnRMaXN0ZW5lclJlZ2lvblR5cGU6OldoZWVsKSkKLSAgICAg
ICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVh
ZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0
Y2ggfTsKKyAgICAgICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNj
cm9sbGluZ1RocmVhZCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5v
bkJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCB9OwogI2VuZGlmCiAgICAgICAgIHJldHVybiB7IFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCB9OwogICAgIH0oKTsKIAor
ICAgIG1fbGF0Y2hpbmdDb250cm9sbGVyLnJlY2VpdmVkV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBw
cm9jZXNzaW5nU3RlcHMsIG1fYWxsb3dMYXRjaGluZyk7CisKICAgICBMT0dfV0lUSF9TVFJFQU0o
U2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQ
cm9jZXNzaW5nOiBwcm9jZXNzaW5nU3RlcHMgIiA8PCBwcm9jZXNzaW5nU3RlcHMpOwogCiAgICAg
cmV0dXJuIHByb2Nlc3NpbmdTdGVwczsKQEAgLTEyMSw3ICsxMjEsNyBAQCBXaGVlbEV2ZW50SGFu
ZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbgogICAgIGlmIChpc01vbml0b3JpbmdXaGVlbEV2ZW50cygpKQogICAgICAgICBy
ZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKLSAgICBtX2xhdGNoaW5nQ29udHJvbGxl
ci5yZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5nKTsKKyAgICBt
X2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCwgcHJvY2Vz
c2luZ1N0ZXBzLCBtX2FsbG93TGF0Y2hpbmcpOwogCiAgICAgYXV0byByZXN1bHQgPSBbJl0gewog
ICAgICAgICBpZiAoIW1fcm9vdE5vZGUpCkBAIC0xNjMsNyArMTYzLDggQEAgV2hlZWxFdmVudEhh
bmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW4KICAgICAgICAgcmV0dXJuIGhhbmRsZVdoZWVsRXZlbnRXaXRoTm9kZSh3aGVl
bEV2ZW50LCBwcm9jZXNzaW5nU3RlcHMsIG5vZGUuZ2V0KCkpOwogICAgIH0oKTsKIAotICAgIHJl
c3VsdC5zdGVwcy5hZGQocHJvY2Vzc2luZ1N0ZXBzICYgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2gpOworICAgIHN0YXRpYyBjb25zdGV4cHIg
T3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IG1haW5UaHJlYWRTdGVwcyA9IHsg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZl
bnREaXNwYXRjaCwgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2Nr
aW5nRE9NRXZlbnREaXNwYXRjaCB9OworICAgIHJlc3VsdC5zdGVwcy5hZGQocHJvY2Vzc2luZ1N0
ZXBzICYgbWFpblRocmVhZFN0ZXBzKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggM2U3OWZlYjQ5
YjEyNTkxOTZlYzFjYTY2NDA5Nzg1NWY5MzY0YWY4Mi4uYzhiYzFhMzhmYmY5MGQ1YjE0Nzc2ODUw
YWM4YjNkZmJiZmQ4NWM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaApAQCAtNTksNyArNTksNyBAQCB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9
IHVpbnQzMl90Owogc3RydWN0IFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCB7CiAgICAgT3B0aW9u
U2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHN0ZXBzOwogICAgIGJvb2wgd2FzSGFuZGxl
ZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBuZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkgY29uc3Qg
eyByZXR1cm4gc3RlcHMuY29udGFpbnNBbnkoeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpN
YWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhy
ZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9KTsgfQorICAgIGJvb2wgbmVlZHNNYWluVGhyZWFkUHJv
Y2Vzc2luZygpIGNvbnN0IHsgcmV0dXJuIHN0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnREaXNwYXRjaCwgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNwYXRj
aCB9KTsgfQogCiAgICAgc3RhdGljIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVkKE9w
dGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBzdGVwcyA9IHsgfSkKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0
Y2hpbmdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGY5NmU4ODQxOTFmYzU0NTc3YmYx
ZjNhM2ZjYzRhNDJiODk2OGY3YmEuLmQwZTA0ZmNmMzc0MWM4MTRlOGE0Y2QzOTlhODg5YWZkNjg3
MmNjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCkBAIC00MSw3ICs0MSw3
IEBAIHN0YXRpYyBjb25zdCBTZWNvbmRzIHJlc2V0TGF0Y2hlZFN0YXRlVGltZW91dCB7IDEwMF9t
cyB9OwogCiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpTY3JvbGxpbmdUcmVlTGF0
Y2hpbmdDb250cm9sbGVyKCkgPSBkZWZhdWx0OwogCi12b2lkIFNjcm9sbGluZ1RyZWVMYXRjaGlu
Z0NvbnRyb2xsZXI6OnJlY2VpdmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQsIGJvb2wgYWxsb3dMYXRjaGluZykKK3ZvaWQgU2Nyb2xsaW5nVHJlZUxhdGNo
aW5nQ29udHJvbGxlcjo6cmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+LCBib29s
IGFsbG93TGF0Y2hpbmcpCiB7CiAgICAgaWYgKCFhbGxvd0xhdGNoaW5nKQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgKaW5kZXggYzcyNDk3ZDU1MjcwZjcwZTg5
ZTg3ZjNjZTU4ODMxZWNhNWM1Njg1Ny4uYmVlNTkzMTViNWQ2ZTNmMDVhNTk5ZmFjMGEzYjliMDg3
NWUxNzA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaApAQCAtNDgsNyArNDgsNyBA
QCBwdWJsaWM6CiAKICAgICBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyKCk7CiAKLSAg
ICB2b2lkIHJlY2VpdmVkV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBib29s
IGFsbG93TGF0Y2hpbmcpOworICAgIHZvaWQgcmVjZWl2ZWRXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiwgYm9v
bCBhbGxvd0xhdGNoaW5nKTsKIAogICAgIE9wdGlvbmFsPFNjcm9sbGluZ05vZGVBbmRQcm9jZXNz
aW5nU3RlcHM+IGxhdGNoaW5nRGF0YUZvckV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYs
IGJvb2wgYWxsb3dMYXRjaGluZykgY29uc3Q7CiAgICAgdm9pZCBub2RlRGlkSGFuZGxlRXZlbnQo
U2Nyb2xsaW5nTm9kZUlELCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4sIGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGJvb2wgYWxsb3dMYXRjaGluZyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNw
cAppbmRleCA5Mzc5NDU2ZWFlMTdiMDk4MmNiNWQ1MmQ5OTVmY2FkZWQ1NGI3ZDRkLi43MjcxNWMw
ZWYyNjNjODE4ZjlkNDZkN2E5NWFmZDNiZjBjZDJlZjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTY3
LDEzICs2NywyMCBAQCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgVGhyZWFkZWRTY3JvbGxpbmdU
cmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtVwogYm9vbCBUaHJlYWRlZFNjcm9s
bGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxpbmdOb2RlSUQgdGFyZ2V0Tm9kZUlEKQogewog
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiVGhyZWFkZWRTY3JvbGxp
bmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkICIgPDwgd2hlZWxFdmVudCk7
Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZGlzYWxsb3dMYXRjaGluZ1Njb3BlKG1fYWxsb3dMYXRj
aGluZywgZmFsc2UpOwogCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV90cmVlTXV0ZXgpOworCisg
ICAgU2V0Rm9yU2NvcGU8Ym9vbD4gZGlzYWxsb3dMYXRjaGluZ1Njb3BlKG1fYWxsb3dMYXRjaGlu
ZywgZmFsc2UpOwogICAgIFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gdGFyZ2V0Tm9kZSA9IG5v
ZGVGb3JJRCh0YXJnZXROb2RlSUQpOwogICAgIGF1dG8gcmVzdWx0ID0gaGFuZGxlV2hlZWxFdmVu
dFdpdGhOb2RlKHdoZWVsRXZlbnQsIHsgfSwgdGFyZ2V0Tm9kZS5nZXQoKSk7CiAgICAgcmV0dXJu
IHJlc3VsdC53YXNIYW5kbGVkOwogfQogCit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6d2hl
ZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
LCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pCit7CisgICAgLy8gRklYTUU6IFNldCBzdGF0ZSBi
YXNlZCBvbiBFdmVudEhhbmRsaW5nIGZsYWdzLgorfQorCiB2b2lkIFRocmVhZGVkU2Nyb2xsaW5n
VHJlZTo6aW52YWxpZGF0ZSgpCiB7CiAgICAgLy8gSW52YWxpZGF0ZSBpcyBkaXNwYXRjaGVkIGJ5
IHRoZSBTY3JvbGxpbmdDb29yZGluYXRvciBjbGFzcyBvbiB0aGUgU2Nyb2xsaW5nVGhyZWFkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5oCmluZGV4IDRmNjhlYmM1NDNjZTM0ODVjOTNlMGY2ZTA2NWYxOGEyMjJmODkwNzcuLjVm
MGE3NTU0NDJmYjRhMWIwMjk2YjRkNWI1YzA0MTEwNGMzZjRlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC00
OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8V2hlZWxFdmVu
dFByb2Nlc3NpbmdTdGVwcz4pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50
QWZ0ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJ
RCk7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhhbmRsaW5nPik7CiAKICAgICB2b2lk
IGludmFsaWRhdGUoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAppbmRleCBiMjJh
NzZiMDkxNGJhZDY2OTE0ZmRmZGQyY2U2ZDU5N2U1MmY2MTU3Li5lZTU3NTY3N2QxYjExZGMyYzhm
ZTQwNGEzZDI0NDg4MTkxOGE5ZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaApAQCAtNDEsNyAr
NDEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpIGZpbmFs
OwogCiAgICAgLy8gSGFuZGxlIHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Nyb2xsaW5nIHRocmVh
ZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZCBvciBub3QuCi0gICAgYm9v
bCBoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYs
IFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBwZXJmb3JtRGVmYXVsdFdoZWVs
RXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQp
IGZpbmFsOworICAgIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFpblRocmVhZChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGluZz4pIGZpbmFsOwog
CiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5tbQppbmRleCBiNDlmMTBjOWZjYzBmYWZiZDk1OGQ3MmUwYTBkNjhk
YzUyNzliZjNkLi4xNTZiNjAxNDQ4NjAzYjgxYjFkM2QwNDk1YjZkMmM0NTM4ZTA2ZWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWM6OnBhZ2VEZXN0cm95ZWQoKQogICAgIH0pOwogfQogCi1ib29sIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdldE5vZGUpCiti
b29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpwZXJmb3JtRGVmYXVsdFdoZWVsRXZlbnRIYW5k
bGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJ
RCB0YXJnZXROb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KG1fcGFnZSk7CkBAIC04Myw5ICs4Myw2IEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6
OmhhbmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2CiAKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50IC0gc2VuZGluZyBldmVudCB0byBzY3JvbGxpbmcgdGhy
ZWFkIik7CiAgICAgCi0gICAgLy8gRklYTUU6IE92ZXIgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQs
IHdlJ2xsIGhpdC10ZXN0IHRoZSBsYXllcnMgYW5kIHBvc3NpYmx5IHNlbmQgdGhlIGV2ZW50IHRv
IGEgbm9kZQotICAgIC8vIHdoaWNoIHdlJ3ZlIGFscmVhZHkgZGlzY291bnRlZCBvbiB0aGUgbWFp
biB0aHJlYWQuIFRoaXMgbmVlZHMgdG8gdGFyZ2V0IGEgc3BlY2lmaWMgbm9kZS4KLQogICAgIFJl
ZlB0cjxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+IHRocmVhZGVkU2Nyb2xsaW5nVHJlZSA9IGRvd25j
YXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKTsKICAgICBTY3JvbGxp
bmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIHRh
cmdldE5vZGVdIHsKICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5oYW5kbGVXaGVlbEV2
ZW50QWZ0ZXJNYWluVGhyZWFkKHdoZWVsRXZlbnQsIHRhcmdldE5vZGUpOwpAQCAtOTMsNiArOTAs
MjkgQEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudChGcmFt
ZVZpZXcmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3Rh
dGljIHVpbnQ2NF90IG5leHREZWZlcklkZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50NjRf
dCBkZWZlcklkZW50aWZpZXI7CisgICAgcmV0dXJuICsrZGVmZXJJZGVudGlmaWVyOworfQorCit2
b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWlu
VGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PEV2
ZW50SGFuZGxpbmc+IGRlZmF1bHRIYW5kbGluZykKK3sKKyAgICB1aW50NjRfdCBkZWZlcklkZW50
aWZpZXIgPSAwOworICAgIGlmIChtX3BhZ2UgJiYgbV9wYWdlLT5pc01vbml0b3JpbmdXaGVlbEV2
ZW50cygpKSB7CisgICAgICAgIGRlZmVySWRlbnRpZmllciA9IG5leHREZWZlcklkZW50aWZpZXIo
KTsKKyAgICAgICAgbV9wYWdlLT53aGVlbEV2ZW50VGVzdE1vbml0b3IoKS0+ZGVmZXJGb3JSZWFz
b24ocmVpbnRlcnByZXRfY2FzdDxXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVh
SWRlbnRpZmllcj4oZGVmZXJJZGVudGlmaWVyKSwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpSZXBv
cnRET01FdmVudEhhbmRsaW5nKTsKKyAgICB9CisKKyAgICBSZWZQdHI8VGhyZWFkZWRTY3JvbGxp
bmdUcmVlPiB0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGlu
Z1RyZWU+KHNjcm9sbGluZ1RyZWUoKSk7CisgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChb
dGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmcsIGRlZmVy
SWRlbnRpZmllcl0geworICAgICAgICB0aHJlYWRlZFNjcm9sbGluZ1RyZWUtPndoZWVsRXZlbnRX
YXNQcm9jZXNzZWRCeU1haW5UaHJlYWQod2hlZWxFdmVudCwgZGVmYXVsdEhhbmRsaW5nKTsKKwor
ICAgICAgICBpZiAodGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5pc01vbml0b3JpbmdXaGVlbEV2ZW50
cygpKQorICAgICAgICAgICAgdGhyZWFkZWRTY3JvbGxpbmdUcmVlLT5yZW1vdmVXaGVlbEV2ZW50
VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihyZWludGVycHJldF9jYXN0PFdoZWVsRXZl
bnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyPihkZWZlcklkZW50aWZpZXIp
LCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlJlcG9ydERPTUV2ZW50SGFuZGxpbmcpOworICAgIH0p
OworfQorCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpzY2hlZHVsZVRyZWVTdGF0ZUNv
bW1pdCgpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgb25lIG5lZWRzIHdvcmsuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDE4YTUyNTZjODNh
N2YzOGUzYjdkMDg2MGNmYzc5NmY5YWNiZDk0ZjMuLjY0N2M3MjlmYzJlZDkyMjE4MTRiNzc0ZTE0
MmEwMjQ5MTZiY2Q1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlTWFjLm1tCkBAIC03Nyw3ICs3Nyw3IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBT
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50CiB7
CiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCiAgICAgaWYgKGhhc1N5bmNocm9ub3VzU2Ny
b2xsaW5nUmVhc29ucygpKQotICAgICAgICByZXR1cm4geyB7IFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0sIGZhbHNlIH07CisgICAgICAgIHJldHVy
biB7IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZl
bnREaXNwYXRjaCB9LCBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBpZiAoIWNhbkhhbmRsZVdoZWVs
RXZlbnQod2hlZWxFdmVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTmljb3NpYS5j
cHAKaW5kZXggZDllMWU2YjI4MTNjYzQ1NmRlOGMzYzAxODE1YjIxYzYwN2Q4NDE4Ny4uMzE0MTc0
OGJmZGQyMzIxNDJkZjJhYzMyZDM4NmIwMzUzMGFhNmE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JOaWNvc2lhLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yTmljb3NpYTo6Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKQogICAgIG1fc2Nyb2xs
aW5nU3RhdGVUcmVlQ29tbWl0dGVyVGltZXIuc3RvcCgpOwogfQogCi1ib29sIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcmLCBjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCB0YXJnZXROb2RlKQor
Ym9vbCBTY3JvbGxpbmdDb29yZGluYXRvck5pY29zaWE6OnBlcmZvcm1EZWZhdWx0V2hlZWxFdmVu
dEhhbmRsaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5n
Tm9kZUlEIHRhcmdldE5vZGUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBB
U1NFUlQobV9wYWdlKTsKQEAgLTgxLDYgKzgxLDEzIEBAIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0
b3JOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hl
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lh
Ojp3aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PEV2ZW50SGFuZGxpbmc+IGRlZmF1bHRIYW5kbGlu
ZykKK3sKKyAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFt0aHJlYWRlZFNjcm9sbGluZ1Ry
ZWUgPSBtYWtlUmVmKGRvd25jYXN0PFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4oKnNjcm9sbGluZ1Ry
ZWUoKSkpLCB3aGVlbEV2ZW50LCBkZWZhdWx0SGFuZGxpbmddIHsKKyAgICAgICAgdGhyZWFkZWRT
Y3JvbGxpbmdUcmVlLT53aGVlbEV2ZW50V2FzUHJvY2Vzc2VkQnlNYWluVGhyZWFkKHdoZWVsRXZl
bnQsIGRlZmF1bHRIYW5kbGluZyk7CisgICAgfSk7Cit9CisKIHZvaWQgU2Nyb2xsaW5nQ29vcmRp
bmF0b3JOaWNvc2lhOjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpCiB7CiAgICAgaWYgKCFtX3Nj
cm9sbGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyLmlzQWN0aXZlKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Tmljb3NpYS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxp
bmdDb29yZGluYXRvck5pY29zaWEuaAppbmRleCA4NDU2NjVjZTc3MThjNjBkZDRkYjEyODA2Y2Rm
M2M5MTU0ZjhlNGYyLi5iZWY3MTA2MGRhYjRlZTVjYWYzYWFkZGEyMmUxZGUxOTQyZDkwYWIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTmljb3NpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L25pY29zaWEvU2Nyb2xsaW5nQ29vcmRpbmF0b3JOaWNvc2lhLmgKQEAgLTQ0LDcgKzQ0LDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpIG92ZXJyaWRlOwog
Ci0gICAgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KEZyYW1lVmlldyYsIGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBwZXJmb3JtRGVm
YXVsdFdoZWVsRXZlbnRIYW5kbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxp
bmdOb2RlSUQpIG92ZXJyaWRlOworICAgIHZvaWQgd2hlZWxFdmVudFdhc1Byb2Nlc3NlZEJ5TWFp
blRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5kbGlu
Zz4pIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21t
aXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAppbmRl
eCA3YjliNzNjOWQ5MzJkY2E3MWI2Yzg1OTFlMjFmNmJlYmE3OGViODgxLi5lNmNhOTJlNGY3NjVj
ODI5MWU5NzgxYjBkZjI4NzJmMmQ5NTBmN2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1FdmVudC5oCkBAIC0zMCw2ICszMCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2VudW0gY2xhc3MgRXZlbnRIYW5kbGluZyA6IHVpbnQ4X3QgeworICAgIERpc3BhdGNoZWRUb0RP
TSAgICAgPSAxIDw8IDAsCisgICAgRGVmYXVsdFByZXZlbnRlZCAgICA9IDEgPDwgMSwKKyAgICBE
ZWZhdWx0SGFuZGxlZCAgICAgID0gMSA8PCAyLAorfTsKKwogY2xhc3MgUGxhdGZvcm1FdmVudCB7
CiBwdWJsaWM6CiAgICAgZW51bSBUeXBlIDogdWludDhfdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAppbmRleCA0MjY2M2I3OGE0NWVkZDg5OWY1
MDUwMDFkNjE1YWM5NmVmYzcwNzE2Li5lYzE1MmEzZTQ4ODQzOTRmZGE2NTQxZWI0MDU5YzIwYjQw
ZjE4MzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVs
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVu
dC5jcHAKQEAgLTY0LDcgKzY0LDE4IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgc3RlcHMpCiAgICAgc3dpdGNoIChzdGVw
cykgewogICAgIGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFk
OiB0cyA8PCAic2Nyb2xsaW5nIHRocmVhZCI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZzogdHMgPDwgIm1haW4gdGhyZWFk
IHNjcm9sbGluZyI7IGJyZWFrOwotICAgIGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6
TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2g6IHRzIDw8ICJtYWluIHRocmVhZCBET00gZXZl
bnQgZGlzcGF0Y2giOyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
Ok1haW5UaHJlYWRGb3JOb25CbG9ja2luZ0RPTUV2ZW50RGlzcGF0Y2g6IHRzIDw8ICJtYWluIHRo
cmVhZCBub24tYmxvY2tpbmcgRE9NIGV2ZW50IGRpc3BhdGNoIjsgYnJlYWs7CisgICAgY2FzZSBX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERp
c3BhdGNoOiB0cyA8PCAibWFpbiB0aHJlYWQgYmxvY2tpbmcgRE9NIGV2ZW50IGRpc3BhdGNoIjsg
YnJlYWs7CisgICAgfQorICAgIHJldHVybiB0czsKK30KKworVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgRXZlbnRIYW5kbGluZyBzdGVwcykKK3sKKyAgICBzd2l0Y2ggKHN0
ZXBzKSB7CisgICAgY2FzZSBFdmVudEhhbmRsaW5nOjpEaXNwYXRjaGVkVG9ET006IHRzIDw8ICJk
aXNwYXRjaGVkIHRvIERPTSI7IGJyZWFrOworICAgIGNhc2UgRXZlbnRIYW5kbGluZzo6RGVmYXVs
dFByZXZlbnRlZDogdHMgPDwgImRlZmF1bHQgcHJldmVudGVkIjsgYnJlYWs7CisgICAgY2FzZSBF
dmVudEhhbmRsaW5nOjpEZWZhdWx0SGFuZGxlZDogdHMgPDwgImRlZmF1bHQgaGFuZGxlZCI7IGJy
ZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IDNkNTY5M2Q4MmUwOWYzMzBjYWZiODlmOGI1ZWUy
ODc2MGI5MzJmYmEuLjVkNDg2NGQ0NTVhMDM0MTYxODdjYTE2YTYyNTcyNmFiYmM0ZjM3ZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0zNyw5
ICszNywxMCBAQCBjbGFzcyBUZXh0U3RyZWFtOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVt
IGNsYXNzIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgOiB1aW50OF90IHsKLSAgICBTY3JvbGxp
bmdUaHJlYWQgICAgICAgICAgICAgICAgID0gMSA8PCAwLAotICAgIE1haW5UaHJlYWRGb3JTY3Jv
bGxpbmcgICAgICAgICAgPSAxIDw8IDEsCi0gICAgTWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0
Y2ggICA9IDEgPDwgMiwKKyAgICBTY3JvbGxpbmdUaHJlYWQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gMSA8PCAwLAorICAgIE1haW5UaHJlYWRGb3JTY3JvbGxpbmcgICAgICAgICAgICAg
ICAgICAgICAgPSAxIDw8IDEsCisgICAgTWFpblRocmVhZEZvck5vbkJsb2NraW5nRE9NRXZlbnRE
aXNwYXRjaCAgICA9IDEgPDwgMiwKKyAgICBNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERp
c3BhdGNoICAgICAgID0gMSA8PCAzLAogfTsKIAogLy8gVGhlIFNjcm9sbEJ5UGl4ZWxXaGVlbEV2
ZW50IGlzIGEgZmluZS1ncmFpbmVkIGV2ZW50IHRoYXQgc3BlY2lmaWVzIHRoZSBwcmVjaXNlIG51
bWJlciBvZiBwaXhlbHMgdG8gc2Nyb2xsLgpAQCAtMjY1LDUgKzI2Niw2IEBAIGlubGluZSBGbG9h
dFBvaW50IFBsYXRmb3JtV2hlZWxFdmVudDo6c3dpcGVWZWxvY2l0eSgpIGNvbnN0CiAKIFdFQkNP
UkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBz
KTsKK1dFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRT
dHJlYW0mLCBFdmVudEhhbmRsaW5nKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGRhNTE5
NTViYjAzOGY4YmY3NzI4ZGVjNTYxNmJlNjBlZmJiZWViMjMuLjlkZjkxNGQ1ZGFjNTk1NGJmM2My
YmM1ZTBiZWNmYTYxOTUzMzMxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTE4MCw3ICsxODAsNyBAQCBib29sIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIHByb2Nlc3NpbmdTdGVw
cyA9IG1fc2Nyb2xsaW5nVHJlZS0+ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3Npbmcod2hlZWxF
dmVudCk7Ci0gICAgaWYgKHByb2Nlc3NpbmdTdGVwcy5jb250YWluc0FueSh7IFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNz
aW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0pKQorICAgIGlmIChwcm9j
ZXNzaW5nU3RlcHMuY29udGFpbnNBbnkoeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWlu
VGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFk
Rm9yTm9uQmxvY2tpbmdET01FdmVudERpc3BhdGNoLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBz
OjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERpc3BhdGNoIH0pKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBpZiAobV9zY3JvbGxpbmdUcmVlLT53aWxsV2hlZWxFdmVudFN0YXJ0
U3dpcGVHZXN0dXJlKHdoZWVsRXZlbnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNTQ5YzAzYWRjNTIxOTc3ODg5
NGQyMTMzNjZkN2ZjZWNjYjVlZWQ1MS4uNzU5OGVjZmI0YjcyNDhlM2Q2OGY5MmUzNDljYTMwMjZl
ZTkwMTRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuY3BwCkBAIC0xMjEsMTQgKzEyMSwxNCBAQCB2b2lkIEV2ZW50RGlzcGF0
Y2hlcjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZl
bnQmIHdoZQogICAgIH0KICNlbmRpZgogCi0gICAgYXV0byBwcm9jZXNzaW5nU3RlcHMgPSBPcHRp
b25TZXQ8V2ViQ29yZTo6V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4geyBXaGVlbEV2ZW50UHJv
Y2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9OworICAgIGF1dG8gcHJvY2Vz
c2luZ1N0ZXBzID0gT3B0aW9uU2V0PFdlYkNvcmU6OldoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+
IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckJsb2NraW5nRE9NRXZlbnREaXNw
YXRjaCB9OwogI2lmIEVOQUJMRShTQ1JPTExJTkdfVEhSRUFEKQogICAgIHByb2Nlc3NpbmdTdGVw
cyA9IFsmXSgpIC0+IE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB7CiAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2Nyb2xsaW5nVHJlZXNNdXRleCk7CiAKICAgICAgICAg
YXV0byBzY3JvbGxpbmdUcmVlID0gbV9zY3JvbGxpbmdUcmVlcy5nZXQocGFnZUlEKTsKICAgICAg
ICAgaWYgKCFzY3JvbGxpbmdUcmVlKQotICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfTsKKyAgICAgICAgICAgIHJl
dHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcs
IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JCbG9ja2luZ0RPTUV2ZW50
RGlzcGF0Y2ggfTsKICAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBJdCdzIHByZXR0eSBob3Jy
aWJsZSB0aGF0IHdlJ3JlIHVwZGF0aW5nIHRoZSBiYWNrL2ZvcndhcmQgc3RhdGUgaGVyZS4KICAg
ICAgICAgLy8gV2ViQ29yZSBzaG91bGQgYWx3YXlzIGtub3cgdGhlIGN1cnJlbnQgc3RhdGUgYW5k
IGtub3cgd2hlbiBpdCBjaGFuZ2VzIHNvIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cAppbmRleCBmYmExOWQ4NzUxOTBhM2U4ZjY0NDg2OWQ0MmMwY2UyMzVhZGVlOWIwLi5mNzdjMjYy
ZTA5NGYxYjIyYjI3ZWQxZDI0YTJjNjRkMGUyYmMzNzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcApAQCAtMjEzNyw3ICsyMTM3LDcgQEAgYm9vbCBXZWJWaWV3Ojptb3VzZVdoZWVs
KFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNNb3VzZUhXaGVlbCkKICAgICBp
ZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGNvcmVG
cmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCB7IFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH0pOworICAgIHJl
dHVybiBjb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVu
dCwgeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yQmxvY2tpbmdET01FdmVudERp
c3BhdGNoIH0pOwogfQogCiBib29sIFdlYlZpZXc6OnZlcnRpY2FsU2Nyb2xsKFdQQVJBTSB3UGFy
YW0sIExQQVJBTSAvKmxQYXJhbSovKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc4ZjIwZmUxMzI3ZWZmOTAwN2I3NjQxZWY0
OWFkMmJmMDAyODg1ZmQuLjczYWUxYjgyZTFkMzk2NDljMTU5NTMxYzFhYjMwZTFiMDk2ODgwNTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMS0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBQcm9wYWdhdGUgd2hlZWwgZXZlbnQgaGFuZGxp
bmcgYmFjayB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1p
bi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5v
bi1jYW5jZWxhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAyMC0xMS0xNyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU11bRkNSXSBBZGQgbmV3IGxvb2sgZm9yIGNoZWNrYm94ZXMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVn
aW9uLW5vbi1jYW5jZWxhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3doZWVsL3doZWVsLWV2ZW50LWluLXBhc3NpdmUtcmVnaW9uLW5vbi1jYW5jZWxhYmxlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYzcxMjk3MWYzYTlkYjNiZmI5Yzc4ZDdmYTcwNWUxMjY0NjFi
NWIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hl
ZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOCBAQAorVGVzdHMgdGhhdCB3aGVlbCBldmVudHMgaW4gdGhlIHBhc3NpdmUgcmVn
aW9uIGFyZSBub24tY2FuY2VsYWJsZQorUEFTUyB3aW5kb3dTY3JvbGxFdmVudENvdW50ID4gMCBp
cyB0cnVlCitQQVNTIHdhc0NhbmNlbGFibGUgaXMgZmFsc2UKK1BBU1Mgd2FzQ2FuY2VsZWQgaXMg
ZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1p
bi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mOTE5MGUyYjA4NGQ4NmExM2RlZWVlMmE1MDUyZTQwMGU0ODYzZjUz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwt
ZXZlbnQtaW4tcGFzc2l2ZS1yZWdpb24tbm9uLWNhbmNlbGFibGUuaHRtbApAQCAtMCwwICsxLDY0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAg
ICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAg
ICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7
CisgICAgICAgICAgICBtYXJnaW46IDIwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICAgICAgbGV0IGlzRmlyc3QgPSB0cnVlOworICAgICAgICBsZXQgd2luZG93U2Nyb2xsRXZl
bnRDb3VudCA9IDA7CisgICAgICAgIGxldCB3YXNDYW5jZWxhYmxlOworICAgICAgICBsZXQgd2Fz
Q2FuY2VsZWQ7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdFNjcm9sbCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgxMDAsIDEw
MCk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ3dpbmRvd1Njcm9sbEV2ZW50Q291bnQgPiAw
Jyk7CisKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoJ3dhc0NhbmNlbGFibGUnKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlRmFsc2UoJ3dhc0NhbmNlbGVkJyk7CisKKyAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBkZWJ1ZygnVGVzdHMgdGhhdCB3aGVlbCBldmVu
dHMgaW4gdGhlIHBhc3NpdmUgcmVnaW9uIGFyZSBub24tY2FuY2VsYWJsZScpCisgICAgICAgICAg
ICBsZXQgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCisgICAg
ICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoZXZlbnQpID0+IHsKKyAg
ICAgICAgICAgICAgICBpZiAoaXNGaXJzdCkgeworICAgICAgICAgICAgICAgICAgICB3YXNDYW5j
ZWxhYmxlID0gZXZlbnQuY2FuY2VsYWJsZTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2FzQ2FuY2VsZWQgPSBldmVudC5k
ZWZhdWx0UHJldmVudGVkOworICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSwgeyBwYXNz
aXZlOiB0cnVlIH0pOworCisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Ny
b2xsJywgKCkgPT4geworICAgICAgICAgICAgICAgICsrd2luZG93U2Nyb2xsRXZlbnRDb3VudDsK
KyAgICAgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICAgICAgc2V0VGltZW91dCh0ZXN0U2Ny
b2xsLCAwKTsKKyAgICAgICAgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjI0MzUwODczNmE1MGQyYWNiMTJiNjcxMzZh
YTI1MWU5OTcwNzFkMi4uMGRiODU1MTAwZTQxM2ZmYzFhMzNmZmViM2I3MjEwMDc4ZWEwYWNkNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDkyLDYgKzQ5Miw5IEBAIHdlYmtpdC5vcmcvYi8xODg3MDggaW5zcGVjdG9yL2RvbS1kZWJ1Z2dl
ci9ldmVudC1icmVha3BvaW50LXdpdGgtbmF2aWdhdGlvbi5odG1sCiBmYXN0L3Njcm9sbGluZy9z
Y3JvbGwtYW5pbWF0b3Itb3ZlcmxheS1zY3JvbGxiYXJzLWNsaWNrZWQuaHRtbCBbIFNraXAgXQog
ZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLW92ZXJsYXktc2Nyb2xsYmFycy1ob3ZlcmVk
Lmh0bWwgWyBTa2lwIF0KIAorIyBUZXN0cyB0aGF0IHJlcXVpcmUgYXN5bmMgc2Nyb2xsaW5nCitm
YXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1pbi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2Vs
YWJsZS5odG1sIFsgU2tpcCBdCisKICMgV0sxIG1haW4gZnJhbWUgc2Nyb2xsYmFycyBhcmUgbmF0
aXZlIHdpZGdldHMgd2hvc2Ugc2l6ZSBpcyB1bmFmZmVjdGVkIGJ5IHdlYmtpdC1zY3JvbGxiYXIu
CiBmYXN0L3Zpc3VhbC12aWV3cG9ydC92aWV3cG9ydC1kaW1lbnNpb25zLWV4Y2x1ZGUtY3VzdG9t
LXNjcm9sbGJhcnMuaHRtbCBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDI0OTYxZTUyYzlhOWU2ZGY3ZTczZjQzMDM5NGYwMGYzYWJlYjdj
ZWUuLmJhYmY1YmMwZmIwZTc0NjE3YzQwZjUxMWU1MWM1ZmFjMmU1NDI5OTkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNzUsMTAgKzI3NSwxMyBAQCBm
YXN0L2V2ZW50cy93aGVlbC9jb250aW51b3VzLXBsYXRmb3JtLXdoZWVsZXZlbnQtaW4tc2Nyb2xs
aW5nLWRpdi5odG1sIFsgRmFpbHVyZQogZmFzdC9ldmVudHMvd2hlZWwvcGxhdGZvcm0td2hlZWxl
dmVudC1pbi1zY3JvbGxpbmctZGl2Lmh0bWwgWyBGYWlsdXJlIFRpbWVvdXQgXQogZmFzdC9ldmVu
dHMvd2hlZWwvd2hlZWxldmVudC1pbi1ob3Jpem9udGFsLXNjcm9sbGJhci1pbi1ydGwuaHRtbCBb
IEZhaWx1cmUgXQogZmFzdC9ldmVudHMvd2hlZWwvd2hlZWxldmVudC1pbi12ZXJ0aWNhbC1zY3Jv
bGxiYXItaW4tcnRsLmh0bWwgWyBGYWlsdXJlIF0KKworIyBOZWVkIGFzeW5jIHNjcm9sbGluZwog
ZmFzdC9ldmVudHMvd2hlZWwvd2hlZWwtZXZlbnQtbGlzdGVuZXJzLW9uLWJvZHktbWFkZS1wYXNz
aXZlLmh0bWwgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3doZWVsL3doZWVsLWV2ZW50LWxpc3RlbmVy
cy1vbi1kb2N1bWVudC1tYWRlLXBhc3NpdmUuaHRtbCBbIFNraXAgXQogZmFzdC9ldmVudHMvd2hl
ZWwvd2hlZWwtZXZlbnQtbGlzdGVuZXJzLW9uLXdpbmRvdy1sZWZ0LWFjdGl2ZS5odG1sIFsgU2tp
cCBdCiBmYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1saXN0ZW5lcnMtb24td2luZG93LW1h
ZGUtcGFzc2l2ZS5odG1sIFsgU2tpcCBdCitmYXN0L2V2ZW50cy93aGVlbC93aGVlbC1ldmVudC1p
bi1wYXNzaXZlLXJlZ2lvbi1ub24tY2FuY2VsYWJsZS5odG1sIFsgU2tpcCBdCiAKIHNjcm9sbGJh
cnMvc2Nyb2xsLXJ0bC1vci1idC1sYXllci5odG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2Iv
MjA4NTU5IGZhc3Qvc2Nyb2xsaW5nL2Fycm93LWtleS1zY3JvbGwtaW4tcnRsLWRvY3VtZW50Lmh0
bWwgWyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>