<?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>10559</bug_id>
          
          <creation_ts>2006-08-25 02:43:57 -0700</creation_ts>
          <short_desc>WebKit Qt fixes</short_desc>
          <delta_ts>2006-08-25 11:08:55 -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>Platform</component>
          <version>420+</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>53511</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-08-25 02:43:57 -0700</bug_when>
    <thetext>Alexey created a new style cleanup patch, I made it compile
(needed some little tweaks) and now it&apos;s ready for inclusion :-)

We do hope it is really confirming to all style rules in WebKit now!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53512</commentid>
    <comment_count>1</comment_count>
      <attachid>10213</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-08-25 02:52:29 -0700</bug_when>
    <thetext>Created attachment 10213
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53517</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-08-25 04:36:18 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; We do hope it is really confirming to all style rules in WebKit now!

Heh, I didn&apos;t claim that :-P. Actually, I&apos;m now seeing non-conformant code even in the changed chunks, e.g.

+    SharedTimerQt() : QTimer(), m_timerFunction(0)

(we don&apos;t explicitly call all initializers). But should be an improvement still...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53520</commentid>
    <comment_count>3</comment_count>
      <attachid>10217</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2006-08-25 05:05:44 -0700</bug_when>
    <thetext>Created attachment 10217
Updated patch

Incorporated ap&apos;s comment :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53648</commentid>
    <comment_count>4</comment_count>
      <attachid>10217</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2006-08-25 09:35:03 -0700</bug_when>
    <thetext>Comment on attachment 10217
Updated patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53649</commentid>
    <comment_count>5</comment_count>
      <attachid>10217</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2006-08-25 09:40:26 -0700</bug_when>
    <thetext>Comment on attachment 10217
Updated patch

Landed as r16033. Clearing review flag</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10213</attachid>
            <date>2006-08-25 02:52:29 -0700</date>
            <delta_ts>2006-08-25 05:05:44 -0700</delta_ts>
            <desc>Initial patch</desc>
            <filename>style-cleanup.diff</filename>
            <type>text/plain</type>
            <size>22145</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShSZXZpc2lvbiAxNjAzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCShBcmJlaXRza29waWUpCkBA
IC0xLDMgKzEsNjcgQEAKKzIwMDYtMDgtMjUgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1h
bm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlczogaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDU1OQorICAgICAgICBDb25maXJtIHRvIFdlYktpdCBzdHlsZSBndWlkZSAtIGxhc3QgZml4
ZXMgOi0pCisKKyAgICAgICAgKiBwbGF0Zm9ybS9SZXNvdXJjZUxvYWRlckNsaWVudC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0NvbWJvQm94UXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L0ZyYW1lUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9TY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVRdDo6RnJhbWVRdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVF0OjpvcGVu
VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lUXQ6OnN1Ym1pdEZvcm0pOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVRdDo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVRdDo6
cGFzc1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lUXQ6
OmtleUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lUXQ6OnNldEZyYW1lR2VvbWV0cnkp
OgorICAgICAgICAqIHBsYXRmb3JtL3F0L0dseXBoTWFwUXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R2x5cGhNYXA6OmZpbGxQYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9HcmFwaGljc0Nv
bnRleHRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1F0Q29tcG9zaXRpb25Nb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvUXRMaW5lQ2FwKToKKyAgICAgICAgKFdlYkNvcmU6OnRvUXRMaW5l
Sm9pbik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0U2hhZG93OjpUZXh0U2hhZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6cCk6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvSW1hZ2VRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZURhdGE6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpzdXBwb3J0c1R5cGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L0ludFNpemVRdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vcXQvTGlu
ZUVkaXRRdC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vcXQvTGlzdEJveFF0LmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9QYWdlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6d2lu
ZG93UmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUGF0aFF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhdGg6On5QYXRoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZXNvdXJjZUxvYWRl
ckN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmFzc2VtYmxlUmVz
cG9uc2VIZWFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpyZXRyaWV2
ZUNoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnJlY2VpdmVkUmVz
cG9uc2UpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Jlc291cmNlTG9hZGVyTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpoZWFkZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlck1hbmFnZXI6OmRvd25sb2FkVGltZXJDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlck1hbmFnZXI6OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0v
cXQvU2NyZWVuUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjp1c2FibGVTY3JlZW5SZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TY3Jv
bGxWaWV3UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6U2Nyb2xsVmlldyk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp+U2Nyb2xsVmlldyk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRQYXJlbnRXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6YWRkQ2hpbGQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NoYXJlZFRpbWVy
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TaGFyZWRUaW1lclF0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRUaW1lclF0OjpTaGFyZWRUaW1lclF0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJl
ZFRpbWVyUXQ6OmZpcmUpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1N5c3RlbVRpbWVRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQv
VGV4dEVkaXRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRleHRFZGl0OjpzZXRQ
YXJlbnRXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1UZXh0RWRpdDo6dGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRleHRFZGl0OjpzaXplV2l0aENvbHVtbnNBbmRS
b3dzKToKKwogMjAwNi0wOC0yNCAgRGF2aWQgSGFycmlzb24gIDxoYXJyaXNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSnVzdGluLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9x
dC9UZXh0RWRpdFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1RleHRF
ZGl0UXQuY3BwCShSZXZpc2lvbiAxNjAyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvVGV4dEVk
aXRRdC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTUyLDcgKzUyLDcgQEAKIHsKICAgICBXaWRnZXQ6
OnNldFBhcmVudFdpZGdldChwYXJlbnQpOwogCi0gICAgUVRleHRFZGl0ICp3aWRnZXQgPSBuZXcg
UVRleHRFZGl0KHBhcmVudCwgIiIpOworICAgIFFUZXh0RWRpdCogd2lkZ2V0ID0gbmV3IFFUZXh0
RWRpdChwYXJlbnQsICIiKTsKICAgICBzZXRRV2lkZ2V0KHdpZGdldCk7CiB9CiAKQEAgLTEyMiw2
ICsxMjIsNyBAQAogU3RyaW5nIFBsYXRmb3JtVGV4dEVkaXQ6OnRleHQoKSBjb25zdAogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOwogfQogCiBTdHJpbmcgUGxh
dGZvcm1UZXh0RWRpdDo6dGV4dFdpdGhIYXJkTGluZUJyZWFrcygpIGNvbnN0CkBAIC0xODksNiAr
MTkwLDcgQEAKIEludFNpemUgUGxhdGZvcm1UZXh0RWRpdDo6c2l6ZVdpdGhDb2x1bW5zQW5kUm93
cyhpbnQgbnVtQ29sdW1ucywgaW50IG51bVJvd3MpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gSW50U2l6ZSgpOwogfQogCiBib29sIFBsYXRmb3JtVGV4dEVkaXQ6
OmNoZWNrc0Rlc2NlbmRhbnRzRm9yRm9jdXMoKSBjb25zdApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAJKFJldmlzaW9uIDE2MDIyKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTMwLDYg
KzMwLDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2luY2x1ZGUgImNvbmZpZy5oIgorCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiUGF0aC5oIgogCkBAIC01Mywz
NCArNTUsMzQgQEAKIHN0YXRpYyBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlIHRvUXRDb21wb3Np
dGlvbk1vZGUoQ29tcG9zaXRlT3BlcmF0b3Igb3ApCiB7CiAgICAgc3dpdGNoIChvcCkgewotICAg
IGNhc2UgQ29tcG9zaXRlQ2xlYXI6Ci0gICAgICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRp
b25Nb2RlX0NsZWFyOwotICAgIGNhc2UgQ29tcG9zaXRlQ29weToKLSAgICAgICAgcmV0dXJuIFFQ
YWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlOwotICAgIGNhc2UgQ29tcG9zaXRlU291cmNl
T3ZlcjoKLSAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlT3Zl
cjsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUluOgotICAgICAgICByZXR1cm4gUVBhaW50ZXI6
OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2VJbjsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU91dDoK
LSAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlT3V0OwotICAg
IGNhc2UgQ29tcG9zaXRlU291cmNlQXRvcDoKLSAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21w
b3NpdGlvbk1vZGVfU291cmNlQXRvcDsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3Zl
cjoKLSAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfRGVzdGluYXRpb25P
dmVyOwotICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25JbjoKLSAgICAgICAgcmV0dXJuIFFQ
YWludGVyOjpDb21wb3NpdGlvbk1vZGVfRGVzdGluYXRpb25JbjsKLSAgICBjYXNlIENvbXBvc2l0
ZURlc3RpbmF0aW9uT3V0OgotICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9k
ZV9EZXN0aW5hdGlvbk91dDsKLSAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRvcDoKLSAg
ICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfRGVzdGluYXRpb25BdG9wOwot
ICAgIGNhc2UgQ29tcG9zaXRlWE9SOgotICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0
aW9uTW9kZV9Yb3I7Ci0gICAgY2FzZSBDb21wb3NpdGVQbHVzRGFya2VyOgotICAgICAgICByZXR1
cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2VPdmVyOwotICAgIGNhc2UgQ29tcG9z
aXRlSGlnaGxpZ2h0OgotICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9T
b3VyY2VPdmVyOwotICAgIGNhc2UgQ29tcG9zaXRlUGx1c0xpZ2h0ZXI6Ci0gICAgICAgIHJldHVy
biBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXI7CisgICAgICAgIGNhc2UgQ29t
cG9zaXRlQ2xlYXI6CisgICAgICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9k
ZV9DbGVhcjsKKyAgICAgICAgY2FzZSBDb21wb3NpdGVDb3B5OgorICAgICAgICAgICAgcmV0dXJu
IFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlOworICAgICAgICBjYXNlIENvbXBvc2l0
ZVNvdXJjZU92ZXI6CisgICAgICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9k
ZV9Tb3VyY2VPdmVyOworICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUluOgorICAgICAgICAg
ICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlSW47CisgICAgICAgIGNh
c2UgQ29tcG9zaXRlU291cmNlT3V0OgorICAgICAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21w
b3NpdGlvbk1vZGVfU291cmNlT3V0OworICAgICAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUF0b3A6
CisgICAgICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2VBdG9w
OworICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICAgICAgICAgIHJl
dHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0Rlc3RpbmF0aW9uT3ZlcjsKKyAgICAgICAg
Y2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbkluOgorICAgICAgICAgICAgcmV0dXJuIFFQYWludGVy
OjpDb21wb3NpdGlvbk1vZGVfRGVzdGluYXRpb25JbjsKKyAgICAgICAgY2FzZSBDb21wb3NpdGVE
ZXN0aW5hdGlvbk91dDoKKyAgICAgICAgICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25N
b2RlX0Rlc3RpbmF0aW9uT3V0OworICAgICAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uQXRv
cDoKKyAgICAgICAgICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0Rlc3RpbmF0
aW9uQXRvcDsKKyAgICAgICAgY2FzZSBDb21wb3NpdGVYT1I6CisgICAgICAgICAgICByZXR1cm4g
UVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Yb3I7CisgICAgICAgIGNhc2UgQ29tcG9zaXRlUGx1
c0RhcmtlcjoKKyAgICAgICAgICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1Nv
dXJjZU92ZXI7CisgICAgICAgIGNhc2UgQ29tcG9zaXRlSGlnaGxpZ2h0OgorICAgICAgICAgICAg
cmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlT3ZlcjsKKyAgICAgICAgY2Fz
ZSBDb21wb3NpdGVQbHVzTGlnaHRlcjoKKyAgICAgICAgICAgIHJldHVybiBRUGFpbnRlcjo6Q29t
cG9zaXRpb25Nb2RlX1NvdXJjZU92ZXI7CiAgICAgfQogCiAgICAgcmV0dXJuIFFQYWludGVyOjpD
b21wb3NpdGlvbk1vZGVfU291cmNlT3ZlcjsKQEAgLTg5LDEyICs5MSwxMiBAQAogc3RhdGljIFF0
OjpQZW5DYXBTdHlsZSB0b1F0TGluZUNhcChMaW5lQ2FwIGxjKQogewogICAgIHN3aXRjaCAobGMp
IHsKLSAgICBjYXNlIEJ1dHRDYXA6Ci0gICAgICAgIHJldHVybiBRdDo6RmxhdENhcDsKLSAgICBj
YXNlIFJvdW5kQ2FwOgotICAgICAgICByZXR1cm4gUXQ6OlJvdW5kQ2FwOwotICAgIGNhc2UgU3F1
YXJlQ2FwOgotICAgICAgICByZXR1cm4gUXQ6OlNxdWFyZUNhcDsKKyAgICAgICAgY2FzZSBCdXR0
Q2FwOgorICAgICAgICAgICAgcmV0dXJuIFF0OjpGbGF0Q2FwOworICAgICAgICBjYXNlIFJvdW5k
Q2FwOgorICAgICAgICAgICAgcmV0dXJuIFF0OjpSb3VuZENhcDsKKyAgICAgICAgY2FzZSBTcXVh
cmVDYXA6CisgICAgICAgICAgICByZXR1cm4gUXQ6OlNxdWFyZUNhcDsKICAgICB9CiAKICAgICBy
ZXR1cm4gUXQ6OkZsYXRDYXA7CkBAIC0xMDMsMTIgKzEwNSwxMiBAQAogc3RhdGljIFF0OjpQZW5K
b2luU3R5bGUgdG9RdExpbmVKb2luKExpbmVKb2luIGxqKQogewogICAgIHN3aXRjaCAobGopIHsK
LSAgICBjYXNlIE1pdGVySm9pbjoKLSAgICAgICAgcmV0dXJuIFF0OjpTdmdNaXRlckpvaW47Ci0g
ICAgY2FzZSBSb3VuZEpvaW46Ci0gICAgICAgIHJldHVybiBRdDo6Um91bmRKb2luOwotICAgIGNh
c2UgQmV2ZWxKb2luOgotICAgICAgICByZXR1cm4gUXQ6OkJldmVsSm9pbjsKKyAgICAgICAgY2Fz
ZSBNaXRlckpvaW46CisgICAgICAgICAgICByZXR1cm4gUXQ6OlN2Z01pdGVySm9pbjsKKyAgICAg
ICAgY2FzZSBSb3VuZEpvaW46CisgICAgICAgICAgICByZXR1cm4gUXQ6OlJvdW5kSm9pbjsKKyAg
ICAgICAgY2FzZSBCZXZlbEpvaW46CisgICAgICAgICAgICByZXR1cm4gUXQ6OkJldmVsSm9pbjsK
ICAgICB9CiAKICAgICByZXR1cm4gUXQ6Ok1pdGVySm9pbjsKQEAgLTE0NCw5ICsxNDYsOSBAQAog
c3RydWN0IFRleHRTaGFkb3cKIHsKICAgICBUZXh0U2hhZG93KCkKLSAgICA6IHgoMCkKLSAgICAs
IHkoMCkKLSAgICAsIGJsdXIoMCkKKyAgICAgICAgOiB4KDApCisgICAgICAgICwgeSgwKQorICAg
ICAgICAsIGJsdXIoMCkKICAgICB7CiAgICAgfQogCkBAIC0xNjUsNyArMTY3LDcgQEAKICAgICBH
cmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUoUVBhaW50ZXIqIHBhaW50ZXIpOwogICAgIH5H
cmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUoKTsKIAotICAgIGlubGluZSBRUGFpbnRlciYg
cCgpCisgICAgUVBhaW50ZXImIHAoKQogICAgIHsKICAgICAgICAgaWYgKGxheWVycy5pc0VtcHR5
KCkpIHsKICAgICAgICAgICAgIGlmIChyZWRpcmVjdCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
cXQvU2hhcmVkVGltZXJRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2hh
cmVkVGltZXJRdC5oCShSZXZpc2lvbiAxNjAyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2hh
cmVkVGltZXJRdC5oCShBcmJlaXRza29waWUpCkBAIC0zOCwxMSArMzgsMTAgQEAKIGNsYXNzIFNo
YXJlZFRpbWVyUXQgOiBwdWJsaWMgUVRpbWVyIHsKIFFfT0JKRUNUCiBwcm90ZWN0ZWQ6Ci0gICAg
U2hhcmVkVGltZXJRdCgpIDogUVRpbWVyKCkKKyAgICBTaGFyZWRUaW1lclF0KCkgOiBRVGltZXIo
KSwgbV90aW1lckZ1bmN0aW9uKDApCiAgICAgewogICAgICAgICBjb25uZWN0KHRoaXMsIFNJR05B
TCh0aW1lb3V0KCkpLCB0aGlzLCBTTE9UKGZpcmUoKSkpOwogICAgICAgICBzZXRTaW5nbGVTaG90
KHRydWUpOwotICAgICAgICBfdGltZXJGdW5jdGlvbiA9IDA7CiAgICAgfQogCiAgICAgflNoYXJl
ZFRpbWVyUXQoKQpAQCAtNTgsMTMgKzU3LDEzIEBACiAgICAgICAgIHJldHVybiBzX3NlbGY7CiAg
ICAgfQogCi0gICAgdm9pZCAoKl90aW1lckZ1bmN0aW9uKSgpOworICAgIHZvaWQgKCptX3RpbWVy
RnVuY3Rpb24pKCk7CiAKIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgZmlyZSgpCiAgICAgewot
ICAgICAgICBpZiAoX3RpbWVyRnVuY3Rpb24pCi0gICAgICAgICAgICAoX3RpbWVyRnVuY3Rpb24p
KCk7CisgICAgICAgIGlmIChtX3RpbWVyRnVuY3Rpb24pCisgICAgICAgICAgICAobV90aW1lckZ1
bmN0aW9uKSgpOwogICAgIH0KIAogcHJpdmF0ZToKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQv
R2x5cGhNYXBRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9HbHlwaE1h
cFF0LmNwcAkoUmV2aXNpb24gMTYwMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L0dseXBoTWFw
UXQuY3BwCShBcmJlaXRza29waWUpCkBAIC0zNiw5ICszNiw4IEBACiAKIGJvb2wgR2x5cGhNYXA6
OmZpbGxQYWdlKEdseXBoUGFnZSogcGFnZSwgVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVy
TGVuZ3RoLCBjb25zdCBGb250RGF0YSogZm9udERhdGEpCiB7Ci0gICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGJ1ZmZlckxlbmd0aDsgaSsrKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGJ1ZmZlckxlbmd0aDsgaSsrKQogICAgICAgICBwYWdlLT5zZXRHbHlwaERhdGFGb3JJbmRl
eChpLCBidWZmZXJbaV0sIGZvbnREYXRhKTsKLSAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvTGlzdEJveFF0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL3F0L0xpc3RCb3hRdC5jcHAJKFJldmlzaW9uIDE2MDIyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9MaXN0Qm94UXQuY3BwCShBcmJlaXRza29waWUpCkBAIC0yNiw2ICsy
Niw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCisKICNp
bmNsdWRlIDxRU2Nyb2xsQmFyPgogI2luY2x1ZGUgPFFMaXN0V2lkZ2V0PgogCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL3F0L1Njcm9sbFZpZXdRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9xdC9TY3JvbGxWaWV3UXQuY3BwCShSZXZpc2lvbiAxNjAyMikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vcXQvU2Nyb2xsVmlld1F0LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtNDcsMTcgKzQ3
LDE0IEBACiBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3KCkKICAgICA6IG1fYXJlYShuZXcgUVNjcm9s
bEFyZWEoMCkpCiB7Ci0gICAgcURlYnVnKCJTY3JvbGxWaWV3OjpTY3JvbGxWaWV3KCkiKTsKIH0K
IAogU2Nyb2xsVmlldzo6flNjcm9sbFZpZXcoKQogewotICAgIHFEZWJ1ZygiU2Nyb2xsVmlldzo6
flNjcm9sbFZpZXcoKSIpOwogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnNldFBhcmVudFdpZGdldChR
V2lkZ2V0KiBwYXJlbnQpCiB7Ci0gICAgcURlYnVnKCJTY3JvbGxWaWV3OjpzZXRQYXJlbnRXaWRn
ZXQoKSwgcGFyZW50PSVwIiwgcGFyZW50KTsKICAgICBXaWRnZXQ6OnNldFBhcmVudFdpZGdldChw
YXJlbnQpOwogCiAgICAgLy8gJ2lzRnJhbWVWaWV3KCknIGNhbiBub3QgYmUgY2FsbGVkIHlldCBp
biB0aGUgY29uc3RydWN0b3IhCkBAIC0yMjksNyArMjI2LDYgQEAKIAogdm9pZCBTY3JvbGxWaWV3
OjphZGRDaGlsZChXaWRnZXQqIGNoaWxkLCBpbnQgeCwgaW50IHkpCiB7Ci0gICAgcURlYnVnKCJT
Y3JvbGxWaWV3OjphZGRDaGlsZCgpLCBjaGlsZD0lcCwgeD0laSwgeT0laSIsIGNoaWxkLCB4LCB5
KTsKICAgICBRX0FTU0VSVChjaGlsZCAhPSAwKTsKICAgICBRX0FTU0VSVChtX2FyZWEgJiYgbV9h
cmVhLT53aWRnZXQoKSk7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvRnJhbWVRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9GcmFtZVF0LmNwcAkoUmV2aXNpb24g
MTYwMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L0ZyYW1lUXQuY3BwCShBcmJlaXRza29waWUp
CkBAIC02NywxOCArNjcsMTggQEAKIHsKICAgICAvLyBGSVhNRTogVGhlIHNjcm9sbGluZyBkb25l
IGhlcmUgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIGRlZmF1bHQgaGFuZGxlcnMKICAgICAvLyBvZiB0
aGUgZWxlbWVudHMgcmF0aGVyIHRoYW4gaGVyZSBpbiB0aGUgcGFydC4KLSAgICBpZighcikKKyAg
ICBpZiAoIXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vYnJva2VuIHNpbmNlIGl0IGNhbGxz
IHNjcm9sbCBvbiBzY3JvbGxiYXJzCiAgICAgLy9hbmQgd2UgaGF2ZSBub25lIG5vdwogICAgIC8v
ci0+c2Nyb2xsKGRpcmVjdGlvbiwgS1dRU2Nyb2xsV2hlZWwsIG11bHRpcGxpZXIpOwotICAgIGlm
KCFyLT5sYXllcigpKQorICAgIGlmICghci0+bGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaW50IHggPSByLT5sYXllcigpLT5zY3JvbGxYT2Zmc2V0KCk7CiAgICAgaW50IHkgPSByLT5s
YXllcigpLT5zY3JvbGxZT2Zmc2V0KCk7Ci0gICAgaWYoaXNIb3Jpem9udGFsKQorICAgIGlmIChp
c0hvcml6b250YWwpCiAgICAgICAgIHggKz0gbXVsdGlwbGllcjsKICAgICBlbHNlCiAgICAgICAg
IHkgKz0gbXVsdGlwbGllcjsKQEAgLTk0LDcgKzk0LDYgQEAKIEZyYW1lUXQ6OkZyYW1lUXQoKQog
ICAgIDogRnJhbWUobmV3IFBhZ2UsIDApCiB7Ci0gICAgcURlYnVnKCJGcmFtZVF0OjpGcmFtZVF0
Iik7CiAgICAgaW5pdCgpOwogCiAgICAgcGFnZSgpLT5zZXRNYWluRnJhbWUodGhpcyk7CkBAIC0x
NDEsNyArMTQwLDYgQEAKIAogYm9vbCBGcmFtZVF0OjpvcGVuVVJMKGNvbnN0IEtVUkwmIHVybCkK
IHsKLSAgICBxRGVidWcoIm9wZW5VUkwoJXMpIiwgdXJsLnVybCgpLmxhdGluMSgpKTsKICAgICBk
aWRPcGVuVVJMKHVybCk7CiAKICAgICAvLyBGSVhNRTogVXNlIG1pbWV0eXBlIGxvZ2ljIGZyb20g
S0lPIQpAQCAtMTU3LDE2ICsxNTUsMTQgQEAKIAogdm9pZCBGcmFtZVF0OjpzdWJtaXRGb3JtKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBxRGVidWcoIkZyYW1lUXQ6OnN1
Ym1pdEZvcm0oKSIpOwotCiAgICAgLy8gRklYTUU6IHRoaXMgaXMgYSBoYWNrIGluaGVyaXRlZCBm
cm9tIEZyYW1lTWFjLCBhbmQgc2hvdWxkIGJlIHB1c2hlZCBpbnRvIEZyYW1lCi0gICAgaWYoZC0+
bV9zdWJtaXR0ZWRGb3JtVVJMID09IHJlcXVlc3QudXJsKCkpCisgICAgaWYgKGQtPm1fc3VibWl0
dGVkRm9ybVVSTCA9PSByZXF1ZXN0LnVybCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBkLT5t
X3N1Ym1pdHRlZEZvcm1VUkwgPSByZXF1ZXN0LnVybCgpOwogCiAgICAgLyogRklYTUU6IE9uY2Ug
d2UgaGF2ZSBhIEtQYXJ0IC0gbmFtZWQgIkZyYW1lUGFydFF0IiAtIHdlIGNhbiBsZXQgdGhhdCBp
bmhlcml0IGZyb20gRnJhbWVRdENsaWVudCBhbmQgaW1wbGVtZW50IHRoZSBmdW5jdGlvbnMuLi4p
Ci0gICAgaWYobV9jbGllbnQpCisgICAgaWYgKG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+
c3VibWl0Rm9ybShyZXF1ZXN0LmRvUG9zdCgpID8gIlBPU1QiIDogIkdFVCIsIHJlcXVlc3QudXJs
KCksICZyZXF1ZXN0LnBvc3REYXRhKTsKICAgICAqLwogCkBAIC0yMTIsNyArMjA4LDcgQEAKIAog
dm9pZCBGcmFtZVF0OjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKQogewotICAgIGlmKHZp
ZXcoKSAmJiB2aWV3KCktPnBhcmVudFdpZGdldCgpKQorICAgIGlmICh2aWV3KCkgJiYgdmlldygp
LT5wYXJlbnRXaWRnZXQoKSkKICAgICAgICAgdmlldygpLT5wYXJlbnRXaWRnZXQoKS0+c2V0V2lu
ZG93VGl0bGUodGl0bGUpOwogfQogCkBAIC0yMzAsNyArMjI2LDcgQEAKIAogYm9vbCBGcmFtZVF0
OjpwYXNzU3ViZnJhbWVFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyYgbWV2LCBGcmFtZSopCiB7Ci0gICAgaWYobWV2LnRhcmdldE5vZGUoKSA9PSAwKQorICAgIGlm
IChtZXYudGFyZ2V0Tm9kZSgpID09IDApCiAgICAgICAgIHJldHVybiB0cnVlOwogIAogICAgIHJl
dHVybiBmYWxzZTsKQEAgLTQ5OSwyMSArNDk1LDIxIEBACiAgICAgLy8gQ2hlY2sgZm9yIGNhc2Vz
IHdoZXJlIHdlIGFyZSB0b28gZWFybHkgZm9yIGV2ZW50cyAtLSBwb3NzaWJsZSB1bm1hdGNoZWQg
a2V5IHVwCiAgICAgLy8gZnJvbSBwcmVzc2luZyByZXR1cm4gaW4gdGhlIGxvY2F0aW9uIGJhci4K
ICAgICBEb2N1bWVudCogZG9jID0gZG9jdW1lbnQoKTsKLSAgICBpZighZG9jKQorICAgIGlmICgh
ZG9jKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBOb2RlKiBub2RlID0gZG9jLT5mb2N1
c05vZGUoKTsKLSAgICBpZighbm9kZSkgeworICAgIGlmICghbm9kZSkgewogICAgICAgICBpZiAo
ZG9jLT5pc0hUTUxEb2N1bWVudCgpKQogICAgICAgICAgICAgbm9kZSA9IGRvYy0+Ym9keSgpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBub2RlID0gZG9jLT5kb2N1bWVudEVsZW1lbnQoKTsK
IAotICAgICAgICBpZighbm9kZSkKKyAgICAgICAgaWYgKCFub2RlKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmKCFrZXlFdmVudC5pc0tleVVwKCkpCisgICAgaWYg
KCFrZXlFdmVudC5pc0tleVVwKCkpCiAgICAgICAgIHByZXBhcmVGb3JVc2VyQWN0aW9uKCk7CiAK
ICAgICByZXN1bHQgPSAhRXZlbnRUYXJnZXROb2RlQ2FzdChub2RlKS0+ZGlzcGF0Y2hLZXlFdmVu
dChrZXlFdmVudCk7CkBAIC01MzksNyArNTM1LDcgQEAKIAogdm9pZCBGcmFtZVF0OjpzZXRGcmFt
ZUdlb21ldHJ5KGNvbnN0IEludFJlY3QmIHIpCiB7Ci0gICAgc2V0RnJhbWVHZW9tZXRyeSgoUVJl
Y3QpIHIpOworICAgIHNldEZyYW1lR2VvbWV0cnkoUVJlY3QocikpOwogfQogCiB9CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL3F0L1BhdGhRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9xdC9QYXRoUXQuY3BwCShSZXZpc2lvbiAxNjAyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
cXQvUGF0aFF0LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtNDQsNyArNDQsNiBAQAogUGF0aDo6flBh
dGgoKQogewogICAgIGRlbGV0ZSBtX3BhdGg7Ci0gICAgbV9wYXRoID0gMDsKIH0KIAogUGF0aDo6
UGF0aChjb25zdCBQYXRoJiBvdGhlcikKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvTGluZUVk
aXRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9MaW5lRWRpdFF0LmNw
cAkoUmV2aXNpb24gMTYwMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L0xpbmVFZGl0UXQuY3Bw
CShBcmJlaXRza29waWUpCkBAIC0yNiw5ICsyNiwxMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAorI2luY2x1ZGUgImNvbmZpZy5oIgorCiAjaW5jbHVkZSA8UUxpbmVFZGl0PgogCi0jaW5jbHVk
ZSA8Y29uZmlnLmg+CiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIlRleHRE
aXJlY3Rpb24uaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
cXQvUmVzb3VyY2VMb2FkZXJDdXJsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L3F0L1Jlc291cmNlTG9hZGVyQ3VybC5jcHAJKFJldmlzaW9uIDE2MDIyKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9xdC9SZXNvdXJjZUxvYWRlckN1cmwuY3BwCShBcmJlaXRza29waWUpCkBAIC0yNyw3
ICsyNyw2IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaW5jbHVkZSA8UURlYnVnPgogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCiAKQEAgLTY3LDkg
KzY2LDggQEAKICAKICAgICAgICAgLy8gRklYTUU6IE1vdmUgdGhlIGNsaWVudCBhY3RpdmF0aW9u
IHRvIHJlY2VpdmVkUmVzcG9uc2UoKSwgb25jZQogICAgICAgICAvLyB3ZSB1c2UgS0lPLCBhbmQg
cmVjZWl2ZWRSZXNwb25zZSgpIGlzIGNhbGxlZCBvbmx5IG9uY2UuCi0gICAgICAgIGlmIChkLT5j
bGllbnQpIHsKLSAgICAgICAgICAgIGQtPmNsaWVudC0+cmVjZWl2ZWRSZXNwb25zZShjb25zdF9j
YXN0PFJlc291cmNlTG9hZGVyICo+KHRoaXMpLCAoY2hhciAqKSBkLT5yZXNwb25zZS5kYXRhKCkp
OwotICAgICAgICB9CisgICAgICAgIGlmIChkLT5jbGllbnQpCisgICAgICAgICAgICBkLT5jbGll
bnQtPnJlY2VpdmVkUmVzcG9uc2UoY29uc3RfY2FzdDxSZXNvdXJjZUxvYWRlcio+KHRoaXMpLCBk
LT5yZXNwb25zZSk7CiAKICAgICAgICAgZC0+cmVzcG9uc2UgPSBRU3RyaW5nKCk7IC8vIFJlc2V0
CiAgICAgfQpAQCAtNzcsOSArNzUsOCBAQAogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpyZXRyaWV2
ZUNoYXJzZXQoKSBjb25zdAogewotICAgIGlmICghZC0+cmV0cmlldmVkQ2hhcnNldCkgeworICAg
IGlmICghZC0+cmV0cmlldmVkQ2hhcnNldCkKICAgICAgICAgZC0+cmV0cmlldmVkQ2hhcnNldCA9
IHRydWU7Ci0gICAgfQogCiAgICAgLy8gRklYTUU6IFdlIGNhbiBqdXN0IHBhcnNlIHRoZSBoZWFk
ZXJzIGhlcmUsIGJ1dCBvbmNlIHdlIHVzZSBLSU8KICAgICAvLyB3ZSBjYW4gc2V0IHRoZSByZXNw
b25zZSBwYXJhbWV0ZXIgdG8gc3RoLiBlbHNlIHRoYW4gYSAiY2hhcioiLgpAQCAtODcsNyArODQs
NyBAQAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OnJl
Y2VpdmVkUmVzcG9uc2UoY2hhciogcmVzcG9uc2UpCit2b2lkIFJlc291cmNlTG9hZGVyOjpyZWNl
aXZlZFJlc3BvbnNlKFFTdHJpbmcgcmVzcG9uc2UpCiB7CiAgICAgUV9BU1NFUlQobWV0aG9kKCkg
PT0gIlBPU1QiKTsKIApAQCAtMTAyLDcgKzk5LDcgQEAKICAgICAvLwogICAgIC8vIEFueXdheSwg
bGV0J3MgY29sbGVjdCB0aGUgcmVzcG9uc2UgZGF0YSBoZXJlLCBhcyB0aGUgUmVzb3VyY2VMb2Fk
ZXJNYW5hZ2VyCiAgICAgLy8gY2FsbHMgdXMgZm9yIGV2ZXJ5IGxpbmUgb2YgdGhlIGhlYWRlciBp
dCByZWNlaXZlcy4KLSAgICBkLT5yZXNwb25zZSArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKHJlc3Bv
bnNlKTsKKyAgICBkLT5yZXNwb25zZSArPSByZXNwb25zZTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9TeXN0ZW1UaW1lUXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvU3lzdGVtVGltZVF0LmNwcAkoUmV2aXNpb24g
MTYwMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L1N5c3RlbVRpbWVRdC5jcHAJKEFyYmVpdHNr
b3BpZSkKQEAgLTM2LDcgKzM2LDcgQEAKIHsKICAgICB0aW1lX3QgdHRpbWU7CiAgICAgdGltZSgm
dHRpbWUpOwotICAgIHJldHVybiAoZG91YmxlKSB0dGltZTsKKyAgICByZXR1cm4gKGRvdWJsZSl0
dGltZTsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZXNvdXJjZUxvYWRlck1h
bmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVzb3VyY2VMb2Fk
ZXJNYW5hZ2VyLmNwcAkoUmV2aXNpb24gMTYwMjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L1Jl
c291cmNlTG9hZGVyTWFuYWdlci5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTc0LDkgKzc0LDggQEAK
ICAgICBSZXNvdXJjZUxvYWRlciogam9iID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VMb2FkZXIqPihv
YmopOwogICAgIFJlc291cmNlTG9hZGVySW50ZXJuYWwqIGQgPSBqb2ItPmdldEludGVybmFsKCk7
CiAgCi0gICAgaWYgKGpvYi0+bWV0aG9kKCkgPT0gIlBPU1QiKSB7CisgICAgaWYgKGpvYi0+bWV0
aG9kKCkgPT0gIlBPU1QiKQogICAgICAgICBqb2ItPnJlY2VpdmVkUmVzcG9uc2UocHRyKTsKLSAg
ICB9CiAgICAgCiAgICAgaW50IHRvdGFsU2l6ZSA9IHNpemUgKiBubWVtYjsKICAgICByZXR1cm4g
dG90YWxTaXplOwpAQCAtMTQwLDEyICsxMzksMTIgQEAKICAgICAgICAgICAgICAgICAvLyBmaW5k
IHRoZSBub2RlIHdoaWNoIGhhcyBzYW1lIGQtPm1faGFuZGxlIGFzIGNvbXBsZXRlZCB0cmFuc2Zl
cgogICAgICAgICAgICAgICAgIENVUkwqIGNoYW5kbGUgPSBtc2ctPmVhc3lfaGFuZGxlOwogICAg
ICAgICAgICAgICAgIGFzc2VydChjaGFuZGxlKTsKLSAgICAgICAgICAgICAgICBSZXNvdXJjZUxv
YWRlciAqam9iOworICAgICAgICAgICAgICAgIFJlc291cmNlTG9hZGVyKiBqb2I7CiAgICAgICAg
ICAgICAgICAgY3VybF9lYXN5X2dldGluZm8oY2hhbmRsZSwgQ1VSTElORk9fUFJJVkFURSwgJmpv
Yik7CiAgICAgICAgICAgICAgICAgYXNzZXJ0KGpvYik7IC8vZml4bWU6IGFzc2VydC0+aWYgPwog
ICAgICAgICAgICAgICAgIC8vIGlmIGZvdW5kLCBkZWxldGUgaXQKICAgICAgICAgICAgICAgICBp
ZiAoam9iKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJlc291cmNlTG9hZGVySW50ZXJuYWwgKmQg
PSBqb2ItPmdldEludGVybmFsKCk7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlTG9hZGVy
SW50ZXJuYWwqIGQgPSBqb2ItPmdldEludGVybmFsKCk7CiAgICAgICAgICAgICAgICAgICAgIHN3
aXRjaCAobXNnLT5kYXRhLnJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBD
VVJMRV9PSzogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZSB0aGlzIHRvIGF1
dGhlbnRpY2F0ZQpAQCAtMjExLDcgKzIxMCw3IEBACiAgICAgaWYgKGpvYi0+bWV0aG9kKCkgPT0g
IlBPU1QiKSB7CiAgICAgICAgIERlcHJlY2F0ZWRTdHJpbmcgcG9zdERhdGEgPSBqb2ItPnBvc3RE
YXRhKCkuZmxhdHRlblRvU3RyaW5nKCk7CiAKLSAgICAgICAgY2hhciAqcG9zdERhdGFTdHJpbmcg
PSAoY2hhciAqKSBtYWxsb2MocG9zdERhdGEubGVuZ3RoKCkgKyAxKTsKKyAgICAgICAgY2hhciog
cG9zdERhdGFTdHJpbmcgPSAoY2hhciopbWFsbG9jKHBvc3REYXRhLmxlbmd0aCgpICsgMSk7CiAg
ICAgICAgIHN0cm5jcHkocG9zdERhdGFTdHJpbmcsIHBvc3REYXRhLmFzY2lpKCksIHBvc3REYXRh
Lmxlbmd0aCgpKTsKICAgICAgICAgcG9zdERhdGFTdHJpbmdbcG9zdERhdGEubGVuZ3RoKCldID0g
J1wwJzsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9TaGFyZWRUaW1lclF0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuY3BwCShSZXZpc2lv
biAxNjAyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2hhcmVkVGltZXJRdC5jcHAJKEFyYmVp
dHNrb3BpZSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVkRnVu
Y3Rpb24odm9pZCAoKmYpKCkpCiB7Ci0gICAgU2hhcmVkVGltZXJRdDo6aW5zdCgpLT5fdGltZXJG
dW5jdGlvbiA9IGY7CisgICAgU2hhcmVkVGltZXJRdDo6aW5zdCgpLT5tX3RpbWVyRnVuY3Rpb24g
PSBmOwogfQogCiB2b2lkIHNldFNoYXJlZFRpbWVyRmlyZVRpbWUoZG91YmxlIGZpcmVUaW1lKQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db21ib0JveFF0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL3F0L0NvbWJvQm94UXQuY3BwCShSZXZpc2lvbiAxNjAyMikKKysrIFdl
YkNvcmUvcGxhdGZvcm0vcXQvQ29tYm9Cb3hRdC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTI2LDYg
KzI2LDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKKwog
I2luY2x1ZGUgPFFDb21ib0JveD4KIAogI2luY2x1ZGUgIlBsYXRmb3JtQ29tYm9Cb3guaCIKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvUGFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3F0L1BhZ2VRdC5jcHAJKFJldmlzaW9uIDE2MDIyKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9xdC9QYWdlUXQuY3BwCShBcmJlaXRza29waWUpCkBAIC0yNywxMSArMjcsMTEgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKKwogI2luY2x1ZGUgPFFX
aWRnZXQ+CiAKLSNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0KICNpbmNs
dWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKQEAgLTU0LDcgKzU0LDcgQEAKICAgICBpZiAoIXdpZGdldCkKICAgICAgICAgcmV0dXJuIEZs
b2F0UmVjdCgpOwogCi0gICAgcmV0dXJuIChJbnRSZWN0KSB3aWRnZXQtPmdlb21ldHJ5KCk7Cisg
ICAgcmV0dXJuIEludFJlY3Qod2lkZ2V0LT5nZW9tZXRyeSgpKTsKIH0KIAogdm9pZCBQYWdlOjpz
ZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcikKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
cXQvU2NyZWVuUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2NyZWVu
UXQuY3BwCShSZXZpc2lvbiAxNjAyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2NyZWVuUXQu
Y3BwCShBcmJlaXRza29waWUpCkBAIC00OSw3ICs0OSw3IEBACiAgICAgaWYgKCFkdykKICAgICAg
ICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogCi0gICAgcmV0dXJuIChJbnRSZWN0KSBkdy0+c2NyZWVu
R2VvbWV0cnkocXcpOworICAgIHJldHVybiBJbnRSZWN0KGR3LT5zY3JlZW5HZW9tZXRyeShxdykp
OwogfQogCiBpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KiB3aWRnZXQpCkBAIC03Miw3ICs3Miw3IEBA
CiAgICAgaWYgKCFkdykKICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogCi0gICAgcmV0dXJu
IChJbnRSZWN0KSBkdy0+YXZhaWxhYmxlR2VvbWV0cnkocXcpOworICAgIHJldHVybiBJbnRSZWN0
KGR3LT5hdmFpbGFibGVHZW9tZXRyeShxdykpOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL3F0L0ltYWdlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvSW1h
Z2VRdC5jcHAJKFJldmlzaW9uIDE2MDIyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9JbWFnZVF0
LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtNTEsNyArNTEsNyBAQAogewogICAgIGlmIChtX2ZyYW1l
KSB7CiAgICAgICAgIG1fZnJhbWUgPSAwOwotICAgICAgICBtX2R1cmF0aW9uID0gMC47CisgICAg
ICAgIG1fZHVyYXRpb24gPSAwLjBmOwogICAgICAgICBtX2hhc0FscGhhID0gdHJ1ZTsKICAgICB9
CiB9CkBAIC04Miw4ICs4Miw2IEBACiAKIGJvb2wgSW1hZ2U6OnN1cHBvcnRzVHlwZShjb25zdCBT
dHJpbmcmIHR5cGUpCiB7Ci0gICAgcURlYnVnKCkgPDwgImRvZXMgc3VwcG9ydCBpbWFnZSBmb3Jt
YXQ/ICI8PCB0eXBlOwotCiAgICAgUUxpc3Q8UUJ5dGVBcnJheT4gZm9ybWF0cyA9IFFJbWFnZVJl
YWRlcjo6c3VwcG9ydGVkSW1hZ2VGb3JtYXRzKCk7CiAgICAgZm9yZWFjaChRQnl0ZUFycmF5IGZv
cm1hdCwgZm9ybWF0cykgewogICAgICAgICBpZiAoZm9ybWF0ID09IChRU3RyaW5nKSB0eXBlKQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9JbnRTaXplUXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vcXQvSW50U2l6ZVF0LmNwcAkoUmV2aXNpb24gMTYwMjIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL3F0L0ludFNpemVRdC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTI1LDkgKzI1
LDEwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKKwogI2lu
Y2x1ZGUgPFFTaXplPgogCi0jaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Jlc291cmNl
TG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9SZXNvdXJjZUxv
YWRlckNsaWVudC5oCShSZXZpc2lvbiAxNjAyMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vUmVzb3Vy
Y2VMb2FkZXJDbGllbnQuaAkoQXJiZWl0c2tvcGllKQpAQCAtMzYsNiArMzYsMTAgQEAKICNlbmRp
ZgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShRVCkKKyNpbmNsdWRlIDxRU3RyaW5nPgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTQzLDcgKzQ3
LDcgQEAKICAgICB0eXBlZGVmIE5TVVJMUmVzcG9uc2UqIFBsYXRmb3JtUmVzcG9uc2U7CiAjZWxp
ZiBQTEFURk9STShRVCkKICAgICB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtRGF0YTsKLSAgICB0eXBl
ZGVmIGNoYXIqIFBsYXRmb3JtUmVzcG9uc2U7CisgICAgdHlwZWRlZiBRU3RyaW5nIFBsYXRmb3Jt
UmVzcG9uc2U7CiAjZWxzZQogICAgIC8vIE5vdCBzdXJlIHdoYXQgdGhlIHN0cmF0ZWd5IGZvciB0
aGlzIHdpbGwgYmUgb24gb3RoZXIgcGxhdGZvcm1zLgogICAgIHR5cGVkZWYgc3RydWN0IFBsYXRm
b3JtRGF0YVN0cnVjdCAqUGxhdGZvcm1EYXRhOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10217</attachid>
            <date>2006-08-25 05:05:44 -0700</date>
            <delta_ts>2006-08-25 09:40:26 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>style-cleanup.diff</filename>
            <type>text/plain</type>
            <size>22620</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShSZXZpc2lvbiAxNjAzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCShBcmJlaXRza29waWUpCkBA
IC0xLDMgKzEsNjkgQEAKKzIwMDYtMDgtMjUgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1h
bm5Aa2RlLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXhlczogaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDU1OQorICAgICAgICBDb25maXJtIHRvIFdlYktpdCBzdHlsZSBndWlkZSAtIGxhc3QgZml4
ZXMgOi0pCisKKyAgICAgICAgKiBwbGF0Zm9ybS9SZXNvdXJjZUxvYWRlckNsaWVudC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L0NvbWJvQm94UXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L0ZyYW1lUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9TY3JvbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVRdDo6RnJhbWVRdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVF0OjpvcGVu
VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lUXQ6OnN1Ym1pdEZvcm0pOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVRdDo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVRdDo6
cGFzc1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lUXQ6
OnJlZ2lzdGVyQ29tbWFuZEZvclVuZG8pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVRdDo6cmVn
aXN0ZXJDb21tYW5kRm9yUmVkbyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVF0OjprZXlFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVF0OjpzZXRGcmFtZUdlb21ldHJ5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9HbHlwaE1hcFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
TWFwOjpmaWxsUGFnZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvR3JhcGhpY3NDb250ZXh0UXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9RdENvbXBvc2l0aW9uTW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjp0b1F0TGluZUNhcCk6CisgICAgICAgIChXZWJDb3JlOjp0b1F0TGluZUpvaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dFNoYWRvdzo6VGV4dFNoYWRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OnApOgorICAgICAgICAqIHBsYXRm
b3JtL3F0L0ltYWdlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVEYXRhOjpjbGVhcik6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6c3VwcG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9JbnRTaXplUXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0xpbmVFZGl0UXQu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0xpc3RCb3hRdC5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vcXQvUGFnZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndpbmRvd1JlY3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BhdGhRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YXRoOjp+UGF0aCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUmVzb3VyY2VMb2FkZXJDdXJsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjphc3NlbWJsZVJlc3BvbnNlSGVh
ZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDaGFyc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpyZWNlaXZlZFJlc3BvbnNlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZXNvdXJjZUxvYWRlck1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aGVhZGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJNYW5hZ2VyOjpkb3dubG9hZFRpbWVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXJNYW5hZ2VyOjphZGQpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NjcmVl
blF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6dXNhYmxlU2NyZWVuUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2Nyb2xsVmlld1F0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OlNjcm9sbFZpZXcpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6flNjcm9sbFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6c2V0UGFyZW50V2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OmFkZENoaWxkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TaGFyZWRUaW1lclF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNldFNoYXJlZFRpbWVyRmlyZWRGdW5jdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2hhcmVkVGltZXJRdC5oOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVk
VGltZXJRdDo6U2hhcmVkVGltZXJRdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRUaW1lclF0
OjpmaXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TeXN0ZW1UaW1lUXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3VycmVudFRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1RleHRFZGl0
UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1UZXh0RWRpdDo6c2V0UGFyZW50V2lk
Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVGV4dEVkaXQ6OnRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1UZXh0RWRpdDo6c2l6ZVdpdGhDb2x1bW5zQW5kUm93cyk6CisK
IDIwMDYtMDgtMjQgIERhdmlkIEhhcnJpc29uICA8aGFycmlzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEp1c3Rpbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvVGV4dEVk
aXRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9UZXh0RWRpdFF0LmNw
cAkoUmV2aXNpb24gMTYwMzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L1RleHRFZGl0UXQuY3Bw
CShBcmJlaXRza29waWUpCkBAIC01Miw3ICs1Miw3IEBACiB7CiAgICAgV2lkZ2V0OjpzZXRQYXJl
bnRXaWRnZXQocGFyZW50KTsKIAotICAgIFFUZXh0RWRpdCAqd2lkZ2V0ID0gbmV3IFFUZXh0RWRp
dChwYXJlbnQsICIiKTsKKyAgICBRVGV4dEVkaXQqIHdpZGdldCA9IG5ldyBRVGV4dEVkaXQocGFy
ZW50LCAiIik7CiAgICAgc2V0UVdpZGdldCh3aWRnZXQpOwogfQogCkBAIC0xMjIsNiArMTIyLDcg
QEAKIFN0cmluZyBQbGF0Zm9ybVRleHRFZGl0Ojp0ZXh0KCkgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAogU3RyaW5nIFBsYXRmb3JtVGV4
dEVkaXQ6OnRleHRXaXRoSGFyZExpbmVCcmVha3MoKSBjb25zdApAQCAtMTg5LDYgKzE5MCw3IEBA
CiBJbnRTaXplIFBsYXRmb3JtVGV4dEVkaXQ6OnNpemVXaXRoQ29sdW1uc0FuZFJvd3MoaW50IG51
bUNvbHVtbnMsIGludCBudW1Sb3dzKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIEludFNpemUoKTsKIH0KIAogYm9vbCBQbGF0Zm9ybVRleHRFZGl0OjpjaGVja3NE
ZXNjZW5kYW50c0ZvckZvY3VzKCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvR3Jh
cGhpY3NDb250ZXh0UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvR3Jh
cGhpY3NDb250ZXh0UXQuY3BwCShSZXZpc2lvbiAxNjAzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
cXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCShBcmJlaXRza29waWUpCkBAIC0zMCw2ICszMCw4IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKKwogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIlBhdGguaCIKIApAQCAtNTMsMzQgKzU1LDM0
IEBACiBzdGF0aWMgUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZSB0b1F0Q29tcG9zaXRpb25Nb2Rl
KENvbXBvc2l0ZU9wZXJhdG9yIG9wKQogewogICAgIHN3aXRjaCAob3ApIHsKLSAgICBjYXNlIENv
bXBvc2l0ZUNsZWFyOgotICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9D
bGVhcjsKLSAgICBjYXNlIENvbXBvc2l0ZUNvcHk6Ci0gICAgICAgIHJldHVybiBRUGFpbnRlcjo6
Q29tcG9zaXRpb25Nb2RlX1NvdXJjZTsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZU92ZXI6Ci0g
ICAgICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXI7Ci0gICAg
Y2FzZSBDb21wb3NpdGVTb3VyY2VJbjoKLSAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3Np
dGlvbk1vZGVfU291cmNlSW47Ci0gICAgY2FzZSBDb21wb3NpdGVTb3VyY2VPdXQ6Ci0gICAgICAg
IHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU91dDsKLSAgICBjYXNlIENv
bXBvc2l0ZVNvdXJjZUF0b3A6Ci0gICAgICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25N
b2RlX1NvdXJjZUF0b3A7Ci0gICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI6Ci0gICAg
ICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0Rlc3RpbmF0aW9uT3ZlcjsKLSAg
ICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uSW46Ci0gICAgICAgIHJldHVybiBRUGFpbnRlcjo6
Q29tcG9zaXRpb25Nb2RlX0Rlc3RpbmF0aW9uSW47Ci0gICAgY2FzZSBDb21wb3NpdGVEZXN0aW5h
dGlvbk91dDoKLSAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfRGVzdGlu
YXRpb25PdXQ7Ci0gICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbkF0b3A6Ci0gICAgICAgIHJl
dHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX0Rlc3RpbmF0aW9uQXRvcDsKLSAgICBjYXNl
IENvbXBvc2l0ZVhPUjoKLSAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVf
WG9yOwotICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKLSAgICAgICAgcmV0dXJuIFFQYWlu
dGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlT3ZlcjsKLSAgICBjYXNlIENvbXBvc2l0ZUhpZ2hs
aWdodDoKLSAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlT3Zl
cjsKLSAgICBjYXNlIENvbXBvc2l0ZVBsdXNMaWdodGVyOgotICAgICAgICByZXR1cm4gUVBhaW50
ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2VPdmVyOworICAgICAgICBjYXNlIENvbXBvc2l0ZUNs
ZWFyOgorICAgICAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfQ2xlYXI7
CisgICAgICAgIGNhc2UgQ29tcG9zaXRlQ29weToKKyAgICAgICAgICAgIHJldHVybiBRUGFpbnRl
cjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZTsKKyAgICAgICAgY2FzZSBDb21wb3NpdGVTb3VyY2VP
dmVyOgorICAgICAgICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNl
T3ZlcjsKKyAgICAgICAgY2FzZSBDb21wb3NpdGVTb3VyY2VJbjoKKyAgICAgICAgICAgIHJldHVy
biBRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZUluOworICAgICAgICBjYXNlIENvbXBv
c2l0ZVNvdXJjZU91dDoKKyAgICAgICAgICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRpb25N
b2RlX1NvdXJjZU91dDsKKyAgICAgICAgY2FzZSBDb21wb3NpdGVTb3VyY2VBdG9wOgorICAgICAg
ICAgICAgcmV0dXJuIFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlQXRvcDsKKyAgICAg
ICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI6CisgICAgICAgICAgICByZXR1cm4gUVBh
aW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9EZXN0aW5hdGlvbk92ZXI7CisgICAgICAgIGNhc2UgQ29t
cG9zaXRlRGVzdGluYXRpb25JbjoKKyAgICAgICAgICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9z
aXRpb25Nb2RlX0Rlc3RpbmF0aW9uSW47CisgICAgICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRp
b25PdXQ6CisgICAgICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9EZXN0
aW5hdGlvbk91dDsKKyAgICAgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbkF0b3A6CisgICAg
ICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9EZXN0aW5hdGlvbkF0b3A7
CisgICAgICAgIGNhc2UgQ29tcG9zaXRlWE9SOgorICAgICAgICAgICAgcmV0dXJuIFFQYWludGVy
OjpDb21wb3NpdGlvbk1vZGVfWG9yOworICAgICAgICBjYXNlIENvbXBvc2l0ZVBsdXNEYXJrZXI6
CisgICAgICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9Tb3VyY2VPdmVy
OworICAgICAgICBjYXNlIENvbXBvc2l0ZUhpZ2hsaWdodDoKKyAgICAgICAgICAgIHJldHVybiBR
UGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZU92ZXI7CisgICAgICAgIGNhc2UgQ29tcG9z
aXRlUGx1c0xpZ2h0ZXI6CisgICAgICAgICAgICByZXR1cm4gUVBhaW50ZXI6OkNvbXBvc2l0aW9u
TW9kZV9Tb3VyY2VPdmVyOwogICAgIH0KIAogICAgIHJldHVybiBRUGFpbnRlcjo6Q29tcG9zaXRp
b25Nb2RlX1NvdXJjZU92ZXI7CkBAIC04OSwxMiArOTEsMTIgQEAKIHN0YXRpYyBRdDo6UGVuQ2Fw
U3R5bGUgdG9RdExpbmVDYXAoTGluZUNhcCBsYykKIHsKICAgICBzd2l0Y2ggKGxjKSB7Ci0gICAg
Y2FzZSBCdXR0Q2FwOgotICAgICAgICByZXR1cm4gUXQ6OkZsYXRDYXA7Ci0gICAgY2FzZSBSb3Vu
ZENhcDoKLSAgICAgICAgcmV0dXJuIFF0OjpSb3VuZENhcDsKLSAgICBjYXNlIFNxdWFyZUNhcDoK
LSAgICAgICAgcmV0dXJuIFF0OjpTcXVhcmVDYXA7CisgICAgICAgIGNhc2UgQnV0dENhcDoKKyAg
ICAgICAgICAgIHJldHVybiBRdDo6RmxhdENhcDsKKyAgICAgICAgY2FzZSBSb3VuZENhcDoKKyAg
ICAgICAgICAgIHJldHVybiBRdDo6Um91bmRDYXA7CisgICAgICAgIGNhc2UgU3F1YXJlQ2FwOgor
ICAgICAgICAgICAgcmV0dXJuIFF0OjpTcXVhcmVDYXA7CiAgICAgfQogCiAgICAgcmV0dXJuIFF0
OjpGbGF0Q2FwOwpAQCAtMTAzLDEyICsxMDUsMTIgQEAKIHN0YXRpYyBRdDo6UGVuSm9pblN0eWxl
IHRvUXRMaW5lSm9pbihMaW5lSm9pbiBsaikKIHsKICAgICBzd2l0Y2ggKGxqKSB7Ci0gICAgY2Fz
ZSBNaXRlckpvaW46Ci0gICAgICAgIHJldHVybiBRdDo6U3ZnTWl0ZXJKb2luOwotICAgIGNhc2Ug
Um91bmRKb2luOgotICAgICAgICByZXR1cm4gUXQ6OlJvdW5kSm9pbjsKLSAgICBjYXNlIEJldmVs
Sm9pbjoKLSAgICAgICAgcmV0dXJuIFF0OjpCZXZlbEpvaW47CisgICAgICAgIGNhc2UgTWl0ZXJK
b2luOgorICAgICAgICAgICAgcmV0dXJuIFF0OjpTdmdNaXRlckpvaW47CisgICAgICAgIGNhc2Ug
Um91bmRKb2luOgorICAgICAgICAgICAgcmV0dXJuIFF0OjpSb3VuZEpvaW47CisgICAgICAgIGNh
c2UgQmV2ZWxKb2luOgorICAgICAgICAgICAgcmV0dXJuIFF0OjpCZXZlbEpvaW47CiAgICAgfQog
CiAgICAgcmV0dXJuIFF0OjpNaXRlckpvaW47CkBAIC0xNDQsOSArMTQ2LDkgQEAKIHN0cnVjdCBU
ZXh0U2hhZG93CiB7CiAgICAgVGV4dFNoYWRvdygpCi0gICAgOiB4KDApCi0gICAgLCB5KDApCi0g
ICAgLCBibHVyKDApCisgICAgICAgIDogeCgwKQorICAgICAgICAsIHkoMCkKKyAgICAgICAgLCBi
bHVyKDApCiAgICAgewogICAgIH0KIApAQCAtMTY1LDcgKzE2Nyw3IEBACiAgICAgR3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlKFFQYWludGVyKiBwYWludGVyKTsKICAgICB+R3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlKCk7CiAKLSAgICBpbmxpbmUgUVBhaW50ZXImIHAoKQorICAg
IFFQYWludGVyJiBwKCkKICAgICB7CiAgICAgICAgIGlmIChsYXllcnMuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICBpZiAocmVkaXJlY3QpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJl
ZFRpbWVyUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVy
UXQuaAkoUmV2aXNpb24gMTYwMzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVy
UXQuaAkoQXJiZWl0c2tvcGllKQpAQCAtMzgsMTEgKzM4LDEyIEBACiBjbGFzcyBTaGFyZWRUaW1l
clF0IDogcHVibGljIFFUaW1lciB7CiBRX09CSkVDVAogcHJvdGVjdGVkOgotICAgIFNoYXJlZFRp
bWVyUXQoKSA6IFFUaW1lcigpCisgICAgU2hhcmVkVGltZXJRdCgpCisgICAgICAgIDogUVRpbWVy
KCkKKyAgICAgICAgLCBtX3RpbWVyRnVuY3Rpb24oMCkKICAgICB7CiAgICAgICAgIGNvbm5lY3Qo
dGhpcywgU0lHTkFMKHRpbWVvdXQoKSksIHRoaXMsIFNMT1QoZmlyZSgpKSk7CiAgICAgICAgIHNl
dFNpbmdsZVNob3QodHJ1ZSk7Ci0gICAgICAgIF90aW1lckZ1bmN0aW9uID0gMDsKICAgICB9CiAK
ICAgICB+U2hhcmVkVGltZXJRdCgpCkBAIC01OCwxMyArNTksMTMgQEAKICAgICAgICAgcmV0dXJu
IHNfc2VsZjsKICAgICB9CiAKLSAgICB2b2lkICgqX3RpbWVyRnVuY3Rpb24pKCk7CisgICAgdm9p
ZCAoKm1fdGltZXJGdW5jdGlvbikoKTsKIAogcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBmaXJl
KCkKICAgICB7Ci0gICAgICAgIGlmIChfdGltZXJGdW5jdGlvbikKLSAgICAgICAgICAgIChfdGlt
ZXJGdW5jdGlvbikoKTsKKyAgICAgICAgaWYgKG1fdGltZXJGdW5jdGlvbikKKyAgICAgICAgICAg
IChtX3RpbWVyRnVuY3Rpb24pKCk7CiAgICAgfQogCiBwcml2YXRlOgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9xdC9HbHlwaE1hcFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L3F0L0dseXBoTWFwUXQuY3BwCShSZXZpc2lvbiAxNjAzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0v
cXQvR2x5cGhNYXBRdC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTM2LDkgKzM2LDggQEAKIAogYm9v
bCBHbHlwaE1hcDo6ZmlsbFBhZ2UoR2x5cGhQYWdlKiBwYWdlLCBVQ2hhciogYnVmZmVyLCB1bnNp
Z25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnREYXRhKiBmb250RGF0YSkKIHsKLSAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgYnVmZmVyTGVuZ3RoOyBpKyspIHsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgYnVmZmVyTGVuZ3RoOyBpKyspCiAgICAgICAgIHBhZ2UtPnNldEdseXBo
RGF0YUZvckluZGV4KGksIGJ1ZmZlcltpXSwgZm9udERhdGEpOwotICAgIH0KIAogICAgIHJldHVy
biB0cnVlOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9MaXN0Qm94UXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvTGlzdEJveFF0LmNwcAkoUmV2aXNpb24gMTYw
MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L0xpc3RCb3hRdC5jcHAJKEFyYmVpdHNrb3BpZSkK
QEAgLTI2LDYgKzI2LDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25m
aWcuaCIKKwogI2luY2x1ZGUgPFFTY3JvbGxCYXI+CiAjaW5jbHVkZSA8UUxpc3RXaWRnZXQ+CiAK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvU2Nyb2xsVmlld1F0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL3F0L1Njcm9sbFZpZXdRdC5jcHAJKFJldmlzaW9uIDE2MDMyKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9TY3JvbGxWaWV3UXQuY3BwCShBcmJlaXRza29waWUpCkBA
IC00NywxNyArNDcsMTQgQEAKIFNjcm9sbFZpZXc6OlNjcm9sbFZpZXcoKQogICAgIDogbV9hcmVh
KG5ldyBRU2Nyb2xsQXJlYSgwKSkKIHsKLSAgICBxRGVidWcoIlNjcm9sbFZpZXc6OlNjcm9sbFZp
ZXcoKSIpOwogfQogCiBTY3JvbGxWaWV3Ojp+U2Nyb2xsVmlldygpCiB7Ci0gICAgcURlYnVnKCJT
Y3JvbGxWaWV3Ojp+U2Nyb2xsVmlldygpIik7CiB9CiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0UGFy
ZW50V2lkZ2V0KFFXaWRnZXQqIHBhcmVudCkKIHsKLSAgICBxRGVidWcoIlNjcm9sbFZpZXc6OnNl
dFBhcmVudFdpZGdldCgpLCBwYXJlbnQ9JXAiLCBwYXJlbnQpOwogICAgIFdpZGdldDo6c2V0UGFy
ZW50V2lkZ2V0KHBhcmVudCk7CiAKICAgICAvLyAnaXNGcmFtZVZpZXcoKScgY2FuIG5vdCBiZSBj
YWxsZWQgeWV0IGluIHRoZSBjb25zdHJ1Y3RvciEKQEAgLTIyOSw3ICsyMjYsNiBAQAogCiB2b2lk
IFNjcm9sbFZpZXc6OmFkZENoaWxkKFdpZGdldCogY2hpbGQsIGludCB4LCBpbnQgeSkKIHsKLSAg
ICBxRGVidWcoIlNjcm9sbFZpZXc6OmFkZENoaWxkKCksIGNoaWxkPSVwLCB4PSVpLCB5PSVpIiwg
Y2hpbGQsIHgsIHkpOwogICAgIFFfQVNTRVJUKGNoaWxkICE9IDApOwogICAgIFFfQVNTRVJUKG1f
YXJlYSAmJiBtX2FyZWEtPndpZGdldCgpKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9G
cmFtZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L0ZyYW1lUXQuY3Bw
CShSZXZpc2lvbiAxNjAzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvRnJhbWVRdC5jcHAJKEFy
YmVpdHNrb3BpZSkKQEAgLTY3LDE4ICs2NywxOCBAQAogewogICAgIC8vIEZJWE1FOiBUaGUgc2Ny
b2xsaW5nIGRvbmUgaGVyZSBzaG91bGQgYmUgZG9uZSBpbiB0aGUgZGVmYXVsdCBoYW5kbGVycwog
ICAgIC8vIG9mIHRoZSBlbGVtZW50cyByYXRoZXIgdGhhbiBoZXJlIGluIHRoZSBwYXJ0LgotICAg
IGlmKCFyKQorICAgIGlmICghcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy9icm9rZW4gc2lu
Y2UgaXQgY2FsbHMgc2Nyb2xsIG9uIHNjcm9sbGJhcnMKICAgICAvL2FuZCB3ZSBoYXZlIG5vbmUg
bm93CiAgICAgLy9yLT5zY3JvbGwoZGlyZWN0aW9uLCBLV1FTY3JvbGxXaGVlbCwgbXVsdGlwbGll
cik7Ci0gICAgaWYoIXItPmxheWVyKCkpCisgICAgaWYgKCFyLT5sYXllcigpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpbnQgeCA9IHItPmxheWVyKCktPnNjcm9sbFhPZmZzZXQoKTsKICAgICBp
bnQgeSA9IHItPmxheWVyKCktPnNjcm9sbFlPZmZzZXQoKTsKLSAgICBpZihpc0hvcml6b250YWwp
CisgICAgaWYgKGlzSG9yaXpvbnRhbCkKICAgICAgICAgeCArPSBtdWx0aXBsaWVyOwogICAgIGVs
c2UKICAgICAgICAgeSArPSBtdWx0aXBsaWVyOwpAQCAtOTQsNyArOTQsNiBAQAogRnJhbWVRdDo6
RnJhbWVRdCgpCiAgICAgOiBGcmFtZShuZXcgUGFnZSwgMCkKIHsKLSAgICBxRGVidWcoIkZyYW1l
UXQ6OkZyYW1lUXQiKTsKICAgICBpbml0KCk7CiAKICAgICBwYWdlKCktPnNldE1haW5GcmFtZSh0
aGlzKTsKQEAgLTE0MSw3ICsxNDAsNiBAQAogCiBib29sIEZyYW1lUXQ6Om9wZW5VUkwoY29uc3Qg
S1VSTCYgdXJsKQogewotICAgIHFEZWJ1Zygib3BlblVSTCglcykiLCB1cmwudXJsKCkubGF0aW4x
KCkpOwogICAgIGRpZE9wZW5VUkwodXJsKTsKIAogICAgIC8vIEZJWE1FOiBVc2UgbWltZXR5cGUg
bG9naWMgZnJvbSBLSU8hCkBAIC0xNTcsMTYgKzE1NSwxNCBAQAogCiB2b2lkIEZyYW1lUXQ6OnN1
Ym1pdEZvcm0oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHFEZWJ1Zygi
RnJhbWVRdDo6c3VibWl0Rm9ybSgpIik7Ci0KICAgICAvLyBGSVhNRTogdGhpcyBpcyBhIGhhY2sg
aW5oZXJpdGVkIGZyb20gRnJhbWVNYWMsIGFuZCBzaG91bGQgYmUgcHVzaGVkIGludG8gRnJhbWUK
LSAgICBpZihkLT5tX3N1Ym1pdHRlZEZvcm1VUkwgPT0gcmVxdWVzdC51cmwoKSkKKyAgICBpZiAo
ZC0+bV9zdWJtaXR0ZWRGb3JtVVJMID09IHJlcXVlc3QudXJsKCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGQtPm1fc3VibWl0dGVkRm9ybVVSTCA9IHJlcXVlc3QudXJsKCk7CiAKICAgICAvKiBG
SVhNRTogT25jZSB3ZSBoYXZlIGEgS1BhcnQgLSBuYW1lZCAiRnJhbWVQYXJ0UXQiIC0gd2UgY2Fu
IGxldCB0aGF0IGluaGVyaXQgZnJvbSBGcmFtZVF0Q2xpZW50IGFuZCBpbXBsZW1lbnQgdGhlIGZ1
bmN0aW9ucy4uLikKLSAgICBpZihtX2NsaWVudCkKKyAgICBpZiAobV9jbGllbnQpCiAgICAgICAg
IG1fY2xpZW50LT5zdWJtaXRGb3JtKHJlcXVlc3QuZG9Qb3N0KCkgPyAiUE9TVCIgOiAiR0VUIiwg
cmVxdWVzdC51cmwoKSwgJnJlcXVlc3QucG9zdERhdGEpOwogICAgICovCiAKQEAgLTIxMiw3ICsy
MDgsNyBAQAogCiB2b2lkIEZyYW1lUXQ6OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7
Ci0gICAgaWYodmlldygpICYmIHZpZXcoKS0+cGFyZW50V2lkZ2V0KCkpCisgICAgaWYgKHZpZXco
KSAmJiB2aWV3KCktPnBhcmVudFdpZGdldCgpKQogICAgICAgICB2aWV3KCktPnBhcmVudFdpZGdl
dCgpLT5zZXRXaW5kb3dUaXRsZSh0aXRsZSk7CiB9CiAKQEAgLTIzMCw3ICsyMjYsNyBAQAogCiBi
b29sIEZyYW1lUXQ6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKikKIHsKLSAgICBpZihtZXYudGFyZ2V0Tm9kZSgpID09
IDApCisgICAgaWYgKG1ldi50YXJnZXROb2RlKCkgPT0gMCkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzgxLDEyICszNzcsMTIgQEAKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBGcmFtZVF0OjpyZWdpc3RlckNvbW1hbmRGb3JVbmRvKGNvbnN0IEVkaXRD
b21tYW5kUHRyJikKK3ZvaWQgRnJhbWVRdDo6cmVnaXN0ZXJDb21tYW5kRm9yVW5kbyhQYXNzUmVm
UHRyPEVkaXRDb21tYW5kPikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEZy
YW1lUXQ6OnJlZ2lzdGVyQ29tbWFuZEZvclJlZG8oY29uc3QgRWRpdENvbW1hbmRQdHImKQordm9p
ZCBGcmFtZVF0OjpyZWdpc3RlckNvbW1hbmRGb3JSZWRvKFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC00OTksMjEgKzQ5NSwyMSBAQAogICAg
IC8vIENoZWNrIGZvciBjYXNlcyB3aGVyZSB3ZSBhcmUgdG9vIGVhcmx5IGZvciBldmVudHMgLS0g
cG9zc2libGUgdW5tYXRjaGVkIGtleSB1cAogICAgIC8vIGZyb20gcHJlc3NpbmcgcmV0dXJuIGlu
IHRoZSBsb2NhdGlvbiBiYXIuCiAgICAgRG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCk7Ci0gICAg
aWYoIWRvYykKKyAgICBpZiAoIWRvYykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTm9k
ZSogbm9kZSA9IGRvYy0+Zm9jdXNOb2RlKCk7Ci0gICAgaWYoIW5vZGUpIHsKKyAgICBpZiAoIW5v
ZGUpIHsKICAgICAgICAgaWYgKGRvYy0+aXNIVE1MRG9jdW1lbnQoKSkKICAgICAgICAgICAgIG5v
ZGUgPSBkb2MtPmJvZHkoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbm9kZSA9IGRvYy0+
ZG9jdW1lbnRFbGVtZW50KCk7CiAKLSAgICAgICAgaWYoIW5vZGUpCisgICAgICAgIGlmICghbm9k
ZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZigha2V5RXZlbnQu
aXNLZXlVcCgpKQorICAgIGlmICgha2V5RXZlbnQuaXNLZXlVcCgpKQogICAgICAgICBwcmVwYXJl
Rm9yVXNlckFjdGlvbigpOwogCiAgICAgcmVzdWx0ID0gIUV2ZW50VGFyZ2V0Tm9kZUNhc3Qobm9k
ZSktPmRpc3BhdGNoS2V5RXZlbnQoa2V5RXZlbnQpOwpAQCAtNTM5LDcgKzUzNSw3IEBACiAKIHZv
aWQgRnJhbWVRdDo6c2V0RnJhbWVHZW9tZXRyeShjb25zdCBJbnRSZWN0JiByKQogewotICAgIHNl
dEZyYW1lR2VvbWV0cnkoKFFSZWN0KSByKTsKKyAgICBzZXRGcmFtZUdlb21ldHJ5KFFSZWN0KHIp
KTsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9QYXRoUXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvUGF0aFF0LmNwcAkoUmV2aXNpb24gMTYwMzIpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL3F0L1BhdGhRdC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTQ0LDcg
KzQ0LDYgQEAKIFBhdGg6On5QYXRoKCkKIHsKICAgICBkZWxldGUgbV9wYXRoOwotICAgIG1fcGF0
aCA9IDA7CiB9CiAKIFBhdGg6OlBhdGgoY29uc3QgUGF0aCYgb3RoZXIpCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL3F0L0xpbmVFZGl0UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vcXQvTGluZUVkaXRRdC5jcHAJKFJldmlzaW9uIDE2MDMyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9xdC9MaW5lRWRpdFF0LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtMjYsOSArMjYsMTAgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKKwogI2luY2x1ZGUgPFFM
aW5lRWRpdD4KIAotI2luY2x1ZGUgPGNvbmZpZy5oPgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMu
aCIKICNpbmNsdWRlICJUZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1Jlc291cmNlTG9hZGVyQ3VybC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZXNvdXJjZUxvYWRlckN1cmwuY3BwCShSZXZpc2lvbiAx
NjAzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVzb3VyY2VMb2FkZXJDdXJsLmNwcAkoQXJi
ZWl0c2tvcGllKQpAQCAtMjcsNyArMjcsNiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lu
Y2x1ZGUgPFFEZWJ1Zz4KICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWRlci5oIgogCkBAIC02Nyw5ICs2Niw4IEBACiAgCiAgICAgICAgIC8vIEZJWE1FOiBNb3ZlIHRo
ZSBjbGllbnQgYWN0aXZhdGlvbiB0byByZWNlaXZlZFJlc3BvbnNlKCksIG9uY2UKICAgICAgICAg
Ly8gd2UgdXNlIEtJTywgYW5kIHJlY2VpdmVkUmVzcG9uc2UoKSBpcyBjYWxsZWQgb25seSBvbmNl
LgotICAgICAgICBpZiAoZC0+Y2xpZW50KSB7Ci0gICAgICAgICAgICBkLT5jbGllbnQtPnJlY2Vp
dmVkUmVzcG9uc2UoY29uc3RfY2FzdDxSZXNvdXJjZUxvYWRlciAqPih0aGlzKSwgKGNoYXIgKikg
ZC0+cmVzcG9uc2UuZGF0YSgpKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoZC0+Y2xpZW50KQor
ICAgICAgICAgICAgZC0+Y2xpZW50LT5yZWNlaXZlZFJlc3BvbnNlKGNvbnN0X2Nhc3Q8UmVzb3Vy
Y2VMb2FkZXIqPih0aGlzKSwgZC0+cmVzcG9uc2UpOwogCiAgICAgICAgIGQtPnJlc3BvbnNlID0g
UVN0cmluZygpOyAvLyBSZXNldAogICAgIH0KQEAgLTc3LDkgKzc1LDggQEAKIAogdm9pZCBSZXNv
dXJjZUxvYWRlcjo6cmV0cmlldmVDaGFyc2V0KCkgY29uc3QKIHsKLSAgICBpZiAoIWQtPnJldHJp
ZXZlZENoYXJzZXQpIHsKKyAgICBpZiAoIWQtPnJldHJpZXZlZENoYXJzZXQpCiAgICAgICAgIGQt
PnJldHJpZXZlZENoYXJzZXQgPSB0cnVlOwotICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSBjYW4g
anVzdCBwYXJzZSB0aGUgaGVhZGVycyBoZXJlLCBidXQgb25jZSB3ZSB1c2UgS0lPCiAgICAgLy8g
d2UgY2FuIHNldCB0aGUgcmVzcG9uc2UgcGFyYW1ldGVyIHRvIHN0aC4gZWxzZSB0aGFuIGEgImNo
YXIqIi4KQEAgLTg3LDcgKzg0LDcgQEAKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lk
IFJlc291cmNlTG9hZGVyOjpyZWNlaXZlZFJlc3BvbnNlKGNoYXIqIHJlc3BvbnNlKQordm9pZCBS
ZXNvdXJjZUxvYWRlcjo6cmVjZWl2ZWRSZXNwb25zZShRU3RyaW5nIHJlc3BvbnNlKQogewogICAg
IFFfQVNTRVJUKG1ldGhvZCgpID09ICJQT1NUIik7CiAKQEAgLTEwMiw3ICs5OSw3IEBACiAgICAg
Ly8KICAgICAvLyBBbnl3YXksIGxldCdzIGNvbGxlY3QgdGhlIHJlc3BvbnNlIGRhdGEgaGVyZSwg
YXMgdGhlIFJlc291cmNlTG9hZGVyTWFuYWdlcgogICAgIC8vIGNhbGxzIHVzIGZvciBldmVyeSBs
aW5lIG9mIHRoZSBoZWFkZXIgaXQgcmVjZWl2ZXMuCi0gICAgZC0+cmVzcG9uc2UgKz0gUVN0cmlu
Zzo6ZnJvbUxhdGluMShyZXNwb25zZSk7CisgICAgZC0+cmVzcG9uc2UgKz0gcmVzcG9uc2U7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvU3lz
dGVtVGltZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1N5c3RlbVRp
bWVRdC5jcHAJKFJldmlzaW9uIDE2MDMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9TeXN0ZW1U
aW1lUXQuY3BwCShBcmJlaXRza29waWUpCkBAIC0zNiw3ICszNiw3IEBACiB7CiAgICAgdGltZV90
IHR0aW1lOwogICAgIHRpbWUoJnR0aW1lKTsKLSAgICByZXR1cm4gKGRvdWJsZSkgdHRpbWU7Cisg
ICAgcmV0dXJuIChkb3VibGUpdHRpbWU7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
cXQvUmVzb3VyY2VMb2FkZXJNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL3F0L1Jlc291cmNlTG9hZGVyTWFuYWdlci5jcHAJKFJldmlzaW9uIDE2MDMyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9SZXNvdXJjZUxvYWRlck1hbmFnZXIuY3BwCShBcmJlaXRza29waWUp
CkBAIC03NCw5ICs3NCw4IEBACiAgICAgUmVzb3VyY2VMb2FkZXIqIGpvYiA9IHN0YXRpY19jYXN0
PFJlc291cmNlTG9hZGVyKj4ob2JqKTsKICAgICBSZXNvdXJjZUxvYWRlckludGVybmFsKiBkID0g
am9iLT5nZXRJbnRlcm5hbCgpOwogIAotICAgIGlmIChqb2ItPm1ldGhvZCgpID09ICJQT1NUIikg
eworICAgIGlmIChqb2ItPm1ldGhvZCgpID09ICJQT1NUIikKICAgICAgICAgam9iLT5yZWNlaXZl
ZFJlc3BvbnNlKHB0cik7Ci0gICAgfQogICAgIAogICAgIGludCB0b3RhbFNpemUgPSBzaXplICog
bm1lbWI7CiAgICAgcmV0dXJuIHRvdGFsU2l6ZTsKQEAgLTE0MCwxMiArMTM5LDEyIEBACiAgICAg
ICAgICAgICAgICAgLy8gZmluZCB0aGUgbm9kZSB3aGljaCBoYXMgc2FtZSBkLT5tX2hhbmRsZSBh
cyBjb21wbGV0ZWQgdHJhbnNmZXIKICAgICAgICAgICAgICAgICBDVVJMKiBjaGFuZGxlID0gbXNn
LT5lYXN5X2hhbmRsZTsKICAgICAgICAgICAgICAgICBhc3NlcnQoY2hhbmRsZSk7Ci0gICAgICAg
ICAgICAgICAgUmVzb3VyY2VMb2FkZXIgKmpvYjsKKyAgICAgICAgICAgICAgICBSZXNvdXJjZUxv
YWRlciogam9iOwogICAgICAgICAgICAgICAgIGN1cmxfZWFzeV9nZXRpbmZvKGNoYW5kbGUsIENV
UkxJTkZPX1BSSVZBVEUsICZqb2IpOwogICAgICAgICAgICAgICAgIGFzc2VydChqb2IpOyAvL2Zp
eG1lOiBhc3NlcnQtPmlmID8KICAgICAgICAgICAgICAgICAvLyBpZiBmb3VuZCwgZGVsZXRlIGl0
CiAgICAgICAgICAgICAgICAgaWYgKGpvYikgewotICAgICAgICAgICAgICAgICAgICBSZXNvdXJj
ZUxvYWRlckludGVybmFsICpkID0gam9iLT5nZXRJbnRlcm5hbCgpOworICAgICAgICAgICAgICAg
ICAgICBSZXNvdXJjZUxvYWRlckludGVybmFsKiBkID0gam9iLT5nZXRJbnRlcm5hbCgpOwogICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKG1zZy0+ZGF0YS5yZXN1bHQpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNhc2UgQ1VSTEVfT0s6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyB1c2UgdGhpcyB0byBhdXRoZW50aWNhdGUKQEAgLTIxMSw3ICsyMTAsNyBAQAogICAgIGlm
IChqb2ItPm1ldGhvZCgpID09ICJQT1NUIikgewogICAgICAgICBEZXByZWNhdGVkU3RyaW5nIHBv
c3REYXRhID0gam9iLT5wb3N0RGF0YSgpLmZsYXR0ZW5Ub1N0cmluZygpOwogCi0gICAgICAgIGNo
YXIgKnBvc3REYXRhU3RyaW5nID0gKGNoYXIgKikgbWFsbG9jKHBvc3REYXRhLmxlbmd0aCgpICsg
MSk7CisgICAgICAgIGNoYXIqIHBvc3REYXRhU3RyaW5nID0gKGNoYXIqKW1hbGxvYyhwb3N0RGF0
YS5sZW5ndGgoKSArIDEpOwogICAgICAgICBzdHJuY3B5KHBvc3REYXRhU3RyaW5nLCBwb3N0RGF0
YS5hc2NpaSgpLCBwb3N0RGF0YS5sZW5ndGgoKSk7CiAgICAgICAgIHBvc3REYXRhU3RyaW5nW3Bv
c3REYXRhLmxlbmd0aCgpXSA9ICdcMCc7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvU2hh
cmVkVGltZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9TaGFyZWRU
aW1lclF0LmNwcAkoUmV2aXNpb24gMTYwMzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJl
ZFRpbWVyUXQuY3BwCShBcmJlaXRza29waWUpCkBAIC0zNCw3ICszNCw3IEBACiAKIHZvaWQgc2V0
U2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKHZvaWQgKCpmKSgpKQogewotICAgIFNoYXJlZFRpbWVy
UXQ6Omluc3QoKS0+X3RpbWVyRnVuY3Rpb24gPSBmOworICAgIFNoYXJlZFRpbWVyUXQ6Omluc3Qo
KS0+bV90aW1lckZ1bmN0aW9uID0gZjsKIH0KIAogdm9pZCBzZXRTaGFyZWRUaW1lckZpcmVUaW1l
KGRvdWJsZSBmaXJlVGltZSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvQ29tYm9Cb3hRdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9Db21ib0JveFF0LmNwcAkoUmV2
aXNpb24gMTYwMzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L0NvbWJvQm94UXQuY3BwCShBcmJl
aXRza29waWUpCkBAIC0yNiw2ICsyNiw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKICNpbmNsdWRlIDxRQ29tYm9Cb3g+CiAKICNpbmNsdWRlICJQbGF0
Zm9ybUNvbWJvQm94LmgiCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1BhZ2VRdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9QYWdlUXQuY3BwCShSZXZpc2lvbiAxNjAz
MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvUGFnZVF0LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAt
MjcsMTEgKzI3LDExIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmln
LmgiCisKICNpbmNsdWRlIDxRV2lkZ2V0PgogCi0jaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgotCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC01NCw3ICs1NCw3IEBACiAgICAgaWYgKCF3aWRnZXQp
CiAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoKTsKIAotICAgIHJldHVybiAoSW50UmVjdCkgd2lk
Z2V0LT5nZW9tZXRyeSgpOworICAgIHJldHVybiBJbnRSZWN0KHdpZGdldC0+Z2VvbWV0cnkoKSk7
CiB9CiAKIHZvaWQgUGFnZTo6c2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmIHIpCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1NjcmVlblF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3F0L1NjcmVlblF0LmNwcAkoUmV2aXNpb24gMTYwMzIpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL3F0L1NjcmVlblF0LmNwcAkoQXJiZWl0c2tvcGllKQpAQCAtNDksNyArNDksNyBAQAog
ICAgIGlmICghZHcpCiAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoKTsKIAotICAgIHJldHVybiAo
SW50UmVjdCkgZHctPnNjcmVlbkdlb21ldHJ5KHF3KTsKKyAgICByZXR1cm4gSW50UmVjdChkdy0+
c2NyZWVuR2VvbWV0cnkocXcpKTsKIH0KIAogaW50IHNjcmVlbkRlcHRoKFdpZGdldCogd2lkZ2V0
KQpAQCAtNzIsNyArNzIsNyBAQAogICAgIGlmICghZHcpCiAgICAgICAgIHJldHVybiBGbG9hdFJl
Y3QoKTsKIAotICAgIHJldHVybiAoSW50UmVjdCkgZHctPmF2YWlsYWJsZUdlb21ldHJ5KHF3KTsK
KyAgICByZXR1cm4gSW50UmVjdChkdy0+YXZhaWxhYmxlR2VvbWV0cnkocXcpKTsKIH0KIAogfQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9xdC9JbWFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL3F0L0ltYWdlUXQuY3BwCShSZXZpc2lvbiAxNjAzMikKKysrIFdlYkNvcmUv
cGxhdGZvcm0vcXQvSW1hZ2VRdC5jcHAJKEFyYmVpdHNrb3BpZSkKQEAgLTUxLDcgKzUxLDcgQEAK
IHsKICAgICBpZiAobV9mcmFtZSkgewogICAgICAgICBtX2ZyYW1lID0gMDsKLSAgICAgICAgbV9k
dXJhdGlvbiA9IDAuOworICAgICAgICBtX2R1cmF0aW9uID0gMC4wZjsKICAgICAgICAgbV9oYXNB
bHBoYSA9IHRydWU7CiAgICAgfQogfQpAQCAtODIsOCArODIsNiBAQAogCiBib29sIEltYWdlOjpz
dXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogewotICAgIHFEZWJ1ZygpIDw8ICJkb2Vz
IHN1cHBvcnQgaW1hZ2UgZm9ybWF0PyAiPDwgdHlwZTsKLQogICAgIFFMaXN0PFFCeXRlQXJyYXk+
IGZvcm1hdHMgPSBRSW1hZ2VSZWFkZXI6OnN1cHBvcnRlZEltYWdlRm9ybWF0cygpOwogICAgIGZv
cmVhY2goUUJ5dGVBcnJheSBmb3JtYXQsIGZvcm1hdHMpIHsKICAgICAgICAgaWYgKGZvcm1hdCA9
PSAoUVN0cmluZykgdHlwZSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvSW50U2l6ZVF0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L0ludFNpemVRdC5jcHAJKFJldmlz
aW9uIDE2MDMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9JbnRTaXplUXQuY3BwCShBcmJlaXRz
a29waWUpCkBAIC0yNSw5ICsyNSwxMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKICNpbmNsdWRlIDxRU2l6ZT4KIAotI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkludFNpemUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9SZXNvdXJjZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vUmVzb3VyY2VMb2FkZXJDbGllbnQuaAkoUmV2aXNpb24gMTYwMzIpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL1Jlc291cmNlTG9hZGVyQ2xpZW50LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTM2
LDYgKzM2LDEwIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgUExBVEZPUk0oUVQpCisjaW5jbHVk
ZSA8UVN0cmluZz4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBQTEFURk9S
TShNQUMpCkBAIC00Myw3ICs0Nyw3IEBACiAgICAgdHlwZWRlZiBOU1VSTFJlc3BvbnNlKiBQbGF0
Zm9ybVJlc3BvbnNlOwogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgdHlwZWRlZiB2b2lkKiBQbGF0
Zm9ybURhdGE7Ci0gICAgdHlwZWRlZiBjaGFyKiBQbGF0Zm9ybVJlc3BvbnNlOworICAgIHR5cGVk
ZWYgUVN0cmluZyBQbGF0Zm9ybVJlc3BvbnNlOwogI2Vsc2UKICAgICAvLyBOb3Qgc3VyZSB3aGF0
IHRoZSBzdHJhdGVneSBmb3IgdGhpcyB3aWxsIGJlIG9uIG90aGVyIHBsYXRmb3Jtcy4KICAgICB0
eXBlZGVmIHN0cnVjdCBQbGF0Zm9ybURhdGFTdHJ1Y3QgKlBsYXRmb3JtRGF0YTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>