<?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>230659</bug_id>
          
          <creation_ts>2021-09-22 17:48:35 -0700</creation_ts>
          <short_desc>Move more scroll snap-related code into ScrollSnapAnimatorState</short_desc>
          <delta_ts>2021-09-22 19:53:16 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796305</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-22 17:48:35 -0700</bug_when>
    <thetext>Move more scroll snap-related code into ScrollSnapAnimatorState</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796307</commentid>
    <comment_count>1</comment_count>
      <attachid>439000</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-22 17:49:32 -0700</bug_when>
    <thetext>Created attachment 439000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796329</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-22 19:52:28 -0700</bug_when>
    <thetext>Committed r282903 (242031@main): &lt;https://commits.webkit.org/242031@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796330</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-22 19:53:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/83428885&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439000</attachid>
            <date>2021-09-22 17:49:32 -0700</date>
            <delta_ts>2021-09-22 19:52:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230659-20210922174931.patch</filename>
            <type>text/plain</type>
            <size>22517</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM3MmJhZDU5ZTlkZDFj
OTI4N2QxZTNkMjg3MGJjOTliZTY5OTZlYi4uOGJlZjI2NjBkZGQ0ZjM0OWZmNmQwYWZkNzQ2NjBj
ODBhZjU5YzIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTA5LTIyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgbW9yZSBz
Y3JvbGwgc25hcC1yZWxhdGVkIGNvZGUgaW50byBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjU5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNlIHRoZSBi
cmFpbiBwcmludCBvZiBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlciBieSBtb3Zpbmcgc2Nyb2xs
IHNuYXAtcmVsYXRlZCBjb2RlCisgICAgICAgIGludG8gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUs
IHdoaWNoIGlzIGdvaW5nIHRvIGJlY29tZSBhIFNjcm9sbFNuYXBDb250cm9sbGVyIGF0IHNvbWUK
KyAgICAgICAgcG9pbnQuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
cjo6c2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxPZmZz
ZXRBZGp1c3RlZEZvclNuYXBwaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yOjphZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNu
YXBBbmltYXRvclN0YXRlOjpjbG9zZXN0U25hcFBvaW50Rm9yT2Zmc2V0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjphZGp1c3RlZFNjcm9sbERlc3Rp
bmF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBBbmltYXRvclN0YXRl
OjpyZXNuYXBBZnRlckxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwQW5pbWF0
b3JTdGF0ZTo6c2V0TmVhcmVzdFNjcm9sbFNuYXBJbmRleEZvckF4aXNBbmRPZmZzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnNldE5lYXJlc3RTY3JvbGxT
bmFwSW5kZXhGb3JPZmZzZXQpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRv
clN0YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmRvUG9zdFRodW1iTW92ZVNuYXBwaW5nKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6YWRqdXN0ZWRTY3JvbGxEZXN0
aW5hdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdFZmZlY3RzQ29udHJv
bGxlcjo6dXBkYXRlQWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQ2xpZW50T2Zmc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpyZXNuYXBBZnRlckxheW91
dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c2V0TmVh
cmVzdFNjcm9sbFNuYXBJbmRleEZvckF4aXNBbmRPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OmFkanVzdFNjcm9sbERlc3RpbmF0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJv
bGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnNl
dFNjcm9sbFNuYXBJbmRleERpZENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXQpOgorCiAyMDIxLTA5LTIyICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGV4ZW1wdCBXZWJYUiBz
b3VyY2UgZmlsZXMgZnJvbSB1bmlmaWVkIHNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCA2MDkxMGIyMTVjMzMzODk0NDA3NDJlYWZiNTg4YTg2YTM0M2NjNzE2Li4xODc3ZGNm
MTE2ZmFiMzY4MWQ2YmNkNjk5OTc0NTAwYTRhMWQ5NmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCkBAIC0yMzE4LDcgKzIzMTgsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBTYwogICAg
IGlmIChwYWdlICYmIHBhZ2UtPmlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHNj
cm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRU
ZXN0TW9uaXRvcigpKTsKIAotICAgIFNjcm9sbE9mZnNldCBzbmFwcGVkT2Zmc2V0ID0gY2VpbGVk
SW50UG9pbnQoc2Nyb2xsQW5pbWF0b3IoKS5hZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lm
TmVlZGVkKHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbiksIG9wdGlvbnMu
c25hcFBvaW50U2VsZWN0aW9uTWV0aG9kKSk7CisgICAgU2Nyb2xsT2Zmc2V0IHNuYXBwZWRPZmZz
ZXQgPSBjZWlsZWRJbnRQb2ludChzY3JvbGxBbmltYXRvcigpLnNjcm9sbE9mZnNldEFkanVzdGVk
Rm9yU25hcHBpbmcoc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwgb3B0
aW9ucy5zbmFwUG9pbnRTZWxlY3Rpb25NZXRob2QpKTsKICAgICBhdXRvIHNuYXBwZWRQb3NpdGlv
biA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChzbmFwcGVkT2Zmc2V0KTsKIAogICAgIGlmIChv
cHRpb25zLmFuaW1hdGVkID09IEFuaW1hdGVkU2Nyb2xsOjpZZXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggYzIwMDc3NTBhNGQ2YjJkMWFkOTRmMjg4
NDY3MDNlMjgwOTI1ZjU4NS4uYzkwNGNlMWFhYzdmZTc3ZGJjNGNjOTE2ZWRiNDdlM2U3ZGRmNjAy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtNzgs
MTMgKzc4LDE0IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRh
dGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkKICAgICAgICAgYXV0byBjdXJyZW50
T2Zmc2V0ID0gb2Zmc2V0RnJvbVBvc2l0aW9uKGN1cnJlbnRQb3NpdGlvbigpKTsKICAgICAgICAg
YXV0byBuZXdPZmZzZXQgPSBjdXJyZW50T2Zmc2V0ICsgZGVsdGE7CiAgICAgICAgIGlmIChvcmll
bnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICAgICAgbmV3T2Zmc2V0LnNl
dFgobV9zY3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uKFNjcm9sbEV2ZW50
QXhpczo6SG9yaXpvbnRhbCwgbmV3T2Zmc2V0LCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0Lngo
KSkpOworICAgICAgICAgICAgbmV3T2Zmc2V0LnNldFgobV9zY3JvbGxDb250cm9sbGVyLmFkanVz
dGVkU2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBuZXdPZmZz
ZXQsIG11bHRpcGxpZXIsIGN1cnJlbnRPZmZzZXQueCgpKSk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIG5ld09mZnNldC5zZXRZKG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1c3RTY3JvbGxEZXN0
aW5hdGlvbihTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBuZXdPZmZzZXQsIG11bHRpcGxpZXIs
IGN1cnJlbnRPZmZzZXQueSgpKSk7Ci0gICAgICAgIGF1dG8gbmV3RGVsdGEgPSBuZXdPZmZzZXQg
LSBjdXJyZW50T2Zmc2V0OworICAgICAgICAgICAgbmV3T2Zmc2V0LnNldFkobV9zY3JvbGxDb250
cm9sbGVyLmFkanVzdGVkU2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNh
bCwgbmV3T2Zmc2V0LCBtdWx0aXBsaWVyLCBjdXJyZW50T2Zmc2V0LnkoKSkpOwogCisgICAgICAg
IGF1dG8gbmV3RGVsdGEgPSBuZXdPZmZzZXQgLSBjdXJyZW50T2Zmc2V0OwogICAgICAgICBpZiAo
b3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKICAgICAgICAgICAgIHJldHVybiBz
Y3JvbGwoSG9yaXpvbnRhbFNjcm9sbGJhciwgZ3JhbnVsYXJpdHksIG5ld0RlbHRhLndpZHRoKCks
IDEuMCwgYmVoYXZpb3IpOworCiAgICAgICAgIHJldHVybiBzY3JvbGwoVmVydGljYWxTY3JvbGxi
YXIsIGdyYW51bGFyaXR5LCBuZXdEZWx0YS5oZWlnaHQoKSwgMS4wLCBiZWhhdmlvcik7CiAgICAg
fQogCkBAIC0zOTMsMTggKzM5NCwxOCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yOjpjb250ZW50c1Np
emVDaGFuZ2VkKCkgY29uc3QKICAgICBtX3Njcm9sbEFuaW1hdGlvbi0+dXBkYXRlU2Nyb2xsRXh0
ZW50cygpOwogfQogCi1GbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yOjphZGp1c3RTY3JvbGxPZmZz
ZXRGb3JTbmFwcGluZ0lmTmVlZGVkKGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCwgU2Nyb2xsU25h
cFBvaW50U2VsZWN0aW9uTWV0aG9kIG1ldGhvZCkKK0Zsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3I6
OnNjcm9sbE9mZnNldEFkanVzdGVkRm9yU25hcHBpbmcoY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0
LCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2QgbWV0aG9kKSBjb25zdAogewogICAgIGlm
ICghbV9zY3JvbGxDb250cm9sbGVyLnVzZXNTY3JvbGxTbmFwKCkpCiAgICAgICAgIHJldHVybiBv
ZmZzZXQ7CiAKLSAgICBGbG9hdFBvaW50IG5ld09mZnNldCA9IG9mZnNldDsKLSAgICBuZXdPZmZz
ZXQuc2V0WChhZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKFNjcm9sbEV2ZW50
QXhpczo6SG9yaXpvbnRhbCwgbmV3T2Zmc2V0LCBtZXRob2QpKTsKLSAgICBuZXdPZmZzZXQuc2V0
WShhZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKFNjcm9sbEV2ZW50QXhpczo6
VmVydGljYWwsIG5ld09mZnNldCwgbWV0aG9kKSk7Ci0gICAgcmV0dXJuIG5ld09mZnNldDsKKyAg
ICByZXR1cm4geworICAgICAgICBzY3JvbGxPZmZzZXRBZGp1c3RlZEZvclNuYXBwaW5nKFNjcm9s
bEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgb2Zmc2V0LCBtZXRob2QpLAorICAgICAgICBzY3JvbGxP
ZmZzZXRBZGp1c3RlZEZvclNuYXBwaW5nKFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwsIG9mZnNl
dCwgbWV0aG9kKQorICAgIH07CiB9CiAKLWZsb2F0IFNjcm9sbEFuaW1hdG9yOjphZGp1c3RTY3Jv
bGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKFNjcm9sbEV2ZW50QXhpcyBheGlzLCBjb25zdCBG
bG9hdFBvaW50JiBuZXdPZmZzZXQsIFNjcm9sbFNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZCBtZXRo
b2QpCitmbG9hdCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsT2Zmc2V0QWRqdXN0ZWRGb3JTbmFwcGlu
ZyhTY3JvbGxFdmVudEF4aXMgYXhpcywgY29uc3QgRmxvYXRQb2ludCYgbmV3T2Zmc2V0LCBTY3Jv
bGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2QgbWV0aG9kKSBjb25zdAogewogICAgIGlmICghbV9z
Y3JvbGxDb250cm9sbGVyLnVzZXNTY3JvbGxTbmFwKCkpCiAgICAgICAgIHJldHVybiBheGlzID09
IFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCA/IG5ld09mZnNldC54KCkgOiBuZXdPZmZzZXQu
eSgpOwpAQCAtNDE5LDcgKzQyMCw3IEBAIGZsb2F0IFNjcm9sbEFuaW1hdG9yOjphZGp1c3RTY3Jv
bGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKFNjcm9sbEV2ZW50QXhpcyBheGlzCiAgICAgICAg
IHZlbG9jaXR5SW5TY3JvbGxBeGlzID0gYXhpcyA9PSBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250
YWwgPyB2ZWxvY2l0eS53aWR0aCgpIDogdmVsb2NpdHkuaGVpZ2h0KCk7CiAgICAgfQogCi0gICAg
cmV0dXJuIG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1c3RTY3JvbGxEZXN0aW5hdGlvbihheGlzLCBu
ZXdPZmZzZXQsIHZlbG9jaXR5SW5TY3JvbGxBeGlzLCBvcmlnaW5hbE9mZnNldCk7CisgICAgcmV0
dXJuIG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1c3RlZFNjcm9sbERlc3RpbmF0aW9uKGF4aXMsIG5l
d09mZnNldCwgdmVsb2NpdHlJblNjcm9sbEF4aXMsIG9yaWdpbmFsT2Zmc2V0KTsKIH0KIAogdm9p
ZCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsQW5pbWF0aW9uRGlkVXBkYXRlKFNjcm9sbEFuaW1hdGlv
biYsIGNvbnN0IEZsb2F0UG9pbnQmIGN1cnJlbnRPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCAwMDA2ZTNjM2I1NjMzMDkyZjlhZjgxMTczYzc2OTBj
ODY1OTYzOTA2Li5iNmEwYmRlYmRjMTc1ZDc5MmM4ZTFjZTBjYTk1NGVlMzVhZTAwZTQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTEwOSw4ICsxMDksOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IoUmVmUHRyPFdoZWVs
RXZlbnRUZXN0TW9uaXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBtX3doZWVsRXZlbnRUZXN0TW9uaXRv
ciA9IHRlc3RNb25pdG9yOyB9CiAgICAgV2hlZWxFdmVudFRlc3RNb25pdG9yKiB3aGVlbEV2ZW50
VGVzdE1vbml0b3IoKSBjb25zdCB7IHJldHVybiBtX3doZWVsRXZlbnRUZXN0TW9uaXRvci5nZXQo
KTsgfQogCi0gICAgRmxvYXRQb2ludCBhZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVl
ZGVkKGNvbnN0IEZsb2F0UG9pbnQmIG9mZnNldCwgU2Nyb2xsU25hcFBvaW50U2VsZWN0aW9uTWV0
aG9kKTsKLSAgICBmbG9hdCBhZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKFNj
cm9sbEV2ZW50QXhpcywgY29uc3QgRmxvYXRQb2ludCYgbmV3T2Zmc2V0LCBTY3JvbGxTbmFwUG9p
bnRTZWxlY3Rpb25NZXRob2QpOworICAgIEZsb2F0UG9pbnQgc2Nyb2xsT2Zmc2V0QWRqdXN0ZWRG
b3JTbmFwcGluZyhjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbFNuYXBQb2ludFNlbGVj
dGlvbk1ldGhvZCkgY29uc3Q7CisgICAgZmxvYXQgc2Nyb2xsT2Zmc2V0QWRqdXN0ZWRGb3JTbmFw
cGluZyhTY3JvbGxFdmVudEF4aXMsIGNvbnN0IEZsb2F0UG9pbnQmIG5ld09mZnNldCwgU2Nyb2xs
U25hcFBvaW50U2VsZWN0aW9uTWV0aG9kKSBjb25zdDsKIAogICAgIGJvb2wgYWN0aXZlU2Nyb2xs
U25hcEluZGV4RGlkQ2hhbmdlKCkgY29uc3Q7CiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4g
YWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuY3Bw
CmluZGV4IDNhMmQ2N2JiNzZiMjQ5MTNhMWYyYmU3MGRmZDY0MjM0MzI3YWRjOTcuLmYwYjRlYjRm
MzU4ZmIwMjM3ZGE5NmMxZDljNjMxMDBkYTg0YmQwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5jcHAKQEAgLTcyLDYgKzcyLDY3
IEBAIGJvb2wgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnNldHVwQW5pbWF0aW9uRm9yU3RhdGUo
U2Nyb2xsU25hcFN0YXRlIHN0YXRlLCBjb25zCiAgICAgcmV0dXJuIGFuaW1hdGluZzsKIH0KIAor
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OmNsb3Nlc3RT
bmFwUG9pbnRGb3JPZmZzZXQoU2Nyb2xsRXZlbnRBeGlzIGF4aXMsIFNjcm9sbE9mZnNldCBzY3Jv
bGxPZmZzZXQsIGNvbnN0IFNjcm9sbEV4dGVudHMmIHNjcm9sbEV4dGVudHMsIGZsb2F0IHBhZ2VT
Y2FsZSkgY29uc3QKK3sKKyAgICBMYXlvdXRQb2ludCBsYXlvdXRTY3JvbGxPZmZzZXQoc2Nyb2xs
T2Zmc2V0LngoKSAvIHBhZ2VTY2FsZSwgc2Nyb2xsT2Zmc2V0LnkoKSAvIHBhZ2VTY2FsZSk7CisK
KyAgICBhdXRvIHNuYXBPZmZzZXRzID0gc25hcE9mZnNldHNGb3JBeGlzKGF4aXMpOworICAgIExh
eW91dFNpemUgdmlld3BvcnRTaXplKHNjcm9sbEV4dGVudHMudmlld3BvcnRTaXplKTsKKyAgICBz
dGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBhY3RpdmVJbmRleDsKKyAgICBpZiAoc25hcE9mZnNldHMu
c2l6ZSgpKQorICAgICAgICBhY3RpdmVJbmRleCA9IHNuYXBPZmZzZXRJbmZvKCkuY2xvc2VzdFNu
YXBPZmZzZXQoYXhpcywgdmlld3BvcnRTaXplLCBsYXlvdXRTY3JvbGxPZmZzZXQsIDApLnNlY29u
ZDsKKworICAgIHJldHVybiBhY3RpdmVJbmRleDsKK30KKworZmxvYXQgU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGU6OmFkanVzdGVkU2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZlbnRBeGlzIGF4aXMs
IEZsb2F0UG9pbnQgZGVzdGluYXRpb25PZmZzZXQsIGZsb2F0IHZlbG9jaXR5LCBzdGQ6Om9wdGlv
bmFsPGZsb2F0PiBvcmlnaW5hbE9mZnNldCwgY29uc3QgU2Nyb2xsRXh0ZW50cyYgc2Nyb2xsRXh0
ZW50cywgZmxvYXQgcGFnZVNjYWxlKSBjb25zdAoreworICAgIGF1dG8gc25hcE9mZnNldHMgPSBz
bmFwT2Zmc2V0c0ZvckF4aXMoYXhpcyk7CisgICAgaWYgKCFzbmFwT2Zmc2V0cy5zaXplKCkpCisg
ICAgICAgIHJldHVybiBheGlzID09IFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCA/IGRlc3Rp
bmF0aW9uT2Zmc2V0LngoKSA6IGRlc3RpbmF0aW9uT2Zmc2V0LnkoKTsKKworICAgIHN0ZDo6b3B0
aW9uYWw8TGF5b3V0VW5pdD4gb3JpZ2luYWxPZmZzZXRJbkxheW91dFVuaXRzOworICAgIGlmIChv
cmlnaW5hbE9mZnNldCkKKyAgICAgICAgb3JpZ2luYWxPZmZzZXRJbkxheW91dFVuaXRzID0gTGF5
b3V0VW5pdCgqb3JpZ2luYWxPZmZzZXQgLyBwYWdlU2NhbGUpOworICAgIExheW91dFNpemUgdmll
d3BvcnRTaXplKHNjcm9sbEV4dGVudHMudmlld3BvcnRTaXplKTsKKyAgICBMYXlvdXRQb2ludCBs
YXlvdXREZXN0aW5hdGlvbk9mZnNldChkZXN0aW5hdGlvbk9mZnNldC54KCkgLyBwYWdlU2NhbGUs
IGRlc3RpbmF0aW9uT2Zmc2V0LnkoKSAvIHBhZ2VTY2FsZSk7CisgICAgTGF5b3V0VW5pdCBvZmZz
ZXQgPSBzbmFwT2Zmc2V0SW5mbygpLmNsb3Nlc3RTbmFwT2Zmc2V0KGF4aXMsIHZpZXdwb3J0U2l6
ZSwgbGF5b3V0RGVzdGluYXRpb25PZmZzZXQsIHZlbG9jaXR5LCBvcmlnaW5hbE9mZnNldEluTGF5
b3V0VW5pdHMpLmZpcnN0OworICAgIHJldHVybiBvZmZzZXQgKiBwYWdlU2NhbGU7Cit9CisKK2Jv
b2wgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnJlc25hcEFmdGVyTGF5b3V0KFNjcm9sbE9mZnNl
dCBzY3JvbGxPZmZzZXQsIGNvbnN0IFNjcm9sbEV4dGVudHMmIHNjcm9sbEV4dGVudHMsIGZsb2F0
IHBhZ2VTY2FsZSkKK3sKKyAgICBib29sIHNuYXBQb2ludENoYW5nZWQgPSBmYWxzZTsKKyAgICAv
LyBJZiB3ZSBhcmUgYWxyZWFkeSBzbmFwcGVkIGluIGEgcGFydGljdWxhciBheGlzLCBtYWludGFp
biB0aGF0LiBPdGhlcndpc2UsIHNuYXAgdG8gdGhlIG5lYXJlc3QgZWxpZ2libGUgc25hcCBwb2lu
dC4KKyAgICBhdXRvIGFjdGl2ZUhvcml6b250YWxJbmRleCA9IGFjdGl2ZVNuYXBJbmRleEZvckF4
aXMoU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsKTsKKyAgICBpZiAoIWFjdGl2ZUhvcml6b250
YWxJbmRleCB8fCAqYWN0aXZlSG9yaXpvbnRhbEluZGV4ID49IHNuYXBPZmZzZXRzRm9yQXhpcyhT
Y3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpLnNpemUoKSkKKyAgICAgICAgc25hcFBvaW50Q2hh
bmdlZCB8PSBzZXROZWFyZXN0U2Nyb2xsU25hcEluZGV4Rm9yQXhpc0FuZE9mZnNldChTY3JvbGxF
dmVudEF4aXM6Okhvcml6b250YWwsIHNjcm9sbE9mZnNldCwgc2Nyb2xsRXh0ZW50cywgcGFnZVNj
YWxlKTsKKworICAgIGF1dG8gYWN0aXZlVmVydGljYWxJbmRleCA9IGFjdGl2ZVNuYXBJbmRleEZv
ckF4aXMoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCk7CisgICAgaWYgKCFhY3RpdmVWZXJ0aWNh
bEluZGV4IHx8ICphY3RpdmVWZXJ0aWNhbEluZGV4ID49IHNuYXBPZmZzZXRzRm9yQXhpcyhTY3Jv
bGxFdmVudEF4aXM6OlZlcnRpY2FsKS5zaXplKCkpCisgICAgICAgIHNuYXBQb2ludENoYW5nZWQg
fD0gc2V0TmVhcmVzdFNjcm9sbFNuYXBJbmRleEZvckF4aXNBbmRPZmZzZXQoU2Nyb2xsRXZlbnRB
eGlzOjpWZXJ0aWNhbCwgc2Nyb2xsT2Zmc2V0LCBzY3JvbGxFeHRlbnRzLCBwYWdlU2NhbGUpOwor
CisgICAgcmV0dXJuIHNuYXBQb2ludENoYW5nZWQ7Cit9CisKK2Jvb2wgU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGU6OnNldE5lYXJlc3RTY3JvbGxTbmFwSW5kZXhGb3JBeGlzQW5kT2Zmc2V0KFNjcm9s
bEV2ZW50QXhpcyBheGlzLCBTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0LCBjb25zdCBTY3JvbGxF
eHRlbnRzJiBzY3JvbGxFeHRlbnRzLCBmbG9hdCBwYWdlU2NhbGUpCit7CisgICAgYXV0byBhY3Rp
dmVJbmRleCA9IGNsb3Nlc3RTbmFwUG9pbnRGb3JPZmZzZXQoYXhpcywgc2Nyb2xsT2Zmc2V0LCBz
Y3JvbGxFeHRlbnRzLCBwYWdlU2NhbGUpOworICAgIGlmIChhY3RpdmVJbmRleCA9PSBhY3RpdmVT
bmFwSW5kZXhGb3JBeGlzKGF4aXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzZXRB
Y3RpdmVTbmFwSW5kZXhGb3JBeGlzKGF4aXMsIGFjdGl2ZUluZGV4KTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworYm9vbCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6c2V0TmVhcmVzdFNjcm9sbFNu
YXBJbmRleEZvck9mZnNldChTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0LCBjb25zdCBTY3JvbGxF
eHRlbnRzJiBzY3JvbGxFeHRlbnRzLCBmbG9hdCBwYWdlU2NhbGUpCit7CisgICAgYm9vbCBzbmFw
SW5kZXhDaGFuZ2VkID0gZmFsc2U7CisgICAgc25hcEluZGV4Q2hhbmdlZCB8PSBzZXROZWFyZXN0
U2Nyb2xsU25hcEluZGV4Rm9yQXhpc0FuZE9mZnNldChTY3JvbGxFdmVudEF4aXM6Okhvcml6b250
YWwsIHNjcm9sbE9mZnNldCwgc2Nyb2xsRXh0ZW50cywgcGFnZVNjYWxlKTsKKyAgICBzbmFwSW5k
ZXhDaGFuZ2VkIHw9IHNldE5lYXJlc3RTY3JvbGxTbmFwSW5kZXhGb3JBeGlzQW5kT2Zmc2V0KFNj
cm9sbEV2ZW50QXhpczo6VmVydGljYWwsIHNjcm9sbE9mZnNldCwgc2Nyb2xsRXh0ZW50cywgcGFn
ZVNjYWxlKTsKKyAgICByZXR1cm4gc25hcEluZGV4Q2hhbmdlZDsKK30KKwogdm9pZCBTY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZTo6dHJhbnNpdGlvblRvVXNlckludGVyYWN0aW9uU3RhdGUoKQogewog
ICAgIHRlYXJkb3duQW5pbWF0aW9uRm9yU3RhdGUoU2Nyb2xsU25hcFN0YXRlOjpVc2VySW50ZXJh
Y3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRv
clN0YXRlLmgKaW5kZXggZTgzMzA0YmRhZThhNmYwNGQ1M2E2YzE3YjVhOThlYjc1NTE3ZjU1ZC4u
ZGY5NGI0NmI5MzU2MDE1YmQyOGI5Y2M0YzJlMjAyZDMxYTEwN2Q5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oCkBAIC03NSw2ICs3
NSwxNSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2FjdGl2ZVNuYXBJbmRleFkgPSBpbmRleDsK
ICAgICB9CiAKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBjbG9zZXN0U25hcFBvaW50Rm9y
T2Zmc2V0KFNjcm9sbEV2ZW50QXhpcywgU2Nyb2xsT2Zmc2V0LCBjb25zdCBTY3JvbGxFeHRlbnRz
JiwgZmxvYXQgcGFnZVNjYWxlKSBjb25zdDsKKyAgICBmbG9hdCBhZGp1c3RlZFNjcm9sbERlc3Rp
bmF0aW9uKFNjcm9sbEV2ZW50QXhpcywgRmxvYXRQb2ludCBkZXN0aW5hdGlvbk9mZnNldCwgZmxv
YXQgdmVsb2NpdHksIHN0ZDo6b3B0aW9uYWw8ZmxvYXQ+IG9yaWdpbmFsT2Zmc2V0LCBjb25zdCBT
Y3JvbGxFeHRlbnRzJiwgZmxvYXQgcGFnZVNjYWxlKSBjb25zdDsKKworICAgIC8vIHJldHVybnMg
dHJ1ZSBpZiBhbiBhY3RpdmUgc25hcCBpbmRleCBjaGFuZ2VkLgorICAgIGJvb2wgcmVzbmFwQWZ0
ZXJMYXlvdXQoU2Nyb2xsT2Zmc2V0LCBjb25zdCBTY3JvbGxFeHRlbnRzJiwgZmxvYXQgcGFnZVNj
YWxlKTsKKyAgICBib29sIHNldE5lYXJlc3RTY3JvbGxTbmFwSW5kZXhGb3JBeGlzQW5kT2Zmc2V0
KFNjcm9sbEV2ZW50QXhpcywgU2Nyb2xsT2Zmc2V0LCBjb25zdCBTY3JvbGxFeHRlbnRzJiwgZmxv
YXQgcGFnZVNjYWxlKTsKKworICAgIGJvb2wgc2V0TmVhcmVzdFNjcm9sbFNuYXBJbmRleEZvck9m
ZnNldChTY3JvbGxPZmZzZXQsIGNvbnN0IFNjcm9sbEV4dGVudHMmLCBmbG9hdCBwYWdlU2NhbGUp
OworCiAgICAgRmxvYXRQb2ludCBjdXJyZW50QW5pbWF0ZWRTY3JvbGxPZmZzZXQoTW9ub3Rvbmlj
VGltZSwgYm9vbCYgaXNBbmltYXRpb25Db21wbGV0ZSkgY29uc3Q7CiAKICAgICAvLyBTdGF0ZSB0
cmFuc2l0aW9uIGhlbHBlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5jcHAKaW5kZXggMDlmM2EzMTVhZWZlM2I5OTJjYjRkZWM5MWQ5YzZmMGRkNDk2OTRkZC4uNTE5
MzU1YWE1MzBjNjZlNWE0MjUxMDBiNWE1ZjcyNmYzNThjYTdiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNTY3LDkgKzU2Nyw5IEBAIHZvaWQgU2Ny
b2xsYWJsZUFyZWE6OmRvUG9zdFRodW1iTW92ZVNuYXBwaW5nKFNjcm9sbGJhck9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKQogICAgIGF1dG8gY3VycmVudE9mZnNldCA9IHNjcm9sbE9mZnNldCgpOwog
ICAgIGF1dG8gbmV3T2Zmc2V0ID0gY3VycmVudE9mZnNldDsKICAgICBpZiAob3JpZW50YXRpb24g
PT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKLSAgICAgICAgbmV3T2Zmc2V0LnNldFgoc2Nyb2xsQW5p
bWF0b3ItPmFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQoU2Nyb2xsRXZlbnRB
eGlzOjpIb3Jpem9udGFsLCBjdXJyZW50T2Zmc2V0LCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25N
ZXRob2Q6OkNsb3Nlc3QpKTsKKyAgICAgICAgbmV3T2Zmc2V0LnNldFgoc2Nyb2xsQW5pbWF0b3It
PnNjcm9sbE9mZnNldEFkanVzdGVkRm9yU25hcHBpbmcoU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9u
dGFsLCBjdXJyZW50T2Zmc2V0LCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2Q6OkNsb3Nl
c3QpKTsKICAgICBlbHNlCi0gICAgICAgIG5ld09mZnNldC5zZXRZKHNjcm9sbEFuaW1hdG9yLT5h
ZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKFNjcm9sbEV2ZW50QXhpczo6VmVy
dGljYWwsIGN1cnJlbnRPZmZzZXQsIFNjcm9sbFNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZDo6Q2xv
c2VzdCkpOworICAgICAgICBuZXdPZmZzZXQuc2V0WShzY3JvbGxBbmltYXRvci0+c2Nyb2xsT2Zm
c2V0QWRqdXN0ZWRGb3JTbmFwcGluZyhTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBjdXJyZW50
T2Zmc2V0LCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2Q6OkNsb3Nlc3QpKTsKIAogICAg
IGlmIChuZXdPZmZzZXQgPT0gY3VycmVudE9mZnNldCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIu
Y3BwCmluZGV4IDc0M2NmNDZmNTMwMzI4ZDE5Yjg1ZTdiMmQxZmQ0MGYyZjg3ZGRlYTcuLmZhMjRm
MjI3ZDUzOTFmM2QzMGM5YzUxZmNmZjdmNmM0ZmUwYWI1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHAKQEAgLTE0
Nyw0NiArMTQ3LDEyIEBAIHZvaWQgU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXI6OnNldEFjdGl2
ZVNjcm9sbFNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzCiAgICAgbV9zY3JvbGxTbmFw
U3RhdGUtPnNldEFjdGl2ZVNuYXBJbmRleEZvckF4aXMoYXhpcywgaW5kZXgpOwogfQogCi12b2lk
IFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzZXROZWFyZXN0U2Nyb2xsU25hcEluZGV4Rm9y
QXhpc0FuZE9mZnNldChTY3JvbGxFdmVudEF4aXMgYXhpcywgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9m
ZnNldCkKK2Zsb2F0IFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjphZGp1c3RlZFNjcm9sbERl
c3RpbmF0aW9uKFNjcm9sbEV2ZW50QXhpcyBheGlzLCBGbG9hdFBvaW50IGRlc3RpbmF0aW9uT2Zm
c2V0LCBmbG9hdCB2ZWxvY2l0eSwgc3RkOjpvcHRpb25hbDxmbG9hdD4gb3JpZ2luYWxPZmZzZXQp
IGNvbnN0CiB7CiAgICAgaWYgKCF1c2VzU2Nyb2xsU25hcCgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBmbG9hdCBzY2FsZUZhY3RvciA9IG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpOwotICAg
IExheW91dFBvaW50IGxheW91dFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQueCgpIC8gc2NhbGVG
YWN0b3IsIHNjcm9sbE9mZnNldC55KCkgLyBzY2FsZUZhY3Rvcik7Ci0gICAgU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUmIHNuYXBTdGF0ZSA9ICptX3Njcm9sbFNuYXBTdGF0ZTsKLQotICAgIGF1dG8g
c25hcE9mZnNldHMgPSBzbmFwU3RhdGUuc25hcE9mZnNldHNGb3JBeGlzKGF4aXMpOwotICAgIExh
eW91dFNpemUgdmlld3BvcnRTaXplKG1fY2xpZW50LnNjcm9sbEV4dGVudHMoKS52aWV3cG9ydFNp
emUpOwotICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGFjdGl2ZUluZGV4OwotICAgIGlmIChz
bmFwT2Zmc2V0cy5zaXplKCkpCi0gICAgICAgIGFjdGl2ZUluZGV4ID0gc25hcFN0YXRlLnNuYXBP
ZmZzZXRJbmZvKCkuY2xvc2VzdFNuYXBPZmZzZXQoYXhpcywgdmlld3BvcnRTaXplLCBsYXlvdXRT
Y3JvbGxPZmZzZXQsIDApLnNlY29uZDsKLQotICAgIGlmIChhY3RpdmVJbmRleCA9PSBhY3RpdmVT
Y3JvbGxTbmFwSW5kZXhGb3JBeGlzKGF4aXMpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2Fj
dGl2ZVNjcm9sbFNuYXBJbmRleERpZENoYW5nZSA9IHRydWU7Ci0gICAgc2V0QWN0aXZlU2Nyb2xs
U25hcEluZGV4Rm9yQXhpcyhheGlzLCBhY3RpdmVJbmRleCk7Ci19Ci0KLWZsb2F0IFNjcm9sbGlu
Z0VmZmVjdHNDb250cm9sbGVyOjphZGp1c3RTY3JvbGxEZXN0aW5hdGlvbihTY3JvbGxFdmVudEF4
aXMgYXhpcywgRmxvYXRQb2ludCBkZXN0aW5hdGlvbk9mZnNldCwgZmxvYXQgdmVsb2NpdHksIHN0
ZDo6b3B0aW9uYWw8ZmxvYXQ+IG9yaWdpbmFsT2Zmc2V0KQotewotICAgIGlmICghdXNlc1Njcm9s
bFNuYXAoKSkKLSAgICAgICAgcmV0dXJuIGF4aXMgPT0gU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9u
dGFsID8gZGVzdGluYXRpb25PZmZzZXQueCgpIDogZGVzdGluYXRpb25PZmZzZXQueSgpOwotCi0g
ICAgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUmIHNuYXBTdGF0ZSA9ICptX3Njcm9sbFNuYXBTdGF0
ZTsKLSAgICBhdXRvIHNuYXBPZmZzZXRzID0gc25hcFN0YXRlLnNuYXBPZmZzZXRzRm9yQXhpcyhh
eGlzKTsKLSAgICBpZiAoIXNuYXBPZmZzZXRzLnNpemUoKSkKICAgICAgICAgcmV0dXJuIGF4aXMg
PT0gU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsID8gZGVzdGluYXRpb25PZmZzZXQueCgpIDog
ZGVzdGluYXRpb25PZmZzZXQueSgpOwogCi0gICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBtX2NsaWVu
dC5wYWdlU2NhbGVGYWN0b3IoKTsKLSAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IG9yaWdp
bmFsT2Zmc2V0SW5MYXlvdXRVbml0czsKLSAgICBpZiAob3JpZ2luYWxPZmZzZXQpCi0gICAgICAg
IG9yaWdpbmFsT2Zmc2V0SW5MYXlvdXRVbml0cyA9IExheW91dFVuaXQoKm9yaWdpbmFsT2Zmc2V0
IC8gc2NhbGVGYWN0b3IpOwotICAgIExheW91dFNpemUgdmlld3BvcnRTaXplKG1fY2xpZW50LnNj
cm9sbEV4dGVudHMoKS52aWV3cG9ydFNpemUpOwotICAgIExheW91dFBvaW50IGxheW91dERlc3Rp
bmF0aW9uT2Zmc2V0KGRlc3RpbmF0aW9uT2Zmc2V0LngoKSAvIHNjYWxlRmFjdG9yLCBkZXN0aW5h
dGlvbk9mZnNldC55KCkgLyBzY2FsZUZhY3Rvcik7Ci0gICAgTGF5b3V0VW5pdCBvZmZzZXQgPSBz
bmFwU3RhdGUuc25hcE9mZnNldEluZm8oKS5jbG9zZXN0U25hcE9mZnNldChheGlzLCB2aWV3cG9y
dFNpemUsIGxheW91dERlc3RpbmF0aW9uT2Zmc2V0LCB2ZWxvY2l0eSwgb3JpZ2luYWxPZmZzZXRJ
bkxheW91dFVuaXRzKS5maXJzdDsKLSAgICByZXR1cm4gb2Zmc2V0ICogc2NhbGVGYWN0b3I7Cisg
ICAgcmV0dXJuIG1fc2Nyb2xsU25hcFN0YXRlLT5hZGp1c3RlZFNjcm9sbERlc3RpbmF0aW9uKGF4
aXMsIGRlc3RpbmF0aW9uT2Zmc2V0LCB2ZWxvY2l0eSwgb3JpZ2luYWxPZmZzZXQsIG1fY2xpZW50
LnNjcm9sbEV4dGVudHMoKSwgbV9jbGllbnQucGFnZVNjYWxlRmFjdG9yKCkpOwogfQogCiB2b2lk
IFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjp1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5kZXhG
b3JDbGllbnRPZmZzZXQoKQpAQCAtMTk1LDggKzE2MSw4IEBAIHZvaWQgU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXI6OnVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvckNsaWVudE9mZnNldCgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIFNjcm9sbE9mZnNldCBvZmZzZXQgPSByb3VuZGVkSW50
UG9pbnQobV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCkpOwotICAgIHNldE5lYXJlc3RTY3JvbGxTbmFw
SW5kZXhGb3JBeGlzQW5kT2Zmc2V0KFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgb2Zmc2V0
KTsKLSAgICBzZXROZWFyZXN0U2Nyb2xsU25hcEluZGV4Rm9yQXhpc0FuZE9mZnNldChTY3JvbGxF
dmVudEF4aXM6OlZlcnRpY2FsLCBvZmZzZXQpOworICAgIGlmIChtX3Njcm9sbFNuYXBTdGF0ZS0+
c2V0TmVhcmVzdFNjcm9sbFNuYXBJbmRleEZvck9mZnNldChvZmZzZXQsIG1fY2xpZW50LnNjcm9s
bEV4dGVudHMoKSwgbV9jbGllbnQucGFnZVNjYWxlRmFjdG9yKCkpKQorICAgICAgICBtX2FjdGl2
ZVNjcm9sbFNuYXBJbmRleERpZENoYW5nZSA9IHRydWU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nRWZm
ZWN0c0NvbnRyb2xsZXI6OnJlc25hcEFmdGVyTGF5b3V0KCkKQEAgLTIwNiwxNiArMTcyLDggQEAg
dm9pZCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6cmVzbmFwQWZ0ZXJMYXlvdXQoKQogCiAg
ICAgLy8gSWYgd2UgYXJlIGFscmVhZHkgc25hcHBlZCBpbiBhIHBhcnRpY3VsYXIgYXhpcywgbWFp
bnRhaW4gdGhhdC4gT3RoZXJ3aXNlLCBzbmFwIHRvIHRoZSBuZWFyZXN0IGVsaWdpYmxlIHNuYXAg
cG9pbnQuCiAgICAgU2Nyb2xsT2Zmc2V0IG9mZnNldCA9IHJvdW5kZWRJbnRQb2ludChtX2NsaWVu
dC5zY3JvbGxPZmZzZXQoKSk7Ci0gICAgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUmIHNuYXBTdGF0
ZSA9ICptX3Njcm9sbFNuYXBTdGF0ZTsKLQotICAgIGF1dG8gYWN0aXZlSG9yaXpvbnRhbEluZGV4
ID0gbV9zY3JvbGxTbmFwU3RhdGUtPmFjdGl2ZVNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRB
eGlzOjpIb3Jpem9udGFsKTsKLSAgICBpZiAoIWFjdGl2ZUhvcml6b250YWxJbmRleCB8fCAqYWN0
aXZlSG9yaXpvbnRhbEluZGV4ID49IHNuYXBTdGF0ZS5zbmFwT2Zmc2V0c0ZvckF4aXMoU2Nyb2xs
RXZlbnRBeGlzOjpIb3Jpem9udGFsKS5zaXplKCkpCi0gICAgICAgIHNldE5lYXJlc3RTY3JvbGxT
bmFwSW5kZXhGb3JBeGlzQW5kT2Zmc2V0KFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgb2Zm
c2V0KTsKLQotICAgIGF1dG8gYWN0aXZlVmVydGljYWxJbmRleCA9IG1fc2Nyb2xsU25hcFN0YXRl
LT5hY3RpdmVTbmFwSW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwpOwotICAg
IGlmICghYWN0aXZlVmVydGljYWxJbmRleCB8fCAqYWN0aXZlVmVydGljYWxJbmRleCA+PSBzbmFw
U3RhdGUuc25hcE9mZnNldHNGb3JBeGlzKFNjcm9sbEV2ZW50QXhpczo6VmVydGljYWwpLnNpemUo
KSkKLSAgICAgICAgc2V0TmVhcmVzdFNjcm9sbFNuYXBJbmRleEZvckF4aXNBbmRPZmZzZXQoU2Ny
b2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCwgb2Zmc2V0KTsKLQorICAgIGlmIChtX3Njcm9sbFNuYXBT
dGF0ZS0+cmVzbmFwQWZ0ZXJMYXlvdXQob2Zmc2V0LCBtX2NsaWVudC5zY3JvbGxFeHRlbnRzKCks
IG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpKSkKKyAgICAgICAgbV9hY3RpdmVTY3JvbGxTbmFw
SW5kZXhEaWRDaGFuZ2UgPSB0cnVlOwogfQogCiB2b2lkIFNjcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyOjp1cGRhdGVLZXlib2FyZFNjcm9sbGluZ0FuaW1hdGluZ1N0YXRlKE1vbm90b25pY1RpbWUg
Y3VycmVudFRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxp
bmdFZmZlY3RzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5n
RWZmZWN0c0NvbnRyb2xsZXIuaAppbmRleCBjY2E0NzVmOTMyOWI0M2I5NzRjMWUyMjRhZTQ1Yzkw
Yzc0NjQxOTMyLi5hNzE0NmRiYmJjZmExMWExZWE4NjY2NjU3OTYwMDVlZTAzMWI1NTU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyLmgKQEAgLTEzMywxNyArMTMzLDIwIEBAIHB1YmxpYzoKICAgICAvLyBTaG91bGQgYmUgY2Fs
bGVkIHBlcmlvZGljYWxseSBieSB0aGUgY2xpZW50LiBTdGFydGVkIGJ5IHN0YXJ0QW5pbWF0aW9u
Q2FsbGJhY2soKSwgc3RvcHBlZCBieSBzdG9wQW5pbWF0aW9uQ2FsbGJhY2soKS4KICAgICB2b2lk
IGFuaW1hdGlvbkNhbGxiYWNrKE1vbm90b25pY1RpbWUpOwogCisgICAgdm9pZCB1cGRhdGVHZXN0
dXJlSW5Qcm9ncmVzc1N0YXRlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOworCiAgICAgdm9p
ZCBzZXRTbmFwT2Zmc2V0c0luZm8oY29uc3QgTGF5b3V0U2Nyb2xsU25hcE9mZnNldHNJbmZvJik7
CiAgICAgY29uc3QgTGF5b3V0U2Nyb2xsU25hcE9mZnNldHNJbmZvKiBzbmFwT2Zmc2V0c0luZm8o
KSBjb25zdDsKICAgICB2b2lkIHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvckF4aXMoU2Nyb2xs
RXZlbnRBeGlzLCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPik7CiAgICAgdm9pZCB1cGRhdGVBY3Rp
dmVTY3JvbGxTbmFwSW5kZXhGb3JDbGllbnRPZmZzZXQoKTsKICAgICB2b2lkIHJlc25hcEFmdGVy
TGF5b3V0KCk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBhY3RpdmVTY3JvbGxTbmFw
SW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CisgICAgZmxvYXQgYWRqdXN0ZWRT
Y3JvbGxEZXN0aW5hdGlvbihTY3JvbGxFdmVudEF4aXMsIEZsb2F0UG9pbnQgZGVzdGluYXRpb25P
ZmZzZXQsIGZsb2F0IHZlbG9jaXR5LCBzdGQ6Om9wdGlvbmFsPGZsb2F0PiBvcmlnaW5hbE9mZnNl
dCkgY29uc3Q7CisKICAgICBib29sIGFjdGl2ZVNjcm9sbFNuYXBJbmRleERpZENoYW5nZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hhbmdlOyB9CisgICAgLy8g
RklYTUU6IFRoaXMgaXMgbmV2ZXIgY2FsbGVkLiBXZSBuZXZlciBzZXQgbV9hY3RpdmVTY3JvbGxT
bmFwSW5kZXhEaWRDaGFuZ2UgYmFjayB0byBmYWxzZS4KICAgICB2b2lkIHNldFNjcm9sbFNuYXBJ
bmRleERpZENoYW5nZShib29sIHN0YXRlKSB7IG1fYWN0aXZlU2Nyb2xsU25hcEluZGV4RGlkQ2hh
bmdlID0gc3RhdGU7IH0KLSAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBhY3RpdmVTY3JvbGxT
bmFwSW5kZXhGb3JBeGlzKFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVT
Y3JvbGxTbmFwU3RhdGUoY29uc3QgU2Nyb2xsYWJsZUFyZWEmKTsKLSAgICB2b2lkIHVwZGF0ZUdl
c3R1cmVJblByb2dyZXNzU3RhdGUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7Ci0gICAgZmxv
YXQgYWRqdXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZlbnRBeGlzLCBGbG9hdFBvaW50IGRl
c3RpbmF0aW9uT2Zmc2V0LCBmbG9hdCB2ZWxvY2l0eSwgc3RkOjpvcHRpb25hbDxmbG9hdD4gb3Jp
Z2luYWxPZmZzZXQpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIFJldHVybnMgdHJ1ZSBp
ZiBoYW5kbGVkLgpAQCAtMTY3LDggKzE3MCw2IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRl
OgotICAgIHZvaWQgc2V0TmVhcmVzdFNjcm9sbFNuYXBJbmRleEZvckF4aXNBbmRPZmZzZXQoU2Ny
b2xsRXZlbnRBeGlzLCBTY3JvbGxPZmZzZXQpOwotCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxTbmFw
QW5pbWF0aW5nU3RhdGUoTW9ub3RvbmljVGltZSk7CiAgICAgdm9pZCB1cGRhdGVSdWJiZXJCYW5k
QW5pbWF0aW5nU3RhdGUoTW9ub3RvbmljVGltZSk7CiAgICAgdm9pZCB1cGRhdGVLZXlib2FyZFNj
cm9sbGluZ0FuaW1hdGluZ1N0YXRlKE1vbm90b25pY1RpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGRm
MmJlZTE4NjE1ZTVkZDJiMDM1MTY1N2Y3YjQwN2QzZWE4YmQxOGQuLmRiNDI0NWY3YWM0NDU0YmYz
MjY3MzFmOWZkYzYwMjcyYzE2NDcwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTI2Niw3ICsyNjYsNyBA
QCBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXQo
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0g
Y3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShvcHRpb25zLnR5
cGUpOwogCi0gICAgU2Nyb2xsT2Zmc2V0IHNuYXBwZWRPZmZzZXQgPSBjZWlsZWRJbnRQb2ludChz
Y3JvbGxBbmltYXRvcigpLmFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQoY2xh
bXBlZFNjcm9sbE9mZnNldCwgb3B0aW9ucy5zbmFwUG9pbnRTZWxlY3Rpb25NZXRob2QpKTsKKyAg
ICBTY3JvbGxPZmZzZXQgc25hcHBlZE9mZnNldCA9IGNlaWxlZEludFBvaW50KHNjcm9sbEFuaW1h
dG9yKCkuc2Nyb2xsT2Zmc2V0QWRqdXN0ZWRGb3JTbmFwcGluZyhjbGFtcGVkU2Nyb2xsT2Zmc2V0
LCBvcHRpb25zLnNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZCkpOwogICAgIGF1dG8gc25hcHBlZFBv
c2l0aW9uID0gc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KHNuYXBwZWRPZmZzZXQpOwogICAgIGlm
IChvcHRpb25zLmFuaW1hdGVkID09IEFuaW1hdGVkU2Nyb2xsOjpZZXMpCiAgICAgICAgIFNjcm9s
bGFibGVBcmVhOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihzbmFwcGVkUG9zaXRpb24p
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>