<?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>163410</bug_id>
          
          <creation_ts>2016-10-13 15:30:34 -0700</creation_ts>
          <short_desc>Delete the animated image catchup code</short_desc>
          <delta_ts>2016-10-15 17:22:05 -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>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155322</blocked>
    
    <blocked>161566</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1239983</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-10-13 15:30:34 -0700</bug_when>
    <thetext>If drawing an image frame took more its duration, we need to fire the timer for the next frame immediately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239985</commentid>
    <comment_count>1</comment_count>
      <attachid>291527</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-10-13 15:31:27 -0700</bug_when>
    <thetext>Created attachment 291527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239989</commentid>
    <comment_count>2</comment_count>
      <attachid>291529</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-10-13 15:36:33 -0700</bug_when>
    <thetext>Created attachment 291529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240068</commentid>
    <comment_count>3</comment_count>
      <attachid>291529</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-10-13 18:25:10 -0700</bug_when>
    <thetext>Comment on attachment 291529
Patch

I am working on a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240545</commentid>
    <comment_count>4</comment_count>
      <attachid>291700</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-10-14 19:23:34 -0700</bug_when>
    <thetext>Created attachment 291700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240565</commentid>
    <comment_count>5</comment_count>
      <attachid>291700</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-14 22:58:15 -0700</bug_when>
    <thetext>Comment on attachment 291700
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Test: fast/images/ordered-animated-image-frames.html

Move this line down below the description of the changes (to line 32-ish).

&gt; Source/WebCore/ChangeLog:18
&gt; +            passed the next_frame_desired_time. In this case we should fire the timer

passed -&gt; past

&gt; Source/WebCore/ChangeLog:31
&gt; +            (k - 1) decoded.

You can also justify this removal by the fact that it was never used on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240625</commentid>
    <comment_count>6</comment_count>
      <attachid>291724</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-10-15 13:46:06 -0700</bug_when>
    <thetext>Created attachment 291724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240679</commentid>
    <comment_count>7</comment_count>
      <attachid>291724</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-15 17:22:01 -0700</bug_when>
    <thetext>Comment on attachment 291724
Patch

Clearing flags on attachment: 291724

Committed r207386: &lt;http://trac.webkit.org/changeset/207386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240680</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-15 17:22:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291527</attachid>
            <date>2016-10-13 15:31:27 -0700</date>
            <delta_ts>2016-10-13 15:36:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163410-20161013152801.patch</filename>
            <type>text/plain</type>
            <size>17119</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Mjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlMTJkZTE2YWI0MWQw
ZjM5Y2I3ZTlhYzRjMjhjNDk0OTFjZTEyNC4uN2MzZGRmOTQ1YjRmZTdhYmYyOGZmZGNlYjAyYzlm
NzllMzViZjM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE2LTEwLTEzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRGVsZXRl
IHRoZSBhbmltYXRlZCBpbWFnZSBjYXRjaHVwIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGFuaW1hdGUgYW4gaW1hZ2UsIEJpdG1hcEltYWdl
OjpkcmF3KCkgc2V0cyBhIHRpbWVyIGJlZm9yZSBpdCBzdGFydHMgZHJhd2luZworICAgICAgICBX
aGVuIHRoaXMgdGltZXIgZmlyZXMsIHRoZSBjdXJyZW50X2ZyYW1lIGlzIGluY3JlbWVudGVkIGFu
ZCB0aGUgaW1hZ2UgaXMKKyAgICAgICAgaW52YWxpZGF0ZWQuIElkZWFsbHkgdGhlIHRpbWVyIHNo
b3VsZCBmaXJlIGFmdGVyIHRoZSBjdXJyZW50X2ZyYW1lX2R1cmF0aW9uLgorICAgICAgICBCdXQg
YmVjYXVzZSBkcmF3aW5nIHRoZSBpbWFnZSBoYXBwZW5zIG9uIGEgZGlmZmVyZW50IHRocmVhZCBh
bmQgYmVjYXVzZQorICAgICAgICBkZWNvZGluZyB0aGUgaW1hZ2UgZnJhbWUgbWlnaHQgYmUgc2xv
dywgdGhlIGVsYXBzZWQgdGltZSBiZXR3ZWVuIHRoZSB0aW1lCisgICAgICAgIHdoZW4gdGhlIHRp
bWVyIGZpcmVzIGFuZCB3aGVuIEJpdG1hcEltYWdlOjpkcmF3KCkgZ2V0cyBjYWxsZWQgbWlnaHQg
YmUgbGFyZ2VyCisgICAgICAgIHRoYW4gdGhlIGN1cnJlbnRfZnJhbWVfZHVyYXRpb24uIEJpdG1h
cEltYWdlOjpzdGFydEFuaW1hdGlvbigpIGhhcyBjb2RlIHRvIGRvCisgICAgICAgIGNhdGNodXAg
dGhlIGN1cnJlbnQgZnJhbWUgd2l0aCB0aGUgY3VycmVudCB0aW1lLiBCdXQgdGhlIGNvZGUgaXMg
dW5uZWNlc3NhcnkKKyAgICAgICAgYmVjYXVzZSBkZWNvZGluZyBhbiBvdXQgb2Ygb3JkZXIgZnJh
bWUgbWlnaHQgYmUgdmVyeSBjb3N0bHkuIEJlc2lkZXMgdGhlCisgICAgICAgIGxvZ2ljIG9mIHRo
aXMgZnVuY3Rpb24gZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNlIG9mIHNsb3cgYW5pbWF0aW9uIGNv
cnJlY3RseS4KKyAgICAgICAgT24gaU9TLCB0aGUgdGltZXIgYWx3YXlzIGZpcmVzIGFmdGVyIGN1
cnJlbnRfZnJhbWVfZHVyYXRpb24gcmVnYXJkbGVzcworICAgICAgICB3aGV0aGVyIHRoZSBjdXJy
ZW50X3RpbWUgYWxyZWFkeSBwYXNzZWQgdGhlIGRlc2lyZWRfbmV4dF9mcmFtZV90aW1lIG9yIG5v
dC4KKworICAgICAgICBTZXR0aW5nIHRoZSBhbmltYXRpb24gdGltZXIgc2hvdWxkIGZvbGxvdyB0
aGUgZm9sbG93aW5nIHJ1bGVzOgorICAgICAgICAKKyAgICAgICAgMSkgSW5pdGlhbCBzdGF0ZTog
V2hpY2ggaGFwcGVucyBiZWZvcmUgZHJhd2luZyB0aGUgZmlyc3QgZnJhbWUuIFdlIHNob3VsZAor
ICAgICAgICBzZXQgdGhlIHRpbWVyIHRvIGZpcmUgYWZ0ZXIgdGhlIGN1cnJlbnRfZnJhbWVfZHVy
YXRpb24uCisgICAgICAgIAorICAgICAgICAyKSBMYXRlIHN0YXRlIChTbG93IGFuaW1hdGlvbik6
IFRoaXMgaGFwcGVucyBpZiB0aGUgdGltZSBpcyBhbHJlYWR5IHBhc3NlZAorICAgICAgICB0aGUg
ZGVzaXJlZF9uZXh0X2ZyYW1lX3RpbWUuIEluIHRoaXMgY2FzZSB3ZSBzaG91bGQgZmlyZSB0aGUg
dGltZXIgaW1tZWRpYXRlbHkuCisgICAgICAgIAorICAgICAgICAzKSBFYXJseSBjYXNlIChGYXN0
IGFuaW1hdGlvbik6IFRoaXMgaGFwcGVucyB3aGVuIHRoZXJlIGlzIHN0aWxsIHRpbWUgYmVmb3Jl
CisgICAgICAgIHRoZSBkZXNpcmVkX25leHRfZnJhbWVfdGltZS4gSW4gdGhpcyBjYXNlIHdlIHNo
b3VsZCBzZXQgdGhlIHRpbWUgdG8gZmlyZQorICAgICAgICBhZnRlciB0aGUgZGlmZmVyZW5jZSBi
ZXR3ZWVuIHRoZSBkZXNpcmVkX25leHRfZnJhbWVfdGltZSBhbmQgdGhlIGN1cnJlbnRfdGltZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KTogUmVtb3ZlIHRoZSBpT1Mgc3BlY2lmaWMgY29k
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpzdGFydEFuaW1hdGlvbik6IE1vdmUg
dGhlIGFuaW1hdGlvbiBmaW5pc2hpbmcgY29kZSBmcm9tIAorICAgICAgICBCaXRtYXBJbWFnZTo6
aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKCkgdG8gdGhpcyBmdW5jdGlvbi4gU2ltcGxpZnkgdGhl
IHRpbWVyCisgICAgICAgIGR1cmF0aW9uIGNvZGUgYXMgaXQgaXMgZGVzY3JpYmVkIGFib3ZlLgor
CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6YWR2YW5jZUFuaW1hdGlvbik6IE1lcmdl
IEJpdG1hcEltYWdlOjppbnRlcm5hbEFkdmFuY2VBbmltYXRpb24oKQorICAgICAgICBpbnRvIHRo
aXMgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjppbnRlcm5hbEFk
dmFuY2VBbmltYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhd1RpbGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OnN0YXJ0QW5pbWF0aW9u
KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHSW1hZ2U6OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuaDoKKyAgICAgICAgUmVtb3ZlIHRoZSBjYXRjaHVwIGNvZGUgZm9ybSB0aGUgSW1hZ2Ug
YW5kIFNWR0ltYWdlIGNsYXNzZXMuCisKIDIwMTYtMTAtMTMgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBNZWRpYUNv
bnRyb2xzIGJhc2UgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmNwcAppbmRleCAwYzE4OWM2NDljNTQ3MjI3MjE2M2M2ODhiN2U2MDA1OGE5
YjAxMjNiLi5hZDI5YmE3MmZjYWRlMzdhZWZhNGEzMDc0MjYzZWRkODQ3MTFjZDQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0x
NDUsMTEgKzE0NSw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zCiAgICAgc2V0UmVuZGVyVGFy
Z2V0KGNvbnRleHQpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0gICAgc3RhcnRBbmlt
YXRpb24oRG9Ob3RDYXRjaFVwKTsKLSNlbHNlCiAgICAgc3RhcnRBbmltYXRpb24oKTsKLSNlbmRp
ZgogCiAgICAgQ29sb3IgY29sb3IgPSBzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsKICAgICBpZiAo
Y29sb3IuaXNWYWxpZCgpKSB7CkBAIC0yMzEsMTQ4ICsyMjcsNjEgQEAgdm9pZCBCaXRtYXBJbWFn
ZTo6c3RhcnRUaW1lcihkb3VibGUgZGVsYXkpCiAgICAgbV9mcmFtZVRpbWVyLT5zdGFydE9uZVNo
b3QoZGVsYXkpOwogfQogCi12b2lkIEJpdG1hcEltYWdlOjpzdGFydEFuaW1hdGlvbihDYXRjaFVw
QW5pbWF0aW9uIGNhdGNoVXBJZk5lY2Vzc2FyeSkKK3ZvaWQgQml0bWFwSW1hZ2U6OnN0YXJ0QW5p
bWF0aW9uKCkKIHsKICAgICBpZiAobV9mcmFtZVRpbWVyIHx8ICFzaG91bGRBbmltYXRlKCkgfHwg
ZnJhbWVDb3VudCgpIDw9IDEpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIElmIHdlIGFyZW4n
dCBhbHJlYWR5IGFuaW1hdGluZywgc2V0IG5vdyBhcyB0aGUgYW5pbWF0aW9uIHN0YXJ0IHRpbWUu
Ci0gICAgY29uc3QgZG91YmxlIHRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
LSAgICBpZiAoIW1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lKQotICAgICAgICBtX2Rlc2lyZWRGcmFt
ZVN0YXJ0VGltZSA9IHRpbWU7CisgICAgaWYgKG1fY3VycmVudEZyYW1lID49IGZyYW1lQ291bnQo
KSAtIDEpIHsKKyAgICAgICAgLy8gRG9uJ3QgYWR2YW5jZSBwYXN0IHRoZSBsYXN0IGZyYW1lIGlm
IHdlIGhhdmVuJ3QgZGVjb2RlZCB0aGUgd2hvbGUgaW1hZ2UKKyAgICAgICAgLy8geWV0IGFuZCBv
dXIgcmVwZXRpdGlvbiBjb3VudCBpcyBwb3RlbnRpYWxseSB1bnNldC4gVGhlIHJlcGV0aXRpb24g
Y291bnQKKyAgICAgICAgLy8gaW4gYSBHSUYgY2FuIHBvdGVudGlhbGx5IGNvbWUgYWZ0ZXIgYWxs
IHRoZSByZXN0IG9mIHRoZSBpbWFnZSBkYXRhLCBzbworICAgICAgICAvLyB3YWl0IG9uIGl0Lgor
ICAgICAgICBpZiAoIW1fc291cmNlLmlzQWxsRGF0YVJlY2VpdmVkKCkgJiYgcmVwZXRpdGlvbkNv
dW50KCkgPT0gUmVwZXRpdGlvbkNvdW50T25jZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICArK21fcmVwZXRpdGlvbnNDb21wbGV0ZTsKKworICAgICAgICAvLyBDaGVjayBmb3IgdGhl
IGVuZCBvZiBhbmltYXRpb24uCisgICAgICAgIGlmIChyZXBldGl0aW9uQ291bnQoKSAhPSBSZXBl
dGl0aW9uQ291bnRJbmZpbml0ZSAmJiBtX3JlcGV0aXRpb25zQ29tcGxldGUgPiByZXBldGl0aW9u
Q291bnQoKSkgeworICAgICAgICAgICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPSAwOworICAg
ICAgICAgICAgbV9hbmltYXRpb25GaW5pc2hlZCA9IHRydWU7CisgICAgICAgICAgICBkZXN0cm95
RGVjb2RlZERhdGFJZk5lY2Vzc2FyeShmYWxzZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeSh0cnVlKTsKKyAg
ICB9CiAKICAgICAvLyBEb24ndCBhZHZhbmNlIHRoZSBhbmltYXRpb24gdG8gYW4gaW5jb21wbGV0
ZSBmcmFtZS4KICAgICBzaXplX3QgbmV4dEZyYW1lID0gKG1fY3VycmVudEZyYW1lICsgMSkgJSBm
cmFtZUNvdW50KCk7CiAgICAgaWYgKCFtX3NvdXJjZS5pc0FsbERhdGFSZWNlaXZlZCgpICYmICFm
cmFtZUlzQ29tcGxldGVBdEluZGV4KG5leHRGcmFtZSkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IC8vIERvbid0IGFkdmFuY2UgcGFzdCB0aGUgbGFzdCBmcmFtZSBpZiB3ZSBoYXZlbid0IGRlY29k
ZWQgdGhlIHdob2xlIGltYWdlCi0gICAgLy8geWV0IGFuZCBvdXIgcmVwZXRpdGlvbiBjb3VudCBp
cyBwb3RlbnRpYWxseSB1bnNldC4gVGhlIHJlcGV0aXRpb24gY291bnQKLSAgICAvLyBpbiBhIEdJ
RiBjYW4gcG90ZW50aWFsbHkgY29tZSBhZnRlciBhbGwgdGhlIHJlc3Qgb2YgdGhlIGltYWdlIGRh
dGEsIHNvCi0gICAgLy8gd2FpdCBvbiBpdC4KLSAgICBpZiAoIW1fc291cmNlLmlzQWxsRGF0YVJl
Y2VpdmVkKCkgJiYgcmVwZXRpdGlvbkNvdW50KCkgPT0gUmVwZXRpdGlvbkNvdW50T25jZSAmJiBt
X2N1cnJlbnRGcmFtZSA+PSAoZnJhbWVDb3VudCgpIC0gMSkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIC8vIERldGVybWluZSB0aW1lIGZvciBuZXh0IGZyYW1lIHRvIHN0YXJ0LiBCeSBpZ25vcmlu
ZyBwYWludCBhbmQgdGltZXIgbGFnCi0gICAgLy8gaW4gdGhpcyBjYWxjdWxhdGlvbiwgd2UgbWFr
ZSB0aGUgYW5pbWF0aW9uIGFwcGVhciB0byBydW4gYXQgaXRzIGRlc2lyZWQKLSAgICAvLyByYXRl
IHJlZ2FyZGxlc3Mgb2YgaG93IGZhc3QgaXQncyBiZWluZyByZXBhaW50ZWQuCi0gICAgY29uc3Qg
ZG91YmxlIGN1cnJlbnREdXJhdGlvbiA9IGZyYW1lRHVyYXRpb25BdEluZGV4KG1fY3VycmVudEZy
YW1lKTsKLSAgICBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSArPSBjdXJyZW50RHVyYXRpb247Ci0K
LSNpZiAhUExBVEZPUk0oSU9TKQotICAgIC8vIFdoZW4gYW4gYW5pbWF0ZWQgaW1hZ2UgaXMgbW9y
ZSB0aGFuIGZpdmUgbWludXRlcyBvdXQgb2YgZGF0ZSwgdGhlCi0gICAgLy8gdXNlciBwcm9iYWJs
eSBkb2Vzbid0IGNhcmUgYWJvdXQgcmVzeW5jaW5nIGFuZCB3ZSBjb3VsZCBidXJuIGEgbG90IG9m
Ci0gICAgLy8gdGltZSBsb29waW5nIHRocm91Z2ggZnJhbWVzIGJlbG93LiBKdXN0IHJlc2V0IHRo
ZSB0aW1pbmdzLgotICAgIGNvbnN0IGRvdWJsZSBjQW5pbWF0aW9uUmVzeW5jQ3V0b2ZmID0gNSAq
IDYwOwotICAgIGlmICgodGltZSAtIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lKSA+IGNBbmltYXRp
b25SZXN5bmNDdXRvZmYpCi0gICAgICAgIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lID0gdGltZSAr
IGN1cnJlbnREdXJhdGlvbjsKLSNlbHNlCi0gICAgLy8gTWFpbnRhaW5pbmcgZnJhbWUtdG8tZnJh
bWUgZGVsYXlzIGlzIG1vcmUgaW1wb3J0YW50IHRoYW4KLSAgICAvLyBtYWludGFpbmluZyBhYnNv
bHV0ZSBhbmltYXRpb24gdGltaW5nLCBzbyByZXNldCB0aGUgdGltaW5ncyBlYWNoIGZyYW1lLgot
ICAgIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lID0gdGltZSArIGN1cnJlbnREdXJhdGlvbjsKLSNl
bmRpZgorICAgIGRvdWJsZSB0aW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Cisg
ICAgZmxvYXQgY3VycmVudEZyYW1lRHVyYXRpb24gPSBmcmFtZUR1cmF0aW9uQXRJbmRleChtX2N1
cnJlbnRGcmFtZSk7CiAKLSAgICAvLyBUaGUgaW1hZ2UgbWF5IGxvYWQgbW9yZSBzbG93bHkgdGhh
biBpdCdzIHN1cHBvc2VkIHRvIGFuaW1hdGUsIHNvIHRoYXQgYnkKLSAgICAvLyB0aGUgdGltZSB3
ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSBmaXJzdCByZXBldGl0aW9uLCB3ZSdyZSB3ZWxsIGJlaGlu
ZC4KLSAgICAvLyBDbGFtcCB0aGUgZGVzaXJlZCBmcmFtZSBzdGFydCB0aW1lIGluIHRoaXMgY2Fz
ZSwgc28gdGhhdCB3ZSBkb24ndCBza2lwCi0gICAgLy8gZnJhbWVzIChvciB3aG9sZSBpdGVyYXRp
b25zKSB0cnlpbmcgdG8gImNhdGNoIHVwIi4gVGhpcyBpcyBhIHRyYWRlb2ZmOgotICAgIC8vIEl0
IGd1YXJhbnRlZXMgdXNlcnMgc2VlIHRoZSB3aG9sZSBhbmltYXRpb24gdGhlIHNlY29uZCB0aW1l
IHRocm91Z2ggYW5kCi0gICAgLy8gZG9uJ3QgbWlzcyBhbnkgcmVwZXRpdGlvbnMsIGFuZCBpcyBj
bG9zZXIgdG8gd2hhdCBvdGhlciBicm93c2VycyBkbzsgb24KLSAgICAvLyB0aGUgb3RoZXIgaGFu
ZCwgaXQgbWFrZXMgYW5pbWF0aW9ucyAibGVzcyBhY2N1cmF0ZSIgZm9yIHBhZ2VzIHRoYXQgdHJ5
IHRvCi0gICAgLy8gc3luYyBhbiBpbWFnZSBhbmQgc29tZSBvdGhlciByZXNvdXJjZSAoZS5nLiBh
dWRpbyksIGVzcGVjaWFsbHkgaWYgdXNlcnMKLSAgICAvLyBzd2l0Y2ggdGFicyAoYW5kIHRodXMg
c3RvcCBkcmF3aW5nIHRoZSBhbmltYXRpb24sIHdoaWNoIHdpbGwgcGF1c2UgaXQpCi0gICAgLy8g
ZHVyaW5nIHRoYXQgaW5pdGlhbCBsb29wLCB0aGVuIHN3aXRjaCBiYWNrIGxhdGVyLgotICAgIGlm
IChuZXh0RnJhbWUgPT0gMCAmJiBtX3JlcGV0aXRpb25zQ29tcGxldGUgPT0gMCAmJiBtX2Rlc2ly
ZWRGcmFtZVN0YXJ0VGltZSA8IHRpbWUpCisgICAgaWYgKCFtX2Rlc2lyZWRGcmFtZVN0YXJ0VGlt
ZSkKKyAgICAgICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPSB0aW1lICsgY3VycmVudEZyYW1l
RHVyYXRpb247CisgICAgZWxzZSBpZiAodGltZSA+IG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lICsg
Y3VycmVudEZyYW1lRHVyYXRpb24pCiAgICAgICAgIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lID0g
dGltZTsKLQotICAgIGlmIChjYXRjaFVwSWZOZWNlc3NhcnkgPT0gRG9Ob3RDYXRjaFVwIHx8IHRp
bWUgPCBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSkgewotICAgICAgICAvLyBIYXZlbid0IHlldCBy
ZWFjaGVkIHRpbWUgZm9yIG5leHQgZnJhbWUgdG8gc3RhcnQ7IGRlbGF5IHVudGlsIHRoZW4uCi0g
ICAgICAgIHN0YXJ0VGltZXIoc3RkOjptYXg8ZG91YmxlPihtX2Rlc2lyZWRGcmFtZVN0YXJ0VGlt
ZSAtIHRpbWUsIDApKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBlbHNlCisgICAgICAg
IG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lICs9IGN1cnJlbnRGcmFtZUR1cmF0aW9uOwogCiAgICAg
QVNTRVJUKCFtX2ZyYW1lVGltZXIpOwotCi0gICAgLy8gV2UndmUgYWxyZWFkeSByZWFjaGVkIG9y
IHBhc3NlZCB0aGUgdGltZSBmb3IgdGhlIG5leHQgZnJhbWUgdG8gc3RhcnQuCi0gICAgLy8gU2Vl
IGlmIHdlJ3ZlIGFsc28gcGFzc2VkIHRoZSB0aW1lIGZvciBmcmFtZXMgYWZ0ZXIgdGhhdCB0byBz
dGFydCwgaW4KLSAgICAvLyBjYXNlIHdlIG5lZWQgdG8gc2tpcCBzb21lIGZyYW1lcyBlbnRpcmVs
eS4gUmVtZW1iZXIgbm90IHRvIGFkdmFuY2UKLSAgICAvLyB0byBhbiBpbmNvbXBsZXRlIGZyYW1l
LgotCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIHNpemVfdCBzdGFydENhdGNodXBGcmFtZUluZGV4
ID0gbmV4dEZyYW1lOwotI2VuZGlmCi0KLSAgICBmb3IgKHNpemVfdCBmcmFtZUFmdGVyTmV4dCA9
IChuZXh0RnJhbWUgKyAxKSAlIGZyYW1lQ291bnQoKTsgZnJhbWVJc0NvbXBsZXRlQXRJbmRleChm
cmFtZUFmdGVyTmV4dCk7IGZyYW1lQWZ0ZXJOZXh0ID0gKG5leHRGcmFtZSArIDEpICUgZnJhbWVD
b3VudCgpKSB7Ci0gICAgICAgIC8vIFNob3VsZCB3ZSBza2lwIHRoZSBuZXh0IGZyYW1lPwotICAg
ICAgICBkb3VibGUgZnJhbWVBZnRlck5leHRTdGFydFRpbWUgPSBtX2Rlc2lyZWRGcmFtZVN0YXJ0
VGltZSArIGZyYW1lRHVyYXRpb25BdEluZGV4KG5leHRGcmFtZSk7Ci0gICAgICAgIGlmICh0aW1l
IDwgZnJhbWVBZnRlck5leHRTdGFydFRpbWUpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAg
ICAvLyBZZXM7IHNraXAgb3ZlciBpdCB3aXRob3V0IG5vdGlmeWluZyBvdXIgb2JzZXJ2ZXJzLiBJ
ZiB3ZSBoaXQgdGhlIGVuZCB3aGlsZSBjYXRjaGluZyB1cCwKLSAgICAgICAgLy8gdGVsbCB0aGUg
b2JzZXJ2ZXIgYXN5bmNocm9ub3VzbHkuCi0gICAgICAgIGlmICghaW50ZXJuYWxBZHZhbmNlQW5p
bWF0aW9uKFNraXBwaW5nRnJhbWVzVG9DYXRjaFVwKSkgewotICAgICAgICAgICAgbV9hbmltYXRp
b25GaW5pc2hlZFdoZW5DYXRjaGluZ1VwID0gdHJ1ZTsKLSAgICAgICAgICAgIHN0YXJ0VGltZXIo
MCk7Ci0gICAgICAgICAgICBMT0coSW1hZ2VzLCAiQml0bWFwSW1hZ2UgJXAgc3RhcnRBbmltYXRp
b24gY2F0Y2hpbmcgdXAgZnJvbSBmcmFtZSAlbHUsIGVuZGVkIiwgdGhpcywgc3RhcnRDYXRjaHVw
RnJhbWVJbmRleCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbV9k
ZXNpcmVkRnJhbWVTdGFydFRpbWUgPSBmcmFtZUFmdGVyTmV4dFN0YXJ0VGltZTsKLSAgICAgICAg
bmV4dEZyYW1lID0gZnJhbWVBZnRlck5leHQ7Ci0gICAgfQotCi0gICAgTE9HKEltYWdlcywgIkJp
dG1hcEltYWdlICVwIHN0YXJ0QW5pbWF0aW9uIGNhdGNoaW5nIHVwIGp1bXBlZCBmcm9tIGZyb20g
ZnJhbWUgJWx1IHRvICVkIiwgdGhpcywgc3RhcnRDYXRjaHVwRnJhbWVJbmRleCwgKGludCluZXh0
RnJhbWUgLSAxKTsKLQotICAgIC8vIERyYXcgdGhlIG5leHQgZnJhbWUgYXMgc29vbiBhcyBwb3Nz
aWJsZS4gTm90ZSB0aGF0IG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lCi0gICAgLy8gbWF5IGJlIGlu
IHRoZSBwYXN0LCBtZWFuaW5nIHRoZSBuZXh0IHRpbWUgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uIHdl
J2xsCi0gICAgLy8ga2ljayBvZmYgdGhlIG5leHQgYWR2YW5jZW1lbnQgc29vbmVyIHRoYW4gdGhp
cyBmcmFtZSdzIGR1cmF0aW9uIHdvdWxkIHN1Z2dlc3QuCi0gICAgc3RhcnRUaW1lcigwKTsKKyAg
ICBBU1NFUlQobV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgLSB0aW1lID49IDApOworICAgIHN0YXJ0
VGltZXIobV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgLSB0aW1lKTsKIH0KIAogdm9pZCBCaXRtYXBJ
bWFnZTo6YWR2YW5jZUFuaW1hdGlvbigpCiB7Ci0gICAgaW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9u
KCk7Ci0gICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgaW1hZ2UgcmVnaW9uIGhhcyBiZWVuIG1hcmtl
ZCBkaXJ0eSwgYW5kIGlmIGl0J3MKLSAgICAvLyBvbnNjcmVlbiwgd2UnbGwgc29vbiBtYWtlIGEg
Y2FsbCB0byBkcmF3KCksIHdoaWNoIHdpbGwgY2FsbAotICAgIC8vIHN0YXJ0QW5pbWF0aW9uKCkg
YWdhaW4gdG8ga2VlcCB0aGUgYW5pbWF0aW9uIG1vdmluZy4KLX0KLQotYm9vbCBCaXRtYXBJbWFn
ZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKEFuaW1hdGlvbkFkdmFuY2VtZW50IGFkdmFuY2Vt
ZW50KQotewogICAgIGNsZWFyVGltZXIoKTsKIAotICAgIGlmIChtX2FuaW1hdGlvbkZpbmlzaGVk
V2hlbkNhdGNoaW5nVXApIHsKLSAgICAgICAgaW1hZ2VPYnNlcnZlcigpLT5hbmltYXRpb25BZHZh
bmNlZCh0aGlzKTsKLSAgICAgICAgbV9hbmltYXRpb25GaW5pc2hlZFdoZW5DYXRjaGluZ1VwID0g
ZmFsc2U7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICArK21fY3VycmVudEZy
YW1lOwotICAgIGJvb2wgYWR2YW5jZWRBbmltYXRpb24gPSB0cnVlOwotICAgIGJvb2wgZGVzdHJv
eUFsbCA9IGZhbHNlOwotICAgIGlmIChtX2N1cnJlbnRGcmFtZSA+PSBmcmFtZUNvdW50KCkpIHsK
LSAgICAgICAgKyttX3JlcGV0aXRpb25zQ29tcGxldGU7CisgICAgbV9jdXJyZW50RnJhbWUgPSAo
bV9jdXJyZW50RnJhbWUgKyAxKSAlIGZyYW1lQ291bnQoKTsKKyAgICBkZXN0cm95RGVjb2RlZERh
dGFJZk5lY2Vzc2FyeShmYWxzZSk7CiAKLSAgICAgICAgLy8gR2V0IHRoZSByZXBldGl0aW9uIGNv
dW50IGFnYWluLiBJZiB3ZSB3ZXJlbid0IGFibGUgdG8gZ2V0IGEKLSAgICAgICAgLy8gcmVwZXRp
dGlvbiBjb3VudCBiZWZvcmUsIHdlIHNob3VsZCBoYXZlIGRlY29kZWQgdGhlIHdob2xlIGltYWdl
IGJ5Ci0gICAgICAgIC8vIG5vdywgc28gaXQgc2hvdWxkIG5vdyBiZSBhdmFpbGFibGUuCi0gICAg
ICAgIGlmIChyZXBldGl0aW9uQ291bnQoKSAhPSBSZXBldGl0aW9uQ291bnRJbmZpbml0ZSAmJiBt
X3JlcGV0aXRpb25zQ29tcGxldGUgPiByZXBldGl0aW9uQ291bnQoKSkgewotICAgICAgICAgICAg
bV9hbmltYXRpb25GaW5pc2hlZCA9IHRydWU7Ci0gICAgICAgICAgICBtX2Rlc2lyZWRGcmFtZVN0
YXJ0VGltZSA9IDA7Ci0gICAgICAgICAgICAtLW1fY3VycmVudEZyYW1lOwotICAgICAgICAgICAg
YWR2YW5jZWRBbmltYXRpb24gPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IG1fY3VycmVudEZyYW1lID0gMDsKLSAgICAgICAgICAgIGRlc3Ryb3lBbGwgPSB0cnVlOwotICAg
ICAgICB9Ci0gICAgfQotICAgIGRlc3Ryb3lEZWNvZGVkRGF0YUlmTmVjZXNzYXJ5KGRlc3Ryb3lB
bGwpOwotCi0gICAgLy8gV2UgbmVlZCB0byBkcmF3IHRoaXMgZnJhbWUgaWYgd2UgYWR2YW5jZWQg
dG8gaXQgd2hpbGUgbm90IHNraXBwaW5nLCBvciBpZgotICAgIC8vIHdoaWxlIHRyeWluZyB0byBz
a2lwIGZyYW1lcyB3ZSBoaXQgdGhlIGxhc3QgZnJhbWUgYW5kIHRodXMgaGFkIHRvIHN0b3AuCi0g
ICAgaWYgKGFkdmFuY2VtZW50ID09IE5vcm1hbCAmJiBhZHZhbmNlZEFuaW1hdGlvbikKKyAgICBp
ZiAoaW1hZ2VPYnNlcnZlcigpKQogICAgICAgICBpbWFnZU9ic2VydmVyKCktPmFuaW1hdGlvbkFk
dmFuY2VkKHRoaXMpOwotCi0gICAgcmV0dXJuIGFkdmFuY2VkQW5pbWF0aW9uOwogfQogCiB2b2lk
IEJpdG1hcEltYWdlOjpzdG9wQW5pbWF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDc0YzIyYTIzMWI2OGJkYzJhM2IzNDA0NzQx
MTBjOTM2Nzg2OWI2MGQuLmYyMGIwYzNmMzc4M2VmZDY4NGY5ZWM3ZTY0YjZiMWZhYzBmZjY5MGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApA
QCAtMTU1LDE3ICsxNTUsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc0FuaW1hdGVkKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2UuZnJhbWVDb3VudCgpID4gMTsgfQogICAgIGJv
b2wgc2hvdWxkQW5pbWF0ZSgpOwogICAgIGJvb2wgY2FuQW5pbWF0ZSgpOwotICAgIHZvaWQgc3Rh
cnRBbmltYXRpb24oQ2F0Y2hVcEFuaW1hdGlvbiA9IENhdGNoVXApIG92ZXJyaWRlOworICAgIHZv
aWQgc3RhcnRBbmltYXRpb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGFkdmFuY2VBbmltYXRpb24o
KTsKIAotICAgIC8vIEZ1bmN0aW9uIHRoYXQgZG9lcyB0aGUgcmVhbCB3b3JrIG9mIGFkdmFuY2lu
ZyB0aGUgYW5pbWF0aW9uLiBXaGVuCi0gICAgLy8gc2tpcHBpbmdGcmFtZXMgaXMgdHJ1ZSwgd2Un
cmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxvb3AgdHJ5aW5nIHRvIHNraXAgb3ZlcgotICAgIC8vIGEg
YnVuY2ggb2YgYW5pbWF0aW9uIGZyYW1lcywgc28gd2Ugc2hvdWxkIG5vdCBkbyB0aGluZ3MgbGlr
ZSBkZWNvZGUgZWFjaAotICAgIC8vIG9uZSBvciBub3RpZnkgb3VyIG9ic2VydmVycy4KLSAgICAv
LyBSZXR1cm5zIHdoZXRoZXIgdGhlIGFuaW1hdGlvbiB3YXMgYWR2YW5jZWQuCi0gICAgZW51bSBB
bmltYXRpb25BZHZhbmNlbWVudCB7IE5vcm1hbCwgU2tpcHBpbmdGcmFtZXNUb0NhdGNoVXAgfTsK
LSAgICBib29sIGludGVybmFsQWR2YW5jZUFuaW1hdGlvbihBbmltYXRpb25BZHZhbmNlbWVudCA9
IE5vcm1hbCk7Ci0KICAgICAvLyBJdCBtYXkgbG9vayB1bnVzdWFsIHRoYXQgdGhlcmUgaXMgbm8g
c3RhcnQgYW5pbWF0aW9uIGNhbGwgYXMgcHVibGljIEFQSS4gVGhpcyBpcyBiZWNhdXNlCiAgICAg
Ly8gd2Ugc3RhcnQgYW5kIHN0b3AgYW5pbWF0aW5nIGxhemlseS4gQW5pbWF0aW9uIGJlZ2lucyB3
aGVuZXZlciBzb21lb25lIGRyYXdzIHRoZSBpbWFnZS4gSXQgd2lsbAogICAgIC8vIGF1dG9tYXRp
Y2FsbHkgcGF1c2Ugb25jZSBhbGwgb2JzZXJ2ZXJzIG5vIGxvbmdlciB3YW50IHRvIHJlbmRlciB0
aGUgaW1hZ2UgYW55d2hlcmUuCkBAIC0xOTYsNyArMTg4LDYgQEAgcHJpdmF0ZToKICAgICBSZXBl
dGl0aW9uQ291bnQgbV9yZXBldGl0aW9uc0NvbXBsZXRlIHsgUmVwZXRpdGlvbkNvdW50Tm9uZSB9
OyAvLyBIb3cgbWFueSByZXBldGl0aW9ucyB3ZSd2ZSBmaW5pc2hlZC4KICAgICBkb3VibGUgbV9k
ZXNpcmVkRnJhbWVTdGFydFRpbWUgeyAwIH07IC8vIFRoZSBzeXN0ZW0gdGltZSBhdCB3aGljaCB3
ZSBob3BlIHRvIHNlZSB0aGUgbmV4dCBjYWxsIHRvIHN0YXJ0QW5pbWF0aW9uKCkuCiAgICAgYm9v
bCBtX2FuaW1hdGlvbkZpbmlzaGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fYW5pbWF0aW9uRmlu
aXNoZWRXaGVuQ2F0Y2hpbmdVcCB7IGZhbHNlIH07CiAKICNpZiBVU0UoQVBQS0lUKQogICAgIG11
dGFibGUgUmV0YWluUHRyPE5TSW1hZ2U+IG1fbnNJbWFnZTsgLy8gQSBjYWNoZWQgTlNJbWFnZSBv
ZiBhbGwgdGhlIGZyYW1lcy4gT25seSBidWlsdCBsYXppbHkgaWYgc29tZW9uZSBhY3R1YWxseSBx
dWVyaWVzIGZvciBvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5j
cHAKaW5kZXggZTFjZDBiNjk1MGRkM2EyMjFhZTVmYzg2MDZiY2E0MjY5ZDBlM2Y2YS4uNTUwNzlh
ZGU5ZDZhZDA3NGEwOWVlY2I5YTNjODFkOWYxNzk0NGJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApAQCAtMTk0LDEyICsxOTQsNyBAQCB2b2lkIEltYWdl
OjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbAogICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3JtID0gQWZm
aW5lVHJhbnNmb3JtKCkuc2NhbGVOb25Vbmlmb3JtKHNjYWxlLndpZHRoKCksIHNjYWxlLmhlaWdo
dCgpKTsKICAgICBGbG9hdFJlY3QgdGlsZVJlY3QoRmxvYXRQb2ludCgpLCBpbnRyaW5zaWNUaWxl
U2l6ZSk7CiAgICAgZHJhd1BhdHRlcm4oY3R4dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJu
VHJhbnNmb3JtLCBvbmVUaWxlUmVjdC5sb2NhdGlvbigpLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2Rl
KTsKLQotI2lmIFBMQVRGT1JNKElPUykKLSAgICBzdGFydEFuaW1hdGlvbihEb05vdENhdGNoVXAp
OwotI2Vsc2UKICAgICBzdGFydEFuaW1hdGlvbigpOwotI2VuZGlmCiB9CiAKIC8vIEZJWE1FOiBN
ZXJnZSB3aXRoIHRoZSBvdGhlciBkcmF3VGlsZWQgZXZlbnR1YWxseSwgc2luY2Ugd2UgbmVlZCBh
IGNvbWJpbmF0aW9uIG9mIGJvdGggZm9yIHNvbWUgdGhpbmdzLgpAQCAtMjc5LDEyICsyNzQsNyBA
QCB2b2lkIEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsbwogCiAgICAgRmxvYXRQb2ludCBwYXR0ZXJuUGhhc2Uo
ZHN0UmVjdC54KCkgLSBoUGhhc2UsIGRzdFJlY3QueSgpIC0gdlBoYXNlKTsKICAgICBkcmF3UGF0
dGVybihjdHh0LCBkc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwYXR0ZXJuUGhh
c2UsIHNwYWNpbmcsIG9wKTsKLQotI2lmIFBMQVRGT1JNKElPUykKLSAgICBzdGFydEFuaW1hdGlv
bihEb05vdENhdGNoVXApOwotI2Vsc2UKICAgICBzdGFydEFuaW1hdGlvbigpOwotI2VuZGlmCiB9
CiAKICNpZiBFTkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggYTFkMDk1MmJhNGZkYmYxOWU0Nzc4NzZl
NDI3N2Y5MzllN2I3MjdmOC4uZTQ5MDNlYjhmZmFmZjVjM2ExODg3YjQwMjFlNzRmMDEyNmQwMDQx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC0xMjYsOCAr
MTI2LDcgQEAgcHVibGljOgogCiAgICAgLy8gQW5pbWF0aW9uIGJlZ2lucyB3aGVuZXZlciBzb21l
b25lIGRyYXdzIHRoZSBpbWFnZSwgc28gc3RhcnRBbmltYXRpb24oKSBpcyBub3Qgbm9ybWFsbHkg
Y2FsbGVkLgogICAgIC8vIEl0IHdpbGwgYXV0b21hdGljYWxseSBwYXVzZSBvbmNlIGFsbCBvYnNl
cnZlcnMgbm8gbG9uZ2VyIHdhbnQgdG8gcmVuZGVyIHRoZSBpbWFnZSBhbnl3aGVyZS4KLSAgICBl
bnVtIENhdGNoVXBBbmltYXRpb24geyBEb05vdENhdGNoVXAsIENhdGNoVXAgfTsKLSAgICB2aXJ0
dWFsIHZvaWQgc3RhcnRBbmltYXRpb24oQ2F0Y2hVcEFuaW1hdGlvbiA9IENhdGNoVXApIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzdGFydEFuaW1hdGlvbigpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBz
dG9wQW5pbWF0aW9uKCkge30KICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRpb24oKSB7fQog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggYTZhNzMz
ZjgzY2Y1ODlmOTA3MjRkZWU1OTk5NzJiOGVjZDc0Y2MxMy4uZTU4ZGM3YTczZDAzOTM2MWVlYjI4
OTFkOGEzNzg4ZGU1YTg1NDA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCkBAIC0zMzUsOCArMzM1LDcgQEAgdm9pZCBTVkdJbWFnZTo6Y29tcHV0ZUludHJpbnNp
Y0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW4KICAgICAg
ICAgaW50cmluc2ljUmF0aW8gPSBGbG9hdFNpemUoZmxvYXRWYWx1ZUZvckxlbmd0aChpbnRyaW5z
aWNXaWR0aCwgMCksIGZsb2F0VmFsdWVGb3JMZW5ndGgoaW50cmluc2ljSGVpZ2h0LCAwKSk7CiB9
CiAKLS8vIEZJWE1FOiBzdXBwb3J0IGNhdGNoVXBJZk5lY2Vzc2FyeS4KLXZvaWQgU1ZHSW1hZ2U6
OnN0YXJ0QW5pbWF0aW9uKENhdGNoVXBBbmltYXRpb24pCit2b2lkIFNWR0ltYWdlOjpzdGFydEFu
aW1hdGlvbigpCiB7CiAgICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQgPSB0aGlzLT5yb290
RWxlbWVudCgpOwogICAgIGlmICghcm9vdEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5oCmluZGV4IGUzMmE0MDEwYjBlNzg2YTkwYzNhYTNiNWVhZmY1M2U1MDg1MWI3
ZjUuLjYyMmVkZjgwYjM3ZTY2M2FiMGJmYjc0ZTA5ZmU0NWFiNGQ4MGM4MjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc1JlbGF0
aXZlSGVpZ2h0KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKENhdGNo
VXBBbmltYXRpb24gPSBDYXRjaFVwKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKCkg
ZmluYWw7CiAgICAgdm9pZCBzdG9wQW5pbWF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCByZXNldEFu
aW1hdGlvbigpIGZpbmFsOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291529</attachid>
            <date>2016-10-13 15:36:33 -0700</date>
            <delta_ts>2016-10-14 19:23:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163410-20161013153306.patch</filename>
            <type>text/plain</type>
            <size>17135</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Mjk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlMTJkZTE2YWI0MWQw
ZjM5Y2I3ZTlhYzRjMjhjNDk0OTFjZTEyNC4uZTFiMTAxNDg1MjA4NDYyNjZiYzMyZGZlNWJkYzFi
MDUzNGI4ZjcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE2LTEwLTEzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRGVsZXRl
IHRoZSBhbmltYXRlZCBpbWFnZSBjYXRjaHVwIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGFuaW1hdGUgYW4gaW1hZ2UsIEJpdG1hcEltYWdl
OjpkcmF3KCkgc2V0cyBhIHRpbWVyIGJlZm9yZSBpdCBzdGFydHMgZHJhd2luZworICAgICAgICBX
aGVuIHRoaXMgdGltZXIgZmlyZXMsIHRoZSBjdXJyZW50X2ZyYW1lIGlzIGluY3JlbWVudGVkIGFu
ZCB0aGUgaW1hZ2UgaXMKKyAgICAgICAgaW52YWxpZGF0ZWQuIElkZWFsbHkgdGhlIHRpbWVyIHNo
b3VsZCBmaXJlIGFmdGVyIHRoZSBjdXJyZW50X2ZyYW1lX2R1cmF0aW9uLgorICAgICAgICBCdXQg
YmVjYXVzZSBkcmF3aW5nIHRoZSBpbWFnZSBoYXBwZW5zIG9uIGEgZGlmZmVyZW50IHRocmVhZCBh
bmQgYmVjYXVzZQorICAgICAgICBkZWNvZGluZyB0aGUgaW1hZ2UgZnJhbWUgbWlnaHQgYmUgc2xv
dywgdGhlIGVsYXBzZWQgdGltZSBiZXR3ZWVuIHRoZSB0aW1lCisgICAgICAgIHdoZW4gdGhlIHRp
bWVyIGZpcmVzIGFuZCB3aGVuIEJpdG1hcEltYWdlOjpkcmF3KCkgZ2V0cyBjYWxsZWQgbWlnaHQg
YmUgbGFyZ2VyCisgICAgICAgIHRoYW4gdGhlIGN1cnJlbnRfZnJhbWVfZHVyYXRpb24uIEJpdG1h
cEltYWdlOjpzdGFydEFuaW1hdGlvbigpIGhhcyBjb2RlIHRvIGRvCisgICAgICAgIGNhdGNodXAg
dGhlIGN1cnJlbnQgZnJhbWUgd2l0aCB0aGUgY3VycmVudCB0aW1lLiBCdXQgdGhlIGNvZGUgaXMg
dW5uZWNlc3NhcnkKKyAgICAgICAgYmVjYXVzZSBkZWNvZGluZyBhbiBvdXQgb2Ygb3JkZXIgZnJh
bWUgbWlnaHQgYmUgdmVyeSBjb3N0bHkuIEJlc2lkZXMgdGhlCisgICAgICAgIGxvZ2ljIG9mIHRo
aXMgZnVuY3Rpb24gZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNlIG9mIHNsb3cgYW5pbWF0aW9uIGNv
cnJlY3RseS4KKyAgICAgICAgT24gaU9TLCB0aGUgdGltZXIgYWx3YXlzIGZpcmVzIGFmdGVyIGN1
cnJlbnRfZnJhbWVfZHVyYXRpb24gcmVnYXJkbGVzcworICAgICAgICB3aGV0aGVyIHRoZSBjdXJy
ZW50X3RpbWUgYWxyZWFkeSBwYXNzZWQgdGhlIGRlc2lyZWRfbmV4dF9mcmFtZV90aW1lIG9yIG5v
dC4KKworICAgICAgICBTZXR0aW5nIHRoZSBhbmltYXRpb24gdGltZXIgc2hvdWxkIGZvbGxvdyB0
aGUgZm9sbG93aW5nIHJ1bGVzOgorICAgICAgICAKKyAgICAgICAgMSkgSW5pdGlhbCBjYXNlOiBX
aGljaCBoYXBwZW5zIGJlZm9yZSBkcmF3aW5nIHRoZSBmaXJzdCBmcmFtZS4gV2Ugc2hvdWxkCisg
ICAgICAgIHNldCB0aGUgdGltZXIgdG8gZmlyZSBhZnRlciB0aGUgY3VycmVudF9mcmFtZV9kdXJh
dGlvbi4KKyAgICAgICAgCisgICAgICAgIDIpIExhdGUgY2FzZSAoU2xvdyBhbmltYXRpb24pOiBU
aGlzIGhhcHBlbnMgaWYgdGhlIGN1cnJlbnRfdGltZSBpcyBhbHJlYWR5CisgICAgICAgIHBhc3Nl
ZCB0aGUgZGVzaXJlZF9uZXh0X2ZyYW1lX3RpbWUuIEluIHRoaXMgY2FzZSB3ZSBzaG91bGQgZmly
ZSB0aGUgdGltZXIKKyAgICAgICAgaW1tZWRpYXRlbHkuCisgICAgICAgIAorICAgICAgICAzKSBF
YXJseSBjYXNlIChGYXN0IGFuaW1hdGlvbik6IFRoaXMgaGFwcGVucyB3aGVuIHRoZXJlIGlzIHN0
aWxsIHRpbWUgYmVmb3JlCisgICAgICAgIHRoZSBkZXNpcmVkX25leHRfZnJhbWVfdGltZS4gSW4g
dGhpcyBjYXNlIHdlIHNob3VsZCBzZXQgdGhlIHRpbWVyIHRvIGZpcmUKKyAgICAgICAgYWZ0ZXIg
dGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgZGVzaXJlZF9uZXh0X2ZyYW1lX3RpbWUgYW5kIHRo
ZSBjdXJyZW50X3RpbWUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhdyk6IFJlbW92ZSB0aGUg
aU9TIHNwZWNpZmljIGNvZGUuCisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6c3RhcnRB
bmltYXRpb24pOiBNb3ZlIHRoZSBhbmltYXRpb24gZmluaXNoaW5nIGNvZGUgZnJvbSAKKyAgICAg
ICAgQml0bWFwSW1hZ2U6OmludGVybmFsQWR2YW5jZUFuaW1hdGlvbigpIHRvIHRoaXMgZnVuY3Rp
b24uIFNpbXBsaWZ5IHRoZSB0aW1lcgorICAgICAgICBkdXJhdGlvbiBjb2RlIGFzIGl0IGlzIGRl
c2NyaWJlZCBhYm92ZS4KKworICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmFkdmFuY2VB
bmltYXRpb24pOiBNZXJnZSBCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKCkK
KyAgICAgICAgaW50byB0aGlzIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJ
bWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6OmRyYXdUaWxlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
OjpzdGFydEFuaW1hdGlvbik6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpzdGFydEFuaW1hdGlvbik6CisgICAgICAgICog
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmg6CisgICAgICAgIFJlbW92ZSB0aGUgY2F0Y2h1cCBjb2Rl
IGZvcm0gdGhlIEltYWdlIGFuZCBTVkdJbWFnZSBjbGFzc2VzLgorCiAyMDE2LTEwLTEzICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBD
b250cm9sc10gTWVkaWFDb250cm9scyBiYXNlIGNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggMGMxODljNjQ5YzU0NzIyNzIx
NjNjNjg4YjdlNjAwNThhOWIwMTIzYi4uYWQyOWJhNzJmY2FkZTM3YWVmYTRhMzA3NDI2M2VkZDg0
NzExY2Q0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcApAQCAtMTQ1LDExICsxNDUsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29ucwog
ICAgIHNldFJlbmRlclRhcmdldChjb250ZXh0KTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9T
KQotICAgIHN0YXJ0QW5pbWF0aW9uKERvTm90Q2F0Y2hVcCk7Ci0jZWxzZQogICAgIHN0YXJ0QW5p
bWF0aW9uKCk7Ci0jZW5kaWYKIAogICAgIENvbG9yIGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENv
bG9yKCk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQoKSkgewpAQCAtMjMxLDE0OCArMjI3LDYxIEBA
IHZvaWQgQml0bWFwSW1hZ2U6OnN0YXJ0VGltZXIoZG91YmxlIGRlbGF5KQogICAgIG1fZnJhbWVU
aW1lci0+c3RhcnRPbmVTaG90KGRlbGF5KTsKIH0KIAotdm9pZCBCaXRtYXBJbWFnZTo6c3RhcnRB
bmltYXRpb24oQ2F0Y2hVcEFuaW1hdGlvbiBjYXRjaFVwSWZOZWNlc3NhcnkpCit2b2lkIEJpdG1h
cEltYWdlOjpzdGFydEFuaW1hdGlvbigpCiB7CiAgICAgaWYgKG1fZnJhbWVUaW1lciB8fCAhc2hv
dWxkQW5pbWF0ZSgpIHx8IGZyYW1lQ291bnQoKSA8PSAxKQogICAgICAgICByZXR1cm47CiAKLSAg
ICAvLyBJZiB3ZSBhcmVuJ3QgYWxyZWFkeSBhbmltYXRpbmcsIHNldCBub3cgYXMgdGhlIGFuaW1h
dGlvbiBzdGFydCB0aW1lLgotICAgIGNvbnN0IGRvdWJsZSB0aW1lID0gbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCk7Ci0gICAgaWYgKCFtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSkKLSAgICAg
ICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPSB0aW1lOworICAgIGlmIChtX2N1cnJlbnRGcmFt
ZSA+PSBmcmFtZUNvdW50KCkgLSAxKSB7CisgICAgICAgIC8vIERvbid0IGFkdmFuY2UgcGFzdCB0
aGUgbGFzdCBmcmFtZSBpZiB3ZSBoYXZlbid0IGRlY29kZWQgdGhlIHdob2xlIGltYWdlCisgICAg
ICAgIC8vIHlldCBhbmQgb3VyIHJlcGV0aXRpb24gY291bnQgaXMgcG90ZW50aWFsbHkgdW5zZXQu
IFRoZSByZXBldGl0aW9uIGNvdW50CisgICAgICAgIC8vIGluIGEgR0lGIGNhbiBwb3RlbnRpYWxs
eSBjb21lIGFmdGVyIGFsbCB0aGUgcmVzdCBvZiB0aGUgaW1hZ2UgZGF0YSwgc28KKyAgICAgICAg
Ly8gd2FpdCBvbiBpdC4KKyAgICAgICAgaWYgKCFtX3NvdXJjZS5pc0FsbERhdGFSZWNlaXZlZCgp
ICYmIHJlcGV0aXRpb25Db3VudCgpID09IFJlcGV0aXRpb25Db3VudE9uY2UpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgKyttX3JlcGV0aXRpb25zQ29tcGxldGU7CisKKyAgICAgICAg
Ly8gQ2hlY2sgZm9yIHRoZSBlbmQgb2YgYW5pbWF0aW9uLgorICAgICAgICBpZiAocmVwZXRpdGlv
bkNvdW50KCkgIT0gUmVwZXRpdGlvbkNvdW50SW5maW5pdGUgJiYgbV9yZXBldGl0aW9uc0NvbXBs
ZXRlID4gcmVwZXRpdGlvbkNvdW50KCkpIHsKKyAgICAgICAgICAgIG1fZGVzaXJlZEZyYW1lU3Rh
cnRUaW1lID0gMDsKKyAgICAgICAgICAgIG1fYW5pbWF0aW9uRmluaXNoZWQgPSB0cnVlOworICAg
ICAgICAgICAgZGVzdHJveURlY29kZWREYXRhSWZOZWNlc3NhcnkoZmFsc2UpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZGVzdHJveURlY29kZWREYXRhSWZOZWNl
c3NhcnkodHJ1ZSk7CisgICAgfQogCiAgICAgLy8gRG9uJ3QgYWR2YW5jZSB0aGUgYW5pbWF0aW9u
IHRvIGFuIGluY29tcGxldGUgZnJhbWUuCiAgICAgc2l6ZV90IG5leHRGcmFtZSA9IChtX2N1cnJl
bnRGcmFtZSArIDEpICUgZnJhbWVDb3VudCgpOwogICAgIGlmICghbV9zb3VyY2UuaXNBbGxEYXRh
UmVjZWl2ZWQoKSAmJiAhZnJhbWVJc0NvbXBsZXRlQXRJbmRleChuZXh0RnJhbWUpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICAvLyBEb24ndCBhZHZhbmNlIHBhc3QgdGhlIGxhc3QgZnJhbWUgaWYg
d2UgaGF2ZW4ndCBkZWNvZGVkIHRoZSB3aG9sZSBpbWFnZQotICAgIC8vIHlldCBhbmQgb3VyIHJl
cGV0aXRpb24gY291bnQgaXMgcG90ZW50aWFsbHkgdW5zZXQuIFRoZSByZXBldGl0aW9uIGNvdW50
Ci0gICAgLy8gaW4gYSBHSUYgY2FuIHBvdGVudGlhbGx5IGNvbWUgYWZ0ZXIgYWxsIHRoZSByZXN0
IG9mIHRoZSBpbWFnZSBkYXRhLCBzbwotICAgIC8vIHdhaXQgb24gaXQuCi0gICAgaWYgKCFtX3Nv
dXJjZS5pc0FsbERhdGFSZWNlaXZlZCgpICYmIHJlcGV0aXRpb25Db3VudCgpID09IFJlcGV0aXRp
b25Db3VudE9uY2UgJiYgbV9jdXJyZW50RnJhbWUgPj0gKGZyYW1lQ291bnQoKSAtIDEpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICAvLyBEZXRlcm1pbmUgdGltZSBmb3IgbmV4dCBmcmFtZSB0byBz
dGFydC4gQnkgaWdub3JpbmcgcGFpbnQgYW5kIHRpbWVyIGxhZwotICAgIC8vIGluIHRoaXMgY2Fs
Y3VsYXRpb24sIHdlIG1ha2UgdGhlIGFuaW1hdGlvbiBhcHBlYXIgdG8gcnVuIGF0IGl0cyBkZXNp
cmVkCi0gICAgLy8gcmF0ZSByZWdhcmRsZXNzIG9mIGhvdyBmYXN0IGl0J3MgYmVpbmcgcmVwYWlu
dGVkLgotICAgIGNvbnN0IGRvdWJsZSBjdXJyZW50RHVyYXRpb24gPSBmcmFtZUR1cmF0aW9uQXRJ
bmRleChtX2N1cnJlbnRGcmFtZSk7Ci0gICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgKz0gY3Vy
cmVudER1cmF0aW9uOwotCi0jaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBXaGVuIGFuIGFuaW1h
dGVkIGltYWdlIGlzIG1vcmUgdGhhbiBmaXZlIG1pbnV0ZXMgb3V0IG9mIGRhdGUsIHRoZQotICAg
IC8vIHVzZXIgcHJvYmFibHkgZG9lc24ndCBjYXJlIGFib3V0IHJlc3luY2luZyBhbmQgd2UgY291
bGQgYnVybiBhIGxvdCBvZgotICAgIC8vIHRpbWUgbG9vcGluZyB0aHJvdWdoIGZyYW1lcyBiZWxv
dy4gSnVzdCByZXNldCB0aGUgdGltaW5ncy4KLSAgICBjb25zdCBkb3VibGUgY0FuaW1hdGlvblJl
c3luY0N1dG9mZiA9IDUgKiA2MDsKLSAgICBpZiAoKHRpbWUgLSBtX2Rlc2lyZWRGcmFtZVN0YXJ0
VGltZSkgPiBjQW5pbWF0aW9uUmVzeW5jQ3V0b2ZmKQotICAgICAgICBtX2Rlc2lyZWRGcmFtZVN0
YXJ0VGltZSA9IHRpbWUgKyBjdXJyZW50RHVyYXRpb247Ci0jZWxzZQotICAgIC8vIE1haW50YWlu
aW5nIGZyYW1lLXRvLWZyYW1lIGRlbGF5cyBpcyBtb3JlIGltcG9ydGFudCB0aGFuCi0gICAgLy8g
bWFpbnRhaW5pbmcgYWJzb2x1dGUgYW5pbWF0aW9uIHRpbWluZywgc28gcmVzZXQgdGhlIHRpbWlu
Z3MgZWFjaCBmcmFtZS4KLSAgICBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSA9IHRpbWUgKyBjdXJy
ZW50RHVyYXRpb247Ci0jZW5kaWYKKyAgICBkb3VibGUgdGltZSA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOworICAgIGZsb2F0IGN1cnJlbnRGcmFtZUR1cmF0aW9uID0gZnJhbWVEdXJh
dGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOwogCi0gICAgLy8gVGhlIGltYWdlIG1heSBsb2Fk
IG1vcmUgc2xvd2x5IHRoYW4gaXQncyBzdXBwb3NlZCB0byBhbmltYXRlLCBzbyB0aGF0IGJ5Ci0g
ICAgLy8gdGhlIHRpbWUgd2UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgZmlyc3QgcmVwZXRpdGlvbiwg
d2UncmUgd2VsbCBiZWhpbmQuCi0gICAgLy8gQ2xhbXAgdGhlIGRlc2lyZWQgZnJhbWUgc3RhcnQg
dGltZSBpbiB0aGlzIGNhc2UsIHNvIHRoYXQgd2UgZG9uJ3Qgc2tpcAotICAgIC8vIGZyYW1lcyAo
b3Igd2hvbGUgaXRlcmF0aW9ucykgdHJ5aW5nIHRvICJjYXRjaCB1cCIuIFRoaXMgaXMgYSB0cmFk
ZW9mZjoKLSAgICAvLyBJdCBndWFyYW50ZWVzIHVzZXJzIHNlZSB0aGUgd2hvbGUgYW5pbWF0aW9u
IHRoZSBzZWNvbmQgdGltZSB0aHJvdWdoIGFuZAotICAgIC8vIGRvbid0IG1pc3MgYW55IHJlcGV0
aXRpb25zLCBhbmQgaXMgY2xvc2VyIHRvIHdoYXQgb3RoZXIgYnJvd3NlcnMgZG87IG9uCi0gICAg
Ly8gdGhlIG90aGVyIGhhbmQsIGl0IG1ha2VzIGFuaW1hdGlvbnMgImxlc3MgYWNjdXJhdGUiIGZv
ciBwYWdlcyB0aGF0IHRyeSB0bwotICAgIC8vIHN5bmMgYW4gaW1hZ2UgYW5kIHNvbWUgb3RoZXIg
cmVzb3VyY2UgKGUuZy4gYXVkaW8pLCBlc3BlY2lhbGx5IGlmIHVzZXJzCi0gICAgLy8gc3dpdGNo
IHRhYnMgKGFuZCB0aHVzIHN0b3AgZHJhd2luZyB0aGUgYW5pbWF0aW9uLCB3aGljaCB3aWxsIHBh
dXNlIGl0KQotICAgIC8vIGR1cmluZyB0aGF0IGluaXRpYWwgbG9vcCwgdGhlbiBzd2l0Y2ggYmFj
ayBsYXRlci4KLSAgICBpZiAobmV4dEZyYW1lID09IDAgJiYgbV9yZXBldGl0aW9uc0NvbXBsZXRl
ID09IDAgJiYgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPCB0aW1lKQorICAgIGlmICghbV9kZXNp
cmVkRnJhbWVTdGFydFRpbWUpCisgICAgICAgIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lID0gdGlt
ZSArIGN1cnJlbnRGcmFtZUR1cmF0aW9uOworICAgIGVsc2UgaWYgKHRpbWUgPiBtX2Rlc2lyZWRG
cmFtZVN0YXJ0VGltZSArIGN1cnJlbnRGcmFtZUR1cmF0aW9uKQogICAgICAgICBtX2Rlc2lyZWRG
cmFtZVN0YXJ0VGltZSA9IHRpbWU7Ci0KLSAgICBpZiAoY2F0Y2hVcElmTmVjZXNzYXJ5ID09IERv
Tm90Q2F0Y2hVcCB8fCB0aW1lIDwgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUpIHsKLSAgICAgICAg
Ly8gSGF2ZW4ndCB5ZXQgcmVhY2hlZCB0aW1lIGZvciBuZXh0IGZyYW1lIHRvIHN0YXJ0OyBkZWxh
eSB1bnRpbCB0aGVuLgotICAgICAgICBzdGFydFRpbWVyKHN0ZDo6bWF4PGRvdWJsZT4obV9kZXNp
cmVkRnJhbWVTdGFydFRpbWUgLSB0aW1lLCAwKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Cisg
ICAgZWxzZQorICAgICAgICBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSArPSBjdXJyZW50RnJhbWVE
dXJhdGlvbjsKIAogICAgIEFTU0VSVCghbV9mcmFtZVRpbWVyKTsKLQotICAgIC8vIFdlJ3ZlIGFs
cmVhZHkgcmVhY2hlZCBvciBwYXNzZWQgdGhlIHRpbWUgZm9yIHRoZSBuZXh0IGZyYW1lIHRvIHN0
YXJ0LgotICAgIC8vIFNlZSBpZiB3ZSd2ZSBhbHNvIHBhc3NlZCB0aGUgdGltZSBmb3IgZnJhbWVz
IGFmdGVyIHRoYXQgdG8gc3RhcnQsIGluCi0gICAgLy8gY2FzZSB3ZSBuZWVkIHRvIHNraXAgc29t
ZSBmcmFtZXMgZW50aXJlbHkuIFJlbWVtYmVyIG5vdCB0byBhZHZhbmNlCi0gICAgLy8gdG8gYW4g
aW5jb21wbGV0ZSBmcmFtZS4KLQotI2lmICFMT0dfRElTQUJMRUQKLSAgICBzaXplX3Qgc3RhcnRD
YXRjaHVwRnJhbWVJbmRleCA9IG5leHRGcmFtZTsKLSNlbmRpZgotCi0gICAgZm9yIChzaXplX3Qg
ZnJhbWVBZnRlck5leHQgPSAobmV4dEZyYW1lICsgMSkgJSBmcmFtZUNvdW50KCk7IGZyYW1lSXND
b21wbGV0ZUF0SW5kZXgoZnJhbWVBZnRlck5leHQpOyBmcmFtZUFmdGVyTmV4dCA9IChuZXh0RnJh
bWUgKyAxKSAlIGZyYW1lQ291bnQoKSkgewotICAgICAgICAvLyBTaG91bGQgd2Ugc2tpcCB0aGUg
bmV4dCBmcmFtZT8KLSAgICAgICAgZG91YmxlIGZyYW1lQWZ0ZXJOZXh0U3RhcnRUaW1lID0gbV9k
ZXNpcmVkRnJhbWVTdGFydFRpbWUgKyBmcmFtZUR1cmF0aW9uQXRJbmRleChuZXh0RnJhbWUpOwot
ICAgICAgICBpZiAodGltZSA8IGZyYW1lQWZ0ZXJOZXh0U3RhcnRUaW1lKQotICAgICAgICAgICAg
YnJlYWs7Ci0KLSAgICAgICAgLy8gWWVzOyBza2lwIG92ZXIgaXQgd2l0aG91dCBub3RpZnlpbmcg
b3VyIG9ic2VydmVycy4gSWYgd2UgaGl0IHRoZSBlbmQgd2hpbGUgY2F0Y2hpbmcgdXAsCi0gICAg
ICAgIC8vIHRlbGwgdGhlIG9ic2VydmVyIGFzeW5jaHJvbm91c2x5LgotICAgICAgICBpZiAoIWlu
dGVybmFsQWR2YW5jZUFuaW1hdGlvbihTa2lwcGluZ0ZyYW1lc1RvQ2F0Y2hVcCkpIHsKLSAgICAg
ICAgICAgIG1fYW5pbWF0aW9uRmluaXNoZWRXaGVuQ2F0Y2hpbmdVcCA9IHRydWU7Ci0gICAgICAg
ICAgICBzdGFydFRpbWVyKDApOwotICAgICAgICAgICAgTE9HKEltYWdlcywgIkJpdG1hcEltYWdl
ICVwIHN0YXJ0QW5pbWF0aW9uIGNhdGNoaW5nIHVwIGZyb20gZnJhbWUgJWx1LCBlbmRlZCIsIHRo
aXMsIHN0YXJ0Q2F0Y2h1cEZyYW1lSW5kZXgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0gICAgICAgIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lID0gZnJhbWVBZnRlck5leHRTdGFy
dFRpbWU7Ci0gICAgICAgIG5leHRGcmFtZSA9IGZyYW1lQWZ0ZXJOZXh0OwotICAgIH0KLQotICAg
IExPRyhJbWFnZXMsICJCaXRtYXBJbWFnZSAlcCBzdGFydEFuaW1hdGlvbiBjYXRjaGluZyB1cCBq
dW1wZWQgZnJvbSBmcm9tIGZyYW1lICVsdSB0byAlZCIsIHRoaXMsIHN0YXJ0Q2F0Y2h1cEZyYW1l
SW5kZXgsIChpbnQpbmV4dEZyYW1lIC0gMSk7Ci0KLSAgICAvLyBEcmF3IHRoZSBuZXh0IGZyYW1l
IGFzIHNvb24gYXMgcG9zc2libGUuIE5vdGUgdGhhdCBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZQot
ICAgIC8vIG1heSBiZSBpbiB0aGUgcGFzdCwgbWVhbmluZyB0aGUgbmV4dCB0aW1lIHRocm91Z2gg
dGhpcyBmdW5jdGlvbiB3ZSdsbAotICAgIC8vIGtpY2sgb2ZmIHRoZSBuZXh0IGFkdmFuY2VtZW50
IHNvb25lciB0aGFuIHRoaXMgZnJhbWUncyBkdXJhdGlvbiB3b3VsZCBzdWdnZXN0LgotICAgIHN0
YXJ0VGltZXIoMCk7CisgICAgQVNTRVJUKG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lIC0gdGltZSA+
PSAwKTsKKyAgICBzdGFydFRpbWVyKG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lIC0gdGltZSk7CiB9
CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmFkdmFuY2VBbmltYXRpb24oKQogewotICAgIGludGVybmFs
QWR2YW5jZUFuaW1hdGlvbigpOwotICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhlIGltYWdlIHJlZ2lv
biBoYXMgYmVlbiBtYXJrZWQgZGlydHksIGFuZCBpZiBpdCdzCi0gICAgLy8gb25zY3JlZW4sIHdl
J2xsIHNvb24gbWFrZSBhIGNhbGwgdG8gZHJhdygpLCB3aGljaCB3aWxsIGNhbGwKLSAgICAvLyBz
dGFydEFuaW1hdGlvbigpIGFnYWluIHRvIGtlZXAgdGhlIGFuaW1hdGlvbiBtb3ZpbmcuCi19Ci0K
LWJvb2wgQml0bWFwSW1hZ2U6OmludGVybmFsQWR2YW5jZUFuaW1hdGlvbihBbmltYXRpb25BZHZh
bmNlbWVudCBhZHZhbmNlbWVudCkKLXsKICAgICBjbGVhclRpbWVyKCk7CiAKLSAgICBpZiAobV9h
bmltYXRpb25GaW5pc2hlZFdoZW5DYXRjaGluZ1VwKSB7Ci0gICAgICAgIGltYWdlT2JzZXJ2ZXIo
KS0+YW5pbWF0aW9uQWR2YW5jZWQodGhpcyk7Ci0gICAgICAgIG1fYW5pbWF0aW9uRmluaXNoZWRX
aGVuQ2F0Y2hpbmdVcCA9IGZhbHNlOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0g
ICAgKyttX2N1cnJlbnRGcmFtZTsKLSAgICBib29sIGFkdmFuY2VkQW5pbWF0aW9uID0gdHJ1ZTsK
LSAgICBib29sIGRlc3Ryb3lBbGwgPSBmYWxzZTsKLSAgICBpZiAobV9jdXJyZW50RnJhbWUgPj0g
ZnJhbWVDb3VudCgpKSB7Ci0gICAgICAgICsrbV9yZXBldGl0aW9uc0NvbXBsZXRlOworICAgIG1f
Y3VycmVudEZyYW1lID0gKG1fY3VycmVudEZyYW1lICsgMSkgJSBmcmFtZUNvdW50KCk7CisgICAg
ZGVzdHJveURlY29kZWREYXRhSWZOZWNlc3NhcnkoZmFsc2UpOwogCi0gICAgICAgIC8vIEdldCB0
aGUgcmVwZXRpdGlvbiBjb3VudCBhZ2Fpbi4gSWYgd2Ugd2VyZW4ndCBhYmxlIHRvIGdldCBhCi0g
ICAgICAgIC8vIHJlcGV0aXRpb24gY291bnQgYmVmb3JlLCB3ZSBzaG91bGQgaGF2ZSBkZWNvZGVk
IHRoZSB3aG9sZSBpbWFnZSBieQotICAgICAgICAvLyBub3csIHNvIGl0IHNob3VsZCBub3cgYmUg
YXZhaWxhYmxlLgotICAgICAgICBpZiAocmVwZXRpdGlvbkNvdW50KCkgIT0gUmVwZXRpdGlvbkNv
dW50SW5maW5pdGUgJiYgbV9yZXBldGl0aW9uc0NvbXBsZXRlID4gcmVwZXRpdGlvbkNvdW50KCkp
IHsKLSAgICAgICAgICAgIG1fYW5pbWF0aW9uRmluaXNoZWQgPSB0cnVlOwotICAgICAgICAgICAg
bV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPSAwOwotICAgICAgICAgICAgLS1tX2N1cnJlbnRGcmFt
ZTsKLSAgICAgICAgICAgIGFkdmFuY2VkQW5pbWF0aW9uID0gZmFsc2U7Ci0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBtX2N1cnJlbnRGcmFtZSA9IDA7Ci0gICAgICAgICAgICBkZXN0cm95
QWxsID0gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBkZXN0cm95RGVjb2RlZERhdGFJZk5l
Y2Vzc2FyeShkZXN0cm95QWxsKTsKLQotICAgIC8vIFdlIG5lZWQgdG8gZHJhdyB0aGlzIGZyYW1l
IGlmIHdlIGFkdmFuY2VkIHRvIGl0IHdoaWxlIG5vdCBza2lwcGluZywgb3IgaWYKLSAgICAvLyB3
aGlsZSB0cnlpbmcgdG8gc2tpcCBmcmFtZXMgd2UgaGl0IHRoZSBsYXN0IGZyYW1lIGFuZCB0aHVz
IGhhZCB0byBzdG9wLgotICAgIGlmIChhZHZhbmNlbWVudCA9PSBOb3JtYWwgJiYgYWR2YW5jZWRB
bmltYXRpb24pCisgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAgICAgICAgaW1hZ2VPYnNlcnZl
cigpLT5hbmltYXRpb25BZHZhbmNlZCh0aGlzKTsKLQotICAgIHJldHVybiBhZHZhbmNlZEFuaW1h
dGlvbjsKIH0KIAogdm9pZCBCaXRtYXBJbWFnZTo6c3RvcEFuaW1hdGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA3NGMyMmEyMzFi
NjhiZGMyYTNiMzQwNDc0MTEwYzkzNjc4NjliNjBkLi5mMjBiMGMzZjM3ODNlZmQ2ODRmOWVjN2U2
NGI2YjFmYWMwZmY2OTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmgKQEAgLTE1NSwxNyArMTU1LDkgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wg
aXNBbmltYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc291cmNlLmZyYW1lQ291bnQo
KSA+IDE7IH0KICAgICBib29sIHNob3VsZEFuaW1hdGUoKTsKICAgICBib29sIGNhbkFuaW1hdGUo
KTsKLSAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKENhdGNoVXBBbmltYXRpb24gPSBDYXRjaFVwKSBv
dmVycmlkZTsKKyAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBh
ZHZhbmNlQW5pbWF0aW9uKCk7CiAKLSAgICAvLyBGdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHJlYWwg
d29yayBvZiBhZHZhbmNpbmcgdGhlIGFuaW1hdGlvbi4gV2hlbgotICAgIC8vIHNraXBwaW5nRnJh
bWVzIGlzIHRydWUsIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYSBsb29wIHRyeWluZyB0byBza2lw
IG92ZXIKLSAgICAvLyBhIGJ1bmNoIG9mIGFuaW1hdGlvbiBmcmFtZXMsIHNvIHdlIHNob3VsZCBu
b3QgZG8gdGhpbmdzIGxpa2UgZGVjb2RlIGVhY2gKLSAgICAvLyBvbmUgb3Igbm90aWZ5IG91ciBv
YnNlcnZlcnMuCi0gICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBhbmltYXRpb24gd2FzIGFkdmFu
Y2VkLgotICAgIGVudW0gQW5pbWF0aW9uQWR2YW5jZW1lbnQgeyBOb3JtYWwsIFNraXBwaW5nRnJh
bWVzVG9DYXRjaFVwIH07Ci0gICAgYm9vbCBpbnRlcm5hbEFkdmFuY2VBbmltYXRpb24oQW5pbWF0
aW9uQWR2YW5jZW1lbnQgPSBOb3JtYWwpOwotCiAgICAgLy8gSXQgbWF5IGxvb2sgdW51c3VhbCB0
aGF0IHRoZXJlIGlzIG5vIHN0YXJ0IGFuaW1hdGlvbiBjYWxsIGFzIHB1YmxpYyBBUEkuIFRoaXMg
aXMgYmVjYXVzZQogICAgIC8vIHdlIHN0YXJ0IGFuZCBzdG9wIGFuaW1hdGluZyBsYXppbHkuIEFu
aW1hdGlvbiBiZWdpbnMgd2hlbmV2ZXIgc29tZW9uZSBkcmF3cyB0aGUgaW1hZ2UuIEl0IHdpbGwK
ICAgICAvLyBhdXRvbWF0aWNhbGx5IHBhdXNlIG9uY2UgYWxsIG9ic2VydmVycyBubyBsb25nZXIg
d2FudCB0byByZW5kZXIgdGhlIGltYWdlIGFueXdoZXJlLgpAQCAtMTk2LDcgKzE4OCw2IEBAIHBy
aXZhdGU6CiAgICAgUmVwZXRpdGlvbkNvdW50IG1fcmVwZXRpdGlvbnNDb21wbGV0ZSB7IFJlcGV0
aXRpb25Db3VudE5vbmUgfTsgLy8gSG93IG1hbnkgcmVwZXRpdGlvbnMgd2UndmUgZmluaXNoZWQu
CiAgICAgZG91YmxlIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lIHsgMCB9OyAvLyBUaGUgc3lzdGVt
IHRpbWUgYXQgd2hpY2ggd2UgaG9wZSB0byBzZWUgdGhlIG5leHQgY2FsbCB0byBzdGFydEFuaW1h
dGlvbigpLgogICAgIGJvb2wgbV9hbmltYXRpb25GaW5pc2hlZCB7IGZhbHNlIH07Ci0gICAgYm9v
bCBtX2FuaW1hdGlvbkZpbmlzaGVkV2hlbkNhdGNoaW5nVXAgeyBmYWxzZSB9OwogCiAjaWYgVVNF
KEFQUEtJVCkKICAgICBtdXRhYmxlIFJldGFpblB0cjxOU0ltYWdlPiBtX25zSW1hZ2U7IC8vIEEg
Y2FjaGVkIE5TSW1hZ2Ugb2YgYWxsIHRoZSBmcmFtZXMuIE9ubHkgYnVpbHQgbGF6aWx5IGlmIHNv
bWVvbmUgYWN0dWFsbHkgcXVlcmllcyBmb3Igb25lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2UuY3BwCmluZGV4IGUxY2QwYjY5NTBkZDNhMjIxYWU1ZmM4NjA2YmNhNDI2
OWQwZTNmNmEuLjU1MDc5YWRlOWQ2YWQwNzRhMDllZWNiOWEzYzgxZDlmMTc5NDRiZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKQEAgLTE5NCwxMiArMTk0
LDcgQEAgdm9pZCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmwKICAgICBBZmZpbmVUcmFuc2Zvcm0gcGF0dGVy
blRyYW5zZm9ybSA9IEFmZmluZVRyYW5zZm9ybSgpLnNjYWxlTm9uVW5pZm9ybShzY2FsZS53aWR0
aCgpLCBzY2FsZS5oZWlnaHQoKSk7CiAgICAgRmxvYXRSZWN0IHRpbGVSZWN0KEZsb2F0UG9pbnQo
KSwgaW50cmluc2ljVGlsZVNpemUpOwogICAgIGRyYXdQYXR0ZXJuKGN0eHQsIGRlc3RSZWN0LCB0
aWxlUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgb25lVGlsZVJlY3QubG9jYXRpb24oKSwgc3BhY2lu
Zywgb3AsIGJsZW5kTW9kZSk7Ci0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgc3RhcnRBbmltYXRp
b24oRG9Ob3RDYXRjaFVwKTsKLSNlbHNlCiAgICAgc3RhcnRBbmltYXRpb24oKTsKLSNlbmRpZgog
fQogCiAvLyBGSVhNRTogTWVyZ2Ugd2l0aCB0aGUgb3RoZXIgZHJhd1RpbGVkIGV2ZW50dWFsbHks
IHNpbmNlIHdlIG5lZWQgYSBjb21iaW5hdGlvbiBvZiBib3RoIGZvciBzb21lIHRoaW5ncy4KQEAg
LTI3OSwxMiArMjc0LDcgQEAgdm9pZCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYg
Y3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG8KIAogICAgIEZsb2F0UG9p
bnQgcGF0dGVyblBoYXNlKGRzdFJlY3QueCgpIC0gaFBoYXNlLCBkc3RSZWN0LnkoKSAtIHZQaGFz
ZSk7CiAgICAgZHJhd1BhdHRlcm4oY3R4dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5z
Zm9ybSwgcGF0dGVyblBoYXNlLCBzcGFjaW5nLCBvcCk7Ci0KLSNpZiBQTEFURk9STShJT1MpCi0g
ICAgc3RhcnRBbmltYXRpb24oRG9Ob3RDYXRjaFVwKTsKLSNlbHNlCiAgICAgc3RhcnRBbmltYXRp
b24oKTsKLSNlbmRpZgogfQogCiAjaWYgRU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCmluZGV4IGExZDA5NTJi
YTRmZGJmMTllNDc3ODc2ZTQyNzdmOTM5ZTdiNzI3ZjguLmU0OTAzZWI4ZmZhZmY1YzNhMTg4N2I0
MDIxZTc0ZjAxMjZkMDA0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2UuaApAQCAtMTI2LDggKzEyNiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEFuaW1hdGlvbiBiZWdp
bnMgd2hlbmV2ZXIgc29tZW9uZSBkcmF3cyB0aGUgaW1hZ2UsIHNvIHN0YXJ0QW5pbWF0aW9uKCkg
aXMgbm90IG5vcm1hbGx5IGNhbGxlZC4KICAgICAvLyBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgcGF1
c2Ugb25jZSBhbGwgb2JzZXJ2ZXJzIG5vIGxvbmdlciB3YW50IHRvIHJlbmRlciB0aGUgaW1hZ2Ug
YW55d2hlcmUuCi0gICAgZW51bSBDYXRjaFVwQW5pbWF0aW9uIHsgRG9Ob3RDYXRjaFVwLCBDYXRj
aFVwIH07Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0QW5pbWF0aW9uKENhdGNoVXBBbmltYXRpb24g
PSBDYXRjaFVwKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBbmltYXRpb24oKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1hdGlvbigpIHt9CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0
QW5pbWF0aW9uKCkge30KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2Uu
Y3BwCmluZGV4IGE2YTczM2Y4M2NmNTg5ZjkwNzI0ZGVlNTk5OTcyYjhlY2Q3NGNjMTMuLmU1OGRj
N2E3M2QwMzkzNjFlZWIyODkxZDhhMzc4OGRlNWE4NTQwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMzM1LDggKzMzNSw3IEBAIHZvaWQgU1ZHSW1hZ2U6
OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0
aCYgaW50cmluCiAgICAgICAgIGludHJpbnNpY1JhdGlvID0gRmxvYXRTaXplKGZsb2F0VmFsdWVG
b3JMZW5ndGgoaW50cmluc2ljV2lkdGgsIDApLCBmbG9hdFZhbHVlRm9yTGVuZ3RoKGludHJpbnNp
Y0hlaWdodCwgMCkpOwogfQogCi0vLyBGSVhNRTogc3VwcG9ydCBjYXRjaFVwSWZOZWNlc3Nhcnku
Ci12b2lkIFNWR0ltYWdlOjpzdGFydEFuaW1hdGlvbihDYXRjaFVwQW5pbWF0aW9uKQordm9pZCBT
VkdJbWFnZTo6c3RhcnRBbmltYXRpb24oKQogewogICAgIFNWR1NWR0VsZW1lbnQqIHJvb3RFbGVt
ZW50ID0gdGhpcy0+cm9vdEVsZW1lbnQoKTsKICAgICBpZiAoIXJvb3RFbGVtZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAppbmRleCBlMzJhNDAxMGIwZTc4NmE5MGMzYWEz
YjVlYWZmNTNlNTA4NTFiN2Y1Li42MjJlZGY4MGIzN2U2NjNhYjBiZmI3NGUwOWZlNDVhYjRkODBj
ODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaApAQCAtNjEsNyArNjEs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3QgZmluYWw7CiAg
ICAgYm9vbCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBzdGFy
dEFuaW1hdGlvbihDYXRjaFVwQW5pbWF0aW9uID0gQ2F0Y2hVcCkgZmluYWw7CisgICAgdm9pZCBz
dGFydEFuaW1hdGlvbigpIGZpbmFsOwogICAgIHZvaWQgc3RvcEFuaW1hdGlvbigpIGZpbmFsOwog
ICAgIHZvaWQgcmVzZXRBbmltYXRpb24oKSBmaW5hbDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291700</attachid>
            <date>2016-10-14 19:23:34 -0700</date>
            <delta_ts>2016-10-15 13:46:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163410-20161014192006.patch</filename>
            <type>text/plain</type>
            <size>23237</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzM2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDE2LTEwLTE0ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRGVsZXRlIHRo
ZSBhbmltYXRlZCBpbWFnZSBjYXRjaHVwIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL29yZGVyZWQtYW5pbWF0ZWQt
aW1hZ2UtZnJhbWVzLmh0bWwKKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHR3byBpc3N1ZXMg
aW4gdGhlIGFuaW1hdGVkIGltYWdlIHdvcmtmbG93OgorCisgICAgICAgIDEpIFNldHRpbmcgdGhl
IGFuaW1hdGlvbiB0aW1lciBzaG91bGQgZm9sbG93IHRoZSBmb2xsb3dpbmcgcnVsZXM6CisgICAg
ICAgIAorICAgICAgICAgICAgLS0gSW5pdGlhbCBjYXNlOiBXaGljaCBoYXBwZW5zIGJlZm9yZSBk
cmF3aW5nIHRoZSBmaXJzdCBmcmFtZS4gV2Ugc2hvdWxkCisgICAgICAgICAgICBzZXQgdGhlIHRp
bWVyIHRvIGZpcmUgYWZ0ZXIgdGhlIGN1cnJlbnRfZnJhbWVfZHVyYXRpb24uCisKKyAgICAgICAg
ICAgIC0tIExhdGUgY2FzZSAoU2xvdyBhbmltYXRpb24pOiBUaGlzIGhhcHBlbnMgaWYgdGhlIGN1
cnJlbnRfdGltZSBpcyBhbHJlYWR5CisgICAgICAgICAgICBwYXNzZWQgdGhlIG5leHRfZnJhbWVf
ZGVzaXJlZF90aW1lLiBJbiB0aGlzIGNhc2Ugd2Ugc2hvdWxkIGZpcmUgdGhlIHRpbWVyCisgICAg
ICAgICAgICBpbW1lZGlhdGVseS4KKyAgICAgICAgCisgICAgICAgICAgICAtLSBFYXJseSBjYXNl
IChGYXN0IGFuaW1hdGlvbik6IFRoaXMgaGFwcGVucyB3aGVuIHRoZXJlIGlzIHN0aWxsIHRpbWUg
YmVmb3JlCisgICAgICAgICAgICB0aGUgbmV4dF9mcmFtZV9kZXNpcmVkX3RpbWUuIEluIHRoaXMg
Y2FzZSB3ZSBzaG91bGQgc2V0IHRoZSB0aW1lciB0byBmaXJlCisgICAgICAgICAgICBhZnRlciB0
aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBuZXh0X2ZyYW1lX2Rlc2lyZWRfdGltZSBhbmQgdGhl
IGN1cnJlbnRfdGltZS4KKworICAgICAgICAyKSBEZWxldGluZyB0aGUgY29kZSBmb3IgY2F0Y2hp
bmcgdXAgdGhlIGN1cnJlbnRfZnJhbWU6CisgICAgICAgIAorICAgICAgICAgICAgVGhpcyBjb2Rl
IHVzZWQgdG8gcnVuIGluIHRoZSBzbG93IGFuaW1hdGlvbiBjYXNlLiBJdCB3YXMgdHJ5aW5nIHRv
IGFkanVzdCB0aGUKKyAgICAgICAgICAgIGN1cnJlbnRfZnJhbWUgYWNjb3JkaW5nIHRvIHRoZSBj
dXJyZW50X3RpbWUgYXMgaWYgdGhlcmUgd2VyZSBubyBkZWxheS4gSXQgdHVybmVkCisgICAgICAg
ICAgICBvdXQgdGhhdCB0aGlzIG1pZ2h0IGNhdXNlIGEgYmlnZ2VyIGRlbGF5IGJlY2F1c2UgbW9z
dCBsaWtlbHkgdGhlIGRlY29kZXIgZGVjb2RlcworICAgICAgICAgICAgdGhlIGltYWdlIGZyYW1l
cyBpbmNyZW1lbnRhbGx5OyBpLmUuIHRvIGRlY29kZSBmcmFtZSBrLCBpdCBoYXMgdG8gaGF2ZSBm
cmFtZQorICAgICAgICAgICAgKGsgLSAxKSBkZWNvZGVkLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6
OmRyYXcpOiBSZW1vdmUgdGhlIGlPUyBzcGVjaWZpYyBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6
Qml0bWFwSW1hZ2U6OnN0YXJ0QW5pbWF0aW9uKTogTW92ZSB0aGUgYW5pbWF0aW9uIGZpbmlzaGlu
ZyBjb2RlIGZyb20gCisgICAgICAgIEJpdG1hcEltYWdlOjppbnRlcm5hbEFkdmFuY2VBbmltYXRp
b24oKSB0byB0aGlzIGZ1bmN0aW9uLiBTaW1wbGlmeSB0aGUgdGltZXIKKyAgICAgICAgZHVyYXRp
b24gY29kZSBhcyBpdCBpcyBkZXNjcmliZWQgYWJvdmUuCisKKyAgICAgICAgKFdlYkNvcmU6OkJp
dG1hcEltYWdlOjphZHZhbmNlQW5pbWF0aW9uKTogTWVyZ2UgQml0bWFwSW1hZ2U6OmludGVybmFs
QWR2YW5jZUFuaW1hdGlvbigpCisgICAgICAgIGludG8gdGhpcyBmdW5jdGlvbi4KKworICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OnJlc2V0QW5pbWF0aW9uKToKKyAgICAgICAgCisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oOgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2U6OmRyYXdUaWxlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlOjpzdGFydEFuaW1hdGlvbik6CisgICAgICAgICogc3ZnL2dy
YXBoaWNzL1NWR0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpzdGFydEFu
aW1hdGlvbik6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmg6CisgICAgICAgIFJl
bW92ZSB0aGUgY2F0Y2h1cCBjb2RlIGZvcm0gdGhlIEltYWdlIGFuZCBTVkdJbWFnZSBjbGFzc2Vz
LgorCiAyMDE2LTEwLTE0ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgRGlzcGxheSBQMyBDb2xvclNwYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCShyZXZpc2lvbiAyMDczNjcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MSwxMSArMTQxLDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQmIAogICAgIGlmIChkZXN0UmVjdC5pc0VtcHR5KCkgfHwgc3JjUmVjdC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBzdGFydEFuaW1h
dGlvbihEb05vdENhdGNoVXApOwotI2Vsc2UKICAgICBzdGFydEFuaW1hdGlvbigpOwotI2VuZGlm
CiAKICAgICBDb2xvciBjb2xvciA9IHNpbmdsZVBpeGVsU29saWRDb2xvcigpOwogICAgIGlmIChj
b2xvci5pc1ZhbGlkKCkpIHsKQEAgLTIyNywxNDggKzIyMyw1OCBAQCB2b2lkIEJpdG1hcEltYWdl
OjpzdGFydFRpbWVyKGRvdWJsZSBkZWxhCiAgICAgbV9mcmFtZVRpbWVyLT5zdGFydE9uZVNob3Qo
ZGVsYXkpOwogfQogCi12b2lkIEJpdG1hcEltYWdlOjpzdGFydEFuaW1hdGlvbihDYXRjaFVwQW5p
bWF0aW9uIGNhdGNoVXBJZk5lY2Vzc2FyeSkKK3ZvaWQgQml0bWFwSW1hZ2U6OnN0YXJ0QW5pbWF0
aW9uKCkKIHsKICAgICBpZiAobV9mcmFtZVRpbWVyIHx8ICFzaG91bGRBbmltYXRlKCkgfHwgZnJh
bWVDb3VudCgpIDw9IDEpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIElmIHdlIGFyZW4ndCBh
bHJlYWR5IGFuaW1hdGluZywgc2V0IG5vdyBhcyB0aGUgYW5pbWF0aW9uIHN0YXJ0IHRpbWUuCi0g
ICAgY29uc3QgZG91YmxlIHRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKLSAg
ICBpZiAoIW1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lKQotICAgICAgICBtX2Rlc2lyZWRGcmFtZVN0
YXJ0VGltZSA9IHRpbWU7CisgICAgaWYgKG1fY3VycmVudEZyYW1lID49IGZyYW1lQ291bnQoKSAt
IDEpIHsKKyAgICAgICAgLy8gRG9uJ3QgYWR2YW5jZSBwYXN0IHRoZSBsYXN0IGZyYW1lIGlmIHdl
IGhhdmVuJ3QgZGVjb2RlZCB0aGUgd2hvbGUgaW1hZ2UKKyAgICAgICAgLy8geWV0IGFuZCBvdXIg
cmVwZXRpdGlvbiBjb3VudCBpcyBwb3RlbnRpYWxseSB1bnNldC4gVGhlIHJlcGV0aXRpb24gY291
bnQKKyAgICAgICAgLy8gaW4gYSBHSUYgY2FuIHBvdGVudGlhbGx5IGNvbWUgYWZ0ZXIgYWxsIHRo
ZSByZXN0IG9mIHRoZSBpbWFnZSBkYXRhLCBzbworICAgICAgICAvLyB3YWl0IG9uIGl0LgorICAg
ICAgICBpZiAoIW1fc291cmNlLmlzQWxsRGF0YVJlY2VpdmVkKCkgJiYgcmVwZXRpdGlvbkNvdW50
KCkgPT0gUmVwZXRpdGlvbkNvdW50T25jZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICArK21fcmVwZXRpdGlvbnNDb21wbGV0ZTsKKworICAgICAgICAvLyBDaGVjayBmb3IgdGhlIGVu
ZCBvZiBhbmltYXRpb24uCisgICAgICAgIGlmIChyZXBldGl0aW9uQ291bnQoKSAhPSBSZXBldGl0
aW9uQ291bnRJbmZpbml0ZSAmJiBtX3JlcGV0aXRpb25zQ29tcGxldGUgPiByZXBldGl0aW9uQ291
bnQoKSkgeworICAgICAgICAgICAgbV9hbmltYXRpb25GaW5pc2hlZCA9IHRydWU7CisgICAgICAg
ICAgICBkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeShmYWxzZSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2Fy
eSh0cnVlKTsKKyAgICB9CiAKICAgICAvLyBEb24ndCBhZHZhbmNlIHRoZSBhbmltYXRpb24gdG8g
YW4gaW5jb21wbGV0ZSBmcmFtZS4KICAgICBzaXplX3QgbmV4dEZyYW1lID0gKG1fY3VycmVudEZy
YW1lICsgMSkgJSBmcmFtZUNvdW50KCk7CiAgICAgaWYgKCFtX3NvdXJjZS5pc0FsbERhdGFSZWNl
aXZlZCgpICYmICFmcmFtZUlzQ29tcGxldGVBdEluZGV4KG5leHRGcmFtZSkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIERvbid0IGFkdmFuY2UgcGFzdCB0aGUgbGFzdCBmcmFtZSBpZiB3ZSBo
YXZlbid0IGRlY29kZWQgdGhlIHdob2xlIGltYWdlCi0gICAgLy8geWV0IGFuZCBvdXIgcmVwZXRp
dGlvbiBjb3VudCBpcyBwb3RlbnRpYWxseSB1bnNldC4gVGhlIHJlcGV0aXRpb24gY291bnQKLSAg
ICAvLyBpbiBhIEdJRiBjYW4gcG90ZW50aWFsbHkgY29tZSBhZnRlciBhbGwgdGhlIHJlc3Qgb2Yg
dGhlIGltYWdlIGRhdGEsIHNvCi0gICAgLy8gd2FpdCBvbiBpdC4KLSAgICBpZiAoIW1fc291cmNl
LmlzQWxsRGF0YVJlY2VpdmVkKCkgJiYgcmVwZXRpdGlvbkNvdW50KCkgPT0gUmVwZXRpdGlvbkNv
dW50T25jZSAmJiBtX2N1cnJlbnRGcmFtZSA+PSAoZnJhbWVDb3VudCgpIC0gMSkpCi0gICAgICAg
IHJldHVybjsKKyAgICBkb3VibGUgdGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OwogCi0gICAgLy8gRGV0ZXJtaW5lIHRpbWUgZm9yIG5leHQgZnJhbWUgdG8gc3RhcnQuIEJ5IGln
bm9yaW5nIHBhaW50IGFuZCB0aW1lciBsYWcKLSAgICAvLyBpbiB0aGlzIGNhbGN1bGF0aW9uLCB3
ZSBtYWtlIHRoZSBhbmltYXRpb24gYXBwZWFyIHRvIHJ1biBhdCBpdHMgZGVzaXJlZAotICAgIC8v
IHJhdGUgcmVnYXJkbGVzcyBvZiBob3cgZmFzdCBpdCdzIGJlaW5nIHJlcGFpbnRlZC4KLSAgICBj
b25zdCBkb3VibGUgY3VycmVudER1cmF0aW9uID0gZnJhbWVEdXJhdGlvbkF0SW5kZXgobV9jdXJy
ZW50RnJhbWUpOwotICAgIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lICs9IGN1cnJlbnREdXJhdGlv
bjsKLQotI2lmICFQTEFURk9STShJT1MpCi0gICAgLy8gV2hlbiBhbiBhbmltYXRlZCBpbWFnZSBp
cyBtb3JlIHRoYW4gZml2ZSBtaW51dGVzIG91dCBvZiBkYXRlLCB0aGUKLSAgICAvLyB1c2VyIHBy
b2JhYmx5IGRvZXNuJ3QgY2FyZSBhYm91dCByZXN5bmNpbmcgYW5kIHdlIGNvdWxkIGJ1cm4gYSBs
b3Qgb2YKLSAgICAvLyB0aW1lIGxvb3BpbmcgdGhyb3VnaCBmcmFtZXMgYmVsb3cuIEp1c3QgcmVz
ZXQgdGhlIHRpbWluZ3MuCi0gICAgY29uc3QgZG91YmxlIGNBbmltYXRpb25SZXN5bmNDdXRvZmYg
PSA1ICogNjA7Ci0gICAgaWYgKCh0aW1lIC0gbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUpID4gY0Fu
aW1hdGlvblJlc3luY0N1dG9mZikKLSAgICAgICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPSB0
aW1lICsgY3VycmVudER1cmF0aW9uOwotI2Vsc2UKLSAgICAvLyBNYWludGFpbmluZyBmcmFtZS10
by1mcmFtZSBkZWxheXMgaXMgbW9yZSBpbXBvcnRhbnQgdGhhbgotICAgIC8vIG1haW50YWluaW5n
IGFic29sdXRlIGFuaW1hdGlvbiB0aW1pbmcsIHNvIHJlc2V0IHRoZSB0aW1pbmdzIGVhY2ggZnJh
bWUuCi0gICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPSB0aW1lICsgY3VycmVudER1cmF0aW9u
OwotI2VuZGlmCi0KLSAgICAvLyBUaGUgaW1hZ2UgbWF5IGxvYWQgbW9yZSBzbG93bHkgdGhhbiBp
dCdzIHN1cHBvc2VkIHRvIGFuaW1hdGUsIHNvIHRoYXQgYnkKLSAgICAvLyB0aGUgdGltZSB3ZSBy
ZWFjaCB0aGUgZW5kIG9mIHRoZSBmaXJzdCByZXBldGl0aW9uLCB3ZSdyZSB3ZWxsIGJlaGluZC4K
LSAgICAvLyBDbGFtcCB0aGUgZGVzaXJlZCBmcmFtZSBzdGFydCB0aW1lIGluIHRoaXMgY2FzZSwg
c28gdGhhdCB3ZSBkb24ndCBza2lwCi0gICAgLy8gZnJhbWVzIChvciB3aG9sZSBpdGVyYXRpb25z
KSB0cnlpbmcgdG8gImNhdGNoIHVwIi4gVGhpcyBpcyBhIHRyYWRlb2ZmOgotICAgIC8vIEl0IGd1
YXJhbnRlZXMgdXNlcnMgc2VlIHRoZSB3aG9sZSBhbmltYXRpb24gdGhlIHNlY29uZCB0aW1lIHRo
cm91Z2ggYW5kCi0gICAgLy8gZG9uJ3QgbWlzcyBhbnkgcmVwZXRpdGlvbnMsIGFuZCBpcyBjbG9z
ZXIgdG8gd2hhdCBvdGhlciBicm93c2VycyBkbzsgb24KLSAgICAvLyB0aGUgb3RoZXIgaGFuZCwg
aXQgbWFrZXMgYW5pbWF0aW9ucyAibGVzcyBhY2N1cmF0ZSIgZm9yIHBhZ2VzIHRoYXQgdHJ5IHRv
Ci0gICAgLy8gc3luYyBhbiBpbWFnZSBhbmQgc29tZSBvdGhlciByZXNvdXJjZSAoZS5nLiBhdWRp
byksIGVzcGVjaWFsbHkgaWYgdXNlcnMKLSAgICAvLyBzd2l0Y2ggdGFicyAoYW5kIHRodXMgc3Rv
cCBkcmF3aW5nIHRoZSBhbmltYXRpb24sIHdoaWNoIHdpbGwgcGF1c2UgaXQpCi0gICAgLy8gZHVy
aW5nIHRoYXQgaW5pdGlhbCBsb29wLCB0aGVuIHN3aXRjaCBiYWNrIGxhdGVyLgotICAgIGlmIChu
ZXh0RnJhbWUgPT0gMCAmJiBtX3JlcGV0aXRpb25zQ29tcGxldGUgPT0gMCAmJiBtX2Rlc2lyZWRG
cmFtZVN0YXJ0VGltZSA8IHRpbWUpCisgICAgLy8gSGFuZGxlIGluaXRpYWwgc3RhdGUuCisgICAg
aWYgKCFtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSkKICAgICAgICAgbV9kZXNpcmVkRnJhbWVTdGFy
dFRpbWUgPSB0aW1lOwogCi0gICAgaWYgKGNhdGNoVXBJZk5lY2Vzc2FyeSA9PSBEb05vdENhdGNo
VXAgfHwgdGltZSA8IG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lKSB7Ci0gICAgICAgIC8vIEhhdmVu
J3QgeWV0IHJlYWNoZWQgdGltZSBmb3IgbmV4dCBmcmFtZSB0byBzdGFydDsgZGVsYXkgdW50aWwg
dGhlbi4KLSAgICAgICAgc3RhcnRUaW1lcihzdGQ6Om1heDxkb3VibGU+KG1fZGVzaXJlZEZyYW1l
U3RhcnRUaW1lIC0gdGltZSwgMCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIC8vIFNl
dHRpbmcgJ21fZGVzaXJlZEZyYW1lU3RhcnRUaW1lJyB0byAndGltZScgbWVhbnMgd2UgYXJlIGxh
dGU7IG90aGVyd2lzZSB3ZSBhcmUgZWFybHkuCisgICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUg
PSBzdGQ6Om1heCh0aW1lLCBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSArIGZyYW1lRHVyYXRpb25B
dEluZGV4KG1fY3VycmVudEZyYW1lKSk7CiAKICAgICBBU1NFUlQoIW1fZnJhbWVUaW1lcik7Ci0K
LSAgICAvLyBXZSd2ZSBhbHJlYWR5IHJlYWNoZWQgb3IgcGFzc2VkIHRoZSB0aW1lIGZvciB0aGUg
bmV4dCBmcmFtZSB0byBzdGFydC4KLSAgICAvLyBTZWUgaWYgd2UndmUgYWxzbyBwYXNzZWQgdGhl
IHRpbWUgZm9yIGZyYW1lcyBhZnRlciB0aGF0IHRvIHN0YXJ0LCBpbgotICAgIC8vIGNhc2Ugd2Ug
bmVlZCB0byBza2lwIHNvbWUgZnJhbWVzIGVudGlyZWx5LiBSZW1lbWJlciBub3QgdG8gYWR2YW5j
ZQotICAgIC8vIHRvIGFuIGluY29tcGxldGUgZnJhbWUuCi0KLSNpZiAhTE9HX0RJU0FCTEVECi0g
ICAgc2l6ZV90IHN0YXJ0Q2F0Y2h1cEZyYW1lSW5kZXggPSBuZXh0RnJhbWU7Ci0jZW5kaWYKLQot
ICAgIGZvciAoc2l6ZV90IGZyYW1lQWZ0ZXJOZXh0ID0gKG5leHRGcmFtZSArIDEpICUgZnJhbWVD
b3VudCgpOyBmcmFtZUlzQ29tcGxldGVBdEluZGV4KGZyYW1lQWZ0ZXJOZXh0KTsgZnJhbWVBZnRl
ck5leHQgPSAobmV4dEZyYW1lICsgMSkgJSBmcmFtZUNvdW50KCkpIHsKLSAgICAgICAgLy8gU2hv
dWxkIHdlIHNraXAgdGhlIG5leHQgZnJhbWU/Ci0gICAgICAgIGRvdWJsZSBmcmFtZUFmdGVyTmV4
dFN0YXJ0VGltZSA9IG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lICsgZnJhbWVEdXJhdGlvbkF0SW5k
ZXgobmV4dEZyYW1lKTsKLSAgICAgICAgaWYgKHRpbWUgPCBmcmFtZUFmdGVyTmV4dFN0YXJ0VGlt
ZSkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIC8vIFllczsgc2tpcCBvdmVyIGl0IHdp
dGhvdXQgbm90aWZ5aW5nIG91ciBvYnNlcnZlcnMuIElmIHdlIGhpdCB0aGUgZW5kIHdoaWxlIGNh
dGNoaW5nIHVwLAotICAgICAgICAvLyB0ZWxsIHRoZSBvYnNlcnZlciBhc3luY2hyb25vdXNseS4K
LSAgICAgICAgaWYgKCFpbnRlcm5hbEFkdmFuY2VBbmltYXRpb24oU2tpcHBpbmdGcmFtZXNUb0Nh
dGNoVXApKSB7Ci0gICAgICAgICAgICBtX2FuaW1hdGlvbkZpbmlzaGVkV2hlbkNhdGNoaW5nVXAg
PSB0cnVlOwotICAgICAgICAgICAgc3RhcnRUaW1lcigwKTsKLSAgICAgICAgICAgIExPRyhJbWFn
ZXMsICJCaXRtYXBJbWFnZSAlcCBzdGFydEFuaW1hdGlvbiBjYXRjaGluZyB1cCBmcm9tIGZyYW1l
ICVsdSwgZW5kZWQiLCB0aGlzLCBzdGFydENhdGNodXBGcmFtZUluZGV4KTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSA9IGZy
YW1lQWZ0ZXJOZXh0U3RhcnRUaW1lOwotICAgICAgICBuZXh0RnJhbWUgPSBmcmFtZUFmdGVyTmV4
dDsKLSAgICB9Ci0KLSAgICBMT0coSW1hZ2VzLCAiQml0bWFwSW1hZ2UgJXAgc3RhcnRBbmltYXRp
b24gY2F0Y2hpbmcgdXAganVtcGVkIGZyb20gZnJvbSBmcmFtZSAlbHUgdG8gJWQiLCB0aGlzLCBz
dGFydENhdGNodXBGcmFtZUluZGV4LCAoaW50KW5leHRGcmFtZSAtIDEpOwotCi0gICAgLy8gRHJh
dyB0aGUgbmV4dCBmcmFtZSBhcyBzb29uIGFzIHBvc3NpYmxlLiBOb3RlIHRoYXQgbV9kZXNpcmVk
RnJhbWVTdGFydFRpbWUKLSAgICAvLyBtYXkgYmUgaW4gdGhlIHBhc3QsIG1lYW5pbmcgdGhlIG5l
eHQgdGltZSB0aHJvdWdoIHRoaXMgZnVuY3Rpb24gd2UnbGwKLSAgICAvLyBraWNrIG9mZiB0aGUg
bmV4dCBhZHZhbmNlbWVudCBzb29uZXIgdGhhbiB0aGlzIGZyYW1lJ3MgZHVyYXRpb24gd291bGQg
c3VnZ2VzdC4KLSAgICBzdGFydFRpbWVyKDApOworICAgIHN0YXJ0VGltZXIobV9kZXNpcmVkRnJh
bWVTdGFydFRpbWUgLSB0aW1lKTsKIH0KIAogdm9pZCBCaXRtYXBJbWFnZTo6YWR2YW5jZUFuaW1h
dGlvbigpCiB7Ci0gICAgaW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKCk7Ci0gICAgLy8gQXQgdGhp
cyBwb2ludCB0aGUgaW1hZ2UgcmVnaW9uIGhhcyBiZWVuIG1hcmtlZCBkaXJ0eSwgYW5kIGlmIGl0
J3MKLSAgICAvLyBvbnNjcmVlbiwgd2UnbGwgc29vbiBtYWtlIGEgY2FsbCB0byBkcmF3KCksIHdo
aWNoIHdpbGwgY2FsbAotICAgIC8vIHN0YXJ0QW5pbWF0aW9uKCkgYWdhaW4gdG8ga2VlcCB0aGUg
YW5pbWF0aW9uIG1vdmluZy4KLX0KLQotYm9vbCBCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNl
QW5pbWF0aW9uKEFuaW1hdGlvbkFkdmFuY2VtZW50IGFkdmFuY2VtZW50KQotewogICAgIGNsZWFy
VGltZXIoKTsKIAotICAgIGlmIChtX2FuaW1hdGlvbkZpbmlzaGVkV2hlbkNhdGNoaW5nVXApIHsK
LSAgICAgICAgaW1hZ2VPYnNlcnZlcigpLT5hbmltYXRpb25BZHZhbmNlZCh0aGlzKTsKLSAgICAg
ICAgbV9hbmltYXRpb25GaW5pc2hlZFdoZW5DYXRjaGluZ1VwID0gZmFsc2U7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICArK21fY3VycmVudEZyYW1lOwotICAgIGJvb2wgYWR2
YW5jZWRBbmltYXRpb24gPSB0cnVlOwotICAgIGJvb2wgZGVzdHJveUFsbCA9IGZhbHNlOwotICAg
IGlmIChtX2N1cnJlbnRGcmFtZSA+PSBmcmFtZUNvdW50KCkpIHsKLSAgICAgICAgKyttX3JlcGV0
aXRpb25zQ29tcGxldGU7CisgICAgbV9jdXJyZW50RnJhbWUgPSAobV9jdXJyZW50RnJhbWUgKyAx
KSAlIGZyYW1lQ291bnQoKTsKKyAgICBkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeShmYWxz
ZSk7CiAKLSAgICAgICAgLy8gR2V0IHRoZSByZXBldGl0aW9uIGNvdW50IGFnYWluLiBJZiB3ZSB3
ZXJlbid0IGFibGUgdG8gZ2V0IGEKLSAgICAgICAgLy8gcmVwZXRpdGlvbiBjb3VudCBiZWZvcmUs
IHdlIHNob3VsZCBoYXZlIGRlY29kZWQgdGhlIHdob2xlIGltYWdlIGJ5Ci0gICAgICAgIC8vIG5v
dywgc28gaXQgc2hvdWxkIG5vdyBiZSBhdmFpbGFibGUuCi0gICAgICAgIGlmIChyZXBldGl0aW9u
Q291bnQoKSAhPSBSZXBldGl0aW9uQ291bnRJbmZpbml0ZSAmJiBtX3JlcGV0aXRpb25zQ29tcGxl
dGUgPiByZXBldGl0aW9uQ291bnQoKSkgewotICAgICAgICAgICAgbV9hbmltYXRpb25GaW5pc2hl
ZCA9IHRydWU7Ci0gICAgICAgICAgICBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSA9IDA7Ci0gICAg
ICAgICAgICAtLW1fY3VycmVudEZyYW1lOwotICAgICAgICAgICAgYWR2YW5jZWRBbmltYXRpb24g
PSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fY3VycmVudEZyYW1lID0g
MDsKLSAgICAgICAgICAgIGRlc3Ryb3lBbGwgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotICAg
IGRlc3Ryb3lEZWNvZGVkRGF0YUlmTmVjZXNzYXJ5KGRlc3Ryb3lBbGwpOwotCi0gICAgLy8gV2Ug
bmVlZCB0byBkcmF3IHRoaXMgZnJhbWUgaWYgd2UgYWR2YW5jZWQgdG8gaXQgd2hpbGUgbm90IHNr
aXBwaW5nLCBvciBpZgotICAgIC8vIHdoaWxlIHRyeWluZyB0byBza2lwIGZyYW1lcyB3ZSBoaXQg
dGhlIGxhc3QgZnJhbWUgYW5kIHRodXMgaGFkIHRvIHN0b3AuCi0gICAgaWYgKGFkdmFuY2VtZW50
ID09IE5vcm1hbCAmJiBhZHZhbmNlZEFuaW1hdGlvbikKKyAgICBpZiAoaW1hZ2VPYnNlcnZlcigp
KQogICAgICAgICBpbWFnZU9ic2VydmVyKCktPmFuaW1hdGlvbkFkdmFuY2VkKHRoaXMpOwotCi0g
ICAgcmV0dXJuIGFkdmFuY2VkQW5pbWF0aW9uOwogfQogCiB2b2lkIEJpdG1hcEltYWdlOjpzdG9w
QW5pbWF0aW9uKCkKQEAgLTM4Miw3ICsyODgsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpyZXNldEFu
aW1hdGlvbigpCiB7CiAgICAgc3RvcEFuaW1hdGlvbigpOwogICAgIG1fY3VycmVudEZyYW1lID0g
MDsKLSAgICBtX3JlcGV0aXRpb25zQ29tcGxldGUgPSAwOworICAgIG1fcmVwZXRpdGlvbnNDb21w
bGV0ZSA9IFJlcGV0aXRpb25Db3VudE5vbmU7CiAgICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUg
PSAwOwogICAgIG1fYW5pbWF0aW9uRmluaXNoZWQgPSBmYWxzZTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCShyZXZpc2lvbiAyMDcz
NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTIsMTcgKzE1Miw5IEBAIHByb3RlY3RlZDoKICAgICBib29sIGlz
QW5pbWF0ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NvdXJjZS5mcmFtZUNvdW50KCkg
PiAxOyB9CiAgICAgYm9vbCBzaG91bGRBbmltYXRlKCk7CiAgICAgYm9vbCBjYW5BbmltYXRlKCk7
Ci0gICAgdm9pZCBzdGFydEFuaW1hdGlvbihDYXRjaFVwQW5pbWF0aW9uID0gQ2F0Y2hVcCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzdGFydEFuaW1hdGlvbigpIG92ZXJyaWRlOwogICAgIHZvaWQgYWR2
YW5jZUFuaW1hdGlvbigpOwogCi0gICAgLy8gRnVuY3Rpb24gdGhhdCBkb2VzIHRoZSByZWFsIHdv
cmsgb2YgYWR2YW5jaW5nIHRoZSBhbmltYXRpb24uIFdoZW4KLSAgICAvLyBza2lwcGluZ0ZyYW1l
cyBpcyB0cnVlLCB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbG9vcCB0cnlpbmcgdG8gc2tpcCBv
dmVyCi0gICAgLy8gYSBidW5jaCBvZiBhbmltYXRpb24gZnJhbWVzLCBzbyB3ZSBzaG91bGQgbm90
IGRvIHRoaW5ncyBsaWtlIGRlY29kZSBlYWNoCi0gICAgLy8gb25lIG9yIG5vdGlmeSBvdXIgb2Jz
ZXJ2ZXJzLgotICAgIC8vIFJldHVybnMgd2hldGhlciB0aGUgYW5pbWF0aW9uIHdhcyBhZHZhbmNl
ZC4KLSAgICBlbnVtIEFuaW1hdGlvbkFkdmFuY2VtZW50IHsgTm9ybWFsLCBTa2lwcGluZ0ZyYW1l
c1RvQ2F0Y2hVcCB9OwotICAgIGJvb2wgaW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKEFuaW1hdGlv
bkFkdmFuY2VtZW50ID0gTm9ybWFsKTsKLQogICAgIC8vIEl0IG1heSBsb29rIHVudXN1YWwgdGhh
dCB0aGVyZSBpcyBubyBzdGFydCBhbmltYXRpb24gY2FsbCBhcyBwdWJsaWMgQVBJLiBUaGlzIGlz
IGJlY2F1c2UKICAgICAvLyB3ZSBzdGFydCBhbmQgc3RvcCBhbmltYXRpbmcgbGF6aWx5LiBBbmlt
YXRpb24gYmVnaW5zIHdoZW5ldmVyIHNvbWVvbmUgZHJhd3MgdGhlIGltYWdlLiBJdCB3aWxsCiAg
ICAgLy8gYXV0b21hdGljYWxseSBwYXVzZSBvbmNlIGFsbCBvYnNlcnZlcnMgbm8gbG9uZ2VyIHdh
bnQgdG8gcmVuZGVyIHRoZSBpbWFnZSBhbnl3aGVyZS4KQEAgLTE5Myw3ICsxODUsNiBAQCBwcml2
YXRlOgogICAgIFJlcGV0aXRpb25Db3VudCBtX3JlcGV0aXRpb25zQ29tcGxldGUgeyBSZXBldGl0
aW9uQ291bnROb25lIH07IC8vIEhvdyBtYW55IHJlcGV0aXRpb25zIHdlJ3ZlIGZpbmlzaGVkLgog
ICAgIGRvdWJsZSBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSB7IDAgfTsgLy8gVGhlIHN5c3RlbSB0
aW1lIGF0IHdoaWNoIHdlIGhvcGUgdG8gc2VlIHRoZSBuZXh0IGNhbGwgdG8gc3RhcnRBbmltYXRp
b24oKS4KICAgICBib29sIG1fYW5pbWF0aW9uRmluaXNoZWQgeyBmYWxzZSB9OwotICAgIGJvb2wg
bV9hbmltYXRpb25GaW5pc2hlZFdoZW5DYXRjaGluZ1VwIHsgZmFsc2UgfTsKIAogI2lmIFVTRShB
UFBLSVQpCiAgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNJbWFnZT4gbV9uc0ltYWdlOyAvLyBBIGNh
Y2hlZCBOU0ltYWdlIG9mIGFsbCB0aGUgZnJhbWVzLiBPbmx5IGJ1aWx0IGxhemlseSBpZiBzb21l
b25lIGFjdHVhbGx5IHF1ZXJpZXMgZm9yIG9uZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAJKHJldmlzaW9uIDIwNzM2NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk0LDEy
ICsxOTQsNyBAQCB2b2lkIEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjCiAgICAg
QWZmaW5lVHJhbnNmb3JtIHBhdHRlcm5UcmFuc2Zvcm0gPSBBZmZpbmVUcmFuc2Zvcm0oKS5zY2Fs
ZU5vblVuaWZvcm0oc2NhbGUud2lkdGgoKSwgc2NhbGUuaGVpZ2h0KCkpOwogICAgIEZsb2F0UmVj
dCB0aWxlUmVjdChGbG9hdFBvaW50KCksIGludHJpbnNpY1RpbGVTaXplKTsKICAgICBkcmF3UGF0
dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIG9uZVRpbGVS
ZWN0LmxvY2F0aW9uKCksIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOwotCi0jaWYgUExBVEZPUk0o
SU9TKQotICAgIHN0YXJ0QW5pbWF0aW9uKERvTm90Q2F0Y2hVcCk7Ci0jZWxzZQogICAgIHN0YXJ0
QW5pbWF0aW9uKCk7Ci0jZW5kaWYKIH0KIAogLy8gRklYTUU6IE1lcmdlIHdpdGggdGhlIG90aGVy
IGRyYXdUaWxlZCBldmVudHVhbGx5LCBzaW5jZSB3ZSBuZWVkIGEgY29tYmluYXRpb24gb2YgYm90
aCBmb3Igc29tZSB0aGluZ3MuCkBAIC0yNzksMTIgKzI3NCw3IEBAIHZvaWQgSW1hZ2U6OmRyYXdU
aWxlZChHcmFwaGljc0NvbnRleHQmIGMKIAogICAgIEZsb2F0UG9pbnQgcGF0dGVyblBoYXNlKGRz
dFJlY3QueCgpIC0gaFBoYXNlLCBkc3RSZWN0LnkoKSAtIHZQaGFzZSk7CiAgICAgZHJhd1BhdHRl
cm4oY3R4dCwgZHN0UmVjdCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGF0dGVyblBoYXNl
LCBzcGFjaW5nLCBvcCk7Ci0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgc3RhcnRBbmltYXRpb24o
RG9Ob3RDYXRjaFVwKTsKLSNlbHNlCiAgICAgc3RhcnRBbmltYXRpb24oKTsKLSNlbmRpZgogfQog
CiAjaWYgRU5BQkxFKElNQUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAkocmV2aXNpb24gMjA3MzY3KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MTI2LDggKzEyNiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEFuaW1hdGlvbiBiZWdpbnMgd2hlbmV2
ZXIgc29tZW9uZSBkcmF3cyB0aGUgaW1hZ2UsIHNvIHN0YXJ0QW5pbWF0aW9uKCkgaXMgbm90IG5v
cm1hbGx5IGNhbGxlZC4KICAgICAvLyBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgcGF1c2Ugb25jZSBh
bGwgb2JzZXJ2ZXJzIG5vIGxvbmdlciB3YW50IHRvIHJlbmRlciB0aGUgaW1hZ2UgYW55d2hlcmUu
Ci0gICAgZW51bSBDYXRjaFVwQW5pbWF0aW9uIHsgRG9Ob3RDYXRjaFVwLCBDYXRjaFVwIH07Ci0g
ICAgdmlydHVhbCB2b2lkIHN0YXJ0QW5pbWF0aW9uKENhdGNoVXBBbmltYXRpb24gPSBDYXRjaFVw
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBbmltYXRpb24oKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc3RvcEFuaW1hdGlvbigpIHt9CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbWF0aW9u
KCkge30KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNw
cAkocmV2aXNpb24gMjA3MzY3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcyLDggKzM3Miw3IEBAIHZvaWQgU1ZHSW1hZ2U6
OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb24KICAgICAgICAgaW50cmluc2ljUmF0aW8gPSBGbG9h
dFNpemUoZmxvYXRWYWx1ZUZvckxlbmd0aChpbnRyaW5zaWNXaWR0aCwgMCksIGZsb2F0VmFsdWVG
b3JMZW5ndGgoaW50cmluc2ljSGVpZ2h0LCAwKSk7CiB9CiAKLS8vIEZJWE1FOiBzdXBwb3J0IGNh
dGNoVXBJZk5lY2Vzc2FyeS4KLXZvaWQgU1ZHSW1hZ2U6OnN0YXJ0QW5pbWF0aW9uKENhdGNoVXBB
bmltYXRpb24pCit2b2lkIFNWR0ltYWdlOjpzdGFydEFuaW1hdGlvbigpCiB7CiAgICAgU1ZHU1ZH
RWxlbWVudCogcm9vdEVsZW1lbnQgPSB0aGlzLT5yb290RWxlbWVudCgpOwogICAgIGlmICghcm9v
dEVsZW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAkocmV2
aXNpb24gMjA3MzY3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVs
YXRpdmVXaWR0aCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBj
b25zdCBmaW5hbDsKIAotICAgIHZvaWQgc3RhcnRBbmltYXRpb24oQ2F0Y2hVcEFuaW1hdGlvbiA9
IENhdGNoVXApIGZpbmFsOworICAgIHZvaWQgc3RhcnRBbmltYXRpb24oKSBmaW5hbDsKICAgICB2
b2lkIHN0b3BBbmltYXRpb24oKSBmaW5hbDsKICAgICB2b2lkIHJlc2V0QW5pbWF0aW9uKCkgZmlu
YWw7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzM2NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE2LTEwLTE0ICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRGVsZXRlIHRoZSBh
bmltYXRlZCBpbWFnZSBjYXRjaHVwIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MzQxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgYW5pbWF0ZWQgZ2lmIGhhcyBvbmUgYmx1ZSBmcmFtZSwg
b25lIGdyZWVuIGZyYW1lIGFuZCBlaWdodCByZWQgZnJhbWVzLgorICAgICAgICBUaGUgdGVzdCBw
YWdlIHJlbmRlcnMgb25seSB0d28gZnJhbWVzIGZyb20gdGhpcyB0aGlzIGltYWdlIG9uIGEgY2Fu
dmFzLiBUaGUKKyAgICAgICAgdGVzdCBwYXNzZXMgaWYgdGhlIHNlY29uZCBmcmFtZSAodGhlIGdy
ZWVuIG9uZSkgaXMgcmVuZGVyIG9uIHRoZSBjYW52YXMgZXZlbgorICAgICAgICBpZiBkcmF3SW1h
Z2UoKSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGR1cmF0aW9uIG9mIHRoZSBmaXJzdCBmcmFtZS4KKwor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL29yZGVyZWQtYW5pbWF0ZWQtaW1hZ2UtZnJhbWVzLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL29yZGVyZWQtYW5pbWF0ZWQt
aW1hZ2UtZnJhbWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc291cmNl
cy9hbmltYXRlZC1ibHVlLWdyZWVuLXJlZC5naWY6IEFkZGVkLgorCiAyMDE2LTEwLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjIwNzMxOS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL29yZGVyZWQtYW5p
bWF0ZWQtaW1hZ2UtZnJhbWVzLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvb3JkZXJlZC1hbmltYXRlZC1pbWFnZS1mcmFtZXMtZXhwZWN0ZWQuaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9vcmRlcmVkLWFuaW1h
dGVkLWltYWdlLWZyYW1lcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c3R5bGU+CisgICAgZGl2IHsKKyAgICAg
ICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKKyAgICB9IAorPC9zdHlsZT4gICAgCis8Ym9keT4KKyAgICA8ZGl2
PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
b3JkZXJlZC1hbmltYXRlZC1pbWFnZS1mcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9vcmRlcmVkLWFuaW1hdGVkLWltYWdlLWZyYW1lcy5odG1sCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL29yZGVyZWQtYW5pbWF0ZWQtaW1h
Z2UtZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxzdHlsZT4KKyAgICBjYW52YXMgeworICAgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAgfQorPC9zdHlsZT4gICAgCis8Ym9keT4K
KyAgICA8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworCisgICAgICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZTsKKyAgICAgICAgaW1hZ2Uu
b25sb2FkID0gZHJhdzsKKyAgICAgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9hbmltYXRlZC1i
bHVlLWdyZWVuLXJlZC5naWYiOworICAgICAgICB2YXIgZHJhd0NvdW50ID0gMDsKKworICAgICAg
ICBmdW5jdGlvbiBkcmF3KCkKKyAgICAgICAgeyAgIAorICAgICAgICAgICAgdmFyIGNhbnZhcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICAgICAgICAgIHZhciBjdHgg
PSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKworICAgICAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdHguZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBjYW52
YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAgICAgICAgICAgIGlmICgrK2RyYXdDb3Vu
dCA9PSAyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRyYXcoKTsKKyAgICAgICAg
ICAgIH0sIDEwMCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9hbmltYXRlZC1ibHVlLWdy
ZWVuLXJlZC5naWYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBi
aW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2FuaW1hdGVkLWJsdWUtZ3JlZW4t
cmVkLmdpZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMv
YW5pbWF0ZWQtYmx1ZS1ncmVlbi1yZWQuZ2lmCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9hbmltYXRlZC1ibHVlLWdyZWVuLXJlZC5naWYJKHdvcmtp
bmcgY29weSkKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jl
c291cmNlcy9hbmltYXRlZC1ibHVlLWdyZWVuLXJlZC5naWYKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
Om1pbWUtdHlwZQojIyAtMCwwICsxICMjCithcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQoKUjBsR09EbGhsZ0NXQVBBQUFBQUEvd0FBQUNINUJB
Z0NBQUFBSWY4TFRrVlVVME5CVUVVeUxqQURBUUFBQUNIL0MwbHRZV2RsVFdGbgphV05yRFdkaGJX
MWhQVEF1TkRVME5UVUFMQUFBQUFDV0FKWUFBQUs2aEkrcHkrMFBvNXkwMm91ejNyejdENGJpU0pi
bWlhYnF5cmJ1CkM4ZnlUTmYyamVmNnp2ZitEd3dLaDhTaThZaE1LcGZNcHZNSmpVcW4xS3IxaXMx
cXQ5eXU5d3NPaThma3N2bU1UcXZYN0xiN0RZL0wKNS9TNi9ZN1A2L2Y4dnY4UEdDZzRTRmhvZUlp
WXFMakkyT2o0Q0JrcE9VbFphWG1KbWFtNXlkbnArUWthS2pwS1dtcDZpcHFxdXNyYQo2dm9LR3lz
N1MxdHJlNHVicTd2TDIrdjdDeHdzUEV4Y2JIeU1uS3k4ek56cy9Bd2RMVDFOWFcxOXJWZ0FBQ0g1
QkFnQ0FBQUFJZjhMClNXMWhaMlZOWVdkcFkyc05aMkZ0YldFOU1DNDBOVFExTlFBc0FBQUFBSllB
bGdDQUFJQUFBQUFBQXJxRWo2bkw3UStqbkxUYWk3UGUKdlBzUGh1SklsdWFKcHVyS3R1NEx4L0pN
MS9hTjUvck85LzRQREFxSHhLTHhpRXdxbDh5bTh3bU5TcWZVcXZXS3pXcTMzSzczQ3c2TAp4K1N5
K1l4T3E5ZnN0dnNOajh2bjlMcjlqcy9yOS95Ky93OFlLRGhJV0doNGlKaW91TWpZNlBnSUdTazVT
VmxwZVltWnFibkoyZW41CkNSb3FPa3BhYW5xS21xcTZ5dHJxK2dvYkt6dExXMnQ3aTV1cnU4dmI2
L3NMSEN3OFRGeHNmSXljckx6TTNPejhEQjB0UFUxZGJYMnQKV0FBQUlma0VDQUlBQUFBaC93dEpi
V0ZuWlUxaFoybGphdzFuWVcxdFlUMHdMalExTkRVMUFDd0FBQUFBbGdDV0FJRC9BQUFBQUFBQwp1
b1NQcWN2dEQ2T2N0TnFMczk2OCt3K0c0a2lXNW9tbTZzcTI3Z3ZIOGt6WDlvM24rczczL2c4TUNv
ZkVvdkdJVENxWHpLYnpDWTFLCnA5U3E5WXJOYXJmY3J2Y0xEb3ZINUxMNWpFNnIxK3kyK3cyUHkr
ZjB1djJPeit2My9MNy9EeGdvT0VoWWFIaUltS2k0eU5qbytBZ1oKS1RsSldXbDVpWm1wdWNuWjZm
a0pHaW82U2xwcWVvcWFxcnJLMnVyNkNoc3JPMHRiYTN1TG02dTd5OXZyK3dzY0xEeE1YR3g4akp5
cwp2TXpjN1B3TUhTMDlUVjF0ZmExWUFBQWgrUVFJQWdBQUFDSC9DMGx0WVdkbFRXRm5hV05yRFdk
aGJXMWhQVEF1TkRVME5UVUFMQUFBCkFBQ1dBSllBZ1A4QUFBQUFBQUs2aEkrcHkrMFBvNXkwMm91
ejNyejdENGJpU0pibWlhYnF5cmJ1QzhmeVROZjJqZWY2enZmK0R3d0sKaDhTaThZaE1LcGZNcHZN
SmpVcW4xS3IxaXMxcXQ5eXU5d3NPaThma3N2bU1UcXZYN0xiN0RZL0w1L1M2L1k3UDYvZjh2djhQ
R0NnNApTRmhvZUlpWXFMakkyT2o0Q0JrcE9VbFphWG1KbWFtNXlkbnArUWthS2pwS1dtcDZpcHFx
dXNyYTZ2b0tHeXM3UzF0cmU0dWJxN3ZMCjIrdjdDeHdzUEV4Y2JIeU1uS3k4ek56cy9Bd2RMVDFO
WFcxOXJWZ0FBQ0g1QkFnQ0FBQUFJZjhMU1cxaFoyVk5ZV2RwWTJzTloyRnQKYldFOU1DNDBOVFEx
TlFBc0FBQUFBSllBbGdDQS93QUFBQUFBQXJxRWo2bkw3UStqbkxUYWk3UGV2UHNQaHVKSWx1YUpw
dXJLdHU0TAp4L0pNMS9hTjUvck85LzRQREFxSHhLTHhpRXdxbDh5bTh3bU5TcWZVcXZXS3pXcTMz
SzczQ3c2THgrU3krWXhPcTlmc3R2c05qOHZuCjlMcjlqcy9yOS95Ky93OFlLRGhJV0doNGlKaW91
TWpZNlBnSUdTazVTVmxwZVltWnFibkoyZW41Q1JvcU9rcGFhbnFLbXFxNnl0cnEKK2dvYkt6dExX
MnQ3aTV1cnU4dmI2L3NMSEN3OFRGeHNmSXljckx6TTNPejhEQjB0UFUxZGJYMnRXQUFBSWZrRUNB
SUFBQUFoL3d0SgpiV0ZuWlUxaFoybGphdzFuWVcxdFlUMHdMalExTkRVMUFDd0FBQUFBbGdDV0FJ
RC9BQUFBQUFBQ3VvU1BxY3Z0RDZPY3ROcUxzOTY4Cit3K0c0a2lXNW9tbTZzcTI3Z3ZIOGt6WDlv
M24rczczL2c4TUNvZkVvdkdJVENxWHpLYnpDWTFLcDlTcTlZck5hcmZjcnZjTERvdkgKNUxMNWpF
NnIxK3kyK3cyUHkrZjB1djJPeit2My9MNy9EeGdvT0VoWWFIaUltS2k0eU5qbytBZ1pLVGxKV1ds
NWlabXB1Y25aNmZrSgpHaW82U2xwcWVvcWFxcnJLMnVyNkNoc3JPMHRiYTN1TG02dTd5OXZyK3dz
Y0xEeE1YR3g4akp5c3ZNemM3UHdNSFMwOVRWMXRmYTFZCkFBQWgrUVFJQWdBQUFDSC9DMGx0WVdk
bFRXRm5hV05yRFdkaGJXMWhQVEF1TkRVME5UVUFMQUFBQUFDV0FKWUFnUDhBQUFBQUFBSzYKaEkr
cHkrMFBvNXkwMm91ejNyejdENGJpU0pibWlhYnF5cmJ1QzhmeVROZjJqZWY2enZmK0R3d0toOFNp
OFloTUtwZk1wdk1KalVxbgoxS3IxaXMxcXQ5eXU5d3NPaThma3N2bU1UcXZYN0xiN0RZL0w1L1M2
L1k3UDYvZjh2djhQR0NnNFNGaG9lSWlZcUxqSTJPajRDQmtwCk9VbFphWG1KbWFtNXlkbnArUWth
S2pwS1dtcDZpcHFxdXNyYTZ2b0tHeXM3UzF0cmU0dWJxN3ZMMit2N0N4d3NQRXhjYkh5TW5LeTgK
ek56cy9Bd2RMVDFOWFcxOXJWZ0FBQ0g1QkFnQ0FBQUFJZjhMU1cxaFoyVk5ZV2RwWTJzTloyRnRi
V0U5TUM0ME5UUTFOUUFzQUFBQQpBSllBbGdDQS93QUFBQUFBQXJxRWo2bkw3UStqbkxUYWk3UGV2
UHNQaHVKSWx1YUpwdXJLdHU0THgvSk0xL2FONS9yTzkvNFBEQXFICnhLTHhpRXdxbDh5bTh3bU5T
cWZVcXZXS3pXcTMzSzczQ3c2THgrU3krWXhPcTlmc3R2c05qOHZuOUxyOWpzL3I5L3krL3c4WUtE
aEkKV0doNGlKaW91TWpZNlBnSUdTazVTVmxwZVltWnFibkoyZW41Q1JvcU9rcGFhbnFLbXFxNnl0
cnErZ29iS3p0TFcydDdpNXVydTh2Ygo2L3NMSEN3OFRGeHNmSXljckx6TTNPejhEQjB0UFUxZGJY
MnRXQUFBSWZrRUNBSUFBQUFoL3d0SmJXRm5aVTFoWjJsamF3MW5ZVzF0CllUMHdMalExTkRVMUFD
d0FBQUFBbGdDV0FJRC9BQUFBQUFBQ3VvU1BxY3Z0RDZPY3ROcUxzOTY4K3crRzRraVc1b21tNnNx
MjdndkgKOGt6WDlvM24rczczL2c4TUNvZkVvdkdJVENxWHpLYnpDWTFLcDlTcTlZck5hcmZjcnZj
TERvdkg1TEw1akU2cjEreTIrdzJQeStmMAp1djJPeit2My9MNy9EeGdvT0VoWWFIaUltS2k0eU5q
bytBZ1pLVGxKV1dsNWlabXB1Y25aNmZrSkdpbzZTbHBxZW9xYXFycksydXI2CkNoc3JPMHRiYTN1
TG02dTd5OXZyK3dzY0xEeE1YR3g4akp5c3ZNemM3UHdNSFMwOVRWMXRmYTFZQUFBaCtRUUlBZ0FB
QUNIL0MwbHQKWVdkbFRXRm5hV05yRFdkaGJXMWhQVEF1TkRVME5UVUFMQUFBQUFDV0FKWUFnUDhB
QUFBQUFBSzZoSStweSswUG81eTAyb3V6M3J6NwpENGJpU0pibWlhYnF5cmJ1QzhmeVROZjJqZWY2
enZmK0R3d0toOFNpOFloTUtwZk1wdk1KalVxbjFLcjFpczFxdDl5dTl3c09pOGZrCnN2bU1UcXZY
N0xiN0RZL0w1L1M2L1k3UDYvZjh2djhQR0NnNFNGaG9lSWlZcUxqSTJPajRDQmtwT1VsWmFYbUpt
YW01eWRucCtRa2EKS2pwS1dtcDZpcHFxdXNyYTZ2b0tHeXM3UzF0cmU0dWJxN3ZMMit2N0N4d3NQ
RXhjYkh5TW5LeTh6TnpzL0F3ZExUMU5YVzE5clZnQQpBRHM9Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291724</attachid>
            <date>2016-10-15 13:46:06 -0700</date>
            <delta_ts>2016-10-15 17:22:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163410-20161015134237.patch</filename>
            <type>text/plain</type>
            <size>20476</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Mzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY2ZTRlZjMzN2NjNmVl
YzU1YjNiNjJhMWUzZmI3ZGMyOTU1ZmRjOS4uMTQzZjMzZmM5ZWUzYzZmMjE0YWQ1MDEyYjQ5Zjk0
NzgzY2E5MTU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE2LTEwLTE1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRGVsZXRl
IHRoZSBhbmltYXRlZCBpbWFnZSBjYXRjaHVwIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQxMAorCisgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEZyYXNlci4KKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHR3byBpc3N1ZXMgaW4gdGhl
IGFuaW1hdGVkIGltYWdlIHdvcmtmbG93OgorCisgICAgICAgIDEpIFNldHRpbmcgdGhlIGFuaW1h
dGlvbiB0aW1lciBzaG91bGQgZm9sbG93IHRoZSBmb2xsb3dpbmcgcnVsZXM6CisgICAgICAgIAor
ICAgICAgICAgICAgLS0gSW5pdGlhbCBjYXNlOiBXaGljaCBoYXBwZW5zIGJlZm9yZSBkcmF3aW5n
IHRoZSBmaXJzdCBmcmFtZS4gV2UKKyAgICAgICAgICAgIHNob3VsZCBzZXQgdGhlIHRpbWVyIHRv
IGZpcmUgYWZ0ZXIgdGhlIGN1cnJlbnRfZnJhbWVfZHVyYXRpb24uCisKKyAgICAgICAgICAgIC0t
IExhdGUgY2FzZSAoU2xvdyBhbmltYXRpb24pOiBUaGlzIGhhcHBlbnMgaWYgdGhlIGN1cnJlbnRf
dGltZSBpcworICAgICAgICAgICAgcGFzdCB0aGUgbmV4dF9mcmFtZV9kZXNpcmVkX3RpbWUuIElu
IHRoaXMgY2FzZSB3ZSBzaG91bGQgZmlyZSB0aGUKKyAgICAgICAgICAgIHRpbWVyIGltbWVkaWF0
ZWx5LgorCisgICAgICAgICAgICAtLSBFYXJseSBjYXNlIChGYXN0IGFuaW1hdGlvbik6IFRoaXMg
aGFwcGVucyB3aGVuIHRoZXJlIGlzIHN0aWxsIHRpbWUKKyAgICAgICAgICAgIGJlZm9yZSB0aGUg
bmV4dF9mcmFtZV9kZXNpcmVkX3RpbWUuIEluIHRoaXMgY2FzZSB3ZSBzaG91bGQgc2V0IHRoZQor
ICAgICAgICAgICAgdGltZXIgdG8gZmlyZSBhZnRlciB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRo
ZSBuZXh0X2ZyYW1lX2Rlc2lyZWRfdGltZQorICAgICAgICAgICAgYW5kIHRoZSBjdXJyZW50X3Rp
bWUuCisKKyAgICAgICAgMikgRGVsZXRpbmcgdGhlIGNvZGUgZm9yIGNhdGNoaW5nIHVwIHRoZSBj
dXJyZW50X2ZyYW1lOgorICAgICAgICAKKyAgICAgICAgICAgIFRoaXMgY29kZSB1c2VkIHRvIHJ1
biBpbiB0aGUgc2xvdyBhbmltYXRpb24gY2FzZS4gSXQgd2FzIG5ldmVyIHVzZWQKKyAgICAgICAg
ICAgIG9uIGlPUy4gSXQgd2FzIHRyeWluZyB0byBhZGp1c3QgdGhlIGN1cnJlbnRfZnJhbWUgYWNj
b3JkaW5nIHRvIHRoZQorICAgICAgICAgICAgY3VycmVudF90aW1lIGFzIGlmIHRoZXJlIHdlcmUg
bm8gZGVsYXkuIEl0IHR1cm5lZCBvdXQgdGhhdCB0aGlzIG1pZ2h0CisgICAgICAgICAgICBjYXVz
ZSBhIGJpZ2dlciBkZWxheSBiZWNhdXNlIG1vc3QgbGlrZWx5IHRoZSBkZWNvZGVyIGRlY29kZXMg
dGhlIGltYWdlCisgICAgICAgICAgICBmcmFtZXMgaW5jcmVtZW50YWxseTsgaS5lLiB0byBkZWNv
ZGUgZnJhbWUgaywgaXQgaGFzIHRvIGhhdmUgZnJhbWUKKyAgICAgICAgICAgIChrIC0gMSkgZGVj
b2RlZC4KKworICAgICAgICBUZXN0OiBmYXN0L2ltYWdlcy9vcmRlcmVkLWFuaW1hdGVkLWltYWdl
LWZyYW1lcy5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZHJhdyk6IFJlbW92ZSB0aGUgaU9T
IHNwZWNpZmljIGNvZGUuCisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6c3RhcnRBbmlt
YXRpb24pOiBNb3ZlIHRoZSBhbmltYXRpb24gZmluaXNoaW5nIGNvZGUgZnJvbSAKKyAgICAgICAg
Qml0bWFwSW1hZ2U6OmludGVybmFsQWR2YW5jZUFuaW1hdGlvbigpIHRvIHRoaXMgZnVuY3Rpb24u
IFNpbXBsaWZ5IHRoZSB0aW1lcgorICAgICAgICBkdXJhdGlvbiBjb2RlIGFzIGl0IGlzIGRlc2Ny
aWJlZCBhYm92ZS4KKworICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmFkdmFuY2VBbmlt
YXRpb24pOiBNZXJnZSBCaXRtYXBJbWFnZTo6aW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKCkKKyAg
ICAgICAgaW50byB0aGlzIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFn
ZTo6cmVzZXRBbmltYXRpb24pOgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjppbnRlcm5hbEFkdmFuY2VBbmltYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhd1RpbGVkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2U6
OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKiBz
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDoKKyAgICAgICAgUmVtb3ZlIHRoZSBjYXRjaHVwIGNvZGUg
Zm9ybSB0aGUgSW1hZ2UgYW5kIFNWR0ltYWdlIGNsYXNzZXMuCisKIDIwMTYtMTAtMTUgIE1pY2hh
ZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFJl
c3RvcmUgdXNlciBhZ2VudCBxdWlyayBmb3IgWWFob28KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCBjNjVmN2NiYmJhOTc4N2IwYjlj
NmZjYTk4NDc1OTUyMDA3NzViYjNlLi4xZDBiNDkyNmRmOTM1MGVlZTE2NDQ0MDJmNDYzYTY3NTEz
ZWE0Y2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuY3BwCkBAIC0xNDEsMTEgKzE0MSw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zCiAg
ICAgaWYgKGRlc3RSZWN0LmlzRW1wdHkoKSB8fCBzcmNSZWN0LmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuOwogCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIHN0YXJ0QW5pbWF0aW9uKERvTm90Q2F0
Y2hVcCk7Ci0jZWxzZQogICAgIHN0YXJ0QW5pbWF0aW9uKCk7Ci0jZW5kaWYKIAogICAgIENvbG9y
IGNvbG9yID0gc2luZ2xlUGl4ZWxTb2xpZENvbG9yKCk7CiAgICAgaWYgKGNvbG9yLmlzVmFsaWQo
KSkgewpAQCAtMjI3LDE0OCArMjIzLDU4IEBAIHZvaWQgQml0bWFwSW1hZ2U6OnN0YXJ0VGltZXIo
ZG91YmxlIGRlbGF5KQogICAgIG1fZnJhbWVUaW1lci0+c3RhcnRPbmVTaG90KGRlbGF5KTsKIH0K
IAotdm9pZCBCaXRtYXBJbWFnZTo6c3RhcnRBbmltYXRpb24oQ2F0Y2hVcEFuaW1hdGlvbiBjYXRj
aFVwSWZOZWNlc3NhcnkpCit2b2lkIEJpdG1hcEltYWdlOjpzdGFydEFuaW1hdGlvbigpCiB7CiAg
ICAgaWYgKG1fZnJhbWVUaW1lciB8fCAhc2hvdWxkQW5pbWF0ZSgpIHx8IGZyYW1lQ291bnQoKSA8
PSAxKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBJZiB3ZSBhcmVuJ3QgYWxyZWFkeSBhbmlt
YXRpbmcsIHNldCBub3cgYXMgdGhlIGFuaW1hdGlvbiBzdGFydCB0aW1lLgotICAgIGNvbnN0IGRv
dWJsZSB0aW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Ci0gICAgaWYgKCFtX2Rl
c2lyZWRGcmFtZVN0YXJ0VGltZSkKLSAgICAgICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPSB0
aW1lOworICAgIGlmIChtX2N1cnJlbnRGcmFtZSA+PSBmcmFtZUNvdW50KCkgLSAxKSB7CisgICAg
ICAgIC8vIERvbid0IGFkdmFuY2UgcGFzdCB0aGUgbGFzdCBmcmFtZSBpZiB3ZSBoYXZlbid0IGRl
Y29kZWQgdGhlIHdob2xlIGltYWdlCisgICAgICAgIC8vIHlldCBhbmQgb3VyIHJlcGV0aXRpb24g
Y291bnQgaXMgcG90ZW50aWFsbHkgdW5zZXQuIFRoZSByZXBldGl0aW9uIGNvdW50CisgICAgICAg
IC8vIGluIGEgR0lGIGNhbiBwb3RlbnRpYWxseSBjb21lIGFmdGVyIGFsbCB0aGUgcmVzdCBvZiB0
aGUgaW1hZ2UgZGF0YSwgc28KKyAgICAgICAgLy8gd2FpdCBvbiBpdC4KKyAgICAgICAgaWYgKCFt
X3NvdXJjZS5pc0FsbERhdGFSZWNlaXZlZCgpICYmIHJlcGV0aXRpb25Db3VudCgpID09IFJlcGV0
aXRpb25Db3VudE9uY2UpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgKyttX3JlcGV0
aXRpb25zQ29tcGxldGU7CisKKyAgICAgICAgLy8gQ2hlY2sgZm9yIHRoZSBlbmQgb2YgYW5pbWF0
aW9uLgorICAgICAgICBpZiAocmVwZXRpdGlvbkNvdW50KCkgIT0gUmVwZXRpdGlvbkNvdW50SW5m
aW5pdGUgJiYgbV9yZXBldGl0aW9uc0NvbXBsZXRlID4gcmVwZXRpdGlvbkNvdW50KCkpIHsKKyAg
ICAgICAgICAgIG1fYW5pbWF0aW9uRmluaXNoZWQgPSB0cnVlOworICAgICAgICAgICAgZGVzdHJv
eURlY29kZWREYXRhSWZOZWNlc3NhcnkoZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgZGVzdHJveURlY29kZWREYXRhSWZOZWNlc3NhcnkodHJ1ZSk7Cisg
ICAgfQogCiAgICAgLy8gRG9uJ3QgYWR2YW5jZSB0aGUgYW5pbWF0aW9uIHRvIGFuIGluY29tcGxl
dGUgZnJhbWUuCiAgICAgc2l6ZV90IG5leHRGcmFtZSA9IChtX2N1cnJlbnRGcmFtZSArIDEpICUg
ZnJhbWVDb3VudCgpOwogICAgIGlmICghbV9zb3VyY2UuaXNBbGxEYXRhUmVjZWl2ZWQoKSAmJiAh
ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChuZXh0RnJhbWUpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICAvLyBEb24ndCBhZHZhbmNlIHBhc3QgdGhlIGxhc3QgZnJhbWUgaWYgd2UgaGF2ZW4ndCBkZWNv
ZGVkIHRoZSB3aG9sZSBpbWFnZQotICAgIC8vIHlldCBhbmQgb3VyIHJlcGV0aXRpb24gY291bnQg
aXMgcG90ZW50aWFsbHkgdW5zZXQuIFRoZSByZXBldGl0aW9uIGNvdW50Ci0gICAgLy8gaW4gYSBH
SUYgY2FuIHBvdGVudGlhbGx5IGNvbWUgYWZ0ZXIgYWxsIHRoZSByZXN0IG9mIHRoZSBpbWFnZSBk
YXRhLCBzbwotICAgIC8vIHdhaXQgb24gaXQuCi0gICAgaWYgKCFtX3NvdXJjZS5pc0FsbERhdGFS
ZWNlaXZlZCgpICYmIHJlcGV0aXRpb25Db3VudCgpID09IFJlcGV0aXRpb25Db3VudE9uY2UgJiYg
bV9jdXJyZW50RnJhbWUgPj0gKGZyYW1lQ291bnQoKSAtIDEpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICAvLyBEZXRlcm1pbmUgdGltZSBmb3IgbmV4dCBmcmFtZSB0byBzdGFydC4gQnkgaWdub3Jp
bmcgcGFpbnQgYW5kIHRpbWVyIGxhZwotICAgIC8vIGluIHRoaXMgY2FsY3VsYXRpb24sIHdlIG1h
a2UgdGhlIGFuaW1hdGlvbiBhcHBlYXIgdG8gcnVuIGF0IGl0cyBkZXNpcmVkCi0gICAgLy8gcmF0
ZSByZWdhcmRsZXNzIG9mIGhvdyBmYXN0IGl0J3MgYmVpbmcgcmVwYWludGVkLgotICAgIGNvbnN0
IGRvdWJsZSBjdXJyZW50RHVyYXRpb24gPSBmcmFtZUR1cmF0aW9uQXRJbmRleChtX2N1cnJlbnRG
cmFtZSk7Ci0gICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgKz0gY3VycmVudER1cmF0aW9uOwot
Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBXaGVuIGFuIGFuaW1hdGVkIGltYWdlIGlzIG1v
cmUgdGhhbiBmaXZlIG1pbnV0ZXMgb3V0IG9mIGRhdGUsIHRoZQotICAgIC8vIHVzZXIgcHJvYmFi
bHkgZG9lc24ndCBjYXJlIGFib3V0IHJlc3luY2luZyBhbmQgd2UgY291bGQgYnVybiBhIGxvdCBv
ZgotICAgIC8vIHRpbWUgbG9vcGluZyB0aHJvdWdoIGZyYW1lcyBiZWxvdy4gSnVzdCByZXNldCB0
aGUgdGltaW5ncy4KLSAgICBjb25zdCBkb3VibGUgY0FuaW1hdGlvblJlc3luY0N1dG9mZiA9IDUg
KiA2MDsKLSAgICBpZiAoKHRpbWUgLSBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSkgPiBjQW5pbWF0
aW9uUmVzeW5jQ3V0b2ZmKQotICAgICAgICBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSA9IHRpbWUg
KyBjdXJyZW50RHVyYXRpb247Ci0jZWxzZQotICAgIC8vIE1haW50YWluaW5nIGZyYW1lLXRvLWZy
YW1lIGRlbGF5cyBpcyBtb3JlIGltcG9ydGFudCB0aGFuCi0gICAgLy8gbWFpbnRhaW5pbmcgYWJz
b2x1dGUgYW5pbWF0aW9uIHRpbWluZywgc28gcmVzZXQgdGhlIHRpbWluZ3MgZWFjaCBmcmFtZS4K
LSAgICBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSA9IHRpbWUgKyBjdXJyZW50RHVyYXRpb247Ci0j
ZW5kaWYKKyAgICBkb3VibGUgdGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwog
Ci0gICAgLy8gVGhlIGltYWdlIG1heSBsb2FkIG1vcmUgc2xvd2x5IHRoYW4gaXQncyBzdXBwb3Nl
ZCB0byBhbmltYXRlLCBzbyB0aGF0IGJ5Ci0gICAgLy8gdGhlIHRpbWUgd2UgcmVhY2ggdGhlIGVu
ZCBvZiB0aGUgZmlyc3QgcmVwZXRpdGlvbiwgd2UncmUgd2VsbCBiZWhpbmQuCi0gICAgLy8gQ2xh
bXAgdGhlIGRlc2lyZWQgZnJhbWUgc3RhcnQgdGltZSBpbiB0aGlzIGNhc2UsIHNvIHRoYXQgd2Ug
ZG9uJ3Qgc2tpcAotICAgIC8vIGZyYW1lcyAob3Igd2hvbGUgaXRlcmF0aW9ucykgdHJ5aW5nIHRv
ICJjYXRjaCB1cCIuIFRoaXMgaXMgYSB0cmFkZW9mZjoKLSAgICAvLyBJdCBndWFyYW50ZWVzIHVz
ZXJzIHNlZSB0aGUgd2hvbGUgYW5pbWF0aW9uIHRoZSBzZWNvbmQgdGltZSB0aHJvdWdoIGFuZAot
ICAgIC8vIGRvbid0IG1pc3MgYW55IHJlcGV0aXRpb25zLCBhbmQgaXMgY2xvc2VyIHRvIHdoYXQg
b3RoZXIgYnJvd3NlcnMgZG87IG9uCi0gICAgLy8gdGhlIG90aGVyIGhhbmQsIGl0IG1ha2VzIGFu
aW1hdGlvbnMgImxlc3MgYWNjdXJhdGUiIGZvciBwYWdlcyB0aGF0IHRyeSB0bwotICAgIC8vIHN5
bmMgYW4gaW1hZ2UgYW5kIHNvbWUgb3RoZXIgcmVzb3VyY2UgKGUuZy4gYXVkaW8pLCBlc3BlY2lh
bGx5IGlmIHVzZXJzCi0gICAgLy8gc3dpdGNoIHRhYnMgKGFuZCB0aHVzIHN0b3AgZHJhd2luZyB0
aGUgYW5pbWF0aW9uLCB3aGljaCB3aWxsIHBhdXNlIGl0KQotICAgIC8vIGR1cmluZyB0aGF0IGlu
aXRpYWwgbG9vcCwgdGhlbiBzd2l0Y2ggYmFjayBsYXRlci4KLSAgICBpZiAobmV4dEZyYW1lID09
IDAgJiYgbV9yZXBldGl0aW9uc0NvbXBsZXRlID09IDAgJiYgbV9kZXNpcmVkRnJhbWVTdGFydFRp
bWUgPCB0aW1lKQorICAgIC8vIEhhbmRsZSBpbml0aWFsIHN0YXRlLgorICAgIGlmICghbV9kZXNp
cmVkRnJhbWVTdGFydFRpbWUpCiAgICAgICAgIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lID0gdGlt
ZTsKIAotICAgIGlmIChjYXRjaFVwSWZOZWNlc3NhcnkgPT0gRG9Ob3RDYXRjaFVwIHx8IHRpbWUg
PCBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSkgewotICAgICAgICAvLyBIYXZlbid0IHlldCByZWFj
aGVkIHRpbWUgZm9yIG5leHQgZnJhbWUgdG8gc3RhcnQ7IGRlbGF5IHVudGlsIHRoZW4uCi0gICAg
ICAgIHN0YXJ0VGltZXIoc3RkOjptYXg8ZG91YmxlPihtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSAt
IHRpbWUsIDApKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICAvLyBTZXR0aW5nICdtX2Rl
c2lyZWRGcmFtZVN0YXJ0VGltZScgdG8gJ3RpbWUnIG1lYW5zIHdlIGFyZSBsYXRlOyBvdGhlcndp
c2Ugd2UgYXJlIGVhcmx5LgorICAgIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lID0gc3RkOjptYXgo
dGltZSwgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgKyBmcmFtZUR1cmF0aW9uQXRJbmRleChtX2N1
cnJlbnRGcmFtZSkpOwogCiAgICAgQVNTRVJUKCFtX2ZyYW1lVGltZXIpOwotCi0gICAgLy8gV2Un
dmUgYWxyZWFkeSByZWFjaGVkIG9yIHBhc3NlZCB0aGUgdGltZSBmb3IgdGhlIG5leHQgZnJhbWUg
dG8gc3RhcnQuCi0gICAgLy8gU2VlIGlmIHdlJ3ZlIGFsc28gcGFzc2VkIHRoZSB0aW1lIGZvciBm
cmFtZXMgYWZ0ZXIgdGhhdCB0byBzdGFydCwgaW4KLSAgICAvLyBjYXNlIHdlIG5lZWQgdG8gc2tp
cCBzb21lIGZyYW1lcyBlbnRpcmVseS4gUmVtZW1iZXIgbm90IHRvIGFkdmFuY2UKLSAgICAvLyB0
byBhbiBpbmNvbXBsZXRlIGZyYW1lLgotCi0jaWYgIUxPR19ESVNBQkxFRAotICAgIHNpemVfdCBz
dGFydENhdGNodXBGcmFtZUluZGV4ID0gbmV4dEZyYW1lOwotI2VuZGlmCi0KLSAgICBmb3IgKHNp
emVfdCBmcmFtZUFmdGVyTmV4dCA9IChuZXh0RnJhbWUgKyAxKSAlIGZyYW1lQ291bnQoKTsgZnJh
bWVJc0NvbXBsZXRlQXRJbmRleChmcmFtZUFmdGVyTmV4dCk7IGZyYW1lQWZ0ZXJOZXh0ID0gKG5l
eHRGcmFtZSArIDEpICUgZnJhbWVDb3VudCgpKSB7Ci0gICAgICAgIC8vIFNob3VsZCB3ZSBza2lw
IHRoZSBuZXh0IGZyYW1lPwotICAgICAgICBkb3VibGUgZnJhbWVBZnRlck5leHRTdGFydFRpbWUg
PSBtX2Rlc2lyZWRGcmFtZVN0YXJ0VGltZSArIGZyYW1lRHVyYXRpb25BdEluZGV4KG5leHRGcmFt
ZSk7Ci0gICAgICAgIGlmICh0aW1lIDwgZnJhbWVBZnRlck5leHRTdGFydFRpbWUpCi0gICAgICAg
ICAgICBicmVhazsKLQotICAgICAgICAvLyBZZXM7IHNraXAgb3ZlciBpdCB3aXRob3V0IG5vdGlm
eWluZyBvdXIgb2JzZXJ2ZXJzLiBJZiB3ZSBoaXQgdGhlIGVuZCB3aGlsZSBjYXRjaGluZyB1cCwK
LSAgICAgICAgLy8gdGVsbCB0aGUgb2JzZXJ2ZXIgYXN5bmNocm9ub3VzbHkuCi0gICAgICAgIGlm
ICghaW50ZXJuYWxBZHZhbmNlQW5pbWF0aW9uKFNraXBwaW5nRnJhbWVzVG9DYXRjaFVwKSkgewot
ICAgICAgICAgICAgbV9hbmltYXRpb25GaW5pc2hlZFdoZW5DYXRjaGluZ1VwID0gdHJ1ZTsKLSAg
ICAgICAgICAgIHN0YXJ0VGltZXIoMCk7Ci0gICAgICAgICAgICBMT0coSW1hZ2VzLCAiQml0bWFw
SW1hZ2UgJXAgc3RhcnRBbmltYXRpb24gY2F0Y2hpbmcgdXAgZnJvbSBmcmFtZSAlbHUsIGVuZGVk
IiwgdGhpcywgc3RhcnRDYXRjaHVwRnJhbWVJbmRleCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPSBmcmFtZUFmdGVyTmV4
dFN0YXJ0VGltZTsKLSAgICAgICAgbmV4dEZyYW1lID0gZnJhbWVBZnRlck5leHQ7Ci0gICAgfQot
Ci0gICAgTE9HKEltYWdlcywgIkJpdG1hcEltYWdlICVwIHN0YXJ0QW5pbWF0aW9uIGNhdGNoaW5n
IHVwIGp1bXBlZCBmcm9tIGZyb20gZnJhbWUgJWx1IHRvICVkIiwgdGhpcywgc3RhcnRDYXRjaHVw
RnJhbWVJbmRleCwgKGludCluZXh0RnJhbWUgLSAxKTsKLQotICAgIC8vIERyYXcgdGhlIG5leHQg
ZnJhbWUgYXMgc29vbiBhcyBwb3NzaWJsZS4gTm90ZSB0aGF0IG1fZGVzaXJlZEZyYW1lU3RhcnRU
aW1lCi0gICAgLy8gbWF5IGJlIGluIHRoZSBwYXN0LCBtZWFuaW5nIHRoZSBuZXh0IHRpbWUgdGhy
b3VnaCB0aGlzIGZ1bmN0aW9uIHdlJ2xsCi0gICAgLy8ga2ljayBvZmYgdGhlIG5leHQgYWR2YW5j
ZW1lbnQgc29vbmVyIHRoYW4gdGhpcyBmcmFtZSdzIGR1cmF0aW9uIHdvdWxkIHN1Z2dlc3QuCi0g
ICAgc3RhcnRUaW1lcigwKTsKKyAgICBzdGFydFRpbWVyKG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1l
IC0gdGltZSk7CiB9CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmFkdmFuY2VBbmltYXRpb24oKQogewot
ICAgIGludGVybmFsQWR2YW5jZUFuaW1hdGlvbigpOwotICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhl
IGltYWdlIHJlZ2lvbiBoYXMgYmVlbiBtYXJrZWQgZGlydHksIGFuZCBpZiBpdCdzCi0gICAgLy8g
b25zY3JlZW4sIHdlJ2xsIHNvb24gbWFrZSBhIGNhbGwgdG8gZHJhdygpLCB3aGljaCB3aWxsIGNh
bGwKLSAgICAvLyBzdGFydEFuaW1hdGlvbigpIGFnYWluIHRvIGtlZXAgdGhlIGFuaW1hdGlvbiBt
b3ZpbmcuCi19Ci0KLWJvb2wgQml0bWFwSW1hZ2U6OmludGVybmFsQWR2YW5jZUFuaW1hdGlvbihB
bmltYXRpb25BZHZhbmNlbWVudCBhZHZhbmNlbWVudCkKLXsKICAgICBjbGVhclRpbWVyKCk7CiAK
LSAgICBpZiAobV9hbmltYXRpb25GaW5pc2hlZFdoZW5DYXRjaGluZ1VwKSB7Ci0gICAgICAgIGlt
YWdlT2JzZXJ2ZXIoKS0+YW5pbWF0aW9uQWR2YW5jZWQodGhpcyk7Ci0gICAgICAgIG1fYW5pbWF0
aW9uRmluaXNoZWRXaGVuQ2F0Y2hpbmdVcCA9IGZhbHNlOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotCi0gICAgKyttX2N1cnJlbnRGcmFtZTsKLSAgICBib29sIGFkdmFuY2VkQW5pbWF0
aW9uID0gdHJ1ZTsKLSAgICBib29sIGRlc3Ryb3lBbGwgPSBmYWxzZTsKLSAgICBpZiAobV9jdXJy
ZW50RnJhbWUgPj0gZnJhbWVDb3VudCgpKSB7Ci0gICAgICAgICsrbV9yZXBldGl0aW9uc0NvbXBs
ZXRlOwotCi0gICAgICAgIC8vIEdldCB0aGUgcmVwZXRpdGlvbiBjb3VudCBhZ2Fpbi4gSWYgd2Ug
d2VyZW4ndCBhYmxlIHRvIGdldCBhCi0gICAgICAgIC8vIHJlcGV0aXRpb24gY291bnQgYmVmb3Jl
LCB3ZSBzaG91bGQgaGF2ZSBkZWNvZGVkIHRoZSB3aG9sZSBpbWFnZSBieQotICAgICAgICAvLyBu
b3csIHNvIGl0IHNob3VsZCBub3cgYmUgYXZhaWxhYmxlLgotICAgICAgICBpZiAocmVwZXRpdGlv
bkNvdW50KCkgIT0gUmVwZXRpdGlvbkNvdW50SW5maW5pdGUgJiYgbV9yZXBldGl0aW9uc0NvbXBs
ZXRlID4gcmVwZXRpdGlvbkNvdW50KCkpIHsKLSAgICAgICAgICAgIG1fYW5pbWF0aW9uRmluaXNo
ZWQgPSB0cnVlOwotICAgICAgICAgICAgbV9kZXNpcmVkRnJhbWVTdGFydFRpbWUgPSAwOwotICAg
ICAgICAgICAgLS1tX2N1cnJlbnRGcmFtZTsKLSAgICAgICAgICAgIGFkdmFuY2VkQW5pbWF0aW9u
ID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2N1cnJlbnRGcmFtZSA9
IDA7Ci0gICAgICAgICAgICBkZXN0cm95QWxsID0gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAg
ICBkZXN0cm95RGVjb2RlZERhdGFJZk5lY2Vzc2FyeShkZXN0cm95QWxsKTsKKyAgICBtX2N1cnJl
bnRGcmFtZSA9IChtX2N1cnJlbnRGcmFtZSArIDEpICUgZnJhbWVDb3VudCgpOworICAgIGRlc3Ry
b3lEZWNvZGVkRGF0YUlmTmVjZXNzYXJ5KGZhbHNlKTsKIAotICAgIC8vIFdlIG5lZWQgdG8gZHJh
dyB0aGlzIGZyYW1lIGlmIHdlIGFkdmFuY2VkIHRvIGl0IHdoaWxlIG5vdCBza2lwcGluZywgb3Ig
aWYKLSAgICAvLyB3aGlsZSB0cnlpbmcgdG8gc2tpcCBmcmFtZXMgd2UgaGl0IHRoZSBsYXN0IGZy
YW1lIGFuZCB0aHVzIGhhZCB0byBzdG9wLgotICAgIGlmIChhZHZhbmNlbWVudCA9PSBOb3JtYWwg
JiYgYWR2YW5jZWRBbmltYXRpb24pCisgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAgICAgICAg
aW1hZ2VPYnNlcnZlcigpLT5hbmltYXRpb25BZHZhbmNlZCh0aGlzKTsKLQotICAgIHJldHVybiBh
ZHZhbmNlZEFuaW1hdGlvbjsKIH0KIAogdm9pZCBCaXRtYXBJbWFnZTo6c3RvcEFuaW1hdGlvbigp
CkBAIC0zODIsNyArMjg4LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6cmVzZXRBbmltYXRpb24oKQog
ewogICAgIHN0b3BBbmltYXRpb24oKTsKICAgICBtX2N1cnJlbnRGcmFtZSA9IDA7Ci0gICAgbV9y
ZXBldGl0aW9uc0NvbXBsZXRlID0gMDsKKyAgICBtX3JlcGV0aXRpb25zQ29tcGxldGUgPSBSZXBl
dGl0aW9uQ291bnROb25lOwogICAgIG1fZGVzaXJlZEZyYW1lU3RhcnRUaW1lID0gMDsKICAgICBt
X2FuaW1hdGlvbkZpbmlzaGVkID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDA5MmFlNjMyM2NlOWRjYmY0NjY0NDA2NDQ4
NTk3YzA3NjU2NDk4MTcuLmQwMTgyYTcxN2FlYWY1Njg4MmY0NjRhMGJkMTYxNTUwZTkyODM5ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApA
QCAtMTUyLDE3ICsxNTIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc0FuaW1hdGVkKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2UuZnJhbWVDb3VudCgpID4gMTsgfQogICAgIGJv
b2wgc2hvdWxkQW5pbWF0ZSgpOwogICAgIGJvb2wgY2FuQW5pbWF0ZSgpOwotICAgIHZvaWQgc3Rh
cnRBbmltYXRpb24oQ2F0Y2hVcEFuaW1hdGlvbiA9IENhdGNoVXApIG92ZXJyaWRlOworICAgIHZv
aWQgc3RhcnRBbmltYXRpb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGFkdmFuY2VBbmltYXRpb24o
KTsKIAotICAgIC8vIEZ1bmN0aW9uIHRoYXQgZG9lcyB0aGUgcmVhbCB3b3JrIG9mIGFkdmFuY2lu
ZyB0aGUgYW5pbWF0aW9uLiBXaGVuCi0gICAgLy8gc2tpcHBpbmdGcmFtZXMgaXMgdHJ1ZSwgd2Un
cmUgaW4gdGhlIG1pZGRsZSBvZiBhIGxvb3AgdHJ5aW5nIHRvIHNraXAgb3ZlcgotICAgIC8vIGEg
YnVuY2ggb2YgYW5pbWF0aW9uIGZyYW1lcywgc28gd2Ugc2hvdWxkIG5vdCBkbyB0aGluZ3MgbGlr
ZSBkZWNvZGUgZWFjaAotICAgIC8vIG9uZSBvciBub3RpZnkgb3VyIG9ic2VydmVycy4KLSAgICAv
LyBSZXR1cm5zIHdoZXRoZXIgdGhlIGFuaW1hdGlvbiB3YXMgYWR2YW5jZWQuCi0gICAgZW51bSBB
bmltYXRpb25BZHZhbmNlbWVudCB7IE5vcm1hbCwgU2tpcHBpbmdGcmFtZXNUb0NhdGNoVXAgfTsK
LSAgICBib29sIGludGVybmFsQWR2YW5jZUFuaW1hdGlvbihBbmltYXRpb25BZHZhbmNlbWVudCA9
IE5vcm1hbCk7Ci0KICAgICAvLyBJdCBtYXkgbG9vayB1bnVzdWFsIHRoYXQgdGhlcmUgaXMgbm8g
c3RhcnQgYW5pbWF0aW9uIGNhbGwgYXMgcHVibGljIEFQSS4gVGhpcyBpcyBiZWNhdXNlCiAgICAg
Ly8gd2Ugc3RhcnQgYW5kIHN0b3AgYW5pbWF0aW5nIGxhemlseS4gQW5pbWF0aW9uIGJlZ2lucyB3
aGVuZXZlciBzb21lb25lIGRyYXdzIHRoZSBpbWFnZS4gSXQgd2lsbAogICAgIC8vIGF1dG9tYXRp
Y2FsbHkgcGF1c2Ugb25jZSBhbGwgb2JzZXJ2ZXJzIG5vIGxvbmdlciB3YW50IHRvIHJlbmRlciB0
aGUgaW1hZ2UgYW55d2hlcmUuCkBAIC0xOTMsNyArMTg1LDYgQEAgcHJpdmF0ZToKICAgICBSZXBl
dGl0aW9uQ291bnQgbV9yZXBldGl0aW9uc0NvbXBsZXRlIHsgUmVwZXRpdGlvbkNvdW50Tm9uZSB9
OyAvLyBIb3cgbWFueSByZXBldGl0aW9ucyB3ZSd2ZSBmaW5pc2hlZC4KICAgICBkb3VibGUgbV9k
ZXNpcmVkRnJhbWVTdGFydFRpbWUgeyAwIH07IC8vIFRoZSBzeXN0ZW0gdGltZSBhdCB3aGljaCB3
ZSBob3BlIHRvIHNlZSB0aGUgbmV4dCBjYWxsIHRvIHN0YXJ0QW5pbWF0aW9uKCkuCiAgICAgYm9v
bCBtX2FuaW1hdGlvbkZpbmlzaGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fYW5pbWF0aW9uRmlu
aXNoZWRXaGVuQ2F0Y2hpbmdVcCB7IGZhbHNlIH07CiAKICNpZiBVU0UoQVBQS0lUKQogICAgIG11
dGFibGUgUmV0YWluUHRyPE5TSW1hZ2U+IG1fbnNJbWFnZTsgLy8gQSBjYWNoZWQgTlNJbWFnZSBv
ZiBhbGwgdGhlIGZyYW1lcy4gT25seSBidWlsdCBsYXppbHkgaWYgc29tZW9uZSBhY3R1YWxseSBx
dWVyaWVzIGZvciBvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5j
cHAKaW5kZXggZTFjZDBiNjk1MGRkM2EyMjFhZTVmYzg2MDZiY2E0MjY5ZDBlM2Y2YS4uNTUwNzlh
ZGU5ZDZhZDA3NGEwOWVlY2I5YTNjODFkOWYxNzk0NGJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcApAQCAtMTk0LDEyICsxOTQsNyBAQCB2b2lkIEltYWdl
OjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0LCBjb25zdCBGbAogICAgIEFmZmluZVRyYW5zZm9ybSBwYXR0ZXJuVHJhbnNmb3JtID0gQWZm
aW5lVHJhbnNmb3JtKCkuc2NhbGVOb25Vbmlmb3JtKHNjYWxlLndpZHRoKCksIHNjYWxlLmhlaWdo
dCgpKTsKICAgICBGbG9hdFJlY3QgdGlsZVJlY3QoRmxvYXRQb2ludCgpLCBpbnRyaW5zaWNUaWxl
U2l6ZSk7CiAgICAgZHJhd1BhdHRlcm4oY3R4dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCBwYXR0ZXJu
VHJhbnNmb3JtLCBvbmVUaWxlUmVjdC5sb2NhdGlvbigpLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2Rl
KTsKLQotI2lmIFBMQVRGT1JNKElPUykKLSAgICBzdGFydEFuaW1hdGlvbihEb05vdENhdGNoVXAp
OwotI2Vsc2UKICAgICBzdGFydEFuaW1hdGlvbigpOwotI2VuZGlmCiB9CiAKIC8vIEZJWE1FOiBN
ZXJnZSB3aXRoIHRoZSBvdGhlciBkcmF3VGlsZWQgZXZlbnR1YWxseSwgc2luY2Ugd2UgbmVlZCBh
IGNvbWJpbmF0aW9uIG9mIGJvdGggZm9yIHNvbWUgdGhpbmdzLgpAQCAtMjc5LDEyICsyNzQsNyBA
QCB2b2lkIEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsbwogCiAgICAgRmxvYXRQb2ludCBwYXR0ZXJuUGhhc2Uo
ZHN0UmVjdC54KCkgLSBoUGhhc2UsIGRzdFJlY3QueSgpIC0gdlBoYXNlKTsKICAgICBkcmF3UGF0
dGVybihjdHh0LCBkc3RSZWN0LCBzcmNSZWN0LCBwYXR0ZXJuVHJhbnNmb3JtLCBwYXR0ZXJuUGhh
c2UsIHNwYWNpbmcsIG9wKTsKLQotI2lmIFBMQVRGT1JNKElPUykKLSAgICBzdGFydEFuaW1hdGlv
bihEb05vdENhdGNoVXApOwotI2Vsc2UKICAgICBzdGFydEFuaW1hdGlvbigpOwotI2VuZGlmCiB9
CiAKICNpZiBFTkFCTEUoSU1BR0VfREVDT0RFUl9ET1dOX1NBTVBMSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKaW5kZXggOTE1MDE4ZmQ0MGI3MmNhOWZlMjhjNzVj
Y2I0NmJkZGIzYzEyMzhhMS4uY2MxODJjZDM4OGEyZDRjYjRhNTE2YmI4MTdlNDY3Y2IyMDE1YWY2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC0xMjYsOCAr
MTI2LDcgQEAgcHVibGljOgogCiAgICAgLy8gQW5pbWF0aW9uIGJlZ2lucyB3aGVuZXZlciBzb21l
b25lIGRyYXdzIHRoZSBpbWFnZSwgc28gc3RhcnRBbmltYXRpb24oKSBpcyBub3Qgbm9ybWFsbHkg
Y2FsbGVkLgogICAgIC8vIEl0IHdpbGwgYXV0b21hdGljYWxseSBwYXVzZSBvbmNlIGFsbCBvYnNl
cnZlcnMgbm8gbG9uZ2VyIHdhbnQgdG8gcmVuZGVyIHRoZSBpbWFnZSBhbnl3aGVyZS4KLSAgICBl
bnVtIENhdGNoVXBBbmltYXRpb24geyBEb05vdENhdGNoVXAsIENhdGNoVXAgfTsKLSAgICB2aXJ0
dWFsIHZvaWQgc3RhcnRBbmltYXRpb24oQ2F0Y2hVcEFuaW1hdGlvbiA9IENhdGNoVXApIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzdGFydEFuaW1hdGlvbigpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBz
dG9wQW5pbWF0aW9uKCkge30KICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRpb24oKSB7fQog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggYzVhNGJh
MDdlY2I4MzE1OTc2YWQwYjg2ODg1MzIwNzhkNGU4ZmFhZS4uZWE5NTFiZDMzNjY4ZTEyMDBlNjQ4
YzhmYWE2MzgyYzlmM2EyNjc4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCkBAIC0zNzIsOCArMzcyLDcgQEAgdm9pZCBTVkdJbWFnZTo6Y29tcHV0ZUludHJpbnNp
Y0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW4KICAgICAg
ICAgaW50cmluc2ljUmF0aW8gPSBGbG9hdFNpemUoZmxvYXRWYWx1ZUZvckxlbmd0aChpbnRyaW5z
aWNXaWR0aCwgMCksIGZsb2F0VmFsdWVGb3JMZW5ndGgoaW50cmluc2ljSGVpZ2h0LCAwKSk7CiB9
CiAKLS8vIEZJWE1FOiBzdXBwb3J0IGNhdGNoVXBJZk5lY2Vzc2FyeS4KLXZvaWQgU1ZHSW1hZ2U6
OnN0YXJ0QW5pbWF0aW9uKENhdGNoVXBBbmltYXRpb24pCit2b2lkIFNWR0ltYWdlOjpzdGFydEFu
aW1hdGlvbigpCiB7CiAgICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQgPSB0aGlzLT5yb290
RWxlbWVudCgpOwogICAgIGlmICghcm9vdEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5oCmluZGV4IDgwYmI5ZGZhNTk3NzBlZDcwZTg5MWQxOGIzNWY4MzE0YmZhOTI5
NzYuLjY4YmQyMzI0NDFhOGY2NWUwYTQ4NjRmOWRmYzhjOWEwMmQ4NWM4NTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc1JlbGF0
aXZlSGVpZ2h0KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKENhdGNo
VXBBbmltYXRpb24gPSBDYXRjaFVwKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uKCkg
ZmluYWw7CiAgICAgdm9pZCBzdG9wQW5pbWF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCByZXNldEFu
aW1hdGlvbigpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDY1Njc0MDk4NmY2MWQyOTZjNDkzN2FlMjU2ZGZk
MDE3NTk2Nzg1Yy4uYTgwZjJhYTEyNDU2NDAzMDJiNzkwYzE3MWE0MTM2NmI3YmM2ZGU2ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDE2LTEwLTE1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRGVsZXRlIHRoZSBhbmltYXRlZCBpbWFnZSBj
YXRjaHVwIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MzQxMAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICBUaGlzIGFuaW1hdGVkIGdpZiBoYXMgb25lIHJlZCBmcmFtZSwgb25lIGdyZWVuIGZyYW1lIGFu
ZCB0d28gcmVkIGZyYW1lcy4KKyAgICAgICAgVGhlIHRlc3QgcGFnZSByZW5kZXJzIG9ubHkgdHdv
IGZyYW1lcyBmcm9tIHRoaXMgdGhpcyBpbWFnZSBvbiBhIGNhbnZhcy4gVGhlCisgICAgICAgIHRl
c3QgcGFzc2VzIGlmIHRoZSBzZWNvbmQgZnJhbWUgKHRoZSBncmVlbiBvbmUpIGlzIHJlbmRlcmVk
IG9uIHRoZSBjYW52YXMKKyAgICAgICAgZXZlbiBpZiBkcmF3SW1hZ2UoKSBpcyBjYWxsZWQgYWZ0
ZXIgdGhlIGR1cmF0aW9uIG9mIHRoZSBmaXJzdCBmcmFtZS4KKworICAgICAgICAqIGZhc3QvaW1h
Z2VzL29yZGVyZWQtYW5pbWF0ZWQtaW1hZ2UtZnJhbWVzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL29yZGVyZWQtYW5pbWF0ZWQtaW1hZ2UtZnJhbWVzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc291cmNlcy9hbmltYXRlZC1yZWQtZ3Jl
ZW4tYmx1ZS5naWY6IEFkZGVkLgorCiAyMDE2LTEwLTE1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gbWFjT1MgaW5s
aW5lIGNvbnRyb2xzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9vcmRlcmVk
LWFuaW1hdGVkLWltYWdlLWZyYW1lcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvb3JkZXJlZC1hbmltYXRlZC1pbWFnZS1mcmFtZXMtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNjI1MzBiZmQ3MTI1NWE0MmRiZTE3OTg3ZTdjZTk5MGJjN2NjN2E2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvb3JkZXJlZC1hbmltYXRlZC1pbWFnZS1m
cmFtZXMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPHN0eWxlPgorICAgIGRpdiB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgfSAK
Kzwvc3R5bGU+ICAgIAorPGJvZHk+CisgICAgPGRpdj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL29yZGVyZWQtYW5pbWF0ZWQtaW1h
Z2UtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9vcmRlcmVkLWFuaW1hdGVk
LWltYWdlLWZyYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ODU0MTc4ZmIzODhkOWI1ZjkwMTFkOWMx
MzI1ZDdhMGZkYmRiN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9vcmRlcmVkLWFuaW1hdGVkLWltYWdlLWZyYW1lcy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c3R5bGU+CisgICAgY2FudmFzIHsKKyAgICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKzwvc3R5bGU+ICAgIAor
PGJvZHk+CisgICAgPGNhbnZhcyBpZD0iY2FudmFzIj48L2NhbnZhcz4KKyAgICA8c2NyaXB0Pgor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKworICAgICAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2U7CisgICAgICAg
IGltYWdlLm9ubG9hZCA9IGRyYXc7CisgICAgICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvYW5p
bWF0ZWQtcmVkLWdyZWVuLWJsdWUuZ2lmIjsKKyAgICAgICAgdmFyIGRyYXdDb3VudCA9IDA7CisK
KyAgICAgICAgZnVuY3Rpb24gZHJhdygpCisgICAgICAgIHsgICAKKyAgICAgICAgICAgIHZhciBj
YW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CisgICAgICAgICAgICB2
YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisKKyAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWFnZSwgMCwg
MCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBpZiAoKytk
cmF3Q291bnQgPT0gMikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBkcmF3KCk7Cisg
ICAgICAgICAgICB9LCAxMDApOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvYW5p
bWF0ZWQtcmVkLWdyZWVuLWJsdWUuZ2lmIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3Vy
Y2VzL2FuaW1hdGVkLXJlZC1ncmVlbi1ibHVlLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTMxZmMzYmFiNjdj
MGNkZmFmZjM2ODM3YWI1ZDc5NTI3ODIyYTQ1CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNzQz
CnpjbVo/d2JoRUhiT2txZjJfYHR5TXA4KjZFZjNrMmVmJDBDLWV5JDxHJlctYERNdFRPIWoxVkV1
K3tFLSQtXkJGSAp6PFpSeWIjTjZDT1RMVjI0UXhqOEQxfDUpUWtWeTxvI1YhM1NQcnYwfkpaSDxU
PyM9aTF7TmBfYTxUMzQ4PWR4RikKenchUHklez5rVjF4OENRISZWQiNLJiVAUHpXWU5iQ0FGYihV
bVZNXnpeOyYqcSl6X31HUz07WmRgXzllUmVmLUkkCnpwRk11N3VmTiYkbzQ1YjteRG4jcF9NTHpJ
e207SnR7MU9AIzl1WE44OVd6JCFJQzB+fTUwMTxUNm43S2gkT2VXNgp1a2I4JVFRXjdHYWE4NWt8
M0BCaH5BU3pTYCpzMEtqSkw9UXslVH1XYWZFSTwtWHM4a3NzQDRGblpkUlpHCgpsaXRlcmFsIDAK
SGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>