<?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>234168</bug_id>
          
          <creation_ts>2021-12-10 12:37:57 -0800</creation_ts>
          <short_desc>Momentum Event Dispatcher: Tail frames are the wrong velocity if momentum event dispatch rate doesn&apos;t match screen refresh rate</short_desc>
          <delta_ts>2021-12-11 16:39:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1822893</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-10 12:37:57 -0800</bug_when>
    <thetext>Momentum Event Dispatcher: Tail frames are the wrong velocity if momentum event dispatch rate doesn&apos;t match screen refresh rate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822894</commentid>
    <comment_count>1</comment_count>
      <attachid>446783</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-10 12:38:29 -0800</bug_when>
    <thetext>Created attachment 446783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822896</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-10 12:38:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/86247557&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822915</commentid>
    <comment_count>3</comment_count>
      <attachid>446783</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-12-10 13:04:29 -0800</bug_when>
    <thetext>Comment on attachment 446783
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/MomentumEventDispatcher.cpp:295
&gt; +    DisplayProperties properties;
&gt; +    properties.displayID = displayID;
&gt; +    properties.nominalFrameRate = nominalFramesPerSecond.value_or(WebCore::FullSpeedFramesPerSecond);

auto properties = DisplayProperties { displayID, nominalFramesPerSecond.value_or(WebCore::FullSpeedFramesPerSecond) } ?

&gt; Source/WebKit/WebProcess/WebPage/MomentumEventDispatcher.h:78
&gt; +        float nominalFrameRate;

Use the FramesPerSecond type?

&gt; Source/WebKit/WebProcess/WebPage/MomentumEventDispatcher.h:144
&gt; +        float displayNominalFrameRate { 0 };

Is this a frames per second, or a frame duration? If the former, can it use FramesPerSecond?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822969</commentid>
    <comment_count>4</comment_count>
      <attachid>446810</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-12-10 14:15:58 -0800</bug_when>
    <thetext>Created attachment 446810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823280</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-11 16:39:23 -0800</bug_when>
    <thetext>Committed r286919 (245145@main): &lt;https://commits.webkit.org/245145@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446810.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446783</attachid>
            <date>2021-12-10 12:38:29 -0800</date>
            <delta_ts>2021-12-10 14:15:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234168-20211210123829.patch</filename>
            <type>text/plain</type>
            <size>14293</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4NzgyOWMyOTg5MzMzZjIw
NWVjZTE3YzI0YzIzOGIyY2IzYjhmMjYuLmRjNGIyMmU2NTc3NmIyYjkyMGM0YmM5NjM4ZGYyNTJm
ZTVlMzYyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMTItMTAgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9tZW50dW0gRXZlbnQg
RGlzcGF0Y2hlcjogVGFpbCBmcmFtZXMgYXJlIHRoZSB3cm9uZyB2ZWxvY2l0eSBpZiBtb21lbnR1
bSBldmVudCBkaXNwYXRjaCByYXRlIGRvZXNuJ3QgbWF0Y2ggc2NyZWVuIHJlZnJlc2ggcmF0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTY4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjI0NzU1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiByMjg2NjcxLCBJIHNjYWxlZCB0aGUgdGFpbCBm
cmFtZXMgaW50byB0aGUgbW9tZW50dW0gZXZlbnQgZGlzYXB0Y2gKKyAgICAgICAgcmF0ZSwgYnV0
IHRoZXkgYXJlIGFjdHVhbGx5IGFsd2F5cyBkaXNwYXRjaGVkIGF0IGRpc3BsYXkgcmVmcmVzaAor
ICAgICAgICBmcmVxdWVuY3kuIEluIG1hbnkgY2FzZXMgdGhlc2UgdGhpbmdzIGFyZSB0aGUgc2Ft
ZSwgYnV0IGluIHNvbWUKKyAgICAgICAgY2FzZXMgY2FuIGRpZmZlciAobW9zdCBjb21tb25seSBh
IDEyMEh6IGRpc3BsYXkgd2l0aCA2MEh6IGV2ZW50IGRpc3BhdGNoKSwKKyAgICAgICAgc28gdG8g
YWx3YXlzIGhhdmUgdGhlIHRhaWwgbW92ZSBhdCB0aGUgcmlnaHQgcmF0ZSwgc2NhbGUgaW50byB0
aGUgZGlzcGxheQorICAgICAgICByZWZyZXNoIHJhdGUgaW5zdGVhZCkuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OnBh
Z2VTY3JlZW5EaWRDaGFuZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50
RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVy
OjpkaWRTdGFydE1vbWVudHVtUGhhc2UpOgorICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50
RGlzcGF0Y2hlcjo6ZGlzcGxheVByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpN
b21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6c3RhcnREaXNwbGF5TGluayk6CisgICAgICAgIChXZWJL
aXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpzdG9wRGlzcGxheUxpbmspOgorICAgICAgICAo
V2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6cGFnZVNjcmVlbkRpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVz
aGVkKToKKyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BsYXlJ
RCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVt
RXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgIFBsdW1iIGFuZCBzdG9yZSB0aGUgbm9taW5hbCBk
aXNwbGF5IHJlZnJlc2ggcmF0ZS4KKworICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlz
cGF0Y2hlcjo6YnVpbGRPZmZzZXRUYWJsZVdpdGhJbml0aWFsRGVsdGEpOgorICAgICAgICBTY2Fs
ZSB0aGUgdGFpbCBmcmFtZXMgZnJvbSB0aGUgNjBIeiBpZGVhbCByYXRlIGludG8gdGhlIGRpc3Bs
YXkgcmVmcmVzaAorICAgICAgICByYXRlLCBpbnN0ZWFkIG9mIHRoZSBldmVudCBkaXNwYXRjaCBy
YXRlLgorCisgICAgICAgIEluY29taW5nIGV2ZW50cyBzdGlsbCBzY2FsZSAqaW4qIGZyb20gdGhl
IGV2ZW50IGRpc3BhdGNoIHJhdGUsIHNpbmNlCisgICAgICAgIHRoYXQncy4uLiB0aGUgcmF0ZSB0
aGV5IGNvbWUgYXQuCisKIDIwMjEtMTItMDkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgSW5zcGVjdG9yICJjb21wb3NpdGUiIGV2ZW50cyBhcmUgYWxs
IHZlcnkgc2hvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDcwOGIwYmMzYmY4NWVjNzlmMjBlZjcyZTdlMDViMDhhMzhiMjY3YWEuLmNkNmM0MWM5ZTFmN2I0
ZWU2ZWZjNjMzN2I4MzIwMGE2ZWQ0ODliZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMzk3NSw3ICszOTc1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Ondp
bmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIHN0ZDo6b3B0
aW8KICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IHNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6UGFnZVNjcmVlbkRpZENoYW5nZShtX3dl
YlBhZ2VJRCwgZGlzcGxheUlEKSk7CisgICAgc2VuZChNZXNzYWdlczo6RXZlbnREaXNwYXRjaGVy
OjpQYWdlU2NyZWVuRGlkQ2hhbmdlKG1fd2ViUGFnZUlELCBkaXNwbGF5SUQsIG5vbWluYWxGcmFt
ZXNQZXJTZWNvbmQpKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpXaW5kb3dTY3JlZW5E
aWRDaGFuZ2UoZGlzcGxheUlELCBub21pbmFsRnJhbWVzUGVyU2Vjb25kKSk7CiAjaWYgSEFWRShD
VkRJU1BMQVlMSU5LKQogICAgIHVwZGF0ZURpc3BsYXlMaW5rRnJlcXVlbmN5KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApp
bmRleCA3MTNiZGQ5NjQ1Mjk2YmZlMDMyNWZmMDFhNTZhZmQ5MTdiNzc4ZDE2Li4yOTkxOGUzZjUw
MzBhMDY2NmQ3ZjI0NGEwNDFlYjM3YmU0Y2ZmOTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTMyMywxMCArMzIz
LDEwIEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVkKFBsYXRmb3Jt
RGlzcGxheUlEIGRpc3BsYXlJRCwgY29uc3QgRGlzCiB9CiAjZW5kaWYKIAotdm9pZCBFdmVudERp
c3BhdGNoZXI6OnBhZ2VTY3JlZW5EaWRDaGFuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBQbGF0
Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6cGFnZVNjcmVl
bkRpZENoYW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFBsYXRmb3JtRGlzcGxheUlEIGRpc3Bs
YXlJRCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZCkKIHsK
ICNpZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRfRElTUEFUQ0hFUikKLSAgICBtX21vbWVudHVtRXZl
bnREaXNwYXRjaGVyLT5wYWdlU2NyZWVuRGlkQ2hhbmdlKHBhZ2VJRCwgZGlzcGxheUlEKTsKKyAg
ICBtX21vbWVudHVtRXZlbnREaXNwYXRjaGVyLT5wYWdlU2NyZWVuRGlkQ2hhbmdlKHBhZ2VJRCwg
ZGlzcGxheUlELCBub21pbmFsRnJhbWVzUGVyU2Vjb25kKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKHBhZ2VJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGRpc3BsYXlJRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCmluZGV4IDI4ODk5
NGU0OGFjN2VmMDkyNDc4ZDExMWE2YzY0MDk3YmM3OGY4YTQuLmUzN2EyNDdkZDM0MmUyYzBkZTJl
NzhlNjk0Nzk2YzJmY2Y0N2MzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpc3BsYXlEaWRSZWZyZXNoT25TY3JvbGxpbmdUaHJlYWQoV2ViQ29yZTo6UGxh
dGZvcm1EaXNwbGF5SUQpOwogI2VuZGlmCiAKLSAgICB2b2lkIHBhZ2VTY3JlZW5EaWRDaGFuZ2Uo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKTsKKyAg
ICB2b2lkIHBhZ2VTY3JlZW5EaWRDaGFuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBsYXRmb3JtRGlzcGxheUlELCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJh
bWVzUGVyU2Vjb25kKTsKIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5tZXNzYWdlcy5pbgppbmRleCAzNDhkNDcxMDVlNDk2OGNmNzUwYTUzN2NjYmUzYzViNWQzOTJh
YjgzLi44YjZmMzRiZWU4NTkzYmE1NDJiMGQyODQwYjZjOTRiNzkzNzRmNzAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLm1lc3NhZ2VzLmluCkBAIC0zNiw1ICszNiw1IEBAIG1lc3NhZ2VzIC0+IEV2ZW50RGlzcGF0
Y2hlciB7CiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVIpCiAgICAgU2V0U2Ny
b2xsaW5nQWNjZWxlcmF0aW9uQ3VydmUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6U2Nyb2xsaW5nQWNjZWxlcmF0aW9uQ3VydmU+IGN1cnZlKQog
I2VuZGlmCi0gICAgUGFnZVNjcmVlbkRpZENoYW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHVpbnQzMl90IGRpc3BsYXlJRCkKKyAgICBQYWdlU2NyZWVuRGlkQ2hhbmdlKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDMyX3QgZGlzcGxheUlELCBzdGQ6Om9wdGlv
bmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNo
ZXIuY3BwCmluZGV4IDljMGQwNDE5ZTA3NTNmMzFhOTkxZWYzY2Y3NTVmOWQ2NTc3ZThiYzguLjYy
ZDY4NjA3NTZmNDZlOTcxODY2ZjAxYTgzZGUxOTNmNjAyNjUyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0
Y2hlci5jcHAKQEAgLTE4NCw2ICsxODQsMTAgQEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hl
cjo6ZGlzcGF0Y2hTeW50aGV0aWNNb21lbnR1bUV2ZW50KFdlYldoZWVsRXZlbnQ6OlBoYXMKIAog
dm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlkU3RhcnRNb21lbnR1bVBoYXNlKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJXaGVlbEV2ZW50JiBl
dmVudCkKIHsKKyAgICBhdXRvIGRpc3BsYXlQcm9wZXJ0aWVzID0gdGhpcy0+ZGlzcGxheVByb3Bl
cnRpZXMocGFnZUlkZW50aWZpZXIpOworICAgIGlmICghZGlzcGxheVByb3BlcnRpZXMpCisgICAg
ICAgIHJldHVybjsKKwogICAgIHRyYWNlUG9pbnQoU3ludGhldGljTW9tZW50dW1TdGFydCk7CiAK
ICAgICBhdXRvIG1vbWVudHVtU3RhcnRJbnRlcnZhbCA9IGV2ZW50LmlvSElERXZlbnRUaW1lc3Rh
bXAoKSAtIG1fbGFzdEVuZGVkRXZlbnRUaW1lc3RhbXA7CkBAIC0xOTMsNiArMTk3LDcgQEAgdm9p
ZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlkU3RhcnRNb21lbnR1bVBoYXNlKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2UKICAgICBtX2N1cnJlbnRHZXN0dXJlLmluaXRpYXRpbmdFdmVu
dCA9IGV2ZW50OwogICAgIG1fY3VycmVudEdlc3R1cmUuY3VycmVudE9mZnNldCA9IHsgfTsKICAg
ICBtX2N1cnJlbnRHZXN0dXJlLnN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gbW9t
ZW50dW1TdGFydEludGVydmFsOworICAgIG1fY3VycmVudEdlc3R1cmUuZGlzcGxheU5vbWluYWxG
cmFtZVJhdGUgPSBkaXNwbGF5UHJvcGVydGllcy0+bm9taW5hbEZyYW1lUmF0ZTsKICAgICBtX2N1
cnJlbnRHZXN0dXJlLmFjY2VsZXJhdGlvbkN1cnZlID0gWyZdICgpIC0+IHN0ZDo6b3B0aW9uYWw8
U2Nyb2xsaW5nQWNjZWxlcmF0aW9uQ3VydmU+IHsKICAgICAgICAgYXV0byBjdXJ2ZUl0ZXJhdG9y
ID0gbV9hY2NlbGVyYXRpb25DdXJ2ZXMuZmluZChtX2N1cnJlbnRHZXN0dXJlLnBhZ2VJZGVudGlm
aWVyKTsKICAgICAgICAgaWYgKGN1cnZlSXRlcmF0b3IgPT0gbV9hY2NlbGVyYXRpb25DdXJ2ZXMu
ZW5kKCkpCkBAIC0yNDEsNTEgKzI0Niw1NCBAQCB2b2lkIE1vbWVudHVtRXZlbnREaXNwYXRjaGVy
OjpzZXRTY3JvbGxpbmdBY2NlbGVyYXRpb25DdXJ2ZShXZWJDb3JlOjpQYWdlSWRlbnRpZgogI2Vu
ZGlmCiB9CiAKLVdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIE1vbWVudHVtRXZlbnREaXNwYXRj
aGVyOjpkaXNwbGF5SUQoKSBjb25zdAorc3RkOjpvcHRpb25hbDxNb21lbnR1bUV2ZW50RGlzcGF0
Y2hlcjo6RGlzcGxheVByb3BlcnRpZXM+IE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5
UHJvcGVydGllcyhXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSWRlbnRpZmllcikgY29uc3QK
IHsKLSAgICBBU1NFUlQobV9jdXJyZW50R2VzdHVyZS5wYWdlSWRlbnRpZmllcik7Ci0gICAgYXV0
byBkaXNwbGF5SURJdGVyYXRvciA9IG1fZGlzcGxheUlEcy5maW5kKG1fY3VycmVudEdlc3R1cmUu
cGFnZUlkZW50aWZpZXIpOwotICAgIGlmIChkaXNwbGF5SURJdGVyYXRvciA9PSBtX2Rpc3BsYXlJ
RHMuZW5kKCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIGRpc3BsYXlJREl0ZXJh
dG9yLT52YWx1ZTsKKyAgICBBU1NFUlQocGFnZUlkZW50aWZpZXIpOworICAgIGF1dG8gZGlzcGxh
eVByb3BlcnRpZXNJdGVyYXRvciA9IG1fZGlzcGxheVByb3BlcnRpZXMuZmluZChwYWdlSWRlbnRp
Zmllcik7CisgICAgaWYgKGRpc3BsYXlQcm9wZXJ0aWVzSXRlcmF0b3IgPT0gbV9kaXNwbGF5UHJv
cGVydGllcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4g
eyBkaXNwbGF5UHJvcGVydGllc0l0ZXJhdG9yLT52YWx1ZSB9OwogfQogCiB2b2lkIE1vbWVudHVt
RXZlbnREaXNwYXRjaGVyOjpzdGFydERpc3BsYXlMaW5rKCkKIHsKLSAgICBhdXRvIGRpc3BsYXlJ
RCA9IHRoaXMtPmRpc3BsYXlJRCgpOwotICAgIGlmICghZGlzcGxheUlEKSB7CisgICAgYXV0byBk
aXNwbGF5UHJvcGVydGllcyA9IHRoaXMtPmRpc3BsYXlQcm9wZXJ0aWVzKG1fY3VycmVudEdlc3R1
cmUucGFnZUlkZW50aWZpZXIpOworICAgIGlmICghZGlzcGxheVByb3BlcnRpZXMpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVy
IGZhaWxlZCB0byBzdGFydCBkaXNwbGF5IGxpbmsiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIC8vIEZJWE1FOiBTd2l0Y2ggZG93biB0byBsb3dlci10aGFuLWZ1bGwtc3BlZWQgZnJh
bWUgcmF0ZXMgZm9yIHRoZSB0YWlsIGVuZCBvZiB0aGUgY3VydmUuCi0gICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpTdGFydERpc3BsYXlMaW5rKG1fb2JzZXJ2ZXJJRCwgZGlzcGxheUlELCBX
ZWJDb3JlOjpGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQpLCAwKTsKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OlN0YXJ0RGlzcGxheUxpbmsobV9vYnNlcnZlcklELCBkaXNwbGF5UHJvcGVy
dGllcy0+ZGlzcGxheUlELCBXZWJDb3JlOjpGdWxsU3BlZWRGcmFtZXNQZXJTZWNvbmQpLCAwKTsK
ICNpZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORykK
LSAgICBSRUxFQVNFX0xPRyhTY3JvbGxBbmltYXRpb25zLCAiTW9tZW50dW1FdmVudERpc3BhdGNo
ZXIgc3RhcnRpbmcgZGlzcGxheSBsaW5rIGZvciBkaXNwbGF5ICVkIiwgZGlzcGxheUlEKTsKKyAg
ICBSRUxFQVNFX0xPRyhTY3JvbGxBbmltYXRpb25zLCAiTW9tZW50dW1FdmVudERpc3BhdGNoZXIg
c3RhcnRpbmcgZGlzcGxheSBsaW5rIGZvciBkaXNwbGF5ICVkIiwgZGlzcGxheVByb3BlcnRpZXMt
PmRpc3BsYXlJRCk7CiAjZW5kaWYKIH0KIAogdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6
c3RvcERpc3BsYXlMaW5rKCkKIHsKLSAgICBhdXRvIGRpc3BsYXlJRCA9IHRoaXMtPmRpc3BsYXlJ
RCgpOwotICAgIGlmICghZGlzcGxheUlEKSB7CisgICAgYXV0byBkaXNwbGF5UHJvcGVydGllcyA9
IHRoaXMtPmRpc3BsYXlQcm9wZXJ0aWVzKG1fY3VycmVudEdlc3R1cmUucGFnZUlkZW50aWZpZXIp
OworICAgIGlmICghZGlzcGxheVByb3BlcnRpZXMpIHsKICAgICAgICAgUkVMRUFTRV9MT0coU2Ny
b2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIGZhaWxlZCB0byBzdG9wIGRp
c3BsYXkgbGluayIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpTdG9wRGlzcGxheUxpbmsobV9vYnNlcnZlcklELCBkaXNwbGF5SUQpLCAw
KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlN0b3BEaXNwbGF5TGluayhtX29ic2Vy
dmVySUQsIGRpc3BsYXlQcm9wZXJ0aWVzLT5kaXNwbGF5SUQpLCAwKTsKICNpZiBFTkFCTEUoTU9N
RU5UVU1fRVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllfTE9HR0lORykKLSAgICBSRUxFQVNFX0xP
RyhTY3JvbGxBbmltYXRpb25zLCAiTW9tZW50dW1FdmVudERpc3BhdGNoZXIgc3RvcHBpbmcgZGlz
cGxheSBsaW5rIGZvciBkaXNwbGF5ICVkIiwgZGlzcGxheUlEKTsKKyAgICBSRUxFQVNFX0xPRyhT
Y3JvbGxBbmltYXRpb25zLCAiTW9tZW50dW1FdmVudERpc3BhdGNoZXIgc3RvcHBpbmcgZGlzcGxh
eSBsaW5rIGZvciBkaXNwbGF5ICVkIiwgZGlzcGxheVByb3BlcnRpZXMtPmRpc3BsYXlJRCk7CiAj
ZW5kaWYKIH0KIAotdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6cGFnZVNjcmVlbkRpZENo
YW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlBsYXRmb3JtRGlz
cGxheUlEIGRpc3BsYXlJRCkKK3ZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OnBhZ2VTY3Jl
ZW5EaWRDaGFuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxG
cmFtZXNQZXJTZWNvbmQpCiB7CiAgICAgYm9vbCBhZmZlY3RzQ3VycmVudEdlc3R1cmUgPSAocGFn
ZUlEID09IG1fY3VycmVudEdlc3R1cmUucGFnZUlkZW50aWZpZXIpOwogICAgIGlmIChhZmZlY3Rz
Q3VycmVudEdlc3R1cmUpCiAgICAgICAgIHN0b3BEaXNwbGF5TGluaygpOwogCi0gICAgbV9kaXNw
bGF5SURzLnNldChwYWdlSUQsIGRpc3BsYXlJRCk7CisgICAgRGlzcGxheVByb3BlcnRpZXMgcHJv
cGVydGllczsKKyAgICBwcm9wZXJ0aWVzLmRpc3BsYXlJRCA9IGRpc3BsYXlJRDsKKyAgICBwcm9w
ZXJ0aWVzLm5vbWluYWxGcmFtZVJhdGUgPSBub21pbmFsRnJhbWVzUGVyU2Vjb25kLnZhbHVlX29y
KFdlYkNvcmU6OkZ1bGxTcGVlZEZyYW1lc1BlclNlY29uZCk7CisgICAgbV9kaXNwbGF5UHJvcGVy
dGllcy5zZXQocGFnZUlELCBXVEZNb3ZlKHByb3BlcnRpZXMpKTsKIAogICAgIGlmIChhZmZlY3Rz
Q3VycmVudEdlc3R1cmUpCiAgICAgICAgIHN0YXJ0RGlzcGxheUxpbmsoKTsKQEAgLTMxOSw3ICsz
MjcsOCBAQCB2b2lkIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5V2FzUmVmcmVzaGVk
KFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpcwogICAgIGlmICghbV9jdXJyZW50R2VzdHVy
ZS5hY3RpdmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChkaXNwbGF5SUQgIT0gdGhpcy0+
ZGlzcGxheUlEKCkpCisgICAgYXV0byBkaXNwbGF5UHJvcGVydGllcyA9IHRoaXMtPmRpc3BsYXlQ
cm9wZXJ0aWVzKG1fY3VycmVudEdlc3R1cmUucGFnZUlkZW50aWZpZXIpOworICAgIGlmICghZGlz
cGxheVByb3BlcnRpZXMgfHwgZGlzcGxheUlEICE9IGRpc3BsYXlQcm9wZXJ0aWVzLT5kaXNwbGF5
SUQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRpc3BhdGNoU3ludGhldGljTW9tZW50dW1FdmVu
dChXZWJXaGVlbEV2ZW50OjpQaGFzZUNoYW5nZWQsIGNvbnN1bWVEZWx0YUZvckN1cnJlbnRUaW1l
KCkpOwpAQCAtMzcwLDcgKzM3OSw5IEBAIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmJ1
aWxkT2Zmc2V0VGFibGVXaXRoSW5pdGlhbERlbHRhKFdlYkNvcmU6OkZsb2F0U2l6CiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSB1bmFjY2VsZXJhdGVkRGVsdGEgPSBpbml0aWFsVW5hY2NlbGVyYXRlZERlbHRhOwogCi0gICAg
ZmxvYXQgcGh5c2ljYWxDdXJ2ZU11bHRpcGxpZXIgPSBpZGVhbEN1cnZlRnJhbWVSYXRlIC8gbV9j
dXJyZW50R2VzdHVyZS5hY2NlbGVyYXRpb25DdXJ2ZS0+ZnJhbWVSYXRlKCk7CisgICAgLy8gVGFp
bCBkZWx0YXMgd2lsbCBiZSBkaXNwYXRjaGVkIGF0IHRoZSBzY3JlZW4gcmVmcmVzaCByYXRlLCBu
b3QgdGhlIG1vbWVudHVtCisgICAgLy8gZGlzcGF0Y2ggcmF0ZSwgc28gd2UgbmVlZCB0byBzY2Fs
ZSBmcm9tIDYwSHogaW50byBzY3JlZW4gcmVmcmVzaCByYXRlLgorICAgIGZsb2F0IHRhaWxDdXJ2
ZU11bHRpcGxpZXIgPSBpZGVhbEN1cnZlRnJhbWVSYXRlIC8gbV9jdXJyZW50R2VzdHVyZS5kaXNw
bGF5Tm9taW5hbEZyYW1lUmF0ZTsKICAgICBib29sIGluVGFpbCA9IGZhbHNlOwogICAgIFdlYkNv
cmU6OkZsb2F0U2l6ZSB0YWlsQ2Fycnk7CiAKQEAgLTM4NSw3ICszOTYsNyBAQCB2b2lkIE1vbWVu
dHVtRXZlbnREaXNwYXRjaGVyOjpidWlsZE9mZnNldFRhYmxlV2l0aEluaXRpYWxEZWx0YShXZWJD
b3JlOjpGbG9hdFNpegogICAgICAgICB9CiAKICAgICAgICAgaWYgKGluVGFpbCkgewotICAgICAg
ICAgICAgYXV0byB0YWlsRGVsdGEgPSBhY2NlbGVyYXRlZERlbHRhICogcGh5c2ljYWxDdXJ2ZU11
bHRpcGxpZXI7CisgICAgICAgICAgICBhdXRvIHRhaWxEZWx0YSA9IGFjY2VsZXJhdGVkRGVsdGEg
KiB0YWlsQ3VydmVNdWx0aXBsaWVyOwogICAgICAgICAgICAgYXV0byBkZWx0YVdpdGhDYXJyeSA9
IHRhaWxEZWx0YSArIHRhaWxDYXJyeTsKICAgICAgICAgICAgIGF1dG8gcXVhbnRpemVkRGVsdGEg
PSByb3VuZGVkSW50U2l6ZShkZWx0YVdpdGhDYXJyeSk7CiAgICAgICAgICAgICB0YWlsQ2Fycnkg
PSBkZWx0YVdpdGhDYXJyeSAtIHF1YW50aXplZERlbHRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmgKaW5k
ZXggM2U1NWQyN2EyM2U4MzkwNjFlYWM1YWNmZjE4NzMyNjljZTg0ZjQzYi4uMjNmMjgzMTcxNGQy
MWZhZDc5MjFmZTJkOGY1N2Q1OGIxZWM5NjIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5oCkBAIC02
Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlzcGxheVdhc1JlZnJlc2hlZChXZWJD
b3JlOjpQbGF0Zm9ybURpc3BsYXlJRCwgY29uc3QgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSYpOwog
Ci0gICAgdm9pZCBwYWdlU2NyZWVuRGlkQ2hhbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CisgICAgdm9pZCBwYWdlU2NyZWVuRGlkQ2hhbmdl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCwgc3Rk
OjpvcHRpb25hbDx1bnNpZ25lZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZCk7CiAKIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRTdGFydE1vbWVudHVtUGhhc2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKQEAgLTczLDcgKzczLDExIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdGFydERpc3BsYXlMaW5rKCk7CiAgICAgdm9pZCBzdG9wRGlzcGxheUxpbmsoKTsKIAot
ICAgIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCgpIGNvbnN0OworICAgIHN0
cnVjdCBEaXNwbGF5UHJvcGVydGllcyB7CisgICAgICAgIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxh
eUlEIGRpc3BsYXlJRDsKKyAgICAgICAgZmxvYXQgbm9taW5hbEZyYW1lUmF0ZTsKKyAgICB9Owor
ICAgIHN0ZDo6b3B0aW9uYWw8RGlzcGxheVByb3BlcnRpZXM+IGRpc3BsYXlQcm9wZXJ0aWVzKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyKSBjb25zdDsKIAogICAgIHZvaWQgZGlzcGF0Y2hTeW50aGV0
aWNNb21lbnR1bUV2ZW50KFdlYldoZWVsRXZlbnQ6OlBoYXNlLCBXZWJDb3JlOjpGbG9hdFNpemUg
ZGVsdGEpOwogCkBAIC0xMzcsNiArMTQxLDggQEAgcHJpdmF0ZToKICAgICAgICAgU2Vjb25kcyB0
YWlsU3RhcnREZWxheTsKICAgICAgICAgdW5zaWduZWQgY3VycmVudFRhaWxEZWx0YUluZGV4IHsg
MCB9OwogCisgICAgICAgIGZsb2F0IGRpc3BsYXlOb21pbmFsRnJhbWVSYXRlIHsgMCB9OworCiAj
aWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZX0xPR0dJTkcpCiAg
ICAgICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBhY2N1bXVsYXRlZEV2ZW50T2Zmc2V0OwogICAgICAg
ICBib29sIGRpZExvZ0luaXRpYWxRdWV1ZVN0YXRlIHsgZmFsc2UgfTsKQEAgLTE0OCw3ICsxNTQs
OCBAQCBwcml2YXRlOgogICAgIH0gbV9jdXJyZW50R2VzdHVyZTsKIAogICAgIERpc3BsYXlMaW5r
T2JzZXJ2ZXJJRCBtX29ic2VydmVySUQ7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQ+IG1fZGlzcGxheUlEczsKKworICAgIEhh
c2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIERpc3BsYXlQcm9wZXJ0aWVzPiBtX2Rpc3Bs
YXlQcm9wZXJ0aWVzOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8U2Nyb2xsaW5nQWNjZWxlcmF0aW9uQ3VydmU+PiBtX2FjY2VsZXJhdGlvbkN1cnZl
czsKICAgICBFdmVudERpc3BhdGNoZXImIG1fZGlzcGF0Y2hlcjsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446810</attachid>
            <date>2021-12-10 14:15:58 -0800</date>
            <delta_ts>2021-12-11 16:39:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234168-20211210141557.patch</filename>
            <type>text/plain</type>
            <size>14931</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4NzgyOWMyOTg5MzMzZjIw
NWVjZTE3YzI0YzIzOGIyY2IzYjhmMjYuLjMyZWMyMTM5YjBhNDVkYTcxYTdhYWYwYWRiNWI5MDky
YTY0ZTdhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMTItMTAgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9tZW50dW0gRXZlbnQg
RGlzcGF0Y2hlcjogVGFpbCBmcmFtZXMgYXJlIHRoZSB3cm9uZyB2ZWxvY2l0eSBpZiBtb21lbnR1
bSBldmVudCBkaXNwYXRjaCByYXRlIGRvZXNuJ3QgbWF0Y2ggc2NyZWVuIHJlZnJlc2ggcmF0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTY4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjI0NzU1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCisKKyAgICAgICAgSW4gcjI4NjY3MSwgSSBzY2FsZWQgdGhlIHRhaWwgZnJh
bWVzIGludG8gdGhlIG1vbWVudHVtIGV2ZW50IGRpc2FwdGNoCisgICAgICAgIHJhdGUsIGJ1dCB0
aGV5IGFyZSBhY3R1YWxseSBhbHdheXMgZGlzcGF0Y2hlZCBhdCBkaXNwbGF5IHJlZnJlc2gKKyAg
ICAgICAgZnJlcXVlbmN5LiBJbiBtYW55IGNhc2VzIHRoZXNlIHRoaW5ncyBhcmUgdGhlIHNhbWUs
IGJ1dCBpbiBzb21lCisgICAgICAgIGNhc2VzIGNhbiBkaWZmZXIgKG1vc3QgY29tbW9ubHkgYSAx
MjBIeiBkaXNwbGF5IHdpdGggNjBIeiBldmVudCBkaXNwYXRjaCksCisgICAgICAgIHNvIHRvIGFs
d2F5cyBoYXZlIHRoZSB0YWlsIG1vdmUgYXQgdGhlIHJpZ2h0IHJhdGUsIHNjYWxlIGludG8gdGhl
IGRpc3BsYXkKKyAgICAgICAgcmVmcmVzaCByYXRlIGluc3RlYWQpLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVyOjpwYWdl
U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERp
c3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6
ZGlkU3RhcnRNb21lbnR1bVBoYXNlKToKKyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVudERp
c3BhdGNoZXI6OmRpc3BsYXlQcm9wZXJ0aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TW9t
ZW50dW1FdmVudERpc3BhdGNoZXI6OnN0YXJ0RGlzcGxheUxpbmspOgorICAgICAgICAoV2ViS2l0
OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6c3RvcERpc3BsYXlMaW5rKToKKyAgICAgICAgKFdl
YktpdDo6TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OnBhZ2VTY3JlZW5EaWRDaGFuZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hl
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpkaXNwbGF5SUQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2
ZW50RGlzcGF0Y2hlci5oOgorICAgICAgICBQbHVtYiBhbmQgc3RvcmUgdGhlIG5vbWluYWwgZGlz
cGxheSByZWZyZXNoIHJhdGUuCisKKyAgICAgICAgKFdlYktpdDo6TW9tZW50dW1FdmVudERpc3Bh
dGNoZXI6OmJ1aWxkT2Zmc2V0VGFibGVXaXRoSW5pdGlhbERlbHRhKToKKyAgICAgICAgU2NhbGUg
dGhlIHRhaWwgZnJhbWVzIGZyb20gdGhlIDYwSHogaWRlYWwgcmF0ZSBpbnRvIHRoZSBkaXNwbGF5
IHJlZnJlc2gKKyAgICAgICAgcmF0ZSwgaW5zdGVhZCBvZiB0aGUgZXZlbnQgZGlzcGF0Y2ggcmF0
ZS4KKworICAgICAgICBJbmNvbWluZyBldmVudHMgc3RpbGwgc2NhbGUgKmluKiBmcm9tIHRoZSBl
dmVudCBkaXNwYXRjaCByYXRlLCBzaW5jZQorICAgICAgICB0aGF0J3MuLi4gdGhlIHJhdGUgdGhl
eSBjb21lIGF0LgorCiAyMDIxLTEyLTA5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEluc3BlY3RvciAiY29tcG9zaXRlIiBldmVudHMgYXJlIGFsbCB2
ZXJ5IHNob3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3
MDhiMGJjM2JmODVlYzc5ZjIwZWY3MmU3ZTA1YjA4YTM4YjI2N2FhLi5jZDZjNDFjOWUxZjdiNGVl
NmVmYzYzMzdiODMyMDBhNmVkNDg5YmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTM5NzUsNyArMzk3NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aW5k
b3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBzdGQ6Om9wdGlv
CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpFdmVudERpc3BhdGNoZXI6OlBhZ2VTY3JlZW5EaWRDaGFuZ2UobV93ZWJQ
YWdlSUQsIGRpc3BsYXlJRCkpOworICAgIHNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6
UGFnZVNjcmVlbkRpZENoYW5nZShtX3dlYlBhZ2VJRCwgZGlzcGxheUlELCBub21pbmFsRnJhbWVz
UGVyU2Vjb25kKSk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6V2luZG93U2NyZWVuRGlk
Q2hhbmdlKGRpc3BsYXlJRCwgbm9taW5hbEZyYW1lc1BlclNlY29uZCkpOwogI2lmIEhBVkUoQ1ZE
SVNQTEFZTElOSykKICAgICB1cGRhdGVEaXNwbGF5TGlua0ZyZXF1ZW5jeSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5k
ZXggNzEzYmRkOTY0NTI5NmJmZTAzMjVmZjAxYTU2YWZkOTE3Yjc3OGQxNi4uMjk5MThlM2Y1MDMw
YTA2NjZkN2YyNDRhMDQxZWIzN2JlNGNmZjkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0zMjMsMTAgKzMyMywx
MCBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hlZChQbGF0Zm9ybURp
c3BsYXlJRCBkaXNwbGF5SUQsIGNvbnN0IERpcwogfQogI2VuZGlmCiAKLXZvaWQgRXZlbnREaXNw
YXRjaGVyOjpwYWdlU2NyZWVuRGlkQ2hhbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgUGxhdGZv
cm1EaXNwbGF5SUQgZGlzcGxheUlEKQordm9pZCBFdmVudERpc3BhdGNoZXI6OnBhZ2VTY3JlZW5E
aWRDaGFuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IG5vbWluYWxGcmFtZXNQZXJTZWNvbmQpCiB7CiAj
aWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BBVENIRVIpCi0gICAgbV9tb21lbnR1bUV2ZW50
RGlzcGF0Y2hlci0+cGFnZVNjcmVlbkRpZENoYW5nZShwYWdlSUQsIGRpc3BsYXlJRCk7CisgICAg
bV9tb21lbnR1bUV2ZW50RGlzcGF0Y2hlci0+cGFnZVNjcmVlbkRpZENoYW5nZShwYWdlSUQsIGRp
c3BsYXlJRCwgbm9taW5hbEZyYW1lc1BlclNlY29uZCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShwYWdlSUQpOwogICAgIFVOVVNFRF9QQVJBTShkaXNwbGF5SUQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAppbmRleCAyODg5OTRl
NDhhYzdlZjA5MjQ3OGQxMTFhNmM2NDA5N2JjNzhmOGE0Li5lMzdhMjQ3ZGQzNDJlMmMwZGUyZTc4
ZTY5NDc5NmMyZmNmNDdjM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKFdlYkNvcmU6OlBsYXRm
b3JtRGlzcGxheUlEKTsKICNlbmRpZgogCi0gICAgdm9pZCBwYWdlU2NyZWVuRGlkQ2hhbmdlKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CisgICAg
dm9pZCBwYWdlU2NyZWVuRGlkQ2hhbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXlJRCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbm9taW5hbEZyYW1l
c1BlclNlY29uZCk7CiAKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
bWVzc2FnZXMuaW4KaW5kZXggMzQ4ZDQ3MTA1ZTQ5NjhjZjc1MGE1MzdjY2JlM2M1YjVkMzkyYWI4
My4uOGI2ZjM0YmVlODU5M2JhNTQyYjBkMjg0MGI2Yzk0Yjc5Mzc0ZjcwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5tZXNzYWdlcy5pbgpAQCAtMzYsNSArMzYsNSBAQCBtZXNzYWdlcyAtPiBFdmVudERpc3BhdGNo
ZXIgewogI2lmIEVOQUJMRShNT01FTlRVTV9FVkVOVF9ESVNQQVRDSEVSKQogICAgIFNldFNjcm9s
bGluZ0FjY2VsZXJhdGlvbkN1cnZlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgc3Rk
OjpvcHRpb25hbDxXZWJLaXQ6OlNjcm9sbGluZ0FjY2VsZXJhdGlvbkN1cnZlPiBjdXJ2ZSkKICNl
bmRpZgotICAgIFBhZ2VTY3JlZW5EaWRDaGFuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50MzJfdCBkaXNwbGF5SUQpCisgICAgUGFnZVNjcmVlbkRpZENoYW5nZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQzMl90IGRpc3BsYXlJRCwgc3RkOjpvcHRpb25h
bDx1bnNpZ25lZD4gbm9taW5hbEZyYW1lc1BlclNlY29uZCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVy
LmNwcAppbmRleCA5YzBkMDQxOWUwNzUzZjMxYTk5MWVmM2NmNzU1ZjlkNjU3N2U4YmM4Li41NTgw
ZWYwZDQzYjdhZDAxY2JmYmNiMDE2N2FlMGVjMWU0NzBkN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNo
ZXIuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29u
c3RleHByIFNlY29uZHMgZGVsdGFIaXN0b3J5TWF4aW11bUFnZSA9IDUwMF9tczsKIHN0YXRpYyBj
b25zdGV4cHIgU2Vjb25kcyBkZWx0YUhpc3RvcnlNYXhpbXVtSW50ZXJ2YWwgPSAxNTBfbXM7Ci1z
dGF0aWMgY29uc3RleHByIGZsb2F0IGlkZWFsQ3VydmVGcmFtZVJhdGUgPSA2MDsKK3N0YXRpYyBj
b25zdGV4cHIgV2ViQ29yZTo6RnJhbWVzUGVyU2Vjb25kIGlkZWFsQ3VydmVGcmFtZVJhdGUgPSA2
MDsKIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBpZGVhbEN1cnZlRnJhbWVJbnRlcnZhbCA9IDFf
cyAvIGlkZWFsQ3VydmVGcmFtZVJhdGU7CiAKIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpNb21l
bnR1bUV2ZW50RGlzcGF0Y2hlcihFdmVudERpc3BhdGNoZXImIGRpc3BhdGNoZXIpCkBAIC0xODQs
NiArMTg0LDEwIEBAIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU3ludGhl
dGljTW9tZW50dW1FdmVudChXZWJXaGVlbEV2ZW50OjpQaGFzCiAKIHZvaWQgTW9tZW50dW1FdmVu
dERpc3BhdGNoZXI6OmRpZFN0YXJ0TW9tZW50dW1QaGFzZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSWRlbnRpZmllciwgY29uc3QgV2ViV2hlZWxFdmVudCYgZXZlbnQpCiB7CisgICAgYXV0
byBkaXNwbGF5UHJvcGVydGllcyA9IHRoaXMtPmRpc3BsYXlQcm9wZXJ0aWVzKHBhZ2VJZGVudGlm
aWVyKTsKKyAgICBpZiAoIWRpc3BsYXlQcm9wZXJ0aWVzKQorICAgICAgICByZXR1cm47CisKICAg
ICB0cmFjZVBvaW50KFN5bnRoZXRpY01vbWVudHVtU3RhcnQpOwogCiAgICAgYXV0byBtb21lbnR1
bVN0YXJ0SW50ZXJ2YWwgPSBldmVudC5pb0hJREV2ZW50VGltZXN0YW1wKCkgLSBtX2xhc3RFbmRl
ZEV2ZW50VGltZXN0YW1wOwpAQCAtMTkzLDYgKzE5Nyw3IEBAIHZvaWQgTW9tZW50dW1FdmVudERp
c3BhdGNoZXI6OmRpZFN0YXJ0TW9tZW50dW1QaGFzZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlCiAgICAgbV9jdXJyZW50R2VzdHVyZS5pbml0aWF0aW5nRXZlbnQgPSBldmVudDsKICAgICBt
X2N1cnJlbnRHZXN0dXJlLmN1cnJlbnRPZmZzZXQgPSB7IH07CiAgICAgbV9jdXJyZW50R2VzdHVy
ZS5zdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1vbWVudHVtU3RhcnRJbnRlcnZh
bDsKKyAgICBtX2N1cnJlbnRHZXN0dXJlLmRpc3BsYXlOb21pbmFsRnJhbWVSYXRlID0gZGlzcGxh
eVByb3BlcnRpZXMtPm5vbWluYWxGcmFtZVJhdGU7CiAgICAgbV9jdXJyZW50R2VzdHVyZS5hY2Nl
bGVyYXRpb25DdXJ2ZSA9IFsmXSAoKSAtPiBzdGQ6Om9wdGlvbmFsPFNjcm9sbGluZ0FjY2VsZXJh
dGlvbkN1cnZlPiB7CiAgICAgICAgIGF1dG8gY3VydmVJdGVyYXRvciA9IG1fYWNjZWxlcmF0aW9u
Q3VydmVzLmZpbmQobV9jdXJyZW50R2VzdHVyZS5wYWdlSWRlbnRpZmllcik7CiAgICAgICAgIGlm
IChjdXJ2ZUl0ZXJhdG9yID09IG1fYWNjZWxlcmF0aW9uQ3VydmVzLmVuZCgpKQpAQCAtMjQxLDUx
ICsyNDYsNTQgQEAgdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6c2V0U2Nyb2xsaW5nQWNj
ZWxlcmF0aW9uQ3VydmUoV2ViQ29yZTo6UGFnZUlkZW50aWYKICNlbmRpZgogfQogCi1XZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXlJRCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheUlEKCkg
Y29uc3QKK3N0ZDo6b3B0aW9uYWw8TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OkRpc3BsYXlQcm9w
ZXJ0aWVzPiBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVByb3BlcnRpZXMoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlkZW50aWZpZXIpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1f
Y3VycmVudEdlc3R1cmUucGFnZUlkZW50aWZpZXIpOwotICAgIGF1dG8gZGlzcGxheUlESXRlcmF0
b3IgPSBtX2Rpc3BsYXlJRHMuZmluZChtX2N1cnJlbnRHZXN0dXJlLnBhZ2VJZGVudGlmaWVyKTsK
LSAgICBpZiAoZGlzcGxheUlESXRlcmF0b3IgPT0gbV9kaXNwbGF5SURzLmVuZCgpKQotICAgICAg
ICByZXR1cm4geyB9OwotICAgIHJldHVybiBkaXNwbGF5SURJdGVyYXRvci0+dmFsdWU7CisgICAg
QVNTRVJUKHBhZ2VJZGVudGlmaWVyKTsKKyAgICBhdXRvIGRpc3BsYXlQcm9wZXJ0aWVzSXRlcmF0
b3IgPSBtX2Rpc3BsYXlQcm9wZXJ0aWVzLmZpbmQocGFnZUlkZW50aWZpZXIpOworICAgIGlmIChk
aXNwbGF5UHJvcGVydGllc0l0ZXJhdG9yID09IG1fZGlzcGxheVByb3BlcnRpZXMuZW5kKCkpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIHsgZGlzcGxheVByb3BlcnRp
ZXNJdGVyYXRvci0+dmFsdWUgfTsKIH0KIAogdm9pZCBNb21lbnR1bUV2ZW50RGlzcGF0Y2hlcjo6
c3RhcnREaXNwbGF5TGluaygpCiB7Ci0gICAgYXV0byBkaXNwbGF5SUQgPSB0aGlzLT5kaXNwbGF5
SUQoKTsKLSAgICBpZiAoIWRpc3BsYXlJRCkgeworICAgIGF1dG8gZGlzcGxheVByb3BlcnRpZXMg
PSB0aGlzLT5kaXNwbGF5UHJvcGVydGllcyhtX2N1cnJlbnRHZXN0dXJlLnBhZ2VJZGVudGlmaWVy
KTsKKyAgICBpZiAoIWRpc3BsYXlQcm9wZXJ0aWVzKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKFNj
cm9sbEFuaW1hdGlvbnMsICJNb21lbnR1bUV2ZW50RGlzcGF0Y2hlciBmYWlsZWQgdG8gc3RhcnQg
ZGlzcGxheSBsaW5rIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBGSVhNRTog
U3dpdGNoIGRvd24gdG8gbG93ZXItdGhhbi1mdWxsLXNwZWVkIGZyYW1lIHJhdGVzIGZvciB0aGUg
dGFpbCBlbmQgb2YgdGhlIGN1cnZlLgotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6U3Rh
cnREaXNwbGF5TGluayhtX29ic2VydmVySUQsIGRpc3BsYXlJRCwgV2ViQ29yZTo6RnVsbFNwZWVk
RnJhbWVzUGVyU2Vjb25kKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTdGFy
dERpc3BsYXlMaW5rKG1fb2JzZXJ2ZXJJRCwgZGlzcGxheVByb3BlcnRpZXMtPmRpc3BsYXlJRCwg
V2ViQ29yZTo6RnVsbFNwZWVkRnJhbWVzUGVyU2Vjb25kKSwgMCk7CiAjaWYgRU5BQkxFKE1PTUVO
VFVNX0VWRU5UX0RJU1BBVENIRVJfVEVNUE9SQVJZX0xPR0dJTkcpCi0gICAgUkVMRUFTRV9MT0co
U2Nyb2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHN0YXJ0aW5nIGRpc3Bs
YXkgbGluayBmb3IgZGlzcGxheSAlZCIsIGRpc3BsYXlJRCk7CisgICAgUkVMRUFTRV9MT0coU2Ny
b2xsQW5pbWF0aW9ucywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHN0YXJ0aW5nIGRpc3BsYXkg
bGluayBmb3IgZGlzcGxheSAlZCIsIGRpc3BsYXlQcm9wZXJ0aWVzLT5kaXNwbGF5SUQpOwogI2Vu
ZGlmCiB9CiAKIHZvaWQgTW9tZW50dW1FdmVudERpc3BhdGNoZXI6OnN0b3BEaXNwbGF5TGluaygp
CiB7Ci0gICAgYXV0byBkaXNwbGF5SUQgPSB0aGlzLT5kaXNwbGF5SUQoKTsKLSAgICBpZiAoIWRp
c3BsYXlJRCkgeworICAgIGF1dG8gZGlzcGxheVByb3BlcnRpZXMgPSB0aGlzLT5kaXNwbGF5UHJv
cGVydGllcyhtX2N1cnJlbnRHZXN0dXJlLnBhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIWRpc3Bs
YXlQcm9wZXJ0aWVzKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKFNjcm9sbEFuaW1hdGlvbnMsICJN
b21lbnR1bUV2ZW50RGlzcGF0Y2hlciBmYWlsZWQgdG8gc3RvcCBkaXNwbGF5IGxpbmsiKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6U3Rv
cERpc3BsYXlMaW5rKG1fb2JzZXJ2ZXJJRCwgZGlzcGxheUlEKSwgMCk7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpTdG9wRGlzcGxheUxpbmsobV9vYnNlcnZlcklELCBkaXNwbGF5UHJv
cGVydGllcy0+ZGlzcGxheUlEKSwgMCk7CiAjaWYgRU5BQkxFKE1PTUVOVFVNX0VWRU5UX0RJU1BB
VENIRVJfVEVNUE9SQVJZX0xPR0dJTkcpCi0gICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9u
cywgIk1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHN0b3BwaW5nIGRpc3BsYXkgbGluayBmb3IgZGlz
cGxheSAlZCIsIGRpc3BsYXlJRCk7CisgICAgUkVMRUFTRV9MT0coU2Nyb2xsQW5pbWF0aW9ucywg
Ik1vbWVudHVtRXZlbnREaXNwYXRjaGVyIHN0b3BwaW5nIGRpc3BsYXkgbGluayBmb3IgZGlzcGxh
eSAlZCIsIGRpc3BsYXlQcm9wZXJ0aWVzLT5kaXNwbGF5SUQpOwogI2VuZGlmCiB9CiAKLXZvaWQg
TW9tZW50dW1FdmVudERpc3BhdGNoZXI6OnBhZ2VTY3JlZW5EaWRDaGFuZ2UoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQp
Cit2b2lkIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpwYWdlU2NyZWVuRGlkQ2hhbmdlKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlz
cGxheUlELCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBub21pbmFsRnJhbWVzUGVyU2Vjb25kKQog
ewogICAgIGJvb2wgYWZmZWN0c0N1cnJlbnRHZXN0dXJlID0gKHBhZ2VJRCA9PSBtX2N1cnJlbnRH
ZXN0dXJlLnBhZ2VJZGVudGlmaWVyKTsKICAgICBpZiAoYWZmZWN0c0N1cnJlbnRHZXN0dXJlKQog
ICAgICAgICBzdG9wRGlzcGxheUxpbmsoKTsKIAotICAgIG1fZGlzcGxheUlEcy5zZXQocGFnZUlE
LCBkaXNwbGF5SUQpOworICAgIERpc3BsYXlQcm9wZXJ0aWVzIHByb3BlcnRpZXM7CisgICAgcHJv
cGVydGllcy5kaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CisgICAgcHJvcGVydGllcy5ub21pbmFsRnJh
bWVSYXRlID0gbm9taW5hbEZyYW1lc1BlclNlY29uZC52YWx1ZV9vcihXZWJDb3JlOjpGdWxsU3Bl
ZWRGcmFtZXNQZXJTZWNvbmQpOworICAgIG1fZGlzcGxheVByb3BlcnRpZXMuc2V0KHBhZ2VJRCwg
V1RGTW92ZShwcm9wZXJ0aWVzKSk7CiAKICAgICBpZiAoYWZmZWN0c0N1cnJlbnRHZXN0dXJlKQog
ICAgICAgICBzdGFydERpc3BsYXlMaW5rKCk7CkBAIC0zMTksNyArMzI3LDggQEAgdm9pZCBNb21l
bnR1bUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGxheVdhc1JlZnJlc2hlZChXZWJDb3JlOjpQbGF0Zm9y
bURpc3BsYXlJRCBkaXMKICAgICBpZiAoIW1fY3VycmVudEdlc3R1cmUuYWN0aXZlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoZGlzcGxheUlEICE9IHRoaXMtPmRpc3BsYXlJRCgpKQorICAg
IGF1dG8gZGlzcGxheVByb3BlcnRpZXMgPSB0aGlzLT5kaXNwbGF5UHJvcGVydGllcyhtX2N1cnJl
bnRHZXN0dXJlLnBhZ2VJZGVudGlmaWVyKTsKKyAgICBpZiAoIWRpc3BsYXlQcm9wZXJ0aWVzIHx8
IGRpc3BsYXlJRCAhPSBkaXNwbGF5UHJvcGVydGllcy0+ZGlzcGxheUlEKQogICAgICAgICByZXR1
cm47CiAKICAgICBkaXNwYXRjaFN5bnRoZXRpY01vbWVudHVtRXZlbnQoV2ViV2hlZWxFdmVudDo6
UGhhc2VDaGFuZ2VkLCBjb25zdW1lRGVsdGFGb3JDdXJyZW50VGltZSgpKTsKQEAgLTM3MCw3ICsz
NzksOSBAQCB2b2lkIE1vbWVudHVtRXZlbnREaXNwYXRjaGVyOjpidWlsZE9mZnNldFRhYmxlV2l0
aEluaXRpYWxEZWx0YShXZWJDb3JlOjpGbG9hdFNpegogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBh
Y2N1bXVsYXRlZE9mZnNldDsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgdW5hY2NlbGVyYXRlZERl
bHRhID0gaW5pdGlhbFVuYWNjZWxlcmF0ZWREZWx0YTsKIAotICAgIGZsb2F0IHBoeXNpY2FsQ3Vy
dmVNdWx0aXBsaWVyID0gaWRlYWxDdXJ2ZUZyYW1lUmF0ZSAvIG1fY3VycmVudEdlc3R1cmUuYWNj
ZWxlcmF0aW9uQ3VydmUtPmZyYW1lUmF0ZSgpOworICAgIC8vIFRhaWwgZGVsdGFzIHdpbGwgYmUg
ZGlzcGF0Y2hlZCBhdCB0aGUgc2NyZWVuIHJlZnJlc2ggcmF0ZSwgbm90IHRoZSBtb21lbnR1bQor
ICAgIC8vIGRpc3BhdGNoIHJhdGUsIHNvIHdlIG5lZWQgdG8gc2NhbGUgZnJvbSA2MEh6IGludG8g
c2NyZWVuIHJlZnJlc2ggcmF0ZS4KKyAgICBmbG9hdCB0YWlsQ3VydmVNdWx0aXBsaWVyID0gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KGlkZWFsQ3VydmVGcmFtZVJhdGUpIC8gbV9jdXJyZW50R2VzdHVyZS5k
aXNwbGF5Tm9taW5hbEZyYW1lUmF0ZTsKICAgICBib29sIGluVGFpbCA9IGZhbHNlOwogICAgIFdl
YkNvcmU6OkZsb2F0U2l6ZSB0YWlsQ2Fycnk7CiAKQEAgLTM4NSw3ICszOTYsNyBAQCB2b2lkIE1v
bWVudHVtRXZlbnREaXNwYXRjaGVyOjpidWlsZE9mZnNldFRhYmxlV2l0aEluaXRpYWxEZWx0YShX
ZWJDb3JlOjpGbG9hdFNpegogICAgICAgICB9CiAKICAgICAgICAgaWYgKGluVGFpbCkgewotICAg
ICAgICAgICAgYXV0byB0YWlsRGVsdGEgPSBhY2NlbGVyYXRlZERlbHRhICogcGh5c2ljYWxDdXJ2
ZU11bHRpcGxpZXI7CisgICAgICAgICAgICBhdXRvIHRhaWxEZWx0YSA9IGFjY2VsZXJhdGVkRGVs
dGEgKiB0YWlsQ3VydmVNdWx0aXBsaWVyOwogICAgICAgICAgICAgYXV0byBkZWx0YVdpdGhDYXJy
eSA9IHRhaWxEZWx0YSArIHRhaWxDYXJyeTsKICAgICAgICAgICAgIGF1dG8gcXVhbnRpemVkRGVs
dGEgPSByb3VuZGVkSW50U2l6ZShkZWx0YVdpdGhDYXJyeSk7CiAgICAgICAgICAgICB0YWlsQ2Fy
cnkgPSBkZWx0YVdpdGhDYXJyeSAtIHF1YW50aXplZERlbHRhOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL01vbWVudHVtRXZlbnREaXNwYXRjaGVyLmgK
aW5kZXggM2U1NWQyN2EyM2U4MzkwNjFlYWM1YWNmZjE4NzMyNjljZTg0ZjQzYi4uYWFiYjAxZDEz
MDg4NGNkMjY4YWQ2OGFiNDMzYjhiZDZhOGRjYmUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvTW9tZW50dW1FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Nb21lbnR1bUV2ZW50RGlzcGF0Y2hlci5oCkBA
IC00Miw2ICs0Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBEaXNwbGF5VXBk
YXRlOwordXNpbmcgRnJhbWVzUGVyU2Vjb25kID0gdW5zaWduZWQ7CiB1c2luZyBQbGF0Zm9ybURp
c3BsYXlJRCA9IHVpbnQzMl90OwogfQogCkBAIC02Miw3ICs2Myw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgZGlzcGxheVdhc1JlZnJlc2hlZChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCwgY29u
c3QgV2ViQ29yZTo6RGlzcGxheVVwZGF0ZSYpOwogCi0gICAgdm9pZCBwYWdlU2NyZWVuRGlkQ2hh
bmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7
CisgICAgdm9pZCBwYWdlU2NyZWVuRGlkQ2hhbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbm9taW5h
bEZyYW1lc1BlclNlY29uZCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTdGFydE1vbWVudHVt
UGhhc2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKQEAg
LTczLDcgKzc0LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydERpc3BsYXlMaW5rKCk7CiAg
ICAgdm9pZCBzdG9wRGlzcGxheUxpbmsoKTsKIAotICAgIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxh
eUlEIGRpc3BsYXlJRCgpIGNvbnN0OworICAgIHN0cnVjdCBEaXNwbGF5UHJvcGVydGllcyB7Cisg
ICAgICAgIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRDsKKyAgICAgICAgV2Vi
Q29yZTo6RnJhbWVzUGVyU2Vjb25kIG5vbWluYWxGcmFtZVJhdGU7CisgICAgfTsKKyAgICBzdGQ6
Om9wdGlvbmFsPERpc3BsYXlQcm9wZXJ0aWVzPiBkaXNwbGF5UHJvcGVydGllcyhXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcikgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoU3ludGhldGljTW9tZW50
dW1FdmVudChXZWJXaGVlbEV2ZW50OjpQaGFzZSwgV2ViQ29yZTo6RmxvYXRTaXplIGRlbHRhKTsK
IApAQCAtMTM3LDYgKzE0Miw4IEBAIHByaXZhdGU6CiAgICAgICAgIFNlY29uZHMgdGFpbFN0YXJ0
RGVsYXk7CiAgICAgICAgIHVuc2lnbmVkIGN1cnJlbnRUYWlsRGVsdGFJbmRleCB7IDAgfTsKIAor
ICAgICAgICBXZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQgZGlzcGxheU5vbWluYWxGcmFtZVJhdGUg
eyAwIH07CisKICNpZiBFTkFCTEUoTU9NRU5UVU1fRVZFTlRfRElTUEFUQ0hFUl9URU1QT1JBUllf
TE9HR0lORykKICAgICAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGFjY3VtdWxhdGVkRXZlbnRPZmZz
ZXQ7CiAgICAgICAgIGJvb2wgZGlkTG9nSW5pdGlhbFF1ZXVlU3RhdGUgeyBmYWxzZSB9OwpAQCAt
MTQ4LDcgKzE1NSw4IEBAIHByaXZhdGU6CiAgICAgfSBtX2N1cnJlbnRHZXN0dXJlOwogCiAgICAg
RGlzcGxheUxpbmtPYnNlcnZlcklEIG1fb2JzZXJ2ZXJJRDsKLSAgICBIYXNoTWFwPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRD4gbV9kaXNwbGF5SURz
OworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgRGlzcGxheVByb3BlcnRp
ZXM+IG1fZGlzcGxheVByb3BlcnRpZXM7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllciwgc3RkOjpvcHRpb25hbDxTY3JvbGxpbmdBY2NlbGVyYXRpb25DdXJ2ZT4+IG1fYWNjZWxl
cmF0aW9uQ3VydmVzOwogICAgIEV2ZW50RGlzcGF0Y2hlciYgbV9kaXNwYXRjaGVyOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>