<?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>45428</bug_id>
          
          <creation_ts>2010-09-08 18:00:02 -0700</creation_ts>
          <short_desc>[chromium] Add chromium port API for accessing Web Timing information</short_desc>
          <delta_ts>2010-09-23 08:30:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>276225</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-08 18:00:02 -0700</bug_when>
    <thetext>[chromium] Add chromium port API for accessing Web Timing information</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276228</commentid>
    <comment_count>1</comment_count>
      <attachid>66976</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-08 18:02:42 -0700</bug_when>
    <thetext>Created attachment 66976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282822</commentid>
    <comment_count>2</comment_count>
      <attachid>66976</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-09-22 00:53:35 -0700</bug_when>
    <thetext>Comment on attachment 66976
Patch

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

comments are mainly minor

&gt; WebKit/chromium/src/WebFrameImpl.h:94
&gt; +    virtual WebPerformance performance() const;

any reason why this is not
virtual WebPerformance&amp;

&gt; WebKit/chromium/src/WebPerformance.cpp:44
&gt; +

shouldn&apos;t this be
WebPerformance::WebPerformance(const WebPerformance&amp; p)
     : m_private(p)

&gt; WebKit/chromium/src/WebPerformance.cpp:55
&gt; +

i think this happens automatically in C++ unless you say explicit in the constructor

&gt; WebKit/chromium/src/WebPerformance.cpp:154
&gt; +

this should be at the top with the other constructor

&gt; WebKit/chromium/src/WebPerformance.cpp:160
&gt; +

ditto with the other operator=</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282961</commentid>
    <comment_count>3</comment_count>
      <attachid>66976</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-09-22 09:04:25 -0700</bug_when>
    <thetext>Comment on attachment 66976
Patch

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

&gt; WebKit/chromium/public/WebPerformance.h:46
&gt; +    virtual ~WebPerformance();

this destructor does not need to be virtual.  this class is not designed
to be subclassed, right?  no need to bloat this object with a vtable pointer.

&gt; WebKit/chromium/public/WebPerformance.h:47
&gt; +    WebPerformance&amp; operator=(const WebPerformance&amp; p);

any non-inline methods outside of WEBKIT_IMPLEMENTATION, need to be marked WEBKIT_API.

in general, we do not export constructors or destructors.  in this case, you
should define a void assign(const WebPerformance&amp;) function and call that to
implement both the copy-ctor as well as the assignment operator.

&gt;&gt; WebKit/chromium/src/WebFrameImpl.h:94
&gt;&gt; +    virtual WebPerformance performance() const;
&gt; 
&gt; any reason why this is not
&gt; virtual WebPerformance&amp;

yeah, it should not be a reference.  WebPreference is intended to
be allocated on the stack as a temporary value.  it works like a
RefPtr&lt;T&gt;.  see the definition of WebPrivatePtr&lt;T&gt; if you are curious.

&gt;&gt; WebKit/chromium/src/WebPerformance.cpp:154
&gt;&gt; +
&gt; 
&gt; this should be at the top with the other constructor

no, it is better to list the functions in the .cpp file in the same order in which they appear in the header file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283280</commentid>
    <comment_count>4</comment_count>
      <attachid>68451</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-22 15:08:05 -0700</bug_when>
    <thetext>Created attachment 68451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283282</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-22 15:09:09 -0700</bug_when>
    <thetext>Chris, thanks for getting this patch jump-started again :-)

Darin, I think I have all the comment addressed, could you take another pass?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283369</commentid>
    <comment_count>6</comment_count>
      <attachid>68451</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-09-22 16:54:48 -0700</bug_when>
    <thetext>Comment on attachment 68451
Patch

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

&gt; WebKit/chromium/src/WebFrameImpl.cpp:700
&gt; +        return WebPerformance(0);

nit: no (0) here.  just return WebPerformance()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283659</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-09-23 08:30:31 -0700</bug_when>
    <thetext>Committed r68141: &lt;http://trac.webkit.org/changeset/68141&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66976</attachid>
            <date>2010-09-08 18:02:42 -0700</date>
            <delta_ts>2010-09-22 15:08:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45428-20100908180241.patch</filename>
            <type>text/plain</type>
            <size>14166</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDRlOGYzNjYzMWUxNjAzMWZjNjNhZTFjMTE2NTllMTdjNGQwZDQ5ZDQu
Ljc0MWEzZGQwNTBlNTE1Y2MwMTI2ZTIzZTc3YmY1NjA1MzNmNjA3MDMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQwIEBACisyMDEwLTA5LTA4ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW2Nocm9taXVtXSBBZGQgY2hyb21pdW0gcG9ydCBBUEkgZm9yIGFjY2Vzc2luZyBXZWIgVGlt
aW5nIGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTQyOAorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMv
V2ViRnJhbWUuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViUGVyZm9ybWFuY2UuaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpXZWJQZXJmb3JtYW5jZSk6CisgICAgICAg
ICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6
cGVyZm9ybWFuY2UpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuaDoKKyAgICAgICAgKiBz
cmMvV2ViUGVyZm9ybWFuY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9y
bWFuY2U6OldlYlBlcmZvcm1hbmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6
On5XZWJQZXJmb3JtYW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpvcGVy
YXRvcj0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJmb3JtYW5jZTo6bmF2aWdhdGlvblR5cGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJmb3JtYW5jZTo6bmF2aWdhdGlvblN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OnVubG9hZEV2ZW50RW5kKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OnJlZGlyZWN0U3RhcnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQZXJmb3JtYW5jZTo6cmVkaXJlY3RFbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJm
b3JtYW5jZTo6cmVkaXJlY3RDb3VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNl
OjpmZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OmRvbWFpbkxv
b2t1cFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OmRvbWFpbkxvb2t1
cEVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpjb25uZWN0U3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQZXJmb3JtYW5jZTo6Y29ubmVjdEVuZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpyZXF1ZXN0U3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQZXJmb3JtYW5jZTo6cmVxdWVzdEVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1h
bmNlOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OnJl
c3BvbnNlRW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OmxvYWRFdmVudFN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OmxvYWRFdmVudEVuZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpvcGVyYXRvciBQYXNzUmVmUHRyPFBlcmZv
cm1hbmNlPik6CisKIDIwMTAtMDktMDggIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRl
eCBlNGIzZGZlYWQ3MDhlNzdjNTBmNzE5Njk1MDViNjEzNDU0ZmE5MTQ2Li5iZDg1ODEyMGE5YjQ0
NDFlZDExZjlmNDJhYjMzNzU3OWY5ZDYwNzdiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjEzLDYgKzIx
Myw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQYWdlU2VyaWFsaXplckNsaWVudC5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlBhc3N3b3JkQXV0b2NvbXBsZXRlTGlzdGVu
ZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQYXNzd29yZEZvcm1EYXRhLmgnLAor
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGVyZm9ybWFuY2UuaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJQbHVnaW4uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQbHVn
aW5Db250YWluZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJQbHVnaW5Eb2N1bWVu
dC5oJywKQEAgLTQ3OCw2ICs0NzksNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGFzc3dv
cmRGb3JtRGF0YS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGFzc3dvcmRGb3JtVXRp
bHMuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlBhc3N3b3JkRm9ybVV0aWxzLmgnLAor
ICAgICAgICAgICAgICAgICdzcmMvV2ViUGVyZm9ybWFuY2UuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQbHVn
aW5Eb2N1bWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJG
cmFtZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCmluZGV4IGQ4ZWNhNmFi
ZWM3MDRiOTExNTA2YTY4YTQzNjY5OGJkMTNmYWIyMjEuLjg3NWYyNDgyNzM0OWVlZTkzYWZhZWNm
MGQ0NjkxMjlhMDYyM2Q0ZDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RnJhbWUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTU2LDYg
KzU2LDcgQEAgY2xhc3MgV2ViRm9ybUVsZW1lbnQ7CiBjbGFzcyBXZWJIaXN0b3J5SXRlbTsKIGNs
YXNzIFdlYklucHV0RWxlbWVudDsKIGNsYXNzIFdlYlBhc3N3b3JkQXV0b2NvbXBsZXRlTGlzdGVu
ZXI7CitjbGFzcyBXZWJQZXJmb3JtYW5jZTsKIGNsYXNzIFdlYlJhbmdlOwogY2xhc3MgV2ViU2Vj
dXJpdHlPcmlnaW47CiBjbGFzcyBXZWJTdHJpbmc7CkBAIC0xOTMsNiArMTk0LDggQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBXZWJBbmltYXRpb25Db250cm9sbGVyKiBhbmltYXRpb25Db250cm9s
bGVyKCkgPSAwOwogCisgICAgdmlydHVhbCBXZWJQZXJmb3JtYW5jZSBwZXJmb3JtYW5jZSgpIGNv
bnN0ID0gMDsKKwogCiAgICAgLy8gU2NyaXB0aW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJQZXJmb3JtYW5jZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJQZXJmb3JtYW5jZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhZmUwZDE4YzA5ZDIzMzNlYmZjMDUyMWY2ZDU2
MTQyMzM3MjRkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBlcmZvcm1hbmNlLmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUGVyZm9ybWFuY2VfaAor
I2RlZmluZSBXZWJQZXJmb3JtYW5jZV9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNs
dWRlICJXZWJOYXZpZ2F0aW9uVHlwZS5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBQZXJmb3JtYW5jZTsgfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGVyZm9ybWFuY2UgeworcHVibGljOgorICAgIFdlYlBlcmZvcm1h
bmNlKCkgeyB9CisgICAgV2ViUGVyZm9ybWFuY2UoY29uc3QgV2ViUGVyZm9ybWFuY2UmIHApOwor
ICAgIHZpcnR1YWwgfldlYlBlcmZvcm1hbmNlKCk7CisgICAgV2ViUGVyZm9ybWFuY2UmIG9wZXJh
dG9yPShjb25zdCBXZWJQZXJmb3JtYW5jZSYgcCk7CisKKyAgICAvLyBUaGlzIG9ubHkgcmV0dXJu
cyBvbmUgb2Yge090aGVyfFJlbG9hZHxCYWNrRm9yd2FyZH0uCisgICAgLy8gRm9ybSBzdWJtaXRz
IGFuZCBsaW5rIGNsaWNrcyBhbGwgZmFsbCB1bmRlciBvdGhlci4KKyAgICBXRUJLSVRfQVBJIFdl
Yk5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlKCkgY29uc3Q7CisKKyAgICBXRUJLSVRfQVBJ
IGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIGRvdWJsZSB1
bmxvYWRFdmVudEVuZCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgZG91YmxlIHJlZGlyZWN0U3Rh
cnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIGRvdWJsZSByZWRpcmVjdEVuZCgpIGNvbnN0Owor
ICAgIFdFQktJVF9BUEkgdW5zaWduZWQgc2hvcnQgcmVkaXJlY3RDb3VudCgpIGNvbnN0OworICAg
IFdFQktJVF9BUEkgZG91YmxlIGZldGNoU3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIGRv
dWJsZSBkb21haW5Mb29rdXBTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgZG91YmxlIGRv
bWFpbkxvb2t1cEVuZCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgZG91YmxlIGNvbm5lY3RTdGFy
dCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgZG91YmxlIGNvbm5lY3RFbmQoKSBjb25zdDsKKyAg
ICBXRUJLSVRfQVBJIGRvdWJsZSByZXF1ZXN0U3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJ
IGRvdWJsZSByZXF1ZXN0RW5kKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBkb3VibGUgcmVzcG9u
c2VTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgZG91YmxlIHJlc3BvbnNlRW5kKCkgY29u
c3Q7CisgICAgV0VCS0lUX0FQSSBkb3VibGUgbG9hZEV2ZW50U3RhcnQoKSBjb25zdDsKKyAgICBX
RUJLSVRfQVBJIGRvdWJsZSBsb2FkRXZlbnRFbmQoKSBjb25zdDsKKworI2lmIFdFQktJVF9JTVBM
RU1FTlRBVElPTgorICAgIFdlYlBlcmZvcm1hbmNlKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpQZXJmb3JtYW5jZT4mKTsKKyAgICBXZWJQZXJmb3JtYW5jZSYgb3BlcmF0b3I9KGNvbnN0
IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpQZXJmb3JtYW5jZT4mKTsKKyAgICBvcGVyYXRvciBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UGVyZm9ybWFuY2U+KCkgY29uc3Q7CisjZW5kaWYKKwor
cHJvdGVjdGVkOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UGVyZm9ybWFuY2U+IG1fcHJp
dmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAppbmRleCBlYjBkYjdlYjIwOTYzZDJmNjQ5ZGQ2OTZkOGEwOGFk
OGFhN2I2Y2EzLi44ZDdjNDExYzNjYWIyNTk2MDA0ZTZhMTM4ZTAyYjY2OGI5N2RjYmYzIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC05OSw2ICs5OSw3IEBACiAjaW5jbHVk
ZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1Db250ZXh0U2tpYS5oIgogI2luY2x1ZGUgIlBsdWdpbkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
UHJpbnRDb250ZXh0LmgiCkBAIC0xMzAsNiArMTMxLDcgQEAKICNpbmNsdWRlICJXZWJIaXN0b3J5
SXRlbS5oIgogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIldlYlBhc3N3
b3JkQXV0b2NvbXBsZXRlTGlzdGVuZXIuaCIKKyNpbmNsdWRlICJXZWJQZXJmb3JtYW5jZS5oIgog
I2luY2x1ZGUgIldlYlBsdWdpbi5oIgogI2luY2x1ZGUgIldlYlBsdWdpbkNvbnRhaW5lckltcGwu
aCIKICNpbmNsdWRlICJXZWJSYW5nZS5oIgpAQCAtNjkyLDYgKzY5NCwxNCBAQCBXZWJBbmltYXRp
b25Db250cm9sbGVyKiBXZWJGcmFtZUltcGw6OmFuaW1hdGlvbkNvbnRyb2xsZXIoKQogICAgIHJl
dHVybiAmbV9hbmltYXRpb25Db250cm9sbGVyOwogfQogCitXZWJQZXJmb3JtYW5jZSBXZWJGcmFt
ZUltcGw6OnBlcmZvcm1hbmNlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZnJhbWUgfHwgIW1fZnJh
bWUtPmRvbVdpbmRvdygpKQorICAgICAgICByZXR1cm4gV2ViUGVyZm9ybWFuY2UoMCk7CisKKyAg
ICByZXR1cm4gV2ViUGVyZm9ybWFuY2UobV9mcmFtZS0+ZG9tV2luZG93KCktPndlYmtpdFBlcmZv
cm1hbmNlKCkpOworfQorCiBXZWJTZWN1cml0eU9yaWdpbiBXZWJGcmFtZUltcGw6OnNlY3VyaXR5
T3JpZ2luKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUgfHwgIW1fZnJhbWUtPmRvY3VtZW50
KCkpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAppbmRleCAxNDIxN2ZhZTUwYjViYmJhYTg4
NmQ5NmM1NDQ1YjMyNjRlOGIxZjQ1Li43YzNjZjkxMTVkZTg4NTU2ZTJjYjhlNjc4OTI4MTBmNDg1
NmI3YzBiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5oCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTU2LDYgKzU2LDcgQEAg
Y2xhc3MgV2ViRGF0YVNvdXJjZUltcGw7CiBjbGFzcyBXZWJJbnB1dEVsZW1lbnQ7CiBjbGFzcyBX
ZWJGcmFtZUNsaWVudDsKIGNsYXNzIFdlYlBhc3N3b3JkQXV0b2NvbXBsZXRlTGlzdGVuZXI7Citj
bGFzcyBXZWJQZXJmb3JtYW5jZTsKIGNsYXNzIFdlYlBsdWdpbkNvbnRhaW5lckltcGw7CiBjbGFz
cyBXZWJWaWV3OwogY2xhc3MgV2ViVmlld0ltcGw7CkBAIC05MCw2ICs5MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFdlYkRvY3VtZW50IGRvY3VtZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIGZvcm1zKFdlYlZlY3RvcjxXZWJGb3JtRWxlbWVudD4mKSBjb25zdDsKICAgICB2aXJ0dWFs
IFdlYkFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1hdGlvbkNvbnRyb2xsZXIoKTsKKyAgICB2aXJ0
dWFsIFdlYlBlcmZvcm1hbmNlIHBlcmZvcm1hbmNlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJT
ZWN1cml0eU9yaWdpbiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBn
cmFudFVuaXZlcnNhbEFjY2VzcygpOwogICAgIHZpcnR1YWwgTlBPYmplY3QqIHdpbmRvd09iamVj
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQZXJmb3JtYW5j
ZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBlcmZvcm1hbmNlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lYjEyYmRhNzZmYWNhYTQ0NDI4MTk1YTUxMjI0NTA3ZjViNmE3ZDc2Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQZXJmb3JtYW5jZS5jcHAKQEAgLTAsMCArMSwx
NjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUGVyZm9ybWFuY2UuaCIKKwor
I2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUGVyZm9ybWFuY2U6OldlYlBlcmZvcm1hbmNlKGNvbnN0
IFdlYlBlcmZvcm1hbmNlJiBwKQoreworICAgIG1fcHJpdmF0ZSA9IHA7Cit9CisKK1dlYlBlcmZv
cm1hbmNlOjp+V2ViUGVyZm9ybWFuY2UoKQoreworICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQor
CitXZWJQZXJmb3JtYW5jZSYgV2ViUGVyZm9ybWFuY2U6Om9wZXJhdG9yPShjb25zdCBXZWJQZXJm
b3JtYW5jZSYgcCkKK3sKKyAgICBtX3ByaXZhdGUgPSBwOworICAgIHJldHVybiAqdGhpczsKK30K
KworV2ViTmF2aWdhdGlvblR5cGUgV2ViUGVyZm9ybWFuY2U6Om5hdmlnYXRpb25UeXBlKCkgY29u
c3QKK3sKKyAgICBzd2l0Y2ggKG1fcHJpdmF0ZS0+bmF2aWdhdGlvbigpLT50eXBlKCkpIHsKKyAg
ICBjYXNlIE5hdmlnYXRpb246Ok5BVklHQVRFOgorICAgICAgICByZXR1cm4gV2ViTmF2aWdhdGlv
blR5cGVPdGhlcjsKKyAgICBjYXNlIE5hdmlnYXRpb246OlJFTE9BRDoKKyAgICAgICAgcmV0dXJu
IFdlYk5hdmlnYXRpb25UeXBlUmVsb2FkOworICAgIGNhc2UgTmF2aWdhdGlvbjo6QkFDS19GT1JX
QVJEOgorICAgICAgICByZXR1cm4gV2ViTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDsKKyAgICB9
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdlYk5hdmlnYXRpb25UeXBl
T3RoZXI7Cit9CisKK2RvdWJsZSBXZWJQZXJmb3JtYW5jZTo6bmF2aWdhdGlvblN0YXJ0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ByaXZhdGUtPnRpbWluZygp
LT5uYXZpZ2F0aW9uU3RhcnQoKSk7Cit9CisKK2RvdWJsZSBXZWJQZXJmb3JtYW5jZTo6dW5sb2Fk
RXZlbnRFbmQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG1fcHJp
dmF0ZS0+dGltaW5nKCktPnVubG9hZEV2ZW50RW5kKCkpOworfQorCitkb3VibGUgV2ViUGVyZm9y
bWFuY2U6OnJlZGlyZWN0U3RhcnQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxk
b3VibGU+KG1fcHJpdmF0ZS0+dGltaW5nKCktPnJlZGlyZWN0U3RhcnQoKSk7Cit9CisKK2RvdWJs
ZSBXZWJQZXJmb3JtYW5jZTo6cmVkaXJlY3RFbmQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxkb3VibGU+KG1fcHJpdmF0ZS0+dGltaW5nKCktPnJlZGlyZWN0RW5kKCkpOworfQor
Cit1bnNpZ25lZCBzaG9ydCBXZWJQZXJmb3JtYW5jZTo6cmVkaXJlY3RDb3VudCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bmF2aWdhdGlvbigpLT5yZWRpcmVjdENvdW50KCk7Cit9
CisKK2RvdWJsZSBXZWJQZXJmb3JtYW5jZTo6ZmV0Y2hTdGFydCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4obV9wcml2YXRlLT50aW1pbmcoKS0+ZmV0Y2hTdGFydCgp
KTsKK30KKworZG91YmxlIFdlYlBlcmZvcm1hbmNlOjpkb21haW5Mb29rdXBTdGFydCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4obV9wcml2YXRlLT50aW1pbmcoKS0+
ZG9tYWluTG9va3VwU3RhcnQoKSk7Cit9CisKK2RvdWJsZSBXZWJQZXJmb3JtYW5jZTo6ZG9tYWlu
TG9va3VwRW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3By
aXZhdGUtPnRpbWluZygpLT5kb21haW5Mb29rdXBFbmQoKSk7Cit9CisKK2RvdWJsZSBXZWJQZXJm
b3JtYW5jZTo6Y29ubmVjdFN0YXJ0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
ZG91YmxlPihtX3ByaXZhdGUtPnRpbWluZygpLT5jb25uZWN0U3RhcnQoKSk7Cit9CisKK2RvdWJs
ZSBXZWJQZXJmb3JtYW5jZTo6Y29ubmVjdEVuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGRvdWJsZT4obV9wcml2YXRlLT50aW1pbmcoKS0+Y29ubmVjdEVuZCgpKTsKK30KKwor
ZG91YmxlIFdlYlBlcmZvcm1hbmNlOjpyZXF1ZXN0U3RhcnQoKSBjb25zdAoreworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxkb3VibGU+KG1fcHJpdmF0ZS0+dGltaW5nKCktPnJlcXVlc3RTdGFydCgp
KTsKK30KKworZG91YmxlIFdlYlBlcmZvcm1hbmNlOjpyZXF1ZXN0RW5kKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ByaXZhdGUtPnRpbWluZygpLT5yZXF1ZXN0
RW5kKCkpOworfQorCitkb3VibGUgV2ViUGVyZm9ybWFuY2U6OnJlc3BvbnNlU3RhcnQoKSBjb25z
dAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG1fcHJpdmF0ZS0+dGltaW5nKCkt
PnJlc3BvbnNlU3RhcnQoKSk7Cit9CisKK2RvdWJsZSBXZWJQZXJmb3JtYW5jZTo6cmVzcG9uc2VF
bmQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG1fcHJpdmF0ZS0+
dGltaW5nKCktPnJlc3BvbnNlRW5kKCkpOworfQorCitkb3VibGUgV2ViUGVyZm9ybWFuY2U6Omxv
YWRFdmVudFN0YXJ0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPiht
X3ByaXZhdGUtPnRpbWluZygpLT5sb2FkRXZlbnRTdGFydCgpKTsKK30KKworZG91YmxlIFdlYlBl
cmZvcm1hbmNlOjpsb2FkRXZlbnRFbmQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxkb3VibGU+KG1fcHJpdmF0ZS0+dGltaW5nKCktPmxvYWRFdmVudEVuZCgpKTsKK30KKworV2Vi
UGVyZm9ybWFuY2U6OldlYlBlcmZvcm1hbmNlKGNvbnN0IFBhc3NSZWZQdHI8UGVyZm9ybWFuY2U+
JiBwZXJmb3JtYW5jZSkKKyAgICA6IG1fcHJpdmF0ZShwZXJmb3JtYW5jZSkKK3sKK30KKworV2Vi
UGVyZm9ybWFuY2UmIFdlYlBlcmZvcm1hbmNlOjpvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxQ
ZXJmb3JtYW5jZT4mIHBlcmZvcm1hbmNlKQoreworICAgIG1fcHJpdmF0ZSA9IHBlcmZvcm1hbmNl
OworICAgIHJldHVybiAqdGhpczsKK30KKworV2ViUGVyZm9ybWFuY2U6Om9wZXJhdG9yIFBhc3NS
ZWZQdHI8UGVyZm9ybWFuY2U+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68451</attachid>
            <date>2010-09-22 15:08:05 -0700</date>
            <delta_ts>2010-09-22 16:54:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45428-20100922150804.patch</filename>
            <type>text/plain</type>
            <size>14254</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDQxYWIwOGQ2MzI1NjQwOTMzY2E1NTBmMjlkZjUxNDdiYjdiOGY0NWQu
LjMzN2NjMTViZDc3YTJmMjQ5MWFiM2I5MzgxNjk2M2Y4YTJlYTViNTYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQwIEBACisyMDEwLTA5LTA4ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW2Nocm9taXVtXSBBZGQgY2hyb21pdW0gcG9ydCBBUEkgZm9yIGFjY2Vzc2luZyBXZWIgVGlt
aW5nIGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTQyOAorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMv
V2ViRnJhbWUuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViUGVyZm9ybWFuY2UuaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpXZWJQZXJmb3JtYW5jZSk6CisgICAgICAg
ICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6
cGVyZm9ybWFuY2UpOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuaDoKKyAgICAgICAgKiBz
cmMvV2ViUGVyZm9ybWFuY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9y
bWFuY2U6OldlYlBlcmZvcm1hbmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6
On5XZWJQZXJmb3JtYW5jZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpvcGVy
YXRvcj0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJmb3JtYW5jZTo6bmF2aWdhdGlvblR5cGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJmb3JtYW5jZTo6bmF2aWdhdGlvblN0YXJ0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OnVubG9hZEV2ZW50RW5kKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OnJlZGlyZWN0U3RhcnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQZXJmb3JtYW5jZTo6cmVkaXJlY3RFbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJm
b3JtYW5jZTo6cmVkaXJlY3RDb3VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNl
OjpmZXRjaFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OmRvbWFpbkxv
b2t1cFN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OmRvbWFpbkxvb2t1
cEVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpjb25uZWN0U3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQZXJmb3JtYW5jZTo6Y29ubmVjdEVuZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpyZXF1ZXN0U3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQZXJmb3JtYW5jZTo6cmVxdWVzdEVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1h
bmNlOjpyZXNwb25zZVN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OnJl
c3BvbnNlRW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OmxvYWRFdmVudFN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVyZm9ybWFuY2U6OmxvYWRFdmVudEVuZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBlcmZvcm1hbmNlOjpvcGVyYXRvciBQYXNzUmVmUHRyPFBlcmZv
cm1hbmNlPik6CisKIDIwMTAtMDktMjIgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIENocm9taXVtIGJ1aWxkIGZpeC4gRml4IGJ1aWxkIHdo
ZW4gYWNjZWxlcmF0ZWQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggZmM4ZmJkZDMxNTcyOTY5MGZiOGVlODVl
YWM2MWU1MTkzMjdjNzYyZi4uZDIwY2Q3ZTUyY2MyN2UzZDI2ODZjMzY0YTQzNjEzYTA0NGIyZGMw
OSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXAKQEAgLTIxNSw2ICsyMTUsNyBAQAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViUGFnZVNlcmlhbGl6ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJQYXNzd29yZEF1dG9jb21wbGV0ZUxpc3RlbmVyLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViUGFzc3dvcmRGb3JtRGF0YS5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dl
YlBlcmZvcm1hbmNlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGx1Z2luLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViUGx1Z2luRG9jdW1lbnQuaCcsCkBAIC00ODEsNiArNDgyLDcgQEAK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYlBhc3N3b3JkRm9ybURhdGEuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYlBhc3N3b3JkRm9ybVV0aWxzLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJQYXNzd29yZEZvcm1VdGlscy5oJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYlBl
cmZvcm1hbmNlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQbHVnaW5Db250YWluZXJJ
bXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViUGx1Z2luRG9jdW1lbnQuY3BwJywKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViRnJhbWUuaAppbmRleCA2NzI1ZjU4MGRhN2I3ZTE4YTQxNGIxNzhmNjE3YzcwYWQ4
ZjgxYzI3Li4xM2RlNWRhY2YyNTczNDU3ZDc3NDI5ZTVlNjRkZWExMmJhZjI0MjZlIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIFdlYkZvcm1FbGVt
ZW50OwogY2xhc3MgV2ViSGlzdG9yeUl0ZW07CiBjbGFzcyBXZWJJbnB1dEVsZW1lbnQ7CiBjbGFz
cyBXZWJQYXNzd29yZEF1dG9jb21wbGV0ZUxpc3RlbmVyOworY2xhc3MgV2ViUGVyZm9ybWFuY2U7
CiBjbGFzcyBXZWJSYW5nZTsKIGNsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwogY2xhc3MgV2ViU3Ry
aW5nOwpAQCAtMTkzLDYgKzE5NCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgV2ViQW5pbWF0
aW9uQ29udHJvbGxlciogYW5pbWF0aW9uQ29udHJvbGxlcigpID0gMDsKIAorICAgIHZpcnR1YWwg
V2ViUGVyZm9ybWFuY2UgcGVyZm9ybWFuY2UoKSBjb25zdCA9IDA7CisKIAogICAgIC8vIFNjcmlw
dGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVyZm9ybWFu
Y2UuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVyZm9ybWFuY2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMTJmMmZkNjg0MGFmYmU1YjAxOTJlMzcyMzVhMGQ5MDc4YjEzYzg1Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJmb3JtYW5jZS5oCkBAIC0wLDAgKzEs
OTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYlBlcmZvcm1hbmNlX2gKKyNkZWZpbmUgV2ViUGVyZm9ybWFuY2VfaAor
CisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViTmF2aWdhdGlvblR5cGUuaCIK
KyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3Mg
UGVyZm9ybWFuY2U7IH0KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBlcmZvcm1h
bmNlIHsKK3B1YmxpYzoKKyAgICB+V2ViUGVyZm9ybWFuY2UoKSB7IHJlc2V0KCk7IH0KKworICAg
IFdlYlBlcmZvcm1hbmNlKCkgeyB9CisKKyAgICBXZWJQZXJmb3JtYW5jZShjb25zdCBXZWJQZXJm
b3JtYW5jZSYgcCkgeyBhc3NpZ24ocCk7IH0KKworICAgIFdlYlBlcmZvcm1hbmNlJiBvcGVyYXRv
cj0oY29uc3QgV2ViUGVyZm9ybWFuY2UmIHApCisgICAgeworICAgICAgICBhc3NpZ24ocCk7Cisg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQo
KTsKKyAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYlBlcmZvcm1hbmNlJik7CisK
KyAgICAvLyBUaGlzIG9ubHkgcmV0dXJucyBvbmUgb2Yge090aGVyfFJlbG9hZHxCYWNrRm9yd2Fy
ZH0uCisgICAgLy8gRm9ybSBzdWJtaXRzIGFuZCBsaW5rIGNsaWNrcyBhbGwgZmFsbCB1bmRlciBv
dGhlci4KKyAgICBXRUJLSVRfQVBJIFdlYk5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlKCkg
Y29uc3Q7CisKKyAgICBXRUJLSVRfQVBJIGRvdWJsZSBuYXZpZ2F0aW9uU3RhcnQoKSBjb25zdDsK
KyAgICBXRUJLSVRfQVBJIGRvdWJsZSB1bmxvYWRFdmVudEVuZCgpIGNvbnN0OworICAgIFdFQktJ
VF9BUEkgZG91YmxlIHJlZGlyZWN0U3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIGRvdWJs
ZSByZWRpcmVjdEVuZCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgdW5zaWduZWQgc2hvcnQgcmVk
aXJlY3RDb3VudCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgZG91YmxlIGZldGNoU3RhcnQoKSBj
b25zdDsKKyAgICBXRUJLSVRfQVBJIGRvdWJsZSBkb21haW5Mb29rdXBTdGFydCgpIGNvbnN0Owor
ICAgIFdFQktJVF9BUEkgZG91YmxlIGRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0OworICAgIFdFQktJ
VF9BUEkgZG91YmxlIGNvbm5lY3RTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkgZG91Ymxl
IGNvbm5lY3RFbmQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIGRvdWJsZSByZXF1ZXN0U3RhcnQo
KSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIGRvdWJsZSByZXF1ZXN0RW5kKCkgY29uc3Q7CisgICAg
V0VCS0lUX0FQSSBkb3VibGUgcmVzcG9uc2VTdGFydCgpIGNvbnN0OworICAgIFdFQktJVF9BUEkg
ZG91YmxlIHJlc3BvbnNlRW5kKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSBkb3VibGUgbG9hZEV2
ZW50U3RhcnQoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIGRvdWJsZSBsb2FkRXZlbnRFbmQoKSBj
b25zdDsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYlBlcmZvcm1hbmNlKGNv
bnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpQZXJmb3JtYW5jZT4mKTsKKyAgICBXZWJQZXJm
b3JtYW5jZSYgb3BlcmF0b3I9KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpQZXJmb3Jt
YW5jZT4mKTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UGVyZm9ybWFu
Y2U+KCkgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNv
cmU6OlBlcmZvcm1hbmNlPiBtX3ByaXZhdGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggMmQ0MmY0Yjc1
M2Y2YzhkZmEwYmJjMzgxY2Y4YmM1OTVkOTM1Y2ExOS4uMzkwODk2ZGNiMzc4MmJhMmM0OGIyY2Q5
N2VmNzZkYzViNGM4YmEwNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAt
OTksNiArOTksNyBAQAogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5j
ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKICNpbmNsdWRlICJQbHVnaW5E
b2N1bWVudC5oIgogI2luY2x1ZGUgIlByaW50Q29udGV4dC5oIgpAQCAtMTMwLDYgKzEzMSw3IEBA
CiAjaW5jbHVkZSAiV2ViSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQu
aCIKICNpbmNsdWRlICJXZWJQYXNzd29yZEF1dG9jb21wbGV0ZUxpc3RlbmVyLmgiCisjaW5jbHVk
ZSAiV2ViUGVyZm9ybWFuY2UuaCIKICNpbmNsdWRlICJXZWJQbHVnaW4uaCIKICNpbmNsdWRlICJX
ZWJQbHVnaW5Db250YWluZXJJbXBsLmgiCiAjaW5jbHVkZSAiV2ViUmFuZ2UuaCIKQEAgLTY5Miw2
ICs2OTQsMTQgQEAgV2ViQW5pbWF0aW9uQ29udHJvbGxlciogV2ViRnJhbWVJbXBsOjphbmltYXRp
b25Db250cm9sbGVyKCkKICAgICByZXR1cm4gJm1fYW5pbWF0aW9uQ29udHJvbGxlcjsKIH0KIAor
V2ViUGVyZm9ybWFuY2UgV2ViRnJhbWVJbXBsOjpwZXJmb3JtYW5jZSgpIGNvbnN0Cit7CisgICAg
aWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5kb21XaW5kb3coKSkKKyAgICAgICAgcmV0dXJuIFdl
YlBlcmZvcm1hbmNlKDApOworCisgICAgcmV0dXJuIFdlYlBlcmZvcm1hbmNlKG1fZnJhbWUtPmRv
bVdpbmRvdygpLT53ZWJraXRQZXJmb3JtYW5jZSgpKTsKK30KKwogV2ViU2VjdXJpdHlPcmlnaW4g
V2ViRnJhbWVJbXBsOjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1l
IHx8ICFtX2ZyYW1lLT5kb2N1bWVudCgpKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5k
ZXggMjVlNzAwNGEyN2VlMTNmOTU1NmZhZmMwMThkMWZkMWYxN2RkNjM4ZS4uODlhZmNhN2EzZmE0
ODNjODc5ZTg3ZmVhM2YzZmZlOTllNDExNDhiNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5oCkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIFdlYkRhdGFTb3VyY2VJbXBsOwogY2xhc3MgV2Vi
SW5wdXRFbGVtZW50OwogY2xhc3MgV2ViRnJhbWVDbGllbnQ7CiBjbGFzcyBXZWJQYXNzd29yZEF1
dG9jb21wbGV0ZUxpc3RlbmVyOworY2xhc3MgV2ViUGVyZm9ybWFuY2U7CiBjbGFzcyBXZWJQbHVn
aW5Db250YWluZXJJbXBsOwogY2xhc3MgV2ViVmlldzsKIGNsYXNzIFdlYlZpZXdJbXBsOwpAQCAt
OTAsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJEb2N1bWVudCBkb2N1bWVudCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBmb3JtcyhXZWJWZWN0b3I8V2ViRm9ybUVsZW1lbnQ+
JikgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJBbmltYXRpb25Db250cm9sbGVyKiBhbmltYXRpb25D
b250cm9sbGVyKCk7CisgICAgdmlydHVhbCBXZWJQZXJmb3JtYW5jZSBwZXJmb3JtYW5jZSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgV2ViU2VjdXJpdHlPcmlnaW4gc2VjdXJpdHlPcmlnaW4oKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRVbml2ZXJzYWxBY2Nlc3MoKTsKICAgICB2aXJ0dWFs
IE5QT2JqZWN0KiB3aW5kb3dPYmplY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUGVyZm9ybWFuY2UuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQZXJm
b3JtYW5jZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAxOTc5M2VkNjQ3ZGFiOTg2NzM0M2NhNjdmN2IyODAy
OGUyMWExYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGVyZm9y
bWFuY2UuY3BwCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYlBlcmZvcm1hbmNlLmgiCisKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGVyZm9y
bWFuY2U6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKwordm9pZCBXZWJQ
ZXJmb3JtYW5jZTo6YXNzaWduKGNvbnN0IFdlYlBlcmZvcm1hbmNlJiBvdGhlcikKK3sKKyAgICBt
X3ByaXZhdGUgPSBvdGhlci5tX3ByaXZhdGU7Cit9CisKK1dlYk5hdmlnYXRpb25UeXBlIFdlYlBl
cmZvcm1hbmNlOjpuYXZpZ2F0aW9uVHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX3ByaXZh
dGUtPm5hdmlnYXRpb24oKS0+dHlwZSgpKSB7CisgICAgY2FzZSBOYXZpZ2F0aW9uOjpOQVZJR0FU
RToKKyAgICAgICAgcmV0dXJuIFdlYk5hdmlnYXRpb25UeXBlT3RoZXI7CisgICAgY2FzZSBOYXZp
Z2F0aW9uOjpSRUxPQUQ6CisgICAgICAgIHJldHVybiBXZWJOYXZpZ2F0aW9uVHlwZVJlbG9hZDsK
KyAgICBjYXNlIE5hdmlnYXRpb246OkJBQ0tfRk9SV0FSRDoKKyAgICAgICAgcmV0dXJuIFdlYk5h
dmlnYXRpb25UeXBlQmFja0ZvcndhcmQ7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBXZWJOYXZpZ2F0aW9uVHlwZU90aGVyOworfQorCitkb3VibGUgV2ViUGVy
Zm9ybWFuY2U6Om5hdmlnYXRpb25TdGFydCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGRvdWJsZT4obV9wcml2YXRlLT50aW1pbmcoKS0+bmF2aWdhdGlvblN0YXJ0KCkpOworfQor
Citkb3VibGUgV2ViUGVyZm9ybWFuY2U6OnVubG9hZEV2ZW50RW5kKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ByaXZhdGUtPnRpbWluZygpLT51bmxvYWRFdmVu
dEVuZCgpKTsKK30KKworZG91YmxlIFdlYlBlcmZvcm1hbmNlOjpyZWRpcmVjdFN0YXJ0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ByaXZhdGUtPnRpbWluZygp
LT5yZWRpcmVjdFN0YXJ0KCkpOworfQorCitkb3VibGUgV2ViUGVyZm9ybWFuY2U6OnJlZGlyZWN0
RW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ByaXZhdGUt
PnRpbWluZygpLT5yZWRpcmVjdEVuZCgpKTsKK30KKwordW5zaWduZWQgc2hvcnQgV2ViUGVyZm9y
bWFuY2U6OnJlZGlyZWN0Q291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPm5h
dmlnYXRpb24oKS0+cmVkaXJlY3RDb3VudCgpOworfQorCitkb3VibGUgV2ViUGVyZm9ybWFuY2U6
OmZldGNoU3RhcnQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG1f
cHJpdmF0ZS0+dGltaW5nKCktPmZldGNoU3RhcnQoKSk7Cit9CisKK2RvdWJsZSBXZWJQZXJmb3Jt
YW5jZTo6ZG9tYWluTG9va3VwU3RhcnQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxkb3VibGU+KG1fcHJpdmF0ZS0+dGltaW5nKCktPmRvbWFpbkxvb2t1cFN0YXJ0KCkpOworfQor
Citkb3VibGUgV2ViUGVyZm9ybWFuY2U6OmRvbWFpbkxvb2t1cEVuZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4obV9wcml2YXRlLT50aW1pbmcoKS0+ZG9tYWluTG9v
a3VwRW5kKCkpOworfQorCitkb3VibGUgV2ViUGVyZm9ybWFuY2U6OmNvbm5lY3RTdGFydCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4obV9wcml2YXRlLT50aW1pbmco
KS0+Y29ubmVjdFN0YXJ0KCkpOworfQorCitkb3VibGUgV2ViUGVyZm9ybWFuY2U6OmNvbm5lY3RF
bmQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG1fcHJpdmF0ZS0+
dGltaW5nKCktPmNvbm5lY3RFbmQoKSk7Cit9CisKK2RvdWJsZSBXZWJQZXJmb3JtYW5jZTo6cmVx
dWVzdFN0YXJ0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3By
aXZhdGUtPnRpbWluZygpLT5yZXF1ZXN0U3RhcnQoKSk7Cit9CisKK2RvdWJsZSBXZWJQZXJmb3Jt
YW5jZTo6cmVxdWVzdEVuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJs
ZT4obV9wcml2YXRlLT50aW1pbmcoKS0+cmVxdWVzdEVuZCgpKTsKK30KKworZG91YmxlIFdlYlBl
cmZvcm1hbmNlOjpyZXNwb25zZVN0YXJ0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZG91YmxlPihtX3ByaXZhdGUtPnRpbWluZygpLT5yZXNwb25zZVN0YXJ0KCkpOworfQorCitk
b3VibGUgV2ViUGVyZm9ybWFuY2U6OnJlc3BvbnNlRW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ByaXZhdGUtPnRpbWluZygpLT5yZXNwb25zZUVuZCgpKTsK
K30KKworZG91YmxlIFdlYlBlcmZvcm1hbmNlOjpsb2FkRXZlbnRTdGFydCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4obV9wcml2YXRlLT50aW1pbmcoKS0+bG9hZEV2
ZW50U3RhcnQoKSk7Cit9CisKK2RvdWJsZSBXZWJQZXJmb3JtYW5jZTo6bG9hZEV2ZW50RW5kKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ByaXZhdGUtPnRpbWlu
ZygpLT5sb2FkRXZlbnRFbmQoKSk7Cit9CisKK1dlYlBlcmZvcm1hbmNlOjpXZWJQZXJmb3JtYW5j
ZShjb25zdCBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlPiYgcGVyZm9ybWFuY2UpCisgICAgOiBtX3By
aXZhdGUocGVyZm9ybWFuY2UpCit7Cit9CisKK1dlYlBlcmZvcm1hbmNlJiBXZWJQZXJmb3JtYW5j
ZTo6b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8UGVyZm9ybWFuY2U+JiBwZXJmb3JtYW5jZSkK
K3sKKyAgICBtX3ByaXZhdGUgPSBwZXJmb3JtYW5jZTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisK
K1dlYlBlcmZvcm1hbmNlOjpvcGVyYXRvciBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlPigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Cg==
</data>
<flag name="review"
          id="57969"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>