<?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>41018</bug_id>
          
          <creation_ts>2010-06-22 15:56:49 -0700</creation_ts>
          <short_desc>Split out HTML5DocumentParser yield/resume logic into a separate class</short_desc>
          <delta_ts>2010-06-23 00:17:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>241499</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-22 15:56:49 -0700</bug_when>
    <thetext>Split out HTML5DocumentParser yeild/resume logic into a separate class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241504</commentid>
    <comment_count>1</comment_count>
      <attachid>59428</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-22 16:07:50 -0700</bug_when>
    <thetext>Created attachment 59428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241508</commentid>
    <comment_count>2</comment_count>
      <attachid>59430</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-22 16:08:40 -0700</bug_when>
    <thetext>Created attachment 59430
Work in progress, will conflict with other patches in cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241522</commentid>
    <comment_count>3</comment_count>
      <attachid>59430</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-22 16:17:12 -0700</bug_when>
    <thetext>Comment on attachment 59430
Work in progress, will conflict with other patches in cq

WebCore/html/HTMLParserScheduler.cpp:69
 +      
Extra blank line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241677</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-22 23:19:11 -0700</bug_when>
    <thetext>Committed r61658: &lt;http://trac.webkit.org/changeset/61658&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241687</commentid>
    <comment_count>5</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-06-22 23:35:40 -0700</bug_when>
    <thetext>Committed r61661: &lt;http://trac.webkit.org/changeset/61661&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241712</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-23 00:17:33 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61661 might have broken GTK Linux 64-bit Debug
The following changes are on the blame list:
http://trac.webkit.org/changeset/61661
http://trac.webkit.org/changeset/61662
http://trac.webkit.org/changeset/61663</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59428</attachid>
            <date>2010-06-22 16:07:50 -0700</date>
            <delta_ts>2010-06-22 16:08:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41018-20100622160748.patch</filename>
            <type>text/plain</type>
            <size>28521</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCA3YWMzNDQ2ZjRhODQxMDk5NzA0ODM1NzFjNmVhYTE2ODk2ZTFlZjliLi4xOTY3MDhhMDc4Zjdl
MzZiNDE4ODVhZTVmYmRmYmZkNTQxZjVmMGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0yNjYsNiArMjY2LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uY3BwIFwKIAlodG1sL0xlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3IuY3BwIFwKIAlodG1sL0hU
TUxQYXJzZXJFcnJvckNvZGVzLmNwcCBcCisJaHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCBc
CiAJaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgXAogCWh0bWwvSFRNTERvY3VtZW50
UGFyc2VyLmNwcCBcCiAJaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA2YjI1NTNjMmRlN2Q1OWZlNjc2OWQ3OTRlNzA5NDFkMTQwMTg1YjVmLi5hNzA3ODE0MGMwNDcx
MTU1NjdlOWVkYzNlZDExMGNjYWM2N2Y4MWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTk3Myw2ICs5NzMsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcAogICAgIGh0
bWwvTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rvci5jcHAKICAgICBodG1sL0hUTUxQYXJzZXJFcnJv
ckNvZGVzLmNwcAorICAgIGh0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAKICAgICBodG1sL0hU
TUxQbHVnSW5FbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAK
ICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4M2Q1YTU5MmQ4ZWY5NDI3MzZlMTE1MGRlNmMz
OWMzYmE3YjMxMWI4Li4zOTUxOTc0ZGQyOTllOTk4NmMzMmIzZDA0Y2RjN2E4MTc2OTlhZTMxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDYyIEBACisyMDEwLTA2LTIyICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGxpdCBv
dXQgSFRNTDVEb2N1bWVudFBhcnNlciB5aWVsZC9yZXN1bWUgbG9naWMgaW50byBhIHNlcGFyYXRl
IGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MTAxOAorCisgICAgICAgIFRoZSBIVE1MNURvY3VtZW50UGFyc2VyIGlzIGp1c3QgdGhlIGNvb3Jk
aW5hdG9yLCBhbmQgc2hvdWxkbid0IGhhdmUKKyAgICAgICAgYW55IHJlYWwgcGFyc2luZyBsb2dp
YyBvZiBoaXMgb3duLiAgQ29udGludWluZyBhbG9uZyB0aGF0IHBhdGgsIEknbQorICAgICAgICBt
b3ZpbmcgdGhlIHdoZW4tdG8teWllbGQvcmVzdW1lIGxvZ2ljIG91dCBpbnRvIGEgc2VwYXJhdGUg
Y2xhc3MuCisKKyAgICAgICAgSSBjb3VsZCBoYXZlIGNyZWF0ZSBhIG5ldyBIVE1MUGFyc2VyU2No
ZWR1bGVySG9zdCB2aXJ0dWFsIGludGVyZmFjZQorICAgICAgICB0byBhbGxvdyB0aGUgSFRNTFBh
cnNlclNjaGVkdWxlciB0byB0YWxrIGJhY2sgdG8gdGhlCisgICAgICAgIEhUTUw1RG9jdW1lbnRQ
YXJzZXIsIGJ1dCBpbnN0ZWFkIEkganVzdCBleHBvc2VkIHRoZSBvbmUgbWV0aG9kIGl0CisgICAg
ICAgIG5lZWRzIChyZXN1bWVQYXJzaW5nKCkpIGFzIGEgcHVibGljIG1ldGhvZC4gIFNpbmNlIG5v
IGNvZGUgYmVzaWRlcworICAgICAgICBIVE1MRG9jdW1lbnQgKGFuZCBEb2N1bWVudEZyYW1lbnQp
IGV2ZXIgc2hvdWxkIGtub3cgYWJvdXQgdGhlCisgICAgICAgIEhUTUw1RG9jdW1lbnRQYXJzZXIg
RG9jdW1lbnRQYXJzZXIgc3ViY2xhc3MsIG5vIGNsYXNzIHNob3VsZCBldmVyCisgICAgICAgIHNl
ZSB0aGUgcmVzdW1lUGFyc2luZygpIG1ldGhvZCBhbnl3YXkuCisKKyAgICAgICAgTW9zdCBvZiB0
aGlzIGNoYW5nZSBpcyBqdXN0IG1vdmluZyBjb2RlIGZyb20gSFRNTDVEb2N1bWVudFBhcnNlcgor
ICAgICAgICB0byB0aGUgbmV3IEhUTUxQYXJzZXJTY2hlZHVsZXIuCisKKyAgICAgICAgU29tZSBv
ZiB0aGlzIGNoYW5nZSBpcyB3cmFwcGluZyBwcmV2aW91cyBkaXJlY3QgYWNjZXNzIHRvCisgICAg
ICAgIG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgpIHdpdGggaXNTY2hlZHVsZWRG
b3JSZXN1bWUoKS4KKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZyk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXJJZlBvc3Np
YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmlzU2NoZWR1bGVk
Rm9yUmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OnJlc3Vt
ZVBhcnNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExl
eGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjphdHRlbXB0VG9FbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZW5kSWZEZWxheWVkKToKKyAgICAgICAg
KiBodG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9j
dW1lbnRQYXJzZXI6OmRvY3VtZW50KToKKyAgICAgICAgIC0gRXhwb3NlZCBmb3IgSFRNTFBhcnNl
clNjaGVkdWxlci4KKyAgICAgICAgKiBodG1sL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlclRpbWVMaW1pdCk6IE1vdmVkIGZyb20gSFRNTDVE
b2N1bWVudFBhcnNlci4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlckNodW5rU2l6ZSk6IGRpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlclNjaGVkdWxlcjo6SFRNTFBhcnNlclNjaGVk
dWxlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2VyU2NoZWR1bGVyOjp+SFRNTFBhcnNl
clNjaGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjppc0xheW91dFRpbWVyQWN0aXZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJTY2hlZHVsZXI6OmNvbnRpbnVlTmV4dENodW5rVGlt
ZXJGaXJlZCk6CisgICAgICAgICAtIE1vdmVkIGZyb20gSFRNTDVEb2N1bWVudFBhcnNlci4KKyAg
ICAgICAgKiBodG1sL0hUTUxQYXJzZXJTY2hlZHVsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MUGFyc2VyU2NoZWR1bGVyOjpQdW1wU2Vzc2lvbjo6UHVtcFNlc3Npb24pOgorICAg
ICAgICAgLSBNb3ZlZCBmcm9tIEhUTUw1RG9jdW1lbnRQYXJzZXIuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUGFyc2VyU2NoZWR1bGVyOjpzaG91bGRDb250aW51ZVBhcnNpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFBhcnNlclNjaGVkdWxlcjo6aXNTY2hlZHVsZWRGb3JSZXN1bWUpOgorCiAy
MDEwLTA2LTIyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYTJmNjM2YjY4MTUzNjE2Yjdm
ZmFiYjI5ZmEzZGQ4OGVmNDI2NmIwNS4uMTZhNGIxZGRlNTYxMjQyNzNmNmYyZTRkNDJmMTdkODQw
MmE0ZmJlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xMjI0LDYgKzEyMjQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyRXJyb3JDb2Rlcy5jcHAgXAogCVdlYkNvcmUvaHRt
bC9IVE1MUGFyc2VyRXJyb3JDb2Rlcy5oIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFBhcnNlclF1aXJr
cy5oIFwKKwlXZWJDb3JlL2h0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAgXAorCVdlYkNvcmUv
aHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVyLmggXAogCVdlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAgXAogCVdlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oIFwKIAlXZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyZTQ2MTE5MGU2ZTU5MzBk
OTYxYWQxZTEyYjYyMGQ0MTk5MGRhMzBlLi5hOWRiNDUwMjFlZWE0OGE4OTZmY2FmYzUwZDkwODdh
ZTgyMTkwNGNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMTYxMCw2ICsxNjEwLDggQEAKICAgICAgICAgICAgICdodG1sL0xl
Z2FjeUhUTUxUcmVlQ29uc3RydWN0b3IuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUGFyc2Vy
RXJyb3JDb2Rlcy5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBhcnNlckVycm9yQ29kZXMu
aCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCcsCisgICAgICAg
ICAgICAnaHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVyLmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TFBsdWdJbkVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxQbHVnSW5FbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAnLApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXgg
YTMyM2EwNzk0Yzk3NDM5YjQ1MDE5ZmQ3ZDJkNzY1Y2JjMWM1Mzc0Ni4uMjE1MDc1MDY5OGViZjI3
NjFiMDU2YjU0NTg2YThiODBjYzNkNDYyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBy
bworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC02NzksNiArNjc5LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcCBcCiAgICAgaHRtbC9MZWdhY3lIVE1M
VHJlZUNvbnN0cnVjdG9yLmNwcCBcCiAgICAgaHRtbC9IVE1MUGFyc2VyRXJyb3JDb2Rlcy5jcHAg
XAorICAgIGh0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAgXAogICAgIGh0bWwvSFRNTFBsdWdJ
bkVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIFwKICAg
ICBodG1sL0hUTUxQcmVFbGVtZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDU3ZmRjNDEzZGU1Yjg1ODY1YTk0ZGIxYzViNWZiMDgxYjMxNjc5
OWYuLjlkNzg5YWFkMzAwYWJlZGI0ZmY3MjY0ZDNhZmE1MDFhMmI0ZTEwOGMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjc2LDYgKzMyNzYsOCBAQAog
CQlBOEU1NDVCRDBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHQW5pbWF0ZWRBbmdsZUludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEU1NDRC
RjBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHQW5pbWF0ZWRBbmdsZUludGVybmFsLmggKi87IH07
CiAJCUE4RTU0NUJGMENBOUQxQzIwMDk3RDA5QiAvKiBET01TVkdUZXh0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFNTQ0QzEwQ0E5RDFD
MjAwOTdEMDlCIC8qIERPTVNWR1RleHRFbGVtZW50LmggKi87IH07CiAJCUE4RTU0NUMxMENBOUQx
QzIwMDk3RDA5QiAvKiBET01TVkdEZXNjRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEU1NDRDMzBDQTlEMUMyMDA5N0QwOUIg
LyogRE9NU1ZHRGVzY0VsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQlBOEU2QTc4MTExRDE2NjFC
MDAzMTFGNEEgLyogSFRNTFBhcnNlclNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFNkE3N0YxMUQxNjYxQjAwMzExRjRBIC8qIEhUTUxQ
YXJzZXJTY2hlZHVsZXIuaCAqLzsgfTsKKwkJQThFNkE3ODIxMUQxNjYxQjAwMzExRjRBIC8qIEhU
TUxQYXJzZXJTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThFNkE3ODAxMUQxNjYxQjAwMzExRjRBIC8qIEhUTUxQYXJzZXJTY2hlZHVs
ZXIuY3BwICovOyB9OwogCQlBOEVBNzNDMzBBMTkwMEUzMDBBOEVGNUYgLyogUmVuZGVyRmllbGRz
ZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThF
QTczQUYwQTE5MDBFMzAwQThFRjVGIC8qIFJlbmRlckZpZWxkc2V0LmNwcCAqLzsgfTsKIAkJQThF
QTczQzQwQTE5MDBFMzAwQThFRjVGIC8qIFJlbmRlckZpZWxkc2V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBNzNCMDBBMTkwMEUzMDBBOEVGNUYg
LyogUmVuZGVyRmllbGRzZXQuaCAqLzsgfTsKIAkJQThFQTc5RjEwQTE5MTZERjAwQThFRjVGIC8q
IEhUTUxPTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4RUE3OUU1MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MT0xpc3RFbGVtZW50Lmgg
Ki87IH07CkBAIC04NzQwLDYgKzg3NDIsOCBAQAogCQlBOEU1NDRCRjBDQTlEMUMyMDA5N0QwOUIg
LyogRE9NU1ZHQW5pbWF0ZWRBbmdsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTVNWR0FuaW1hdGVkQW5nbGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBOEU1NDRDMTBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHVGV4dEVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHVGV4dEVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThFNTQ0QzMwQ0E5RDFDMjAwOTdEMDlC
IC8qIERPTVNWR0Rlc2NFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NU1ZHRGVzY0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBOEU2QTc3RjExRDE2NjFCMDAzMTFGNEEgLyogSFRNTFBhcnNlclNjaGVkdWxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VyU2NoZWR1bGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4RTZBNzgwMTFEMTY2MUIwMDMxMUY0
QSAvKiBIVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhUTUxQYXJzZXJTY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEVBNzNBRjBBMTkwMEUzMDBBOEVGNUYgLyogUmVuZGVyRmllbGRzZXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZpZWxkc2V0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThFQTczQjAwQTE5MDBFMzAwQThFRjVGIC8q
IFJlbmRlckZpZWxkc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJGaWVsZHNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEVBNzlFNTBBMTkx
NkRGMDBBOEVGNUYgLyogSFRNTE9MaXN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTE9MaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTM0MTcsOCArMTM0MjEsNiBAQAogCQk5M0VFQzFFQzA5QzI4Nzc3MDBDNTE1RDEgLyog
aHRtbCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTcx
OUFFRkYxMUQwOUYyQzAwRDQ1ODMxIC8qIEhUTUxJbnB1dFN0cmVhbS5oICovLAotCQkJCTQ5NDg0
RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8sCiAJCQkJQjAxNDlFNzkxMUE0QjIxNTAw
MTk2QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVyLmNwcCAqLywKIAkJCQlCMDE0OUU3QTExQTRCMjE1
MDAxOTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuaCAqLywKIAkJCQkyRUFGQUYwQjEwRTJBRjJE
MDA3RUQzRDYgLyogQmxvYi5jcHAgKi8sCkBAIC0xMzQyNiw2ICsxMzQyOCw3IEBACiAJCQkJMkVB
RkFGMEQxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaWRsICovLAogCQkJCTg5QkVENUU5MTFCRTEx
Q0UwMDQ0ODQ5MiAvKiBCbG9iQnVpbGRlci5jcHAgKi8sCiAJCQkJODlCRUQ1RUExMUJFMTFDRTAw
NDQ4NDkyIC8qIEJsb2JCdWlsZGVyLmggKi8sCisJCQkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQz
IC8qIGNhbnZhcyAqLywKIAkJCQk5M0M0NDFFRDBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlv
bkNhY2hlLmNwcCAqLywKIAkJCQk5M0M0NDFFRTBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlv
bkNhY2hlLmggKi8sCiAJCQkJOTNDNDQxRkYwRjgxM0FFMTAwQzFBNjM0IC8qIENvbGxlY3Rpb25U
eXBlLmggKi8sCkBAIC0xMzYwMSw2ICsxMzYwNCw3IEBACiAJCQkJQTgxMzY5QjEwOTczNzRGNTAw
RDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUIwMDk3Mzc0RjUw
MEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggKi8sCiAJCQkJQTgwRTdFMTcwQTFBN0NDQjAw
N0ZCOEM1IC8qIEhUTUxJbnB1dEVsZW1lbnQuaWRsICovLAorCQkJCTk3MTlBRUZGMTFEMDlGMkMw
MEQ0NTgzMSAvKiBIVE1MSW5wdXRTdHJlYW0uaCAqLywKIAkJCQlBODEzNjlBRjA5NzM3NEY1MDBE
NzQ0NjMgLyogSFRNTElzSW5kZXhFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlBRTA5NzM3NEY1
MDBENzQ0NjMgLyogSFRNTElzSW5kZXhFbGVtZW50LmggKi8sCiAJCQkJMUFFMkFBODUwQTFDREND
RTAwQjQyQjI1IC8qIEhUTUxJc0luZGV4RWxlbWVudC5pZGwgKi8sCkBAIC0xMzY2Nyw2ICsxMzY3
MSw4IEBACiAJCQkJQkM1ODhCNEEwQkZBNzIzQzAwRUU2NzlFIC8qIEhUTUxQYXJzZXJFcnJvckNv
ZGVzLmNwcCAqLywKIAkJCQlCQzU4OEFFRjBCRkE2Q0Y5MDBFRTY3OUUgLyogSFRNTFBhcnNlckVy
cm9yQ29kZXMuaCAqLywKIAkJCQk0NDlCMTlGMzBGQTcyRUNFMDAxNUNBNEEgLyogSFRNTFBhcnNl
clF1aXJrcy5oICovLAorCQkJCUE4RTZBNzgwMTFEMTY2MUIwMDMxMUY0QSAvKiBIVE1MUGFyc2Vy
U2NoZWR1bGVyLmNwcCAqLywKKwkJCQlBOEU2QTc3RjExRDE2NjFCMDAzMTFGNEEgLyogSFRNTFBh
cnNlclNjaGVkdWxlci5oICovLAogCQkJCUE4NzFENDREMEExMjdDQkMwMEIxMkE2OCAvKiBIVE1M
UGx1Z0luRWxlbWVudC5jcHAgKi8sCiAJCQkJQTg3MUQ0NEMwQTEyN0NCQzAwQjEyQTY4IC8qIEhU
TUxQbHVnSW5FbGVtZW50LmggKi8sCiAJCQkJNDQxNTI5MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwICovLApAQCAtMTk0OTksNiArMTk1MDUsNyBAQAogCQkJ
CUI1NkVCQTg1MTFDOUZGODEwMEIwNDQ3NyAvKiBTUUxFeGNlcHRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUI1MjVBOTY1MTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTcxOUFGMDAxMUQwOUYyQzAwRDQ1ODMxIC8qIEhUTUxJbnB1dFN0cmVh
bS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQThFNkE3ODExMUQxNjYxQjAwMzExRjRBIC8qIEhUTUxQ
YXJzZXJTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjE4MTUsNiArMjE4MjIsNyBAQAog
CQkJCTIwMEIxOTA5MTFDMjc3RDkwMERDQ0QzQSAvKiBTY3JpcHRCcmVha3BvaW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBRDhGODFDMTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjUyNUE5NjYxMUNBMjM0MDAwM0EyM0E4IC8q
IEpTU1FMRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4RTZBNzgyMTFEMTY2MUIw
MDMxMUY0QSAvKiBIVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1s
L0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGZmM2ZlNGUwZDQ5N2E1MDU5MGFiZmJiMzMx
MzVhZTJjODEwOTgxNmUuLjU3YzgxOTEyODE3ZGE5MzBjNTRhMzExNWE1YjY4NWY0ZjI2ODcyZGEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5jcHAKQEAgLTI4LDE0ICsyOCwxMiBAQAog
CiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJh
bWVWaWV3LmgiIC8vIE9ubHkgZm9yIGlzTGF5b3V0VGltZXJBY3RpdmUKKyNpbmNsdWRlICJIVE1M
UGFyc2VyU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgogI2luY2x1ZGUgIkhU
TUw1UHJlbG9hZFNjYW5uZXIuaCIKICNpbmNsdWRlICJIVE1MNVNjcmlwdFJ1bm5lci5oIgogI2lu
Y2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlhTU0F1ZGl0b3Iu
aCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIApAQCAtNDMsMTYgKzQxLDYgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjZW5kaWYKIAotLy8gZGVmYXVsdFBh
cnNlckNodW5rU2l6ZSBpcyB1c2VkIHRvIGRlZmluZSBob3cgbWFueSB0b2tlbnMgdGhlIHBhcnNl
ciB3aWxsCi0vLyBwcm9jZXNzIGJlZm9yZSBjaGVja2luZyBhZ2FpbnN0IHBhcnNlclRpbWVMaW1p
dCBhbmQgcG9zc2libHkgeWllbGRpbmcuCi0vLyBUaGlzIGlzIGEgcGVyZm9ybWFuY2Ugb3B0aW1p
emF0aW9uIHRvIHByZXZlbnQgY2hlY2tpbmcgYWZ0ZXIgZXZlcnkgdG9rZW4uCi1zdGF0aWMgY29u
c3QgaW50IGRlZmF1bHRQYXJzZXJDaHVua1NpemUgPSA0MDk2OwotCi0vLyBkZWZhdWx0UGFyc2Vy
VGltZUxpbWl0IGlzIHRoZSBzZWNvbmRzIHRoZSBwYXJzZXIgd2lsbCBydW4gaW4gb25lIHdyaXRl
KCkgY2FsbAotLy8gYmVmb3JlIHlpZWxkaW5nLiAgSW5saW5lIDxzY3JpcHQ+IGV4ZWN1dGlvbiBj
YW4gY2F1c2UgaXQgdG8gZXhjZWRlIHRoZSBsaW1pdC4KLS8vIEZJWE1FOiBXZSB3b3VsZCBsaWtl
IHRoaXMgdmFsdWUgdG8gYmUgMC4yLgotc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0UGFyc2Vy
VGltZUxpbWl0ID0gMC41MDA7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIHsK
QEAgLTc2LDM1ICs2NCwxNSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZQogCi1zdGF0aWMg
ZG91YmxlIHBhcnNlclRpbWVMaW1pdChQYWdlKiBwYWdlKQotewotICAgIC8vIFdlJ3JlIHVzaW5n
IHRoZSBwb29ybHkgbmFtZWQgY3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheSBzZXR0aW5nLgot
ICAgIGlmIChwYWdlICYmIHBhZ2UtPmhhc0N1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkoKSkK
LSAgICAgICAgcmV0dXJuIHBhZ2UtPmN1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkoKTsKLSAg
ICByZXR1cm4gZGVmYXVsdFBhcnNlclRpbWVMaW1pdDsKLX0KLQotc3RhdGljIGludCBwYXJzZXJD
aHVua1NpemUoUGFnZSogcGFnZSkKLXsKLSAgICAvLyBGSVhNRTogV2UgbWF5IG5lZWQgdG8gZGl2
aWRlIHRoZSB2YWx1ZSBmcm9tIGN1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUKLSAgICAvLyBi
eSBzb21lIGNvbnN0YW50IHRvIHRyYW5zbGF0ZSBmcm9tIHRoZSAiY2hhcmFjdGVyIiBiYXNlZCBi
ZWhhdmlvciBvZiB0aGUKLSAgICAvLyBvbGQgSFRNTERvY3VtZW50UGFyc2VyIHRvIHRoZSB0b2tl
bi1iYXNlZCBiZWhhdmlvciBvZiB0aGlzIHBhcnNlci4KLSAgICBpZiAocGFnZSAmJiBwYWdlLT5o
YXNDdXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCkpCi0gICAgICAgIHJldHVybiBwYWdlLT5j
dXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCk7Ci0gICAgcmV0dXJuIGRlZmF1bHRQYXJzZXJD
aHVua1NpemU7Ci19Ci0KIEhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIo
SFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMpCiAgICAgOiBEb2N1bWVu
dFBhcnNlcigpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9sZXhlcihuZXcg
SFRNTDVMZXhlcikKICAgICAsIG1fc2NyaXB0UnVubmVyKG5ldyBIVE1MNVNjcmlwdFJ1bm5lcihk
b2N1bWVudCwgdGhpcykpCiAgICAgLCBtX3RyZWVDb25zdHJ1Y3RvcihuZXcgSFRNTDVUcmVlQnVp
bGRlcihtX2xleGVyLmdldCgpLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzKSkKKyAgICAsIG1fcGFy
c2VyU2NoZWR1bGVyKG5ldyBIVE1MUGFyc2VyU2NoZWR1bGVyKHRoaXMpKQogICAgICwgbV9lbmRX
YXNEZWxheWVkKGZhbHNlKQogICAgICwgbV93cml0ZU5lc3RpbmdMZXZlbCgwKQotICAgICwgbV9w
YXJzZXJUaW1lTGltaXQocGFyc2VyVGltZUxpbWl0KGRvY3VtZW50LT5wYWdlKCkpKQotICAgICwg
bV9wYXJzZXJDaHVua1NpemUocGFyc2VyQ2h1bmtTaXplKGRvY3VtZW50LT5wYWdlKCkpKQotICAg
ICwgbV9jb250aW51ZU5leHRDaHVua1RpbWVyKHRoaXMsICZIVE1MNURvY3VtZW50UGFyc2VyOjpj
b250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQpCiB7CiAgICAgYmVnaW4oKTsKIH0KQEAgLTEyNSwx
MiArOTMsMTIgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpiZWdpbigpCiB2b2lkIEhUTUw1
RG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCkKIHsKICAgICBEb2N1bWVudFBhcnNlcjo6c3Rv
cFBhcnNpbmcoKTsKLSAgICBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuc3RvcCgpOworICAgIG1f
cGFyc2VyU2NoZWR1bGVyLmNsZWFyKCk7IC8vIERlbGV0aW5nIHRoZSBzY2hlZHVsZXIgd2lsbCBj
bGVhciBhbnkgdGltZXJzLgogfQogCiBib29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnByb2Nlc3Np
bmdEYXRhKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlz
QWN0aXZlKCkgfHwgaW5Xcml0ZSgpOworICAgIHJldHVybiBpc1NjaGVkdWxlZEZvclJlc3VtZSgp
IHx8IGluV3JpdGUoKTsKIH0KIAogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXJJ
ZlBvc3NpYmxlKFN5bmNocm9ub3VzTW9kZSBtb2RlKQpAQCAtMTM4LDggKzEwNiw4IEBAIHZvaWQg
SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVySWZQb3NzaWJsZShTeW5jaHJvbm91c01vZGUg
bW9kZSkKICAgICBpZiAobV9wYXJzZXJTdG9wcGVkIHx8IG1fdHJlZUNvbnN0cnVjdG9yLT5pc1Bh
dXNlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBPbmNlIGEgdGltZXIgaXMgc2V0LCBp
dCBoYXMgY29udHJvbCBvZiB3aGVuIHRoZSBwYXJzZXIgY29udGludWVzLgotICAgIGlmIChtX2Nv
bnRpbnVlTmV4dENodW5rVGltZXIuaXNBY3RpdmUoKSkgeworICAgIC8vIE9uY2UgYSByZXN1bWUg
aXMgc2NoZWR1bGVkLCBIVE1MUGFyc2VyU2NoZWR1bGVyIGNvbnRyb2xzIHdoZW4gd2UgbmV4dCBw
dW1wLgorICAgIGlmIChpc1NjaGVkdWxlZEZvclJlc3VtZSgpKSB7CiAgICAgICAgIEFTU0VSVCht
b2RlID09IEFsbG93WWllbGQpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTQ3LDQ5ICsx
MTUsMzIgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXJJZlBvc3NpYmxlKFN5
bmNocm9ub3VzTW9kZSBtb2RlKQogICAgIHB1bXBMZXhlcihtb2RlKTsKIH0KIAotc3RydWN0IEhU
TUw1RG9jdW1lbnRQYXJzZXI6OlB1bXBTZXNzaW9uIHsKLSAgICBQdW1wU2Vzc2lvbigpCi0gICAg
ICAgIDogcHJvY2Vzc2VkVG9rZW5zKDApCi0gICAgICAgICwgc3RhcnRUaW1lKGN1cnJlbnRUaW1l
KCkpCi0gICAgewotICAgIH0KLQotICAgIGludCBwcm9jZXNzZWRUb2tlbnM7Ci0gICAgZG91Ymxl
IHN0YXJ0VGltZTsKLX07Ci0KLWlubGluZSBib29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnNob3Vs
ZENvbnRpbnVlUGFyc2luZyhQdW1wU2Vzc2lvbiYgc2Vzc2lvbikKK2Jvb2wgSFRNTDVEb2N1bWVu
dFBhcnNlcjo6aXNTY2hlZHVsZWRGb3JSZXN1bWUoKSBjb25zdAogewotICAgIGlmIChtX3BhcnNl
clN0b3BwZWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChzZXNzaW9uLnByb2Nl
c3NlZFRva2VucyA+IG1fcGFyc2VyQ2h1bmtTaXplKSB7Ci0gICAgICAgIHNlc3Npb24ucHJvY2Vz
c2VkVG9rZW5zID0gMDsKLSAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lID0gY3VycmVudFRpbWUo
KSAtIHNlc3Npb24uc3RhcnRUaW1lOwotICAgICAgICBpZiAoZWxhcHNlZFRpbWUgPiBtX3BhcnNl
clRpbWVMaW1pdCkgewotICAgICAgICAgICAgLy8gU2NoZWR1bGUgYW4gaW1tZWRpYXRlIHRpbWVy
IGFuZCB5aWVsZCBmcm9tIHRoZSBwYXJzZXIuCi0gICAgICAgICAgICBtX2NvbnRpbnVlTmV4dENo
dW5rVGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICB9Ci0gICAgfQorICAgIHJldHVybiBtX3BhcnNlclNjaGVkdWxlciAmJiBtX3BhcnNlclNj
aGVkdWxlci0+aXNTY2hlZHVsZWRGb3JSZXN1bWUoKTsKK30KIAotICAgICsrc2Vzc2lvbi5wcm9j
ZXNzZWRUb2tlbnM7Ci0gICAgcmV0dXJuIHRydWU7CisvLyBVc2VkIGJ5IEhUTUxQYXJzZXJTY2hl
ZHVsZXIKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZygpCit7CisgICAg
Ly8gV2Ugc2hvdWxkIG5ldmVyIGJlIGhlcmUgdW5sZXNzIHdlIGNhbiBwdW1wIGltbWVkaWF0ZWx5
LiAgQ2FsbCBwdW1wTGV4ZXIoKQorICAgIC8vIGRpcmVjdGx5IHNvIHRoYXQgQVNTRVJUUyB3aWxs
IGZpcmUgaWYgd2UncmUgd3JvbmcuCisgICAgcHVtcExleGVyKEFsbG93WWllbGQpOwogfQogCiB2
b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkK
IHsKICAgICBBU1NFUlQoIW1fcGFyc2VyU3RvcHBlZCk7CiAgICAgQVNTRVJUKCFtX3RyZWVDb25z
dHJ1Y3Rvci0+aXNQYXVzZWQoKSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRpbnVlTmV4dENodW5rVGlt
ZXIuaXNBY3RpdmUoKSk7CisgICAgQVNTRVJUKCFpc1NjaGVkdWxlZEZvclJlc3VtZSgpKTsKIAog
ICAgIC8vIFdlIHRlbGwgdGhlIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgYWJvdXQgZXZlcnkgcHVt
cCwgZXZlbiBpZiB3ZQogICAgIC8vIGVuZCB1cCBwdW1waW5nIG5vdGhpbmcuICBJdCBjYW4gZmls
dGVyIG91dCBlbXB0eSBwdW1wcyBpdHNlbGYuCiAgICAgd2lsbFB1bXBMZXhlcigpOwogCi0gICAg
UHVtcFNlc3Npb24gc2Vzc2lvbjsKKyAgICBIVE1MUGFyc2VyU2NoZWR1bGVyOjpQdW1wU2Vzc2lv
biBzZXNzaW9uOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvb3AgYm9keSBoYXMgaXMgbm93IHRvbyBs
b25nIGFuZCBuZWVkcyBjbGVhbnVwLgotICAgIHdoaWxlIChtb2RlID09IEZvcmNlU3luY2hyb25v
dXMgfHwgc2hvdWxkQ29udGludWVQYXJzaW5nKHNlc3Npb24pKSB7CisgICAgd2hpbGUgKG1vZGUg
PT0gRm9yY2VTeW5jaHJvbm91cyB8fCAoIW1fcGFyc2VyU3RvcHBlZCAmJiBtX3BhcnNlclNjaGVk
dWxlci0+c2hvdWxkQ29udGludWVQYXJzaW5nKHNlc3Npb24pKSkgewogICAgICAgICBpZiAoIW1f
bGV4ZXItPm5leHRUb2tlbihtX2lucHV0LmN1cnJlbnQoKSwgbV90b2tlbikpCiAgICAgICAgICAg
ICBicmVhazsKIApAQCAtMjI4LDI4ICsxNzksNiBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6
OnB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkKICAgICBkaWRQdW1wTGV4ZXIoKTsKIH0K
IAotLy8gRklYTUU6IFRoaXMgYmVsb25ncyBvbiBEb2N1bWVudC4KLXN0YXRpYyBib29sIGlzTGF5
b3V0VGltZXJBY3RpdmUoRG9jdW1lbnQqIGRvYykKLXsKLSAgICBBU1NFUlQoZG9jKTsKLSAgICBy
ZXR1cm4gZG9jLT52aWV3KCkgJiYgZG9jLT52aWV3KCktPmxheW91dFBlbmRpbmcoKSAmJiAhZG9j
LT5taW5pbXVtTGF5b3V0RGVsYXkoKTsKLX0KLQotdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpj
b250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQoVGltZXI8SFRNTDVEb2N1bWVudFBhcnNlcj4qIHRp
bWVyKQotewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX2NvbnRpbnVlTmV4
dENodW5rVGltZXIpOwotICAgIC8vIEZJWE1FOiBUaGUgdGltZXIgY2xhc3Mgc2hvdWxkIGhhbmRs
ZSB0aW1lciBwcmlvcml0aWVzIGluc3RlYWQgb2YgdGhpcyBjb2RlLgotICAgIC8vIElmIGEgbGF5
b3V0IGlzIHNjaGVkdWxlZCwgd2FpdCBhZ2FpbiB0byBsZXQgdGhlIGxheW91dCB0aW1lciBydW4g
Zmlyc3QuCi0gICAgaWYgKGlzTGF5b3V0VGltZXJBY3RpdmUobV9kb2N1bWVudCkpIHsKLSAgICAg
ICAgbV9jb250aW51ZU5leHRDaHVua1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIC8vIFdlIHNob3VsZCBuZXZlciBiZSBoZXJlIHVubGVzcyB3ZSBj
YW4gcHVtcCBpbW1lZGlhdGVseS4gIENhbGwgcHVtcExleGVyKCkKLSAgICAvLyBkaXJlY3RseSBz
byB0aGF0IEFTU0VSVFMgd2lsbCBmaXJlIGlmIHdlJ3JlIHdyb25nLgotICAgIHB1bXBMZXhlcihB
bGxvd1lpZWxkKTsKLX0KLQogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjp3aWxsUHVtcExleGVy
KCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtMjk2LDcgKzIyNSw3IEBAIHZvaWQgSFRN
TDVEb2N1bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJv
b2wgaXNGcm9tTmV0d29yCiAKIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZW5kKCkKIHsKLSAg
ICBBU1NFUlQoIW1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICBBU1NF
UlQoIWlzU2NoZWR1bGVkRm9yUmVzdW1lKCkpOwogICAgIC8vIE5PVEU6IFRoaXMgcHVtcCBzaG91
bGQgb25seSBldmVyIGVtaXQgYnVmZmVyZWQgY2hhcmFjdGVyIHRva2VucywKICAgICAvLyBzbyBG
b3JjZVN5bmNocm9ub3VzIHZzLiBBbGxvd1lpZWxkIHNob3VsZCBiZSBtZWFuaW5nbGVzcy4KICAg
ICBwdW1wTGV4ZXJJZlBvc3NpYmxlKEZvcmNlU3luY2hyb25vdXMpOwpAQCAtMzEwLDcgKzIzOSw3
IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6YXR0ZW1wdFRvRW5kKCkKICAgICAvLyBmaW5p
c2goKSBpbmRpY2F0ZXMgd2Ugd2lsbCBub3QgcmVjZWl2ZSBhbnkgbW9yZSBkYXRhLiBJZiB3ZSBh
cmUgd2FpdGluZyBvbgogICAgIC8vIGFuIGV4dGVybmFsIHNjcmlwdCB0byBsb2FkLCB3ZSBjYW4n
dCBmaW5pc2ggcGFyc2luZyBxdWl0ZSB5ZXQuCiAKLSAgICBpZiAoaW5Xcml0ZSgpIHx8IGlzV2Fp
dGluZ0ZvclNjcmlwdHMoKSB8fCBleGVjdXRpbmdTY3JpcHQoKSB8fCBtX2NvbnRpbnVlTmV4dENo
dW5rVGltZXIuaXNBY3RpdmUoKSkgeworICAgIGlmIChpbldyaXRlKCkgfHwgaXNXYWl0aW5nRm9y
U2NyaXB0cygpIHx8IGV4ZWN1dGluZ1NjcmlwdCgpIHx8IGlzU2NoZWR1bGVkRm9yUmVzdW1lKCkp
IHsKICAgICAgICAgbV9lbmRXYXNEZWxheWVkID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTMyMSw3ICsyNTAsNyBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmVuZElmRGVs
YXllZCgpCiB7CiAgICAgLy8gV2UgZG9uJ3QgY2hlY2sgaW5Xcml0ZSgpIGhlcmUgc2luY2UgaW5X
cml0ZSgpIHdpbGwgYmUgdHJ1ZSBpZiB0aGlzIHdhcwogICAgIC8vIGNhbGxlZCBmcm9tIHdyaXRl
KCkuCi0gICAgaWYgKCFtX2VuZFdhc0RlbGF5ZWQgfHwgaXNXYWl0aW5nRm9yU2NyaXB0cygpIHx8
IGV4ZWN1dGluZ1NjcmlwdCgpIHx8IG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgp
KQorICAgIGlmICghbV9lbmRXYXNEZWxheWVkIHx8IGlzV2FpdGluZ0ZvclNjcmlwdHMoKSB8fCBl
eGVjdXRpbmdTY3JpcHQoKSB8fCBpc1NjaGVkdWxlZEZvclJlc3VtZSgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2VuZFdhc0RlbGF5ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBh
cnNlci5oCmluZGV4IDE2YjQyNWU5MThkY2Y0OTRkZjA3MTljODNkMzU5MzczZDY1NDVhNGIuLmQ2
OGU1YWViYzVkNmEwNzQyNjliMjE2MmIwNDUwZmZiZmExZjQyOGQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9j
dW1lbnRQYXJzZXIuaApAQCAtMzgsNiArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBIVE1MRG9jdW1lbnQ7CitjbGFzcyBIVE1MUGFyc2VyU2NoZWR1bGVyOwogY2xhc3MgTGVn
YWN5SFRNTFRyZWVDb25zdHJ1Y3RvcjsKIGNsYXNzIEhUTUw1TGV4ZXI7CiBjbGFzcyBIVE1MNVNj
cmlwdFJ1bm5lcjsKQEAgLTc3LDEzICs3OCwxNCBAQCBwdWJsaWM6CiAgICAgLy8gQ2FjaGVkUmVz
b3VyY2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3Vy
Y2UqKTsKIAorICAgIC8vIEV4cG9zZWQgZm9yIEhUTUxQYXJzZXJTY2hlZHVsZXIKKyAgICBIVE1M
RG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQorICAgIHZv
aWQgcmVzdW1lUGFyc2luZygpOworCiBwcml2YXRlOgogICAgIHZvaWQgd2lsbFB1bXBMZXhlcigp
OwogICAgIHZvaWQgZGlkUHVtcExleGVyKCk7CiAKLSAgICBzdHJ1Y3QgUHVtcFNlc3Npb247Ci0g
ICAgaW5saW5lIGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nKFB1bXBTZXNzaW9uJik7Ci0KICAg
ICBlbnVtIFN5bmNocm9ub3VzTW9kZSB7CiAgICAgICAgIEFsbG93WWllbGQsCiAgICAgICAgIEZv
cmNlU3luY2hyb25vdXMsCkBAIC05Myw2ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb250
aW51ZU5leHRDaHVua1RpbWVyRmlyZWQoVGltZXI8SFRNTDVEb2N1bWVudFBhcnNlcj4qKTsKICAg
ICB2b2lkIHJlc3VtZVBhcnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbigpOwogCisgICAgYm9vbCBp
c1NjaGVkdWxlZEZvclJlc3VtZSgpIGNvbnN0OworCiAgICAgdm9pZCBhdHRlbXB0VG9FbmQoKTsK
ICAgICB2b2lkIGVuZElmRGVsYXllZCgpOwogICAgIGJvb2wgaW5Xcml0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fd3JpdGVOZXN0aW5nTGV2ZWwgPiAwOyB9CkBAIC0xMDksMTUgKzExMywxMCBAQCBwcml2
YXRlOgogICAgIE93blB0cjxIVE1MNVNjcmlwdFJ1bm5lcj4gbV9zY3JpcHRSdW5uZXI7CiAgICAg
T3duUHRyPEhUTUw1VHJlZUJ1aWxkZXI+IG1fdHJlZUNvbnN0cnVjdG9yOwogICAgIE93blB0cjxI
VE1MNVByZWxvYWRTY2FubmVyPiBtX3ByZWxvYWRTY2FubmVyOworICAgIE93blB0cjxIVE1MUGFy
c2VyU2NoZWR1bGVyPiBtX3BhcnNlclNjaGVkdWxlcjsKIAogICAgIGJvb2wgbV9lbmRXYXNEZWxh
eWVkOwogICAgIGludCBtX3dyaXRlTmVzdGluZ0xldmVsOwotCi0gICAgLy8gVXNlZCBmb3IgeWll
bGRpbmcgdGhlIHBhcnNlciB0byBtYWtlIFdlYktpdCBhcHBsaWNhdGlvbnMgbW9yZSByZXNwb25z
aXZlLgotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBhIHNlcGFyYXRlIGNsYXNzLCB1c2VkIGJ5
IEhUTUw1RG9jdW1lbnRQYXJzZXIuCi0gICAgZG91YmxlIG1fcGFyc2VyVGltZUxpbWl0OwotICAg
IGludCBtX3BhcnNlckNodW5rU2l6ZTsKLSAgICBUaW1lcjxIVE1MNURvY3VtZW50UGFyc2VyPiBt
X2NvbnRpbnVlTmV4dENodW5rVGltZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlclNjaGVk
dWxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI1Mzg3YzNmODYyNWQxYWY5YTY3MzdmMmE2YzRiNzVlMWZk
MjVmMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVy
LmNwcApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlclNj
aGVkdWxlci5oIgorCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiIC8vIE9ubHkgZm9yIGlzTGF5b3V0
VGltZXJBY3RpdmUKKyNpbmNsdWRlICJIVE1MNURvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCisKKy8vIGRlZmF1bHRQYXJzZXJDaHVua1NpemUgaXMgdXNlZCB0byBk
ZWZpbmUgaG93IG1hbnkgdG9rZW5zIHRoZSBwYXJzZXIgd2lsbAorLy8gcHJvY2VzcyBiZWZvcmUg
Y2hlY2tpbmcgYWdhaW5zdCBwYXJzZXJUaW1lTGltaXQgYW5kIHBvc3NpYmx5IHlpZWxkaW5nLgor
Ly8gVGhpcyBpcyBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiB0byBwcmV2ZW50IGNoZWNraW5n
IGFmdGVyIGV2ZXJ5IHRva2VuLgorc3RhdGljIGNvbnN0IGludCBkZWZhdWx0UGFyc2VyQ2h1bmtT
aXplID0gNDA5NjsKKworLy8gZGVmYXVsdFBhcnNlclRpbWVMaW1pdCBpcyB0aGUgc2Vjb25kcyB0
aGUgcGFyc2VyIHdpbGwgcnVuIGluIG9uZSB3cml0ZSgpIGNhbGwKKy8vIGJlZm9yZSB5aWVsZGlu
Zy4gIElubGluZSA8c2NyaXB0PiBleGVjdXRpb24gY2FuIGNhdXNlIGl0IHRvIGV4Y2VkZSB0aGUg
bGltaXQuCisvLyBGSVhNRTogV2Ugd291bGQgbGlrZSB0aGlzIHZhbHVlIHRvIGJlIDAuMi4KK3N0
YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdFBhcnNlclRpbWVMaW1pdCA9IDAuNTAwOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBkb3VibGUgcGFyc2VyVGltZUxpbWl0KFBhZ2UqIHBh
Z2UpCit7CisgICAgLy8gV2UncmUgdXNpbmcgdGhlIHBvb3JseSBuYW1lZCBjdXN0b21IVE1MVG9r
ZW5pemVyVGltZURlbGF5IHNldHRpbmcuCisgICAgaWYgKHBhZ2UgJiYgcGFnZS0+aGFzQ3VzdG9t
SFRNTFRva2VuaXplclRpbWVEZWxheSgpKQorICAgICAgICByZXR1cm4gcGFnZS0+Y3VzdG9tSFRN
TFRva2VuaXplclRpbWVEZWxheSgpOworICAgIHJldHVybiBkZWZhdWx0UGFyc2VyVGltZUxpbWl0
OworfQorCitzdGF0aWMgaW50IHBhcnNlckNodW5rU2l6ZShQYWdlKiBwYWdlKQoreworICAgIC8v
IEZJWE1FOiBXZSBtYXkgbmVlZCB0byBkaXZpZGUgdGhlIHZhbHVlIGZyb20gY3VzdG9tSFRNTFRv
a2VuaXplckNodW5rU2l6ZQorICAgIC8vIGJ5IHNvbWUgY29uc3RhbnQgdG8gdHJhbnNsYXRlIGZy
b20gdGhlICJjaGFyYWN0ZXIiIGJhc2VkIGJlaGF2aW9yIG9mIHRoZQorICAgIC8vIG9sZCBIVE1M
RG9jdW1lbnRQYXJzZXIgdG8gdGhlIHRva2VuLWJhc2VkIGJlaGF2aW9yIG9mIHRoaXMgcGFyc2Vy
LgorICAgIGlmIChwYWdlICYmIHBhZ2UtPmhhc0N1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUo
KSkKKyAgICAgICAgcmV0dXJuIHBhZ2UtPmN1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUoKTsK
KyAgICByZXR1cm4gZGVmYXVsdFBhcnNlckNodW5rU2l6ZTsKK30KKworSFRNTFBhcnNlclNjaGVk
dWxlcjo6SFRNTFBhcnNlclNjaGVkdWxlcihIVE1MNURvY3VtZW50UGFyc2VyKiBwYXJzZXIpCisg
ICAgOiBtX3BhcnNlcihwYXJzZXIpCisgICAgLCBtX3BhcnNlclRpbWVMaW1pdChwYXJzZXJUaW1l
TGltaXQobV9wYXJzZXItPmRvY3VtZW50KCktPnBhZ2UoKSkpCisgICAgLCBtX3BhcnNlckNodW5r
U2l6ZShwYXJzZXJDaHVua1NpemUobV9wYXJzZXItPmRvY3VtZW50KCktPnBhZ2UoKSkpCisgICAg
LCBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIodGhpcywgJkhUTUxQYXJzZXJTY2hlZHVsZXI6OmNv
bnRpbnVlTmV4dENodW5rVGltZXJGaXJlZCkKK3sKKyAgICAKK30KKworSFRNTFBhcnNlclNjaGVk
dWxlcjo6fkhUTUxQYXJzZXJTY2hlZHVsZXIoKQoreworICAgIG1fY29udGludWVOZXh0Q2h1bmtU
aW1lci5zdG9wKCk7Cit9CisKKy8vIEZJWE1FOiBUaGlzIGJlbG9uZ3Mgb24gRG9jdW1lbnQuCitz
dGF0aWMgYm9vbCBpc0xheW91dFRpbWVyQWN0aXZlKERvY3VtZW50KiBkb2MpCit7CisgICAgQVNT
RVJUKGRvYyk7CisgICAgcmV0dXJuIGRvYy0+dmlldygpICYmIGRvYy0+dmlldygpLT5sYXlvdXRQ
ZW5kaW5nKCkgJiYgIWRvYy0+bWluaW11bUxheW91dERlbGF5KCk7Cit9CisKK3ZvaWQgSFRNTFBh
cnNlclNjaGVkdWxlcjo6Y29udGludWVOZXh0Q2h1bmtUaW1lckZpcmVkKFRpbWVyPEhUTUxQYXJz
ZXJTY2hlZHVsZXI+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9
PSAmbV9jb250aW51ZU5leHRDaHVua1RpbWVyKTsKKyAgICAvLyBGSVhNRTogVGhlIHRpbWVyIGNs
YXNzIHNob3VsZCBoYW5kbGUgdGltZXIgcHJpb3JpdGllcyBpbnN0ZWFkIG9mIHRoaXMgY29kZS4K
KyAgICAvLyBJZiBhIGxheW91dCBpcyBzY2hlZHVsZWQsIHdhaXQgYWdhaW4gdG8gbGV0IHRoZSBs
YXlvdXQgdGltZXIgcnVuIGZpcnN0LgorICAgIGlmIChpc0xheW91dFRpbWVyQWN0aXZlKG1fcGFy
c2VyLT5kb2N1bWVudCgpKSkgeworICAgICAgICBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuc3Rh
cnRPbmVTaG90KDApOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fcGFyc2VyLT5yZXN1
bWVQYXJzaW5nKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2Vy
U2NoZWR1bGVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZiMWU4ZjEzMzcxMjZkY2Y2NzhlMzhmYWQ1ZDUwMTc5YzZkNjFiMDAKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5oCkBAIC0wLDAgKzEsODQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgSFRNTFBhcnNlclNjaGVkdWxlcl9oCisjZGVmaW5lIEhUTUxQYXJzZXJTY2hlZHVsZXJfaAor
CisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBI
VE1MNURvY3VtZW50UGFyc2VyOworCitjbGFzcyBIVE1MUGFyc2VyU2NoZWR1bGVyIDogIHB1Ymxp
YyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgSFRNTFBhcnNlclNjaGVkdWxlcihIVE1MNURv
Y3VtZW50UGFyc2VyKik7CisgICAgfkhUTUxQYXJzZXJTY2hlZHVsZXIoKTsKKworICAgIHN0cnVj
dCBQdW1wU2Vzc2lvbiB7CisgICAgICAgIFB1bXBTZXNzaW9uKCkKKyAgICAgICAgICAgIDogcHJv
Y2Vzc2VkVG9rZW5zKDApCisgICAgICAgICAgICAsIHN0YXJ0VGltZShjdXJyZW50VGltZSgpKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcHJvY2Vzc2VkVG9rZW5zOworICAg
ICAgICBkb3VibGUgc3RhcnRUaW1lOworICAgIH07CisKKyAgICAvLyBJbmxpbmUgYXMgdGhpcyBp
cyBjYWxsZWQgYWZ0ZXIgZXZlcnkgdG9rZW4gaW4gdGhlIHBhcnNlci4KKyAgICBib29sIHNob3Vs
ZENvbnRpbnVlUGFyc2luZyhQdW1wU2Vzc2lvbiYgc2Vzc2lvbikKKyAgICB7CisgICAgICAgIGlm
IChzZXNzaW9uLnByb2Nlc3NlZFRva2VucyA+IG1fcGFyc2VyQ2h1bmtTaXplKSB7CisgICAgICAg
ICAgICBzZXNzaW9uLnByb2Nlc3NlZFRva2VucyA9IDA7CisgICAgICAgICAgICBkb3VibGUgZWxh
cHNlZFRpbWUgPSBjdXJyZW50VGltZSgpIC0gc2Vzc2lvbi5zdGFydFRpbWU7CisgICAgICAgICAg
ICBpZiAoZWxhcHNlZFRpbWUgPiBtX3BhcnNlclRpbWVMaW1pdCkgeworICAgICAgICAgICAgICAg
IC8vIFNjaGVkdWxlIHRoZSBwYXJzZXIgdG8gY29udGludWUgYW5kIHlpZWxkIGZyb20gdGhlIHBh
cnNlci4KKyAgICAgICAgICAgICAgICBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuc3RhcnRPbmVT
aG90KDApOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgICsrc2Vzc2lvbi5wcm9jZXNzZWRUb2tlbnM7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgaXNTY2hlZHVsZWRGb3JSZXN1bWUoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuaXNBY3RpdmUoKTsgfQorCitwcml2
YXRlOgorICAgIHZvaWQgY29udGludWVOZXh0Q2h1bmtUaW1lckZpcmVkKFRpbWVyPEhUTUxQYXJz
ZXJTY2hlZHVsZXI+Kik7CisKKyAgICBIVE1MNURvY3VtZW50UGFyc2VyKiBtX3BhcnNlcjsKKwor
ICAgIGRvdWJsZSBtX3BhcnNlclRpbWVMaW1pdDsKKyAgICBpbnQgbV9wYXJzZXJDaHVua1NpemU7
CisgICAgVGltZXI8SFRNTFBhcnNlclNjaGVkdWxlcj4gbV9jb250aW51ZU5leHRDaHVua1RpbWVy
OworfTsKKworfQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59430</attachid>
            <date>2010-06-22 16:08:40 -0700</date>
            <delta_ts>2010-06-22 16:17:12 -0700</delta_ts>
            <desc>Work in progress, will conflict with other patches in cq</desc>
            <filename>bug-41018-20100622160838.patch</filename>
            <type>text/plain</type>
            <size>28521</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCA3YWMzNDQ2ZjRhODQxMDk5NzA0ODM1NzFjNmVhYTE2ODk2ZTFlZjliLi4xOTY3MDhhMDc4Zjdl
MzZiNDE4ODVhZTVmYmRmYmZkNTQxZjVmMGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0yNjYsNiArMjY2LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uY3BwIFwKIAlodG1sL0xlZ2FjeUhUTUxUcmVlQ29uc3RydWN0b3IuY3BwIFwKIAlodG1sL0hU
TUxQYXJzZXJFcnJvckNvZGVzLmNwcCBcCisJaHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCBc
CiAJaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAgXAogCWh0bWwvSFRNTERvY3VtZW50
UGFyc2VyLmNwcCBcCiAJaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA2YjI1NTNjMmRlN2Q1OWZlNjc2OWQ3OTRlNzA5NDFkMTQwMTg1YjVmLi5hNzA3ODE0MGMwNDcx
MTU1NjdlOWVkYzNlZDExMGNjYWM2N2Y4MWZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTk3Myw2ICs5NzMsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcAogICAgIGh0
bWwvTGVnYWN5SFRNTFRyZWVDb25zdHJ1Y3Rvci5jcHAKICAgICBodG1sL0hUTUxQYXJzZXJFcnJv
ckNvZGVzLmNwcAorICAgIGh0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAKICAgICBodG1sL0hU
TUxQbHVnSW5FbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAK
ICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4M2Q1YTU5MmQ4ZWY5NDI3MzZlMTE1MGRlNmMz
OWMzYmE3YjMxMWI4Li4zOTUxOTc0ZGQyOTllOTk4NmMzMmIzZDA0Y2RjN2E4MTc2OTlhZTMxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDYyIEBACisyMDEwLTA2LTIyICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGxpdCBv
dXQgSFRNTDVEb2N1bWVudFBhcnNlciB5aWVsZC9yZXN1bWUgbG9naWMgaW50byBhIHNlcGFyYXRl
IGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MTAxOAorCisgICAgICAgIFRoZSBIVE1MNURvY3VtZW50UGFyc2VyIGlzIGp1c3QgdGhlIGNvb3Jk
aW5hdG9yLCBhbmQgc2hvdWxkbid0IGhhdmUKKyAgICAgICAgYW55IHJlYWwgcGFyc2luZyBsb2dp
YyBvZiBoaXMgb3duLiAgQ29udGludWluZyBhbG9uZyB0aGF0IHBhdGgsIEknbQorICAgICAgICBt
b3ZpbmcgdGhlIHdoZW4tdG8teWllbGQvcmVzdW1lIGxvZ2ljIG91dCBpbnRvIGEgc2VwYXJhdGUg
Y2xhc3MuCisKKyAgICAgICAgSSBjb3VsZCBoYXZlIGNyZWF0ZSBhIG5ldyBIVE1MUGFyc2VyU2No
ZWR1bGVySG9zdCB2aXJ0dWFsIGludGVyZmFjZQorICAgICAgICB0byBhbGxvdyB0aGUgSFRNTFBh
cnNlclNjaGVkdWxlciB0byB0YWxrIGJhY2sgdG8gdGhlCisgICAgICAgIEhUTUw1RG9jdW1lbnRQ
YXJzZXIsIGJ1dCBpbnN0ZWFkIEkganVzdCBleHBvc2VkIHRoZSBvbmUgbWV0aG9kIGl0CisgICAg
ICAgIG5lZWRzIChyZXN1bWVQYXJzaW5nKCkpIGFzIGEgcHVibGljIG1ldGhvZC4gIFNpbmNlIG5v
IGNvZGUgYmVzaWRlcworICAgICAgICBIVE1MRG9jdW1lbnQgKGFuZCBEb2N1bWVudEZyYW1lbnQp
IGV2ZXIgc2hvdWxkIGtub3cgYWJvdXQgdGhlCisgICAgICAgIEhUTUw1RG9jdW1lbnRQYXJzZXIg
RG9jdW1lbnRQYXJzZXIgc3ViY2xhc3MsIG5vIGNsYXNzIHNob3VsZCBldmVyCisgICAgICAgIHNl
ZSB0aGUgcmVzdW1lUGFyc2luZygpIG1ldGhvZCBhbnl3YXkuCisKKyAgICAgICAgTW9zdCBvZiB0
aGlzIGNoYW5nZSBpcyBqdXN0IG1vdmluZyBjb2RlIGZyb20gSFRNTDVEb2N1bWVudFBhcnNlcgor
ICAgICAgICB0byB0aGUgbmV3IEhUTUxQYXJzZXJTY2hlZHVsZXIuCisKKyAgICAgICAgU29tZSBv
ZiB0aGlzIGNoYW5nZSBpcyB3cmFwcGluZyBwcmV2aW91cyBkaXJlY3QgYWNjZXNzIHRvCisgICAg
ICAgIG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgpIHdpdGggaXNTY2hlZHVsZWRG
b3JSZXN1bWUoKS4KKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6SFRNTDVEb2N1bWVudFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZyk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXJJZlBvc3Np
YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmlzU2NoZWR1bGVk
Rm9yUmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OnJlc3Vt
ZVBhcnNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExl
eGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9jdW1lbnRQYXJzZXI6OmVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MNURvY3VtZW50UGFyc2VyOjphdHRlbXB0VG9FbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTDVEb2N1bWVudFBhcnNlcjo6ZW5kSWZEZWxheWVkKToKKyAgICAgICAg
KiBodG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1RG9j
dW1lbnRQYXJzZXI6OmRvY3VtZW50KToKKyAgICAgICAgIC0gRXhwb3NlZCBmb3IgSFRNTFBhcnNl
clNjaGVkdWxlci4KKyAgICAgICAgKiBodG1sL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlclRpbWVMaW1pdCk6IE1vdmVkIGZyb20gSFRNTDVE
b2N1bWVudFBhcnNlci4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlckNodW5rU2l6ZSk6IGRpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlclNjaGVkdWxlcjo6SFRNTFBhcnNlclNjaGVk
dWxlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyc2VyU2NoZWR1bGVyOjp+SFRNTFBhcnNl
clNjaGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjppc0xheW91dFRpbWVyQWN0aXZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXJTY2hlZHVsZXI6OmNvbnRpbnVlTmV4dENodW5rVGlt
ZXJGaXJlZCk6CisgICAgICAgICAtIE1vdmVkIGZyb20gSFRNTDVEb2N1bWVudFBhcnNlci4KKyAg
ICAgICAgKiBodG1sL0hUTUxQYXJzZXJTY2hlZHVsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MUGFyc2VyU2NoZWR1bGVyOjpQdW1wU2Vzc2lvbjo6UHVtcFNlc3Npb24pOgorICAg
ICAgICAgLSBNb3ZlZCBmcm9tIEhUTUw1RG9jdW1lbnRQYXJzZXIuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUGFyc2VyU2NoZWR1bGVyOjpzaG91bGRDb250aW51ZVBhcnNpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFBhcnNlclNjaGVkdWxlcjo6aXNTY2hlZHVsZWRGb3JSZXN1bWUpOgorCiAy
MDEwLTA2LTIyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYTJmNjM2YjY4MTUzNjE2Yjdm
ZmFiYjI5ZmEzZGQ4OGVmNDI2NmIwNS4uMTZhNGIxZGRlNTYxMjQyNzNmNmYyZTRkNDJmMTdkODQw
MmE0ZmJlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xMjI0LDYgKzEyMjQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvaHRtbC9IVE1MUGFyc2VyRXJyb3JDb2Rlcy5jcHAgXAogCVdlYkNvcmUvaHRt
bC9IVE1MUGFyc2VyRXJyb3JDb2Rlcy5oIFwKIAlXZWJDb3JlL2h0bWwvSFRNTFBhcnNlclF1aXJr
cy5oIFwKKwlXZWJDb3JlL2h0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAgXAorCVdlYkNvcmUv
aHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVyLmggXAogCVdlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxl
bWVudC5jcHAgXAogCVdlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oIFwKIAlXZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyZTQ2MTE5MGU2ZTU5MzBk
OTYxYWQxZTEyYjYyMGQ0MTk5MGRhMzBlLi5hOWRiNDUwMjFlZWE0OGE4OTZmY2FmYzUwZDkwODdh
ZTgyMTkwNGNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMTYxMCw2ICsxNjEwLDggQEAKICAgICAgICAgICAgICdodG1sL0xl
Z2FjeUhUTUxUcmVlQ29uc3RydWN0b3IuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUGFyc2Vy
RXJyb3JDb2Rlcy5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBhcnNlckVycm9yQ29kZXMu
aCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCcsCisgICAgICAg
ICAgICAnaHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVyLmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TFBsdWdJbkVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxQbHVnSW5FbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAnLApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXgg
YTMyM2EwNzk0Yzk3NDM5YjQ1MDE5ZmQ3ZDJkNzY1Y2JjMWM1Mzc0Ni4uMjE1MDc1MDY5OGViZjI3
NjFiMDU2YjU0NTg2YThiODBjYzNkNDYyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBy
bworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC02NzksNiArNjc5LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcCBcCiAgICAgaHRtbC9MZWdhY3lIVE1M
VHJlZUNvbnN0cnVjdG9yLmNwcCBcCiAgICAgaHRtbC9IVE1MUGFyc2VyRXJyb3JDb2Rlcy5jcHAg
XAorICAgIGh0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAgXAogICAgIGh0bWwvSFRNTFBsdWdJ
bkVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIFwKICAg
ICBodG1sL0hUTUxQcmVFbGVtZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDU3ZmRjNDEzZGU1Yjg1ODY1YTk0ZGIxYzViNWZiMDgxYjMxNjc5
OWYuLjlkNzg5YWFkMzAwYWJlZGI0ZmY3MjY0ZDNhZmE1MDFhMmI0ZTEwOGMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjc2LDYgKzMyNzYsOCBAQAog
CQlBOEU1NDVCRDBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHQW5pbWF0ZWRBbmdsZUludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEU1NDRC
RjBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHQW5pbWF0ZWRBbmdsZUludGVybmFsLmggKi87IH07
CiAJCUE4RTU0NUJGMENBOUQxQzIwMDk3RDA5QiAvKiBET01TVkdUZXh0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFNTQ0QzEwQ0E5RDFD
MjAwOTdEMDlCIC8qIERPTVNWR1RleHRFbGVtZW50LmggKi87IH07CiAJCUE4RTU0NUMxMENBOUQx
QzIwMDk3RDA5QiAvKiBET01TVkdEZXNjRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEU1NDRDMzBDQTlEMUMyMDA5N0QwOUIg
LyogRE9NU1ZHRGVzY0VsZW1lbnRJbnRlcm5hbC5oICovOyB9OworCQlBOEU2QTc4MTExRDE2NjFC
MDAzMTFGNEEgLyogSFRNTFBhcnNlclNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFNkE3N0YxMUQxNjYxQjAwMzExRjRBIC8qIEhUTUxQ
YXJzZXJTY2hlZHVsZXIuaCAqLzsgfTsKKwkJQThFNkE3ODIxMUQxNjYxQjAwMzExRjRBIC8qIEhU
TUxQYXJzZXJTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThFNkE3ODAxMUQxNjYxQjAwMzExRjRBIC8qIEhUTUxQYXJzZXJTY2hlZHVs
ZXIuY3BwICovOyB9OwogCQlBOEVBNzNDMzBBMTkwMEUzMDBBOEVGNUYgLyogUmVuZGVyRmllbGRz
ZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThF
QTczQUYwQTE5MDBFMzAwQThFRjVGIC8qIFJlbmRlckZpZWxkc2V0LmNwcCAqLzsgfTsKIAkJQThF
QTczQzQwQTE5MDBFMzAwQThFRjVGIC8qIFJlbmRlckZpZWxkc2V0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBNzNCMDBBMTkwMEUzMDBBOEVGNUYg
LyogUmVuZGVyRmllbGRzZXQuaCAqLzsgfTsKIAkJQThFQTc5RjEwQTE5MTZERjAwQThFRjVGIC8q
IEhUTUxPTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4RUE3OUU1MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MT0xpc3RFbGVtZW50Lmgg
Ki87IH07CkBAIC04NzQwLDYgKzg3NDIsOCBAQAogCQlBOEU1NDRCRjBDQTlEMUMyMDA5N0QwOUIg
LyogRE9NU1ZHQW5pbWF0ZWRBbmdsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTVNWR0FuaW1hdGVkQW5nbGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBOEU1NDRDMTBDQTlEMUMyMDA5N0QwOUIgLyogRE9NU1ZHVGV4dEVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHVGV4dEVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThFNTQ0QzMwQ0E5RDFDMjAwOTdEMDlC
IC8qIERPTVNWR0Rlc2NFbGVtZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NU1ZHRGVzY0VsZW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBOEU2QTc3RjExRDE2NjFCMDAzMTFGNEEgLyogSFRNTFBhcnNlclNjaGVkdWxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VyU2NoZWR1bGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4RTZBNzgwMTFEMTY2MUIwMDMxMUY0
QSAvKiBIVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhUTUxQYXJzZXJTY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEVBNzNBRjBBMTkwMEUzMDBBOEVGNUYgLyogUmVuZGVyRmllbGRzZXQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZpZWxkc2V0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThFQTczQjAwQTE5MDBFMzAwQThFRjVGIC8q
IFJlbmRlckZpZWxkc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJGaWVsZHNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEVBNzlFNTBBMTkx
NkRGMDBBOEVGNUYgLyogSFRNTE9MaXN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSFRNTE9MaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTM0MTcsOCArMTM0MjEsNiBAQAogCQk5M0VFQzFFQzA5QzI4Nzc3MDBDNTE1RDEgLyog
aHRtbCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTcx
OUFFRkYxMUQwOUYyQzAwRDQ1ODMxIC8qIEhUTUxJbnB1dFN0cmVhbS5oICovLAotCQkJCTQ5NDg0
RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8sCiAJCQkJQjAxNDlFNzkxMUE0QjIxNTAw
MTk2QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVyLmNwcCAqLywKIAkJCQlCMDE0OUU3QTExQTRCMjE1
MDAxOTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuaCAqLywKIAkJCQkyRUFGQUYwQjEwRTJBRjJE
MDA3RUQzRDYgLyogQmxvYi5jcHAgKi8sCkBAIC0xMzQyNiw2ICsxMzQyOCw3IEBACiAJCQkJMkVB
RkFGMEQxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaWRsICovLAogCQkJCTg5QkVENUU5MTFCRTEx
Q0UwMDQ0ODQ5MiAvKiBCbG9iQnVpbGRlci5jcHAgKi8sCiAJCQkJODlCRUQ1RUExMUJFMTFDRTAw
NDQ4NDkyIC8qIEJsb2JCdWlsZGVyLmggKi8sCisJCQkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQz
IC8qIGNhbnZhcyAqLywKIAkJCQk5M0M0NDFFRDBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlv
bkNhY2hlLmNwcCAqLywKIAkJCQk5M0M0NDFFRTBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlv
bkNhY2hlLmggKi8sCiAJCQkJOTNDNDQxRkYwRjgxM0FFMTAwQzFBNjM0IC8qIENvbGxlY3Rpb25U
eXBlLmggKi8sCkBAIC0xMzYwMSw2ICsxMzYwNCw3IEBACiAJCQkJQTgxMzY5QjEwOTczNzRGNTAw
RDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUIwMDk3Mzc0RjUw
MEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggKi8sCiAJCQkJQTgwRTdFMTcwQTFBN0NDQjAw
N0ZCOEM1IC8qIEhUTUxJbnB1dEVsZW1lbnQuaWRsICovLAorCQkJCTk3MTlBRUZGMTFEMDlGMkMw
MEQ0NTgzMSAvKiBIVE1MSW5wdXRTdHJlYW0uaCAqLywKIAkJCQlBODEzNjlBRjA5NzM3NEY1MDBE
NzQ0NjMgLyogSFRNTElzSW5kZXhFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlBRTA5NzM3NEY1
MDBENzQ0NjMgLyogSFRNTElzSW5kZXhFbGVtZW50LmggKi8sCiAJCQkJMUFFMkFBODUwQTFDREND
RTAwQjQyQjI1IC8qIEhUTUxJc0luZGV4RWxlbWVudC5pZGwgKi8sCkBAIC0xMzY2Nyw2ICsxMzY3
MSw4IEBACiAJCQkJQkM1ODhCNEEwQkZBNzIzQzAwRUU2NzlFIC8qIEhUTUxQYXJzZXJFcnJvckNv
ZGVzLmNwcCAqLywKIAkJCQlCQzU4OEFFRjBCRkE2Q0Y5MDBFRTY3OUUgLyogSFRNTFBhcnNlckVy
cm9yQ29kZXMuaCAqLywKIAkJCQk0NDlCMTlGMzBGQTcyRUNFMDAxNUNBNEEgLyogSFRNTFBhcnNl
clF1aXJrcy5oICovLAorCQkJCUE4RTZBNzgwMTFEMTY2MUIwMDMxMUY0QSAvKiBIVE1MUGFyc2Vy
U2NoZWR1bGVyLmNwcCAqLywKKwkJCQlBOEU2QTc3RjExRDE2NjFCMDAzMTFGNEEgLyogSFRNTFBh
cnNlclNjaGVkdWxlci5oICovLAogCQkJCUE4NzFENDREMEExMjdDQkMwMEIxMkE2OCAvKiBIVE1M
UGx1Z0luRWxlbWVudC5jcHAgKi8sCiAJCQkJQTg3MUQ0NEMwQTEyN0NCQzAwQjEyQTY4IC8qIEhU
TUxQbHVnSW5FbGVtZW50LmggKi8sCiAJCQkJNDQxNTI5MkQwRTFBRThBMDAwQzRBMkQwIC8qIEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwICovLApAQCAtMTk0OTksNiArMTk1MDUsNyBAQAogCQkJ
CUI1NkVCQTg1MTFDOUZGODEwMEIwNDQ3NyAvKiBTUUxFeGNlcHRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUI1MjVBOTY1MTFDQTIzNDAwMDNBMjNBOCAvKiBKU1NRTEV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTcxOUFGMDAxMUQwOUYyQzAwRDQ1ODMxIC8qIEhUTUxJbnB1dFN0cmVh
bS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQThFNkE3ODExMUQxNjYxQjAwMzExRjRBIC8qIEhUTUxQ
YXJzZXJTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjE4MTUsNiArMjE4MjIsNyBAQAog
CQkJCTIwMEIxOTA5MTFDMjc3RDkwMERDQ0QzQSAvKiBTY3JpcHRCcmVha3BvaW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBRDhGODFDMTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjUyNUE5NjYxMUNBMjM0MDAwM0EyM0E4IC8q
IEpTU1FMRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4RTZBNzgyMTFEMTY2MUIw
MDMxMUY0QSAvKiBIVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1s
L0hUTUw1RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IGZmM2ZlNGUwZDQ5N2E1MDU5MGFiZmJiMzMx
MzVhZTJjODEwOTgxNmUuLjU3YzgxOTEyODE3ZGE5MzBjNTRhMzExNWE1YjY4NWY0ZjI2ODcyZGEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmNwcAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBhcnNlci5jcHAKQEAgLTI4LDE0ICsyOCwxMiBAQAog
CiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJh
bWVWaWV3LmgiIC8vIE9ubHkgZm9yIGlzTGF5b3V0VGltZXJBY3RpdmUKKyNpbmNsdWRlICJIVE1M
UGFyc2VyU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiSFRNTDVMZXhlci5oIgogI2luY2x1ZGUgIkhU
TUw1UHJlbG9hZFNjYW5uZXIuaCIKICNpbmNsdWRlICJIVE1MNVNjcmlwdFJ1bm5lci5oIgogI2lu
Y2x1ZGUgIkhUTUw1VHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlhTU0F1ZGl0b3Iu
aCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIApAQCAtNDMsMTYgKzQxLDYgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjZW5kaWYKIAotLy8gZGVmYXVsdFBh
cnNlckNodW5rU2l6ZSBpcyB1c2VkIHRvIGRlZmluZSBob3cgbWFueSB0b2tlbnMgdGhlIHBhcnNl
ciB3aWxsCi0vLyBwcm9jZXNzIGJlZm9yZSBjaGVja2luZyBhZ2FpbnN0IHBhcnNlclRpbWVMaW1p
dCBhbmQgcG9zc2libHkgeWllbGRpbmcuCi0vLyBUaGlzIGlzIGEgcGVyZm9ybWFuY2Ugb3B0aW1p
emF0aW9uIHRvIHByZXZlbnQgY2hlY2tpbmcgYWZ0ZXIgZXZlcnkgdG9rZW4uCi1zdGF0aWMgY29u
c3QgaW50IGRlZmF1bHRQYXJzZXJDaHVua1NpemUgPSA0MDk2OwotCi0vLyBkZWZhdWx0UGFyc2Vy
VGltZUxpbWl0IGlzIHRoZSBzZWNvbmRzIHRoZSBwYXJzZXIgd2lsbCBydW4gaW4gb25lIHdyaXRl
KCkgY2FsbAotLy8gYmVmb3JlIHlpZWxkaW5nLiAgSW5saW5lIDxzY3JpcHQ+IGV4ZWN1dGlvbiBj
YW4gY2F1c2UgaXQgdG8gZXhjZWRlIHRoZSBsaW1pdC4KLS8vIEZJWE1FOiBXZSB3b3VsZCBsaWtl
IHRoaXMgdmFsdWUgdG8gYmUgMC4yLgotc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0UGFyc2Vy
VGltZUxpbWl0ID0gMC41MDA7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIHsK
QEAgLTc2LDM1ICs2NCwxNSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZQogCi1zdGF0aWMg
ZG91YmxlIHBhcnNlclRpbWVMaW1pdChQYWdlKiBwYWdlKQotewotICAgIC8vIFdlJ3JlIHVzaW5n
IHRoZSBwb29ybHkgbmFtZWQgY3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxheSBzZXR0aW5nLgot
ICAgIGlmIChwYWdlICYmIHBhZ2UtPmhhc0N1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkoKSkK
LSAgICAgICAgcmV0dXJuIHBhZ2UtPmN1c3RvbUhUTUxUb2tlbml6ZXJUaW1lRGVsYXkoKTsKLSAg
ICByZXR1cm4gZGVmYXVsdFBhcnNlclRpbWVMaW1pdDsKLX0KLQotc3RhdGljIGludCBwYXJzZXJD
aHVua1NpemUoUGFnZSogcGFnZSkKLXsKLSAgICAvLyBGSVhNRTogV2UgbWF5IG5lZWQgdG8gZGl2
aWRlIHRoZSB2YWx1ZSBmcm9tIGN1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUKLSAgICAvLyBi
eSBzb21lIGNvbnN0YW50IHRvIHRyYW5zbGF0ZSBmcm9tIHRoZSAiY2hhcmFjdGVyIiBiYXNlZCBi
ZWhhdmlvciBvZiB0aGUKLSAgICAvLyBvbGQgSFRNTERvY3VtZW50UGFyc2VyIHRvIHRoZSB0b2tl
bi1iYXNlZCBiZWhhdmlvciBvZiB0aGlzIHBhcnNlci4KLSAgICBpZiAocGFnZSAmJiBwYWdlLT5o
YXNDdXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCkpCi0gICAgICAgIHJldHVybiBwYWdlLT5j
dXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXplKCk7Ci0gICAgcmV0dXJuIGRlZmF1bHRQYXJzZXJD
aHVua1NpemU7Ci19Ci0KIEhUTUw1RG9jdW1lbnRQYXJzZXI6OkhUTUw1RG9jdW1lbnRQYXJzZXIo
SFRNTERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMpCiAgICAgOiBEb2N1bWVu
dFBhcnNlcigpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQogICAgICwgbV9sZXhlcihuZXcg
SFRNTDVMZXhlcikKICAgICAsIG1fc2NyaXB0UnVubmVyKG5ldyBIVE1MNVNjcmlwdFJ1bm5lcihk
b2N1bWVudCwgdGhpcykpCiAgICAgLCBtX3RyZWVDb25zdHJ1Y3RvcihuZXcgSFRNTDVUcmVlQnVp
bGRlcihtX2xleGVyLmdldCgpLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzKSkKKyAgICAsIG1fcGFy
c2VyU2NoZWR1bGVyKG5ldyBIVE1MUGFyc2VyU2NoZWR1bGVyKHRoaXMpKQogICAgICwgbV9lbmRX
YXNEZWxheWVkKGZhbHNlKQogICAgICwgbV93cml0ZU5lc3RpbmdMZXZlbCgwKQotICAgICwgbV9w
YXJzZXJUaW1lTGltaXQocGFyc2VyVGltZUxpbWl0KGRvY3VtZW50LT5wYWdlKCkpKQotICAgICwg
bV9wYXJzZXJDaHVua1NpemUocGFyc2VyQ2h1bmtTaXplKGRvY3VtZW50LT5wYWdlKCkpKQotICAg
ICwgbV9jb250aW51ZU5leHRDaHVua1RpbWVyKHRoaXMsICZIVE1MNURvY3VtZW50UGFyc2VyOjpj
b250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQpCiB7CiAgICAgYmVnaW4oKTsKIH0KQEAgLTEyNSwx
MiArOTMsMTIgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpiZWdpbigpCiB2b2lkIEhUTUw1
RG9jdW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCkKIHsKICAgICBEb2N1bWVudFBhcnNlcjo6c3Rv
cFBhcnNpbmcoKTsKLSAgICBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuc3RvcCgpOworICAgIG1f
cGFyc2VyU2NoZWR1bGVyLmNsZWFyKCk7IC8vIERlbGV0aW5nIHRoZSBzY2hlZHVsZXIgd2lsbCBj
bGVhciBhbnkgdGltZXJzLgogfQogCiBib29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnByb2Nlc3Np
bmdEYXRhKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jb250aW51ZU5leHRDaHVua1RpbWVyLmlz
QWN0aXZlKCkgfHwgaW5Xcml0ZSgpOworICAgIHJldHVybiBpc1NjaGVkdWxlZEZvclJlc3VtZSgp
IHx8IGluV3JpdGUoKTsKIH0KIAogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXJJ
ZlBvc3NpYmxlKFN5bmNocm9ub3VzTW9kZSBtb2RlKQpAQCAtMTM4LDggKzEwNiw4IEBAIHZvaWQg
SFRNTDVEb2N1bWVudFBhcnNlcjo6cHVtcExleGVySWZQb3NzaWJsZShTeW5jaHJvbm91c01vZGUg
bW9kZSkKICAgICBpZiAobV9wYXJzZXJTdG9wcGVkIHx8IG1fdHJlZUNvbnN0cnVjdG9yLT5pc1Bh
dXNlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBPbmNlIGEgdGltZXIgaXMgc2V0LCBp
dCBoYXMgY29udHJvbCBvZiB3aGVuIHRoZSBwYXJzZXIgY29udGludWVzLgotICAgIGlmIChtX2Nv
bnRpbnVlTmV4dENodW5rVGltZXIuaXNBY3RpdmUoKSkgeworICAgIC8vIE9uY2UgYSByZXN1bWUg
aXMgc2NoZWR1bGVkLCBIVE1MUGFyc2VyU2NoZWR1bGVyIGNvbnRyb2xzIHdoZW4gd2UgbmV4dCBw
dW1wLgorICAgIGlmIChpc1NjaGVkdWxlZEZvclJlc3VtZSgpKSB7CiAgICAgICAgIEFTU0VSVCht
b2RlID09IEFsbG93WWllbGQpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTQ3LDQ5ICsx
MTUsMzIgQEAgdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpwdW1wTGV4ZXJJZlBvc3NpYmxlKFN5
bmNocm9ub3VzTW9kZSBtb2RlKQogICAgIHB1bXBMZXhlcihtb2RlKTsKIH0KIAotc3RydWN0IEhU
TUw1RG9jdW1lbnRQYXJzZXI6OlB1bXBTZXNzaW9uIHsKLSAgICBQdW1wU2Vzc2lvbigpCi0gICAg
ICAgIDogcHJvY2Vzc2VkVG9rZW5zKDApCi0gICAgICAgICwgc3RhcnRUaW1lKGN1cnJlbnRUaW1l
KCkpCi0gICAgewotICAgIH0KLQotICAgIGludCBwcm9jZXNzZWRUb2tlbnM7Ci0gICAgZG91Ymxl
IHN0YXJ0VGltZTsKLX07Ci0KLWlubGluZSBib29sIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnNob3Vs
ZENvbnRpbnVlUGFyc2luZyhQdW1wU2Vzc2lvbiYgc2Vzc2lvbikKK2Jvb2wgSFRNTDVEb2N1bWVu
dFBhcnNlcjo6aXNTY2hlZHVsZWRGb3JSZXN1bWUoKSBjb25zdAogewotICAgIGlmIChtX3BhcnNl
clN0b3BwZWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChzZXNzaW9uLnByb2Nl
c3NlZFRva2VucyA+IG1fcGFyc2VyQ2h1bmtTaXplKSB7Ci0gICAgICAgIHNlc3Npb24ucHJvY2Vz
c2VkVG9rZW5zID0gMDsKLSAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lID0gY3VycmVudFRpbWUo
KSAtIHNlc3Npb24uc3RhcnRUaW1lOwotICAgICAgICBpZiAoZWxhcHNlZFRpbWUgPiBtX3BhcnNl
clRpbWVMaW1pdCkgewotICAgICAgICAgICAgLy8gU2NoZWR1bGUgYW4gaW1tZWRpYXRlIHRpbWVy
IGFuZCB5aWVsZCBmcm9tIHRoZSBwYXJzZXIuCi0gICAgICAgICAgICBtX2NvbnRpbnVlTmV4dENo
dW5rVGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICB9Ci0gICAgfQorICAgIHJldHVybiBtX3BhcnNlclNjaGVkdWxlciAmJiBtX3BhcnNlclNj
aGVkdWxlci0+aXNTY2hlZHVsZWRGb3JSZXN1bWUoKTsKK30KIAotICAgICsrc2Vzc2lvbi5wcm9j
ZXNzZWRUb2tlbnM7Ci0gICAgcmV0dXJuIHRydWU7CisvLyBVc2VkIGJ5IEhUTUxQYXJzZXJTY2hl
ZHVsZXIKK3ZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZygpCit7CisgICAg
Ly8gV2Ugc2hvdWxkIG5ldmVyIGJlIGhlcmUgdW5sZXNzIHdlIGNhbiBwdW1wIGltbWVkaWF0ZWx5
LiAgQ2FsbCBwdW1wTGV4ZXIoKQorICAgIC8vIGRpcmVjdGx5IHNvIHRoYXQgQVNTRVJUUyB3aWxs
IGZpcmUgaWYgd2UncmUgd3JvbmcuCisgICAgcHVtcExleGVyKEFsbG93WWllbGQpOwogfQogCiB2
b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OnB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkK
IHsKICAgICBBU1NFUlQoIW1fcGFyc2VyU3RvcHBlZCk7CiAgICAgQVNTRVJUKCFtX3RyZWVDb25z
dHJ1Y3Rvci0+aXNQYXVzZWQoKSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRpbnVlTmV4dENodW5rVGlt
ZXIuaXNBY3RpdmUoKSk7CisgICAgQVNTRVJUKCFpc1NjaGVkdWxlZEZvclJlc3VtZSgpKTsKIAog
ICAgIC8vIFdlIHRlbGwgdGhlIEluc3BlY3RvclRpbWVsaW5lQWdlbnQgYWJvdXQgZXZlcnkgcHVt
cCwgZXZlbiBpZiB3ZQogICAgIC8vIGVuZCB1cCBwdW1waW5nIG5vdGhpbmcuICBJdCBjYW4gZmls
dGVyIG91dCBlbXB0eSBwdW1wcyBpdHNlbGYuCiAgICAgd2lsbFB1bXBMZXhlcigpOwogCi0gICAg
UHVtcFNlc3Npb24gc2Vzc2lvbjsKKyAgICBIVE1MUGFyc2VyU2NoZWR1bGVyOjpQdW1wU2Vzc2lv
biBzZXNzaW9uOwogICAgIC8vIEZJWE1FOiBUaGlzIGxvb3AgYm9keSBoYXMgaXMgbm93IHRvbyBs
b25nIGFuZCBuZWVkcyBjbGVhbnVwLgotICAgIHdoaWxlIChtb2RlID09IEZvcmNlU3luY2hyb25v
dXMgfHwgc2hvdWxkQ29udGludWVQYXJzaW5nKHNlc3Npb24pKSB7CisgICAgd2hpbGUgKG1vZGUg
PT0gRm9yY2VTeW5jaHJvbm91cyB8fCAoIW1fcGFyc2VyU3RvcHBlZCAmJiBtX3BhcnNlclNjaGVk
dWxlci0+c2hvdWxkQ29udGludWVQYXJzaW5nKHNlc3Npb24pKSkgewogICAgICAgICBpZiAoIW1f
bGV4ZXItPm5leHRUb2tlbihtX2lucHV0LmN1cnJlbnQoKSwgbV90b2tlbikpCiAgICAgICAgICAg
ICBicmVhazsKIApAQCAtMjI4LDI4ICsxNzksNiBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6
OnB1bXBMZXhlcihTeW5jaHJvbm91c01vZGUgbW9kZSkKICAgICBkaWRQdW1wTGV4ZXIoKTsKIH0K
IAotLy8gRklYTUU6IFRoaXMgYmVsb25ncyBvbiBEb2N1bWVudC4KLXN0YXRpYyBib29sIGlzTGF5
b3V0VGltZXJBY3RpdmUoRG9jdW1lbnQqIGRvYykKLXsKLSAgICBBU1NFUlQoZG9jKTsKLSAgICBy
ZXR1cm4gZG9jLT52aWV3KCkgJiYgZG9jLT52aWV3KCktPmxheW91dFBlbmRpbmcoKSAmJiAhZG9j
LT5taW5pbXVtTGF5b3V0RGVsYXkoKTsKLX0KLQotdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjpj
b250aW51ZU5leHRDaHVua1RpbWVyRmlyZWQoVGltZXI8SFRNTDVEb2N1bWVudFBhcnNlcj4qIHRp
bWVyKQotewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX2NvbnRpbnVlTmV4
dENodW5rVGltZXIpOwotICAgIC8vIEZJWE1FOiBUaGUgdGltZXIgY2xhc3Mgc2hvdWxkIGhhbmRs
ZSB0aW1lciBwcmlvcml0aWVzIGluc3RlYWQgb2YgdGhpcyBjb2RlLgotICAgIC8vIElmIGEgbGF5
b3V0IGlzIHNjaGVkdWxlZCwgd2FpdCBhZ2FpbiB0byBsZXQgdGhlIGxheW91dCB0aW1lciBydW4g
Zmlyc3QuCi0gICAgaWYgKGlzTGF5b3V0VGltZXJBY3RpdmUobV9kb2N1bWVudCkpIHsKLSAgICAg
ICAgbV9jb250aW51ZU5leHRDaHVua1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIC8vIFdlIHNob3VsZCBuZXZlciBiZSBoZXJlIHVubGVzcyB3ZSBj
YW4gcHVtcCBpbW1lZGlhdGVseS4gIENhbGwgcHVtcExleGVyKCkKLSAgICAvLyBkaXJlY3RseSBz
byB0aGF0IEFTU0VSVFMgd2lsbCBmaXJlIGlmIHdlJ3JlIHdyb25nLgotICAgIHB1bXBMZXhlcihB
bGxvd1lpZWxkKTsKLX0KLQogdm9pZCBIVE1MNURvY3VtZW50UGFyc2VyOjp3aWxsUHVtcExleGVy
KCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtMjk2LDcgKzIyNSw3IEBAIHZvaWQgSFRN
TDVEb2N1bWVudFBhcnNlcjo6d3JpdGUoY29uc3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGJv
b2wgaXNGcm9tTmV0d29yCiAKIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6ZW5kKCkKIHsKLSAg
ICBBU1NFUlQoIW1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICBBU1NF
UlQoIWlzU2NoZWR1bGVkRm9yUmVzdW1lKCkpOwogICAgIC8vIE5PVEU6IFRoaXMgcHVtcCBzaG91
bGQgb25seSBldmVyIGVtaXQgYnVmZmVyZWQgY2hhcmFjdGVyIHRva2VucywKICAgICAvLyBzbyBG
b3JjZVN5bmNocm9ub3VzIHZzLiBBbGxvd1lpZWxkIHNob3VsZCBiZSBtZWFuaW5nbGVzcy4KICAg
ICBwdW1wTGV4ZXJJZlBvc3NpYmxlKEZvcmNlU3luY2hyb25vdXMpOwpAQCAtMzEwLDcgKzIzOSw3
IEBAIHZvaWQgSFRNTDVEb2N1bWVudFBhcnNlcjo6YXR0ZW1wdFRvRW5kKCkKICAgICAvLyBmaW5p
c2goKSBpbmRpY2F0ZXMgd2Ugd2lsbCBub3QgcmVjZWl2ZSBhbnkgbW9yZSBkYXRhLiBJZiB3ZSBh
cmUgd2FpdGluZyBvbgogICAgIC8vIGFuIGV4dGVybmFsIHNjcmlwdCB0byBsb2FkLCB3ZSBjYW4n
dCBmaW5pc2ggcGFyc2luZyBxdWl0ZSB5ZXQuCiAKLSAgICBpZiAoaW5Xcml0ZSgpIHx8IGlzV2Fp
dGluZ0ZvclNjcmlwdHMoKSB8fCBleGVjdXRpbmdTY3JpcHQoKSB8fCBtX2NvbnRpbnVlTmV4dENo
dW5rVGltZXIuaXNBY3RpdmUoKSkgeworICAgIGlmIChpbldyaXRlKCkgfHwgaXNXYWl0aW5nRm9y
U2NyaXB0cygpIHx8IGV4ZWN1dGluZ1NjcmlwdCgpIHx8IGlzU2NoZWR1bGVkRm9yUmVzdW1lKCkp
IHsKICAgICAgICAgbV9lbmRXYXNEZWxheWVkID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTMyMSw3ICsyNTAsNyBAQCB2b2lkIEhUTUw1RG9jdW1lbnRQYXJzZXI6OmVuZElmRGVs
YXllZCgpCiB7CiAgICAgLy8gV2UgZG9uJ3QgY2hlY2sgaW5Xcml0ZSgpIGhlcmUgc2luY2UgaW5X
cml0ZSgpIHdpbGwgYmUgdHJ1ZSBpZiB0aGlzIHdhcwogICAgIC8vIGNhbGxlZCBmcm9tIHdyaXRl
KCkuCi0gICAgaWYgKCFtX2VuZFdhc0RlbGF5ZWQgfHwgaXNXYWl0aW5nRm9yU2NyaXB0cygpIHx8
IGV4ZWN1dGluZ1NjcmlwdCgpIHx8IG1fY29udGludWVOZXh0Q2h1bmtUaW1lci5pc0FjdGl2ZSgp
KQorICAgIGlmICghbV9lbmRXYXNEZWxheWVkIHx8IGlzV2FpdGluZ0ZvclNjcmlwdHMoKSB8fCBl
eGVjdXRpbmdTY3JpcHQoKSB8fCBpc1NjaGVkdWxlZEZvclJlc3VtZSgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2VuZFdhc0RlbGF5ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvSFRNTDVEb2N1bWVudFBh
cnNlci5oCmluZGV4IDE2YjQyNWU5MThkY2Y0OTRkZjA3MTljODNkMzU5MzczZDY1NDVhNGIuLmQ2
OGU1YWViYzVkNmEwNzQyNjliMjE2MmIwNDUwZmZiZmExZjQyOGQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MNURvY3VtZW50UGFyc2VyLmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1RG9j
dW1lbnRQYXJzZXIuaApAQCAtMzgsNiArMzgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBIVE1MRG9jdW1lbnQ7CitjbGFzcyBIVE1MUGFyc2VyU2NoZWR1bGVyOwogY2xhc3MgTGVn
YWN5SFRNTFRyZWVDb25zdHJ1Y3RvcjsKIGNsYXNzIEhUTUw1TGV4ZXI7CiBjbGFzcyBIVE1MNVNj
cmlwdFJ1bm5lcjsKQEAgLTc3LDEzICs3OCwxNCBAQCBwdWJsaWM6CiAgICAgLy8gQ2FjaGVkUmVz
b3VyY2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3Vy
Y2UqKTsKIAorICAgIC8vIEV4cG9zZWQgZm9yIEhUTUxQYXJzZXJTY2hlZHVsZXIKKyAgICBIVE1M
RG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQorICAgIHZv
aWQgcmVzdW1lUGFyc2luZygpOworCiBwcml2YXRlOgogICAgIHZvaWQgd2lsbFB1bXBMZXhlcigp
OwogICAgIHZvaWQgZGlkUHVtcExleGVyKCk7CiAKLSAgICBzdHJ1Y3QgUHVtcFNlc3Npb247Ci0g
ICAgaW5saW5lIGJvb2wgc2hvdWxkQ29udGludWVQYXJzaW5nKFB1bXBTZXNzaW9uJik7Ci0KICAg
ICBlbnVtIFN5bmNocm9ub3VzTW9kZSB7CiAgICAgICAgIEFsbG93WWllbGQsCiAgICAgICAgIEZv
cmNlU3luY2hyb25vdXMsCkBAIC05Myw2ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb250
aW51ZU5leHRDaHVua1RpbWVyRmlyZWQoVGltZXI8SFRNTDVEb2N1bWVudFBhcnNlcj4qKTsKICAg
ICB2b2lkIHJlc3VtZVBhcnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbigpOwogCisgICAgYm9vbCBp
c1NjaGVkdWxlZEZvclJlc3VtZSgpIGNvbnN0OworCiAgICAgdm9pZCBhdHRlbXB0VG9FbmQoKTsK
ICAgICB2b2lkIGVuZElmRGVsYXllZCgpOwogICAgIGJvb2wgaW5Xcml0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fd3JpdGVOZXN0aW5nTGV2ZWwgPiAwOyB9CkBAIC0xMDksMTUgKzExMywxMCBAQCBwcml2
YXRlOgogICAgIE93blB0cjxIVE1MNVNjcmlwdFJ1bm5lcj4gbV9zY3JpcHRSdW5uZXI7CiAgICAg
T3duUHRyPEhUTUw1VHJlZUJ1aWxkZXI+IG1fdHJlZUNvbnN0cnVjdG9yOwogICAgIE93blB0cjxI
VE1MNVByZWxvYWRTY2FubmVyPiBtX3ByZWxvYWRTY2FubmVyOworICAgIE93blB0cjxIVE1MUGFy
c2VyU2NoZWR1bGVyPiBtX3BhcnNlclNjaGVkdWxlcjsKIAogICAgIGJvb2wgbV9lbmRXYXNEZWxh
eWVkOwogICAgIGludCBtX3dyaXRlTmVzdGluZ0xldmVsOwotCi0gICAgLy8gVXNlZCBmb3IgeWll
bGRpbmcgdGhlIHBhcnNlciB0byBtYWtlIFdlYktpdCBhcHBsaWNhdGlvbnMgbW9yZSByZXNwb25z
aXZlLgotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBhIHNlcGFyYXRlIGNsYXNzLCB1c2VkIGJ5
IEhUTUw1RG9jdW1lbnRQYXJzZXIuCi0gICAgZG91YmxlIG1fcGFyc2VyVGltZUxpbWl0OwotICAg
IGludCBtX3BhcnNlckNodW5rU2l6ZTsKLSAgICBUaW1lcjxIVE1MNURvY3VtZW50UGFyc2VyPiBt
X2NvbnRpbnVlTmV4dENodW5rVGltZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlclNjaGVk
dWxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI1Mzg3YzNmODYyNWQxYWY5YTY3MzdmMmE2YzRiNzVlMWZk
MjVmMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2VyU2NoZWR1bGVy
LmNwcApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlclNj
aGVkdWxlci5oIgorCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiIC8vIE9ubHkgZm9yIGlzTGF5b3V0
VGltZXJBY3RpdmUKKyNpbmNsdWRlICJIVE1MNURvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCisKKy8vIGRlZmF1bHRQYXJzZXJDaHVua1NpemUgaXMgdXNlZCB0byBk
ZWZpbmUgaG93IG1hbnkgdG9rZW5zIHRoZSBwYXJzZXIgd2lsbAorLy8gcHJvY2VzcyBiZWZvcmUg
Y2hlY2tpbmcgYWdhaW5zdCBwYXJzZXJUaW1lTGltaXQgYW5kIHBvc3NpYmx5IHlpZWxkaW5nLgor
Ly8gVGhpcyBpcyBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiB0byBwcmV2ZW50IGNoZWNraW5n
IGFmdGVyIGV2ZXJ5IHRva2VuLgorc3RhdGljIGNvbnN0IGludCBkZWZhdWx0UGFyc2VyQ2h1bmtT
aXplID0gNDA5NjsKKworLy8gZGVmYXVsdFBhcnNlclRpbWVMaW1pdCBpcyB0aGUgc2Vjb25kcyB0
aGUgcGFyc2VyIHdpbGwgcnVuIGluIG9uZSB3cml0ZSgpIGNhbGwKKy8vIGJlZm9yZSB5aWVsZGlu
Zy4gIElubGluZSA8c2NyaXB0PiBleGVjdXRpb24gY2FuIGNhdXNlIGl0IHRvIGV4Y2VkZSB0aGUg
bGltaXQuCisvLyBGSVhNRTogV2Ugd291bGQgbGlrZSB0aGlzIHZhbHVlIHRvIGJlIDAuMi4KK3N0
YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdFBhcnNlclRpbWVMaW1pdCA9IDAuNTAwOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBkb3VibGUgcGFyc2VyVGltZUxpbWl0KFBhZ2UqIHBh
Z2UpCit7CisgICAgLy8gV2UncmUgdXNpbmcgdGhlIHBvb3JseSBuYW1lZCBjdXN0b21IVE1MVG9r
ZW5pemVyVGltZURlbGF5IHNldHRpbmcuCisgICAgaWYgKHBhZ2UgJiYgcGFnZS0+aGFzQ3VzdG9t
SFRNTFRva2VuaXplclRpbWVEZWxheSgpKQorICAgICAgICByZXR1cm4gcGFnZS0+Y3VzdG9tSFRN
TFRva2VuaXplclRpbWVEZWxheSgpOworICAgIHJldHVybiBkZWZhdWx0UGFyc2VyVGltZUxpbWl0
OworfQorCitzdGF0aWMgaW50IHBhcnNlckNodW5rU2l6ZShQYWdlKiBwYWdlKQoreworICAgIC8v
IEZJWE1FOiBXZSBtYXkgbmVlZCB0byBkaXZpZGUgdGhlIHZhbHVlIGZyb20gY3VzdG9tSFRNTFRv
a2VuaXplckNodW5rU2l6ZQorICAgIC8vIGJ5IHNvbWUgY29uc3RhbnQgdG8gdHJhbnNsYXRlIGZy
b20gdGhlICJjaGFyYWN0ZXIiIGJhc2VkIGJlaGF2aW9yIG9mIHRoZQorICAgIC8vIG9sZCBIVE1M
RG9jdW1lbnRQYXJzZXIgdG8gdGhlIHRva2VuLWJhc2VkIGJlaGF2aW9yIG9mIHRoaXMgcGFyc2Vy
LgorICAgIGlmIChwYWdlICYmIHBhZ2UtPmhhc0N1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUo
KSkKKyAgICAgICAgcmV0dXJuIHBhZ2UtPmN1c3RvbUhUTUxUb2tlbml6ZXJDaHVua1NpemUoKTsK
KyAgICByZXR1cm4gZGVmYXVsdFBhcnNlckNodW5rU2l6ZTsKK30KKworSFRNTFBhcnNlclNjaGVk
dWxlcjo6SFRNTFBhcnNlclNjaGVkdWxlcihIVE1MNURvY3VtZW50UGFyc2VyKiBwYXJzZXIpCisg
ICAgOiBtX3BhcnNlcihwYXJzZXIpCisgICAgLCBtX3BhcnNlclRpbWVMaW1pdChwYXJzZXJUaW1l
TGltaXQobV9wYXJzZXItPmRvY3VtZW50KCktPnBhZ2UoKSkpCisgICAgLCBtX3BhcnNlckNodW5r
U2l6ZShwYXJzZXJDaHVua1NpemUobV9wYXJzZXItPmRvY3VtZW50KCktPnBhZ2UoKSkpCisgICAg
LCBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIodGhpcywgJkhUTUxQYXJzZXJTY2hlZHVsZXI6OmNv
bnRpbnVlTmV4dENodW5rVGltZXJGaXJlZCkKK3sKKyAgICAKK30KKworSFRNTFBhcnNlclNjaGVk
dWxlcjo6fkhUTUxQYXJzZXJTY2hlZHVsZXIoKQoreworICAgIG1fY29udGludWVOZXh0Q2h1bmtU
aW1lci5zdG9wKCk7Cit9CisKKy8vIEZJWE1FOiBUaGlzIGJlbG9uZ3Mgb24gRG9jdW1lbnQuCitz
dGF0aWMgYm9vbCBpc0xheW91dFRpbWVyQWN0aXZlKERvY3VtZW50KiBkb2MpCit7CisgICAgQVNT
RVJUKGRvYyk7CisgICAgcmV0dXJuIGRvYy0+dmlldygpICYmIGRvYy0+dmlldygpLT5sYXlvdXRQ
ZW5kaW5nKCkgJiYgIWRvYy0+bWluaW11bUxheW91dERlbGF5KCk7Cit9CisKK3ZvaWQgSFRNTFBh
cnNlclNjaGVkdWxlcjo6Y29udGludWVOZXh0Q2h1bmtUaW1lckZpcmVkKFRpbWVyPEhUTUxQYXJz
ZXJTY2hlZHVsZXI+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9
PSAmbV9jb250aW51ZU5leHRDaHVua1RpbWVyKTsKKyAgICAvLyBGSVhNRTogVGhlIHRpbWVyIGNs
YXNzIHNob3VsZCBoYW5kbGUgdGltZXIgcHJpb3JpdGllcyBpbnN0ZWFkIG9mIHRoaXMgY29kZS4K
KyAgICAvLyBJZiBhIGxheW91dCBpcyBzY2hlZHVsZWQsIHdhaXQgYWdhaW4gdG8gbGV0IHRoZSBs
YXlvdXQgdGltZXIgcnVuIGZpcnN0LgorICAgIGlmIChpc0xheW91dFRpbWVyQWN0aXZlKG1fcGFy
c2VyLT5kb2N1bWVudCgpKSkgeworICAgICAgICBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuc3Rh
cnRPbmVTaG90KDApOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fcGFyc2VyLT5yZXN1
bWVQYXJzaW5nKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MUGFyc2Vy
U2NoZWR1bGVyLmggYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZiMWU4ZjEzMzcxMjZkY2Y2NzhlMzhmYWQ1ZDUwMTc5YzZkNjFiMDAKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFBhcnNlclNjaGVkdWxlci5oCkBAIC0wLDAgKzEsODQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgSFRNTFBhcnNlclNjaGVkdWxlcl9oCisjZGVmaW5lIEhUTUxQYXJzZXJTY2hlZHVsZXJfaAor
CisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBI
VE1MNURvY3VtZW50UGFyc2VyOworCitjbGFzcyBIVE1MUGFyc2VyU2NoZWR1bGVyIDogIHB1Ymxp
YyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgSFRNTFBhcnNlclNjaGVkdWxlcihIVE1MNURv
Y3VtZW50UGFyc2VyKik7CisgICAgfkhUTUxQYXJzZXJTY2hlZHVsZXIoKTsKKworICAgIHN0cnVj
dCBQdW1wU2Vzc2lvbiB7CisgICAgICAgIFB1bXBTZXNzaW9uKCkKKyAgICAgICAgICAgIDogcHJv
Y2Vzc2VkVG9rZW5zKDApCisgICAgICAgICAgICAsIHN0YXJ0VGltZShjdXJyZW50VGltZSgpKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcHJvY2Vzc2VkVG9rZW5zOworICAg
ICAgICBkb3VibGUgc3RhcnRUaW1lOworICAgIH07CisKKyAgICAvLyBJbmxpbmUgYXMgdGhpcyBp
cyBjYWxsZWQgYWZ0ZXIgZXZlcnkgdG9rZW4gaW4gdGhlIHBhcnNlci4KKyAgICBib29sIHNob3Vs
ZENvbnRpbnVlUGFyc2luZyhQdW1wU2Vzc2lvbiYgc2Vzc2lvbikKKyAgICB7CisgICAgICAgIGlm
IChzZXNzaW9uLnByb2Nlc3NlZFRva2VucyA+IG1fcGFyc2VyQ2h1bmtTaXplKSB7CisgICAgICAg
ICAgICBzZXNzaW9uLnByb2Nlc3NlZFRva2VucyA9IDA7CisgICAgICAgICAgICBkb3VibGUgZWxh
cHNlZFRpbWUgPSBjdXJyZW50VGltZSgpIC0gc2Vzc2lvbi5zdGFydFRpbWU7CisgICAgICAgICAg
ICBpZiAoZWxhcHNlZFRpbWUgPiBtX3BhcnNlclRpbWVMaW1pdCkgeworICAgICAgICAgICAgICAg
IC8vIFNjaGVkdWxlIHRoZSBwYXJzZXIgdG8gY29udGludWUgYW5kIHlpZWxkIGZyb20gdGhlIHBh
cnNlci4KKyAgICAgICAgICAgICAgICBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuc3RhcnRPbmVT
aG90KDApOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgICsrc2Vzc2lvbi5wcm9jZXNzZWRUb2tlbnM7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgaXNTY2hlZHVsZWRGb3JSZXN1bWUoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRpbnVlTmV4dENodW5rVGltZXIuaXNBY3RpdmUoKTsgfQorCitwcml2
YXRlOgorICAgIHZvaWQgY29udGludWVOZXh0Q2h1bmtUaW1lckZpcmVkKFRpbWVyPEhUTUxQYXJz
ZXJTY2hlZHVsZXI+Kik7CisKKyAgICBIVE1MNURvY3VtZW50UGFyc2VyKiBtX3BhcnNlcjsKKwor
ICAgIGRvdWJsZSBtX3BhcnNlclRpbWVMaW1pdDsKKyAgICBpbnQgbV9wYXJzZXJDaHVua1NpemU7
CisgICAgVGltZXI8SFRNTFBhcnNlclNjaGVkdWxlcj4gbV9jb250aW51ZU5leHRDaHVua1RpbWVy
OworfTsKKworfQorCisjZW5kaWYK
</data>
<flag name="review"
          id="46278"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>