<?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>164967</bug_id>
          
          <creation_ts>2016-11-18 16:05:10 -0800</creation_ts>
          <short_desc>Remove use of std::chrono in WebPage and entrained code</short_desc>
          <delta_ts>2016-11-18 20:30:47 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>164905</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1252925</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-18 16:05:10 -0800</bug_when>
    <thetext>Remove use of std::chrono in WebPage and entrained code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252928</commentid>
    <comment_count>1</comment_count>
      <attachid>295210</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-18 16:06:18 -0800</bug_when>
    <thetext>Created attachment 295210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252950</commentid>
    <comment_count>2</comment_count>
      <attachid>295221</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-18 16:43:10 -0800</bug_when>
    <thetext>Created attachment 295221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253014</commentid>
    <comment_count>3</comment_count>
      <attachid>295221</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-18 19:33:44 -0800</bug_when>
    <thetext>Comment on attachment 295221
Patch

Clearing flags on attachment: 295221

Committed r208916: &lt;http://trac.webkit.org/changeset/208916&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295210</attachid>
            <date>2016-11-18 16:06:18 -0800</date>
            <delta_ts>2016-11-18 20:30:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164967-20161118160611.patch</filename>
            <type>text/plain</type>
            <size>43076</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4ODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1YTM4NWNiN2YyNTFj
NmUxYzhjOWI5MmFjNzEyMWQwODAwZWRjYS4uN2IyNDlkNjA5MTE2YjM5NjRlMGEyMDdhMWI3OTJm
ZWI0ZGNkYWIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTExLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB1c2Ug
b2Ygc3RkOjpjaHJvbm8gaW4gV2ViUGFnZSBhbmQgZW50cmFpbmVkIGNvZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDk2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2Ugc3RkOjpjaHJvbm8g
d2l0aCBTZWNvbmRzIGFuZCBNb25vdG9uaWMgVGltZS4KKworICAgICAgICBVc2UgbW9yZSBDKysx
MSBpbml0aWFsaXphdGlvbiBmb3IgV2ViUGFnZSBkYXRhIG1lbWJlcnMuCisKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsVmVsb2NpdHkpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vVGltZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVyQmFzZTo6c3RhcnRSZXBlYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJC
YXNlOjpzdGFydE9uZVNob3QpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjphdWdtZW50
RmlyZUludGVydmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVyQmFzZTo6YXVnbWVudFJlcGVh
dEludGVydmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlZlbG9jaXR5RGF0YTo6VmVsb2NpdHlEYXRhKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUaWxlQ29udHJvbGxlcjo6YWRqdXN0VGlsZUNvdmVyYWdlUmVjdCk6CisKIDIwMTYtMTEt
MTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgc2xvdGNoYW5n
ZSBldmVudCBzaG91bGQgYnViYmxlIGFuZCBkaXNwYXRjaGVkIG9uY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAx
ZDUxNGRlNzk5MGU5ZWNlNTg0NzkxZjNiYWNkNmM5NDI5OGE1Nzk3Li5kYWI1OTk3Y2E2MDkxZTY0
MDA5ODY5ODA5ZmQxYzU1YTQ2MzE3ODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIw
MTYtMTEtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIHVzZSBvZiBzdGQ6OmNocm9ubyBpbiBXZWJQYWdlIGFuZCBlbnRyYWluZWQgY29k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0OTY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFj
ZSBzdGQ6OmNocm9ubyB3aXRoIFNlY29uZHMgYW5kIE1vbm90b25pYyBUaW1lLgorCisgICAgICAg
IFVzZSBtb3JlIEMrKzExIGluaXRpYWxpemF0aW9uIGZvciBXZWJQYWdlIGRhdGEgbWVtYmVycy4K
KworICAgICAgICAqIFNoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6b3BlcmF0b3I8PCk6CisgICAgICAgICogU2hhcmVkL1Zpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mbzo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyk6CisgICAgICAgIChXZWJL
aXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OnRpbWVzdGFtcCk6CisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8TW9ub3RvbmljVGltZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8TW9ub3RvbmljVGltZT46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
U2Vjb25kcz46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U2Vjb25kcz46
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKFdlYktpdDo6
SGlzdG9yaWNhbFZlbG9jaXR5RGF0YTo6SGlzdG9yaWNhbFZlbG9jaXR5RGF0YSk6CisgICAgICAg
IChXZWJLaXQ6Okhpc3RvcmljYWxWZWxvY2l0eURhdGE6OnZlbG9jaXR5Rm9yTmV3RGF0YSk6Cisg
ICAgICAgIChXZWJLaXQ6Okhpc3RvcmljYWxWZWxvY2l0eURhdGE6OmFwcGVuZCk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3Q6dW5vYnNjdXJlZFJlY3Q6dW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczpvYnNjdXJlZEluc2V0OnNjYWxlOm1p
bmltdW1TY2FsZTppblN0YWJsZVN0YXRlOmlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0
aXZlbHk6ZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXc6XSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZXZlbnRUaHJvdHRsaW5nRGVsYXkpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Om1fdXNlckFjdGl2aXR5SHlzdGVyZXNpcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEZsdXNoTGF5ZXJUcmVlQXRUaW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmV2ZW50VGhyb3R0bGlu
Z0RlbGF5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRS
ZWN0cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OmZsdXNoTGF5ZXJzKToKKwogMjAxNi0xMS0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbG9nZ2luZyBzdXBwb3J0IHRvIFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDEz
YmNlNzU4ZTJlNTBkOGQwNGExZmNiOGFmMWJjODc5MmMxZmFmMDMuLjUxN2IxYTg4ZmUyNzRmNGQ5
MzVhYTFkOTBmYTRjNWI5OWE5NjcwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApA
QCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVLZXlib2FyZFVJTW9kZS5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC0yMzIsNyArMjMzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkgPSAwOwog
I2VuZGlmCiAKLSAgICB2aXJ0dWFsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZXZlbnRUaHJv
dHRsaW5nRGVsYXkoKSB7IHJldHVybiAwbXM7IH07CisgICAgdmlydHVhbCBTZWNvbmRzIGV2ZW50
VGhyb3R0bGluZ0RlbGF5KCkgeyByZXR1cm4gU2Vjb25kcygwKTsgfTsKIAogI2lmIFBMQVRGT1JN
KElPUykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDJlZjU4MzhhYjM0NGE4YmI5MmE0Y2Vj
Y2JkMWMyNTZiNjMyODZjYzkuLjQ4YjgyZTk0NDc5NmUwZDdjMjI0NzE1NDY0YzhhNDNlOGVmM2Jk
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTI0MzcsMTMgKzI0MzcsMTMgQEAg
dm9pZCBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldENoYW5nZWRWaWFQbGF0Zm9ybVdpZGdldEltcGwo
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvbGQKIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNo
YW5nZWQoY29uc3QgU2Nyb2xsUG9zaXRpb24mIG9sZFBvc2l0aW9uLCBjb25zdCBTY3JvbGxQb3Np
dGlvbiYgbmV3UG9zaXRpb24pCiB7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwot
ICAgIGF1dG8gdGhyb3R0bGluZ0RlbGF5ID0gcGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgp
LmV2ZW50VGhyb3R0bGluZ0RlbGF5KCkgOiAwbXM7CisgICAgU2Vjb25kcyB0aHJvdHRsaW5nRGVs
YXkgPSBwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZXZlbnRUaHJvdHRsaW5nRGVsYXko
KSA6IFNlY29uZHMoMCk7CiAKLSAgICBpZiAodGhyb3R0bGluZ0RlbGF5ID09IDBtcykgeworICAg
IGlmICh0aHJvdHRsaW5nRGVsYXkgPT0gU2Vjb25kcygwKSkgewogICAgICAgICBtX2RlbGF5ZWRT
Y3JvbGxFdmVudFRpbWVyLnN0b3AoKTsKICAgICAgICAgc2VuZFNjcm9sbEV2ZW50KCk7CiAgICAg
fSBlbHNlIGlmICghbV9kZWxheWVkU2Nyb2xsRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQotICAgICAg
ICBtX2RlbGF5ZWRTY3JvbGxFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCh0aHJvdHRsaW5nRGVsYXkp
OworICAgICAgICBtX2RlbGF5ZWRTY3JvbGxFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCh0aHJvdHRs
aW5nRGVsYXkudmFsdWUoKSk7CiAKICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUo
KS5kb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudC0+c2VuZFdpbGxSZXZlYWxFZGdlRXZlbnRz
SWZOZWVkZWQob2xkUG9zaXRpb24sIG5ld1Bvc2l0aW9uLCB2aXNpYmxlQ29udGVudFJlY3QoKSwg
Y29udGVudHNTaXplKCkpOwpAQCAtNDk4NCw3ICs0OTg0LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNl
dEN1c3RvbVNpemVGb3JSZXNpemVFdmVudChJbnRTaXplIGN1c3RvbVNpemUpCiAgICAgc2VuZFJl
c2l6ZUV2ZW50SWZOZWVkZWQoKTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFZlbG9j
aXR5KGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5LCBk
b3VibGUgc2NhbGVDaGFuZ2VSYXRlLCBkb3VibGUgdGltZXN0YW1wKQordm9pZCBGcmFtZVZpZXc6
OnNldFNjcm9sbFZlbG9jaXR5KGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0
aWNhbFZlbG9jaXR5LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlLCBNb25vdG9uaWNUaW1lIHRpbWVz
dGFtcCkKIHsKICAgICBpZiAoVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcgPSB0aGlzLT50aWxl
ZEJhY2tpbmcoKSkKICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRWZWxvY2l0eShWZWxvY2l0eURh
dGEoaG9yaXpvbnRhbFZlbG9jaXR5LCB2ZXJ0aWNhbFZlbG9jaXR5LCBzY2FsZUNoYW5nZVJhdGUs
IHRpbWVzdGFtcCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMDViYjMxNTI4NWU5ZGE0
YjEyNTE1YTU0ZTI4NGRlNzM0MmQ5MjczOC4uOGNhZmQyNzg4MTY4OGZkNGY4MWU5OWMyYjhkYjJh
YzViZDVlZGU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0xNDMsNyArMTQzLDcgQEAg
cHVibGljOgogICAgIEludFNpemUgY3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9jdXN0b21TaXplRm9yUmVzaXplRXZlbnQ7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldEN1c3RvbVNpemVGb3JSZXNpemVFdmVudChJbnRTaXplKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0U2Nyb2xsVmVsb2NpdHkoZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwg
ZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIGRvdWJsZSB0
aW1lc3RhbXApOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsVmVsb2NpdHkoZG91
YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBz
Y2FsZUNoYW5nZVJhdGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKTsKICNlbHNlCiAgICAgYm9v
bCB1c2VDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCmluZGV4IGE3OTYwYjMxNjNlMzQzODhk
OTkzYmRmY2ZjMGM5NTQ4Njg2NmMxMDIuLmEzNWM4YzY3ZWUyMmI2ZWQ1ZGM4NTNiZGUyZTE5ZjNj
ZWRjZThmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC01OCw4ICs1OSwx
MSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSByZXBlYXRJbnRl
cnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwpOyB9CiAgICAgdm9p
ZCBzdGFydFJlcGVhdGluZyhzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHJlcGVhdEludGVydmFs
KSB7IHN0YXJ0UmVwZWF0aW5nKG1zVG9TZWNvbmRzKHJlcGVhdEludGVydmFsKSk7IH0KKyAgICB2
b2lkIHN0YXJ0UmVwZWF0aW5nKFNlY29uZHMgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnRSZXBlYXRp
bmcocmVwZWF0SW50ZXJ2YWwudmFsdWUoKSk7IH0KKwogICAgIHZvaWQgc3RhcnRPbmVTaG90KGRv
dWJsZSBpbnRlcnZhbCkgeyBzdGFydChpbnRlcnZhbCwgMCk7IH0KICAgICB2b2lkIHN0YXJ0T25l
U2hvdChzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGludGVydmFsKSB7IHN0YXJ0T25lU2hvdCht
c1RvU2Vjb25kcyhpbnRlcnZhbCkpOyB9CisgICAgdm9pZCBzdGFydE9uZVNob3QoU2Vjb25kcyBp
bnRlcnZhbCkgeyBzdGFydChpbnRlcnZhbC52YWx1ZSgpLCAwKTsgfQogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdG9wKCk7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OwpAQCAtNzEsOCAr
NzUsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBhdWdtZW50RmlyZUludGVydmFsKGRvdWJsZSBk
ZWx0YSkgeyBzZXROZXh0RmlyZVRpbWUobV9uZXh0RmlyZVRpbWUgKyBkZWx0YSk7IH0KICAgICB2
b2lkIGF1Z21lbnRGaXJlSW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBkZWx0YSkg
eyBhdWdtZW50RmlyZUludGVydmFsKG1zVG9TZWNvbmRzKGRlbHRhKSk7IH0KKyAgICB2b2lkIGF1
Z21lbnRGaXJlSW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkgeyBhdWdtZW50RmlyZUludGVydmFsKGRl
bHRhLnZhbHVlKCkpOyB9CisKICAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChkb3VibGUg
ZGVsdGEpIHsgYXVnbWVudEZpcmVJbnRlcnZhbChkZWx0YSk7IG1fcmVwZWF0SW50ZXJ2YWwgKz0g
ZGVsdGE7IH0KICAgICB2b2lkIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzIGRlbHRhKSB7IGF1Z21lbnRSZXBlYXRJbnRlcnZhbChtc1RvU2Vjb25kcyhkZWx0
YSkpOyB9CisgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoU2Vjb25kcyBkZWx0YSkgeyBh
dWdtZW50UmVwZWF0SW50ZXJ2YWwoZGVsdGEudmFsdWUoKSk7IH0KIAogICAgIHZvaWQgZGlkQ2hh
bmdlQWxpZ25tZW50SW50ZXJ2YWwoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UaWxlZEJhY2tpbmcuaAppbmRleCBlM2U4MzQyYTI1MDkxM2I2ODg0Y2YzNWFlNThh
YjJjY2Y5NWJiMzU0Li4wZDJiNDg0YmQ4ZmY3OGYzN2U0ZDVmNWUwNzIyYjFmNDk5OTEzYjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaApA
QCAtMjMsOSArMjMsOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgVGlsZWRCYWNraW5nX2gKLSNkZWZpbmUgVGlsZWRCYWNraW5nX2gKKyNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTEsOSArNTEsOSBAQCBzdHJ1
Y3QgVmVsb2NpdHlEYXRhICB7CiAgICAgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eTsKICAgICBk
b3VibGUgdmVydGljYWxWZWxvY2l0eTsKICAgICBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlOwotICAg
IGRvdWJsZSBsYXN0VXBkYXRlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIGxhc3RVcGRhdGVUaW1l
OwogICAgIAotICAgIFZlbG9jaXR5RGF0YShkb3VibGUgaG9yaXpvbnRhbCA9IDAsIGRvdWJsZSB2
ZXJ0aWNhbCA9IDAsIGRvdWJsZSBzY2FsZUNoYW5nZSA9IDAsIGRvdWJsZSB1cGRhdGVUaW1lID0g
MCkKKyAgICBWZWxvY2l0eURhdGEoZG91YmxlIGhvcml6b250YWwgPSAwLCBkb3VibGUgdmVydGlj
YWwgPSAwLCBkb3VibGUgc2NhbGVDaGFuZ2UgPSAwLCBNb25vdG9uaWNUaW1lIHVwZGF0ZVRpbWUg
PSBNb25vdG9uaWNUaW1lKCkpCiAgICAgICAgIDogaG9yaXpvbnRhbFZlbG9jaXR5KGhvcml6b250
YWwpCiAgICAgICAgICwgdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbCkKICAgICAgICAgLCBzY2Fs
ZUNoYW5nZVJhdGUoc2NhbGVDaGFuZ2UpCkBAIC0xNTYsNSArMTU2LDMgQEAgcHVibGljOgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gVGlsZWRCYWNraW5nX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9s
bGVyLmNwcAppbmRleCA0NTRiMDgzYWE3NzY4MDNkZjk4NGM1NzNiODJmYTk3ZDk3YTgwZjUzLi40
MTMyYjA0ODZhM2E4N2QyZWYzYTM3ODhhMjc5OWI2MTRiM2ExZTJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCkBA
IC0zODEsMTMgKzM4MSwxMyBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjphZGp1c3RUaWxlQ292ZXJh
Z2VSZWN0KEZsb2F0UmVjdCYgY292ZXJhZ2VSZWN0LCBjb25zdCBGbG9hdAogICAgIGRvdWJsZSBo
b3Jpem9udGFsTWFyZ2luID0ga0RlZmF1bHRUaWxlU2l6ZSAvIGNvbnRlbnRzU2NhbGU7CiAgICAg
ZG91YmxlIHZlcnRpY2FsTWFyZ2luID0ga0RlZmF1bHRUaWxlU2l6ZSAvIGNvbnRlbnRzU2NhbGU7
CiAKLSAgICBkb3VibGUgY3VycmVudFRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KTsKLSAgICBkb3VibGUgdGltZURlbHRhID0gY3VycmVudFRpbWUgLSBtX3ZlbG9jaXR5Lmxhc3RV
cGRhdGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgY3VycmVudFRpbWUgPSBNb25vdG9uaWNUaW1l
Ojpub3coKTsKKyAgICBTZWNvbmRzIHRpbWVEZWx0YSA9IGN1cnJlbnRUaW1lIC0gbV92ZWxvY2l0
eS5sYXN0VXBkYXRlVGltZTsKIAogICAgIEZsb2F0UmVjdCBmdXR1cmVSZWN0ID0gdmlzaWJsZVJl
Y3Q7CiAgICAgZnV0dXJlUmVjdC5zZXRMb2NhdGlvbihGbG9hdFBvaW50KAotICAgICAgICBmdXR1
cmVSZWN0LmxvY2F0aW9uKCkueCgpICsgdGltZURlbHRhICogbV92ZWxvY2l0eS5ob3Jpem9udGFs
VmVsb2NpdHksCi0gICAgICAgIGZ1dHVyZVJlY3QubG9jYXRpb24oKS55KCkgKyB0aW1lRGVsdGEg
KiBtX3ZlbG9jaXR5LnZlcnRpY2FsVmVsb2NpdHkpKTsKKyAgICAgICAgZnV0dXJlUmVjdC5sb2Nh
dGlvbigpLngoKSArIHRpbWVEZWx0YS52YWx1ZSgpICogbV92ZWxvY2l0eS5ob3Jpem9udGFsVmVs
b2NpdHksCisgICAgICAgIGZ1dHVyZVJlY3QubG9jYXRpb24oKS55KCkgKyB0aW1lRGVsdGEudmFs
dWUoKSAqIG1fdmVsb2NpdHkudmVydGljYWxWZWxvY2l0eSkpOwogCiAgICAgaWYgKG1fdmVsb2Np
dHkuaG9yaXpvbnRhbFZlbG9jaXR5KSB7CiAgICAgICAgIGZ1dHVyZVJlY3Quc2V0V2lkdGgoZnV0
dXJlUmVjdC53aWR0aCgpICsgaG9yaXpvbnRhbE1hcmdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKaW5kZXggNzJj
NmY4ZWNjNDhjMDMyM2NiZTQ1NGZiMDk0NmE0MGZhZmFlY2E0Yi4uZTBmNWYwODE1YmMzYjliMzdl
ODEyNGRmMDY0ZDBkYWRkZDliYzhlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcApAQCAtMTE2LDcgKzExNiw3IEBA
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8mIGluZm8pCiAgICAgaWYgKGluZm8uZW5jbG9zZWRJblNjcm9sbGFi
bGVBbmNlc3RvclZpZXcoKSkKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJlbmNsb3NlZEluU2Ny
b2xsYWJsZUFuY2VzdG9yVmlldyIsIGluZm8uZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZp
ZXcoKSk7CiAKLSAgICB0cy5kdW1wUHJvcGVydHkoInRpbWVzdGFtcCIsIGluZm8udGltZXN0YW1w
KCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgidGltZXN0YW1wIiwgaW5mby50aW1lc3RhbXAoKS5z
ZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOwogICAgIGlmIChpbmZvLmhvcml6b250YWxWZWxv
Y2l0eSgpKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoImhvcml6b250YWxWZWxvY2l0eSIsIGlu
Zm8uaG9yaXpvbnRhbFZlbG9jaXR5KCkpOwogICAgIGlmIChpbmZvLnZlcnRpY2FsVmVsb2NpdHko
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5oCmluZGV4IGQ3YjZlNmRlMmYwNWQzZTdmNjA4YjllMzk4ZDc0NTJlYWI4NTFjNmEu
LmRkM2E4N2E0MWJjMjgyMTZmMzVkYzk0OTMwNTY1N2ZkMGYyNTJhYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApAQCAt
MjcsNiArMjcsNyBAQAogI2RlZmluZSBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvX2gKIAog
I2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1Rp
bWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIElQQyB7
CkBAIC00Nyw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwKICAgICAgICAgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LAogICAg
ICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG9ic2N1cmVkSW5zZXQsIGRvdWJsZSBzY2Fs
ZSwgYm9vbCBpblN0YWJsZVN0YXRlLCBib29sIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVy
YWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgYm9vbCBlbmNsb3NlZEluU2Nyb2xsYWJs
ZUFuY2VzdG9yVmlldywKLSAgICAgICAgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGhvcml6b250
YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJh
dGUsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQorICAgICAgICBNb25vdG9u
aWNUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRp
Y2FsVmVsb2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIHVpbnQ2NF90IGxhc3RMYXllclRy
ZWVUcmFuc2FjdGlvbklkKQogICAgICAgICA6IG1fZXhwb3NlZENvbnRlbnRSZWN0KGV4cG9zZWRD
b250ZW50UmVjdCkKICAgICAgICAgLCBtX3Vub2JzY3VyZWRDb250ZW50UmVjdCh1bm9ic2N1cmVk
Q29udGVudFJlY3QpCiAgICAgICAgICwgbV91bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzKHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMpCkBAIC03OCw3ICs3
OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93U2hyaW5rVG9GaXQoKSBjb25zdCB7IHJldHVy
biBtX2FsbG93U2hyaW5rVG9GaXQ7IH0KICAgICBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5j
ZXN0b3JWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9y
VmlldzsgfQogCi0gICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0
YW1wOyB9CisgICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3Rp
bWVzdGFtcDsgfQogICAgIGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHkoKSBjb25zdCB7IHJldHVy
biBtX2hvcml6b250YWxWZWxvY2l0eTsgfQogICAgIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5KCkg
Y29uc3QgeyByZXR1cm4gbV92ZXJ0aWNhbFZlbG9jaXR5OyB9CiAgICAgZG91YmxlIHNjYWxlQ2hh
bmdlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVDaGFuZ2VSYXRlOyB9CkBAIC05OCw3ICs5
OSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fb2JzY3VyZWRJbnNldDsK
ICAgICB1aW50NjRfdCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEIHsgMCB9OwogICAgIGRv
dWJsZSBtX3NjYWxlIHsgLTEgfTsKLSAgICBkb3VibGUgbV90aW1lc3RhbXAgeyAwIH07CisgICAg
TW9ub3RvbmljVGltZSBtX3RpbWVzdGFtcDsKICAgICBkb3VibGUgbV9ob3Jpem9udGFsVmVsb2Np
dHkgeyAwIH07CiAgICAgZG91YmxlIG1fdmVydGljYWxWZWxvY2l0eSB7IDAgfTsKICAgICBkb3Vi
bGUgbV9zY2FsZUNoYW5nZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDM5ZWU0MDZlN2RlYmU2MThmYTFmYzgxYWMw
MDM4YWI1YmFhM2RmZTEuLmExODE3NzY4ODQ1ZDg4N2QzOWM5ZDQ2OWZlZjY4Mjc2ZmYzNDAxNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CkBAIC02OSw2ICs2OSw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dpbmRvd0ZlYXR1cmVzLmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KKyNpbmNs
dWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTEwMyw2ICsxMDUsMzYgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIElQQyB7CiAKK3ZvaWQgQXJndW1lbnRDb2Rl
cjxNb25vdG9uaWNUaW1lPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE1vbm90b25p
Y1RpbWUmIHRpbWUpCit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCku
dmFsdWUoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPE1vbm90b25pY1RpbWU+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgTW9ub3RvbmljVGltZSYgdGltZSkKK3sKKyAgICBkb3VibGUgdmFs
dWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHRpbWUgPSBNb25vdG9uaWNUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCit7CisgICAgZW5jb2Rl
ciA8PCBzZWNvbmRzLnZhbHVlKCk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlY29uZHMmIHNlY29uZHMpCit7CisgICAgZG91Ymxl
IHZhbHVlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBzZWNvbmRzID0gU2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBhZmZpbmVUcmFuc2Zvcm0pCiB7CiAg
ICAgU2ltcGxlQXJndW1lbnRDb2RlcjxBZmZpbmVUcmFuc2Zvcm0+OjplbmNvZGUoZW5jb2Rlciwg
YWZmaW5lVHJhbnNmb3JtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAppbmRleCBkNmVmM2RkMmQ0NzdiNmMwYjRkMmYyOTJhMjMxNzdjMTUyOGNjZmRk
Li41M2FhMzRjZGI5YTAxMzdjMmM0NzIxMDAzOTlmYjhlZWZjOTA0NWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zMSw2ICszMSwxMSBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvSW5kZXhlZERCLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXlt
ZW50SGVhZGVycy5oPgogCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1vbm90b25pY1RpbWU7Citj
bGFzcyBTZWNvbmRzOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBZmZpbmVUcmFu
c2Zvcm07CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKQEAgLTE0Niw2ICsxNTEsMTYg
QEAgdXNpbmcgSURCS2V5UGF0aCA9IFZhcmlhbnQ8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj47CiAK
IG5hbWVzcGFjZSBJUEMgewogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6
TW9ub3RvbmljVGltZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V1RGOjpNb25vdG9uaWNUaW1lJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
VEY6Ok1vbm90b25pY1RpbWUmKTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V1RGOjpTZWNvbmRzPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXVEY6OlNlY29uZHMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdURjo6
U2Vjb25kcyYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpBZmZpbmVUcmFuc2Zvcm0+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggMWVhMGU4MTFhYzBkYTAzZTliNjhl
MzhkMzQ4MmQ4ODRmNGY5N2ZiNi4uMWMyMjkwODBiZGU0OTg0NDU5ZmE2YWNiMmM2YWE5NGY3OGY0
ZDQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5t
bQpAQCAtOTIsMTUgKzkyLDE0IEBAIHB1YmxpYzoKICAgICBIaXN0b3JpY2FsVmVsb2NpdHlEYXRh
KCkKICAgICAgICAgOiBtX2hpc3RvcnlTaXplKDApCiAgICAgICAgICwgbV9sYXRlc3REYXRhSW5k
ZXgoMCkKLSAgICAgICAgLCBtX2xhc3RBcHBlbmRUaW1lc3RhbXAoMCkKICAgICB7CiAgICAgfQog
Ci0gICAgVmVsb2NpdHlEYXRhIHZlbG9jaXR5Rm9yTmV3RGF0YShDR1BvaW50IG5ld1Bvc2l0aW9u
LCBkb3VibGUgc2NhbGUsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgVmVsb2NpdHlEYXRhIHZlbG9j
aXR5Rm9yTmV3RGF0YShDR1BvaW50IG5ld1Bvc2l0aW9uLCBkb3VibGUgc2NhbGUsIE1vbm90b25p
Y1RpbWUgdGltZXN0YW1wKQogICAgIHsKICAgICAgICAgLy8gRHVlIHRvIGFsbCB0aGUgc291cmNl
IG9mIHJlY3QgdXBkYXRlLCB0aGUgaW5wdXQgaXMgdmVyeSBub2lzeS4gVG8gc21vb3RoIHRoZSBv
dXRwdXQsIHdlIGFjY3VtdWxhdGUgYWxsIGNoYW5nZXMKICAgICAgICAgLy8gd2l0aGluIDEgZnJh
bWUgYXMgYSBzaW5nbGUgdXBkYXRlLiBObyBzcGVlZCBjb21wdXRhdGlvbiBpcyBldmVyIGRvbmUg
b24gZGF0YSB3aXRoaW4gdGhlIHNhbWUgZnJhbWUuCi0gICAgICAgIGNvbnN0IGRvdWJsZSBmaWx0
ZXJpbmdUaHJlc2hvbGQgPSAxIC8gNjAuOworICAgICAgICBjb25zdCBTZWNvbmRzIGZpbHRlcmlu
Z1RocmVzaG9sZCgxLjAgLyA2MCk7CiAKICAgICAgICAgVmVsb2NpdHlEYXRhIHZlbG9jaXR5RGF0
YTsKICAgICAgICAgaWYgKG1faGlzdG9yeVNpemUgPiAwKSB7CkBAIC0xMTEsMTQgKzExMCwxNCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgb2xkZXN0RGF0YUlu
ZGV4ID0gbV9oaXN0b3J5U2l6ZSAtIChkaXN0YW5jZVRvTGFzdEhpc3RvcmljYWxEYXRhIC0gbV9s
YXRlc3REYXRhSW5kZXgpOwogCi0gICAgICAgICAgICBkb3VibGUgdGltZURlbHRhID0gdGltZXN0
YW1wIC0gbV9oaXN0b3J5W29sZGVzdERhdGFJbmRleF0udGltZXN0YW1wOworICAgICAgICAgICAg
U2Vjb25kcyB0aW1lRGVsdGEgPSB0aW1lc3RhbXAgLSBtX2hpc3Rvcnlbb2xkZXN0RGF0YUluZGV4
XS50aW1lc3RhbXA7CiAgICAgICAgICAgICBpZiAodGltZURlbHRhID4gZmlsdGVyaW5nVGhyZXNo
b2xkKSB7CiAgICAgICAgICAgICAgICAgRGF0YSYgb2xkZXN0RGF0YSA9IG1faGlzdG9yeVtvbGRl
c3REYXRhSW5kZXhdOwotICAgICAgICAgICAgICAgIHZlbG9jaXR5RGF0YSA9IFZlbG9jaXR5RGF0
YSgobmV3UG9zaXRpb24ueCAtIG9sZGVzdERhdGEucG9zaXRpb24ueCkgLyB0aW1lRGVsdGEsIChu
ZXdQb3NpdGlvbi55IC0gb2xkZXN0RGF0YS5wb3NpdGlvbi55KSAvIHRpbWVEZWx0YSwgKHNjYWxl
IC0gb2xkZXN0RGF0YS5zY2FsZSkgLyB0aW1lRGVsdGEpOworICAgICAgICAgICAgICAgIHZlbG9j
aXR5RGF0YSA9IFZlbG9jaXR5RGF0YSgobmV3UG9zaXRpb24ueCAtIG9sZGVzdERhdGEucG9zaXRp
b24ueCkgLyB0aW1lRGVsdGEuc2Vjb25kcygpLCAobmV3UG9zaXRpb24ueSAtIG9sZGVzdERhdGEu
cG9zaXRpb24ueSkgLyB0aW1lRGVsdGEuc2Vjb25kcygpLCAoc2NhbGUgLSBvbGRlc3REYXRhLnNj
YWxlKSAvIHRpbWVEZWx0YS5zZWNvbmRzKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
LSAgICAgICAgZG91YmxlIHRpbWVTaW5jZUxhc3RBcHBlbmQgPSB0aW1lc3RhbXAgLSBtX2xhc3RB
cHBlbmRUaW1lc3RhbXA7CisgICAgICAgIFNlY29uZHMgdGltZVNpbmNlTGFzdEFwcGVuZCA9IHRp
bWVzdGFtcCAtIG1fbGFzdEFwcGVuZFRpbWVzdGFtcDsKICAgICAgICAgaWYgKHRpbWVTaW5jZUxh
c3RBcHBlbmQgPiBmaWx0ZXJpbmdUaHJlc2hvbGQpCiAgICAgICAgICAgICBhcHBlbmQobmV3UG9z
aXRpb24sIHNjYWxlLCB0aW1lc3RhbXApOwogICAgICAgICBlbHNlCkBAIC0xMjksNyArMTI4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIoKSB7IG1faGlzdG9yeVNpemUgPSAwOyB9CiAKIHBy
aXZhdGU6Ci0gICAgdm9pZCBhcHBlbmQoQ0dQb2ludCBuZXdQb3NpdGlvbiwgZG91YmxlIHNjYWxl
LCBkb3VibGUgdGltZXN0YW1wKQorICAgIHZvaWQgYXBwZW5kKENHUG9pbnQgbmV3UG9zaXRpb24s
IGRvdWJsZSBzY2FsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCiAgICAgewogICAgICAgICBt
X2xhdGVzdERhdGFJbmRleCA9IChtX2xhdGVzdERhdGFJbmRleCArIDEpICUgbWF4SGlzdG9yeURl
cHRoOwogICAgICAgICBtX2hpc3RvcnlbbV9sYXRlc3REYXRhSW5kZXhdID0geyB0aW1lc3RhbXAs
IG5ld1Bvc2l0aW9uLCBzY2FsZSB9OwpAQCAtMTQ2LDEwICsxNDUsMTAgQEAgcHJpdmF0ZToKIAog
ICAgIHVuc2lnbmVkIG1faGlzdG9yeVNpemU7CiAgICAgdW5zaWduZWQgbV9sYXRlc3REYXRhSW5k
ZXg7Ci0gICAgZG91YmxlIG1fbGFzdEFwcGVuZFRpbWVzdGFtcDsKKyAgICBNb25vdG9uaWNUaW1l
IG1fbGFzdEFwcGVuZFRpbWVzdGFtcDsKIAogICAgIHN0cnVjdCBEYXRhIHsKLSAgICAgICAgZG91
YmxlIHRpbWVzdGFtcDsKKyAgICAgICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXA7CiAgICAgICAg
IENHUG9pbnQgcG9zaXRpb247CiAgICAgICAgIGRvdWJsZSBzY2FsZTsKICAgICB9IG1faGlzdG9y
eVttYXhIaXN0b3J5RGVwdGhdOwpAQCAtMzcwLDcgKzM2OSw3IEBAIC0gKHZvaWQpZGlkVXBkYXRl
VmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlUmVjdCB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVu
b2JzY3VyCiAgICAgaWYgKCFkcmF3aW5nQXJlYSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZG91
YmxlIHRpbWVzdGFtcCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgSGlzdG9yaWNh
bFZlbG9jaXR5RGF0YTo6VmVsb2NpdHlEYXRhIHZlbG9jaXR5RGF0YTsKICAgICBpZiAoIWlzU3Rh
YmxlU3RhdGUpCiAgICAgICAgIHZlbG9jaXR5RGF0YSA9IF9oaXN0b3JpY2FsS2luZW1hdGljRGF0
YS52ZWxvY2l0eUZvck5ld0RhdGEodmlzaWJsZVJlY3Qub3JpZ2luLCB6b29tU2NhbGUsIHRpbWVz
dGFtcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA4Yzg5YmVhYjNmYTRkNWY0MmFjNTk5NDg5
N2Q2OGExZGNjMDAxNTIyLi42YTdlY2M0YWFhN2JmMDQ1MDM0ODhiMWQ2NTYzMGZjYTUwYTlmNDc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE3NCw3ICsxNzQsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgd2ViQXBwT3JpZW50YXRpb25zVXBkYXRlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2hv
d1BsYXliYWNrVGFyZ2V0UGlja2VyKGJvb2wgaGFzVmlkZW8pIG92ZXJyaWRlOwogCi0gICAgc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyBldmVudFRocm90dGxpbmdEZWxheSgpIG92ZXJyaWRlOwor
ICAgIFNlY29uZHMgZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSBvdmVycmlkZTsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVu
dElPUy5tbQppbmRleCAzYzIyNDM1ZmYzMzg3N2I5NTYyMzY5YzA4OTEzMWFiMGExZGEyMWRlLi4w
ZGZmODA4NDk2NmNiNTllMDA5YzVhOGZlNmIxNzZkZDhmYTg4MzY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3Mv
V2ViQ2hyb21lQ2xpZW50SU9TLm1tCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvKQogICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
aGFzVmlkZW8sIG1fcGFnZS0+cmVjdEZvckVsZW1lbnRBdEludGVyYWN0aW9uTG9jYXRpb24oKSkp
OwogfQogCi1zdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIFdlYkNocm9tZUNsaWVudDo6ZXZlbnRU
aHJvdHRsaW5nRGVsYXkoKQorU2Vjb25kcyBXZWJDaHJvbWVDbGllbnQ6OmV2ZW50VGhyb3R0bGlu
Z0RlbGF5KCkKIHsKICAgICByZXR1cm4gbV9wYWdlLT5ldmVudFRocm90dGxpbmdEZWxheSgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRh
dGVEaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1Vw
ZGF0ZURpc3BhdGNoZXIuaAppbmRleCBiZmY5ZjZkYjcxZjU2NWE4ZDI2YTU2NjgzYjAzZGM2NGY1
NjlhODIzLi5lNDdkYzRlMWQ0MTY4MjIzNDBhZmFkZWEyYTNjODA2MjBmNGIyMDg4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNo
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURp
c3BhdGNoZXIuaApAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFVwZGF0
ZURhdGEgewogICAgICAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvIHZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm87Ci0gICAgICAgIGRvdWJsZSBvbGRlc3RUaW1lc3RhbXA7CisgICAg
ICAgIE1vbm90b25pY1RpbWUgb2xkZXN0VGltZXN0YW1wOwogICAgIH07CiAKICAgICBSZWY8V29y
a1F1ZXVlPiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDZmZDBjNzk2YTA0YzFiNWFlNDNhYWExZDM4MDBlNzAwOGRiNjAyOGQu
LjJhZDZhYTIxMDNiZGFmOTRiMTMyZDIyZDc4MmUyNjRmYzBjOGJkZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTI4OCwyNyArMjg4LDEx
IEBAIFJlZjxXZWJQYWdlPiBXZWJQYWdlOjpjcmVhdGUodWludDY0X3QgcGFnZUlELCBjb25zdCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwCiBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBh
Z2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICA6
IG1fcGFnZUlEKHBhZ2VJRCkKICAgICAsIG1fdmlld1NpemUocGFyYW1ldGVycy52aWV3U2l6ZSkK
LSAgICAsIG1faGFzU2VlblBsdWdpbihmYWxzZSkKLSAgICAsIG1fdXNlRml4ZWRMYXlvdXQoZmFs
c2UpCi0gICAgLCBtX2RyYXdzQmFja2dyb3VuZCh0cnVlKQotICAgICwgbV9pc0luUmVkbyhmYWxz
ZSkKLSAgICAsIG1faXNDbG9zZWQoZmFsc2UpCi0gICAgLCBtX3RhYlRvTGlua3MoZmFsc2UpCi0g
ICAgLCBtX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZChmYWxzZSkKLSAg
ICAsIG1fYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lu
cyhmYWxzZSkKLSAgICAsIG1fYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFi
bGVkKGZhbHNlKQotICAgICwgbV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGZh
bHNlKQotICAgICwgbV9tYWluRnJhbWVJc1Njcm9sbGFibGUodHJ1ZSkKICNpZiBFTkFCTEUoUFJJ
TUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQotICAgICwgbV9yZWFkeVRvRmluZFBy
aW1hcnlTbmFwc2hvdHRlZFBsdWdpbihmYWxzZSkKLSAgICAsIG1fZGlkRmluZFByaW1hcnlTbmFw
c2hvdHRlZFBsdWdpbihmYWxzZSkKLSAgICAsIG1fbnVtYmVyT2ZQcmltYXJ5U25hcHNob3REZXRl
Y3Rpb25BdHRlbXB0cygwKQogICAgICwgbV9kZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVn
SW5UaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJQYWdlOjpkZXRlcm1pbmVQcmltYXJ5
U25hcHNob3R0ZWRQbHVnSW5UaW1lckZpcmVkKQogI2VuZGlmCiAgICAgLCBtX2xheWVySG9zdGlu
Z01vZGUocGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlKQogI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgICwgbV9wZGZQbHVnaW5FbmFibGVkKGZhbHNlKQotICAgICwgbV9oYXNDYWNoZWRXaW5kb3dG
cmFtZShmYWxzZSkKICAgICAsIG1fdmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3RvcigqdGhpcykK
ICNlbGlmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
RUZMKSkKICAgICAsIG1fYWNjZXNzaWJpbGl0eU9iamVjdChudWxscHRyKQpAQCAtMzIwLDkgKzMw
NCw2IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9mb3JtQ2xpZW50KHN0ZDo6bWFr
ZV91bmlxdWU8QVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudD4oKSkKICAgICAsIG1fdWlD
bGllbnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ+
KCkpCiAgICAgLCBtX2ZpbmRDb250cm9sbGVyKHRoaXMpCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCi0gICAgLCBtX2FjdGl2ZUNvbG9yQ2hvb3NlcigwKQotI2VuZGlmCiAgICAgLCBtX3Vz
ZXJDb250ZW50Q29udHJvbGxlcihXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmdldE9yQ3JlYXRl
KHBhcmFtZXRlcnMudXNlckNvbnRlbnRDb250cm9sbGVySUQpKQogI2lmIEVOQUJMRShHRU9MT0NB
VElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIodGhpcykK
QEAgLTMzMyw1MyArMzE0LDE1IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBj
b25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9wYWdl
U2Nyb2xsZWRIeXN0ZXJlc2lzKFt0aGlzXShIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0
YXRlID09IEh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgcGFnZVN0b3BwZWRTY3JvbGxpbmcoKTsg
fSwgcGFnZVNjcm9sbEh5c3RlcmVzaXNTZWNvbmRzKQogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwocGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwp
CiAgICAgLCBtX2NhblJ1bk1vZGFsKHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwpCi0gICAgLCBtX2lz
UnVubmluZ01vZGFsKGZhbHNlKQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgLCBtX2lz
U3RhcnRpbmdEcmFnKGZhbHNlKQotI2VuZGlmCi0gICAgLCBtX2NhY2hlZE1haW5GcmFtZUlzUGlu
bmVkVG9MZWZ0U2lkZSh0cnVlKQotICAgICwgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvUmln
aHRTaWRlKHRydWUpCi0gICAgLCBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlKHRy
dWUpCi0gICAgLCBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9Cb3R0b21TaWRlKHRydWUpCi0g
ICAgLCBtX2NhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyhmYWxzZSkKLSAgICAs
IG1faGFzV2hlZWxFdmVudEhhbmRsZXJzKGZhbHNlKQotICAgICwgbV9jYWNoZWRQYWdlQ291bnQo
MCkKLSAgICAsIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChmYWxzZSkKLSAg
ICAsIG1fdXNlcklzSW50ZXJhY3RpbmcoZmFsc2UpCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
Ci0gICAgLCBtX2lzU2hvd2luZ0NvbnRleHRNZW51KGZhbHNlKQotI2VuZGlmCi0gICAgLCBtX2hh
c1BlbmRpbmdCbHVyTm90aWZpY2F0aW9uKGZhbHNlKQogI2lmIFBMQVRGT1JNKElPUykKLSAgICAs
IG1fc2VsZWN0aW9uQW5jaG9yKFN0YXJ0KQotICAgICwgbV9oYXNSZWNlaXZlZFZpc2libGVDb250
ZW50UmVjdHNBZnRlckRpZENvbW1pdExvYWQoZmFsc2UpCi0gICAgLCBtX3NjYWxlV2FzU2V0QnlV
SVByb2Nlc3MoZmFsc2UpCi0gICAgLCBtX3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxlRmFjdG9yKGZh
bHNlKQotICAgICwgbV9oYXNTdGFibGVQYWdlU2NhbGVGYWN0b3IodHJ1ZSkKLSAgICAsIG1fdXNl
VGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbihmYWxzZSkKLSAgICAsIG1faXNJblN0YWJsZVN0
YXRlKHRydWUpCiAgICAgLCBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKHBhcmFtZXRlcnMuaWdu
b3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMpCi0gICAgLCBtX29sZGVzdE5vblN0YWJsZVVwZGF0ZVZp
c2libGVDb250ZW50UmVjdHNUaW1lc3RhbXAoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6emVy
bygpKQotICAgICwgbV9lc3RpbWF0ZWRMYXRlbmN5KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6
Onplcm8oKSkKICAgICAsIG1fc2NyZWVuU2l6ZShwYXJhbWV0ZXJzLnNjcmVlblNpemUpCiAgICAg
LCBtX2F2YWlsYWJsZVNjcmVlblNpemUocGFyYW1ldGVycy5hdmFpbGFibGVTY3JlZW5TaXplKQot
ICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbigwKQotICAgICwgbV9pbkR5bmFtaWNTaXplVXBkYXRl
KGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX2xheWVyVm9sYXRpbGl0eVRpbWVyKCp0aGlzLCAmV2Vi
UGFnZTo6bGF5ZXJWb2xhdGlsaXR5VGltZXJGaXJlZCkKLSAgICAsIG1fYmFja2dyb3VuZENvbG9y
KENvbG9yOjp3aGl0ZSkKLSAgICAsIG1fbWF4aW11bVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW4o
MCkKLSAgICAsIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yKERvTm90UGluKQotICAgICwgbV91c2VB
c3luY1Njcm9sbGluZyhmYWxzZSkKICAgICAsIG1fYWN0aXZpdHlTdGF0ZShwYXJhbWV0ZXJzLmFj
dGl2aXR5U3RhdGUpCiAgICAgLCBtX3VzZXJBY3Rpdml0eSgiUHJvY2VzcyBzdXBwcmVzc2lvbiBk
aXNhYmxlZCBmb3IgcGFnZS4iKQogICAgICwgbV91c2VyQWN0aXZpdHlIeXN0ZXJlc2lzKFt0aGlz
XShIeXN0ZXJlc2lzU3RhdGUpIHsgdXBkYXRlVXNlckFjdGl2aXR5KCk7IH0pCi0gICAgLCBtX3Bl
bmRpbmdOYXZpZ2F0aW9uSUQoMCkKLSNpZiBFTkFCTEUoV0VCR0wpCi0gICAgLCBtX3N5c3RlbVdl
YkdMUG9saWN5KFdlYkdMQWxsb3dDcmVhdGlvbikKLSNlbmRpZgotICAgICwgbV9tYWluRnJhbWVQ
cm9ncmVzc0NvbXBsZXRlZChmYWxzZSkKLSAgICAsIG1fc2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VN
b3ZlRXZlbnRzKHRydWUpCiAgICAgLCBtX3VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24ocGFy
YW1ldGVycy51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKQogewogICAgIEFTU0VSVChtX3Bh
Z2VJRCk7CkBAIC0zMjg2LDE0ICszMjI5LDE0IEBAIHZvaWQgV2ViUGFnZTo6d2lsbENvbW1pdExh
eWVyVHJlZShSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgbGF5ZXJUcmFuc2FjdGlvbikKICNl
bmRpZgogfQogCi12b2lkIFdlYlBhZ2U6OmRpZEZsdXNoTGF5ZXJUcmVlQXRUaW1lKHN0ZDo6Y2hy
b25vOjptaWxsaXNlY29uZHMgdGltZXN0YW1wKQordm9pZCBXZWJQYWdlOjpkaWRGbHVzaExheWVy
VHJlZUF0VGltZShNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkKIHsKICNpZiBQTEFURk9STShJT1Mp
Ci0gICAgaWYgKG1fb2xkZXN0Tm9uU3RhYmxlVXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c1RpbWVz
dGFtcCAhPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCkpIHsKLSAgICAgICAgc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyBlbGFwc2VkID0gdGltZXN0YW1wIC0gbV9vbGRlc3ROb25T
dGFibGVVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzVGltZXN0YW1wOwotICAgICAgICBtX29sZGVz
dE5vblN0YWJsZVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNUaW1lc3RhbXAgPSBzdGQ6OmNocm9u
bzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCk7CisgICAgaWYgKG1fb2xkZXN0Tm9uU3RhYmxlVXBkYXRl
VmlzaWJsZUNvbnRlbnRSZWN0c1RpbWVzdGFtcCAhPSBTZWNvbmRzKDApKSB7CisgICAgICAgIFNl
Y29uZHMgZWxhcHNlZCA9IHRpbWVzdGFtcCAtIG1fb2xkZXN0Tm9uU3RhYmxlVXBkYXRlVmlzaWJs
ZUNvbnRlbnRSZWN0c1RpbWVzdGFtcDsKKyAgICAgICAgbV9vbGRlc3ROb25TdGFibGVVcGRhdGVW
aXNpYmxlQ29udGVudFJlY3RzVGltZXN0YW1wID0gMDsKIAotICAgICAgICBtX2VzdGltYXRlZExh
dGVuY3kgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHN0YXRpY19jYXN0PHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHM6OnJlcD4obV9lc3RpbWF0ZWRMYXRlbmN5LmNvdW50KCkgKiAwLjgwICsg
ZWxhcHNlZC5jb3VudCgpICogMC4yMCkpOworICAgICAgICBtX2VzdGltYXRlZExhdGVuY3kgPSBt
X2VzdGltYXRlZExhdGVuY3kgKiAwLjgwICsgZWxhcHNlZCAqIDAuMjA7CiAgICAgfQogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0odGltZXN0YW1wKTsKQEAgLTUxNTksNyArNTEwMiw3IEBAIHZvaWQg
V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZChXZWJGcmFtZSogZnJhbWUpCiAgICAgbV9oYXNSZWNlaXZl
ZFZpc2libGVDb250ZW50UmVjdHNBZnRlckRpZENvbW1pdExvYWQgPSBmYWxzZTsKICAgICBtX3Nj
YWxlV2FzU2V0QnlVSVByb2Nlc3MgPSBmYWxzZTsKICAgICBtX3VzZXJIYXNDaGFuZ2VkUGFnZVNj
YWxlRmFjdG9yID0gZmFsc2U7Ci0gICAgbV9lc3RpbWF0ZWRMYXRlbmN5ID0gc3RkOjpjaHJvbm86
Om1pbGxpc2Vjb25kcygxMDAwIC8gNjApOworICAgIG1fZXN0aW1hdGVkTGF0ZW5jeSA9IFNlY29u
ZHMoMS4wIC8gNjApOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZXZlbnREaXNwYXRjaGVyKCkuY2xlYXJRdWV1ZWRUb3VjaEV2ZW50
c0ZvclBhZ2UoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggMDkxZDhlYTJmOTE5MjZlYjU2ZWFmNzNlODY4YjY4NmE0MmUyY2U1NC4uZGQ2
MmE5OTNiYmZhMzJmNThiOWYyOWFlZDkwZGE0MjcxMjk3NjQ5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03Myw5ICs3MywxMSBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW5jbHVkZSA8bWVtb3J5Pgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIChQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCkBAIC0yNDcsNyArMjQ5LDcgQEAgcHVibGlj
OgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCB3aWxsQ29tbWl0TGF5ZXJUcmVlKFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJik7Ci0gICAgdm9pZCBkaWRGbHVzaExheWVyVHJlZUF0
VGltZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKTsKKyAgICB2b2lkIGRpZEZsdXNoTGF5ZXJU
cmVlQXRUaW1lKE1vbm90b25pY1RpbWUpOwogI2VuZGlmCiAKICAgICBlbnVtIGNsYXNzIExhenlD
cmVhdGlvblBvbGljeSB7IFVzZUV4aXN0aW5nT25seSwgQ3JlYXRlSWZOZWVkZWQgfTsKQEAgLTU3
Nyw3ICs1NzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hh
bmdlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kV2l0aENhbGxi
YWNrKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCi0gICAgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBldmVudFRocm90dGxpbmdEZWxheSgpIGNvbnN0OworICAgIFNlY29u
ZHMgZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSBjb25zdDsKIAogICAgIHZvaWQgc2hvd0luc3BlY3Rv
ckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKTsKICAgICB2b2lkIGhpZGVJbnNw
ZWN0b3JIaWdobGlnaHQoKTsKQEAgLTgyNSw3ICs4MjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90KTsKICAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNp
emVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGRvdWJsZSBzY2Fs
ZSwgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6
ZVVwZGF0ZUlEKTsKICAgICB2b2lkIHN5bmNocm9uaXplRHluYW1pY1ZpZXdwb3J0VXBkYXRlKGRv
dWJsZSYgbmV3VGFyZ2V0U2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0
aW9uLCB1aW50NjRfdCYgbmV4dFZhbGlkTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCk7Ci0gICAgdm9p
ZCB1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8mLCBkb3VibGUgb2xkZXN0VGltZXN0YW1wKTsKKyAgICB2b2lkIHVwZGF0ZVZpc2libGVD
b250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYsIE1vbm90b25p
Y1RpbWUgb2xkZXN0VGltZXN0YW1wKTsKICAgICBib29sIHNjYWxlV2FzU2V0QnlVSVByb2Nlc3Mo
KSBjb25zdCB7IHJldHVybiBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KICAgICB2b2lkIHdp
bGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCk7CiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxS
ZXNpZ25BY3RpdmUoKTsKQEAgLTEyNTEsMzcgKzEyNTMsMzMgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWE+IG1fZHJhd2luZ0FyZWE7CiAKICAgICBIYXNoU2V0PFBs
dWdpblZpZXcqPiBtX3BsdWdpblZpZXdzOwotICAgIGJvb2wgbV9oYXNTZWVuUGx1Z2luOworICAg
IGJvb2wgbV9oYXNTZWVuUGx1Z2luIHsgZmFsc2UgfTsKIAogICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0Pj4gbV9wZW5kaW5nVGV4dENoZWNr
aW5nUmVxdWVzdE1hcDsKIAotICAgIGJvb2wgbV91c2VGaXhlZExheW91dDsKLQotICAgIGJvb2wg
bV9kcmF3c0JhY2tncm91bmQ7CisgICAgYm9vbCBtX3VzZUZpeGVkTGF5b3V0IHsgZmFsc2UgfTsK
KyAgICBib29sIG1fZHJhd3NCYWNrZ3JvdW5kIHsgdHJ1ZSB9OwogCiAgICAgV2ViQ29yZTo6Q29s
b3IgbV91bmRlcmxheUNvbG9yOwogCi0gICAgYm9vbCBtX2lzSW5SZWRvOwotICAgIGJvb2wgbV9p
c0Nsb3NlZDsKLQotICAgIGJvb2wgbV90YWJUb0xpbmtzOworICAgIGJvb2wgbV9pc0luUmVkbyB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdGFi
VG9MaW5rcyB7IGZhbHNlIH07CiAgICAgCi0gICAgYm9vbCBtX2FzeW5jaHJvbm91c1BsdWdpbklu
aXRpYWxpemF0aW9uRW5hYmxlZDsKLSAgICBib29sIG1fYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlh
bGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2luczsKLSAgICBib29sIG1fYXJ0aWZpY2lhbFBsdWdp
bkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkOwotCi0gICAgYm9vbCBtX3Njcm9sbGluZ1BlcmZv
cm1hbmNlTG9nZ2luZ0VuYWJsZWQ7Ci0KLSAgICBib29sIG1fbWFpbkZyYW1lSXNTY3JvbGxhYmxl
OworICAgIGJvb2wgbV9hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9hc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJs
ZWRGb3JBbGxQbHVnaW5zIHsgZmFsc2UgfTsKKyAgICBib29sIG1fYXJ0aWZpY2lhbFBsdWdpbklu
aXRpYWxpemF0aW9uRGVsYXlFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2Nyb2xsaW5n
UGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX21haW5GcmFt
ZUlzU2Nyb2xsYWJsZSB7IHRydWUgfTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBib29sIG1f
aWdub3JlVmlld3BvcnRTY2FsaW5nQ29uc3RyYWludHMgeyBmYWxzZSB9OwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDKQotICAgIGJvb2wg
bV9yZWFkeVRvRmluZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbjsKLSAgICBib29sIG1fZGlkRmlu
ZFByaW1hcnlTbmFwc2hvdHRlZFBsdWdpbjsKLSAgICB1bnNpZ25lZCBtX251bWJlck9mUHJpbWFy
eVNuYXBzaG90RGV0ZWN0aW9uQXR0ZW1wdHM7CisgICAgYm9vbCBtX3JlYWR5VG9GaW5kUHJpbWFy
eVNuYXBzaG90dGVkUGx1Z2luIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZGlkRmluZFByaW1hcnlT
bmFwc2hvdHRlZFBsdWdpbiB7IGZhbHNlIH07CisgICAgdW5zaWduZWQgbV9udW1iZXJPZlByaW1h
cnlTbmFwc2hvdERldGVjdGlvbkF0dGVtcHRzIHsgMCB9OwogICAgIFN0cmluZyBtX3ByaW1hcnlQ
bHVnSW5QYWdlT3JpZ2luOwogICAgIFN0cmluZyBtX3ByaW1hcnlQbHVnSW5PcmlnaW47CiAgICAg
U3RyaW5nIG1fcHJpbWFyeVBsdWdJbk1pbWVUeXBlOwpAQCAtMTI5Miw5ICsxMjkwLDggQEAgcHJp
dmF0ZToKICAgICBMYXllckhvc3RpbmdNb2RlIG1fbGF5ZXJIb3N0aW5nTW9kZTsKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkOwotCi0gICAgYm9vbCBt
X2hhc0NhY2hlZFdpbmRvd0ZyYW1lOworICAgIGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faGFzQ2FjaGVkV2luZG93RnJhbWUgeyBmYWxzZSB9OwogCiAgICAg
Ly8gVGhlIGZyYW1lIG9mIHRoZSBjb250YWluaW5nIHdpbmRvdyBpbiBzY3JlZW4gY29vcmRpbmF0
ZXMuCiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5h
dGVzOwpAQCAtMTMyMCw3ICsxMzE3LDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKEdUSykg
JiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogICAgIC8vIE91ciB2aWV3J3Mgd2luZG93IGluIHRo
ZSBVSSBwcm9jZXNzLgotICAgIHVpbnQ2NF90IG1fbmF0aXZlV2luZG93SGFuZGxlOworICAgIHVp
bnQ2NF90IG1fbmF0aXZlV2luZG93SGFuZGxlIHsgMCB9OwogI2VuZGlmCiAKICNpZiAhUExBVEZP
Uk0oSU9TKQpAQCAtMTMyOSw3ICsxMzI2LDcgQEAgcHJpdmF0ZToKICNlbmRpZiAvLyAhUExBVEZP
Uk0oSU9TKQogCiAgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZXRDYW5TdGFydE1lZGlh
VGltZXI7Ci0gICAgYm9vbCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CisgICAgYm9vbCBt
X21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cgeyBmYWxzZSB9OwogCiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPFdlYlVuZG9TdGVwPj4gbV91bmRvU3RlcE1hcDsKIApAQCAtMTM2OCw3ICsx
MzY1LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29udGV4dE1lbnU+IG1fY29udGV4dE1l
bnU7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBXZWJDb2xvckNo
b29zZXIqIG1fYWN0aXZlQ29sb3JDaG9vc2VyOworICAgIFdlYkNvbG9yQ2hvb3NlciogbV9hY3Rp
dmVDb2xvckNob29zZXIgeyBudWxscHRyIH07CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXI+IG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAgICAg
UmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9ub3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CkBAIC0xMzk1LDQxICsxMzkyLDQxIEBAIHByaXZh
dGU6CiAKICAgICBXZWJDb3JlOjpIeXN0ZXJlc2lzQWN0aXZpdHkgbV9wYWdlU2Nyb2xsZWRIeXN0
ZXJlc2lzOwogCi0gICAgYm9vbCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAg
ICBib29sIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsIHsgZmFsc2UgfTsKIAotICAg
IGJvb2wgbV9jYW5SdW5Nb2RhbDsKLSAgICBib29sIG1faXNSdW5uaW5nTW9kYWw7CisgICAgYm9v
bCBtX2NhblJ1bk1vZGFsIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSdW5uaW5nTW9kYWwgeyBm
YWxzZSB9OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIG1faXNTdGFydGlu
Z0RyYWc7CisgICAgYm9vbCBtX2lzU3RhcnRpbmdEcmFnIHsgZmFsc2UgfTsKICNlbmRpZgogCi0g
ICAgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZTsKLSAgICBib29sIG1f
Y2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lkZTsKLSAgICBib29sIG1fY2FjaGVkTWFp
bkZyYW1lSXNQaW5uZWRUb1RvcFNpZGU7Ci0gICAgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUlzUGlu
bmVkVG9Cb3R0b21TaWRlOwotICAgIGJvb2wgbV9jYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hl
ZWxFdmVudHM7Ci0gICAgYm9vbCBtX2hhc1doZWVsRXZlbnRIYW5kbGVyczsKKyAgICBib29sIG1f
Y2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRlIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9j
YWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9j
YWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZSB7IHRydWUgfTsKKyAgICBib29sIG1fY2Fj
aGVkTWFpbkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGUgeyB0cnVlIH07CisgICAgYm9vbCBtX2Nh
blNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2hhc1doZWVsRXZlbnRIYW5kbGVycyB7IGZhbHNlIH07CiAKLSAgICB1bnNpZ25lZCBtX2NhY2hl
ZFBhZ2VDb3VudDsKKyAgICB1bnNpZ25lZCBtX2NhY2hlZFBhZ2VDb3VudCB7IDAgfTsKIAogICAg
IEhhc2hTZXQ8dW5zaWduZWQgbG9uZz4gbV90cmFja2VkTmV0d29ya1Jlc291cmNlUmVxdWVzdElk
ZW50aWZpZXJzOwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX21pbmltdW1MYXlvdXRTaXplOwot
ICAgIGJvb2wgbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OworICAgIGJvb2wg
bV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0IHsgZmFsc2UgfTsKIAotICAgIGJv
b2wgbV91c2VySXNJbnRlcmFjdGluZzsKKyAgICBib29sIG1fdXNlcklzSW50ZXJhY3RpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9pc0Fzc2lzdGluZ05vZGVEdWVUb1VzZXJJbnRlcmFjdGlvbiB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc0V2ZXJGb2N1c2VkRWxlbWVudER1ZVRvVXNlckludGVy
YWN0aW9uU2luY2VQYWdlVHJhbnNpdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX25lZWRzSGlk
ZGVuQ29udGVudEVkaXRhYmxlUXVpcmsgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9uZWVkc1BsYWlu
VGV4dFF1aXJrIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotICAgIGJv
b2wgbV9pc1Nob3dpbmdDb250ZXh0TWVudTsKKyAgICBib29sIG1faXNTaG93aW5nQ29udGV4dE1l
bnUgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbV9hc3Np
c3RlZE5vZGU7Ci0gICAgYm9vbCBtX2hhc1BlbmRpbmdCbHVyTm90aWZpY2F0aW9uOworICAgIGJv
b2wgbV9oYXNQZW5kaW5nQmx1ck5vdGlmaWNhdGlvbiB7IGZhbHNlIH07CiAgICAgCiAjaWYgUExB
VEZPUk0oSU9TKQogICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gbV9jdXJyZW50V29yZFJhbmdl
OwpAQCAtMTQ0MCwyMSArMTQzNywyMSBAQCBwcml2YXRlOgogICAgICAgICBTdGFydCwKICAgICAg
ICAgRW5kCiAgICAgfTsKLSAgICBTZWxlY3Rpb25BbmNob3IgbV9zZWxlY3Rpb25BbmNob3I7Cisg
ICAgU2VsZWN0aW9uQW5jaG9yIG1fc2VsZWN0aW9uQW5jaG9yIHsgU3RhcnQgfTsKIAogICAgIFJl
ZlB0cjxXZWJDb3JlOjpOb2RlPiBtX3BvdGVudGlhbFRhcE5vZGU7CiAgICAgV2ViQ29yZTo6Rmxv
YXRQb2ludCBtX3BvdGVudGlhbFRhcExvY2F0aW9uOwogCiAgICAgV2ViQ29yZTo6Vmlld3BvcnRD
b25maWd1cmF0aW9uIG1fdmlld3BvcnRDb25maWd1cmF0aW9uOwotICAgIGJvb2wgbV9oYXNSZWNl
aXZlZFZpc2libGVDb250ZW50UmVjdHNBZnRlckRpZENvbW1pdExvYWQ7Ci0gICAgYm9vbCBtX3Nj
YWxlV2FzU2V0QnlVSVByb2Nlc3M7Ci0gICAgYm9vbCBtX3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxl
RmFjdG9yOwotICAgIGJvb2wgbV9oYXNTdGFibGVQYWdlU2NhbGVGYWN0b3I7Ci0gICAgYm9vbCBt
X3VzZVRlc3RpbmdWaWV3cG9ydENvbmZpZ3VyYXRpb247Ci0gICAgYm9vbCBtX2lzSW5TdGFibGVT
dGF0ZTsKLSAgICBib29sIG1fZm9yY2VBbHdheXNVc2VyU2NhbGFibGU7Ci0gICAgc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kcyBtX29sZGVzdE5vblN0YWJsZVVwZGF0ZVZpc2libGVDb250ZW50UmVj
dHNUaW1lc3RhbXA7Ci0gICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBtX2VzdGltYXRlZExh
dGVuY3k7CisgICAgYm9vbCBtX2hhc1JlY2VpdmVkVmlzaWJsZUNvbnRlbnRSZWN0c0FmdGVyRGlk
Q29tbWl0TG9hZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3Mg
eyBmYWxzZSB9OworICAgIGJvb2wgbV91c2VySGFzQ2hhbmdlZFBhZ2VTY2FsZUZhY3RvciB7IGZh
bHNlIH07CisgICAgYm9vbCBtX2hhc1N0YWJsZVBhZ2VTY2FsZUZhY3RvciB7IHRydWUgfTsKKyAg
ICBib29sIG1fdXNlVGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbiB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2lzSW5TdGFibGVTdGF0ZSB7IHRydWUgfTsKKyAgICBib29sIG1fZm9yY2VBbHdheXNV
c2VyU2NhbGFibGUgeyBmYWxzZSB9OworICAgIE1vbm90b25pY1RpbWUgbV9vbGRlc3ROb25TdGFi
bGVVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzVGltZXN0YW1wOworICAgIFNlY29uZHMgbV9lc3Rp
bWF0ZWRMYXRlbmN5IHsgMCB9OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3NjcmVlblNpemU7
CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fYXZhaWxhYmxlU2NyZWVuU2l6ZTsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6UmFuZ2U+IG1fY3VycmVudEJsb2NrU2VsZWN0aW9uOwpAQCAtMTQ2Myw4ICsx
NDYwLDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IG1faW5pdGlhbFNl
bGVjdGlvbjsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fYmxvY2tTZWxlY3Rpb25EZXNpcmVkU2l6
ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7Ci0gICAg
aW50MzJfdCBtX2RldmljZU9yaWVudGF0aW9uOwotICAgIGJvb2wgbV9pbkR5bmFtaWNTaXplVXBk
YXRlOworICAgIGludDMyX3QgbV9kZXZpY2VPcmllbnRhdGlvbiB7IDAgfTsKKyAgICBib29sIG1f
aW5EeW5hbWljU2l6ZVVwZGF0ZSB7IGZhbHNlIH07CiAgICAgSGFzaE1hcDxzdGQ6OnBhaXI8V2Vi
Q29yZTo6SW50U2l6ZSwgZG91YmxlPiwgV2ViQ29yZTo6SW50UG9pbnQ+IG1fZHluYW1pY1NpemVV
cGRhdGVIaXN0b3J5OwogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBtX3BlbmRpbmdTeW50aGV0
aWNDbGlja05vZGU7CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBtX3BlbmRpbmdTeW50aGV0aWND
bGlja0xvY2F0aW9uOwpAQCAtMTQ3NiwyOSArMTQ3MywyOSBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc1N1c3BlbmRlZFVuZGVyTG9jayB7IGZhbHNlIH07CiAKICAgICBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBtX21pbWVUeXBlc1dpdGhDdXN0b21Db250ZW50UHJv
dmlkZXJzOwotICAgIFdlYkNvcmU6OkNvbG9yIG1fYmFja2dyb3VuZENvbG9yOworICAgIFdlYkNv
cmU6OkNvbG9yIG1fYmFja2dyb3VuZENvbG9yIHsgV2ViQ29yZTo6Q29sb3I6OndoaXRlIH07CiAK
ICAgICBIYXNoU2V0PHVuc2lnbmVkPiBtX2FjdGl2ZVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW5z
OwotICAgIHVuc2lnbmVkIG1fbWF4aW11bVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW47CisgICAg
dW5zaWduZWQgbV9tYXhpbXVtUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbiB7IDAgfTsKICAgICAK
LSAgICBXZWJDb3JlOjpTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZp
b3I7CisgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0Jl
aGF2aW9yIHsgV2ViQ29yZTo6RG9Ob3RQaW4gfTsKICAgICBXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6
OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4gbV9zY3JvbGxiYXJPdmVybGF5U3R5bGU7CiAKLSAgICBi
b29sIG1fdXNlQXN5bmNTY3JvbGxpbmc7CisgICAgYm9vbCBtX3VzZUFzeW5jU2Nyb2xsaW5nIHsg
ZmFsc2UgfTsKIAogICAgIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIG1fYWN0aXZpdHlT
dGF0ZTsKIAogICAgIFVzZXJBY3Rpdml0eSBtX3VzZXJBY3Rpdml0eTsKICAgICBXZWJDb3JlOjpI
eXN0ZXJlc2lzQWN0aXZpdHkgbV91c2VyQWN0aXZpdHlIeXN0ZXJlc2lzOwogCi0gICAgdWludDY0
X3QgbV9wZW5kaW5nTmF2aWdhdGlvbklEOworICAgIHVpbnQ2NF90IG1fcGVuZGluZ05hdmlnYXRp
b25JRCB7IDAgfTsKIAogI2lmIEVOQUJMRShXRUJHTCkKLSAgICBXZWJDb3JlOjpXZWJHTExvYWRQ
b2xpY3kgbV9zeXN0ZW1XZWJHTFBvbGljeTsKKyAgICBXZWJDb3JlOjpXZWJHTExvYWRQb2xpY3kg
bV9zeXN0ZW1XZWJHTFBvbGljeSB7IFdlYkNvcmU6OldlYkdMQWxsb3dDcmVhdGlvbiB9OwogI2Vu
ZGlmCiAKLSAgICBib29sIG1fbWFpbkZyYW1lUHJvZ3Jlc3NDb21wbGV0ZWQ7Ci0gICAgYm9vbCBt
X3Nob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50czsKKyAgICBib29sIG1fbWFpbkZyYW1l
UHJvZ3Jlc3NDb21wbGV0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGREaXNwYXRjaEZh
a2VNb3VzZU1vdmVFdmVudHMgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzRWRpdG9yU3RhdGVNaXNz
aW5nUG9zdExheW91dERhdGEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1NlbGVjdGluZ1RleHRX
aGlsZUluc2VydGluZ0FzeW5jaHJvbm91c2x5IHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGEwMWZh
MDRmNTgwY2ZhOTQwNGMyNGNjN2Q3OTk3MmRiYTBhNWNkN2YuLmNkNDk5OThlZWU2NDc4ODdmYTUy
YmIwNTk1MWM0ZDgxYjczYWUwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTIxMjIsMTIgKzIxMjIsMTIgQEAgdm9p
ZCBXZWJQYWdlOjpleGVjdXRlRWRpdENvbW1hbmRXaXRoQ2FsbGJhY2soY29uc3QgU3RyaW5nJiBj
b21tYW5kTmFtZSwgdWludDY0X3QKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlZv
aWRDYWxsYmFjayhjYWxsYmFja0lEKSk7CiB9CiAKLXN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMg
V2ViUGFnZTo6ZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSBjb25zdAorU2Vjb25kcyBXZWJQYWdlOjpl
dmVudFRocm90dGxpbmdEZWxheSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1faXNJblN0YWJsZVN0YXRl
IHx8IG1fZXN0aW1hdGVkTGF0ZW5jeSA8PSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDAg
LyA2MCkpCi0gICAgICAgIHJldHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCk7
CisgICAgaWYgKG1faXNJblN0YWJsZVN0YXRlIHx8IG1fZXN0aW1hdGVkTGF0ZW5jeSA8PSBTZWNv
bmRzKDEuMCAvIDYwKSkKKyAgICAgICAgcmV0dXJuIFNlY29uZHMoMCk7CiAKLSAgICByZXR1cm4g
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyhzdGQ6Om1pbjxzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzOjpyZXA+KG1fZXN0aW1hdGVkTGF0ZW5jeS5jb3VudCgpICogMiwgMTAwMCkpOworICAgIHJl
dHVybiBTZWNvbmRzKHN0ZDo6bWluPGRvdWJsZT4obV9lc3RpbWF0ZWRMYXRlbmN5LnZhbHVlKCkg
KiAyLCAxKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c3luY0FwcGx5QXV0b2NvcnJlY3Rpb24oY29u
c3QgU3RyaW5nJiBjb3JyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVGV4dCwgYm9vbCYg
Y29ycmVjdGlvbkFwcGxpZWQpCkBAIC0yOTgyLDcgKzI5ODIsNyBAQCBzdGF0aWMgaW5saW5lIEZs
b2F0UmVjdCBhZGp1c3RFeHBvc2VkUmVjdEZvckJvdW5kZWRTY2FsZShjb25zdCBGbG9hdFJlY3Qm
IGV4cG9zZQogICAgIHJldHVybiBhZGp1c3RFeHBvc2VkUmVjdEZvck5ld1NjYWxlKGV4cG9zZWRS
ZWN0LCBleHBvc2VkUmVjdFNjYWxlLCBuZXdTY2FsZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6dXBk
YXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZv
JiB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLCBkb3VibGUgb2xkZXN0VGltZXN0YW1wKQor
dm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8sIE1vbm90b25p
Y1RpbWUgb2xkZXN0VGltZXN0YW1wKQogewogICAgIC8vIFNraXAgYW55IFZpc2libGVDb250ZW50
UmVjdFVwZGF0ZSB0aGF0IGhhdmUgYmVlbiBxdWV1ZWQgYmVmb3JlIERpZENvbW1pdExvYWQgc3Vw
cHJlc3NlcyB0aGUgdXBkYXRlcyBpbiB0aGUgVUlQcm9jZXNzLgogICAgIGlmICh2aXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvLmxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEKCkgPCBtX21haW5G
cmFtZS0+Zmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkKCkpCkBA
IC0zMDEwLDggKzMwMTAsOCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVj
dHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaQogICAgIGlmIChtX2lz
SW5TdGFibGVTdGF0ZSkKICAgICAgICAgbV9oYXNTdGFibGVQYWdlU2NhbGVGYWN0b3IgPSB0cnVl
OwogICAgIGVsc2UgewotICAgICAgICBpZiAobV9vbGRlc3ROb25TdGFibGVVcGRhdGVWaXNpYmxl
Q29udGVudFJlY3RzVGltZXN0YW1wID09IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8o
KSkKLSAgICAgICAgICAgIG1fb2xkZXN0Tm9uU3RhYmxlVXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0
c1RpbWVzdGFtcCA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoc3RhdGljX2Nhc3Q8c3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kczo6cmVwPihvbGRlc3RUaW1lc3RhbXAgKiAxMDAwKSk7CisgICAg
ICAgIGlmICghbV9vbGRlc3ROb25TdGFibGVVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzVGltZXN0
YW1wKQorICAgICAgICAgICAgbV9vbGRlc3ROb25TdGFibGVVcGRhdGVWaXNpYmxlQ29udGVudFJl
Y3RzVGltZXN0YW1wID0gb2xkZXN0VGltZXN0YW1wOwogICAgIH0KIAogICAgIEZsb2F0UmVjdCBl
eHBvc2VkQ29udGVudFJlY3QgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmV4cG9zZWRD
b250ZW50UmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXgg
NDFlMmJlNDYzMjgxMmExODY1ZGM1MGY1MmNjYjQ2OTY4NTVlN2ViNi4uOWI4MzhkNDA0ZDg3Nzlh
OGM4M2MxZmM1MDUzM2JiZTdmZTJhZjE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLm1tCkBAIC00MjcsNyArNDI3LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYTo6Zmx1c2hMYXllcnMoKQogICAgIGRpc3BhdGNoX2FzeW5jKG1fY29tbWl0UXVldWUsIFti
YWNraW5nU3RvcmVGbHVzaGVyLCBwYWdlSURdIHsKICAgICAgICAgYmFja2luZ1N0b3JlRmx1c2hl
ci0+Zmx1c2goKTsKIAotICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVzdGFt
cCA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoc3RhdGljX2Nhc3Q8c3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kczo6cmVwPihtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAqIDEwMDApKTsK
KyAgICAgICAgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lOjpub3coKTsK
ICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3BhZ2VJ
RCwgdGltZXN0YW1wXSB7CiAgICAgICAgICAgICBpZiAoV2ViUGFnZSogd2ViUGFnZSA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKSkKICAgICAgICAgICAgICAgICB3ZWJQ
YWdlLT5kaWRGbHVzaExheWVyVHJlZUF0VGltZSh0aW1lc3RhbXApOwo=
</data>
<flag name="review"
          id="317827"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295221</attachid>
            <date>2016-11-18 16:43:10 -0800</date>
            <delta_ts>2016-11-18 19:33:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164967-20161118164303.patch</filename>
            <type>text/plain</type>
            <size>44296</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4ODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ1YTM4NWNiN2YyNTFj
NmUxYzhjOWI5MmFjNzEyMWQwODAwZWRjYS4uZmExMDg2YjVmODQ2OTg3OTkxMWU0ODk2ZDcwODEx
YjMyZTFjNjQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTExLTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB1c2Ug
b2Ygc3RkOjpjaHJvbm8gaW4gV2ViUGFnZSBhbmQgZW50cmFpbmVkIGNvZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDk2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVwbGFjZSBzdGQ6OmNocm9ubyB3aXRo
IFNlY29uZHMgYW5kIE1vbm90b25pYyBUaW1lLgorCisgICAgICAgIFVzZSBtb3JlIEMrKzExIGlu
aXRpYWxpemF0aW9uIGZvciBXZWJQYWdlIGRhdGEgbWVtYmVycy4KKworICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpzZXRTY3JvbGxWZWxvY2l0eSk6CisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UaW1lci5oOgorICAgICAgICAoV2ViQ29yZTo6
VGltZXJCYXNlOjpzdGFydFJlcGVhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6
OnN0YXJ0T25lU2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lckJhc2U6OmF1Z21lbnRGaXJl
SW50ZXJ2YWwpOgorICAgICAgICAoV2ViQ29yZTo6VGltZXJCYXNlOjphdWdtZW50UmVwZWF0SW50
ZXJ2YWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oOgorICAg
ICAgICAoV2ViQ29yZTo6VmVsb2NpdHlEYXRhOjpWZWxvY2l0eURhdGEpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRpbGVDb250cm9sbGVyOjphZGp1c3RUaWxlQ292ZXJhZ2VSZWN0KToKKwogMjAxNi0xMS0xNiAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBzbG90Y2hhbmdlIGV2
ZW50IHNob3VsZCBidWJibGUgYW5kIGRpc3BhdGNoZWQgb25jZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDFkNTE0
ZGU3OTkwZTllY2U1ODQ3OTFmM2JhY2Q2Yzk0Mjk4YTU3OTcuLjZmNGM5NmViMWY0OGUwMDIzNDc0
NWNlMGQyODM0N2I3ZmM2ZjcxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxNi0x
MS0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmUgdXNlIG9mIHN0ZDo6Y2hyb25vIGluIFdlYlBhZ2UgYW5kIGVudHJhaW5lZCBjb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ5NjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFJlcGxhY2Ugc3RkOjpj
aHJvbm8gd2l0aCBTZWNvbmRzIGFuZCBNb25vdG9uaWMgVGltZS4KKworICAgICAgICBVc2UgbW9y
ZSBDKysxMSBpbml0aWFsaXphdGlvbiBmb3IgV2ViUGFnZSBkYXRhIG1lbWJlcnMuCisKKyAgICAg
ICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIFNoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmg6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm86OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8pOgorICAgICAgICAoV2ViS2l0OjpWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjp0aW1lc3RhbXApOgorICAgICAgICAqIFNoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1v
bm90b25pY1RpbWU+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE1vbm90
b25pY1RpbWU+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFNlY29uZHM+
OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFNlY29uZHM+OjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgIChXZWJLaXQ6Okhpc3Rvcmlj
YWxWZWxvY2l0eURhdGE6Okhpc3RvcmljYWxWZWxvY2l0eURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjp2ZWxvY2l0eUZvck5ld0RhdGEpOgorICAgICAgICAo
V2ViS2l0OjpIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjphcHBlbmQpOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnVub2JzY3VyZWRSZWN0OnVub2JzY3VyZWRS
ZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM6b2JzY3VyZWRJbnNldDpzY2FsZTptaW5pbXVtU2Nh
bGU6aW5TdGFibGVTdGF0ZTppc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OmVu
Y2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3Ol0pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmV2ZW50VGhyb3R0bGluZ0RlbGF5KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBh
Z2UpOgorICAgICAgICAoV2ViS2l0OjptX3VzZXJBY3Rpdml0eUh5c3RlcmVzaXMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRGbHVzaExheWVyVHJlZUF0VGltZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRpZENvbW1pdExvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpldmVudFRocm90dGxpbmdEZWxheSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVz
aExheWVycyk6CisKIDIwMTYtMTEtMTYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIGxvZ2dpbmcgc3VwcG9ydCB0byBWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAxM2JjZTc1OGUy
ZTUwZDhkMDRhMWZjYjhhZjFiYzg3OTJjMWZhZjAzLi41MTdiMWE4OGZlMjc0ZjRkOTM1YWExZDkw
ZmE0YzViOTlhOTY3MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQxLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCIKICNpbmNsdWRlIDxy
dW50aW1lL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVk
ZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpAQCAtMjMyLDcgKzIzMyw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUHJldmVudERlZmF1bHRGb3JFdmVudCgpID0gMDsKICNlbmRpZgog
Ci0gICAgdmlydHVhbCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGV2ZW50VGhyb3R0bGluZ0Rl
bGF5KCkgeyByZXR1cm4gMG1zOyB9OworICAgIHZpcnR1YWwgU2Vjb25kcyBldmVudFRocm90dGxp
bmdEZWxheSgpIHsgcmV0dXJuIFNlY29uZHMoMCk7IH07CiAKICNpZiBQTEFURk9STShJT1MpCiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAyZWY1ODM4YWIzNDRhOGJiOTJhNGNlY2NiZDFjMjU2
YjYzMjg2Y2M5Li40OGI4MmU5NDQ3OTZlMGQ3YzIyNDcxNTQ2NGM4YTQzZThlZjNiZDRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yNDM3LDEzICsyNDM3LDEzIEBAIHZvaWQgRnJh
bWVWaWV3OjpzY3JvbGxPZmZzZXRDaGFuZ2VkVmlhUGxhdGZvcm1XaWRnZXRJbXBsKGNvbnN0IFNj
cm9sbE9mZnNldCYgb2xkCiB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKGNv
bnN0IFNjcm9sbFBvc2l0aW9uJiBvbGRQb3NpdGlvbiwgY29uc3QgU2Nyb2xsUG9zaXRpb24mIG5l
d1Bvc2l0aW9uKQogewogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKLSAgICBhdXRv
IHRocm90dGxpbmdEZWxheSA9IHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ldmVudFRo
cm90dGxpbmdEZWxheSgpIDogMG1zOworICAgIFNlY29uZHMgdGhyb3R0bGluZ0RlbGF5ID0gcGFn
ZSA/IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV2ZW50VGhyb3R0bGluZ0RlbGF5KCkgOiBTZWNv
bmRzKDApOwogCi0gICAgaWYgKHRocm90dGxpbmdEZWxheSA9PSAwbXMpIHsKKyAgICBpZiAodGhy
b3R0bGluZ0RlbGF5ID09IFNlY29uZHMoMCkpIHsKICAgICAgICAgbV9kZWxheWVkU2Nyb2xsRXZl
bnRUaW1lci5zdG9wKCk7CiAgICAgICAgIHNlbmRTY3JvbGxFdmVudCgpOwogICAgIH0gZWxzZSBp
ZiAoIW1fZGVsYXllZFNjcm9sbEV2ZW50VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9kZWxh
eWVkU2Nyb2xsRXZlbnRUaW1lci5zdGFydE9uZVNob3QodGhyb3R0bGluZ0RlbGF5KTsKKyAgICAg
ICAgbV9kZWxheWVkU2Nyb2xsRXZlbnRUaW1lci5zdGFydE9uZVNob3QodGhyb3R0bGluZ0RlbGF5
LnZhbHVlKCkpOwogCiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1l
bnQoKSkKICAgICAgICAgZG9jdW1lbnQtPnNlbmRXaWxsUmV2ZWFsRWRnZUV2ZW50c0lmTmVlZGVk
KG9sZFBvc2l0aW9uLCBuZXdQb3NpdGlvbiwgdmlzaWJsZUNvbnRlbnRSZWN0KCksIGNvbnRlbnRz
U2l6ZSgpKTsKQEAgLTQ5ODQsNyArNDk4NCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRDdXN0b21T
aXplRm9yUmVzaXplRXZlbnQoSW50U2l6ZSBjdXN0b21TaXplKQogICAgIHNlbmRSZXNpemVFdmVu
dElmTmVlZGVkKCk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxWZWxvY2l0eShkb3Vi
bGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxvY2l0eSwgZG91YmxlIHNj
YWxlQ2hhbmdlUmF0ZSwgZG91YmxlIHRpbWVzdGFtcCkKK3ZvaWQgRnJhbWVWaWV3OjpzZXRTY3Jv
bGxWZWxvY2l0eShkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5LCBkb3VibGUgdmVydGljYWxWZWxv
Y2l0eSwgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCiB7
CiAgICAgaWYgKFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nID0gdGhpcy0+dGlsZWRCYWNraW5n
KCkpCiAgICAgICAgIHRpbGVkQmFja2luZy0+c2V0VmVsb2NpdHkoVmVsb2NpdHlEYXRhKGhvcml6
b250YWxWZWxvY2l0eSwgdmVydGljYWxWZWxvY2l0eSwgc2NhbGVDaGFuZ2VSYXRlLCB0aW1lc3Rh
bXApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDA1YmIzMTUyODVlOWRhNGIxMjUxNWE1
NGUyODRkZTczNDJkOTI3MzguLjhjYWZkMjc4ODE2ODhmZDRmODFlOTljMmI4ZGIyYWM1YmQ1ZWRl
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoK
ICAgICBJbnRTaXplIGN1c3RvbVNpemVGb3JSZXNpemVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRD
dXN0b21TaXplRm9yUmVzaXplRXZlbnQoSW50U2l6ZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFNjcm9sbFZlbG9jaXR5KGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2
ZXJ0aWNhbFZlbG9jaXR5LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlLCBkb3VibGUgdGltZXN0YW1w
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbFZlbG9jaXR5KGRvdWJsZSBob3Jp
em9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5LCBkb3VibGUgc2NhbGVDaGFu
Z2VSYXRlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCk7CiAjZWxzZQogICAgIGJvb2wgdXNlQ3Vz
dG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAppbmRleCBhNzk2MGIzMTYzZTM0Mzg4ZDk5M2JkZmNm
YzBjOTU0ODY4NjZjMTAyLi5hMzVjOGM2N2VlMjJiNmVkNWRjODUzYmRlMmUxOWYzY2VkY2U4ZjFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxm
dW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9P
cHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNTgsOCArNTksMTEgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzdGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpIHsg
c3RhcnQocmVwZWF0SW50ZXJ2YWwsIHJlcGVhdEludGVydmFsKTsgfQogICAgIHZvaWQgc3RhcnRS
ZXBlYXRpbmcoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyByZXBlYXRJbnRlcnZhbCkgeyBzdGFy
dFJlcGVhdGluZyhtc1RvU2Vjb25kcyhyZXBlYXRJbnRlcnZhbCkpOyB9CisgICAgdm9pZCBzdGFy
dFJlcGVhdGluZyhTZWNvbmRzIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0UmVwZWF0aW5nKHJlcGVh
dEludGVydmFsLnZhbHVlKCkpOyB9CisKICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50
ZXJ2YWwpIHsgc3RhcnQoaW50ZXJ2YWwsIDApOyB9CiAgICAgdm9pZCBzdGFydE9uZVNob3Qoc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyBpbnRlcnZhbCkgeyBzdGFydE9uZVNob3QobXNUb1NlY29u
ZHMoaW50ZXJ2YWwpKTsgfQorICAgIHZvaWQgc3RhcnRPbmVTaG90KFNlY29uZHMgaW50ZXJ2YWwp
IHsgc3RhcnQoaW50ZXJ2YWwudmFsdWUoKSwgMCk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc3RvcCgpOwogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKQEAgLTcxLDggKzc1LDExIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgYXVnbWVudEZpcmVJbnRlcnZhbChkb3VibGUgZGVsdGEpIHsg
c2V0TmV4dEZpcmVUaW1lKG1fbmV4dEZpcmVUaW1lICsgZGVsdGEpOyB9CiAgICAgdm9pZCBhdWdt
ZW50RmlyZUludGVydmFsKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVsdGEpIHsgYXVnbWVu
dEZpcmVJbnRlcnZhbChtc1RvU2Vjb25kcyhkZWx0YSkpOyB9CisgICAgdm9pZCBhdWdtZW50Rmly
ZUludGVydmFsKFNlY29uZHMgZGVsdGEpIHsgYXVnbWVudEZpcmVJbnRlcnZhbChkZWx0YS52YWx1
ZSgpKTsgfQorCiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoZG91YmxlIGRlbHRhKSB7
IGF1Z21lbnRGaXJlSW50ZXJ2YWwoZGVsdGEpOyBtX3JlcGVhdEludGVydmFsICs9IGRlbHRhOyB9
CiAgICAgdm9pZCBhdWdtZW50UmVwZWF0SW50ZXJ2YWwoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25k
cyBkZWx0YSkgeyBhdWdtZW50UmVwZWF0SW50ZXJ2YWwobXNUb1NlY29uZHMoZGVsdGEpKTsgfQor
ICAgIHZvaWQgYXVnbWVudFJlcGVhdEludGVydmFsKFNlY29uZHMgZGVsdGEpIHsgYXVnbWVudFJl
cGVhdEludGVydmFsKGRlbHRhLnZhbHVlKCkpOyB9CiAKICAgICB2b2lkIGRpZENoYW5nZUFsaWdu
bWVudEludGVydmFsKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RpbGVkQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
VGlsZWRCYWNraW5nLmgKaW5kZXggZTNlODM0MmEyNTA5MTNiNjg4NGNmMzVhZTU4YWIyY2NmOTVi
YjM1NC4uMGQyYjQ4NGJkOGZmNzhmMzdlNGQ1ZjVlMDcyMmIxZjQ5OTkxM2I0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmgKQEAgLTIzLDkg
KzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIFRpbGVkQmFja2luZ19oCi0jZGVmaW5lIFRpbGVkQmFja2luZ19oCisjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDkgKzUxLDkgQEAgc3RydWN0IFZlbG9j
aXR5RGF0YSAgewogICAgIGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHk7CiAgICAgZG91YmxlIHZl
cnRpY2FsVmVsb2NpdHk7CiAgICAgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZTsKLSAgICBkb3VibGUg
bGFzdFVwZGF0ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBsYXN0VXBkYXRlVGltZTsKICAgICAK
LSAgICBWZWxvY2l0eURhdGEoZG91YmxlIGhvcml6b250YWwgPSAwLCBkb3VibGUgdmVydGljYWwg
PSAwLCBkb3VibGUgc2NhbGVDaGFuZ2UgPSAwLCBkb3VibGUgdXBkYXRlVGltZSA9IDApCisgICAg
VmVsb2NpdHlEYXRhKGRvdWJsZSBob3Jpem9udGFsID0gMCwgZG91YmxlIHZlcnRpY2FsID0gMCwg
ZG91YmxlIHNjYWxlQ2hhbmdlID0gMCwgTW9ub3RvbmljVGltZSB1cGRhdGVUaW1lID0gTW9ub3Rv
bmljVGltZSgpKQogICAgICAgICA6IGhvcml6b250YWxWZWxvY2l0eShob3Jpem9udGFsKQogICAg
ICAgICAsIHZlcnRpY2FsVmVsb2NpdHkodmVydGljYWwpCiAgICAgICAgICwgc2NhbGVDaGFuZ2VS
YXRlKHNjYWxlQ2hhbmdlKQpAQCAtMTU2LDUgKzE1NiwzIEBAIHB1YmxpYzoKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFRpbGVkQmFja2luZ19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAK
aW5kZXggNDU0YjA4M2FhNzc2ODAzZGY5ODRjNTczYjgyZmE5N2Q5N2E4MGY1My4uNDEzMmIwNDg2
YTNhODdkMmVmM2EzNzg4YTI3OTliNjE0YjNhMWUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcApAQCAtMzgxLDEz
ICszODEsMTMgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6YWRqdXN0VGlsZUNvdmVyYWdlUmVjdChG
bG9hdFJlY3QmIGNvdmVyYWdlUmVjdCwgY29uc3QgRmxvYXQKICAgICBkb3VibGUgaG9yaXpvbnRh
bE1hcmdpbiA9IGtEZWZhdWx0VGlsZVNpemUgLyBjb250ZW50c1NjYWxlOwogICAgIGRvdWJsZSB2
ZXJ0aWNhbE1hcmdpbiA9IGtEZWZhdWx0VGlsZVNpemUgLyBjb250ZW50c1NjYWxlOwogCi0gICAg
ZG91YmxlIGN1cnJlbnRUaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAg
ZG91YmxlIHRpbWVEZWx0YSA9IGN1cnJlbnRUaW1lIC0gbV92ZWxvY2l0eS5sYXN0VXBkYXRlVGlt
ZTsKKyAgICBNb25vdG9uaWNUaW1lIGN1cnJlbnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7
CisgICAgU2Vjb25kcyB0aW1lRGVsdGEgPSBjdXJyZW50VGltZSAtIG1fdmVsb2NpdHkubGFzdFVw
ZGF0ZVRpbWU7CiAKICAgICBGbG9hdFJlY3QgZnV0dXJlUmVjdCA9IHZpc2libGVSZWN0OwogICAg
IGZ1dHVyZVJlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludCgKLSAgICAgICAgZnV0dXJlUmVjdC5s
b2NhdGlvbigpLngoKSArIHRpbWVEZWx0YSAqIG1fdmVsb2NpdHkuaG9yaXpvbnRhbFZlbG9jaXR5
LAotICAgICAgICBmdXR1cmVSZWN0LmxvY2F0aW9uKCkueSgpICsgdGltZURlbHRhICogbV92ZWxv
Y2l0eS52ZXJ0aWNhbFZlbG9jaXR5KSk7CisgICAgICAgIGZ1dHVyZVJlY3QubG9jYXRpb24oKS54
KCkgKyB0aW1lRGVsdGEudmFsdWUoKSAqIG1fdmVsb2NpdHkuaG9yaXpvbnRhbFZlbG9jaXR5LAor
ICAgICAgICBmdXR1cmVSZWN0LmxvY2F0aW9uKCkueSgpICsgdGltZURlbHRhLnZhbHVlKCkgKiBt
X3ZlbG9jaXR5LnZlcnRpY2FsVmVsb2NpdHkpKTsKIAogICAgIGlmIChtX3ZlbG9jaXR5Lmhvcml6
b250YWxWZWxvY2l0eSkgewogICAgICAgICBmdXR1cmVSZWN0LnNldFdpZHRoKGZ1dHVyZVJlY3Qu
d2lkdGgoKSArIGhvcml6b250YWxNYXJnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCmluZGV4IDcyYzZmOGVjYzQ4
YzAzMjNjYmU0NTRmYjA5NDZhNDBmYWZhZWNhNGIuLmUwZjVmMDgxNWJjM2I5YjM3ZTgxMjRkZjA2
NGQwZGFkZGQ5YmM4ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxl
Q29udGVudFJlY3RVcGRhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKQEAgLTExNiw3ICsxMTYsNyBAQCBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvJiBpbmZvKQogICAgIGlmIChpbmZvLmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0
b3JWaWV3KCkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgiZW5jbG9zZWRJblNjcm9sbGFibGVB
bmNlc3RvclZpZXciLCBpbmZvLmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkpOwog
Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJ0aW1lc3RhbXAiLCBpbmZvLnRpbWVzdGFtcCgpKTsKKyAg
ICB0cy5kdW1wUHJvcGVydHkoInRpbWVzdGFtcCIsIGluZm8udGltZXN0YW1wKCkuc2Vjb25kc1Np
bmNlRXBvY2goKS52YWx1ZSgpKTsKICAgICBpZiAoaW5mby5ob3Jpem9udGFsVmVsb2NpdHkoKSkK
ICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJob3Jpem9udGFsVmVsb2NpdHkiLCBpbmZvLmhvcml6
b250YWxWZWxvY2l0eSgpKTsKICAgICBpZiAoaW5mby52ZXJ0aWNhbFZlbG9jaXR5KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
by5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8u
aAppbmRleCBkN2I2ZTZkZTJmMDVkM2U3ZjYwOGI5ZTM5OGQ3NDUyZWFiODUxYzZhLi5kZDNhODdh
NDFiYzI4MjE2ZjM1ZGM5NDkzMDU2NTdmZDBmMjUyYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKQEAgLTI3LDYgKzI3
LDcgQEAKICNkZWZpbmUgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mb19oCiAKICNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNDcs
NyArNDgsNyBAQCBwdWJsaWM6CiAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwKICAgICAgICAgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBvYnNjdXJlZEluc2V0LCBkb3VibGUgc2NhbGUsIGJvb2wg
aW5TdGFibGVTdGF0ZSwgYm9vbCBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5
LCBib29sIGFsbG93U2hyaW5rVG9GaXQsIGJvb2wgZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3Rv
clZpZXcsCi0gICAgICAgIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBob3Jpem9udGFsVmVsb2Np
dHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlLCB1aW50
NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKKyAgICAgICAgTW9ub3RvbmljVGltZSB0
aW1lc3RhbXAsIGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9j
aXR5LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JZCkKICAgICAgICAgOiBtX2V4cG9zZWRDb250ZW50UmVjdChleHBvc2VkQ29udGVudFJl
Y3QpCiAgICAgICAgICwgbV91bm9ic2N1cmVkQ29udGVudFJlY3QodW5vYnNjdXJlZENvbnRlbnRS
ZWN0KQogICAgICAgICAsIG1fdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcyh1
bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKQpAQCAtNzgsNyArNzksNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBhbGxvd1Nocmlua1RvRml0KCkgY29uc3QgeyByZXR1cm4gbV9hbGxv
d1Nocmlua1RvRml0OyB9CiAgICAgYm9vbCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmll
dygpIGNvbnN0IHsgcmV0dXJuIG1fZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXc7IH0K
IAotICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQor
ICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7
IH0KICAgICBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5KCkgY29uc3QgeyByZXR1cm4gbV9ob3Jp
em9udGFsVmVsb2NpdHk7IH0KICAgICBkb3VibGUgdmVydGljYWxWZWxvY2l0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmVydGljYWxWZWxvY2l0eTsgfQogICAgIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUo
KSBjb25zdCB7IHJldHVybiBtX3NjYWxlQ2hhbmdlUmF0ZTsgfQpAQCAtOTgsNyArOTksNyBAQCBw
cml2YXRlOgogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX29ic2N1cmVkSW5zZXQ7CiAgICAgdWlu
dDY0X3QgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCB7IDAgfTsKICAgICBkb3VibGUgbV9z
Y2FsZSB7IC0xIH07Ci0gICAgZG91YmxlIG1fdGltZXN0YW1wIHsgMCB9OworICAgIE1vbm90b25p
Y1RpbWUgbV90aW1lc3RhbXA7CiAgICAgZG91YmxlIG1faG9yaXpvbnRhbFZlbG9jaXR5IHsgMCB9
OwogICAgIGRvdWJsZSBtX3ZlcnRpY2FsVmVsb2NpdHkgeyAwIH07CiAgICAgZG91YmxlIG1fc2Nh
bGVDaGFuZ2VSYXRlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAppbmRleCAzOWVlNDA2ZTdkZWJlNjE4ZmExZmM4MWFjMDAzOGFiNWJh
YTNkZmUxLi5hMTgxNzc2ODg0NWQ4ODdkMzljOWQ0NjlmZWY2ODI3NmZmMzQwMTQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNjks
NiArNjksOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dG
ZWF0dXJlcy5oPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CisjaW5jbHVkZSA8d3Rm
L1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC0xMDMsNiArMTA1LDM2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBJUEMgewogCit2b2lkIEFyZ3VtZW50Q29kZXI8TW9ub3Rv
bmljVGltZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBNb25vdG9uaWNUaW1lJiB0
aW1lKQoreworICAgIGVuY29kZXIgPDwgdGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7
Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxNb25vdG9uaWNUaW1lPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIE1vbm90b25pY1RpbWUmIHRpbWUpCit7CisgICAgZG91YmxlIHZhbHVlOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICB0aW1lID0gTW9ub3RvbmljVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUpOworICAgIHJldHVy
biB0cnVlOworfQorCit2b2lkIEFyZ3VtZW50Q29kZXI8U2Vjb25kcz46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBTZWNvbmRzJiBzZWNvbmRzKQoreworICAgIGVuY29kZXIgPDwgc2Vj
b25kcy52YWx1ZSgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8U2Vjb25kcz46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBTZWNvbmRzJiBzZWNvbmRzKQoreworICAgIGRvdWJsZSB2YWx1ZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgc2Vjb25kcyA9IFNlY29uZHModmFsdWUpOworICAgIHJldHVybiB0cnVlOworfQorCiB2
b2lkIEFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgYWZmaW5lVHJhbnNmb3JtKQogewogICAgIFNpbXBs
ZUFyZ3VtZW50Q29kZXI8QWZmaW5lVHJhbnNmb3JtPjo6ZW5jb2RlKGVuY29kZXIsIGFmZmluZVRy
YW5zZm9ybSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKaW5kZXggZDZlZjNkZDJkNDc3YjZjMGI0ZDJmMjkyYTIzMTc3YzE1MjhjY2ZkZC4uNTNhYTM0
Y2RiOWEwMTM3YzJjNDcyMTAwMzk5ZmI4ZWVmYzkwNDViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzEsNiArMzEsMTEgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0luZGV4ZWREQi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEhlYWRl
cnMuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNb25vdG9uaWNUaW1lOworY2xhc3MgU2Vj
b25kczsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwog
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CkBAIC0xNDYsNiArMTUxLDE2IEBAIHVzaW5n
IElEQktleVBhdGggPSBWYXJpYW50PFN0cmluZywgVmVjdG9yPFN0cmluZz4+OwogCiBuYW1lc3Bh
Y2UgSVBDIHsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1vbm90b25p
Y1RpbWU+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdURjo6TW9u
b3RvbmljVGltZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV1RGOjpNb25v
dG9uaWNUaW1lJik7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6
U2Vjb25kcz4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV1RGOjpT
ZWNvbmRzJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6OlNlY29uZHMm
KTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QWZmaW5l
VHJhbnNmb3JtPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDFlYTBlODExYWMwZGEwM2U5YjY4ZTM4ZDM0ODJk
ODg0ZjRmOTdmYjYuLjFjMjI5MDgwYmRlNDk4NDQ1OWZhNmFjYjJjNmFhOTRmNzhmNGQ0N2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTky
LDE1ICs5MiwxNCBAQCBwdWJsaWM6CiAgICAgSGlzdG9yaWNhbFZlbG9jaXR5RGF0YSgpCiAgICAg
ICAgIDogbV9oaXN0b3J5U2l6ZSgwKQogICAgICAgICAsIG1fbGF0ZXN0RGF0YUluZGV4KDApCi0g
ICAgICAgICwgbV9sYXN0QXBwZW5kVGltZXN0YW1wKDApCiAgICAgewogICAgIH0KIAotICAgIFZl
bG9jaXR5RGF0YSB2ZWxvY2l0eUZvck5ld0RhdGEoQ0dQb2ludCBuZXdQb3NpdGlvbiwgZG91Ymxl
IHNjYWxlLCBkb3VibGUgdGltZXN0YW1wKQorICAgIFZlbG9jaXR5RGF0YSB2ZWxvY2l0eUZvck5l
d0RhdGEoQ0dQb2ludCBuZXdQb3NpdGlvbiwgZG91YmxlIHNjYWxlLCBNb25vdG9uaWNUaW1lIHRp
bWVzdGFtcCkKICAgICB7CiAgICAgICAgIC8vIER1ZSB0byBhbGwgdGhlIHNvdXJjZSBvZiByZWN0
IHVwZGF0ZSwgdGhlIGlucHV0IGlzIHZlcnkgbm9pc3kuIFRvIHNtb290aCB0aGUgb3V0cHV0LCB3
ZSBhY2N1bXVsYXRlIGFsbCBjaGFuZ2VzCiAgICAgICAgIC8vIHdpdGhpbiAxIGZyYW1lIGFzIGEg
c2luZ2xlIHVwZGF0ZS4gTm8gc3BlZWQgY29tcHV0YXRpb24gaXMgZXZlciBkb25lIG9uIGRhdGEg
d2l0aGluIHRoZSBzYW1lIGZyYW1lLgotICAgICAgICBjb25zdCBkb3VibGUgZmlsdGVyaW5nVGhy
ZXNob2xkID0gMSAvIDYwLjsKKyAgICAgICAgY29uc3QgU2Vjb25kcyBmaWx0ZXJpbmdUaHJlc2hv
bGQoMS4wIC8gNjApOwogCiAgICAgICAgIFZlbG9jaXR5RGF0YSB2ZWxvY2l0eURhdGE7CiAgICAg
ICAgIGlmIChtX2hpc3RvcnlTaXplID4gMCkgewpAQCAtMTExLDE0ICsxMTAsMTQgQEAgcHVibGlj
OgogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG9sZGVzdERhdGFJbmRleCA9IG1f
aGlzdG9yeVNpemUgLSAoZGlzdGFuY2VUb0xhc3RIaXN0b3JpY2FsRGF0YSAtIG1fbGF0ZXN0RGF0
YUluZGV4KTsKIAotICAgICAgICAgICAgZG91YmxlIHRpbWVEZWx0YSA9IHRpbWVzdGFtcCAtIG1f
aGlzdG9yeVtvbGRlc3REYXRhSW5kZXhdLnRpbWVzdGFtcDsKKyAgICAgICAgICAgIFNlY29uZHMg
dGltZURlbHRhID0gdGltZXN0YW1wIC0gbV9oaXN0b3J5W29sZGVzdERhdGFJbmRleF0udGltZXN0
YW1wOwogICAgICAgICAgICAgaWYgKHRpbWVEZWx0YSA+IGZpbHRlcmluZ1RocmVzaG9sZCkgewog
ICAgICAgICAgICAgICAgIERhdGEmIG9sZGVzdERhdGEgPSBtX2hpc3Rvcnlbb2xkZXN0RGF0YUlu
ZGV4XTsKLSAgICAgICAgICAgICAgICB2ZWxvY2l0eURhdGEgPSBWZWxvY2l0eURhdGEoKG5ld1Bv
c2l0aW9uLnggLSBvbGRlc3REYXRhLnBvc2l0aW9uLngpIC8gdGltZURlbHRhLCAobmV3UG9zaXRp
b24ueSAtIG9sZGVzdERhdGEucG9zaXRpb24ueSkgLyB0aW1lRGVsdGEsIChzY2FsZSAtIG9sZGVz
dERhdGEuc2NhbGUpIC8gdGltZURlbHRhKTsKKyAgICAgICAgICAgICAgICB2ZWxvY2l0eURhdGEg
PSBWZWxvY2l0eURhdGEoKG5ld1Bvc2l0aW9uLnggLSBvbGRlc3REYXRhLnBvc2l0aW9uLngpIC8g
dGltZURlbHRhLnNlY29uZHMoKSwgKG5ld1Bvc2l0aW9uLnkgLSBvbGRlc3REYXRhLnBvc2l0aW9u
LnkpIC8gdGltZURlbHRhLnNlY29uZHMoKSwgKHNjYWxlIC0gb2xkZXN0RGF0YS5zY2FsZSkgLyB0
aW1lRGVsdGEuc2Vjb25kcygpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAg
IGRvdWJsZSB0aW1lU2luY2VMYXN0QXBwZW5kID0gdGltZXN0YW1wIC0gbV9sYXN0QXBwZW5kVGlt
ZXN0YW1wOworICAgICAgICBTZWNvbmRzIHRpbWVTaW5jZUxhc3RBcHBlbmQgPSB0aW1lc3RhbXAg
LSBtX2xhc3RBcHBlbmRUaW1lc3RhbXA7CiAgICAgICAgIGlmICh0aW1lU2luY2VMYXN0QXBwZW5k
ID4gZmlsdGVyaW5nVGhyZXNob2xkKQogICAgICAgICAgICAgYXBwZW5kKG5ld1Bvc2l0aW9uLCBz
Y2FsZSwgdGltZXN0YW1wKTsKICAgICAgICAgZWxzZQpAQCAtMTI5LDcgKzEyOCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNsZWFyKCkgeyBtX2hpc3RvcnlTaXplID0gMDsgfQogCiBwcml2YXRlOgot
ICAgIHZvaWQgYXBwZW5kKENHUG9pbnQgbmV3UG9zaXRpb24sIGRvdWJsZSBzY2FsZSwgZG91Ymxl
IHRpbWVzdGFtcCkKKyAgICB2b2lkIGFwcGVuZChDR1BvaW50IG5ld1Bvc2l0aW9uLCBkb3VibGUg
c2NhbGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIHsKICAgICAgICAgbV9sYXRlc3RE
YXRhSW5kZXggPSAobV9sYXRlc3REYXRhSW5kZXggKyAxKSAlIG1heEhpc3RvcnlEZXB0aDsKICAg
ICAgICAgbV9oaXN0b3J5W21fbGF0ZXN0RGF0YUluZGV4XSA9IHsgdGltZXN0YW1wLCBuZXdQb3Np
dGlvbiwgc2NhbGUgfTsKQEAgLTE0NiwxMCArMTQ1LDEwIEBAIHByaXZhdGU6CiAKICAgICB1bnNp
Z25lZCBtX2hpc3RvcnlTaXplOwogICAgIHVuc2lnbmVkIG1fbGF0ZXN0RGF0YUluZGV4OwotICAg
IGRvdWJsZSBtX2xhc3RBcHBlbmRUaW1lc3RhbXA7CisgICAgTW9ub3RvbmljVGltZSBtX2xhc3RB
cHBlbmRUaW1lc3RhbXA7CiAKICAgICBzdHJ1Y3QgRGF0YSB7Ci0gICAgICAgIGRvdWJsZSB0aW1l
c3RhbXA7CisgICAgICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1wOwogICAgICAgICBDR1BvaW50
IHBvc2l0aW9uOwogICAgICAgICBkb3VibGUgc2NhbGU7CiAgICAgfSBtX2hpc3RvcnlbbWF4SGlz
dG9yeURlcHRoXTsKQEAgLTM3MCw3ICszNjksNyBAQCAtICh2b2lkKWRpZFVwZGF0ZVZpc2libGVS
ZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNjdXJlZFJlY3Q6KENHUmVjdCl1bm9ic2N1cgog
ICAgIGlmICghZHJhd2luZ0FyZWEpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRvdWJsZSB0aW1l
c3RhbXAgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICBNb25vdG9uaWNUaW1l
IHRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIEhpc3RvcmljYWxWZWxvY2l0
eURhdGE6OlZlbG9jaXR5RGF0YSB2ZWxvY2l0eURhdGE7CiAgICAgaWYgKCFpc1N0YWJsZVN0YXRl
KQogICAgICAgICB2ZWxvY2l0eURhdGEgPSBfaGlzdG9yaWNhbEtpbmVtYXRpY0RhdGEudmVsb2Np
dHlGb3JOZXdEYXRhKHZpc2libGVSZWN0Lm9yaWdpbiwgem9vbVNjYWxlLCB0aW1lc3RhbXApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOGM4OWJlYWIzZmE0ZDVmNDJhYzU5OTQ4OTdkNjhhMWRj
YzAwMTUyMi4uNmE3ZWNjNGFhYTdiZjA0NTAzNDg4YjFkNjU2MzBmY2E1MGE5ZjQ3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdl
YkFwcE9yaWVudGF0aW9uc1VwZGF0ZWQoKSBvdmVycmlkZTsKICAgICB2b2lkIHNob3dQbGF5YmFj
a1RhcmdldFBpY2tlcihib29sIGhhc1ZpZGVvKSBvdmVycmlkZTsKIAotICAgIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgZXZlbnRUaHJvdHRsaW5nRGVsYXkoKSBvdmVycmlkZTsKKyAgICBTZWNv
bmRzIGV2ZW50VGhyb3R0bGluZ0RlbGF5KCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShPUklFTlRBVElPTl9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1MubW0K
aW5kZXggM2MyMjQzNWZmMzM4NzdiOTU2MjM2OWMwODkxMzFhYjBhMWRhMjFkZS4uMGRmZjgwODQ5
NjZjYjU5ZTAwOWM1YThmZTZiMTc2ZGQ4ZmE4ODM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9t
ZUNsaWVudElPUy5tbQpAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpz
aG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbykKICAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGhhc1ZpZGVv
LCBtX3BhZ2UtPnJlY3RGb3JFbGVtZW50QXRJbnRlcmFjdGlvbkxvY2F0aW9uKCkpKTsKIH0KIAot
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBXZWJDaHJvbWVDbGllbnQ6OmV2ZW50VGhyb3R0bGlu
Z0RlbGF5KCkKK1NlY29uZHMgV2ViQ2hyb21lQ2xpZW50OjpldmVudFRocm90dGxpbmdEZWxheSgp
CiB7CiAgICAgcmV0dXJuIG1fcGFnZS0+ZXZlbnRUaHJvdHRsaW5nRGVsYXkoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0
Y2hlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNw
YXRjaGVyLmgKaW5kZXggYmZmOWY2ZGI3MWY1NjVhOGQyNmE1NjY4M2IwM2RjNjRmNTY5YTgyMy4u
ZTQ3ZGM0ZTFkNDE2ODIyMzQwYWZhZGVhMmEzYzgwNjIwZjRiMjA4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVy
LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBVcGRhdGVEYXRhIHsK
ICAgICAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyB2aXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvOwotICAgICAgICBkb3VibGUgb2xkZXN0VGltZXN0YW1wOworICAgICAgICBNb25v
dG9uaWNUaW1lIG9sZGVzdFRpbWVzdGFtcDsKICAgICB9OwogCiAgICAgUmVmPFdvcmtRdWV1ZT4g
bV9xdWV1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCA2ZmQwYzc5NmEwNGMxYjVhZTQzYWFhMWQzODAwZTcwMDhkYjYwMjhkLi5hOWNmYzIw
NDdiMDYwMGE2NjAwY2Q0NWNjYTgxYzM4OTA4ZDQzNGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yODgsMjcgKzI4OCwxMSBAQCBSZWY8
V2ViUGFnZT4gV2ViUGFnZTo6Y3JlYXRlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYgcAogV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNv
bnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgOiBtX3BhZ2VJ
RChwYWdlSUQpCiAgICAgLCBtX3ZpZXdTaXplKHBhcmFtZXRlcnMudmlld1NpemUpCi0gICAgLCBt
X2hhc1NlZW5QbHVnaW4oZmFsc2UpCi0gICAgLCBtX3VzZUZpeGVkTGF5b3V0KGZhbHNlKQotICAg
ICwgbV9kcmF3c0JhY2tncm91bmQodHJ1ZSkKLSAgICAsIG1faXNJblJlZG8oZmFsc2UpCi0gICAg
LCBtX2lzQ2xvc2VkKGZhbHNlKQotICAgICwgbV90YWJUb0xpbmtzKGZhbHNlKQotICAgICwgbV9h
c3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2Fz
eW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMoZmFsc2Up
Ci0gICAgLCBtX2FydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZChmYWxz
ZSkKLSAgICAsIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkKLSAg
ICAsIG1fbWFpbkZyYW1lSXNTY3JvbGxhYmxlKHRydWUpCiAjaWYgRU5BQkxFKFBSSU1BUllfU05B
UFNIT1RURURfUExVR0lOX0hFVVJJU1RJQykKLSAgICAsIG1fcmVhZHlUb0ZpbmRQcmltYXJ5U25h
cHNob3R0ZWRQbHVnaW4oZmFsc2UpCi0gICAgLCBtX2RpZEZpbmRQcmltYXJ5U25hcHNob3R0ZWRQ
bHVnaW4oZmFsc2UpCi0gICAgLCBtX251bWJlck9mUHJpbWFyeVNuYXBzaG90RGV0ZWN0aW9uQXR0
ZW1wdHMoMCkKICAgICAsIG1fZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90
dGVkUGx1Z0luVGltZXJGaXJlZCkKICNlbmRpZgogICAgICwgbV9sYXllckhvc3RpbmdNb2RlKHBh
cmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAsIG1f
cGRmUGx1Z2luRW5hYmxlZChmYWxzZSkKLSAgICAsIG1faGFzQ2FjaGVkV2luZG93RnJhbWUoZmFs
c2UpCiAgICAgLCBtX3ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3IoKnRoaXMpCiAjZWxpZiBI
QVZFKEFDQ0VTU0lCSUxJVFkpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAg
ICAgLCBtX2FjY2Vzc2liaWxpdHlPYmplY3QobnVsbHB0cikKQEAgLTMyMCw5ICszMDQsNiBAQCBX
ZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKICAgICAsIG1fZm9ybUNsaWVudChzdGQ6Om1ha2VfdW5pcXVl
PEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQ+KCkpCiAgICAgLCBtX3VpQ2xpZW50KHN0
ZDo6bWFrZV91bmlxdWU8QVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZVVJQ2xpZW50PigpKQogICAg
ICwgbV9maW5kQ29udHJvbGxlcih0aGlzKQotI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQot
ICAgICwgbV9hY3RpdmVDb2xvckNob29zZXIoMCkKLSNlbmRpZgogICAgICwgbV91c2VyQ29udGVu
dENvbnRyb2xsZXIoV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpnZXRPckNyZWF0ZShwYXJhbWV0
ZXJzLnVzZXJDb250ZW50Q29udHJvbGxlcklEKSkKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAg
ICAgLCBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKHRoaXMpCkBAIC0zMzMs
NTMgKzMxNCwxNSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAsIG1fcGFnZVNjcm9sbGVk
SHlzdGVyZXNpcyhbdGhpc10oSHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IGlmIChzdGF0ZSA9PSBI
eXN0ZXJlc2lzU3RhdGU6OlN0b3BwZWQpIHBhZ2VTdG9wcGVkU2Nyb2xsaW5nKCk7IH0sIHBhZ2VT
Y3JvbGxIeXN0ZXJlc2lzU2Vjb25kcykKICAgICAsIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgICwg
bV9jYW5SdW5Nb2RhbChwYXJhbWV0ZXJzLmNhblJ1bk1vZGFsKQotICAgICwgbV9pc1J1bm5pbmdN
b2RhbChmYWxzZSkKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgICwgbV9pc1N0YXJ0aW5n
RHJhZyhmYWxzZSkKLSNlbmRpZgotICAgICwgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvTGVm
dFNpZGUodHJ1ZSkKLSAgICAsIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lkZSh0
cnVlKQotICAgICwgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZSh0cnVlKQotICAg
ICwgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lkZSh0cnVlKQotICAgICwgbV9j
YW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMoZmFsc2UpCi0gICAgLCBtX2hhc1do
ZWVsRXZlbnRIYW5kbGVycyhmYWxzZSkKLSAgICAsIG1fY2FjaGVkUGFnZUNvdW50KDApCi0gICAg
LCBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoZmFsc2UpCi0gICAgLCBtX3Vz
ZXJJc0ludGVyYWN0aW5nKGZhbHNlKQotI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotICAgICwg
bV9pc1Nob3dpbmdDb250ZXh0TWVudShmYWxzZSkKLSNlbmRpZgotICAgICwgbV9oYXNQZW5kaW5n
Qmx1ck5vdGlmaWNhdGlvbihmYWxzZSkKICNpZiBQTEFURk9STShJT1MpCi0gICAgLCBtX3NlbGVj
dGlvbkFuY2hvcihTdGFydCkKLSAgICAsIG1faGFzUmVjZWl2ZWRWaXNpYmxlQ29udGVudFJlY3Rz
QWZ0ZXJEaWRDb21taXRMb2FkKGZhbHNlKQotICAgICwgbV9zY2FsZVdhc1NldEJ5VUlQcm9jZXNz
KGZhbHNlKQotICAgICwgbV91c2VySGFzQ2hhbmdlZFBhZ2VTY2FsZUZhY3RvcihmYWxzZSkKLSAg
ICAsIG1faGFzU3RhYmxlUGFnZVNjYWxlRmFjdG9yKHRydWUpCi0gICAgLCBtX3VzZVRlc3RpbmdW
aWV3cG9ydENvbmZpZ3VyYXRpb24oZmFsc2UpCi0gICAgLCBtX2lzSW5TdGFibGVTdGF0ZSh0cnVl
KQogICAgICwgbV9mb3JjZUFsd2F5c1VzZXJTY2FsYWJsZShwYXJhbWV0ZXJzLmlnbm9yZXNWaWV3
cG9ydFNjYWxlTGltaXRzKQotICAgICwgbV9vbGRlc3ROb25TdGFibGVVcGRhdGVWaXNpYmxlQ29u
dGVudFJlY3RzVGltZXN0YW1wKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKSkKLSAg
ICAsIG1fZXN0aW1hdGVkTGF0ZW5jeShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCkp
CiAgICAgLCBtX3NjcmVlblNpemUocGFyYW1ldGVycy5zY3JlZW5TaXplKQogICAgICwgbV9hdmFp
bGFibGVTY3JlZW5TaXplKHBhcmFtZXRlcnMuYXZhaWxhYmxlU2NyZWVuU2l6ZSkKLSAgICAsIG1f
ZGV2aWNlT3JpZW50YXRpb24oMCkKLSAgICAsIG1faW5EeW5hbWljU2l6ZVVwZGF0ZShmYWxzZSkK
ICNlbmRpZgogICAgICwgbV9sYXllclZvbGF0aWxpdHlUaW1lcigqdGhpcywgJldlYlBhZ2U6Omxh
eWVyVm9sYXRpbGl0eVRpbWVyRmlyZWQpCi0gICAgLCBtX2JhY2tncm91bmRDb2xvcihDb2xvcjo6
d2hpdGUpCi0gICAgLCBtX21heGltdW1SZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKDApCi0gICAg
LCBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcihEb05vdFBpbikKLSAgICAsIG1fdXNlQXN5bmNTY3Jv
bGxpbmcoZmFsc2UpCiAgICAgLCBtX2FjdGl2aXR5U3RhdGUocGFyYW1ldGVycy5hY3Rpdml0eVN0
YXRlKQogICAgICwgbV91c2VyQWN0aXZpdHkoIlByb2Nlc3Mgc3VwcHJlc3Npb24gZGlzYWJsZWQg
Zm9yIHBhZ2UuIikKICAgICAsIG1fdXNlckFjdGl2aXR5SHlzdGVyZXNpcyhbdGhpc10oSHlzdGVy
ZXNpc1N0YXRlKSB7IHVwZGF0ZVVzZXJBY3Rpdml0eSgpOyB9KQotICAgICwgbV9wZW5kaW5nTmF2
aWdhdGlvbklEKDApCi0jaWYgRU5BQkxFKFdFQkdMKQotICAgICwgbV9zeXN0ZW1XZWJHTFBvbGlj
eShXZWJHTEFsbG93Q3JlYXRpb24pCi0jZW5kaWYKLSAgICAsIG1fbWFpbkZyYW1lUHJvZ3Jlc3ND
b21wbGV0ZWQoZmFsc2UpCi0gICAgLCBtX3Nob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50
cyh0cnVlKQogICAgICwgbV91c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKHBhcmFtZXRlcnMu
dXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbikKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwpA
QCAtMzI4NiwxNCArMzIyOSwxNCBAQCB2b2lkIFdlYlBhZ2U6OndpbGxDb21taXRMYXllclRyZWUo
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIGxheWVyVHJhbnNhY3Rpb24pCiAjZW5kaWYKIH0K
IAotdm9pZCBXZWJQYWdlOjpkaWRGbHVzaExheWVyVHJlZUF0VGltZShzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzIHRpbWVzdGFtcCkKK3ZvaWQgV2ViUGFnZTo6ZGlkRmx1c2hMYXllclRyZWVBdFRp
bWUoTW9ub3RvbmljVGltZSB0aW1lc3RhbXApCiB7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlm
IChtX29sZGVzdE5vblN0YWJsZVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNUaW1lc3RhbXAgIT0g
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6emVybygpKSB7Ci0gICAgICAgIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgZWxhcHNlZCA9IHRpbWVzdGFtcCAtIG1fb2xkZXN0Tm9uU3RhYmxlVXBk
YXRlVmlzaWJsZUNvbnRlbnRSZWN0c1RpbWVzdGFtcDsKLSAgICAgICAgbV9vbGRlc3ROb25TdGFi
bGVVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzVGltZXN0YW1wID0gc3RkOjpjaHJvbm86Om1pbGxp
c2Vjb25kczo6emVybygpOworICAgIGlmIChtX29sZGVzdE5vblN0YWJsZVVwZGF0ZVZpc2libGVD
b250ZW50UmVjdHNUaW1lc3RhbXAgIT0gTW9ub3RvbmljVGltZSgpKSB7CisgICAgICAgIFNlY29u
ZHMgZWxhcHNlZCA9IHRpbWVzdGFtcCAtIG1fb2xkZXN0Tm9uU3RhYmxlVXBkYXRlVmlzaWJsZUNv
bnRlbnRSZWN0c1RpbWVzdGFtcDsKKyAgICAgICAgbV9vbGRlc3ROb25TdGFibGVVcGRhdGVWaXNp
YmxlQ29udGVudFJlY3RzVGltZXN0YW1wID0gTW9ub3RvbmljVGltZSgpOwogCi0gICAgICAgIG1f
ZXN0aW1hdGVkTGF0ZW5jeSA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoc3RhdGljX2Nhc3Q8
c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczo6cmVwPihtX2VzdGltYXRlZExhdGVuY3kuY291bnQo
KSAqIDAuODAgKyBlbGFwc2VkLmNvdW50KCkgKiAwLjIwKSk7CisgICAgICAgIG1fZXN0aW1hdGVk
TGF0ZW5jeSA9IG1fZXN0aW1hdGVkTGF0ZW5jeSAqIDAuODAgKyBlbGFwc2VkICogMC4yMDsKICAg
ICB9CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh0aW1lc3RhbXApOwpAQCAtNTE1OSw3ICs1MTAy
LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRDb21taXRMb2FkKFdlYkZyYW1lKiBmcmFtZSkKICAgICBt
X2hhc1JlY2VpdmVkVmlzaWJsZUNvbnRlbnRSZWN0c0FmdGVyRGlkQ29tbWl0TG9hZCA9IGZhbHNl
OwogICAgIG1fc2NhbGVXYXNTZXRCeVVJUHJvY2VzcyA9IGZhbHNlOwogICAgIG1fdXNlckhhc0No
YW5nZWRQYWdlU2NhbGVGYWN0b3IgPSBmYWxzZTsKLSAgICBtX2VzdGltYXRlZExhdGVuY3kgPSBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMDAgLyA2MCk7CisgICAgbV9lc3RpbWF0ZWRMYXRl
bmN5ID0gU2Vjb25kcygxLjAgLyA2MCk7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykK
ICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5ldmVudERpc3BhdGNoZXIoKS5jbGVhclF1ZXVl
ZFRvdWNoRXZlbnRzRm9yUGFnZSgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwOTFkOGVhMmY5MTkyNmViNTZlYWY3M2U4NjhiNjg2YTQy
ZTJjZTU0Li5kZDYyYTk5M2JiZmEzMmY1OGI5ZjI5YWVkOTBkYTQyNzEyOTc2NDk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTczLDkgKzczLDEx
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaD4KICNpbmNsdWRl
IDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTW9ub3Rv
bmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKQEAgLTI0Nyw3ICsyNDks
NyBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHdpbGxDb21taXRM
YXllclRyZWUoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKLSAgICB2b2lkIGRpZEZsdXNo
TGF5ZXJUcmVlQXRUaW1lKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMpOworICAgIHZvaWQgZGlk
Rmx1c2hMYXllclRyZWVBdFRpbWUoTW9ub3RvbmljVGltZSk7CiAjZW5kaWYKIAogICAgIGVudW0g
Y2xhc3MgTGF6eUNyZWF0aW9uUG9saWN5IHsgVXNlRXhpc3RpbmdPbmx5LCBDcmVhdGVJZk5lZWRl
ZCB9OwpAQCAtNTc3LDcgKzU3OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRlbnRTaXplQ2F0
ZWdvcnlEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBleGVjdXRlRWRpdENvbW1h
bmRXaXRoQ2FsbGJhY2soY29uc3QgU3RyaW5nJiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKLSAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGV2ZW50VGhyb3R0bGluZ0RlbGF5KCkgY29uc3Q7
CisgICAgU2Vjb25kcyBldmVudFRocm90dGxpbmdEZWxheSgpIGNvbnN0OwogCiAgICAgdm9pZCBz
aG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpOwogICAgIHZv
aWQgaGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOwpAQCAtODI1LDcgKzgyNyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwogICAgIHZvaWQgZHluYW1p
Y1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1MYXlv
dXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1cmVkU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywg
ZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIHZvaWQgc3luY2hyb25pemVEeW5hbWljVmlld3Bv
cnRVcGRhdGUoZG91YmxlJiBuZXdUYXJnZXRTY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3
U2Nyb2xsUG9zaXRpb24sIHVpbnQ2NF90JiBuZXh0VmFsaWRMYXllclRyZWVUcmFuc2FjdGlvbklE
KTsKLSAgICB2b2lkIHVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mbyYsIGRvdWJsZSBvbGRlc3RUaW1lc3RhbXApOworICAgIHZvaWQgdXBk
YXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZv
JiwgTW9ub3RvbmljVGltZSBvbGRlc3RUaW1lc3RhbXApOwogICAgIGJvb2wgc2NhbGVXYXNTZXRC
eVVJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVXYXNTZXRCeVVJUHJvY2VzczsgfQog
ICAgIHZvaWQgd2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKTsKICAgICB2b2lkIGFwcGxp
Y2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpOwpAQCAtMTI1MSwzNyArMTI1MywzMyBAQCBwcml2YXRl
OgogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gbV9kcmF3aW5nQXJlYTsKIAogICAg
IEhhc2hTZXQ8UGx1Z2luVmlldyo+IG1fcGx1Z2luVmlld3M7Ci0gICAgYm9vbCBtX2hhc1NlZW5Q
bHVnaW47CisgICAgYm9vbCBtX2hhc1NlZW5QbHVnaW4geyBmYWxzZSB9OwogCiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q+PiBtX3BlbmRp
bmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFwOwogCi0gICAgYm9vbCBtX3VzZUZpeGVkTGF5b3V0Owot
Ci0gICAgYm9vbCBtX2RyYXdzQmFja2dyb3VuZDsKKyAgICBib29sIG1fdXNlRml4ZWRMYXlvdXQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9kcmF3c0JhY2tncm91bmQgeyB0cnVlIH07CiAKICAgICBX
ZWJDb3JlOjpDb2xvciBtX3VuZGVybGF5Q29sb3I7CiAKLSAgICBib29sIG1faXNJblJlZG87Ci0g
ICAgYm9vbCBtX2lzQ2xvc2VkOwotCi0gICAgYm9vbCBtX3RhYlRvTGlua3M7CisgICAgYm9vbCBt
X2lzSW5SZWRvIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OworICAg
IGJvb2wgbV90YWJUb0xpbmtzIHsgZmFsc2UgfTsKICAgICAKLSAgICBib29sIG1fYXN5bmNocm9u
b3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkOwotICAgIGJvb2wgbV9hc3luY2hyb25vdXNQ
bHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zOwotICAgIGJvb2wgbV9hcnRp
ZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQ7Ci0KLSAgICBib29sIG1fc2Ny
b2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZDsKLQotICAgIGJvb2wgbV9tYWluRnJhbWVJ
c1Njcm9sbGFibGU7CisgICAgYm9vbCBtX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9u
RW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxp
emF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9hcnRpZmlj
aWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fbWFpbkZyYW1lSXNTY3JvbGxhYmxlIHsgdHJ1ZSB9OwogCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgIGJvb2wgbV9pZ25vcmVWaWV3cG9ydFNjYWxpbmdDb25zdHJhaW50cyB7IGZhbHNlIH07CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShQUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMp
Ci0gICAgYm9vbCBtX3JlYWR5VG9GaW5kUHJpbWFyeVNuYXBzaG90dGVkUGx1Z2luOwotICAgIGJv
b2wgbV9kaWRGaW5kUHJpbWFyeVNuYXBzaG90dGVkUGx1Z2luOwotICAgIHVuc2lnbmVkIG1fbnVt
YmVyT2ZQcmltYXJ5U25hcHNob3REZXRlY3Rpb25BdHRlbXB0czsKKyAgICBib29sIG1fcmVhZHlU
b0ZpbmRQcmltYXJ5U25hcHNob3R0ZWRQbHVnaW4geyBmYWxzZSB9OworICAgIGJvb2wgbV9kaWRG
aW5kUHJpbWFyeVNuYXBzaG90dGVkUGx1Z2luIHsgZmFsc2UgfTsKKyAgICB1bnNpZ25lZCBtX251
bWJlck9mUHJpbWFyeVNuYXBzaG90RGV0ZWN0aW9uQXR0ZW1wdHMgeyAwIH07CiAgICAgU3RyaW5n
IG1fcHJpbWFyeVBsdWdJblBhZ2VPcmlnaW47CiAgICAgU3RyaW5nIG1fcHJpbWFyeVBsdWdJbk9y
aWdpbjsKICAgICBTdHJpbmcgbV9wcmltYXJ5UGx1Z0luTWltZVR5cGU7CkBAIC0xMjkyLDkgKzEy
OTAsOCBAQCBwcml2YXRlOgogICAgIExheWVySG9zdGluZ01vZGUgbV9sYXllckhvc3RpbmdNb2Rl
OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgYm9vbCBtX3BkZlBsdWdpbkVuYWJsZWQ7Ci0K
LSAgICBib29sIG1faGFzQ2FjaGVkV2luZG93RnJhbWU7CisgICAgYm9vbCBtX3BkZlBsdWdpbkVu
YWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNDYWNoZWRXaW5kb3dGcmFtZSB7IGZhbHNl
IH07CiAKICAgICAvLyBUaGUgZnJhbWUgb2YgdGhlIGNvbnRhaW5pbmcgd2luZG93IGluIHNjcmVl
biBjb29yZGluYXRlcy4KICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV93aW5kb3dGcmFtZUluU2Ny
ZWVuQ29vcmRpbmF0ZXM7CkBAIC0xMzIwLDcgKzEzMTcsNyBAQCBwcml2YXRlOgogCiAjaWYgUExB
VEZPUk0oR1RLKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAgICAgLy8gT3VyIHZpZXcncyB3
aW5kb3cgaW4gdGhlIFVJIHByb2Nlc3MuCi0gICAgdWludDY0X3QgbV9uYXRpdmVXaW5kb3dIYW5k
bGU7CisgICAgdWludDY0X3QgbV9uYXRpdmVXaW5kb3dIYW5kbGUgeyAwIH07CiAjZW5kaWYKIAog
I2lmICFQTEFURk9STShJT1MpCkBAIC0xMzI5LDcgKzEzMjYsNyBAQCBwcml2YXRlOgogI2VuZGlm
IC8vICFQTEFURk9STShJT1MpCiAKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX3NldENh
blN0YXJ0TWVkaWFUaW1lcjsKLSAgICBib29sIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsK
KyAgICBib29sIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyB7IGZhbHNlIH07CiAKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViVW5kb1N0ZXA+PiBtX3VuZG9TdGVwTWFwOwogCkBA
IC0xMzY4LDcgKzEzNjUsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb250ZXh0TWVudT4g
bV9jb250ZXh0TWVudTsKICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAg
IFdlYkNvbG9yQ2hvb3NlciogbV9hY3RpdmVDb2xvckNob29zZXI7CisgICAgV2ViQ29sb3JDaG9v
c2VyKiBtX2FjdGl2ZUNvbG9yQ2hvb3NlciB7IG51bGxwdHIgfTsKICNlbmRpZgogICAgIFJlZlB0
cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4gbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lcjsKICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBt
X25vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKQEAgLTEzOTUsNDEgKzEzOTIs
NDEgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6Okh5c3RlcmVzaXNBY3Rpdml0eSBtX3BhZ2VT
Y3JvbGxlZEh5c3RlcmVzaXM7CiAKLSAgICBib29sIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsOworICAgIGJvb2wgbV9jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwgeyBmYWxz
ZSB9OwogCi0gICAgYm9vbCBtX2NhblJ1bk1vZGFsOwotICAgIGJvb2wgbV9pc1J1bm5pbmdNb2Rh
bDsKKyAgICBib29sIG1fY2FuUnVuTW9kYWwgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1J1bm5p
bmdNb2RhbCB7IGZhbHNlIH07CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIGJvb2wg
bV9pc1N0YXJ0aW5nRHJhZzsKKyAgICBib29sIG1faXNTdGFydGluZ0RyYWcgeyBmYWxzZSB9Owog
I2VuZGlmCiAKLSAgICBib29sIG1fY2FjaGVkTWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRlOwot
ICAgIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlOwotICAgIGJvb2wg
bV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvVG9wU2lkZTsKLSAgICBib29sIG1fY2FjaGVkTWFp
bkZyYW1lSXNQaW5uZWRUb0JvdHRvbVNpZGU7Ci0gICAgYm9vbCBtX2NhblNob3J0Q2lyY3VpdEhv
cml6b250YWxXaGVlbEV2ZW50czsKLSAgICBib29sIG1faGFzV2hlZWxFdmVudEhhbmRsZXJzOwor
ICAgIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGUgeyB0cnVlIH07Cisg
ICAgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9SaWdodFNpZGUgeyB0cnVlIH07Cisg
ICAgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUlzUGlubmVkVG9Ub3BTaWRlIHsgdHJ1ZSB9OworICAg
IGJvb2wgbV9jYWNoZWRNYWluRnJhbWVJc1Bpbm5lZFRvQm90dG9tU2lkZSB7IHRydWUgfTsKKyAg
ICBib29sIG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzIHsgZmFsc2UgfTsK
KyAgICBib29sIG1faGFzV2hlZWxFdmVudEhhbmRsZXJzIHsgZmFsc2UgfTsKIAotICAgIHVuc2ln
bmVkIG1fY2FjaGVkUGFnZUNvdW50OworICAgIHVuc2lnbmVkIG1fY2FjaGVkUGFnZUNvdW50IHsg
MCB9OwogCiAgICAgSGFzaFNldDx1bnNpZ25lZCBsb25nPiBtX3RyYWNrZWROZXR3b3JrUmVzb3Vy
Y2VSZXF1ZXN0SWRlbnRpZmllcnM7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbWluaW11bUxh
eW91dFNpemU7Ci0gICAgYm9vbCBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7
CisgICAgYm9vbCBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQgeyBmYWxzZSB9
OwogCi0gICAgYm9vbCBtX3VzZXJJc0ludGVyYWN0aW5nOworICAgIGJvb2wgbV91c2VySXNJbnRl
cmFjdGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQXNzaXN0aW5nTm9kZUR1ZVRvVXNlcklu
dGVyYWN0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzRXZlckZvY3VzZWRFbGVtZW50RHVl
VG9Vc2VySW50ZXJhY3Rpb25TaW5jZVBhZ2VUcmFuc2l0aW9uIHsgZmFsc2UgfTsKICAgICBib29s
IG1fbmVlZHNIaWRkZW5Db250ZW50RWRpdGFibGVRdWlyayB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X25lZWRzUGxhaW5UZXh0UXVpcmsgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVO
VVMpCi0gICAgYm9vbCBtX2lzU2hvd2luZ0NvbnRleHRNZW51OworICAgIGJvb2wgbV9pc1Nob3dp
bmdDb250ZXh0TWVudSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpO
b2RlPiBtX2Fzc2lzdGVkTm9kZTsKLSAgICBib29sIG1faGFzUGVuZGluZ0JsdXJOb3RpZmljYXRp
b247CisgICAgYm9vbCBtX2hhc1BlbmRpbmdCbHVyTm90aWZpY2F0aW9uIHsgZmFsc2UgfTsKICAg
ICAKICNpZiBQTEFURk9STShJT1MpCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBtX2N1cnJl
bnRXb3JkUmFuZ2U7CkBAIC0xNDQwLDIxICsxNDM3LDIxIEBAIHByaXZhdGU6CiAgICAgICAgIFN0
YXJ0LAogICAgICAgICBFbmQKICAgICB9OwotICAgIFNlbGVjdGlvbkFuY2hvciBtX3NlbGVjdGlv
bkFuY2hvcjsKKyAgICBTZWxlY3Rpb25BbmNob3IgbV9zZWxlY3Rpb25BbmNob3IgeyBTdGFydCB9
OwogCiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG1fcG90ZW50aWFsVGFwTm9kZTsKICAgICBX
ZWJDb3JlOjpGbG9hdFBvaW50IG1fcG90ZW50aWFsVGFwTG9jYXRpb247CiAKICAgICBXZWJDb3Jl
OjpWaWV3cG9ydENvbmZpZ3VyYXRpb24gbV92aWV3cG9ydENvbmZpZ3VyYXRpb247Ci0gICAgYm9v
bCBtX2hhc1JlY2VpdmVkVmlzaWJsZUNvbnRlbnRSZWN0c0FmdGVyRGlkQ29tbWl0TG9hZDsKLSAg
ICBib29sIG1fc2NhbGVXYXNTZXRCeVVJUHJvY2VzczsKLSAgICBib29sIG1fdXNlckhhc0NoYW5n
ZWRQYWdlU2NhbGVGYWN0b3I7Ci0gICAgYm9vbCBtX2hhc1N0YWJsZVBhZ2VTY2FsZUZhY3RvcjsK
LSAgICBib29sIG1fdXNlVGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbjsKLSAgICBib29sIG1f
aXNJblN0YWJsZVN0YXRlOwotICAgIGJvb2wgbV9mb3JjZUFsd2F5c1VzZXJTY2FsYWJsZTsKLSAg
ICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1fb2xkZXN0Tm9uU3RhYmxlVXBkYXRlVmlzaWJs
ZUNvbnRlbnRSZWN0c1RpbWVzdGFtcDsKLSAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIG1f
ZXN0aW1hdGVkTGF0ZW5jeTsKKyAgICBib29sIG1faGFzUmVjZWl2ZWRWaXNpYmxlQ29udGVudFJl
Y3RzQWZ0ZXJEaWRDb21taXRMb2FkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2NhbGVXYXNTZXRC
eVVJUHJvY2VzcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxl
RmFjdG9yIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzU3RhYmxlUGFnZVNjYWxlRmFjdG9yIHsg
dHJ1ZSB9OworICAgIGJvb2wgbV91c2VUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faXNJblN0YWJsZVN0YXRlIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9m
b3JjZUFsd2F5c1VzZXJTY2FsYWJsZSB7IGZhbHNlIH07CisgICAgTW9ub3RvbmljVGltZSBtX29s
ZGVzdE5vblN0YWJsZVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNUaW1lc3RhbXA7CisgICAgU2Vj
b25kcyBtX2VzdGltYXRlZExhdGVuY3kgeyAwIH07CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1f
c2NyZWVuU2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9hdmFpbGFibGVTY3JlZW5TaXpl
OwogICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gbV9jdXJyZW50QmxvY2tTZWxlY3Rpb247CkBA
IC0xNDYzLDggKzE0NjAsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4g
bV9pbml0aWFsU2VsZWN0aW9uOwogICAgIFdlYkNvcmU6OkludFNpemUgbV9ibG9ja1NlbGVjdGlv
bkRlc2lyZWRTaXplOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX21heGltdW1Vbm9ic2N1cmVk
U2l6ZTsKLSAgICBpbnQzMl90IG1fZGV2aWNlT3JpZW50YXRpb247Ci0gICAgYm9vbCBtX2luRHlu
YW1pY1NpemVVcGRhdGU7CisgICAgaW50MzJfdCBtX2RldmljZU9yaWVudGF0aW9uIHsgMCB9Owor
ICAgIGJvb2wgbV9pbkR5bmFtaWNTaXplVXBkYXRlIHsgZmFsc2UgfTsKICAgICBIYXNoTWFwPHN0
ZDo6cGFpcjxXZWJDb3JlOjpJbnRTaXplLCBkb3VibGU+LCBXZWJDb3JlOjpJbnRQb2ludD4gbV9k
eW5hbWljU2l6ZVVwZGF0ZUhpc3Rvcnk7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG1fcGVu
ZGluZ1N5bnRoZXRpY0NsaWNrTm9kZTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1fcGVuZGlu
Z1N5bnRoZXRpY0NsaWNrTG9jYXRpb247CkBAIC0xNDc2LDI5ICsxNDczLDI5IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkVW5kZXJMb2NrIHsgZmFsc2UgfTsKIAogICAgIEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IG1fbWltZVR5cGVzV2l0aEN1c3Rv
bUNvbnRlbnRQcm92aWRlcnM7Ci0gICAgV2ViQ29yZTo6Q29sb3IgbV9iYWNrZ3JvdW5kQ29sb3I7
CisgICAgV2ViQ29yZTo6Q29sb3IgbV9iYWNrZ3JvdW5kQ29sb3IgeyBXZWJDb3JlOjpDb2xvcjo6
d2hpdGUgfTsKIAogICAgIEhhc2hTZXQ8dW5zaWduZWQ+IG1fYWN0aXZlUmVuZGVyaW5nU3VwcHJl
c3Npb25Ub2tlbnM7Ci0gICAgdW5zaWduZWQgbV9tYXhpbXVtUmVuZGVyaW5nU3VwcHJlc3Npb25U
b2tlbjsKKyAgICB1bnNpZ25lZCBtX21heGltdW1SZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuIHsg
MCB9OwogICAgIAotICAgIFdlYkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvciBtX3Njcm9sbFBp
bm5pbmdCZWhhdmlvcjsKKyAgICBXZWJDb3JlOjpTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3Jv
bGxQaW5uaW5nQmVoYXZpb3IgeyBXZWJDb3JlOjpEb05vdFBpbiB9OwogICAgIFdURjo6T3B0aW9u
YWw8V2ViQ29yZTo6U2Nyb2xsYmFyT3ZlcmxheVN0eWxlPiBtX3Njcm9sbGJhck92ZXJsYXlTdHls
ZTsKIAotICAgIGJvb2wgbV91c2VBc3luY1Njcm9sbGluZzsKKyAgICBib29sIG1fdXNlQXN5bmNT
Y3JvbGxpbmcgeyBmYWxzZSB9OwogCiAgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mg
bV9hY3Rpdml0eVN0YXRlOwogCiAgICAgVXNlckFjdGl2aXR5IG1fdXNlckFjdGl2aXR5OwogICAg
IFdlYkNvcmU6Okh5c3RlcmVzaXNBY3Rpdml0eSBtX3VzZXJBY3Rpdml0eUh5c3RlcmVzaXM7CiAK
LSAgICB1aW50NjRfdCBtX3BlbmRpbmdOYXZpZ2F0aW9uSUQ7CisgICAgdWludDY0X3QgbV9wZW5k
aW5nTmF2aWdhdGlvbklEIHsgMCB9OwogCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIFdlYkNvcmU6
OldlYkdMTG9hZFBvbGljeSBtX3N5c3RlbVdlYkdMUG9saWN5OworICAgIFdlYkNvcmU6OldlYkdM
TG9hZFBvbGljeSBtX3N5c3RlbVdlYkdMUG9saWN5IHsgV2ViQ29yZTo6V2ViR0xBbGxvd0NyZWF0
aW9uIH07CiAjZW5kaWYKIAotICAgIGJvb2wgbV9tYWluRnJhbWVQcm9ncmVzc0NvbXBsZXRlZDsK
LSAgICBib29sIG1fc2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzOworICAgIGJvb2wg
bV9tYWluRnJhbWVQcm9ncmVzc0NvbXBsZXRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3Vs
ZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cyB7IHRydWUgfTsKICAgICBib29sIG1faXNFZGl0
b3JTdGF0ZU1pc3NpbmdQb3N0TGF5b3V0RGF0YSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU2Vs
ZWN0aW5nVGV4dFdoaWxlSW5zZXJ0aW5nQXN5bmNocm9ub3VzbHkgeyBmYWxzZSB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
aW5kZXggYTAxZmEwNGY1ODBjZmE5NDA0YzI0Y2M3ZDc5OTcyZGJhMGE1Y2Q3Zi4uYmU3OGE1ZmJk
OTQ2MGMxYmY3ZDU2OTBlMjk4MjFmMmEzNzU2ODM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjEyMiwxMiArMjEy
MiwxMiBAQCB2b2lkIFdlYlBhZ2U6OmV4ZWN1dGVFZGl0Q29tbWFuZFdpdGhDYWxsYmFjayhjb25z
dCBTdHJpbmcmIGNvbW1hbmROYW1lLCB1aW50NjRfdAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6Vm9pZENhbGxiYWNrKGNhbGxiYWNrSUQpKTsKIH0KIAotc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyBXZWJQYWdlOjpldmVudFRocm90dGxpbmdEZWxheSgpIGNvbnN0CitTZWNvbmRz
IFdlYlBhZ2U6OmV2ZW50VGhyb3R0bGluZ0RlbGF5KCkgY29uc3QKIHsKLSAgICBpZiAobV9pc0lu
U3RhYmxlU3RhdGUgfHwgbV9lc3RpbWF0ZWRMYXRlbmN5IDw9IHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHMoMTAwMCAvIDYwKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHM6Onplcm8oKTsKKyAgICBpZiAobV9pc0luU3RhYmxlU3RhdGUgfHwgbV9lc3RpbWF0ZWRMYXRl
bmN5IDw9IFNlY29uZHMoMS4wIC8gNjApKQorICAgICAgICByZXR1cm4gU2Vjb25kcygwKTsKIAot
ICAgIHJldHVybiBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKHN0ZDo6bWluPHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHM6OnJlcD4obV9lc3RpbWF0ZWRMYXRlbmN5LmNvdW50KCkgKiAyLCAxMDAw
KSk7CisgICAgcmV0dXJuIFNlY29uZHMoc3RkOjptaW48ZG91YmxlPihtX2VzdGltYXRlZExhdGVu
Y3kudmFsdWUoKSAqIDIsIDEpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzeW5jQXBwbHlBdXRvY29y
cmVjdGlvbihjb25zdCBTdHJpbmcmIGNvcnJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxU
ZXh0LCBib29sJiBjb3JyZWN0aW9uQXBwbGllZCkKQEAgLTI4MzIsNyArMjgzMiw3IEBAIHZvaWQg
V2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmlt
dW1MYXlvdXRTaXplLCBjb25zCiAgICAgICAgIG5ld0V4cG9zZWRDb250ZW50UmVjdC5tb3ZlQnko
YWRqdXN0bWVudERlbHRhKTsKICAgICB9CiAKLSAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsVmVsb2Np
dHkoMCwgMCwgMCwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOworICAgIGZyYW1lVmll
dy5zZXRTY3JvbGxWZWxvY2l0eSgwLCAwLCAwLCBNb25vdG9uaWNUaW1lOjpub3coKSk7CiAKICAg
ICBJbnRQb2ludCByb3VuZGVkVW5vYnNjdXJlZENvbnRlbnRSZWN0UG9zaXRpb24gPSByb3VuZGVk
SW50UG9pbnQobmV3VW5vYnNjdXJlZENvbnRlbnRSZWN0LmxvY2F0aW9uKCkpOwogICAgIGZyYW1l
Vmlldy5zZXRVbm9ic2N1cmVkQ29udGVudFNpemUobmV3VW5vYnNjdXJlZENvbnRlbnRSZWN0LnNp
emUoKSk7CkBAIC0yOTA0LDcgKzI5MDQsNyBAQCB2b2lkIFdlYlBhZ2U6OnZpZXdwb3J0Q29uZmln
dXJhdGlvbkNoYW5nZWQoKQogICAgICAgICBtaW5pbXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzLnNjYWxlKDEgLyBzY2FsZSk7CiAgICAgICAgIEludFNpemUgbWluaW11bUxheW91
dFNpemVJbkRvY3VtZW50Q29vcmRpbmF0ZXMgPSByb3VuZGVkSW50U2l6ZShtaW5pbXVtTGF5b3V0
U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKTsKICAgICAgICAgZnJhbWVWaWV3LnNldFVub2Jz
Y3VyZWRDb250ZW50U2l6ZShtaW5pbXVtTGF5b3V0U2l6ZUluRG9jdW1lbnRDb29yZGluYXRlcyk7
Ci0gICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxWZWxvY2l0eSgwLCAwLCAwLCBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSk7CisgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxWZWxvY2l0
eSgwLCAwLCAwLCBNb25vdG9uaWNUaW1lOjpub3coKSk7CiAKICAgICAgICAgLy8gRklYTUU6IFdl
IGNvdWxkIHNlbmQgZG93biB0aGUgb2JzY3VyZWQgbWFyZ2lucyB0byBmaW5kIGEgYmV0dGVyIGV4
cG9zZWQgcmVjdCBhbmQgdW5vYnNjdXJlZCByZWN0LgogICAgICAgICAvLyBJdCBpcyBub3QgYSBi
aWcgZGVhbCBhdCB0aGUgbW9tZW50IGJlY2F1c2UgdGhlIHRpbGUgY292ZXJhZ2Ugd2lsbCBhbHdh
eXMgZXh0ZW5kIHBhc3QgdGhlIG9ic2N1cmVkIGJvdHRvbSBpbnNldC4KQEAgLTI5ODIsNyArMjk4
Miw3IEBAIHN0YXRpYyBpbmxpbmUgRmxvYXRSZWN0IGFkanVzdEV4cG9zZWRSZWN0Rm9yQm91bmRl
ZFNjYWxlKGNvbnN0IEZsb2F0UmVjdCYgZXhwb3NlCiAgICAgcmV0dXJuIGFkanVzdEV4cG9zZWRS
ZWN0Rm9yTmV3U2NhbGUoZXhwb3NlZFJlY3QsIGV4cG9zZWRSZWN0U2NhbGUsIG5ld1NjYWxlKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8sIGRv
dWJsZSBvbGRlc3RUaW1lc3RhbXApCit2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50
UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbywgTW9ub3RvbmljVGltZSBvbGRlc3RUaW1lc3RhbXApCiB7CiAgICAgLy8g
U2tpcCBhbnkgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlIHRoYXQgaGF2ZSBiZWVuIHF1ZXVlZCBi
ZWZvcmUgRGlkQ29tbWl0TG9hZCBzdXBwcmVzc2VzIHRoZSB1cGRhdGVzIGluIHRoZSBVSVByb2Nl
c3MuCiAgICAgaWYgKHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8ubGFzdExheWVyVHJlZVRy
YW5zYWN0aW9uSUQoKSA8IG1fbWFpbkZyYW1lLT5maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURB
ZnRlckRpZENvbW1pdExvYWQoKSkKQEAgLTMwMTAsOCArMzAxMCw4IEBAIHZvaWQgV2ViUGFnZTo6
dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvJiB2aXNpCiAgICAgaWYgKG1faXNJblN0YWJsZVN0YXRlKQogICAgICAgICBtX2hhc1N0YWJs
ZVBhZ2VTY2FsZUZhY3RvciA9IHRydWU7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmIChtX29sZGVz
dE5vblN0YWJsZVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNUaW1lc3RhbXAgPT0gc3RkOjpjaHJv
bm86Om1pbGxpc2Vjb25kczo6emVybygpKQotICAgICAgICAgICAgbV9vbGRlc3ROb25TdGFibGVV
cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzVGltZXN0YW1wID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyhzdGF0aWNfY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXA+KG9sZGVzdFRp
bWVzdGFtcCAqIDEwMDApKTsKKyAgICAgICAgaWYgKCFtX29sZGVzdE5vblN0YWJsZVVwZGF0ZVZp
c2libGVDb250ZW50UmVjdHNUaW1lc3RhbXApCisgICAgICAgICAgICBtX29sZGVzdE5vblN0YWJs
ZVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNUaW1lc3RhbXAgPSBvbGRlc3RUaW1lc3RhbXA7CiAg
ICAgfQogCiAgICAgRmxvYXRSZWN0IGV4cG9zZWRDb250ZW50UmVjdCA9IHZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8uZXhwb3NlZENvbnRlbnRSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYS5tbQppbmRleCA0MWUyYmU0NjMyODEyYTE4NjVkYzUwZjUyY2NiNDY5Njg1
NWU3ZWI2Li45YjgzOGQ0MDRkODc3OWE4YzgzYzFmYzUwNTMzYmJlN2ZlMmFmMTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTQyNyw3ICs0MjcsNyBAQCB2b2lk
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycygpCiAgICAgZGlzcGF0Y2hf
YXN5bmMobV9jb21taXRRdWV1ZSwgW2JhY2tpbmdTdG9yZUZsdXNoZXIsIHBhZ2VJRF0gewogICAg
ICAgICBiYWNraW5nU3RvcmVGbHVzaGVyLT5mbHVzaCgpOwogCi0gICAgICAgIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgdGltZXN0YW1wID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyhzdGF0
aWNfY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjpyZXA+KG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpICogMTAwMCkpOworICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCA9
IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBbcGFnZUlELCB0aW1lc3RhbXBdIHsKICAgICAgICAgICAgIGlmIChX
ZWJQYWdlKiB3ZWJQYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQp
KQogICAgICAgICAgICAgICAgIHdlYlBhZ2UtPmRpZEZsdXNoTGF5ZXJUcmVlQXRUaW1lKHRpbWVz
dGFtcCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>