<?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>230506</bug_id>
          
          <creation_ts>2021-09-20 13:41:55 -0700</creation_ts>
          <short_desc>Wrap ScrollingMomentumCalculator in a ScrollAnimationMomentum when used for scroll snap</short_desc>
          <delta_ts>2021-10-04 17:08:23 -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>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</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>1795253</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-20 13:41:55 -0700</bug_when>
    <thetext>Wrap ScrollingMomentumCalculator in a ScrollAnimationMomentum when used for scroll snap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795263</commentid>
    <comment_count>1</comment_count>
      <attachid>438723</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-20 13:45:38 -0700</bug_when>
    <thetext>Created attachment 438723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795279</commentid>
    <comment_count>2</comment_count>
      <attachid>438727</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-20 14:08:43 -0700</bug_when>
    <thetext>Created attachment 438727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795347</commentid>
    <comment_count>3</comment_count>
      <attachid>438752</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-20 16:36:44 -0700</bug_when>
    <thetext>Created attachment 438752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795371</commentid>
    <comment_count>4</comment_count>
      <attachid>438752</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-09-20 17:28:15 -0700</bug_when>
    <thetext>Comment on attachment 438752
Patch

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

&gt; Source/WebCore/platform/ScrollAnimationMomentum.cpp:104
&gt; +    auto predictedScrollOffset = m_momentumCalculator-&gt;predictedDestinationOffset();

Is `m_momentumCalculator` guaranteed to be non-null here because this should only be called for active animations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797628</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-27 13:42:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/83589190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798322</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-29 07:40:54 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 438752 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800303</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-04 17:08:23 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/282798/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438723</attachid>
            <date>2021-09-20 13:45:38 -0700</date>
            <delta_ts>2021-09-20 14:16:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230506-20210920134537.patch</filename>
            <type>text/plain</type>
            <size>24208</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM4NGMwMmY2ZmJjY2Ni
YWYzNDlkYzdhZmYzYzM0MDhhODY0NTM0Zi4uZTEwNjEzNTkzNjVmNjU5NTIwZGYyNWRhYTIwNGQ5
MTc5NmE5MzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA5LTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdyYXAgU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yIGluIGEgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0gd2hlbiB1
c2VkIGZvciBzY3JvbGwgc25hcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMwNTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIGxvbmctdGVybSBnb2FsIGlzIHRvIGhhdmUgYWxsIHNjcm9sbCBhbmlt
YXRpb25zIHJ1biB2aWEgU2Nyb2xsQW5pbWF0aW9uIHN1YmNsYXNzZXMsCisgICAgICAgIGFuZCBm
b3IgdGhlcmUgdG8gYmUgYSBjbGFzcyAoU2Nyb2xsQW5pbWF0b3Igb3IgU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXIpIHRoYXQgaGFzCisgICAgICAgIGEgbWVtYmVyIHZhcmlhYmxlIGZvciB0aGUg
c2luZ2xlIGFjdGl2ZSBzY3JvbGwgYW5pbWF0aW9uLCBmb3IgdGhlcmUgY2FuIGJlIG9ubHkgb25l
CisgICAgICAgIGF0IGEgdGltZS4KKworICAgICAgICBBcyBhIHN0ZXAgdG93YXJkcyB0aGF0IGdv
YWwsIG1ha2UgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0gYW5kIGhhdmUgaXQgd3JhcCB0aGUgCisg
ICAgICAgIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci4gU2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGUgdGhlbiBvd25zIGEgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uCisKKyAgICAgICAgT3RoZXIg
U2Nyb2xsQW5pbWF0aW9ucyBhcmUgcnVubmluZyB0aGVpciBvd24gdGltZXJzICh3aGljaCBzaG91
bGQgZ28gYXdheSBpbiBmdXR1cmUpLAorICAgICAgICBidXQgZm9yIG5vdyBTY3JvbGxBbmltYXRp
b25Nb21lbnR1bSBpcyBkcml2ZW4gIm1hbnVhbGx5IiBieSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS4KKyAgICAgICAgRmFjaWxpdGF0ZSB0aGlzIGJ5IGhhdmluZyBTY3JvbGxBbmltYXRpb246OnNl
cnZpY2VBbmltYXRpb24oKSByZXR1cm4gdGhlIGN1cnJlbnQgb2Zmc2V0LgorCisgICAgICAgICog
U291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRpb25DbGllbnQ6OnNjcm9sbEFuaW1hdGlvbkRpZFVwZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25DbGllbnQ6OnNjcm9sbEFuaW1hdGlv
bkRpZEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb246OnNlcnZpY2VBbmlt
YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjpzZXR1cEFuaW1hdGlv
bkZvclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjp0
ZWFyZG93bkFuaW1hdGlvbkZvclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBB
bmltYXRvclN0YXRlOjpjdXJyZW50QW5pbWF0ZWRTY3JvbGxPZmZzZXQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnNjcm9sbEV4dGVudHNGb3JBbmlt
YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0p
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnN0YXJ0QW5pbWF0
ZWRTY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdGlvbk1vbWVudHVtOjpyZXRhcmdldEFjdGl2ZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRpb25Nb21lbnR1bTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnNlcnZpY2VBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnVwZGF0ZVNjcm9sbEV4dGVudHMpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5oOiBBZGRlZC4K
KwogMjAyMS0wOS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSBzaG91bGQgYmUgZXhwbGljaXQgYWJvdXQg
d2hlbiBpdCBzdGFydHMgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggM2Rm
YjY4MWMzNzcwZTU2YThlMTFmZDZjZjQ4YmUwZTBhZDhhMTVmZi4uODkzNWUyZDdjNTc4MjcwMjk5
ZjEyZjhlYzU1YWJmYTRlNzk1OTZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC00ODcs
NiArNDg3LDcgQEAgcGxhdGZvcm0vbWFjL1BsdWdpbkJsb2NrbGlzdC5tbQogcGxhdGZvcm0vbWFj
L1Bvd2VyT2JzZXJ2ZXJNYWMuY3BwCiBwbGF0Zm9ybS9tYWMvUHVibGljU3VmZml4TWFjLm1tCiBw
bGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tCitwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0aW9uTW9tZW50dW0uY3BwCiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gQG5v
LXVuaWZ5CiBwbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIubW0KIHBsYXRm
b3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzBiMDQwOWIzZWYxNmZhMGFkOGZmNWM4ZmZj
NWJhYTUzYzk2MTAzYS4uMDU1N2U0M2NmZjgxM2E5NWU3NjAzODEwYjBiNTRjNDE2M2YwNjc0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzUwLDYgKzM1MCw3IEBACiAJCTBGOTRCNjUyMjIwOTE1MDYwMDE1NzAxNCAvKiBTY3Jv
bGxpbmdTdGF0ZVBvc2l0aW9uZWROb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjk0QjY1MTIyMDkxNEZGMDAxNTcwMTQgLyogU2Nyb2xsaW5nU3Rh
dGVQb3NpdGlvbmVkTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGOTRCNjU1MjIwOTMxRTQwMDE1NzAxNCAvKiBTY3JvbGxpbmdUcmVlUG9z
aXRpb25lZE5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOTRCNjUzMjIwOTE1NkMwMDE1NzAxNCAvKiBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
Rjk0RjM3RTIzNjYxNjI2MDAzQUE1QzcgLyogU3R5bGVSdWxlVHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5NEYzN0MyMzY2MTEzMTAwM0FBNUM3
IC8qIFN0eWxlUnVsZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkwRjk5MDU5MDI2RjY4OEE5MDA1NEZCRTAgLyogU2Nyb2xsQW5pbWF0aW9u
TW9tZW50dW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOTkwNThEMjZGNjg4OUQwMDU0RkJFMCAvKiBTY3JvbGxBbmltYXRpb25Nb21lbnR1bS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTkwNTlB
MjZGNkJFODUwMDU0RkJFMCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTkwNTk5MjZGNkJFN0Yw
MDU0RkJFMCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjk5MDU5RDI2RjZCRTlBMDA1NEZC
RTAgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk5MDU5QjI2RjZCRTk0MDA1NEZCRTAgLyog
U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggKi87IH07CiAJCTBGOURBQTBGMUZEMUM2
NkEwMDc5QzVCMiAvKiBET01HQ091dHB1dENvbnN0cmFpbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOURBQTBFMUZEMUM2NjQwMDc5QzVCMiAvKiBE
T01HQ091dHB1dENvbnN0cmFpbnQuaCAqLzsgfTsKQEAgLTYzMzQsNiArNjMzNSw4IEBACiAJCTBG
OTUxMEYwMjRGNDc2OUMwMDFGNTJEQyAvKiBTY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOTUxMEYyMjRGNDc2OUMwMDFGNTJEQyAvKiBTY3JvbGxMYXRjaGluZ0Nv
bnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsTGF0Y2hpbmdDb250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5N0E2NTcxNTVEQTgxRTAwRkFE
RDRDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERpc3BsYXlSZWZyZXNoTW9uaXRvcklPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY5OTA1OEQyNkY2ODg5RDAwNTRGQkUwIC8qIFNjcm9sbEFu
aW1hdGlvbk1vbWVudHVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdGlvbk1vbWVudHVt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGOTkwNThGMjZGNjg4OUQwMDU0RkJF
MCAvKiBTY3JvbGxBbmltYXRpb25Nb21lbnR1bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3Jv
bGxBbmltYXRpb25Nb21lbnR1bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OTkwNTk4MjZGNkJFN0YwMDU0RkJFMCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5OTA1OTkyNkY2QkU3RjAwNTRGQkUwIC8qIFNj
cm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdNb21l
bnR1bUNhbGN1bGF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5OTA1OUIy
NkY2QkU5NDAwNTRGQkUwIC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JNYWMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMTY5LDYgKzIyMTcyLDggQEAKIAkJCQk0NjM0NTkyQjFBQzIy
NzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi8sCiAJCQkJNDZEQkI2NEUxQUI4
Qzk2RjAwRDlBODEzIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuaCAqLywKIAkJCQkwMDgxRkVGRTE2QjBB
MkI2MDA4QUFBN0EgLyogUHVibGljU3VmZml4TWFjLm1tICovLAorCQkJCTBGOTkwNThGMjZGNjg4
OUQwMDU0RkJFMCAvKiBTY3JvbGxBbmltYXRpb25Nb21lbnR1bS5jcHAgKi8sCisJCQkJMEY5OTA1
OEQyNkY2ODg5RDAwNTRGQkUwIC8qIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtLmggKi8sCiAJCQkJ
QkNBRTFGQTUxMjkzOURCNzAwNENCMDI2IC8qIFNjcm9sbEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJ
QkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tICovLAogCQkJ
CTBGMDIyNDU0MjZGMTVENzUwMDAyNjVDMyAvKiBTY3JvbGxiYXJzQ29udHJvbGxlck1hYy5oICov
LApAQCAtMzQ5MjcsNiArMzQ5MzIsNyBAQAogCQkJCUJDOEFFMzRGMTJFQTA5NkEwMEVCM0FFNiAv
KiBTY3JvbGxhYmxlQXJlYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUQ5MjVCNjgwRjY0RDRERDAw
Qjg0N0YwIC8qIFNjcm9sbEFsaWdubWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZBNjFCMEUy
NkY0MzIxMzAwMUFBREI2IC8qIFNjcm9sbEFuaW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY5OTA1OTAyNkY2ODhBOTAwNTRGQkUwIC8qIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTc3NDgwMTM3OEI3NzIwMDlEQTc2QSAvKiBTY3Jv
bGxBbmltYXRvcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBRTFGQTcxMjkzOURCNzAwNENC
MDI2IC8qIFNjcm9sbEFuaW1hdG9yTWFjLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmgKaW5kZXggZjE2NjRlMDhmNWY3ODA4Y2JiYTEzN2Iy
Zjc5YTZkMjQ3ZTJmZGI2OC4uMjEzN2VkNGIyOTE2ZjlmNWNjMjQyZTMzMjlhMWZjODA3YTU0NzIz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmgKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RN
YWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTM4LDggKzM5LDggQEAgY2xhc3MgU2Nyb2xsQW5pbWF0aW9uQ2xpZW50IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQW5pbWF0aW9uRGlkVXBkYXRlKFNjcm9sbEFuaW1h
dGlvbiYsIGNvbnN0IEZsb2F0UG9pbnQmIGN1cnJlbnRPZmZzZXQpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsQW5pbWF0aW9uRGlkRW5kKFNjcm9sbEFuaW1hdGlvbiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsQW5pbWF0aW9uRGlkVXBkYXRlKFNjcm9sbEFuaW1hdGlvbiYsIGNv
bnN0IEZsb2F0UG9pbnQmIC8qIGN1cnJlbnRPZmZzZXQgKi8pIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGxBbmltYXRpb25EaWRFbmQoU2Nyb2xsQW5pbWF0aW9uJikgeyB9CiAgICAgdmlydHVh
bCBTY3JvbGxFeHRlbnRzIHNjcm9sbEV4dGVudHNGb3JBbmltYXRpb24oU2Nyb2xsQW5pbWF0aW9u
JikgPSAwOwogfTsKIApAQCAtNTYsOCArNTcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGlzQWN0aXZlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTY3JvbGxFeHRl
bnRzKCkgeyB9OwogICAgIAotICAgIC8vIEZJWE1FOiBOby1vcC4gTmVlZCB0byB1c2UgdGhpcyBp
bnN0ZWFkIG9mIHN1YmNsYXNzZXMgaGF2aW5nIHRpbWVycy4KLSAgICB2aXJ0dWFsIHZvaWQgc2Vy
dmljZUFuaW1hdGlvbigpIHsgfTsKKyAgICAvLyBSZXR1cm5zIGN1cnJlbnQgb2Zmc2V0LgorICAg
IHZpcnR1YWwgRmxvYXRQb2ludCBzZXJ2aWNlQW5pbWF0aW9uKE1vbm90b25pY1RpbWUpIHsgcmV0
dXJuIHsgfTsgfTsKIAogcHJvdGVjdGVkOgogICAgIFNjcm9sbEFuaW1hdGlvbkNsaWVudCYgbV9j
bGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0
b3JTdGF0ZS5jcHAKaW5kZXggNjkwMzdkNjNmYTM4NDc3NDViMzY0YmY2MTQ0OWIyNzY3MWMwOGE1
Ny4uM2EyZDY3YmI3NmIyNDkxM2ExZjJiZTcwZGZkNjQyMzQzMjdhZGM5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmNwcApAQCAt
MjYsMTEgKzI2LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsU25h
cEFuaW1hdG9yU3RhdGUuaCIKIAorI2luY2x1ZGUgIlNjcm9sbEFuaW1hdGlvbk1vbWVudHVtLmgi
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3Ry
ZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6
On5TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSgpID0gZGVmYXVsdDsKKwogYm9vbCBTY3JvbGxTbmFw
QW5pbWF0b3JTdGF0ZTo6dHJhbnNpdGlvblRvU25hcEFuaW1hdGlvblN0YXRlKGNvbnN0IFNjcm9s
bEV4dGVudHMmIHNjcm9sbEV4dGVudHMsIGZsb2F0IHBhZ2VTY2FsZSwgY29uc3QgRmxvYXRQb2lu
dCYgaW5pdGlhbE9mZnNldCkKIHsKICAgICByZXR1cm4gc2V0dXBBbmltYXRpb25Gb3JTdGF0ZShT
Y3JvbGxTbmFwU3RhdGU6OlNuYXBwaW5nLCBzY3JvbGxFeHRlbnRzLCBwYWdlU2NhbGUsIGluaXRp
YWxPZmZzZXQsIHsgfSwgeyB9KTsKQEAgLTQ3LDIxICs1MCwyNiBAQCBib29sIFNjcm9sbFNuYXBB
bmltYXRvclN0YXRlOjpzZXR1cEFuaW1hdGlvbkZvclN0YXRlKFNjcm9sbFNuYXBTdGF0ZSBzdGF0
ZSwgY29ucwogICAgIGlmIChtX2N1cnJlbnRTdGF0ZSA9PSBzdGF0ZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgbV9tb21lbnR1bUNhbGN1bGF0b3IgPSBTY3JvbGxpbmdNb21lbnR1bUNh
bGN1bGF0b3I6OmNyZWF0ZShzY3JvbGxFeHRlbnRzLCBpbml0aWFsT2Zmc2V0LCBpbml0aWFsRGVs
dGEsIGluaXRpYWxWZWxvY2l0eSk7Ci0gICAgRmxvYXRQb2ludCBwcmVkaWN0ZWRTY3JvbGxUYXJn
ZXQgeyBtX21vbWVudHVtQ2FsY3VsYXRvci0+cHJlZGljdGVkRGVzdGluYXRpb25PZmZzZXQoKSB9
OworICAgIG1fc2Nyb2xsRXh0ZW50cyA9IHNjcm9sbEV4dGVudHM7CisKKyAgICBpZiAobV9tb21l
bnR1bVNjcm9sbEFuaW1hdGlvbikKKyAgICAgICAgbV9tb21lbnR1bVNjcm9sbEFuaW1hdGlvbi0+
c3RvcCgpOwogCi0gICAgZmxvYXQgdGFyZ2V0T2Zmc2V0WCwgdGFyZ2V0T2Zmc2V0WTsKLSAgICBz
dGQ6OnRpZSh0YXJnZXRPZmZzZXRYLCBtX2FjdGl2ZVNuYXBJbmRleFgpID0gdGFyZ2V0T2Zmc2V0
Rm9yU3RhcnRPZmZzZXQoU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBzY3JvbGxFeHRlbnRz
LCBpbml0aWFsT2Zmc2V0LngoKSwgcHJlZGljdGVkU2Nyb2xsVGFyZ2V0LCBwYWdlU2NhbGUsIGlu
aXRpYWxEZWx0YS53aWR0aCgpKTsKLSAgICBzdGQ6OnRpZSh0YXJnZXRPZmZzZXRZLCBtX2FjdGl2
ZVNuYXBJbmRleFkpID0gdGFyZ2V0T2Zmc2V0Rm9yU3RhcnRPZmZzZXQoU2Nyb2xsRXZlbnRBeGlz
OjpWZXJ0aWNhbCwgc2Nyb2xsRXh0ZW50cywgaW5pdGlhbE9mZnNldC55KCksIHByZWRpY3RlZFNj
cm9sbFRhcmdldCwgcGFnZVNjYWxlLCBpbml0aWFsRGVsdGEuaGVpZ2h0KCkpOwotICAgIGF1dG8g
dGFyZ2V0T2Zmc2V0ID0gRmxvYXRQb2ludCB7IHRhcmdldE9mZnNldFgsIHRhcmdldE9mZnNldFkg
fTsKLSAgICBtX21vbWVudHVtQ2FsY3VsYXRvci0+c2V0UmV0YXJnZXRlZFNjcm9sbE9mZnNldCh0
YXJnZXRPZmZzZXQpOworICAgIG1fbW9tZW50dW1TY3JvbGxBbmltYXRpb24gPSBXVEY6Om1ha2VV
bmlxdWU8U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0+KCp0aGlzKTsKKyAgICBib29sIGFuaW1hdGlu
ZyA9IG1fbW9tZW50dW1TY3JvbGxBbmltYXRpb24tPnN0YXJ0QW5pbWF0ZWRTY3JvbGxXaXRoSW5p
dGlhbFZlbG9jaXR5KGluaXRpYWxPZmZzZXQsIGluaXRpYWxWZWxvY2l0eSwgaW5pdGlhbERlbHRh
LCBbJl0oY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0T2Zmc2V0KSB7CisgICAgICAgIGZsb2F0IHRh
cmdldE9mZnNldFgsIHRhcmdldE9mZnNldFk7CisgICAgICAgIHN0ZDo6dGllKHRhcmdldE9mZnNl
dFgsIG1fYWN0aXZlU25hcEluZGV4WCkgPSB0YXJnZXRPZmZzZXRGb3JTdGFydE9mZnNldChTY3Jv
bGxFdmVudEF4aXM6Okhvcml6b250YWwsIHNjcm9sbEV4dGVudHMsIGluaXRpYWxPZmZzZXQueCgp
LCB0YXJnZXRPZmZzZXQsIHBhZ2VTY2FsZSwgaW5pdGlhbERlbHRhLndpZHRoKCkpOworICAgICAg
ICBzdGQ6OnRpZSh0YXJnZXRPZmZzZXRZLCBtX2FjdGl2ZVNuYXBJbmRleFkpID0gdGFyZ2V0T2Zm
c2V0Rm9yU3RhcnRPZmZzZXQoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCwgc2Nyb2xsRXh0ZW50
cywgaW5pdGlhbE9mZnNldC55KCksIHRhcmdldE9mZnNldCwgcGFnZVNjYWxlLCBpbml0aWFsRGVs
dGEuaGVpZ2h0KCkpOwogCi0gICAgaWYgKHRhcmdldE9mZnNldCA9PSBpbml0aWFsT2Zmc2V0KQor
ICAgICAgICByZXR1cm4gRmxvYXRQb2ludCB7IHRhcmdldE9mZnNldFgsIHRhcmdldE9mZnNldFkg
fTsKKyAgICB9KTsKKworICAgIGlmICghYW5pbWF0aW5nKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIG1fY3VycmVu
dFN0YXRlID0gc3RhdGU7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGFuaW1hdGluZzsK
IH0KIAogdm9pZCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6dHJhbnNpdGlvblRvVXNlckludGVy
YWN0aW9uU3RhdGUoKQpAQCAtODAsMjEgKzg4LDIyIEBAIHZvaWQgU2Nyb2xsU25hcEFuaW1hdG9y
U3RhdGU6OnRlYXJkb3duQW5pbWF0aW9uRm9yU3RhdGUoU2Nyb2xsU25hcFN0YXRlIHN0YXRlKQog
ICAgIGlmIChtX2N1cnJlbnRTdGF0ZSA9PSBzdGF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9tb21lbnR1bUNhbGN1bGF0b3IgPSBudWxscHRyOwotICAgIG1fc3RhcnRUaW1lID0gTW9ub3Rv
bmljVGltZSgpOworICAgIG1fbW9tZW50dW1TY3JvbGxBbmltYXRpb24gPSBudWxscHRyOworICAg
IG1fc3RhcnRUaW1lID0geyB9OwogICAgIG1fY3VycmVudFN0YXRlID0gc3RhdGU7CiB9CiAKIEZs
b2F0UG9pbnQgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OmN1cnJlbnRBbmltYXRlZFNjcm9sbE9m
ZnNldChNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lLCBib29sJiBpc0FuaW1hdGlvbkNvbXBsZXRl
KSBjb25zdAogewotICAgIGlmICghbV9tb21lbnR1bUNhbGN1bGF0b3IpIHsKKyAgICBpZiAoIW1f
bW9tZW50dW1TY3JvbGxBbmltYXRpb24pIHsKICAgICAgICAgaXNBbmltYXRpb25Db21wbGV0ZSA9
IHRydWU7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCi0gICAgU2Vjb25kcyBlbGFwc2Vk
VGltZSA9IGN1cnJlbnRUaW1lIC0gbV9zdGFydFRpbWU7Ci0gICAgaXNBbmltYXRpb25Db21wbGV0
ZSA9IGVsYXBzZWRUaW1lID49IG1fbW9tZW50dW1DYWxjdWxhdG9yLT5hbmltYXRpb25EdXJhdGlv
bigpOwotICAgIHJldHVybiBtX21vbWVudHVtQ2FsY3VsYXRvci0+c2Nyb2xsT2Zmc2V0QWZ0ZXJF
bGFwc2VkVGltZShlbGFwc2VkVGltZSk7CisgICAgYXV0byBjdXJyZW50T2Zmc2V0ID0gbV9tb21l
bnR1bVNjcm9sbEFuaW1hdGlvbi0+c2VydmljZUFuaW1hdGlvbihjdXJyZW50VGltZSk7CisgICAg
aXNBbmltYXRpb25Db21wbGV0ZSA9ICFtX21vbWVudHVtU2Nyb2xsQW5pbWF0aW9uLT5pc0FjdGl2
ZSgpOworCisgICAgcmV0dXJuIGN1cnJlbnRPZmZzZXQ7CiB9CiAKIHN0ZDo6cGFpcjxmbG9hdCwg
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4+IFNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjp0YXJnZXRP
ZmZzZXRGb3JTdGFydE9mZnNldChTY3JvbGxFdmVudEF4aXMgYXhpcywgY29uc3QgU2Nyb2xsRXh0
ZW50cyYgc2Nyb2xsRXh0ZW50cywgZmxvYXQgc3RhcnRPZmZzZXQsIEZsb2F0UG9pbnQgcHJlZGlj
dGVkT2Zmc2V0LCBmbG9hdCBwYWdlU2NhbGUsIGZsb2F0IGluaXRpYWxEZWx0YSkgY29uc3QKQEAg
LTExMSw2ICsxMjAsMTEgQEAgc3RkOjpwYWlyPGZsb2F0LCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVk
Pj4gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnRhcmdldE9mZnNldEYKICAgICByZXR1cm4gc3Rk
OjptYWtlX3BhaXIocGFnZVNjYWxlICogY2xhbXBUbzxmbG9hdD4oZmxvYXQgeyB0YXJnZXRPZmZz
ZXQgfSwgbWluU2Nyb2xsT2Zmc2V0LCBtYXhTY3JvbGxPZmZzZXQpLCBzbmFwSW5kZXgpOwogfQog
CitTY3JvbGxFeHRlbnRzIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjpzY3JvbGxFeHRlbnRzRm9y
QW5pbWF0aW9uKFNjcm9sbEFuaW1hdGlvbiYpCit7CisgICAgcmV0dXJuIG1fc2Nyb2xsRXh0ZW50
czsKK30KKwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgU2Ny
b2xsU25hcEFuaW1hdG9yU3RhdGUmIHN0YXRlKQogewogICAgIHRzIDw8ICJTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZSI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxT
bmFwQW5pbWF0b3JTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUuaAppbmRleCBlOTU1ZTNlYjM1NDgwZDQzMzY2YzI1ODQzMzNhZTFjYzEyMjhi
N2YxLi5iNDVhNTJlMmE1MjNhYWFkMDM3NzJkMDI3NTJiNDI2MzFlZTcwZWFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJMYXlvdXRQb2lu
dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbEFu
aW1hdGlvbk1vbWVudHVtLmgiCiAjaW5jbHVkZSAiU2Nyb2xsU25hcE9mZnNldHNJbmZvLmgiCiAj
aW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdNb21lbnR1bUNhbGN1
bGF0b3IuaCIKQEAgLTQ3LDExICs0OCwxMSBAQCBlbnVtIGNsYXNzIFNjcm9sbFNuYXBTdGF0ZSB7
CiAgICAgVXNlckludGVyYWN0aW9uCiB9OwogCi1zdHJ1Y3QgU2Nyb2xsRXh0ZW50czsKLQotY2xh
c3MgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUgeworY2xhc3MgU2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGUgOiBwdWJsaWMgU2Nyb2xsQW5pbWF0aW9uQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSgp
OworCiAgICAgY29uc3QgVmVjdG9yPFNuYXBPZmZzZXQ8TGF5b3V0VW5pdD4+JiBzbmFwT2Zmc2V0
c0ZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzIGF4aXMpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1
cm4gYXhpcyA9PSBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwgPyBtX3NuYXBPZmZzZXRzSW5m
by5ob3Jpem9udGFsU25hcE9mZnNldHMgOiBtX3NuYXBPZmZzZXRzSW5mby52ZXJ0aWNhbFNuYXBP
ZmZzZXRzOwpAQCAtOTAsMTUgKzkxLDIwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZXR1cEFuaW1h
dGlvbkZvclN0YXRlKFNjcm9sbFNuYXBTdGF0ZSwgY29uc3QgU2Nyb2xsRXh0ZW50cyYsIGZsb2F0
IHBhZ2VTY2FsZSwgY29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRT
aXplJiBpbml0aWFsVmVsb2NpdHksIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbERlbHRhKTsKICAg
ICB2b2lkIHRlYXJkb3duQW5pbWF0aW9uRm9yU3RhdGUoU2Nyb2xsU25hcFN0YXRlKTsKIAorICAg
IC8vIFNjcm9sbEFuaW1hdGlvbkNsaWVudC4KKyAgICBTY3JvbGxFeHRlbnRzIHNjcm9sbEV4dGVu
dHNGb3JBbmltYXRpb24oU2Nyb2xsQW5pbWF0aW9uJikgZmluYWw7CisKICAgICBTY3JvbGxTbmFw
U3RhdGUgbV9jdXJyZW50U3RhdGUgeyBTY3JvbGxTbmFwU3RhdGU6OlVzZXJJbnRlcmFjdGlvbiB9
OwogCiAgICAgTGF5b3V0U2Nyb2xsU25hcE9mZnNldHNJbmZvIG1fc25hcE9mZnNldHNJbmZvOwor
ICAgIAorICAgIFNjcm9sbEV4dGVudHMgbV9zY3JvbGxFeHRlbnRzOwogCiAgICAgc3RkOjpvcHRp
b25hbDx1bnNpZ25lZD4gbV9hY3RpdmVTbmFwSW5kZXhYOwogICAgIHN0ZDo6b3B0aW9uYWw8dW5z
aWduZWQ+IG1fYWN0aXZlU25hcEluZGV4WTsKIAogICAgIE1vbm90b25pY1RpbWUgbV9zdGFydFRp
bWU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcj4gbV9t
b21lbnR1bUNhbGN1bGF0b3I7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEFuaW1hdGlvbk1v
bWVudHVtPiBtX21vbWVudHVtU2Nyb2xsQW5pbWF0aW9uOwogfTsKIAogV1RGOjpUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IFNjcm9sbFNuYXBBbmltYXRvclN0
YXRlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZl
Y3RzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZl
Y3RzQ29udHJvbGxlci5jcHAKaW5kZXggMjcwMzBjOTE4MzAyM2QyNzhkM2QxMjRhZWU4MThiZDZi
ZDZkYjM4OC4uNzQzY2Y0NmY1MzAzMjhkMTliODVlN2IyZDFmZDQwZjJmODdkZGVhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyLmNwcApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkxheW91dFNpemUuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCi0jaW5jbHVk
ZSAiU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5o
IgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0TW9uaXRvci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1RleHRTdHJlYW0uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGluZ0VmZmVjdHNDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxp
bmdFZmZlY3RzQ29udHJvbGxlci5oCmluZGV4IDlkZGI2YmI5MmNhNzJjNGVjMDE2YTA2YzljMTVm
ZDk1Y2YzMjcyZjUuLjAzNjAyZGVlZDI5MWRiOTY3ZDA3YWU3NWJjMDFmZWY0N2U3Njk2OWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRy
b2xsZXIuaApAQCAtNDEsNiArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBLZXli
b2FyZFNjcm9sbGluZ0FuaW1hdG9yOwogY2xhc3MgTGF5b3V0U2l6ZTsKIGNsYXNzIFBsYXRmb3Jt
V2hlZWxFdmVudDsKK2NsYXNzIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlOwogY2xhc3MgU2Nyb2xs
aW5nRWZmZWN0c0NvbnRyb2xsZXI7CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKIGNsYXNzIFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiOTgzNWZjZDk0OWJj
MWYxNjczMDI5ZTQ5MmUxYWU0MjZkNjViYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uY3BwCkBAIC0wLDAgKzEs
MTEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3Jv
bGxBbmltYXRpb25Nb21lbnR1bS5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
IlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRT
dHJlYW0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTY3JvbGxBbmltYXRpb25Nb21lbnR1
bTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0oU2Nyb2xsQW5pbWF0aW9uQ2xpZW50JiBjbGllbnQp
CisgICAgOiBTY3JvbGxBbmltYXRpb24oY2xpZW50KQoreworfQorCitTY3JvbGxBbmltYXRpb25N
b21lbnR1bTo6flNjcm9sbEFuaW1hdGlvbk1vbWVudHVtKCkgPSBkZWZhdWx0OworCitib29sIFNj
cm9sbEFuaW1hdGlvbk1vbWVudHVtOjpzdGFydEFuaW1hdGVkU2Nyb2xsV2l0aEluaXRpYWxWZWxv
Y2l0eShjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGlu
aXRpYWxWZWxvY2l0eSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsRGVsdGEsIGNvbnN0IFdURjo6
RnVuY3Rpb248RmxvYXRQb2ludChjb25zdCBGbG9hdFBvaW50Jik+JiBkZXN0aW5hdGlvbk1vZGlm
aWVyKQoreworICAgIGF1dG8gZXh0ZW50cyA9IG1fY2xpZW50LnNjcm9sbEV4dGVudHNGb3JBbmlt
YXRpb24oKnRoaXMpOworCisgICAgbV9tb21lbnR1bUNhbGN1bGF0b3IgPSBTY3JvbGxpbmdNb21l
bnR1bUNhbGN1bGF0b3I6OmNyZWF0ZShleHRlbnRzLCBpbml0aWFsT2Zmc2V0LCBpbml0aWFsRGVs
dGEsIGluaXRpYWxWZWxvY2l0eSk7CisgICAgYXV0byBwcmVkaWN0ZWRTY3JvbGxPZmZzZXQgPSBt
X21vbWVudHVtQ2FsY3VsYXRvci0+cHJlZGljdGVkRGVzdGluYXRpb25PZmZzZXQoKTsKKworICAg
IGlmIChkZXN0aW5hdGlvbk1vZGlmaWVyKSB7CisgICAgICAgIHByZWRpY3RlZFNjcm9sbE9mZnNl
dCA9IGRlc3RpbmF0aW9uTW9kaWZpZXIocHJlZGljdGVkU2Nyb2xsT2Zmc2V0KTsKKyAgICAgICAg
bV9tb21lbnR1bUNhbGN1bGF0b3ItPnNldFJldGFyZ2V0ZWRTY3JvbGxPZmZzZXQocHJlZGljdGVk
U2Nyb2xsT2Zmc2V0KTsKKyAgICB9CisKKyAgICBpZiAocHJlZGljdGVkU2Nyb2xsT2Zmc2V0ID09
IGluaXRpYWxPZmZzZXQpIHsKKyAgICAgICAgbV9tb21lbnR1bUNhbGN1bGF0b3IgPSBudWxscHRy
OworICAgICAgICBtX2FuaW1hdGlvbkNvbXBsZXRlID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIG1fc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7Cisg
ICAgbV9hbmltYXRpb25Db21wbGV0ZSA9IGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCiti
b29sIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtOjpyZXRhcmdldEFjdGl2ZUFuaW1hdGlvbihjb25z
dCBGbG9hdFBvaW50JiBuZXdEZXN0aW5hdGlvbikKK3sKKyAgICBpZiAobV9tb21lbnR1bUNhbGN1
bGF0b3IpIHsKKyAgICAgICAgbV9tb21lbnR1bUNhbGN1bGF0b3ItPnNldFJldGFyZ2V0ZWRTY3Jv
bGxPZmZzZXQobmV3RGVzdGluYXRpb24pOworICAgICAgICBhdXRvIG5ld0R1cmF0aW9uID0gbV9t
b21lbnR1bUNhbGN1bGF0b3ItPmFuaW1hdGlvbkR1cmF0aW9uKCk7CisgICAgICAgIG1fYW5pbWF0
aW9uQ29tcGxldGUgPSBuZXdEdXJhdGlvbiA+IDBfczsKKyAgICAgICAgcmV0dXJuICFtX2FuaW1h
dGlvbkNvbXBsZXRlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgU2Nyb2xs
QW5pbWF0aW9uTW9tZW50dW06OnN0b3AoKQoreworICAgIG1fbW9tZW50dW1DYWxjdWxhdG9yID0g
bnVsbHB0cjsKKyAgICBtX2FuaW1hdGlvbkNvbXBsZXRlID0gdHJ1ZTsKKyAgICBtX2NsaWVudC5z
Y3JvbGxBbmltYXRpb25EaWRFbmQoKnRoaXMpOworfQorCitib29sIFNjcm9sbEFuaW1hdGlvbk1v
bWVudHVtOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX2FuaW1hdGlvbkNvbXBs
ZXRlOworfQorCitGbG9hdFBvaW50IFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtOjpzZXJ2aWNlQW5p
bWF0aW9uKE1vbm90b25pY1RpbWUgY3VycmVudFRpbWUpCit7CisgICAgYXV0byBlbGFwc2VkVGlt
ZSA9IGN1cnJlbnRUaW1lIC0gbV9zdGFydFRpbWU7CisgICAgbV9hbmltYXRpb25Db21wbGV0ZSA9
IGVsYXBzZWRUaW1lID49IG1fbW9tZW50dW1DYWxjdWxhdG9yLT5hbmltYXRpb25EdXJhdGlvbigp
OworICAgIGF1dG8gbmV3T2Zmc2V0ID0gbV9tb21lbnR1bUNhbGN1bGF0b3ItPnNjcm9sbE9mZnNl
dEFmdGVyRWxhcHNlZFRpbWUoZWxhcHNlZFRpbWUpOworCisgICAgbV9jbGllbnQuc2Nyb2xsQW5p
bWF0aW9uRGlkVXBkYXRlKCp0aGlzLCBuZXdPZmZzZXQpOworCisgICAgaWYgKG1fYW5pbWF0aW9u
Q29tcGxldGUpCisgICAgICAgIG1fY2xpZW50LnNjcm9sbEFuaW1hdGlvbkRpZEVuZCgqdGhpcyk7
CisgICAgCisgICAgcmV0dXJuIG5ld09mZnNldDsKK30KKwordm9pZCBTY3JvbGxBbmltYXRpb25N
b21lbnR1bTo6dXBkYXRlU2Nyb2xsRXh0ZW50cygpCit7CisgICAgYXV0byBleHRlbnRzID0gbV9j
bGllbnQuc2Nyb2xsRXh0ZW50c0ZvckFuaW1hdGlvbigqdGhpcyk7CisgICAgYXV0byBwcmVkaWN0
ZWRTY3JvbGxPZmZzZXQgPSBtX21vbWVudHVtQ2FsY3VsYXRvci0+cHJlZGljdGVkRGVzdGluYXRp
b25PZmZzZXQoKTsKKyAgICBhdXRvIGNvbnN0cmFpbmVkT2Zmc2V0ID0gcHJlZGljdGVkU2Nyb2xs
T2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihleHRlbnRzLm1pbmltdW1TY3JvbGxPZmZzZXQoKSwg
ZXh0ZW50cy5tYXhpbXVtU2Nyb2xsT2Zmc2V0KCkpOworICAgIGlmIChjb25zdHJhaW5lZE9mZnNl
dCAhPSBwcmVkaWN0ZWRTY3JvbGxPZmZzZXQpIHsKKyAgICAgICAgcmV0YXJnZXRBY3RpdmVBbmlt
YXRpb24oY29uc3RyYWluZWRPZmZzZXQpOworICAgICAgICBpZiAobV9hbmltYXRpb25Db21wbGV0
ZSkKKyAgICAgICAgICAgIG1fY2xpZW50LnNjcm9sbEFuaW1hdGlvbkRpZEVuZCgqdGhpcyk7Cisg
ICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZl
NmE2NjE2ZmNkOTU2NTJlODM5YjU3YzlmZTA2NGJkYzFjN2IzZTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaApA
QCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
U2Nyb2xsQW5pbWF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yOworCitjbGFzcyBTY3JvbGxBbmltYXRpb25Nb21lbnR1bSBm
aW5hbCA6IHB1YmxpYyBTY3JvbGxBbmltYXRpb24geworcHVibGljOgorICAgIFNjcm9sbEFuaW1h
dGlvbk1vbWVudHVtKFNjcm9sbEFuaW1hdGlvbkNsaWVudCYpOworICAgIHZpcnR1YWwgflNjcm9s
bEFuaW1hdGlvbk1vbWVudHVtKCk7CisKKyAgICBib29sIHN0YXJ0QW5pbWF0ZWRTY3JvbGxXaXRo
SW5pdGlhbFZlbG9jaXR5KGNvbnN0IEZsb2F0UG9pbnQmIGluaXRpYWxPZmZzZXQsIGNvbnN0IEZs
b2F0U2l6ZSYgaW5pdGlhbFZlbG9jaXR5LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwg
Y29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmKT4mIGRlc3Rp
bmF0aW9uTW9kaWZpZXIpOworCisgICAgYm9vbCByZXRhcmdldEFjdGl2ZUFuaW1hdGlvbihjb25z
dCBGbG9hdFBvaW50JiBuZXdEZXN0aW5hdGlvbikgZmluYWw7CisgICAgdm9pZCBzdG9wKCkgZmlu
YWw7CisgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IGZpbmFsOworICAgIEZsb2F0UG9pbnQgc2Vy
dmljZUFuaW1hdGlvbihNb25vdG9uaWNUaW1lKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVNjcm9s
bEV4dGVudHMoKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yPiBtX21vbWVudHVtQ2FsY3VsYXRvcjsKKyAgICAKKyAgICBN
b25vdG9uaWNUaW1lIG1fc3RhcnRUaW1lOworICAgIGJvb2wgbV9hbmltYXRpb25Db21wbGV0ZSB7
IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="commit-queue"
          id="462201"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438727</attachid>
            <date>2021-09-20 14:08:43 -0700</date>
            <delta_ts>2021-09-20 16:36:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230506-20210920140842.patch</filename>
            <type>text/plain</type>
            <size>27239</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM4NGMwMmY2ZmJjY2Ni
YWYzNDlkYzdhZmYzYzM0MDhhODY0NTM0Zi4uZTEwNjEzNTkzNjVmNjU5NTIwZGYyNWRhYTIwNGQ5
MTc5NmE5MzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA5LTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdyYXAgU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yIGluIGEgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0gd2hlbiB1
c2VkIGZvciBzY3JvbGwgc25hcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMwNTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIGxvbmctdGVybSBnb2FsIGlzIHRvIGhhdmUgYWxsIHNjcm9sbCBhbmlt
YXRpb25zIHJ1biB2aWEgU2Nyb2xsQW5pbWF0aW9uIHN1YmNsYXNzZXMsCisgICAgICAgIGFuZCBm
b3IgdGhlcmUgdG8gYmUgYSBjbGFzcyAoU2Nyb2xsQW5pbWF0b3Igb3IgU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXIpIHRoYXQgaGFzCisgICAgICAgIGEgbWVtYmVyIHZhcmlhYmxlIGZvciB0aGUg
c2luZ2xlIGFjdGl2ZSBzY3JvbGwgYW5pbWF0aW9uLCBmb3IgdGhlcmUgY2FuIGJlIG9ubHkgb25l
CisgICAgICAgIGF0IGEgdGltZS4KKworICAgICAgICBBcyBhIHN0ZXAgdG93YXJkcyB0aGF0IGdv
YWwsIG1ha2UgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0gYW5kIGhhdmUgaXQgd3JhcCB0aGUgCisg
ICAgICAgIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci4gU2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGUgdGhlbiBvd25zIGEgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uCisKKyAgICAgICAgT3RoZXIg
U2Nyb2xsQW5pbWF0aW9ucyBhcmUgcnVubmluZyB0aGVpciBvd24gdGltZXJzICh3aGljaCBzaG91
bGQgZ28gYXdheSBpbiBmdXR1cmUpLAorICAgICAgICBidXQgZm9yIG5vdyBTY3JvbGxBbmltYXRp
b25Nb21lbnR1bSBpcyBkcml2ZW4gIm1hbnVhbGx5IiBieSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS4KKyAgICAgICAgRmFjaWxpdGF0ZSB0aGlzIGJ5IGhhdmluZyBTY3JvbGxBbmltYXRpb246OnNl
cnZpY2VBbmltYXRpb24oKSByZXR1cm4gdGhlIGN1cnJlbnQgb2Zmc2V0LgorCisgICAgICAgICog
U291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRpb25DbGllbnQ6OnNjcm9sbEFuaW1hdGlvbkRpZFVwZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25DbGllbnQ6OnNjcm9sbEFuaW1hdGlv
bkRpZEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb246OnNlcnZpY2VBbmlt
YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjpzZXR1cEFuaW1hdGlv
bkZvclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjp0
ZWFyZG93bkFuaW1hdGlvbkZvclN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFNuYXBB
bmltYXRvclN0YXRlOjpjdXJyZW50QW5pbWF0ZWRTY3JvbGxPZmZzZXQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnNjcm9sbEV4dGVudHNGb3JBbmlt
YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0p
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnN0YXJ0QW5pbWF0
ZWRTY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdGlvbk1vbWVudHVtOjpyZXRhcmdldEFjdGl2ZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRpb25Nb21lbnR1bTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnNlcnZpY2VBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnVwZGF0ZVNjcm9sbEV4dGVudHMpOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5oOiBBZGRlZC4K
KwogMjAyMS0wOS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSBzaG91bGQgYmUgZXhwbGljaXQgYWJvdXQg
d2hlbiBpdCBzdGFydHMgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZjQxMTMzNGQ2
YjcxNDczNzA1NzA2Y2UwNWY0ZGM2MTA0ODdjYTc3ZS4uZmZjOTEyNTNmZmIzY2VmNTUxZjYxNjBm
NmJhNDNhMWI0MGRlZTdiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTMyLDYgKzExMzIsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vU1NM
S2V5R2VuZXJhdG9yLmgKICAgICBwbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKICAgICBwbGF0
Zm9ybS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0aW9uTW9tZW50dW0uaAogICAgIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKICAg
ICBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCiAgICAgcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0x
MTM5LDcgKzExNDAsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgcGxhdGZvcm0vU2Nyb2xsYmFyLmgKICAgICBwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCiAg
ICAgcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuaAotICAgIHBsYXRmb3JtL1Njcm9s
bGluZ01vbWVudHVtQ2FsY3VsYXRvci5oCiAgICAgcGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgK
ICAgICBwbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlLmgKICAgICBwbGF0Zm9ybS9T
ZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBkODBiZDMy
Y2U3MGQ2ZmU2ZjE1Yjk5YTI5ZWVlODUyNTk3NmRiYTZhLi4yMzUyZTkzZTczN2Q1NzIyMmEwNTZi
YmNmMjY1MjU3NzJmN2E3ZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTgyMiw2ICsxODIyLDcgQEAg
cGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAogcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmNwcAogcGxhdGZvcm0vU1NMS2V5R2VuZXJhdG9yLmNwcAogcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKK3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVu
dHVtLmNwcAogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwCiBwbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3MGIwNDA5YjNlZjE2ZmEwYWQ4ZmY1YzhmZmM1YmFhNTNjOTYxMDNhLi5jZGZjZTRkYTYy
MDYzYWVmNjFmZDVhM2YxNGRiMzRjZjM1Y2I5MDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTAsNiArMjkwLDcgQEAKIAkJ
MEYwM0MwNzQxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwM0MwNzMxODg0Njk1RTAwQTVGOENB
IC8qIFN5c3RlbU1lbW9yeS5oICovOyB9OwogCQkwRjAzQzA3NTE4ODQ4MDU1MDBBNUY4Q0EgLyog
SW5zcGVjdG9yT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0M1MjJENEExNUI0NzhCMjAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjA5OUQw
OTE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA5OUQwNzE3Qjk2OEEx
MDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYwRTAwOUMyNkY5MkQ4NDAwQUNF
OUM2IC8qIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjBFMDA5QTI2RjkyRDdCMDBBQ0U5QzYgLyogU2Nyb2xs
QW5pbWF0aW9uTW9tZW50dW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjExNzgx
NjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxMUE1NEYwRjM5MjMzMTAwQzM3ODg0
IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMTFBNTRFMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rp
b25JbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEYxMzE2M0UxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEzMTYzRDE2RUQwQ0M4
MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzUwLDcgKzM1MSw3IEBACiAJCTBGOTRCNjUyMjIw
OTE1MDYwMDE1NzAxNCAvKiBTY3JvbGxpbmdTdGF0ZVBvc2l0aW9uZWROb2RlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk0QjY1MTIyMDkxNEZGMDAx
NTcwMTQgLyogU2Nyb2xsaW5nU3RhdGVQb3NpdGlvbmVkTm9kZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOTRCNjU1MjIwOTMxRTQwMDE1NzAx
NCAvKiBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTRCNjUzMjIwOTE1NkMwMDE1NzAxNCAvKiBTY3Jv
bGxpbmdUcmVlUG9zaXRpb25lZE5vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjk0RjM3RTIzNjYxNjI2MDAzQUE1QzcgLyogU3R5bGVSdWxl
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5
NEYzN0MyMzY2MTEzMTAwM0FBNUM3IC8qIFN0eWxlUnVsZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjk5MDU5QTI2RjZCRTg1MDA1NEZC
RTAgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk5MDU5OTI2RjZCRTdGMDA1NEZCRTAgLyogU2Ny
b2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY5OTA1OUEyNkY2QkU4NTAwNTRGQkUwIC8qIFNjcm9sbGlu
Z01vbWVudHVtQ2FsY3VsYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY5OTA1OTkyNkY2QkU3RjAwNTRGQkUwIC8qIFNjcm9sbGluZ01vbWVudHVt
Q2FsY3VsYXRvci5oICovOyB9OwogCQkwRjk5MDU5RDI2RjZCRTlBMDA1NEZCRTAgLyogU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjk5MDU5QjI2RjZCRTk0MDA1NEZCRTAgLyogU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yTWFjLmggKi87IH07CiAJCTBGOURBQTBGMUZEMUM2NkEwMDc5QzVCMiAv
KiBET01HQ091dHB1dENvbnN0cmFpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOURBQTBFMUZEMUM2NjQwMDc5QzVCMiAvKiBET01HQ091dHB1dENv
bnN0cmFpbnQuaCAqLzsgfTsKIAkJMEZBMjREN0ExNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNz
TGF5ZXJVcGRhdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkEyNEQ3ODE2MkRGOTE5MDBBM0Y0QzAgLyogR3JhcGhpY3NMYXllclVwZGF0ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjE4NCw2
ICs2MTg1LDggQEAKIAkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeXN0ZW1NZW1vcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDYxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNv
cmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJy
YXlDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVU
eXBlZEFycmF5Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjBF
MDA5QTI2RjkyRDdCMDBBQ0U5QzYgLyogU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYwRTAwOUIyNkY5MkQ3QjAwQUNFOUM2IC8qIFNjcm9sbEFuaW1hdGlvbk1vbWVu
dHVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJENTcwIC8q
IEZyYW1lSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFt
ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMUE1NEUwRjM5
MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVuZGVyU2VsZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DQUZpbHRlcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MTQxLDYgKzI4MTQ0LDggQEAKIAkJCQkw
RkE2MUIwQzI2RjQzMjEyMDAxQUFEQjYgLyogU2Nyb2xsQW5pbWF0aW9uLmggKi8sCiAJCQkJMEZD
NjkyQkMyNTdDMEY0MTAwOThFM0Y5IC8qIFNjcm9sbEFuaW1hdGlvbktpbmV0aWMuY3BwICovLAog
CQkJCTBGQzY5MkJBMjU3QzBGNDAwMDk4RTNGOSAvKiBTY3JvbGxBbmltYXRpb25LaW5ldGljLmgg
Ki8sCisJCQkJMEYwRTAwOUIyNkY5MkQ3QjAwQUNFOUM2IC8qIFNjcm9sbEFuaW1hdGlvbk1vbWVu
dHVtLmNwcCAqLywKKwkJCQkwRjBFMDA5QTI2RjkyRDdCMDBBQ0U5QzYgLyogU2Nyb2xsQW5pbWF0
aW9uTW9tZW50dW0uaCAqLywKIAkJCQkwRkM2OTJCRDI1N0MwRjQxMDA5OEUzRjkgLyogU2Nyb2xs
QW5pbWF0aW9uU21vb3RoLmNwcCAqLywKIAkJCQkwRkM2OTJCRTI1N0MwRjQyMDA5OEUzRjkgLyog
U2Nyb2xsQW5pbWF0aW9uU21vb3RoLmggKi8sCiAJCQkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUz
IC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLywKQEAgLTM0OTI3LDYgKzM0OTMyLDcgQEAKIAkJCQlC
QzhBRTM0RjEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVEOTI1QjY4MEY2NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxBbGlnbm1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQTYxQjBFMjZGNDMyMTMwMDFBQURCNiAvKiBTY3JvbGxBbmltYXRp
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMEUwMDlDMjZGOTJEODQwMEFDRTlDNiAvKiBTY3Jv
bGxBbmltYXRpb25Nb21lbnR1bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0EzQkY2N0UxMEQ5OUJB
RTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE3NzQ4
MDEzNzhCNzcyMDA5REE3NkEgLyogU2Nyb2xsQW5pbWF0b3JJT1MuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQUUxRkE3MTI5MzlEQjcwMDRDQjAyNiAvKiBTY3JvbGxBbmltYXRvck1hYy5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCmluZGV4
IGYxNjY0ZTA4ZjVmNzgwOGNiYmExMzdiMmY3OWE2ZDI0N2UyZmRiNjguLjIxMzdlZDRiMjkxNmY5
ZjVjYzI0MmUzMzI5YTFmYzgwN2E1NDcyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbEFuaW1hdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJTY3JvbGxUeXBl
cy5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25p
Y1RpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCw4ICszOSw4IEBAIGNsYXNz
IFNjcm9sbEFuaW1hdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2Nyb2xsQW5p
bWF0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbEFuaW1h
dGlvbkRpZFVwZGF0ZShTY3JvbGxBbmltYXRpb24mLCBjb25zdCBGbG9hdFBvaW50JiBjdXJyZW50
T2Zmc2V0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbEFuaW1hdGlvbkRpZEVuZChTY3Jv
bGxBbmltYXRpb24mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbEFuaW1hdGlvbkRpZFVw
ZGF0ZShTY3JvbGxBbmltYXRpb24mLCBjb25zdCBGbG9hdFBvaW50JiAvKiBjdXJyZW50T2Zmc2V0
ICovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQW5pbWF0aW9uRGlkRW5kKFNjcm9sbEFu
aW1hdGlvbiYpIHsgfQogICAgIHZpcnR1YWwgU2Nyb2xsRXh0ZW50cyBzY3JvbGxFeHRlbnRzRm9y
QW5pbWF0aW9uKFNjcm9sbEFuaW1hdGlvbiYpID0gMDsKIH07CiAKQEAgLTU2LDggKzU3LDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlU2Nyb2xsRXh0ZW50cygpIHsgfTsKICAgICAKLSAgICAvLyBGSVhNRTog
Tm8tb3AuIE5lZWQgdG8gdXNlIHRoaXMgaW5zdGVhZCBvZiBzdWJjbGFzc2VzIGhhdmluZyB0aW1l
cnMuCi0gICAgdmlydHVhbCB2b2lkIHNlcnZpY2VBbmltYXRpb24oKSB7IH07CisgICAgLy8gUmV0
dXJucyBjdXJyZW50IG9mZnNldC4KKyAgICB2aXJ0dWFsIEZsb2F0UG9pbnQgc2VydmljZUFuaW1h
dGlvbihNb25vdG9uaWNUaW1lKSB7IHJldHVybiB7IH07IH07CiAKIHByb3RlY3RlZDoKICAgICBT
Y3JvbGxBbmltYXRpb25DbGllbnQmIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiOTgzNWZj
ZDk0OWJjMWYxNjczMDI5ZTQ5MmUxYWU0MjZkNjViYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5jcHAKQEAgLTAsMCAr
MSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNj
cm9sbEFuaW1hdGlvbk1vbWVudHVtLmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVk
ZSAiU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvVGV4
dFN0cmVhbS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Njcm9sbEFuaW1hdGlvbk1vbWVu
dHVtOjpTY3JvbGxBbmltYXRpb25Nb21lbnR1bShTY3JvbGxBbmltYXRpb25DbGllbnQmIGNsaWVu
dCkKKyAgICA6IFNjcm9sbEFuaW1hdGlvbihjbGllbnQpCit7Cit9CisKK1Njcm9sbEFuaW1hdGlv
bk1vbWVudHVtOjp+U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0oKSA9IGRlZmF1bHQ7CisKK2Jvb2wg
U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnN0YXJ0QW5pbWF0ZWRTY3JvbGxXaXRoSW5pdGlhbFZl
bG9jaXR5KGNvbnN0IEZsb2F0UG9pbnQmIGluaXRpYWxPZmZzZXQsIGNvbnN0IEZsb2F0U2l6ZSYg
aW5pdGlhbFZlbG9jaXR5LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxEZWx0YSwgY29uc3QgV1RG
OjpGdW5jdGlvbjxGbG9hdFBvaW50KGNvbnN0IEZsb2F0UG9pbnQmKT4mIGRlc3RpbmF0aW9uTW9k
aWZpZXIpCit7CisgICAgYXV0byBleHRlbnRzID0gbV9jbGllbnQuc2Nyb2xsRXh0ZW50c0ZvckFu
aW1hdGlvbigqdGhpcyk7CisKKyAgICBtX21vbWVudHVtQ2FsY3VsYXRvciA9IFNjcm9sbGluZ01v
bWVudHVtQ2FsY3VsYXRvcjo6Y3JlYXRlKGV4dGVudHMsIGluaXRpYWxPZmZzZXQsIGluaXRpYWxE
ZWx0YSwgaW5pdGlhbFZlbG9jaXR5KTsKKyAgICBhdXRvIHByZWRpY3RlZFNjcm9sbE9mZnNldCA9
IG1fbW9tZW50dW1DYWxjdWxhdG9yLT5wcmVkaWN0ZWREZXN0aW5hdGlvbk9mZnNldCgpOworCisg
ICAgaWYgKGRlc3RpbmF0aW9uTW9kaWZpZXIpIHsKKyAgICAgICAgcHJlZGljdGVkU2Nyb2xsT2Zm
c2V0ID0gZGVzdGluYXRpb25Nb2RpZmllcihwcmVkaWN0ZWRTY3JvbGxPZmZzZXQpOworICAgICAg
ICBtX21vbWVudHVtQ2FsY3VsYXRvci0+c2V0UmV0YXJnZXRlZFNjcm9sbE9mZnNldChwcmVkaWN0
ZWRTY3JvbGxPZmZzZXQpOworICAgIH0KKworICAgIGlmIChwcmVkaWN0ZWRTY3JvbGxPZmZzZXQg
PT0gaW5pdGlhbE9mZnNldCkgeworICAgICAgICBtX21vbWVudHVtQ2FsY3VsYXRvciA9IG51bGxw
dHI7CisgICAgICAgIG1fYW5pbWF0aW9uQ29tcGxldGUgPSB0cnVlOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsK
KyAgICBtX2FuaW1hdGlvbkNvbXBsZXRlID0gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnJldGFyZ2V0QWN0aXZlQW5pbWF0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIG5ld0Rlc3RpbmF0aW9uKQoreworICAgIGlmIChtX21vbWVudHVtQ2Fs
Y3VsYXRvcikgeworICAgICAgICBtX21vbWVudHVtQ2FsY3VsYXRvci0+c2V0UmV0YXJnZXRlZFNj
cm9sbE9mZnNldChuZXdEZXN0aW5hdGlvbik7CisgICAgICAgIGF1dG8gbmV3RHVyYXRpb24gPSBt
X21vbWVudHVtQ2FsY3VsYXRvci0+YW5pbWF0aW9uRHVyYXRpb24oKTsKKyAgICAgICAgbV9hbmlt
YXRpb25Db21wbGV0ZSA9IG5ld0R1cmF0aW9uID4gMF9zOworICAgICAgICByZXR1cm4gIW1fYW5p
bWF0aW9uQ29tcGxldGU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBTY3Jv
bGxBbmltYXRpb25Nb21lbnR1bTo6c3RvcCgpCit7CisgICAgbV9tb21lbnR1bUNhbGN1bGF0b3Ig
PSBudWxscHRyOworICAgIG1fYW5pbWF0aW9uQ29tcGxldGUgPSB0cnVlOworICAgIG1fY2xpZW50
LnNjcm9sbEFuaW1hdGlvbkRpZEVuZCgqdGhpcyk7Cit9CisKK2Jvb2wgU2Nyb2xsQW5pbWF0aW9u
TW9tZW50dW06OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fYW5pbWF0aW9uQ29t
cGxldGU7Cit9CisKK0Zsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnNlcnZpY2VB
bmltYXRpb24oTW9ub3RvbmljVGltZSBjdXJyZW50VGltZSkKK3sKKyAgICBhdXRvIGVsYXBzZWRU
aW1lID0gY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZTsKKyAgICBtX2FuaW1hdGlvbkNvbXBsZXRl
ID0gZWxhcHNlZFRpbWUgPj0gbV9tb21lbnR1bUNhbGN1bGF0b3ItPmFuaW1hdGlvbkR1cmF0aW9u
KCk7CisgICAgYXV0byBuZXdPZmZzZXQgPSBtX21vbWVudHVtQ2FsY3VsYXRvci0+c2Nyb2xsT2Zm
c2V0QWZ0ZXJFbGFwc2VkVGltZShlbGFwc2VkVGltZSk7CisKKyAgICBtX2NsaWVudC5zY3JvbGxB
bmltYXRpb25EaWRVcGRhdGUoKnRoaXMsIG5ld09mZnNldCk7CisKKyAgICBpZiAobV9hbmltYXRp
b25Db21wbGV0ZSkKKyAgICAgICAgbV9jbGllbnQuc2Nyb2xsQW5pbWF0aW9uRGlkRW5kKCp0aGlz
KTsKKyAgICAKKyAgICByZXR1cm4gbmV3T2Zmc2V0OworfQorCit2b2lkIFNjcm9sbEFuaW1hdGlv
bk1vbWVudHVtOjp1cGRhdGVTY3JvbGxFeHRlbnRzKCkKK3sKKyAgICBhdXRvIGV4dGVudHMgPSBt
X2NsaWVudC5zY3JvbGxFeHRlbnRzRm9yQW5pbWF0aW9uKCp0aGlzKTsKKyAgICBhdXRvIHByZWRp
Y3RlZFNjcm9sbE9mZnNldCA9IG1fbW9tZW50dW1DYWxjdWxhdG9yLT5wcmVkaWN0ZWREZXN0aW5h
dGlvbk9mZnNldCgpOworICAgIGF1dG8gY29uc3RyYWluZWRPZmZzZXQgPSBwcmVkaWN0ZWRTY3Jv
bGxPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKGV4dGVudHMubWluaW11bVNjcm9sbE9mZnNldCgp
LCBleHRlbnRzLm1heGltdW1TY3JvbGxPZmZzZXQoKSk7CisgICAgaWYgKGNvbnN0cmFpbmVkT2Zm
c2V0ICE9IHByZWRpY3RlZFNjcm9sbE9mZnNldCkgeworICAgICAgICByZXRhcmdldEFjdGl2ZUFu
aW1hdGlvbihjb25zdHJhaW5lZE9mZnNldCk7CisgICAgICAgIGlmIChtX2FuaW1hdGlvbkNvbXBs
ZXRlKQorICAgICAgICAgICAgbV9jbGllbnQuc2Nyb2xsQW5pbWF0aW9uRGlkRW5kKCp0aGlzKTsK
KyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlNmE2NjE2
ZmNkOTU2NTJlODM5YjU3YzlmZTA2NGJkYzFjN2IzZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21lbnR1bS5oCkBAIC0wLDAgKzEs
NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTY3JvbGxBbmlt
YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxpbmdNb21lbnR1
bUNhbGN1bGF0b3I7CisKK2NsYXNzIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtIGZpbmFsIDogcHVi
bGljIFNjcm9sbEFuaW1hdGlvbiB7CitwdWJsaWM6CisgICAgU2Nyb2xsQW5pbWF0aW9uTW9tZW50
dW0oU2Nyb2xsQW5pbWF0aW9uQ2xpZW50Jik7CisgICAgdmlydHVhbCB+U2Nyb2xsQW5pbWF0aW9u
TW9tZW50dW0oKTsKKworICAgIGJvb2wgc3RhcnRBbmltYXRlZFNjcm9sbFdpdGhJbml0aWFsVmVs
b2NpdHkoY29uc3QgRmxvYXRQb2ludCYgaW5pdGlhbE9mZnNldCwgY29uc3QgRmxvYXRTaXplJiBp
bml0aWFsVmVsb2NpdHksIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbERlbHRhLCBjb25zdCBXVEY6
OkZ1bmN0aW9uPEZsb2F0UG9pbnQoY29uc3QgRmxvYXRQb2ludCYpPiYgZGVzdGluYXRpb25Nb2Rp
Zmllcik7CisKKyAgICBib29sIHJldGFyZ2V0QWN0aXZlQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9p
bnQmIG5ld0Rlc3RpbmF0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKyAgICBi
b29sIGlzQWN0aXZlKCkgY29uc3QgZmluYWw7CisgICAgRmxvYXRQb2ludCBzZXJ2aWNlQW5pbWF0
aW9uKE1vbm90b25pY1RpbWUpIGZpbmFsOworICAgIHZvaWQgdXBkYXRlU2Nyb2xsRXh0ZW50cygp
IGZpbmFsOworCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdNb21lbnR1
bUNhbGN1bGF0b3I+IG1fbW9tZW50dW1DYWxjdWxhdG9yOworICAgIAorICAgIE1vbm90b25pY1Rp
bWUgbV9zdGFydFRpbWU7CisgICAgYm9vbCBtX2FuaW1hdGlvbkNvbXBsZXRlIHsgZmFsc2UgfTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCmluZGV4IGZkNWIzMDUzMmExZmU0Y2ViNjNm
MTdlNTY3MjcxMDUzOTUwNDRkODkuLjY5N2VjMWNlZTFlOTI3Yzk4YjU5ZGJiN2ZkMTYzMTg4NTYx
MWNkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlv
blNtb290aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9u
U21vb3RoLmNwcApAQCAtMzksNyArMzksOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0
YXRpYyBjb25zdCBkb3VibGUgZnJhbWVSYXRlID0gNjA7CiBzdGF0aWMgY29uc3QgZmxvYXQgYW5p
bWF0aW9uU3BlZWQgeyAxMDAwLjBmIH07CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgbWluaW11
bVRpbWVySW50ZXJ2YWwgeyAxX21zIH07CiBzdGF0aWMgY29uc3QgU2Vjb25kcyBtYXhBbmltYXRp
b25EdXJhdGlvbiB7IDIwMF9tcyB9OwogCiBTY3JvbGxBbmltYXRpb25TbW9vdGg6OlNjcm9sbEFu
aW1hdGlvblNtb290aChTY3JvbGxBbmltYXRpb25DbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmNwcAppbmRleCA2
OTAzN2Q2M2ZhMzg0Nzc0NWIzNjRiZjYxNDQ5YjI3NjcxYzA4YTU3Li4zYTJkNjdiYjc2YjI0OTEz
YTFmMmJlNzBkZmQ2NDIzNDMyN2FkYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuY3BwCkBAIC0yNiwxMSArMjYsMTQgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIgog
CisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaCIKICNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6flNjcm9sbFNuYXBBbmltYXRv
clN0YXRlKCkgPSBkZWZhdWx0OworCiBib29sIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjp0cmFu
c2l0aW9uVG9TbmFwQW5pbWF0aW9uU3RhdGUoY29uc3QgU2Nyb2xsRXh0ZW50cyYgc2Nyb2xsRXh0
ZW50cywgZmxvYXQgcGFnZVNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0KQog
ewogICAgIHJldHVybiBzZXR1cEFuaW1hdGlvbkZvclN0YXRlKFNjcm9sbFNuYXBTdGF0ZTo6U25h
cHBpbmcsIHNjcm9sbEV4dGVudHMsIHBhZ2VTY2FsZSwgaW5pdGlhbE9mZnNldCwgeyB9LCB7IH0p
OwpAQCAtNDcsMjEgKzUwLDI2IEBAIGJvb2wgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnNldHVw
QW5pbWF0aW9uRm9yU3RhdGUoU2Nyb2xsU25hcFN0YXRlIHN0YXRlLCBjb25zCiAgICAgaWYgKG1f
Y3VycmVudFN0YXRlID09IHN0YXRlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX21v
bWVudHVtQ2FsY3VsYXRvciA9IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6Y3JlYXRlKHNj
cm9sbEV4dGVudHMsIGluaXRpYWxPZmZzZXQsIGluaXRpYWxEZWx0YSwgaW5pdGlhbFZlbG9jaXR5
KTsKLSAgICBGbG9hdFBvaW50IHByZWRpY3RlZFNjcm9sbFRhcmdldCB7IG1fbW9tZW50dW1DYWxj
dWxhdG9yLT5wcmVkaWN0ZWREZXN0aW5hdGlvbk9mZnNldCgpIH07CisgICAgbV9zY3JvbGxFeHRl
bnRzID0gc2Nyb2xsRXh0ZW50czsKKworICAgIGlmIChtX21vbWVudHVtU2Nyb2xsQW5pbWF0aW9u
KQorICAgICAgICBtX21vbWVudHVtU2Nyb2xsQW5pbWF0aW9uLT5zdG9wKCk7CiAKLSAgICBmbG9h
dCB0YXJnZXRPZmZzZXRYLCB0YXJnZXRPZmZzZXRZOwotICAgIHN0ZDo6dGllKHRhcmdldE9mZnNl
dFgsIG1fYWN0aXZlU25hcEluZGV4WCkgPSB0YXJnZXRPZmZzZXRGb3JTdGFydE9mZnNldChTY3Jv
bGxFdmVudEF4aXM6Okhvcml6b250YWwsIHNjcm9sbEV4dGVudHMsIGluaXRpYWxPZmZzZXQueCgp
LCBwcmVkaWN0ZWRTY3JvbGxUYXJnZXQsIHBhZ2VTY2FsZSwgaW5pdGlhbERlbHRhLndpZHRoKCkp
OwotICAgIHN0ZDo6dGllKHRhcmdldE9mZnNldFksIG1fYWN0aXZlU25hcEluZGV4WSkgPSB0YXJn
ZXRPZmZzZXRGb3JTdGFydE9mZnNldChTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBzY3JvbGxF
eHRlbnRzLCBpbml0aWFsT2Zmc2V0LnkoKSwgcHJlZGljdGVkU2Nyb2xsVGFyZ2V0LCBwYWdlU2Nh
bGUsIGluaXRpYWxEZWx0YS5oZWlnaHQoKSk7Ci0gICAgYXV0byB0YXJnZXRPZmZzZXQgPSBGbG9h
dFBvaW50IHsgdGFyZ2V0T2Zmc2V0WCwgdGFyZ2V0T2Zmc2V0WSB9OwotICAgIG1fbW9tZW50dW1D
YWxjdWxhdG9yLT5zZXRSZXRhcmdldGVkU2Nyb2xsT2Zmc2V0KHRhcmdldE9mZnNldCk7CisgICAg
bV9tb21lbnR1bVNjcm9sbEFuaW1hdGlvbiA9IFdURjo6bWFrZVVuaXF1ZTxTY3JvbGxBbmltYXRp
b25Nb21lbnR1bT4oKnRoaXMpOworICAgIGJvb2wgYW5pbWF0aW5nID0gbV9tb21lbnR1bVNjcm9s
bEFuaW1hdGlvbi0+c3RhcnRBbmltYXRlZFNjcm9sbFdpdGhJbml0aWFsVmVsb2NpdHkoaW5pdGlh
bE9mZnNldCwgaW5pdGlhbFZlbG9jaXR5LCBpbml0aWFsRGVsdGEsIFsmXShjb25zdCBGbG9hdFBv
aW50JiB0YXJnZXRPZmZzZXQpIHsKKyAgICAgICAgZmxvYXQgdGFyZ2V0T2Zmc2V0WCwgdGFyZ2V0
T2Zmc2V0WTsKKyAgICAgICAgc3RkOjp0aWUodGFyZ2V0T2Zmc2V0WCwgbV9hY3RpdmVTbmFwSW5k
ZXhYKSA9IHRhcmdldE9mZnNldEZvclN0YXJ0T2Zmc2V0KFNjcm9sbEV2ZW50QXhpczo6SG9yaXpv
bnRhbCwgc2Nyb2xsRXh0ZW50cywgaW5pdGlhbE9mZnNldC54KCksIHRhcmdldE9mZnNldCwgcGFn
ZVNjYWxlLCBpbml0aWFsRGVsdGEud2lkdGgoKSk7CisgICAgICAgIHN0ZDo6dGllKHRhcmdldE9m
ZnNldFksIG1fYWN0aXZlU25hcEluZGV4WSkgPSB0YXJnZXRPZmZzZXRGb3JTdGFydE9mZnNldChT
Y3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBzY3JvbGxFeHRlbnRzLCBpbml0aWFsT2Zmc2V0Lnko
KSwgdGFyZ2V0T2Zmc2V0LCBwYWdlU2NhbGUsIGluaXRpYWxEZWx0YS5oZWlnaHQoKSk7CiAKLSAg
ICBpZiAodGFyZ2V0T2Zmc2V0ID09IGluaXRpYWxPZmZzZXQpCisgICAgICAgIHJldHVybiBGbG9h
dFBvaW50IHsgdGFyZ2V0T2Zmc2V0WCwgdGFyZ2V0T2Zmc2V0WSB9OworICAgIH0pOworCisgICAg
aWYgKCFhbmltYXRpbmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fc3RhcnRUaW1l
ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgbV9jdXJyZW50U3RhdGUgPSBzdGF0ZTsKLSAg
ICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gYW5pbWF0aW5nOwogfQogCiB2b2lkIFNjcm9sbFNu
YXBBbmltYXRvclN0YXRlOjp0cmFuc2l0aW9uVG9Vc2VySW50ZXJhY3Rpb25TdGF0ZSgpCkBAIC04
MCwyMSArODgsMjIgQEAgdm9pZCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6dGVhcmRvd25Bbmlt
YXRpb25Gb3JTdGF0ZShTY3JvbGxTbmFwU3RhdGUgc3RhdGUpCiAgICAgaWYgKG1fY3VycmVudFN0
YXRlID09IHN0YXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX21vbWVudHVtQ2FsY3VsYXRv
ciA9IG51bGxwdHI7Ci0gICAgbV9zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lKCk7CisgICAgbV9t
b21lbnR1bVNjcm9sbEFuaW1hdGlvbiA9IG51bGxwdHI7CisgICAgbV9zdGFydFRpbWUgPSB7IH07
CiAgICAgbV9jdXJyZW50U3RhdGUgPSBzdGF0ZTsKIH0KIAogRmxvYXRQb2ludCBTY3JvbGxTbmFw
QW5pbWF0b3JTdGF0ZTo6Y3VycmVudEFuaW1hdGVkU2Nyb2xsT2Zmc2V0KE1vbm90b25pY1RpbWUg
Y3VycmVudFRpbWUsIGJvb2wmIGlzQW5pbWF0aW9uQ29tcGxldGUpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX21vbWVudHVtQ2FsY3VsYXRvcikgeworICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEFuaW1h
dGlvbikgewogICAgICAgICBpc0FuaW1hdGlvbkNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgcmV0
dXJuIHsgfTsKICAgICB9CiAKLSAgICBTZWNvbmRzIGVsYXBzZWRUaW1lID0gY3VycmVudFRpbWUg
LSBtX3N0YXJ0VGltZTsKLSAgICBpc0FuaW1hdGlvbkNvbXBsZXRlID0gZWxhcHNlZFRpbWUgPj0g
bV9tb21lbnR1bUNhbGN1bGF0b3ItPmFuaW1hdGlvbkR1cmF0aW9uKCk7Ci0gICAgcmV0dXJuIG1f
bW9tZW50dW1DYWxjdWxhdG9yLT5zY3JvbGxPZmZzZXRBZnRlckVsYXBzZWRUaW1lKGVsYXBzZWRU
aW1lKTsKKyAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBtX21vbWVudHVtU2Nyb2xsQW5pbWF0aW9u
LT5zZXJ2aWNlQW5pbWF0aW9uKGN1cnJlbnRUaW1lKTsKKyAgICBpc0FuaW1hdGlvbkNvbXBsZXRl
ID0gIW1fbW9tZW50dW1TY3JvbGxBbmltYXRpb24tPmlzQWN0aXZlKCk7CisKKyAgICByZXR1cm4g
Y3VycmVudE9mZnNldDsKIH0KIAogc3RkOjpwYWlyPGZsb2F0LCBzdGQ6Om9wdGlvbmFsPHVuc2ln
bmVkPj4gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnRhcmdldE9mZnNldEZvclN0YXJ0T2Zmc2V0
KFNjcm9sbEV2ZW50QXhpcyBheGlzLCBjb25zdCBTY3JvbGxFeHRlbnRzJiBzY3JvbGxFeHRlbnRz
LCBmbG9hdCBzdGFydE9mZnNldCwgRmxvYXRQb2ludCBwcmVkaWN0ZWRPZmZzZXQsIGZsb2F0IHBh
Z2VTY2FsZSwgZmxvYXQgaW5pdGlhbERlbHRhKSBjb25zdApAQCAtMTExLDYgKzEyMCwxMSBAQCBz
dGQ6OnBhaXI8ZmxvYXQsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+PiBTY3JvbGxTbmFwQW5pbWF0
b3JTdGF0ZTo6dGFyZ2V0T2Zmc2V0RgogICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihwYWdlU2Nh
bGUgKiBjbGFtcFRvPGZsb2F0PihmbG9hdCB7IHRhcmdldE9mZnNldCB9LCBtaW5TY3JvbGxPZmZz
ZXQsIG1heFNjcm9sbE9mZnNldCksIHNuYXBJbmRleCk7CiB9CiAKK1Njcm9sbEV4dGVudHMgU2Ny
b2xsU25hcEFuaW1hdG9yU3RhdGU6OnNjcm9sbEV4dGVudHNGb3JBbmltYXRpb24oU2Nyb2xsQW5p
bWF0aW9uJikKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxFeHRlbnRzOworfQorCiBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZSYgc3RhdGUpCiB7CiAgICAgdHMgPDwgIlNjcm9sbFNuYXBBbmltYXRvclN0YXRlIjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oCmluZGV4
IGU5NTVlM2ViMzU0ODBkNDMzNjZjMjU4NDMzM2FlMWNjMTIyOGI3ZjEuLmU4MzMwNGJkYWU4YTZm
MDRkNTNhNmMxN2I1YTk4ZWI3NTUxN2Y1NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuaApAQCAtMjksOSArMjksOSBAQAogI2luY2x1
ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaCIK
ICNpbmNsdWRlICJTY3JvbGxTbmFwT2Zmc2V0c0luZm8uaCIKICNpbmNsdWRlICJTY3JvbGxUeXBl
cy5oIgotI2luY2x1ZGUgIlNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oIgogI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNDcsMTEgKzQ3LDEx
IEBAIGVudW0gY2xhc3MgU2Nyb2xsU25hcFN0YXRlIHsKICAgICBVc2VySW50ZXJhY3Rpb24KIH07
CiAKLXN0cnVjdCBTY3JvbGxFeHRlbnRzOwotCi1jbGFzcyBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZSB7CitjbGFzcyBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSA6IHB1YmxpYyBTY3JvbGxBbmltYXRp
b25DbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIHZp
cnR1YWwgflNjcm9sbFNuYXBBbmltYXRvclN0YXRlKCk7CisKICAgICBjb25zdCBWZWN0b3I8U25h
cE9mZnNldDxMYXlvdXRVbml0Pj4mIHNuYXBPZmZzZXRzRm9yQXhpcyhTY3JvbGxFdmVudEF4aXMg
YXhpcykgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBheGlzID09IFNjcm9sbEV2ZW50QXhp
czo6SG9yaXpvbnRhbCA/IG1fc25hcE9mZnNldHNJbmZvLmhvcml6b250YWxTbmFwT2Zmc2V0cyA6
IG1fc25hcE9mZnNldHNJbmZvLnZlcnRpY2FsU25hcE9mZnNldHM7CkBAIC05MCwxNSArOTAsMjAg
QEAgcHJpdmF0ZToKICAgICBib29sIHNldHVwQW5pbWF0aW9uRm9yU3RhdGUoU2Nyb2xsU25hcFN0
YXRlLCBjb25zdCBTY3JvbGxFeHRlbnRzJiwgZmxvYXQgcGFnZVNjYWxlLCBjb25zdCBGbG9hdFBv
aW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUmIGluaXRpYWxWZWxvY2l0eSwgY29u
c3QgRmxvYXRTaXplJiBpbml0aWFsRGVsdGEpOwogICAgIHZvaWQgdGVhcmRvd25BbmltYXRpb25G
b3JTdGF0ZShTY3JvbGxTbmFwU3RhdGUpOwogCisgICAgLy8gU2Nyb2xsQW5pbWF0aW9uQ2xpZW50
LgorICAgIFNjcm9sbEV4dGVudHMgc2Nyb2xsRXh0ZW50c0ZvckFuaW1hdGlvbihTY3JvbGxBbmlt
YXRpb24mKSBmaW5hbDsKKwogICAgIFNjcm9sbFNuYXBTdGF0ZSBtX2N1cnJlbnRTdGF0ZSB7IFNj
cm9sbFNuYXBTdGF0ZTo6VXNlckludGVyYWN0aW9uIH07CiAKICAgICBMYXlvdXRTY3JvbGxTbmFw
T2Zmc2V0c0luZm8gbV9zbmFwT2Zmc2V0c0luZm87CisgICAgCisgICAgU2Nyb2xsRXh0ZW50cyBt
X3Njcm9sbEV4dGVudHM7CiAKICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBtX2FjdGl2ZVNu
YXBJbmRleFg7CiAgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbV9hY3RpdmVTbmFwSW5kZXhZ
OwogCiAgICAgTW9ub3RvbmljVGltZSBtX3N0YXJ0VGltZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yPiBtX21vbWVudHVtQ2FsY3VsYXRvcjsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0+IG1fbW9tZW50dW1TY3JvbGxB
bmltYXRpb247CiB9OwogCiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgY29uc3QgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmNwcAppbmRleCAy
NzAzMGM5MTgzMDIzZDI3OGQzZDEyNGFlZTgxOGJkNmJkNmRiMzg4Li43NDNjZjQ2ZjUzMDMyOGQx
OWI4NWU3YjJkMWZkNDBmMmY4N2RkZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBA
CiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRl
c3RNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLmgKaW5k
ZXggOWRkYjZiYjkyY2E3MmM0ZWMwMTZhMDZjOWMxNWZkOTVjZjMyNzJmNS4uMDM2MDJkZWVkMjkx
ZGI5NjdkMDdhZTc1YmMwMWZlZjQ3ZTc2OTY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlci5oCkBAIC00MSw2ICs0MSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEtleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3I7CiBj
bGFzcyBMYXlvdXRTaXplOwogY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OworY2xhc3MgU2Nyb2xs
U25hcEFuaW1hdG9yU3RhdGU7CiBjbGFzcyBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjsKIGNs
YXNzIFNjcm9sbGFibGVBcmVhOwogY2xhc3MgV2hlZWxFdmVudFRlc3RNb25pdG9yOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438752</attachid>
            <date>2021-09-20 16:36:44 -0700</date>
            <delta_ts>2021-09-29 07:40:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230506-20210920163643.patch</filename>
            <type>text/plain</type>
            <size>28371</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM4NGMwMmY2ZmJjY2Ni
YWYzNDlkYzdhZmYzYzM0MDhhODY0NTM0Zi4uMGNmODJiYTYxZTNhYTlkYjYwNjFjMTU4N2FmNGMx
MDBhNDcyYjAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTA5LTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdyYXAgU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yIGluIGEgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0gd2hlbiB1
c2VkIGZvciBzY3JvbGwgc25hcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMwNTA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIGxvbmctdGVybSBnb2FsIGlzIHRvIGhhdmUgYWxsIHNjcm9sbCBhbmlt
YXRpb25zIHJ1biB2aWEgU2Nyb2xsQW5pbWF0aW9uIHN1YmNsYXNzZXMsCisgICAgICAgIGFuZCBm
b3IgdGhlcmUgdG8gYmUgYSBjbGFzcyAoU2Nyb2xsQW5pbWF0b3Igb3IgU2Nyb2xsaW5nRWZmZWN0
c0NvbnRyb2xsZXIpIHRoYXQgaGFzCisgICAgICAgIGEgbWVtYmVyIHZhcmlhYmxlIGZvciB0aGUg
c2luZ2xlIGFjdGl2ZSBzY3JvbGwgYW5pbWF0aW9uLCBmb3IgdGhlcmUgY2FuIGJlIG9ubHkgb25l
CisgICAgICAgIGF0IGEgdGltZS4KKworICAgICAgICBBcyBhIHN0ZXAgdG93YXJkcyB0aGF0IGdv
YWwsIG1ha2UgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0gYW5kIGhhdmUgaXQgd3JhcCB0aGUgCisg
ICAgICAgIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci4gU2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGUgdGhlbiBvd25zIGEgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uCisKKyAgICAgICAgT3RoZXIg
U2Nyb2xsQW5pbWF0aW9ucyBhcmUgcnVubmluZyB0aGVpciBvd24gdGltZXJzICh3aGljaCBzaG91
bGQgZ28gYXdheSBpbiBmdXR1cmUpLAorICAgICAgICBidXQgZm9yIG5vdyBTY3JvbGxBbmltYXRp
b25Nb21lbnR1bSBpcyBkcml2ZW4gIm1hbnVhbGx5IiBieSBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZS4KKyAgICAgICAgRmFjaWxpdGF0ZSB0aGlzIGJ5IGhhdmluZyBTY3JvbGxBbmltYXRpb246OnNl
cnZpY2VBbmltYXRpb24oKSByZXR1cm4gdGhlIGN1cnJlbnQgb2Zmc2V0LgorCisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25DbGllbnQ6OnNjcm9s
bEFuaW1hdGlvbkRpZFVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25D
bGllbnQ6OnNjcm9sbEFuaW1hdGlvbkRpZEVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRpb246OnNlcnZpY2VBbmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFu
aW1hdGlvbk1vbWVudHVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRpb25Nb21lbnR1bTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0pOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnN0YXJ0QW5pbWF0ZWRTY3JvbGxXaXRoSW5pdGlh
bFZlbG9jaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdGlvbk1vbWVudHVtOjpy
ZXRhcmdldEFjdGl2ZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRp
b25Nb21lbnR1bTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRpb25Nb21l
bnR1bTo6aXNBY3RpdmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0aW9u
TW9tZW50dW06OnNlcnZpY2VBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0aW9uTW9tZW50dW06OnVwZGF0ZVNjcm9sbEV4dGVudHMpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbEFuaW1hdGlvblNtb290aC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGU6OnNldHVwQW5pbWF0aW9uRm9yU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsU25h
cEFuaW1hdG9yU3RhdGU6OnRlYXJkb3duQW5pbWF0aW9uRm9yU3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OmN1cnJlbnRBbmltYXRlZFNjcm9sbE9mZnNl
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6c2Ny
b2xsRXh0ZW50c0ZvckFuaW1hdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsU25hcEFu
aW1hdG9yU3RhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJv
bGxlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIubW06
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhdGVsZXNz
U25hcFRyYW5zaXRpb25UaW1lckZpcmVkKToKKwogMjAyMS0wOS0yMCAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0
ZSBzaG91bGQgYmUgZXhwbGljaXQgYWJvdXQgd2hlbiBpdCBzdGFydHMgYW5pbWF0aW9ucwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKaW5kZXggZjQxMTMzNGQ2YjcxNDczNzA1NzA2Y2UwNWY0ZGM2MTA0ODdjYTc3
ZS4uZmZjOTEyNTNmZmIzY2VmNTUxZjYxNjBmNmJhNDNhMWI0MGRlZTdiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCkBAIC0xMTMyLDYgKzExMzIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgcGxhdGZvcm0vU1NMS2V5R2VuZXJhdG9yLmgKICAgICBwbGF0Zm9ybS9T
Y3JlZW5Qcm9wZXJ0aWVzLmgKICAgICBwbGF0Zm9ybS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oCisgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaAogICAgIHBs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKICAgICBwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCiAgICAg
cGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0xMTM5LDcgKzExNDAsNiBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vU2Nyb2xsYmFyLmgKICAgICBw
bGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCiAgICAgcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWVDb21w
b3NpdGUuaAotICAgIHBsYXRmb3JtL1Njcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oCiAgICAg
cGxhdGZvcm0vU2VhcmNoUG9wdXBNZW51LmgKICAgICBwbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZv
cm1EYXRhQ3VlLmgKICAgICBwbGF0Zm9ybS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFsdWUu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCBkODBiZDMyY2U3MGQ2ZmU2ZjE1Yjk5YTI5ZWVlODUyNTk3NmRi
YTZhLi4yMzUyZTkzZTczN2Q1NzIyMmEwNTZiYmNmMjY1MjU3NzJmN2E3ZjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTgyMiw2ICsxODIyLDcgQEAgcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVy
LmNwcAogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAogcGxhdGZvcm0vU1NM
S2V5R2VuZXJhdG9yLmNwcAogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAKK3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcAogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
aW9uU21vb3RoLmNwcAogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCiBwbGF0Zm9ybS9TY3Jv
bGxpbmdFZmZlY3RzQ29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3MGIwNDA5YjNlZjE2ZmEwYWQ4ZmY1Yzhm
ZmM1YmFhNTNjOTYxMDNhLi5jZGZjZTRkYTYyMDYzYWVmNjFmZDVhM2YxNGRiMzRjZjM1Y2I5MDc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yOTAsNiArMjkwLDcgQEAKIAkJMEYwM0MwNzQxODg0Njk1RTAwQTVGOENBIC8qIFN5
c3RlbU1lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oICovOyB9OwogCQkw
RjAzQzA3NTE4ODQ4MDU1MDBBNUY4Q0EgLyogSW5zcGVjdG9yT3ZlcmxheS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MjJENEExNUI0NzhCMjAwOUI3
Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjA5OUQwOTE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5
cGVkQXJyYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlD
b250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMEYwRTAwOUMyNkY5MkQ4NDAwQUNFOUM2IC8qIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjBFMDA5
QTI2RjkyRDdCMDBBQ0U5QzYgLyogU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjExNzgxODIyRTNDNDdG
MDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVu
dGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEYxMUE1NEYwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTFBNTRFMEYzOTIz
MzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxMzE2M0UxNkVEMENDODAwMzVDQzA0IC8q
IFBsYXRmb3JtQ0FGaWx0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzUw
LDcgKzM1MSw3IEBACiAJCTBGOTRCNjUyMjIwOTE1MDYwMDE1NzAxNCAvKiBTY3JvbGxpbmdTdGF0
ZVBvc2l0aW9uZWROb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjk0QjY1MTIyMDkxNEZGMDAxNTcwMTQgLyogU2Nyb2xsaW5nU3RhdGVQb3NpdGlv
bmVkTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGOTRCNjU1MjIwOTMxRTQwMDE1NzAxNCAvKiBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTRC
NjUzMjIwOTE1NkMwMDE1NzAxNCAvKiBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjk0RjM3RTIz
NjYxNjI2MDAzQUE1QzcgLyogU3R5bGVSdWxlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5NEYzN0MyMzY2MTEzMTAwM0FBNUM3IC8qIFN0eWxl
UnVsZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQkwRjk5MDU5QTI2RjZCRTg1MDA1NEZCRTAgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk5
MDU5OTI2RjZCRTdGMDA1NEZCRTAgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY5OTA1OUEy
NkY2QkU4NTAwNTRGQkUwIC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5OTA1OTkyNkY2QkU3RjAw
NTRGQkUwIC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oICovOyB9OwogCQkwRjk5MDU5
RDI2RjZCRTlBMDA1NEZCRTAgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk5MDU5QjI2RjZC
RTk0MDA1NEZCRTAgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggKi87IH07CiAJ
CTBGOURBQTBGMUZEMUM2NkEwMDc5QzVCMiAvKiBET01HQ091dHB1dENvbnN0cmFpbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOURBQTBFMUZEMUM2
NjQwMDc5QzVCMiAvKiBET01HQ091dHB1dENvbnN0cmFpbnQuaCAqLzsgfTsKIAkJMEZBMjREN0Ex
NjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkEyNEQ3ODE2MkRGOTE5MDBBM0Y0QzAg
LyogR3JhcGhpY3NMYXllclVwZGF0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNjE4NCw2ICs2MTg1LDggQEAKIAkJMEYwM0MwNzMxODg0Njk1
RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTeXN0ZW1NZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlE
MDYxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRy
b2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA5OUQwNzE3Qjk2OEEx
MDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRjBFMDA5QTI2RjkyRDdCMDBBQ0U5QzYgLyogU2Nyb2xs
QW5pbWF0aW9uTW9tZW50dW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQW5pbWF0aW9uTW9tZW50
dW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYwRTAwOUIyNkY5MkQ3QjAwQUNF
OUM2IC8qIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
cm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYxMTc4MTYyMkUzQzQ3RTAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYxMUE1NEUwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlv
bkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU2VsZWN0aW9u
SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjEzMTYzRDE2RUQwQ0M4MDAz
NUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGxhdGZvcm1DQUZpbHRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTI4MTQxLDYgKzI4MTQ0LDggQEAKIAkJCQkwRkE2MUIwQzI2RjQzMjEyMDAxQUFEQjYgLyogU2Ny
b2xsQW5pbWF0aW9uLmggKi8sCiAJCQkJMEZDNjkyQkMyNTdDMEY0MTAwOThFM0Y5IC8qIFNjcm9s
bEFuaW1hdGlvbktpbmV0aWMuY3BwICovLAogCQkJCTBGQzY5MkJBMjU3QzBGNDAwMDk4RTNGOSAv
KiBTY3JvbGxBbmltYXRpb25LaW5ldGljLmggKi8sCisJCQkJMEYwRTAwOUIyNkY5MkQ3QjAwQUNF
OUM2IC8qIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtLmNwcCAqLywKKwkJCQkwRjBFMDA5QTI2Rjky
RDdCMDBBQ0U5QzYgLyogU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaCAqLywKIAkJCQkwRkM2OTJC
RDI1N0MwRjQxMDA5OEUzRjkgLyogU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCAqLywKIAkJCQkw
RkM2OTJCRTI1N0MwRjQyMDA5OEUzRjkgLyogU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmggKi8sCiAJ
CQkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLywKQEAg
LTM0OTI3LDYgKzM0OTMyLDcgQEAKIAkJCQlCQzhBRTM0RjEyRUEwOTZBMDBFQjNBRTYgLyogU2Ny
b2xsYWJsZUFyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTVEOTI1QjY4MEY2NEQ0REQwMEI4NDdG
MCAvKiBTY3JvbGxBbGlnbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQTYxQjBFMjZGNDMy
MTMwMDFBQURCNiAvKiBTY3JvbGxBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMEUw
MDlDMjZGOTJEODQwMEFDRTlDNiAvKiBTY3JvbGxBbmltYXRpb25Nb21lbnR1bS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0EzQkY2N0UxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjE3NzQ4MDEzNzhCNzcyMDA5REE3NkEgLyogU2Nyb2xsQW5p
bWF0b3JJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQUUxRkE3MTI5MzlEQjcwMDRDQjAyNiAv
KiBTY3JvbGxBbmltYXRvck1hYy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdGlvbi5oCmluZGV4IGYxNjY0ZTA4ZjVmNzgwOGNiYmExMzdiMmY3OWE2
ZDI0N2UyZmRiNjguLjIxMzdlZDRiMjkxNmY5ZjVjYzI0MmUzMzI5YTFmYzgwN2E1NDcyM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvbi5oCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0zOCw4ICszOSw4IEBAIGNsYXNzIFNjcm9sbEFuaW1hdGlvbkNsaWVudCB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+U2Nyb2xsQW5pbWF0aW9uQ2xpZW50KCkgPSBkZWZhdWx0OwogCi0g
ICAgdmlydHVhbCB2b2lkIHNjcm9sbEFuaW1hdGlvbkRpZFVwZGF0ZShTY3JvbGxBbmltYXRpb24m
LCBjb25zdCBGbG9hdFBvaW50JiBjdXJyZW50T2Zmc2V0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHNjcm9sbEFuaW1hdGlvbkRpZEVuZChTY3JvbGxBbmltYXRpb24mKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNjcm9sbEFuaW1hdGlvbkRpZFVwZGF0ZShTY3JvbGxBbmltYXRpb24mLCBjb25zdCBG
bG9hdFBvaW50JiAvKiBjdXJyZW50T2Zmc2V0ICovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsQW5pbWF0aW9uRGlkRW5kKFNjcm9sbEFuaW1hdGlvbiYpIHsgfQogICAgIHZpcnR1YWwgU2Ny
b2xsRXh0ZW50cyBzY3JvbGxFeHRlbnRzRm9yQW5pbWF0aW9uKFNjcm9sbEFuaW1hdGlvbiYpID0g
MDsKIH07CiAKQEAgLTU2LDggKzU3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2Nyb2xsRXh0ZW50cygp
IHsgfTsKICAgICAKLSAgICAvLyBGSVhNRTogTm8tb3AuIE5lZWQgdG8gdXNlIHRoaXMgaW5zdGVh
ZCBvZiBzdWJjbGFzc2VzIGhhdmluZyB0aW1lcnMuCi0gICAgdmlydHVhbCB2b2lkIHNlcnZpY2VB
bmltYXRpb24oKSB7IH07CisgICAgLy8gUmV0dXJucyBjdXJyZW50IG9mZnNldC4KKyAgICB2aXJ0
dWFsIEZsb2F0UG9pbnQgc2VydmljZUFuaW1hdGlvbihNb25vdG9uaWNUaW1lKSB7IHJldHVybiB7
IH07IH07CiAKIHByb3RlY3RlZDoKICAgICBTY3JvbGxBbmltYXRpb25DbGllbnQmIG1fY2xpZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9t
ZW50dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uTW9tZW50
dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBiOTgzNWZjZDk0OWJjMWYxNjczMDI5ZTQ5MmUxYWU0MjZkNjVi
YjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRpb25Nb21lbnR1bS5jcHAKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEFuaW1hdGlvbk1vbWVudHVtLmgiCisKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9y
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtOjpTY3JvbGxBbmltYXRpb25Nb21lbnR1bShT
Y3JvbGxBbmltYXRpb25DbGllbnQmIGNsaWVudCkKKyAgICA6IFNjcm9sbEFuaW1hdGlvbihjbGll
bnQpCit7Cit9CisKK1Njcm9sbEFuaW1hdGlvbk1vbWVudHVtOjp+U2Nyb2xsQW5pbWF0aW9uTW9t
ZW50dW0oKSA9IGRlZmF1bHQ7CisKK2Jvb2wgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OnN0YXJ0
QW5pbWF0ZWRTY3JvbGxXaXRoSW5pdGlhbFZlbG9jaXR5KGNvbnN0IEZsb2F0UG9pbnQmIGluaXRp
YWxPZmZzZXQsIGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZlbG9jaXR5LCBjb25zdCBGbG9hdFNp
emUmIGluaXRpYWxEZWx0YSwgY29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFBvaW50KGNvbnN0IEZs
b2F0UG9pbnQmKT4mIGRlc3RpbmF0aW9uTW9kaWZpZXIpCit7CisgICAgYXV0byBleHRlbnRzID0g
bV9jbGllbnQuc2Nyb2xsRXh0ZW50c0ZvckFuaW1hdGlvbigqdGhpcyk7CisKKyAgICBtX21vbWVu
dHVtQ2FsY3VsYXRvciA9IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvcjo6Y3JlYXRlKGV4dGVu
dHMsIGluaXRpYWxPZmZzZXQsIGluaXRpYWxEZWx0YSwgaW5pdGlhbFZlbG9jaXR5KTsKKyAgICBh
dXRvIHByZWRpY3RlZFNjcm9sbE9mZnNldCA9IG1fbW9tZW50dW1DYWxjdWxhdG9yLT5wcmVkaWN0
ZWREZXN0aW5hdGlvbk9mZnNldCgpOworCisgICAgaWYgKGRlc3RpbmF0aW9uTW9kaWZpZXIpIHsK
KyAgICAgICAgcHJlZGljdGVkU2Nyb2xsT2Zmc2V0ID0gZGVzdGluYXRpb25Nb2RpZmllcihwcmVk
aWN0ZWRTY3JvbGxPZmZzZXQpOworICAgICAgICBtX21vbWVudHVtQ2FsY3VsYXRvci0+c2V0UmV0
YXJnZXRlZFNjcm9sbE9mZnNldChwcmVkaWN0ZWRTY3JvbGxPZmZzZXQpOworICAgIH0KKworICAg
IGlmIChwcmVkaWN0ZWRTY3JvbGxPZmZzZXQgPT0gaW5pdGlhbE9mZnNldCkgeworICAgICAgICBt
X21vbWVudHVtQ2FsY3VsYXRvciA9IG51bGxwdHI7CisgICAgICAgIG1fYW5pbWF0aW9uQ29tcGxl
dGUgPSB0cnVlOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbV9zdGFydFRp
bWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBtX2FuaW1hdGlvbkNvbXBsZXRlID0gZmFs
c2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06
OnJldGFyZ2V0QWN0aXZlQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIG5ld0Rlc3RpbmF0aW9u
KQoreworICAgIGlmIChtX21vbWVudHVtQ2FsY3VsYXRvcikgeworICAgICAgICBtX21vbWVudHVt
Q2FsY3VsYXRvci0+c2V0UmV0YXJnZXRlZFNjcm9sbE9mZnNldChuZXdEZXN0aW5hdGlvbik7Cisg
ICAgICAgIGF1dG8gbmV3RHVyYXRpb24gPSBtX21vbWVudHVtQ2FsY3VsYXRvci0+YW5pbWF0aW9u
RHVyYXRpb24oKTsKKyAgICAgICAgbV9hbmltYXRpb25Db21wbGV0ZSA9IG5ld0R1cmF0aW9uID4g
MF9zOworICAgICAgICByZXR1cm4gIW1fYW5pbWF0aW9uQ29tcGxldGU7CisgICAgfQorICAgIHJl
dHVybiBmYWxzZTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRpb25Nb21lbnR1bTo6c3RvcCgpCit7
CisgICAgbV9tb21lbnR1bUNhbGN1bGF0b3IgPSBudWxscHRyOworICAgIG1fYW5pbWF0aW9uQ29t
cGxldGUgPSB0cnVlOworICAgIG1fY2xpZW50LnNjcm9sbEFuaW1hdGlvbkRpZEVuZCgqdGhpcyk7
Cit9CisKK2Jvb2wgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW06OmlzQWN0aXZlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gIW1fYW5pbWF0aW9uQ29tcGxldGU7Cit9CisKK0Zsb2F0UG9pbnQgU2Nyb2xs
QW5pbWF0aW9uTW9tZW50dW06OnNlcnZpY2VBbmltYXRpb24oTW9ub3RvbmljVGltZSBjdXJyZW50
VGltZSkKK3sKKyAgICBhdXRvIGVsYXBzZWRUaW1lID0gY3VycmVudFRpbWUgLSBtX3N0YXJ0VGlt
ZTsKKyAgICBtX2FuaW1hdGlvbkNvbXBsZXRlID0gZWxhcHNlZFRpbWUgPj0gbV9tb21lbnR1bUNh
bGN1bGF0b3ItPmFuaW1hdGlvbkR1cmF0aW9uKCk7CisgICAgYXV0byBuZXdPZmZzZXQgPSBtX21v
bWVudHVtQ2FsY3VsYXRvci0+c2Nyb2xsT2Zmc2V0QWZ0ZXJFbGFwc2VkVGltZShlbGFwc2VkVGlt
ZSk7CisKKyAgICBtX2NsaWVudC5zY3JvbGxBbmltYXRpb25EaWRVcGRhdGUoKnRoaXMsIG5ld09m
ZnNldCk7CisKKyAgICBpZiAobV9hbmltYXRpb25Db21wbGV0ZSkKKyAgICAgICAgbV9jbGllbnQu
c2Nyb2xsQW5pbWF0aW9uRGlkRW5kKCp0aGlzKTsKKyAgICAKKyAgICByZXR1cm4gbmV3T2Zmc2V0
OworfQorCit2b2lkIFNjcm9sbEFuaW1hdGlvbk1vbWVudHVtOjp1cGRhdGVTY3JvbGxFeHRlbnRz
KCkKK3sKKyAgICBhdXRvIGV4dGVudHMgPSBtX2NsaWVudC5zY3JvbGxFeHRlbnRzRm9yQW5pbWF0
aW9uKCp0aGlzKTsKKyAgICBhdXRvIHByZWRpY3RlZFNjcm9sbE9mZnNldCA9IG1fbW9tZW50dW1D
YWxjdWxhdG9yLT5wcmVkaWN0ZWREZXN0aW5hdGlvbk9mZnNldCgpOworICAgIGF1dG8gY29uc3Ry
YWluZWRPZmZzZXQgPSBwcmVkaWN0ZWRTY3JvbGxPZmZzZXQuY29uc3RyYWluZWRCZXR3ZWVuKGV4
dGVudHMubWluaW11bVNjcm9sbE9mZnNldCgpLCBleHRlbnRzLm1heGltdW1TY3JvbGxPZmZzZXQo
KSk7CisgICAgaWYgKGNvbnN0cmFpbmVkT2Zmc2V0ICE9IHByZWRpY3RlZFNjcm9sbE9mZnNldCkg
eworICAgICAgICByZXRhcmdldEFjdGl2ZUFuaW1hdGlvbihjb25zdHJhaW5lZE9mZnNldCk7Cisg
ICAgICAgIGlmIChtX2FuaW1hdGlvbkNvbXBsZXRlKQorICAgICAgICAgICAgbV9jbGllbnQuc2Ny
b2xsQW5pbWF0aW9uRGlkRW5kKCp0aGlzKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlv
bk1vbWVudHVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25Nb21l
bnR1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZlNmE2NjE2ZmNkOTU2NTJlODM5YjU3YzlmZTA2NGJkYzFjN2Iz
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRpb25Nb21lbnR1bS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJTY3JvbGxBbmltYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I7CisKK2NsYXNzIFNjcm9sbEFu
aW1hdGlvbk1vbWVudHVtIGZpbmFsIDogcHVibGljIFNjcm9sbEFuaW1hdGlvbiB7CitwdWJsaWM6
CisgICAgU2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0oU2Nyb2xsQW5pbWF0aW9uQ2xpZW50Jik7Cisg
ICAgdmlydHVhbCB+U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0oKTsKKworICAgIGJvb2wgc3RhcnRB
bmltYXRlZFNjcm9sbFdpdGhJbml0aWFsVmVsb2NpdHkoY29uc3QgRmxvYXRQb2ludCYgaW5pdGlh
bE9mZnNldCwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmVsb2NpdHksIGNvbnN0IEZsb2F0U2l6
ZSYgaW5pdGlhbERlbHRhLCBjb25zdCBXVEY6OkZ1bmN0aW9uPEZsb2F0UG9pbnQoY29uc3QgRmxv
YXRQb2ludCYpPiYgZGVzdGluYXRpb25Nb2RpZmllcik7CisKKyAgICBib29sIHJldGFyZ2V0QWN0
aXZlQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIG5ld0Rlc3RpbmF0aW9uKSBmaW5hbDsKKyAg
ICB2b2lkIHN0b3AoKSBmaW5hbDsKKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgZmluYWw7Cisg
ICAgRmxvYXRQb2ludCBzZXJ2aWNlQW5pbWF0aW9uKE1vbm90b25pY1RpbWUpIGZpbmFsOworICAg
IHZvaWQgdXBkYXRlU2Nyb2xsRXh0ZW50cygpIGZpbmFsOworCitwcml2YXRlOgorICAgIHN0ZDo6
dW5pcXVlX3B0cjxTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3I+IG1fbW9tZW50dW1DYWxjdWxh
dG9yOworICAgIAorICAgIE1vbm90b25pY1RpbWUgbV9zdGFydFRpbWU7CisgICAgYm9vbCBtX2Fu
aW1hdGlvbkNvbXBsZXRlIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290
aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3Bw
CmluZGV4IGZkNWIzMDUzMmExZmU0Y2ViNjNmMTdlNTY3MjcxMDUzOTUwNDRkODkuLjY5N2VjMWNl
ZTFlOTI3Yzk4YjU5ZGJiN2ZkMTYzMTg4NTYxMWNkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcApAQCAtMzksNyArMzksOSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBkb3VibGUgZnJhbWVSYXRlID0g
NjA7CiBzdGF0aWMgY29uc3QgZmxvYXQgYW5pbWF0aW9uU3BlZWQgeyAxMDAwLjBmIH07CitzdGF0
aWMgY29uc3RleHByIFNlY29uZHMgbWluaW11bVRpbWVySW50ZXJ2YWwgeyAxX21zIH07CiBzdGF0
aWMgY29uc3QgU2Vjb25kcyBtYXhBbmltYXRpb25EdXJhdGlvbiB7IDIwMF9tcyB9OwogCiBTY3Jv
bGxBbmltYXRpb25TbW9vdGg6OlNjcm9sbEFuaW1hdGlvblNtb290aChTY3JvbGxBbmltYXRpb25D
bGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFNuYXBBbmltYXRvclN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNu
YXBBbmltYXRvclN0YXRlLmNwcAppbmRleCA2OTAzN2Q2M2ZhMzg0Nzc0NWIzNjRiZjYxNDQ5YjI3
NjcxYzA4YTU3Li4zYTJkNjdiYjc2YjI0OTEzYTFmMmJlNzBkZmQ2NDIzNDMyN2FkYzk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUu
Y3BwCkBAIC0yNiwxMSArMjYsMTQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJT
Y3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIgogCisjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uTW9t
ZW50dW0uaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitTY3JvbGxTbmFwQW5pbWF0
b3JTdGF0ZTo6flNjcm9sbFNuYXBBbmltYXRvclN0YXRlKCkgPSBkZWZhdWx0OworCiBib29sIFNj
cm9sbFNuYXBBbmltYXRvclN0YXRlOjp0cmFuc2l0aW9uVG9TbmFwQW5pbWF0aW9uU3RhdGUoY29u
c3QgU2Nyb2xsRXh0ZW50cyYgc2Nyb2xsRXh0ZW50cywgZmxvYXQgcGFnZVNjYWxlLCBjb25zdCBG
bG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0KQogewogICAgIHJldHVybiBzZXR1cEFuaW1hdGlvbkZv
clN0YXRlKFNjcm9sbFNuYXBTdGF0ZTo6U25hcHBpbmcsIHNjcm9sbEV4dGVudHMsIHBhZ2VTY2Fs
ZSwgaW5pdGlhbE9mZnNldCwgeyB9LCB7IH0pOwpAQCAtNDcsMjEgKzUwLDI2IEBAIGJvb2wgU2Ny
b2xsU25hcEFuaW1hdG9yU3RhdGU6OnNldHVwQW5pbWF0aW9uRm9yU3RhdGUoU2Nyb2xsU25hcFN0
YXRlIHN0YXRlLCBjb25zCiAgICAgaWYgKG1fY3VycmVudFN0YXRlID09IHN0YXRlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX21vbWVudHVtQ2FsY3VsYXRvciA9IFNjcm9sbGluZ01v
bWVudHVtQ2FsY3VsYXRvcjo6Y3JlYXRlKHNjcm9sbEV4dGVudHMsIGluaXRpYWxPZmZzZXQsIGlu
aXRpYWxEZWx0YSwgaW5pdGlhbFZlbG9jaXR5KTsKLSAgICBGbG9hdFBvaW50IHByZWRpY3RlZFNj
cm9sbFRhcmdldCB7IG1fbW9tZW50dW1DYWxjdWxhdG9yLT5wcmVkaWN0ZWREZXN0aW5hdGlvbk9m
ZnNldCgpIH07CisgICAgbV9zY3JvbGxFeHRlbnRzID0gc2Nyb2xsRXh0ZW50czsKKworICAgIGlm
IChtX21vbWVudHVtU2Nyb2xsQW5pbWF0aW9uKQorICAgICAgICBtX21vbWVudHVtU2Nyb2xsQW5p
bWF0aW9uLT5zdG9wKCk7CiAKLSAgICBmbG9hdCB0YXJnZXRPZmZzZXRYLCB0YXJnZXRPZmZzZXRZ
OwotICAgIHN0ZDo6dGllKHRhcmdldE9mZnNldFgsIG1fYWN0aXZlU25hcEluZGV4WCkgPSB0YXJn
ZXRPZmZzZXRGb3JTdGFydE9mZnNldChTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIHNjcm9s
bEV4dGVudHMsIGluaXRpYWxPZmZzZXQueCgpLCBwcmVkaWN0ZWRTY3JvbGxUYXJnZXQsIHBhZ2VT
Y2FsZSwgaW5pdGlhbERlbHRhLndpZHRoKCkpOwotICAgIHN0ZDo6dGllKHRhcmdldE9mZnNldFks
IG1fYWN0aXZlU25hcEluZGV4WSkgPSB0YXJnZXRPZmZzZXRGb3JTdGFydE9mZnNldChTY3JvbGxF
dmVudEF4aXM6OlZlcnRpY2FsLCBzY3JvbGxFeHRlbnRzLCBpbml0aWFsT2Zmc2V0LnkoKSwgcHJl
ZGljdGVkU2Nyb2xsVGFyZ2V0LCBwYWdlU2NhbGUsIGluaXRpYWxEZWx0YS5oZWlnaHQoKSk7Ci0g
ICAgYXV0byB0YXJnZXRPZmZzZXQgPSBGbG9hdFBvaW50IHsgdGFyZ2V0T2Zmc2V0WCwgdGFyZ2V0
T2Zmc2V0WSB9OwotICAgIG1fbW9tZW50dW1DYWxjdWxhdG9yLT5zZXRSZXRhcmdldGVkU2Nyb2xs
T2Zmc2V0KHRhcmdldE9mZnNldCk7CisgICAgbV9tb21lbnR1bVNjcm9sbEFuaW1hdGlvbiA9IFdU
Rjo6bWFrZVVuaXF1ZTxTY3JvbGxBbmltYXRpb25Nb21lbnR1bT4oKnRoaXMpOworICAgIGJvb2wg
YW5pbWF0aW5nID0gbV9tb21lbnR1bVNjcm9sbEFuaW1hdGlvbi0+c3RhcnRBbmltYXRlZFNjcm9s
bFdpdGhJbml0aWFsVmVsb2NpdHkoaW5pdGlhbE9mZnNldCwgaW5pdGlhbFZlbG9jaXR5LCBpbml0
aWFsRGVsdGEsIFsmXShjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRPZmZzZXQpIHsKKyAgICAgICAg
ZmxvYXQgdGFyZ2V0T2Zmc2V0WCwgdGFyZ2V0T2Zmc2V0WTsKKyAgICAgICAgc3RkOjp0aWUodGFy
Z2V0T2Zmc2V0WCwgbV9hY3RpdmVTbmFwSW5kZXhYKSA9IHRhcmdldE9mZnNldEZvclN0YXJ0T2Zm
c2V0KFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgc2Nyb2xsRXh0ZW50cywgaW5pdGlhbE9m
ZnNldC54KCksIHRhcmdldE9mZnNldCwgcGFnZVNjYWxlLCBpbml0aWFsRGVsdGEud2lkdGgoKSk7
CisgICAgICAgIHN0ZDo6dGllKHRhcmdldE9mZnNldFksIG1fYWN0aXZlU25hcEluZGV4WSkgPSB0
YXJnZXRPZmZzZXRGb3JTdGFydE9mZnNldChTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBzY3Jv
bGxFeHRlbnRzLCBpbml0aWFsT2Zmc2V0LnkoKSwgdGFyZ2V0T2Zmc2V0LCBwYWdlU2NhbGUsIGlu
aXRpYWxEZWx0YS5oZWlnaHQoKSk7CiAKLSAgICBpZiAodGFyZ2V0T2Zmc2V0ID09IGluaXRpYWxP
ZmZzZXQpCisgICAgICAgIHJldHVybiBGbG9hdFBvaW50IHsgdGFyZ2V0T2Zmc2V0WCwgdGFyZ2V0
T2Zmc2V0WSB9OworICAgIH0pOworCisgICAgaWYgKCFhbmltYXRpbmcpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIG1fc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAg
bV9jdXJyZW50U3RhdGUgPSBzdGF0ZTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gYW5p
bWF0aW5nOwogfQogCiB2b2lkIFNjcm9sbFNuYXBBbmltYXRvclN0YXRlOjp0cmFuc2l0aW9uVG9V
c2VySW50ZXJhY3Rpb25TdGF0ZSgpCkBAIC04MCwyMSArODgsMjIgQEAgdm9pZCBTY3JvbGxTbmFw
QW5pbWF0b3JTdGF0ZTo6dGVhcmRvd25BbmltYXRpb25Gb3JTdGF0ZShTY3JvbGxTbmFwU3RhdGUg
c3RhdGUpCiAgICAgaWYgKG1fY3VycmVudFN0YXRlID09IHN0YXRlKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX21vbWVudHVtQ2FsY3VsYXRvciA9IG51bGxwdHI7Ci0gICAgbV9zdGFydFRpbWUg
PSBNb25vdG9uaWNUaW1lKCk7CisgICAgbV9tb21lbnR1bVNjcm9sbEFuaW1hdGlvbiA9IG51bGxw
dHI7CisgICAgbV9zdGFydFRpbWUgPSB7IH07CiAgICAgbV9jdXJyZW50U3RhdGUgPSBzdGF0ZTsK
IH0KIAogRmxvYXRQb2ludCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6Y3VycmVudEFuaW1hdGVk
U2Nyb2xsT2Zmc2V0KE1vbm90b25pY1RpbWUgY3VycmVudFRpbWUsIGJvb2wmIGlzQW5pbWF0aW9u
Q29tcGxldGUpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX21vbWVudHVtQ2FsY3VsYXRvcikgeworICAg
IGlmICghbV9tb21lbnR1bVNjcm9sbEFuaW1hdGlvbikgewogICAgICAgICBpc0FuaW1hdGlvbkNv
bXBsZXRlID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKLSAgICBTZWNvbmRz
IGVsYXBzZWRUaW1lID0gY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZTsKLSAgICBpc0FuaW1hdGlv
bkNvbXBsZXRlID0gZWxhcHNlZFRpbWUgPj0gbV9tb21lbnR1bUNhbGN1bGF0b3ItPmFuaW1hdGlv
bkR1cmF0aW9uKCk7Ci0gICAgcmV0dXJuIG1fbW9tZW50dW1DYWxjdWxhdG9yLT5zY3JvbGxPZmZz
ZXRBZnRlckVsYXBzZWRUaW1lKGVsYXBzZWRUaW1lKTsKKyAgICBhdXRvIGN1cnJlbnRPZmZzZXQg
PSBtX21vbWVudHVtU2Nyb2xsQW5pbWF0aW9uLT5zZXJ2aWNlQW5pbWF0aW9uKGN1cnJlbnRUaW1l
KTsKKyAgICBpc0FuaW1hdGlvbkNvbXBsZXRlID0gIW1fbW9tZW50dW1TY3JvbGxBbmltYXRpb24t
PmlzQWN0aXZlKCk7CisKKyAgICByZXR1cm4gY3VycmVudE9mZnNldDsKIH0KIAogc3RkOjpwYWly
PGZsb2F0LCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPj4gU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6
OnRhcmdldE9mZnNldEZvclN0YXJ0T2Zmc2V0KFNjcm9sbEV2ZW50QXhpcyBheGlzLCBjb25zdCBT
Y3JvbGxFeHRlbnRzJiBzY3JvbGxFeHRlbnRzLCBmbG9hdCBzdGFydE9mZnNldCwgRmxvYXRQb2lu
dCBwcmVkaWN0ZWRPZmZzZXQsIGZsb2F0IHBhZ2VTY2FsZSwgZmxvYXQgaW5pdGlhbERlbHRhKSBj
b25zdApAQCAtMTExLDYgKzEyMCwxMSBAQCBzdGQ6OnBhaXI8ZmxvYXQsIHN0ZDo6b3B0aW9uYWw8
dW5zaWduZWQ+PiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZTo6dGFyZ2V0T2Zmc2V0RgogICAgIHJl
dHVybiBzdGQ6Om1ha2VfcGFpcihwYWdlU2NhbGUgKiBjbGFtcFRvPGZsb2F0PihmbG9hdCB7IHRh
cmdldE9mZnNldCB9LCBtaW5TY3JvbGxPZmZzZXQsIG1heFNjcm9sbE9mZnNldCksIHNuYXBJbmRl
eCk7CiB9CiAKK1Njcm9sbEV4dGVudHMgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU6OnNjcm9sbEV4
dGVudHNGb3JBbmltYXRpb24oU2Nyb2xsQW5pbWF0aW9uJikKK3sKKyAgICByZXR1cm4gbV9zY3Jv
bGxFeHRlbnRzOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBj
b25zdCBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSYgc3RhdGUpCiB7CiAgICAgdHMgPDwgIlNjcm9s
bFNuYXBBbmltYXRvclN0YXRlIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxTbmFwQW5pbWF0b3JTdGF0ZS5oCmluZGV4IGU5NTVlM2ViMzU0ODBkNDMzNjZjMjU4NDMzM2Fl
MWNjMTIyOGI3ZjEuLmU4MzMwNGJkYWU4YTZmMDRkNTNhNmMxN2I1YTk4ZWI3NTUxN2Y1NWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFNuYXBBbmltYXRvclN0YXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUu
aApAQCAtMjksOSArMjksOSBAQAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIkxh
eW91dFBvaW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAi
U2Nyb2xsQW5pbWF0aW9uTW9tZW50dW0uaCIKICNpbmNsdWRlICJTY3JvbGxTbmFwT2Zmc2V0c0lu
Zm8uaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgotI2luY2x1ZGUgIlNjcm9sbGluZ01vbWVu
dHVtQ2FsY3VsYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAKIG5hbWVz
cGFjZSBXVEYgewpAQCAtNDcsMTEgKzQ3LDExIEBAIGVudW0gY2xhc3MgU2Nyb2xsU25hcFN0YXRl
IHsKICAgICBVc2VySW50ZXJhY3Rpb24KIH07CiAKLXN0cnVjdCBTY3JvbGxFeHRlbnRzOwotCi1j
bGFzcyBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZSB7CitjbGFzcyBTY3JvbGxTbmFwQW5pbWF0b3JT
dGF0ZSA6IHB1YmxpYyBTY3JvbGxBbmltYXRpb25DbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgorICAgIHZpcnR1YWwgflNjcm9sbFNuYXBBbmltYXRvclN0YXRl
KCk7CisKICAgICBjb25zdCBWZWN0b3I8U25hcE9mZnNldDxMYXlvdXRVbml0Pj4mIHNuYXBPZmZz
ZXRzRm9yQXhpcyhTY3JvbGxFdmVudEF4aXMgYXhpcykgY29uc3QKICAgICB7CiAgICAgICAgIHJl
dHVybiBheGlzID09IFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCA/IG1fc25hcE9mZnNldHNJ
bmZvLmhvcml6b250YWxTbmFwT2Zmc2V0cyA6IG1fc25hcE9mZnNldHNJbmZvLnZlcnRpY2FsU25h
cE9mZnNldHM7CkBAIC05MCwxNSArOTAsMjAgQEAgcHJpdmF0ZToKICAgICBib29sIHNldHVwQW5p
bWF0aW9uRm9yU3RhdGUoU2Nyb2xsU25hcFN0YXRlLCBjb25zdCBTY3JvbGxFeHRlbnRzJiwgZmxv
YXQgcGFnZVNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiBpbml0aWFsT2Zmc2V0LCBjb25zdCBGbG9h
dFNpemUmIGluaXRpYWxWZWxvY2l0eSwgY29uc3QgRmxvYXRTaXplJiBpbml0aWFsRGVsdGEpOwog
ICAgIHZvaWQgdGVhcmRvd25BbmltYXRpb25Gb3JTdGF0ZShTY3JvbGxTbmFwU3RhdGUpOwogCisg
ICAgLy8gU2Nyb2xsQW5pbWF0aW9uQ2xpZW50LgorICAgIFNjcm9sbEV4dGVudHMgc2Nyb2xsRXh0
ZW50c0ZvckFuaW1hdGlvbihTY3JvbGxBbmltYXRpb24mKSBmaW5hbDsKKwogICAgIFNjcm9sbFNu
YXBTdGF0ZSBtX2N1cnJlbnRTdGF0ZSB7IFNjcm9sbFNuYXBTdGF0ZTo6VXNlckludGVyYWN0aW9u
IH07CiAKICAgICBMYXlvdXRTY3JvbGxTbmFwT2Zmc2V0c0luZm8gbV9zbmFwT2Zmc2V0c0luZm87
CisgICAgCisgICAgU2Nyb2xsRXh0ZW50cyBtX3Njcm9sbEV4dGVudHM7CiAKICAgICBzdGQ6Om9w
dGlvbmFsPHVuc2lnbmVkPiBtX2FjdGl2ZVNuYXBJbmRleFg7CiAgICAgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gbV9hY3RpdmVTbmFwSW5kZXhZOwogCiAgICAgTW9ub3RvbmljVGltZSBtX3N0YXJ0
VGltZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yPiBt
X21vbWVudHVtQ2FsY3VsYXRvcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQW5pbWF0aW9u
TW9tZW50dW0+IG1fbW9tZW50dW1TY3JvbGxBbmltYXRpb247CiB9OwogCiBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgU2Nyb2xsU25hcEFuaW1hdG9y
U3RhdGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0Vm
ZmVjdHNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGluZ0Vm
ZmVjdHNDb250cm9sbGVyLmNwcAppbmRleCAyNzAzMGM5MTgzMDIzZDI3OGQzZDEyNGFlZTgxOGJk
NmJkNmRiMzg4Li43NDNjZjQ2ZjUzMDMyOGQxOWI4NWU3YjJkMWZkNDBmMmY4N2RkZWE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRy
b2xsZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKLSNpbmNs
dWRlICJTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVh
LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGluZ0VmZmVjdHNDb250cm9sbGVyLmgKaW5kZXggOWRkYjZiYjkyY2E3MmM0ZWMwMTZhMDZjOWMx
NWZkOTVjZjMyNzJmNS4uMDM2MDJkZWVkMjkxZGI5NjdkMDdhZTc1YmMwMWZlZjQ3ZTc2OTY5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsaW5nRWZmZWN0c0NvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxpbmdFZmZlY3RzQ29u
dHJvbGxlci5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEtl
eWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3I7CiBjbGFzcyBMYXlvdXRTaXplOwogY2xhc3MgUGxhdGZv
cm1XaGVlbEV2ZW50OworY2xhc3MgU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGU7CiBjbGFzcyBTY3Jv
bGxpbmdFZmZlY3RzQ29udHJvbGxlcjsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogY2xhc3MgV2hl
ZWxFdmVudFRlc3RNb25pdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyLm1tCmluZGV4IDBhNzY4ODNjOWY4NzFm
NGMyYzBiMjA5ZjNhYjNkY2M1MGQ3MmIzZWIuLmU3ZWI3NjQ5M2I4MmQyMTY0MjI3ZGU3N2M3ZTQ3
MjgyYWU5OGFmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxpbmdFZmZlY3RzQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsaW5nRWZmZWN0c0NvbnRyb2xsZXIubW0KQEAgLTY2Niw4ICs2NjYsOCBAQCB2b2lk
IFNjcm9sbGluZ0VmZmVjdHNDb250cm9sbGVyOjpzdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVy
RmlyZWQoKQogICAgIGlmICghdXNlc1Njcm9sbFNuYXAoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5zaXRpb25Ub1NuYXBBbmltYXRpb25TdGF0ZShtX2Ns
aWVudC5zY3JvbGxFeHRlbnRzKCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVu
dC5zY3JvbGxPZmZzZXQoKSk7Ci0gICAgc3RhcnRTY3JvbGxTbmFwQW5pbWF0aW9uKCk7CisgICAg
aWYgKG1fc2Nyb2xsU25hcFN0YXRlLT50cmFuc2l0aW9uVG9TbmFwQW5pbWF0aW9uU3RhdGUobV9j
bGllbnQuc2Nyb2xsRXh0ZW50cygpLCBtX2NsaWVudC5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jbGll
bnQuc2Nyb2xsT2Zmc2V0KCkpKQorICAgICAgICBzdGFydFNjcm9sbFNuYXBBbmltYXRpb24oKTsK
IH0KIAogdm9pZCBTY3JvbGxpbmdFZmZlY3RzQ29udHJvbGxlcjo6c3RhcnREZWZlcnJpbmdXaGVl
bEV2ZW50VGVzdENvbXBsZXRpb25EdWVUb1Njcm9sbFNuYXBwaW5nKCkK
</data>
<flag name="review"
          id="462229"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
    <flag name="commit-queue"
          id="463275"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>