<?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>210095</bug_id>
          
          <creation_ts>2020-04-06 21:43:59 -0700</creation_ts>
          <short_desc>[Async overflow scroll] Horizontal scrolls can trigger unwanted back swipes</short_desc>
          <delta_ts>2020-04-29 07:46:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>adachan</cc>
    
    <cc>alex</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638448</commentid>
    <comment_count>0</comment_count>
      <attachid>395652</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-06 21:43:59 -0700</bug_when>
    <thetext>Created attachment 395652
Test

With async overflow scroll, scrolls inside a horizontally-scrollable container can end up doing a history swipe instead of a scroll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638449</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-06 21:44:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/61376245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639304</commentid>
    <comment_count>2</comment_count>
      <attachid>395872</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-08 14:51:08 -0700</bug_when>
    <thetext>Created attachment 395872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639315</commentid>
    <comment_count>3</comment_count>
      <attachid>395872</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-08 15:22:27 -0700</bug_when>
    <thetext>Comment on attachment 395872
Patch

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

&gt; Source/WebCore/platform/cocoa/ScrollController.mm:107
&gt; +        // FIXME: Trying to decide if a gesture is horizontal or vertical at the &quot;began&quot; phase is very error-prone.

This likely wants something more like a generalized VGC::PendingSwipeTracker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639584</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-09 05:23:40 -0700</bug_when>
    <thetext>Found 2 new test failures: http/tests/adClickAttribution/anchor-tag-attributes-validation.html, http/tests/security/anchor-download-block-crossorigin.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639678</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-09 09:34:52 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/259805/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646987</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-29 07:46:13 -0700</bug_when>
    <thetext>*** Bug 211049 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>395652</attachid>
            <date>2020-04-06 21:43:59 -0700</date>
            <delta_ts>2020-04-06 21:43:59 -0700</delta_ts>
            <desc>Test</desc>
            <filename>horizotally-scrollable-in-vertically-scrollable.html</filename>
            <type>text/html</type>
            <size>1284</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsK
ICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CiAgICAgICAgICAgIHdpZHRoOiAyMDAwcHg7CiAg
ICAgICAgfQoKICAgICAgICAuc2Nyb2xsZXIgewogICAgICAgICAgICBtYXJnaW46IDUwcHg7CiAg
ICAgICAgICAgIHdpZHRoOiA1MDBweDsKICAgICAgICAgICAgaGVpZ2h0OiA1MDBweDsKICAgICAg
ICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgICAgICAgIGJvcmRlcjogMjBweCBzb2xpZCByZ2Jh
KDAsIDAsIDIwMCwgMC43NSk7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEo
MCwgMCwgMCwgMC43NSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgICAgIGxp
bmUtaGVpZ2h0OiAxLjVlbTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhvcml6b250YWwg
LnNjcm9sbGVyIHsKICAgICAgICAgICAgd2lkdGg6IDQwMHB4OwogICAgICAgICAgICBoZWlnaHQ6
IDQwMHB4OwogICAgICAgICAgICBtYXJnaW46IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAg
ICAgIC5maWxsZXIgewogICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OwogICAgICAgICAgICB3aWR0
aDogMTAwJTsKICAgICAgICAgICAgbWFyZ2luOiAxMHB4OwogICAgICAgICAgICBib3JkZXItcmFk
aXVzOiAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZXBlYXRpbmctbGluZWFyLWdyYWRp
ZW50KCNlZWUsIHNpbHZlciAxMDBweCk7CiAgICAgICAgfQoKICAgICAgICAuaG9yaXpvbnRhbCAu
ZmlsbGVyIHsKICAgICAgICAgICAgaGVpZ2h0OiA4MCU7CiAgICAgICAgICAgIHdpZHRoOiAyMDAl
OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KHRvIHJp
Z2h0LCAjZWVlLCBzaWx2ZXIgMTAwcHgpOwogICAgICAgIH0KICAgIDwvc3R5bGU+CiAgICAKPC9o
ZWFkPgo8Ym9keT4KCiAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CiAgICAgICAgPGRpdiBjbGFz
cz0ib3V0ZXIgdG9wIGZpbGxlciI+U2Nyb2xscyB2ZXJ0aWNhbGx5PC9kaXY+CiAgICAgICAgCiAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCBzY3JvbGxlciI+CiAgICAgICAgICAgIDxkaXYg
Y2xhc3M9Imhvcml6b250YWwgZmlsbGVyIj5TY3JvbGxzIGhvcml6b250YWxseTwvZGl2PgogICAg
ICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im91dGVyIGJvdHRvbSBmaWxsZXIiPjwvZGl2
PgogICAgPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395872</attachid>
            <date>2020-04-08 14:51:08 -0700</date>
            <delta_ts>2020-04-09 05:23:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210095-20200408145107.patch</filename>
            <type>text/plain</type>
            <size>38848</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZmNzJiYzhiNjUxNDdl
Yzk5NTc2YzFlMzU0ZTk4ZjY5ZTBmYzZiMy4uNzEwZTRiNzYyODMzYmUwNWJkZDc3NGRhMzkzY2Jl
YjlmM2E4MjIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTA0LTA4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtBc3luYyBvdmVy
ZmxvdyBzY3JvbGxdIEhvcml6b250YWwgc2Nyb2xscyBjYW4gdHJpZ2dlciB1bndhbnRlZCBiYWNr
IHN3aXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjEwMDk1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTM3NjI0NT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaXRoIGFzeW5jIG92ZXJmbG93L2Zy
YW1lIHNjcm9sbGluZywgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KCkgY2FuJ3QgaW1tZWRp
YXRlbHkKKyAgICAgICAgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNjcm9sbGluZyB0cmVlIGhhbmRs
ZWQgdGhlIHNjcm9sbDsgd2UgaGF2ZSB0byB3YWl0IHVudGlsIHRoZQorICAgICAgICBldmVudCBo
YXMgYmVlbiBwcm9jZXNzZWQgYnkgdGhlIHNjcm9sbGluZyB0aHJlYWQuIFRvIGFsbG93IHRoYXQs
IGFkZCBhCisgICAgICAgIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpTZW5kVG9TY3JvbGxpbmdUaHJl
YWQgcmV0dXJuIHZhbHVlIGFuZCBhIGdpdmUgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KCkKKyAgICAg
ICAgYSBjYWxsYmFjayB0aGF0J3MgY2FsbGVkIHdoZW4gdGhlIHNjcm9sbGluZyB0aHJlYWQgaXMg
ZG9uZSB3aXRoIHRoZSBldmVudC4gRXZlbnREaXNwYXRjaGVyCisgICAgICAgIHVzZXMgdGhhdCB0
byBzZW5kIHRoZSAiZGlkUmVjZWl2ZUV2ZW50IiB3aXRoICJoYW5kbGVkIiBiYWNrIHRvIHRoZSBV
SSBwcm9jZXNzLCB3aGljaCB0aGVuCisgICAgICAgIHByb2NlZWRzIHdpdGggaGlzdG9yeSBvciBy
ZWFkaW5nIGxpc3Qgc3dpcGVzLgorCisgICAgICAgIFZhcmlvdXMgZml4ZXMgd2VyZSBuZWNlc3Nh
cnkgdG8gY29ycmVjdGx5IGRldGVybWluZSB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZC4K
KyAgICAgICAgCisgICAgICAgIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6Omhh
bmRsZVdoZWVsRXZlbnQoKSBkaWRuJ3QgcmV0dXJuIGFuIGFjY3VyYXRlIFNjcm9sbGluZ0V2ZW50
UmVzdWx0LAorICAgICAgICBhbmQgU2Nyb2xsQ29udHJvbGxlciBkaWRuJ3QgcmV0dXJuIGZhbHNl
IGluIGNhc2VzIHdoZXJlIHJ1YmJlci1iYW5kaW5nIHdhcyBkaXNhYmxlZCAod2hpY2ggYnJva2Ug
bmF2aWdhdGlvbiBzd2lwZXMKKyAgICAgICAgYW5kIHJlYWRpbmcgbGlzdCBuYXZpZ2F0aW9uKS4K
KworICAgICAgICBUZXN0czogc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL21haW4t
ZnJhbWUtYmFjay1zd2lwZS5odG1sCisgICAgICAgICAgICAgICBzY3JvbGxpbmdjb29yZGluYXRv
ci9tYWMvbGF0Y2hpbmcvc2ltcGxlLXBhZ2UtcnViYmVyYmFuZHMuaHRtbAorCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFu
ZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjptYWluRnJh
bWVDYW5SdWJiZXJCYW5kSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp0cnlU
b0hhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
OjphbGxvd3NIb3Jpem9udGFsU3RyZXRjaGluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjphbGxvd3NWZXJ0aWNhbFN0cmV0
Y2hpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29u
dHJvbGxlcjo6d2hlZWxEZWx0YUJpYXNpbmdUb3dhcmRzVmVydGljYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6ZGlyZWN0aW9uRnJvbUV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnNob3VsZFJ1YmJlckJhbmRJbkhvcml6b250YWxEaXJl
Y3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXI6OnNob3VsZFJ1YmJlckJhbmRJbkhvcml6b250YWxEaXJlY3Rpb24pOiBEZWxldGVk
LgorCiAyMDIwLTA0LTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFVzZSBSZWN0RWRnZXM8PiBpbiBzb21lIHNjcm9sbGluZyB0cmVlIGNvZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggMWNmOWYyMTNkYjVmMGM2NjA5NmFhMGQwNzYzNDNjZmMxN2UzMzlhNi4uOTVkNGU1
ZjA5ZDMxMDYyNmNkMWNmMzdkZGQ1OGMxMTcwMThjNmQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NSBAQAorMjAyMC0wNC0wOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
KworICAgICAgICBbQXN5bmMgb3ZlcmZsb3cgc2Nyb2xsXSBIb3Jpem9udGFsIHNjcm9sbHMgY2Fu
IHRyaWdnZXIgdW53YW50ZWQgYmFjayBzd2lwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDA5NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjEz
NzYyNDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2l0aCBhc3luYyBvdmVyZmxvdy9mcmFtZSBzY3JvbGxpbmcsIEV2ZW50RGlzcGF0Y2hlcjo6d2hl
ZWxFdmVudCgpIGNhbid0IGltbWVkaWF0ZWx5CisgICAgICAgIGRldGVybWluZSB3aGV0aGVyIHRo
ZSBzY3JvbGxpbmcgdHJlZSBoYW5kbGVkIHRoZSBzY3JvbGw7IHdlIGhhdmUgdG8gd2FpdCB1bnRp
bCB0aGUKKyAgICAgICAgZXZlbnQgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBzY3JvbGxpbmcg
dGhyZWFkLiBUbyBhbGxvdyB0aGF0LCBhZGQgYQorICAgICAgICBTY3JvbGxpbmdFdmVudFJlc3Vs
dDo6U2VuZFRvU2Nyb2xsaW5nVGhyZWFkIHJldHVybiB2YWx1ZSBhbmQgYSBnaXZlIHRyeVRvSGFu
ZGxlV2hlZWxFdmVudCgpCisgICAgICAgIGEgY2FsbGJhY2sgdGhhdCdzIGNhbGxlZCB3aGVuIHRo
ZSBzY3JvbGxpbmcgdGhyZWFkIGlzIGRvbmUgd2l0aCB0aGUgZXZlbnQuIEV2ZW50RGlzcGF0Y2hl
cgorICAgICAgICB1c2VzIHRoYXQgdG8gc2VuZCB0aGUgImRpZFJlY2VpdmVFdmVudCIgd2l0aCAi
aGFuZGxlZCIgYmFjayB0byB0aGUgVUkgcHJvY2Vzcywgd2hpY2ggdGhlbgorICAgICAgICBwcm9j
ZWVkcyB3aXRoIGhpc3Rvcnkgb3IgcmVhZGluZyBsaXN0IHN3aXBlcy4KKworICAgICAgICBWYXJp
b3VzIGZpeGVzIHdlcmUgbmVjZXNzYXJ5IHRvIGNvcnJlY3RseSBkZXRlcm1pbmUgd2hldGhlciB0
aGUgZXZlbnQgd2FzIGhhbmRsZWQuCisgICAgICAgIAorICAgICAgICBTY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KCkgZGlkbid0IHJldHVybiBhbiBh
Y2N1cmF0ZSBTY3JvbGxpbmdFdmVudFJlc3VsdCwKKyAgICAgICAgYW5kIFNjcm9sbENvbnRyb2xs
ZXIgZGlkbid0IHJldHVybiBmYWxzZSBpbiBjYXNlcyB3aGVyZSBydWJiZXItYmFuZGluZyB3YXMg
ZGlzYWJsZWQgKHdoaWNoIGJyb2tlIG5hdmlnYXRpb24gc3dpcGVzCisgICAgICAgIGFuZCByZWFk
aW5nIGxpc3QgbmF2aWdhdGlvbikuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjp0cnlUb0hhbmRsZVdoZWVs
RXZlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OndoZWVsRXZlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnNlbmREaWRSZWNlaXZlRXZlbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKwogMjAyMC0wNC0w
NyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2Ug
UmVjdEVkZ2VzPD4gaW4gc29tZSBzY3JvbGxpbmcgdHJlZSBjb2RlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgK
aW5kZXggNjMwZGE5MTc2ZjJjOTFhNTE0YTFmODg4YjgyNzBlMjYzZDY1ZGNlMS4uYWYxNGFiYTRk
NjhjYWFkNWU1YWIwZDkxYWNiZGQxZmY4MTgyMTFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaApAQCAt
OTUsNyArOTUsOCBAQCBzdHJ1Y3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHsKIGVudW0gY2xh
c3MgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgewogICAgIERpZE5vdEhhbmRsZUV2ZW50LAogICAgIERp
ZEhhbmRsZUV2ZW50LAotICAgIFNlbmRUb01haW5UaHJlYWQKKyAgICBTZW5kVG9TY3JvbGxpbmdU
aHJlYWQsCisgICAgU2VuZFRvTWFpblRocmVhZCwKIH07CiAKIGVudW0gY2xhc3MgVmlld3BvcnRS
ZWN0U3RhYmlsaXR5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVGhyZWFkLmgKaW5kZXggNTkzMWNhNDc1NzNlNGM3ZjljYmE1YmRjNzRkODgyNGExMDJmYzI2
ZC4uOTY4NzMxNTIyZWZjNjY2OWQ4NTE1NmQ2NTNlOThmMWQ3NWQxZDkxOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmgKQEAgLTQ4LDcgKzQ4
LDcgQEAgY2xhc3MgU2Nyb2xsaW5nVGhyZWFkIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShT
Y3JvbGxpbmdUaHJlYWQpOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgaXNDdXJyZW50VGhy
ZWFkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNDdXJyZW50VGhyZWFkKCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAo
KT4mJik7CiAKICAgICAvLyBXaWxsIGRpc3BhdGNoIHRoZSBnaXZlbiBmdW5jdGlvbiBvbiB0aGUg
bWFpbiB0aHJlYWQgb25jZSBhbGwgcGVuZGluZyBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZWY3MTY0NWExMTBhYjAw
Mzc0NTNjZTYwZTc1YWUyODMwNTc0ZTU0NS4uZDkyMjVkMTA5Nzc1OTM3NDc5OGIzOTkxYWI3MjA1
OGZkYTVkOGNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKQEAgLTEwMSw3ICsxMDEsOCBAQCBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3Jv
bGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgdwog
CiAgICAgaWYgKCFhc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoKSkgewogICAg
ICAgICBpZiAobV9yb290Tm9kZSkKLSAgICAgICAgICAgIG1fcm9vdE5vZGUtPmhhbmRsZVdoZWVs
RXZlbnQod2hlZWxFdmVudCk7CisgICAgICAgICAgICByZXR1cm4gbV9yb290Tm9kZS0+aGFuZGxl
V2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKwogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRS
ZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OwogICAgIH0KIApAQCAtMzk3LDYgKzM5OCwyMCBAQCB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZUNhblJ1YmJlckJhbmQoUmVjdEVkZ2VzPGJv
b2w+IGNhblJ1YmJlckJhbmQpCiAgICAgbV9zd2lwZVN0YXRlLmNhblJ1YmJlckJhbmQgPSBjYW5S
dWJiZXJCYW5kOwogfQogCitib29sIFNjcm9sbGluZ1RyZWU6Om1haW5GcmFtZUNhblJ1YmJlckJh
bmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fc3dpcGVTdGF0ZU11dGV4KTsKKworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7
CisgICAgY2FzZSBTY3JvbGxVcDogcmV0dXJuIG1fc3dpcGVTdGF0ZS5jYW5SdWJiZXJCYW5kLnRv
cCgpOworICAgIGNhc2UgU2Nyb2xsRG93bjogcmV0dXJuIG1fc3dpcGVTdGF0ZS5jYW5SdWJiZXJC
YW5kLmJvdHRvbSgpOworICAgIGNhc2UgU2Nyb2xsTGVmdDogcmV0dXJuIG1fc3dpcGVTdGF0ZS5j
YW5SdWJiZXJCYW5kLmxlZnQoKTsKKyAgICBjYXNlIFNjcm9sbFJpZ2h0OiByZXR1cm4gbV9zd2lw
ZVN0YXRlLmNhblJ1YmJlckJhbmQucmlnaHQoKTsKKyAgICB9OworCisgICAgcmV0dXJuIGZhbHNl
OworfQorCiAvLyBDYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgogdm9pZCBTY3Jv
bGxpbmdUcmVlOjpzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9y
IHBpbm5pbmcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmgKaW5kZXggOTQwNjNiMzQ0NzVlODFmMjdjOWJkNmM3MzI4ZjlmYmNiNWUzMGJmYi4uZWU2
N2I3MTE4MjU4YzM0YjFkYzNjMDNhNTc4YjQ0ZjUyOGYyZTEwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAorI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVjdEVkZ2VzLmgi
CiAjaW5jbHVkZSAiUmVnaW9uLmgiCkBAIC02Miw3ICs2Myw5IEBAIHB1YmxpYzoKICAgICBib29s
IGFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
YXN5bmNGcmFtZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRBc3lu
Y0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoYm9vbCk7CiAKLSAgICB2aXJ0dWFsIFNj
cm9sbGluZ0V2ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmKSA9IDA7CisgICAgdXNpbmcgQ29tcGxldGlvbkZ1bmN0aW9uID0gV1RGOjpGdW5j
dGlvbjx2b2lkIChTY3JvbGxpbmdFdmVudFJlc3VsdCk+OworICAgIC8vIE5vdGUgdGhhdCBDb21w
bGV0aW9uRnVuY3Rpb24gbWF5IGdldCBjYWxsZWQgb24gYSBkaWZmZXJlbnQgdGhyZWFkLgorICAg
IHZpcnR1YWwgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYsIENvbXBsZXRpb25GdW5jdGlvbiYmID0gbnVsbHB0cikgPSAw
OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9u
b3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CiAgICAgCiAgICAgdm9pZCBzZXRNYWlu
RnJhbWVJc1J1YmJlckJhbmRpbmcoYm9vbCk7CkBAIC0xMjMsNiArMTI2LDcgQEAgcHVibGljOgog
CiAgICAgLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQuIFdpbGwgdXBkYXRlIHdoYXQg
ZWRnZXMgYWxsb3cgcnViYmVyLWJhbmRpbmcuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRN
YWluRnJhbWVDYW5SdWJiZXJCYW5kKFJlY3RFZGdlczxib29sPik7CisgICAgYm9vbCBtYWluRnJh
bWVDYW5SdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKTsKIAogICAgIGJvb2wg
aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNIYW5kbGlu
Z1Byb2dyYW1tYXRpY1Njcm9sbDsgfQogICAgIHZvaWQgc2V0SXNIYW5kbGluZ1Byb2dyYW1tYXRp
Y1Njcm9sbChib29sIGlzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwpIHsgbV9pc0hhbmRsaW5n
UHJvZ3JhbW1hdGljU2Nyb2xsID0gaXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbDsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5jcHAKaW5kZXggMWQ3YzMzNTM5N2Q3MjdmNWUxZWVjNTEzZTA2ZmU5OWNjNWNkODY2Ni4u
ZDgzZTdhN2EyOWQ0ZGMxZmIzMGE3MDA0MTBlODg1MmYwZjM0NTZhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
CkBAIC00OSwyMCArNDksMTkgQEAgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp+VGhyZWFkZWRTY3Jv
bGxpbmdUcmVlKCkKICAgICBBU1NFUlQoIW1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IpOwogfQogCi1T
Y3JvbGxpbmdFdmVudFJlc3VsdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnRyeVRvSGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCitTY3JvbGxpbmdF
dmVudFJlc3VsdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnRyeVRvSGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIENvbXBsZXRpb25GdW5jdGlvbiYm
IGNvbXBsZXRpb25GdW5jdGlvbikKIHsKICAgICBpZiAoc2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5
bmNocm9ub3VzbHkod2hlZWxFdmVudCkpCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJl
c3VsdDo6U2VuZFRvTWFpblRocmVhZDsKIAotICAgIGlmICh3aWxsV2hlZWxFdmVudFN0YXJ0U3dp
cGVHZXN0dXJlKHdoZWVsRXZlbnQpKQotICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1
bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OwotCiAgICAgUmVmUHRyPFRocmVhZGVkU2Nyb2xsaW5nVHJl
ZT4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKLSAgICBTY3JvbGxpbmdUaHJlYWQ6OmRpc3BhdGNoKFtw
cm90ZWN0ZWRUaGlzLCB3aGVlbEV2ZW50XSB7Ci0gICAgICAgIHByb3RlY3RlZFRoaXMtPmhhbmRs
ZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChb
cHJvdGVjdGVkVGhpcywgd2hlZWxFdmVudCwgY29tcGxldGlvbkZ1bmMgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25GdW5jdGlvbildIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBwcm90ZWN0ZWRUaGlzLT5o
YW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOworICAgICAgICBpZiAoY29tcGxldGlvbkZ1bmMp
CisgICAgICAgICAgICBjb21wbGV0aW9uRnVuYyhyZXN1bHQpOwogICAgIH0pOwogICAgIAotICAg
IHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQ7CisgICAgcmV0dXJu
IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpTZW5kVG9TY3JvbGxpbmdUaHJlYWQ7CiB9CiAKIFNjcm9s
bGluZ0V2ZW50UmVzdWx0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDQxNTA2
MjJlYmNiM2UyMWU1YTZmMmNiOTdlMjVkZmI1YTQ0NTAxODAuLjE2OGY0MDYxMGIyNmMwMjRhYjk0
MDBjM2Q3OTEwNzExYTQ3NDI0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBDYW4gYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZC4gV2lsbCB0cnkgdG8gaGFu
ZGxlIHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZC4KICAgICAvLyBSZXR1
cm5zIHRydWUgaWYgdGhlIHdoZWVsIGV2ZW50IGNhbiBiZSBoYW5kbGVkIG9uIHRoZSBzY3JvbGxp
bmcgdGhyZWFkIGFuZCBmYWxzZSBpZiB0aGUKICAgICAvLyBldmVudCBtdXN0IGJlIHNlbnQgYWdh
aW4gdG8gdGhlIFdlYkNvcmUgZXZlbnQgaGFuZGxlci4KLSAgICBTY3JvbGxpbmdFdmVudFJlc3Vs
dCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJp
ZGU7CisgICAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYsIENvbXBsZXRpb25GdW5jdGlvbiYmKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDQ5M2U3N2NmOTUyZDRhNDI0YjU3OGU5ZDcwZDQw
ZTM3YTNjNjJmY2YuLmI4MTBiMzAxNGVjZjAwYmZlYzcwMGY0YTY0ZTk4YTk2NDliNjBmNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC0xNTMsNyAr
MTUzLDcgQEAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdAogICAgIGlmICghY2FuSGF2ZVNjcm9sbGJh
cnMoKSkKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVF
dmVudDsKIAotICAgIG1fZGVsZWdhdGUuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAg
ICBib29sIGhhbmRsZWQgPSBtX2RlbGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7
CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIGlmIChpc1Jvb3ROb2RlKCkpCkBA
IC0xNjUsOCArMTY1LDcgQEAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdAogICAgIHNjcm9sbGluZ1Ry
ZWUoKS5zZXRPckNsZWFyTGF0Y2hlZE5vZGUod2hlZWxFdmVudCwgc2Nyb2xsaW5nTm9kZUlEKCkp
OwogICAgIHNjcm9sbGluZ1RyZWUoKS5oYW5kbGVXaGVlbEV2ZW50UGhhc2Uod2hlZWxFdmVudC5w
aGFzZSgpKTsKICAgICAKLSAgICAvLyBGSVhNRTogVGhpcyBuZWVkcyB0byByZXR1cm4gd2hldGhl
ciB0aGUgZXZlbnQgd2FzIGhhbmRsZWQuCi0gICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWRIYW5kbGVFdmVudDsKKyAgICByZXR1cm4gaGFuZGxlZCA/IFNjcm9sbGluZ0V2ZW50UmVz
dWx0OjpEaWRIYW5kbGVFdmVudCA6IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVF
dmVudDsKIH0KIAogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFj
OjphZGp1c3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWMubW0KaW5kZXggYzVlOWU3NjlmNzBmNDRiOWRkYThmNTIyYzkwMDYxMjkx
M2NhMjk0ZS4uNjBkN2VlMjFlNDVhMTE0MWMyZDk1MDIyYmNhYjViMmE4YTM0MTVkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KQEAgLTExMSw2
ICsxMTEsNyBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Omlz
U2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdAogCiAvLyBGSVhNRTogV2Ugc2hvdWxkIGZpbmQg
YSB3YXkgdG8gc2hhcmUgc29tZSBvZiB0aGUgY29kZSBmcm9tIG5ld0dlc3R1cmVJc1N0YXJ0aW5n
KCksIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKCksCiAvLyBhbGxvd3NWZXJ0
aWNhbFN0cmV0Y2hpbmcoKSwgYW5kIGFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKCkgd2l0aCB0
aGUgaW1wbGVtZW50YXRpb24gaW4gU2Nyb2xsQW5pbWF0b3JNYWMuCisvLyBUaGlzIGlzIGFsc28g
dGhlIHNhbWUgYXMgUGxhdGZvcm1XaGVlbEV2ZW50OjpzaG91bGRDb25zaWRlckxhdGNoaW5nKCku
CiBzdGF0aWMgYm9vbCBuZXdHZXN0dXJlSXNTdGFydGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgcmV0dXJuIHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZU1heUJlZ2luIHx8IHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuOwpAQCAtMTQwLDkgKzE0MSwxMyBAQCBib29sIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFsbG93c0hvcml6b250YWxTdHJldGNo
aW5nKGNvbnN0IFBsYQogICAgIH0KICAgICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlOb25lOgogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBTY3JvbGxFbGFzdGljaXR5QWxsb3dlZDoKKyAg
ICBjYXNlIFNjcm9sbEVsYXN0aWNpdHlBbGxvd2VkOiB7CisgICAgICAgIGF1dG8gc2Nyb2xsRGly
ZWN0aW9uID0gU2Nyb2xsQ29udHJvbGxlcjo6ZGlyZWN0aW9uRnJvbUV2ZW50KHdoZWVsRXZlbnQs
IFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCk7CisgICAgICAgIGlmIChzY3JvbGxEaXJlY3Rp
b24pCisgICAgICAgICAgICByZXR1cm4gc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKHNjcm9s
bERpcmVjdGlvbi52YWx1ZSgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTE1OCw5
ICsxNjMsMTMgQEAgYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjph
bGxvd3NWZXJ0aWNhbFN0cmV0Y2hpbmcoY29uc3QgUGxhdGYKICAgICB9CiAgICAgY2FzZSBTY3Jv
bGxFbGFzdGljaXR5Tm9uZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgU2Nyb2xs
RWxhc3RpY2l0eUFsbG93ZWQ6CisgICAgY2FzZSBTY3JvbGxFbGFzdGljaXR5QWxsb3dlZDogewor
ICAgICAgICBhdXRvIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbENvbnRyb2xsZXI6OmRpcmVjdGlv
bkZyb21FdmVudCh3aGVlbEV2ZW50LCBTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsKTsKKyAgICAg
ICAgaWYgKHNjcm9sbERpcmVjdGlvbikKKyAgICAgICAgICAgIHJldHVybiBzaG91bGRSdWJiZXJC
YW5kSW5EaXJlY3Rpb24oc2Nyb2xsRGlyZWN0aW9uLnZhbHVlKCkpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CisgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMTg0LDYgKzE5Myw3IEBAIEludFNpemUgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYzo6c3RyZXRjaEFtb3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0
cmV0Y2g7CiB9CiAKKy8vIEZJWE1FOiBTaGFyZSBtb3JlIHdpdGggU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmVkZ2VQaW5uZWRTdGF0ZSgpLgogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjOjpwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNpemUmIGRlbHRh
KSBjb25zdAogewogICAgIEZsb2F0U2l6ZSBsaW1pdERlbHRhOwpAQCAtMjIzLDggKzIzMywxMiBA
QCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmNhblNjcm9sbFZl
cnRpY2FsbHkoKSBjb25zdAogICAgIHJldHVybiBoYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIo
KTsKIH0KIAotYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzaG91
bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdAorYm9vbCBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24oU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKIHsKKyAgICBpZiAoc2Nyb2xs
aW5nTm9kZSgpLmlzUm9vdE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5t
YWluRnJhbWVDYW5SdWJiZXJCYW5kSW5EaXJlY3Rpb24oZGlyZWN0aW9uKTsKKworICAgIC8vIEZJ
WE1FOiBDb25zdWx0IHRoZSBub2RlLgogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKaW5kZXggNjk2MDdj
ZGNhOWQ0ZDliNWE1OTNkMGE2OWExMzI0ZmUyODY2NjE2OC4uNzU0NmI5ZmEzNTBlZDExMjY4MzY5
ZmU3MmMyOGE4ZmY2NzdkYjA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIuaApAQCAtMTQ2LDYgKzE0NiwxMSBAQCBwdWJsaWM6CiAjZW5k
aWYKICNlbmRpZgogCisgICAgc3RhdGljIEZsb2F0U2l6ZSB3aGVlbERlbHRhQmlhc2luZ1Rvd2Fy
ZHNWZXJ0aWNhbChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKKworICAgIGVudW0gY2xhc3Mg
V2hlZWxBeGlzQmlhcyB7IE5vbmUsIFZlcnRpY2FsIH07CisgICAgc3RhdGljIE9wdGlvbmFsPFNj
cm9sbERpcmVjdGlvbj4gZGlyZWN0aW9uRnJvbUV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYsIE9wdGlvbmFsPFNjcm9sbEV2ZW50QXhpcz4sIFdoZWVsQXhpc0JpYXMgPSBXaGVlbEF4aXNC
aWFzOjpOb25lKTsKKwogcHJpdmF0ZToKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAg
dm9pZCBzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKQEAgLTE1Myw3ICsxNTgsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgc25hcFJ1YmJlckJhbmQoKTsKICAgICB2b2lkIHNuYXBSdWJiZXJCYW5k
VGltZXJGaXJlZCgpOwogCi0gICAgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5Ib3Jpem9udGFsRGly
ZWN0aW9uKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOworICAgIGJvb2wgc2hvdWxkUnViYmVy
QmFuZEluSG9yaXpvbnRhbERpcmVjdGlvbihjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25z
dDsKKyAgICBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24p
IGNvbnN0OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggMzU2
MGJhYmYyOWFjNzAyMjgwYWU3MWJlYjQ0ZTM2OTk1NTgzNDJlNy4uMjUxYWQ1ODg1ZWQ1NzZlMDll
MmQyODEzOTQyOTc4MzBiMGFhM2VmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xMDQsOSArMTA0LDE0IEBAIGJvb2wgU2Ny
b2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogICAgIGlmICh3aGVl
bEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbikgewotICAgICAg
ICAvLyBGaXJzdCwgY2hlY2sgaWYgd2Ugc2hvdWxkIHJ1YmJlci1iYW5kIGF0IGFsbC4KLSAgICAg
ICAgaWYgKG1fY2xpZW50LnBpbm5lZEluRGlyZWN0aW9uKEZsb2F0U2l6ZSgtd2hlZWxFdmVudC5k
ZWx0YVgoKSwgMCkpCi0gICAgICAgICAgICAmJiAhc2hvdWxkUnViYmVyQmFuZEluSG9yaXpvbnRh
bERpcmVjdGlvbih3aGVlbEV2ZW50KSkKKyAgICAgICAgLy8gRklYTUU6IFRyeWluZyB0byBkZWNp
ZGUgaWYgYSBnZXN0dXJlIGlzIGhvcml6b250YWwgb3IgdmVydGljYWwgYXQgdGhlICJiZWdhbiIg
cGhhc2UgaXMgdmVyeSBlcnJvci1wcm9uZS4KKyAgICAgICAgYXV0byBkaXJlY3Rpb24gPSBkaXJl
Y3Rpb25Gcm9tRXZlbnQod2hlZWxFdmVudCwgU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsKTsK
KyAgICAgICAgLy8gRklYTUU6IHBpbm5lZEluRGlyZWN0aW9uKCkgbmVlZHMgY2xlYW51cC4KKyAg
ICAgICAgaWYgKGRpcmVjdGlvbiAmJiBtX2NsaWVudC5waW5uZWRJbkRpcmVjdGlvbihGbG9hdFNp
emUoLXdoZWVsRXZlbnQuZGVsdGFYKCksIDApKSAmJiAhc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKGRpcmVjdGlvbi52YWx1ZSgpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICBkaXJlY3Rpb24gPSBkaXJlY3Rpb25Gcm9tRXZlbnQod2hlZWxFdmVudCwgU2Nyb2xsRXZl
bnRBeGlzOjpWZXJ0aWNhbCk7CisgICAgICAgIGlmIChkaXJlY3Rpb24gJiYgbV9jbGllbnQucGlu
bmVkSW5EaXJlY3Rpb24oRmxvYXRTaXplKDAsIC13aGVlbEV2ZW50LmRlbHRhWSgpKSkgJiYgIXNo
b3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihkaXJlY3Rpb24udmFsdWUoKSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgbV9pblNjcm9sbEdlc3R1cmUgPSB0cnVlOwpAQCAt
MTY0LDYgKzE2OSw3IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgZGVsdGFZICs9IGV2ZW50
Q29hbGVzY2VkRGVsdGFZOwogCiAgICAgLy8gU2xpZ2h0bHkgcHJlZmVyIHNjcm9sbGluZyB2ZXJ0
aWNhbGx5IGJ5IGFwcGx5aW5nIHRoZSA9IGNhc2UgdG8gZGVsdGFZCisgICAgLy8gRklYTUU6IFVz
ZSB3aGVlbERlbHRhQmlhc2luZ1Rvd2FyZHNWZXJ0aWNhbCgpLgogICAgIGlmIChmYWJzZihkZWx0
YVkpID49IGZhYnNmKGRlbHRhWCkpCiAgICAgICAgIGRlbHRhWCA9IDA7CiAgICAgZWxzZQpAQCAt
MjI1LDYgKzIzMSw4IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgIH0KICAgICB9CiAK
KyAgICBib29sIGhhbmRsZWQgPSB0cnVlOworCiAgICAgaWYgKGRlbHRhWCB8fCBkZWx0YVkpIHsK
ICAgICAgICAgaWYgKCEoc2hvdWxkU3RyZXRjaCB8fCBpc1ZlcnRpY2FsbHlTdHJldGNoZWQgfHwg
aXNIb3Jpem9udGFsbHlTdHJldGNoZWQpKSB7CiAgICAgICAgICAgICBpZiAoZGVsdGFZKSB7CkBA
IC0yMzksNiArMjQ3LDcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgICAgIGlmICgh
bV9jbGllbnQuYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcod2hlZWxFdmVudCkpIHsKICAgICAg
ICAgICAgICAgICBkZWx0YVggPSAwOwogICAgICAgICAgICAgICAgIGV2ZW50Q29hbGVzY2VkRGVs
dGFYID0gMDsKKyAgICAgICAgICAgICAgICBoYW5kbGVkID0gZmFsc2U7CiAgICAgICAgICAgICB9
IGVsc2UgaWYgKGRlbHRhWCAmJiAhaXNIb3Jpem9udGFsbHlTdHJldGNoZWQgJiYgIW1fY2xpZW50
LnBpbm5lZEluRGlyZWN0aW9uKEZsb2F0U2l6ZShkZWx0YVgsIDApKSkgewogICAgICAgICAgICAg
ICAgIGRlbHRhWCAqPSBzY3JvbGxXaGVlbE11bHRpcGxpZXIoKTsKIApAQCAtMjQ5LDYgKzI1OCw3
IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmFsbG93
c1ZlcnRpY2FsU3RyZXRjaGluZyh3aGVlbEV2ZW50KSkgewogICAgICAgICAgICAgICAgIGRlbHRh
WSA9IDA7CiAgICAgICAgICAgICAgICAgZXZlbnRDb2FsZXNjZWREZWx0YVkgPSAwOworICAgICAg
ICAgICAgICAgIGhhbmRsZWQgPSBmYWxzZTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVsdGFZ
ICYmICFpc1ZlcnRpY2FsbHlTdHJldGNoZWQgJiYgIW1fY2xpZW50LnBpbm5lZEluRGlyZWN0aW9u
KEZsb2F0U2l6ZSgwLCBkZWx0YVkpKSkgewogICAgICAgICAgICAgICAgIGRlbHRhWSAqPSBzY3Jv
bGxXaGVlbE11bHRpcGxpZXIoKTsKIApAQCAtMjgxLDkgKzI5MSw2OCBAQCBib29sIFNjcm9sbENv
bnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQogICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IDA7CiAgICAg
fQogCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGhhbmRsZWQ7Cit9CisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQorCitGbG9hdFNpemUgU2Nyb2xsQ29udHJvbGxlcjo6d2hlZWxEZWx0YUJp
YXNpbmdUb3dhcmRzVmVydGljYWwoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
KQoreworICAgIGF1dG8gZGVsdGFYID0gd2hlZWxFdmVudC5kZWx0YVgoKTsKKyAgICBhdXRvIGRl
bHRhWSA9IHdoZWVsRXZlbnQuZGVsdGFZKCk7CisKKyAgICBpZiAoZmFic2YoZGVsdGFZKSA+PSBm
YWJzZihkZWx0YVgpKQorICAgICAgICBkZWx0YVggPSAwOworICAgIGVsc2UKKyAgICAgICAgZGVs
dGFZID0gMDsKKworICAgIHJldHVybiB7IGRlbHRhWCwgZGVsdGFZIH07Cit9CisKK09wdGlvbmFs
PFNjcm9sbERpcmVjdGlvbj4gU2Nyb2xsQ29udHJvbGxlcjo6ZGlyZWN0aW9uRnJvbUV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9uYWw8U2Nyb2xsRXZlbnRB
eGlzPiBheGlzLCBXaGVlbEF4aXNCaWFzIGJpYXMpCit7CisgICAgLy8gRklYTUU6IEl0J3MgaW1w
b3NzaWJsZSB0byBpbmZlciBkaXJlY3Rpb24gZnJvbSBhIHNpbmdsZSBldmVudCwgc2luY2UgdGhl
IHN0YXJ0IG9mIGEgZ2VzdHVyZSBpcyBlaXRoZXIgemVybyBvcgorICAgIC8vIGhhcyBzbWFsbCBk
ZWx0YXMgb24gYm90aCBheGVzLgorCisgICAgYXV0byB3aGVlbERlbHRhID0gRmxvYXRTaXplIHsg
d2hlZWxFdmVudC5kZWx0YVgoKSwgd2hlZWxFdmVudC5kZWx0YVkoKSB9OworICAgIGlmIChiaWFz
ID09IFdoZWVsQXhpc0JpYXM6OlZlcnRpY2FsKQorICAgICAgICB3aGVlbERlbHRhID0gd2hlZWxE
ZWx0YUJpYXNpbmdUb3dhcmRzVmVydGljYWwod2hlZWxFdmVudCk7CisKKyAgICBpZiAoYXhpcykg
eworICAgICAgICBzd2l0Y2ggKGF4aXMudmFsdWUoKSkgeworICAgICAgICBjYXNlIFNjcm9sbEV2
ZW50QXhpczo6VmVydGljYWw6CisgICAgICAgICAgICBpZiAod2hlZWxEZWx0YS5oZWlnaHQoKSA8
IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIFNjcm9sbERvd247CisKKyAgICAgICAgICAgIGlm
ICh3aGVlbERlbHRhLmhlaWdodCgpID4gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gU2Nyb2xs
VXA7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFNjcm9sbEV2ZW50QXhpczo6
SG9yaXpvbnRhbDoKKyAgICAgICAgICAgIGlmICh3aGVlbERlbHRhLndpZHRoKCkgPiAwKQorICAg
ICAgICAgICAgICAgIHJldHVybiBTY3JvbGxMZWZ0OworCisgICAgICAgICAgICBpZiAod2hlZWxE
ZWx0YS53aWR0aCgpIDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gU2Nyb2xsUmlnaHQ7Cisg
ICAgICAgIH0KKworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIH0KKworICAgIC8v
IENoZWNrIFkgZmlyc3QgYmVjYXVzZSB2ZXJ0aWNhbCBzY3JvbGxpbmcgZG9taW5hdGVzLgorICAg
IGlmICh3aGVlbERlbHRhLmhlaWdodCgpIDwgMCkKKyAgICAgICAgcmV0dXJuIFNjcm9sbERvd247
CisKKyAgICBpZiAod2hlZWxEZWx0YS5oZWlnaHQoKSA+IDApCisgICAgICAgIHJldHVybiBTY3Jv
bGxVcDsKKworICAgIGlmICh3aGVlbERlbHRhLndpZHRoKCkgPiAwKQorICAgICAgICByZXR1cm4g
U2Nyb2xsTGVmdDsKKworICAgIGlmICh3aGVlbERlbHRhLndpZHRoKCkgPCAwKQorICAgICAgICBy
ZXR1cm4gU2Nyb2xsUmlnaHQ7CisKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQotI2VuZGlm
CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiBzdGF0aWMgaW5saW5lIGZsb2F0IHJvdW5k
VG93YXJkWmVybyhmbG9hdCBudW0pCkBAIC00MjEsMTYgKzQ5MCwyMSBAQCB2b2lkIFNjcm9sbENv
bnRyb2xsZXI6OnNuYXBSdWJiZXJCYW5kKCkKICAgICBtX3NuYXBSdWJiZXJiYW5kVGltZXJJc0Fj
dGl2ZSA9IHRydWU7CiB9CiAKLWJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6c2hvdWxkUnViYmVyQmFu
ZEluSG9yaXpvbnRhbERpcmVjdGlvbihjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQpCitib29sIFNjcm9sbENvbnRyb2xsZXI6OnNob3VsZFJ1YmJlckJhbmRJbkhvcml6b250YWxE
aXJlY3Rpb24oY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KSBjb25zdAogewot
ICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhWCgpID4gMCkKLSAgICAgICAgcmV0dXJuIG1fY2xpZW50
LnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxMZWZ0KTsKLSAgICBpZiAod2hlZWxF
dmVudC5kZWx0YVgoKSA8IDApCi0gICAgICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRSdWJiZXJC
YW5kSW5EaXJlY3Rpb24oU2Nyb2xsUmlnaHQpOworICAgIGF1dG8gZGlyZWN0aW9uID0gZGlyZWN0
aW9uRnJvbUV2ZW50KHdoZWVsRXZlbnQsIFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCk7Cisg
ICAgaWYgKGRpcmVjdGlvbikKKyAgICAgICAgcmV0dXJuIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVj
dGlvbihkaXJlY3Rpb24udmFsdWUoKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSNlbmRpZgor
Citib29sIFNjcm9sbENvbnRyb2xsZXI6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3Jv
bGxEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC5zaG91
bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oZGlyZWN0aW9uKTsKK30KKworI2VuZGlmIC8vIEVOQUJM
RShSVUJCRVJfQkFORElORykKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA0NDgw
ZDg1NmZmYzUxZGRmYmQwZGIxZDQzMzVhZTM4MWY5OTE3ODMyLi4yOTUzNzcyYjIxNmY1ZDRiMzkz
OWJjZTc5NjVlNDdhNjAyYTUxNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgdm9pZCBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5Ojplc3RhYmxpc2hMYXllclRyZWVTY3JvbGxpbmdSZWxhdGlv
bnMoY29uc3QKIAogYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpoYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiB7Ci0gICAgU2Nyb2xs
aW5nRXZlbnRSZXN1bHQgcmVzdWx0ID0gbV9zY3JvbGxpbmdUcmVlLT50cnlUb0hhbmRsZVdoZWVs
RXZlbnQoZXZlbnQpOworICAgIFNjcm9sbGluZ0V2ZW50UmVzdWx0IHJlc3VsdCA9IG1fc2Nyb2xs
aW5nVHJlZS0+dHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGV2ZW50LCBudWxscHRyKTsKICAgICByZXR1
cm4gcmVzdWx0ID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsgLy8gRklY
TUU6IGhhbmRsZSBvdGhlciB2YWx1ZXMuCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmNw
cAppbmRleCAwMWE1N2Q0YjZkNWNkZGVmNjViZmIxMjJkM2MyZTk2MGQyNjA0MTEzLi5iZDc4Y2Q3
ZDAxNDg2MGE4OGEyZWM0MWFiZmY4ZGFhNzc5OTc5OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuY3BwCkBAIC02MSw3ICs2MSw3IEBAIFJlbW90ZVNjcm9sbGluZ1RyZWU6On5SZW1vdGVT
Y3JvbGxpbmdUcmVlKCkKIHsKIH0KIAotU2Nyb2xsaW5nRXZlbnRSZXN1bHQgUmVtb3RlU2Nyb2xs
aW5nVHJlZTo6dHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKK1Njcm9sbGluZ0V2ZW50UmVzdWx0IFJlbW90ZVNjcm9sbGluZ1RyZWU6OnRy
eVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQs
IENvbXBsZXRpb25GdW5jdGlvbiYmKQogewogICAgIGlmIChzaG91bGRIYW5kbGVXaGVlbEV2ZW50
U3luY2hyb25vdXNseSh3aGVlbEV2ZW50KSkKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50
UmVzdWx0OjpTZW5kVG9NYWluVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXgg
Y2MxZjk2MGM0MTFiOGIxZDE0ODRhM2M2MjE5YWY3ZGE3MWNkYmQwYS4uY2UzMTkyZWNlMzFjN2E0
YzJlYzRlOWMxYmQwNTkwNjI2MDU1YWRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBA
IC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdUcmVl
KCk7CiAKICAgICBib29sIGlzUmVtb3RlU2Nyb2xsaW5nVHJlZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KLSAgICBXZWJDb3JlOjpTY3JvbGxpbmdFdmVudFJlc3VsdCB0cnlUb0hh
bmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJp
ZGU7CisgICAgV2ViQ29yZTo6U2Nyb2xsaW5nRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudCYsIENvbXBsZXRpb25GdW5jdGlv
biYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgaGFuZGxlTW91c2VFdmVudChjb25zdCBXZWJDb3Jl
OjpQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggN2RkODBhNDMyYjM1OTBiNmI1
MWVmNmYxMjQyMmZiZDRlYzRiNGUzYS4uZjA2ZTgwYzY3MTkxZWJlNTg0MzAyOWViODE0NWY2MzIx
MTc1NTkwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuY3BwCkBAIC0xMjYsMTAgKzEyNiwyMCBAQCB2b2lkIEV2ZW50RGlzcGF0
Y2hlcjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZl
bnQmIHdoZQogICAgICAgICBpZiAocGxhdGZvcm1XaGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2VCZWdhbikKICAgICAgICAgICAgIHNjcm9sbGluZ1RyZWUtPnNldE1h
aW5GcmFtZUNhblJ1YmJlckJhbmQoeyBjYW5SdWJiZXJCYW5kQXRUb3AsIGNhblJ1YmJlckJhbmRB
dFJpZ2h0LCBjYW5SdWJiZXJCYW5kQXRCb3R0b20sIGNhblJ1YmJlckJhbmRBdExlZnQgfSk7CiAK
LSAgICAgICAgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgcmVzdWx0ID0gc2Nyb2xsaW5nVHJlZS0+dHJ5
VG9IYW5kbGVXaGVlbEV2ZW50KHBsYXRmb3JtV2hlZWxFdmVudCk7CisgICAgICAgIGF1dG8gZXZl
bnRUeXBlID0gd2hlZWxFdmVudC50eXBlKCk7CisgICAgICAgIFNjcm9sbGluZ0V2ZW50UmVzdWx0
IHJlc3VsdCA9IHNjcm9sbGluZ1RyZWUtPnRyeVRvSGFuZGxlV2hlZWxFdmVudChwbGF0Zm9ybVdo
ZWVsRXZlbnQsIFtwYWdlSUQsIGV2ZW50VHlwZV0oU2Nyb2xsaW5nRXZlbnRSZXN1bHQgcmVzdWx0
KSB7CisgICAgICAgICAgICBBU1NFUlQoU2Nyb2xsaW5nVGhyZWFkOjppc0N1cnJlbnRUaHJlYWQo
KSk7CisgICAgICAgICAgICBBU1NFUlQocmVzdWx0ICE9IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpT
ZW5kVG9TY3JvbGxpbmdUaHJlYWQpOworICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCAhPSBTY3Jv
bGxpbmdFdmVudFJlc3VsdDo6U2VuZFRvTWFpblRocmVhZCk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIHNlbmREaWRSZWNlaXZlRXZlbnQocGFnZUlELCBldmVudFR5cGUsIHJlc3VsdCA9PSBT
Y3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQpOworICAgICAgICB9KTsKKworICAg
ICAgICBpZiAocmVzdWx0ID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpTZW5kVG9TY3JvbGxpbmdU
aHJlYWQpCisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKHJlc3VsdCA9PSBTY3Jv
bGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQgfHwgcmVzdWx0ID09IFNjcm9sbGluZ0V2
ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudCkgewotICAgICAgICAgICAgc2VuZERpZFJlY2Vp
dmVFdmVudChwYWdlSUQsIHdoZWVsRXZlbnQsIHJlc3VsdCA9PSBTY3JvbGxpbmdFdmVudFJlc3Vs
dDo6RGlkSGFuZGxlRXZlbnQpOworICAgICAgICAgICAgc2VuZERpZFJlY2VpdmVFdmVudChwYWdl
SUQsIHdoZWVsRXZlbnQudHlwZSgpLCByZXN1bHQgPT0gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRp
ZEhhbmRsZUV2ZW50KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAg
LTIzNyw5ICsyNDcsOSBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hHZXN0dXJlRXZl
bnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJHZXN0dQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQotdm9pZCBFdmVudERpc3BhdGNoZXI6OnNlbmREaWRSZWNl
aXZlRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJFdmVudCYgZXZlbnQsIGJv
b2wgZGlkSGFuZGxlRXZlbnQpCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6c2VuZERpZFJlY2VpdmVF
dmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkV2ZW50OjpUeXBlIGV2ZW50VHlwZSwgYm9v
bCBkaWRIYW5kbGVFdmVudCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2Vp
dmVFdmVudChzdGF0aWNfY2FzdDx1aW50MzJfdD4oZXZlbnQudHlwZSgpKSwgZGlkSGFuZGxlRXZl
bnQpLCBwYWdlSUQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZUV2ZW50
KHN0YXRpY19jYXN0PHVpbnQzMl90PihldmVudFR5cGUpLCBkaWRIYW5kbGVFdmVudCksIHBhZ2VJ
RCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuaAppbmRleCA1YTY4NDg0Nzk3N2FhZTU4OTVlNGUwOGU4NjBlNmYx
NmZmZjM1ZTY5Li5lNzgwOTY0OWRmYzc0OTllNjY1MzAzMTAzMTgxODhhNzM4OTJmZGNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
aApAQCAtOTQsNyArOTQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQotICAgIHZvaWQgc2VuZERpZFJlY2VpdmVFdmVudChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgY29uc3QgV2ViRXZlbnQmLCBib29sIGRpZEhhbmRsZUV2ZW50KTsKKyAgICBzdGF0
aWMgdm9pZCBzZW5kRGlkUmVjZWl2ZUV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJF
dmVudDo6VHlwZSwgYm9vbCBkaWRIYW5kbGVFdmVudCk7CiAjZW5kaWYKIAogICAgIFJlZjxXb3Jr
UXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODkzYjkxYTQ3MTlhM2Y4ZjhmYWYyZWI2ODRjZTZjM2U1
OTdkZDQ4ZS4uZWMwNjg4OTIyMWRjM2YxYTViYWE0ODg3MWU2NDcwZTJiMmJiYmRjYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDIwLTA0LTA4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgorCisgICAgICAgIFtBc3luYyBvdmVyZmxvdyBzY3JvbGxdIEhvcml6b250YWwg
c2Nyb2xscyBjYW4gdHJpZ2dlciB1bndhbnRlZCBiYWNrIHN3aXBlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMDk1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82MTM3NjI0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0cyB0aGF0IHJ1YmJlcmJhbmRpbmcgd29ya3Mgb24gYSBzaW1wbGUgcGFn
ZSwgYW5kIHRoYXQgZWRnZSBzd2lwZXMgd29yayBvbiBhIHNpbXBsZSBwYWdlLgorCisgICAgICAg
IEVkZ2Ugc3dpcGVzIGluc2lkZSBvdmVyZmxvdzpzY3JvbGwgYXJlIHN0aWxsIGJyb2tlbiBieSBs
YXRjaGluZyBhbmQgd2lsbCBiZSBmaXhlZCBsYXRlci4KKworICAgICAgICAqIHJlc291cmNlcy91
aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuYXN5bmMgbW91c2VXaGVlbFNj
cm9sbEF0KToKKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvbWFp
bi1mcmFtZS1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc2Nyb2xs
aW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL21haW4tZnJhbWUtYmFjay1zd2lwZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvc2ltcGxl
LXBhZ2UtcnViYmVyYmFuZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzY3JvbGxp
bmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvc2ltcGxlLXBhZ2UtcnViYmVyYmFuZHMuaHRtbDog
QWRkZWQuCisKIDIwMjAtMDQtMDYgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFRoZSBjaGFuZ2Ugb2Ygem9vbSBzaG91bGRuJ3QgYWZmZWN0IFJlc2l6ZU9i
c2VydmVyU2l6ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMDhhNGExYjI0YjM4
MTBiOTY4ZTM4N2I5YzA2N2Q3YzU4YTQ1OGYyZS4uZDY3YjA4Nzk3MWUxNWI2OTJlNjA2YmMxMGE4
MWYwMGExN2QzNGI2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0yOCwxMyAr
MjgsMjMgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh4MiwgeTIpOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7CiAgICAgfQotICAgIAotICAgIHN0YXRpYyBhc3luYyBtb3VzZVdoZWVsU2Nyb2xsQXQoeCwg
eSkKKworICAgIHN0YXRpYyBhc3luYyBtb3VzZVdoZWVsU2Nyb2xsQXQoeCwgeSwgYmVnaW5YLCBi
ZWdpblksIGRlbHRhWCwgZGVsdGFZKQogICAgIHsKKyAgICAgICAgaWYgKGJlZ2luWCA9PT0gdW5k
ZWZpbmVkKQorICAgICAgICAgICAgYmVnaW5YID0gMDsKKyAgICAgICAgaWYgKGJlZ2luWSA9PT0g
dW5kZWZpbmVkKQorICAgICAgICAgICAgYmVnaW5ZID0gLTE7CisKKyAgICAgICAgaWYgKGRlbHRh
WCA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgZGVsdGFYID0gMDsKKyAgICAgICAgaWYgKGRl
bHRhWSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgZGVsdGFZID0gLTEwOworCiAgICAgICAg
IGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOwogICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAiYmVnYW4iLCAibm9uZSIpOwotICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEw
LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhiZWdpblgsIGJlZ2luWSwgImJlZ2FuIiwgIm5vbmUi
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGRlbHRhWCwgZGVsdGFZLCAiY2hhbmdlZCIsICJub25lIik7CiAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAiZW5k
ZWQiLCAibm9uZSIpOwogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAg
ICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoKCkgPT4g
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNo
aW5nL21haW4tZnJhbWUtYmFjay1zd2lwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zY3Jv
bGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvbWFpbi1mcmFtZS1iYWNrLXN3aXBlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42ZDYwZDc4ODc1OWVjOTZmYzMyMGUxNzNjM2U0NjMyYmNkOGIw
NTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3Iv
bWFjL2xhdGNoaW5nL21haW4tZnJhbWUtYmFjay1zd2lwZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNyBAQAorU3dpcGVzIHNob3VsZCBydWJiZXItYmFuZCBvbiBlYWNoIHNpZGUuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTd2lwZSB0byB0aGUgbGVmdAorYmVnaW4gc3dpcGUK
K1BBU1MgbWluWE9mZnNldCBpcyAwCitQQVNTIG1heFhPZmZzZXQgaXMgLTEwMDAKKworU3dpcGUg
dG8gdGhlIHJpZ2h0CitQQVNTIG1pblhPZmZzZXQgaXMgMAorUEFTUyBtYXhYT2Zmc2V0ID4gMCBp
cyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNo
aW5nL21haW4tZnJhbWUtYmFjay1zd2lwZS5odG1sIGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29v
cmRpbmF0b3IvbWFjL2xhdGNoaW5nL21haW4tZnJhbWUtYmFjay1zd2lwZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQzMTRhNjZiNTBkOWYyM2YzMTg3MjdmMzEwNmI2Y2FjMjI0ZWI5NmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvbWFp
bi1mcmFtZS1iYWNrLXN3aXBlLmh0bWwKQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgCisgICAgPC9zdHlsZT4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CisgICAgCisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CisKKyAgICAgICAgdmFyIG1pblhPZmZzZXQ7CisgICAgICAgIHZhciBtYXhYT2Zmc2V0OworCisg
ICAgICAgIGZ1bmN0aW9uIHJlc2V0KCkKKyAgICAgICAgeworICAgICAgICAgICAgbWluWE9mZnNl
dCA9IDA7CisgICAgICAgICAgICBtYXhYT2Zmc2V0ID0gLTEwMDA7CisgICAgICAgIH0KKworICAg
ICAgICBhc3luYyBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAg
ZGVzY3JpcHRpb24oJ1N3aXBlcyBzaG91bGQgcnViYmVyLWJhbmQgb24gZWFjaCBzaWRlLicpOwor
CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldE5hdmlnYXRpb25HZXN0dXJlc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNrKCgpID0+IHsgZGVi
dWcoJ2JlZ2luIHN3aXBlJykgfSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGhpc3Rv
cnkucHVzaFN0YXRlKHsgbmFtZTogJ2JhY2tzdGF0ZScgfSwgJ2JhY2snKTsKKworICAgICAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHsKKyAgICAgICAgICAg
ICAgICBtaW5YT2Zmc2V0ID0gTWF0aC5taW4obWluWE9mZnNldCwgd2luZG93LnBhZ2VYT2Zmc2V0
KTsKKyAgICAgICAgICAgICAgICBtYXhYT2Zmc2V0ID0gTWF0aC5tYXgobWF4WE9mZnNldCwgd2lu
ZG93LnBhZ2VYT2Zmc2V0KTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICAgICAg
aWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IHJlc2V0KCk7CisgICAgICAgICAgICBkZWJ1ZygnU3dpcGUgdG8gdGhlIGxlZnQnKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIubW91c2VXaGVlbFNjcm9sbEF0KDEw
LCAxMCwgMSwgMCwgMTAsIDApOworICAgICAgICAgICAgLy8gU2hvdWxkIG5vdCBoYXZlIHJlY2Vp
dmVkIGFueSBzY3JvbGwgZXZlbnRzLgorICAgICAgICAgICAgc2hvdWxkQmUoJ21pblhPZmZzZXQn
LCAnMCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ21heFhPZmZzZXQnLCAnLTEwMDAnKTsKKwor
ICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIGRlYnVnKCcnKTsKKyAgICAgICAgICAg
IGRlYnVnKCdTd2lwZSB0byB0aGUgcmlnaHQnKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
Lm1vdXNlV2hlZWxTY3JvbGxBdCgxMCwgMTAsIC0xLCAwLCAtMTAsIDApOworICAgICAgICAgICAg
c2hvdWxkQmUoJ21pblhPZmZzZXQnLCAnMCcpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdt
YXhYT2Zmc2V0ID4gMCcpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
fQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworICAg
ICAgICAgICAgc2Nyb2xsVGVzdCgpOworICAgICAgICB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICAKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvc2ltcGxl
LXBhZ2UtcnViYmVyYmFuZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29v
cmRpbmF0b3IvbWFjL2xhdGNoaW5nL3NpbXBsZS1wYWdlLXJ1YmJlcmJhbmRzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMTQ1ZjQxNGIyODM3MzgxNzE0YzcyZTI3NjYxZTc5MmY3Mzk5NDJiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xh
dGNoaW5nL3NpbXBsZS1wYWdlLXJ1YmJlcmJhbmRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMz
IEBACitTd2lwZXMgc2hvdWxkIHJ1YmJlci1iYW5kIG9uIGVhY2ggc2lkZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKKworU3dpcGUgdG8gdGhlIGxlZnQKK1BBU1MgbWluWE9mZnNl
dCA8IDAgaXMgdHJ1ZQorUEFTUyBtYXhYT2Zmc2V0IGlzIDAKK1BBU1MgbWluWU9mZnNldCBpcyAw
CitQQVNTIG1heFlPZmZzZXQgaXMgMAorCitTd2lwZSB0byB0aGUgcmlnaHQKK1BBU1MgbWluWE9m
ZnNldCBpcyAwCitQQVNTIG1heFhPZmZzZXQgPiAwIGlzIHRydWUKK1BBU1MgbWluWU9mZnNldCBp
cyAwCitQQVNTIG1heFlPZmZzZXQgaXMgMAorCitTd2lwZSBkb3duCitQQVNTIG1pblhPZmZzZXQg
aXMgMAorUEFTUyBtYXhYT2Zmc2V0IGlzIDAKK1BBU1MgbWluWU9mZnNldCBpcyAwCitQQVNTIG1h
eFlPZmZzZXQgPiAwIGlzIHRydWUKKworU3dpcGUgdXAKK1BBU1MgbWluWE9mZnNldCBpcyAwCitQ
QVNTIG1heFhPZmZzZXQgaXMgMAorUEFTUyBtaW5ZT2Zmc2V0IDwgMCBpcyB0cnVlCitQQVNTIG1h
eFlPZmZzZXQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21h
Yy9sYXRjaGluZy9zaW1wbGUtcGFnZS1ydWJiZXJiYW5kcy5odG1sIGIvTGF5b3V0VGVzdHMvc2Ny
b2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL3NpbXBsZS1wYWdlLXJ1YmJlcmJhbmRzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjQxMGIxYWY1MWY4NzhlZjgxNDQyYzgzYWJlY2MxY2E2MDY4YmQxNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9s
YXRjaGluZy9zaW1wbGUtcGFnZS1ydWJiZXJiYW5kcy5odG1sCkBAIC0wLDAgKzEsOTIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIAorICAg
IDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIAorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworCisgICAgICAgIHZhciBtaW5YT2Zmc2V0OworICAgICAgICB2YXIgbWF4
WE9mZnNldDsKKyAgICAgICAgdmFyIG1pbllPZmZzZXQ7CisgICAgICAgIHZhciBtYXhZT2Zmc2V0
OworCisgICAgICAgIGZ1bmN0aW9uIHJlc2V0KCkKKyAgICAgICAgeworICAgICAgICAgICAgbWlu
WE9mZnNldCA9IDA7CisgICAgICAgICAgICBtYXhYT2Zmc2V0ID0gLTEwMDA7CisgICAgICAgICAg
ICBtaW5ZT2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIG1heFlPZmZzZXQgPSAtMTAwMDsKKyAgICAg
ICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQorICAgICAgICB7Cisg
ICAgICAgICAgICBkZXNjcmlwdGlvbignU3dpcGVzIHNob3VsZCBydWJiZXItYmFuZCBvbiBlYWNo
IHNpZGUuJyk7CisgICAgICAgIAorICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J3Njcm9sbCcsICgpID0+IHsKKyAgICAgICAgICAgICAgICBtaW5YT2Zmc2V0ID0gTWF0aC5taW4o
bWluWE9mZnNldCwgd2luZG93LnBhZ2VYT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBtYXhYT2Zm
c2V0ID0gTWF0aC5tYXgobWF4WE9mZnNldCwgd2luZG93LnBhZ2VYT2Zmc2V0KTsKKworICAgICAg
ICAgICAgICAgIG1pbllPZmZzZXQgPSBNYXRoLm1pbihtaW5ZT2Zmc2V0LCB3aW5kb3cucGFnZVlP
ZmZzZXQpOworICAgICAgICAgICAgICAgIG1heFlPZmZzZXQgPSBNYXRoLm1heChtYXhZT2Zmc2V0
LCB3aW5kb3cucGFnZVlPZmZzZXQpOworICAgICAgICAgICAgfSwgZmFsc2UpOworCisKKyAgICAg
ICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICByZXNldCgpOworICAgICAgICAgICAgZGVidWcoJycpOworICAgICAgICAgICAgZGVi
dWcoJ1N3aXBlIHRvIHRoZSBsZWZ0Jyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgxMCwgMTAsIDEsIDAsIDEwLCAwKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgnbWluWE9mZnNldCA8IDAnKTsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCdtYXhYT2Zmc2V0JywgJzAnKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCdtaW5ZT2Zmc2V0
JywgJzAnKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCdtYXhZT2Zmc2V0JywgJzAnKTsKKworICAg
ICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIGRlYnVnKCcnKTsKKyAgICAgICAgICAgIGRl
YnVnKCdTd2lwZSB0byB0aGUgcmlnaHQnKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1v
dXNlV2hlZWxTY3JvbGxBdCgxMCwgMTAsIC0xLCAwLCAtMTAsIDApOworICAgICAgICAgICAgc2hv
dWxkQmUoJ21pblhPZmZzZXQnLCAnMCcpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdtYXhY
T2Zmc2V0ID4gMCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ21pbllPZmZzZXQnLCAnMCcpOwor
ICAgICAgICAgICAgc2hvdWxkQmUoJ21heFlPZmZzZXQnLCAnMCcpOworCisgICAgICAgICAgICBy
ZXNldCgpOworICAgICAgICAgICAgZGVidWcoJycpOworICAgICAgICAgICAgZGVidWcoJ1N3aXBl
IGRvd24nKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdXNlV2hlZWxTY3JvbGxBdCgx
MCwgMTAsIDAsIC0xLCAwLCAtMTApOworICAgICAgICAgICAgc2hvdWxkQmUoJ21pblhPZmZzZXQn
LCAnMCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ21heFhPZmZzZXQnLCAnMCcpOworICAgICAg
ICAgICAgc2hvdWxkQmUoJ21pbllPZmZzZXQnLCAnMCcpOworICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCdtYXhZT2Zmc2V0ID4gMCcpOworCisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAg
ICAgZGVidWcoJycpOworICAgICAgICAgICAgZGVidWcoJ1N3aXBlIHVwJyk7CisgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci5tb3VzZVdoZWVsU2Nyb2xsQXQoMTAsIDEwLCAwLCAxLCAwLCAxMCk7
CisgICAgICAgICAgICBzaG91bGRCZSgnbWluWE9mZnNldCcsICcwJyk7CisgICAgICAgICAgICBz
aG91bGRCZSgnbWF4WE9mZnNldCcsICcwJyk7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoJ21p
bllPZmZzZXQgPCAwJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnbWF4WU9mZnNldCcsICcwJyk7
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICAgICAgc2Nyb2xsVGVz
dCgpOworICAgICAgICB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICAKKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="411284"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="411339"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>