<?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>179825</bug_id>
          
          <creation_ts>2017-11-17 10:03:15 -0800</creation_ts>
          <short_desc>Add a TimingScope class for microbenchmarking sections of code</short_desc>
          <delta_ts>2017-11-17 15:01:31 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1373117</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-17 10:03:15 -0800</bug_when>
    <thetext>I keep writing code that computes the duration taken by a chunk of code, averaging over some number of calls and printing the result using WTFLogAlways. This should be wrapped in stack-based helper class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373119</commentid>
    <comment_count>1</comment_count>
      <attachid>327189</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-17 10:07:03 -0800</bug_when>
    <thetext>Created attachment 327189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373121</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-17 10:08:02 -0800</bug_when>
    <thetext>Maybe this and B3TimingScope should share code at some point, but I don&apos;t think that&apos;s necessary for a small utility class right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373124</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-11-17 10:08:33 -0800</bug_when>
    <thetext>Attachment 327189 did not pass style-queue:


ERROR: Source/WTF/wtf/TimingScope.cpp:67:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373331</commentid>
    <comment_count>4</comment_count>
      <attachid>327189</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-17 15:00:47 -0800</bug_when>
    <thetext>Comment on attachment 327189
Patch

Clearing flags on attachment: 327189

Committed r224990: &lt;https://trac.webkit.org/changeset/224990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373332</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-17 15:00:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373334</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-17 15:01:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/35624957&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327189</attachid>
            <date>2017-11-17 10:07:03 -0800</date>
            <delta_ts>2017-11-17 15:00:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>timingscope.patch</filename>
            <type>text/plain</type>
            <size>11316</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggODQxNjkxMzVhODNkNjQzOGZmNzdmMDgyZTAzZDI2MTQxNTgwYzYyNi4uYWY3N2Q5ODcz
OTM0NWI2NzM0ZjFlNzFiZGJmYjA0MGM0YjYzMjlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAx
Ny0xMS0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgYSBUaW1pbmdTY29wZSBjbGFzcyBmb3IgbWljcm9iZW5jaG1hcmtpbmcgc2VjdGlvbnMg
b2YgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc5ODI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBBZGQgYSBjbGFzcywgc2ltaWxhciB0byBCM1RpbWluZ1Njb3BlLCB3aGljaCBtYWtl
cyBpdCBlYXN5IHRvIG1pY3JvYmVuY2htYXJrCisgICAgICAgIHNlY3Rpb25zIG9mIGNvZGUuIFVz
ZSBsb29rcyBsaWtlOgorICAgICAgICAKKyAgICAgICAgVGltaW5nU2NvcGUgc2NvcGUoInNvbWUg
bGFiZWwiLCAxMDApOworICAgICAgICAKKyAgICAgICAgd2hlcmUgdGhpcyB3aWxsIHByaW50IG1l
YW4gc2NvcGUgZHVyYXRpb24gZXZlcnkgMTAwIGNhbGxzLiBTYW1wbGUgb3V0cHV0OgorICAgICAg
ICAKKyAgICAgICAgICAgIEZFVHVyYnVsZW5jZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlOiAxMDAg
Y2FsbHMsIG1lYW4gZHVyYXRpb246IDMuMDczMTgxbXMKKyAgICAgICAgICAgIEZFVHVyYnVsZW5j
ZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlOiAyMDAgY2FsbHMsIG1lYW4gZHVyYXRpb246IDMuMDc0
NjEybXMKKyAgICAgICAgICAgIEZFVHVyYnVsZW5jZTo6cGxhdGZvcm1BcHBseVNvZnR3YXJlOiAz
MDAgY2FsbHMsIG1lYW4gZHVyYXRpb246IDMuMDY1NzIybXMKKyAgICAgICAgCisgICAgICAgIEJl
Y2F1c2UgVGltaW5nU2NvcGUgbmVlZHMgdG8gc3RvcmUgc3RhdGUgYmV3ZWVuIGludm9jYXRpb25z
LCBhbmQgdGhlcmUgbWF5IGJlCisgICAgICAgIG11bHRpcGxlIFRpbWluZ1Njb3BlcyBpbiB1c2Ug
YXQgdGhlIHNhbWUgdGltZSwgZGF0YSBpcyBzdG9yZWQgaW4gYSBnbG9iYWwKKyAgICAgICAgaGFz
aCBtYXAgd2l0aCBhdG9taWMgYWNjZXNzLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0
Zi9UaW1pbmdTY29wZS5jcHA6IEFkZGVkLgorICAgICAgICAoV1RGOjpUaW1pbmdTY29wZTo6c2Nv
cGVEaWRFbmQpOgorICAgICAgICAqIHd0Zi9UaW1pbmdTY29wZS5oOiBBZGRlZC4KKyAgICAgICAg
KFdURjo6VGltaW5nU2NvcGU6OlRpbWluZ1Njb3BlKToKKyAgICAgICAgKFdURjo6VGltaW5nU2Nv
cGU6On5UaW1pbmdTY29wZSk6CisKIDIwMTctMTEtMTAgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgRmFpclBsYXkgU3RyZWFtaW5nIGJhc2VkIENETSBm
b3IgTW9kZXJuIEVNRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMGI1NTlhMWQwMGNiODU0OGJmNjQ4OGRkMjMzNWFlNDg0Yzg2MTk2MC4uNDhmYjhhOGM5Y2I3
MTlkNjliYjM1OTNjNjk3YjQxY2E2YmRhODYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zMSw2ICszMSw3IEBACiAJCTBGNjZCMjhFMURDOTdCQUIwMDRB
MUQzRiAvKiBTZWNvbmRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNjZCMjg0MURDOTdCQUIwMDRBMUQzRiAvKiBTZWNvbmRzLmNwcCAqLzsgfTsK
IAkJMEY2NkIyOTAxREM5N0JBQjAwNEExRDNGIC8qIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjY2QjI4
NjFEQzk3QkFCMDA0QTFEM0YgLyogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmNwcCAqLzsgfTsK
IAkJMEY2NkIyOTIxREM5N0JBQjAwNEExRDNGIC8qIFdhbGxUaW1lLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNjZCMjg4MURDOTdCQUIwMDRBMUQz
RiAvKiBXYWxsVGltZS5jcHAgKi87IH07CisJCTBGNzA3NUY1MUZCRjUzQ0QwMDQ4OUFGMCAvKiBU
aW1pbmdTY29wZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjcwNzVGNDFGQkY1MzdBMDA0ODlBRjAgLyogVGltaW5nU2NvcGUuY3BwICovOyB9Owog
CQkwRjdDNUZCNjFEODg1Q0YyMDA0NEY1RTIgLyogRmFzdEJpdFZlY3Rvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDNUZCNTFEODg1Q0YyMDA0
NEY1RTIgLyogRmFzdEJpdFZlY3Rvci5jcHAgKi87IH07CiAJCTBGODI0QTY4MUI3NDQzQTAwMDJF
MzQ1RCAvKiBQYXJraW5nTG90LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGODI0QTY0MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCAq
LzsgfTsKIAkJMEY4RjJCOTIxNzJFMDEwMzAwN0RCREE1IC8qIENvbXBpbGF0aW9uVGhyZWFkLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEYyQjhG
MTcyRTAwRjAwMDdEQkRBNSAvKiBDb21waWxhdGlvblRocmVhZC5jcHAgKi87IH07CkBAIC0yMDMs
NiArMjA0LDggQEAKIAkJMEY2NkIyODcxREM5N0JBQjAwNEExRDNGIC8qIFRpbWVXaXRoRHluYW1p
Y0Nsb2NrVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaW1lV2l0aER5
bmFtaWNDbG9ja1R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2NkIyODgx
REM5N0JBQjAwNEExRDNGIC8qIFdhbGxUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdhbGxUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY2NkIyODkxREM5N0JBQjAwNEExRDNGIC8qIFdhbGxUaW1lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdhbGxUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNzA3NUYzMUZCRjUzN0EwMDQ4OUFGMCAvKiBUaW1pbmdTY29wZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUaW1pbmdTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjcwNzVGNDFG
QkY1MzdBMDA0ODlBRjAgLyogVGltaW5nU2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGlt
aW5nU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjcyNUNBQjFDNTA0
NjE2MDBBRDk0M0EgLyogUmFuZ2VTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmFuZ2VTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3OUM3QzMxRTcz
NTExODAwRUIzNEQxIC8qIEZhc3RUTFMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRmFzdFRMUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjdDNUZCNTFEODg1
Q0YyMDA0NEY1RTIgLyogRmFzdEJpdFZlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGYXN0Qml0VmVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwMTYsNiArMTAxOSw4IEBACiAJCQkJQThBNDczM0YxNTFBODI1QjAwNDEyM0ZGIC8q
IFRocmVhZFNwZWNpZmljLmggKi8sCiAJCQkJMEY2NkIyODYxREM5N0JBQjAwNEExRDNGIC8qIFRp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5jcHAgKi8sCiAJCQkJMEY2NkIyODcxREM5N0JBQjAwNEEx
RDNGIC8qIFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5oICovLAorCQkJCTBGNzA3NUY0MUZCRjUz
N0EwMDQ4OUFGMCAvKiBUaW1pbmdTY29wZS5jcHAgKi8sCisJCQkJMEY3MDc1RjMxRkJGNTM3QTAw
NDg5QUYwIC8qIFRpbWluZ1Njb3BlLmggKi8sCiAJCQkJNTUzMDcxQzkxQzQwNDI3MjAwMzg0ODk4
IC8qIFRpbnlMUlVDYWNoZS5oICovLAogCQkJCTBGRUQ2N0I1MUIyMkQ0RDgwMDY2Q0UxNSAvKiBU
aW55UHRyU2V0LmggKi8sCiAJCQkJMTQ5RUYxNjIxNkJCRkUwRDAwMEE0MzMxIC8qIFRyaVN0YXRl
LmggKi8sCkBAIC0xNDQxLDYgKzE0NDYsNyBAQAogCQkJCTkzOTM0QkQ1MThBMUYxNjkwMEQwRDZB
MSAvKiBTdHJpbmdWaWV3Q0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5MzRCRDMxOEExRThD
MzAwRDBENkExIC8qIFN0cmluZ1ZpZXdPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDcz
QjcxNTFBODI1QjAwNDEyM0ZGIC8qIHN0cnRvZC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNzA3
NUY1MUZCRjUzQ0QwMDQ4OUFGMCAvKiBUaW1pbmdTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MjE4MzAxMkM5OUU0NzZBODRFRUJFQTggLyogU3ltYm9sSW1wbC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3MEE5OTNGRTFBRDcxNTEzMDBGQTYxNUIgLyogU3ltYm9sUmVnaXN0cnkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUMxODFDN0YxRDMwNzhEQTAwRjVGQTE2IC8qIFRleHRCcmVha0l0
ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA0YzUyNTQ4
MjVmOGYyNmYxZjkxMTVkMTQ3OTMxNDc0NjczYzdmZWU2Li4yNDMxMmI4ZThhY2YwMmE3NjgwODU3
YzM2MjMxNjZjMGNiZmE3MWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMTQ1LDYgKzE0NSw3
IEBAIHNldChXVEZfSEVBREVSUwogICAgIFRocmVhZGluZy5oCiAgICAgVGhyZWFkaW5nUHJpbWl0
aXZlcy5oCiAgICAgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmgKKyAgICBUaW1pbmdTY29wZS5o
CiAgICAgVGlueVB0clNldC5oCiAgICAgVVVJRC5oCiAgICAgVW5pcXVlUmVmLmgKQEAgLTI2Myw2
ICsyNjQsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBUaHJlYWRNZXNzYWdlLmNwcAogICAgIFRo
cmVhZGluZy5jcHAKICAgICBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuY3BwCisgICAgVGltaW5n
U2NvcGUuY3BwCiAgICAgVVVJRC5jcHAKICAgICBXYWxsVGltZS5jcHAKICAgICBXb3JkTG9jay5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RpbWluZ1Njb3BlLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL1RpbWluZ1Njb3BlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTdhOWVhMmM2ZmVkODdjNGM4OTI1
NGRmMzhhMjk4OGE0YzIzMjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvVGlt
aW5nU2NvcGUuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUaW1p
bmdTY29wZS5oIgorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9j
ay5oPgorCituYW1lc3BhY2UgV1RGIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgU3RhdGUgewor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFN0YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKworICAgIHN0cnVjdCBDYWxsRGF0YSB7CisgICAgICAgIFNlY29uZHMg
dG90YWxEdXJhdGlvbjsKKyAgICAgICAgdW5zaWduZWQgY2FsbENvdW50IHsgMCB9OworICAgICAg
ICAKKyAgICAgICAgU2Vjb25kcyBtZWFuRHVyYXRpb24oKSBjb25zdCB7IHJldHVybiB0b3RhbER1
cmF0aW9uIC8gY2FsbENvdW50OyB9CisgICAgfTsKKworICAgIFN0YXRlKCkgPSBkZWZhdWx0Owor
ICAgIAorICAgIGNvbnN0IENhbGxEYXRhJiBhZGRUb1RvdGFsKGNvbnN0IGNoYXIqIG5hbWUsIFNl
Y29uZHMgZHVyYXRpb24pCisgICAgeworICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKGxv
Y2spOworICAgICAgICBhdXRvJiByZXN1bHQgPSB0b3RhbHMuYWRkKG5hbWUsIENhbGxEYXRhKCkp
Lml0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgKytyZXN1bHQuY2FsbENvdW50OworICAgICAgICBy
ZXN1bHQudG90YWxEdXJhdGlvbiArPSBkdXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgSGFzaE1hcDxjb25zdCBjaGFyKiwgQ2FsbERhdGE+IHRv
dGFsczsKKyAgICBMb2NrIGxvY2s7Cit9OworCitTdGF0ZSYgc3RhdGUoKQoreworICAgIHN0YXRp
YyBBdG9taWM8U3RhdGUqPiBzX3N0YXRlOworICAgIHJldHVybiBlbnN1cmVQb2ludGVyKHNfc3Rh
dGUsIFtdIHsgcmV0dXJuIG5ldyBTdGF0ZSgpOyB9KTsKK30KKworfSAvLyBhbm9ueW1vdXMgbmFt
ZXNwYWNlCisKK3ZvaWQgVGltaW5nU2NvcGU6OnNjb3BlRGlkRW5kKCkKK3sKKyAgICBjb25zdCBh
dXRvJiBkYXRhID0gc3RhdGUoKS5hZGRUb1RvdGFsKG1fbmFtZSwgTW9ub3RvbmljVGltZTo6bm93
KCkgLSBtX3N0YXJ0VGltZSk7CisgICAgaWYgKCEoZGF0YS5jYWxsQ291bnQgJSBtX2xvZ0l0ZXJh
dGlvbkludGVydmFsKSkKKyAgICAgICAgV1RGTG9nQWx3YXlzKCIlczogJXUgY2FsbHMsIG1lYW4g
ZHVyYXRpb246ICUuNmZtcyIsIG1fbmFtZSwgZGF0YS5jYWxsQ291bnQsIGRhdGEubWVhbkR1cmF0
aW9uKCkubWlsbGlzZWNvbmRzKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaW1pbmdTY29wZS5oIGIvU291cmNlL1dURi93dGYvVGlt
aW5nU2NvcGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzE3ZTMwNjRmZWIyODJjZjQ4NGU0ODg5M2MyYTYzYzk4
NDQwYjc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvVGltaW5nU2NvcGUuaApA
QCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+Cisj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisvLyBUaW1p
bmdTY29wZSBpcyBpbnRlbmRlZCBmb3IgbWljcm9iZW5jaG1hcmtpbmcgc2VjdGlvbnMgb2YgY29k
ZS4KKy8vCisvLyBEbyBub3QgbGVhdmUgaW4gc2hpcHBpbmcgY29kZS4KKy8vIAorLy8gTWVhbiBz
Y29wZSBkdXJhdGlvbnMgYXJlIHByaW50ZWQgdXNpbmcgV1RGTG9nQWx3YXlzIGV2ZXJ5IE50aCBj
YWxsLCB3aGVyZSBOIGlzIHNwZWNpZmllZCBieSBsb2dJdGVyYXRpb25JbnRlcnZhbC4KKworY2xh
c3MgVGltaW5nU2NvcGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRpbWluZ1Njb3BlKTsK
K3B1YmxpYzoKKyAgICBUaW1pbmdTY29wZShjb25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCBsb2dJ
dGVyYXRpb25JbnRlcnZhbCA9IDEpCisgICAgICAgIDogbV9zdGFydFRpbWUoTW9ub3RvbmljVGlt
ZTo6bm93KCkpCisgICAgICAgICwgbV9uYW1lKG5hbWUpCisgICAgICAgICwgbV9sb2dJdGVyYXRp
b25JbnRlcnZhbChsb2dJdGVyYXRpb25JbnRlcnZhbCkKKyAgICB7CisgICAgfQorCisgICAgflRp
bWluZ1Njb3BlKCkKKyAgICB7CisgICAgICAgIHNjb3BlRGlkRW5kKCk7CisgICAgfQorCitwcml2
YXRlOgorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNjb3BlRGlkRW5kKCk7CisKKyAgICBN
b25vdG9uaWNUaW1lIG1fc3RhcnRUaW1lOworICAgIGNvbnN0IGNoYXIqIG1fbmFtZTsKKyAgICB1
bnNpZ25lZCBtX2xvZ0l0ZXJhdGlvbkludGVydmFsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CisKK3VzaW5nIFdURjo6VGltaW5nU2NvcGU7CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>