<?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>45148</bug_id>
          
          <creation_ts>2010-09-02 16:12:31 -0700</creation_ts>
          <short_desc>[Qt] V8 port for Qt platform: Qt API implementation changes</short_desc>
          <delta_ts>2010-09-11 10:07:16 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45136</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vlad">vladbph</reporter>
          <assigned_to name="QtWebKit Unassigned">webkit-qt-unassigned</assigned_to>
          <cc>christian.webkit</cc>
    
    <cc>kent.hansen</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273651</commentid>
    <comment_count>0</comment_count>
    <who name="Vlad">vladbph</who>
    <bug_when>2010-09-02 16:12:31 -0700</bug_when>
    <thetext>V8 Implementation of 
QWebFrame::addToJavaScriptWindowObject()
QWebFrame::evaluateJavaScript()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273698</commentid>
    <comment_count>1</comment_count>
      <attachid>66443</attachid>
    <who name="Vlad">vladbph</who>
    <bug_when>2010-09-02 17:44:37 -0700</bug_when>
    <thetext>Created attachment 66443
QT API implementation changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273854</commentid>
    <comment_count>2</comment_count>
      <attachid>66443</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-03 03:39:08 -0700</bug_when>
    <thetext>Comment on attachment 66443
QT API implementation changes

&gt; +#if !USE(JSC)
&gt; +using namespace V8::Bindings;
&gt; +#endif

This is backwards, it should be #if USE(V8) if anything. Also, like I said earlier I think we should always explicitly say V8 instead of having it implied by !USE(JSC), example:

#if USE(JSC)
...
#elif USE(V8)
...
#endif


&gt; +    // Create scope handler
&gt; +    v8::HandleScope hs;
&gt; +    // Get proxy from scriptcontroller
&gt; +    V8Proxy* proxy = scriptController-&gt;proxy();
&gt; +    // Ask the context from proxy
&gt; +    v8::Handle&lt;v8::Context&gt; context = proxy-&gt;context();

This style of commenting detracts from readability and should be avoided.

&gt; +    if (object.IsEmpty()) {
&gt; +        return QVariant();
&gt; +    }

Coding style, remove the { and }.

&gt; +#if defined(WTF_USE_V8) &amp;&amp; WTF_USE_V8

Use the USE macro from wtf/Platform.h instead.

&gt; +#if USE(JSC)
&gt;  void QWebFrame::addToJavaScriptWindowObject(const QString &amp;name, QObject *object, QScriptEngine::ValueOwnership ownership)

Since the function signature has no engine-specific parameters, the preprocessor conditional should be inside the function.

&gt; +    v8::HandleScope handle_scope;
...
&gt; +    v8::Context::Scope conxtext_scope(v8Context);

we_dont_use_this_style, weUseThisStyle :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274022</commentid>
    <comment_count>3</comment_count>
    <who name="Vlad">vladbph</who>
    <bug_when>2010-09-03 10:40:23 -0700</bug_when>
    <thetext>
(In reply to comment #2)
&gt; (From update of attachment 66443 [details])
&gt; &gt; +#if !USE(JSC)
&gt; &gt; +using namespace V8::Bindings;
&gt; &gt; +#endif
&gt; 
&gt; This is backwards, it should be #if USE(V8) if anything. Also, like I said earlier I think we should always explicitly say V8 instead of having it implied by !USE(JSC), example:
&gt; 
&gt; #if USE(JSC)
&gt; ...
&gt; #elif USE(V8)
&gt; ...
&gt; #endif
&gt; 
OK
&gt; 
&gt; &gt; +    // Create scope handler
&gt; &gt; +    v8::HandleScope hs;
&gt; &gt; +    // Get proxy from scriptcontroller
&gt; &gt; +    V8Proxy* proxy = scriptController-&gt;proxy();
&gt; &gt; +    // Ask the context from proxy
&gt; &gt; +    v8::Handle&lt;v8::Context&gt; context = proxy-&gt;context();
&gt; 
OK
&gt; This style of commenting detracts from readability and should be avoided.
&gt; 
&gt; &gt; +    if (object.IsEmpty()) {
&gt; &gt; +        return QVariant();
&gt; &gt; +    }
&gt; 

This would break compilation if header is used outside of webkit. 

&gt; Coding style, remove the { and }.
&gt; 
&gt; &gt; +#if defined(WTF_USE_V8) &amp;&amp; WTF_USE_V8
&gt; 
&gt; Use the USE macro from wtf/Platform.h instead.
&gt; 
OK
&gt; &gt; +#if USE(JSC)
&gt; &gt;  void QWebFrame::addToJavaScriptWindowObject(const QString &amp;name, QObject *object, QScriptEngine::ValueOwnership ownership)
&gt; 
&gt; Since the function signature has no engine-specific parameters, the preprocessor conditional should be inside the function.

style check missed that :) OK
&gt; 
&gt; &gt; +    v8::HandleScope handle_scope;
&gt; ...
&gt; &gt; +    v8::Context::Scope conxtext_scope(v8Context);
&gt; 
&gt; we_dont_use_this_style, weUseThisStyle :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274312</commentid>
    <comment_count>4</comment_count>
      <attachid>66577</attachid>
    <who name="Vlad">vladbph</who>
    <bug_when>2010-09-03 18:14:47 -0700</bug_when>
    <thetext>Created attachment 66577
Review comments changes

#if defined(WTF_USE_V8) &amp;&amp; WTF_USE_V8 left in the code b/c the qwebelement.h can be used as public header and USE() macro could not be defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274464</commentid>
    <comment_count>5</comment_count>
      <attachid>66577</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-05 18:03:39 -0700</bug_when>
    <thetext>Comment on attachment 66577
Review comments changes

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275841</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-09-08 08:02:35 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=66577) [details]
&gt; Review comments changes
&gt; 
&gt; #if defined(WTF_USE_V8) &amp;&amp; WTF_USE_V8 left in the code b/c the qwebelement.h can be used as public header and USE() macro could not be defined.

Small nit: setupScriptContext() still uses #else instead of #elif USE(V8)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277731</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-11 10:07:16 -0700</bug_when>
    <thetext>Committed r67301: &lt;http://trac.webkit.org/changeset/67301&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66443</attachid>
            <date>2010-09-02 17:44:37 -0700</date>
            <delta_ts>2010-09-03 03:39:08 -0700</delta_ts>
            <desc>QT API implementation changes</desc>
            <filename>v8_qt_api.patch</filename>
            <type>text/plain</type>
            <size>10385</size>
            <attacher name="Vlad">vladbph</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmVsZW1lbnQuY3BwDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2Vi
S2l0L3F0L0FwaS9xd2ViZWxlbWVudC5jcHAJKHJldmlzaW9uIDY2NjkyKQ0KKysrIFdlYktpdC9x
dC9BcGkvcXdlYmVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMzEsMjMgKzMxLDMzIEBA
DQogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgog
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaWYgVVNFKEpTQykKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU09iamVj
dC5oIgorI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCisjaW5jbHVkZSA8cGFyc2VyL1Nv
dXJjZUNvZGUuaD4KKyNpbmNsdWRlICJxdF9ydW50aW1lLmgiCisjZWxzZQorI2luY2x1ZGUgIlY4
RE9NV2luZG93LmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAicXRfaW5zdGFu
Y2V2OC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKLSNpbmNsdWRlICJQcm9wZXJ0
eU5hbWVBcnJheS5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiU3RhdGlj
Tm9kZUxpc3QuaCIKLSNpbmNsdWRlICJxdF9ydW50aW1lLmgiCiAjaW5jbHVkZSAicXdlYmZyYW1l
LmgiCiAjaW5jbHVkZSAicXdlYmZyYW1lX3AuaCIKICNpbmNsdWRlICJydW50aW1lX3Jvb3QuaCIK
LSNpbmNsdWRlIDxwYXJzZXIvU291cmNlQ29kZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpbmNsdWRlIDxRUGFpbnRlcj4KIAor
I2lmICFVU0UoSlNDKQordXNpbmcgbmFtZXNwYWNlIFY4OjpCaW5kaW5nczsKKyNlbmRpZgorCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgUVdlYkVsZW1lbnRQcml2YXRlIHsKQEAg
LTY5NCw2ICs3MDQsNyBAQA0KICAgICByZXR1cm4gUVdlYkZyYW1lUHJpdmF0ZTo6a2l0KGZyYW1l
KTsKIH0KIAorI2lmIFVTRShKU0MpCiBzdGF0aWMgYm9vbCBzZXR1cFNjcmlwdENvbnRleHQoV2Vi
Q29yZTo6RWxlbWVudCogZWxlbWVudCwgSlNDOjpKU1ZhbHVlJiB0aGlzVmFsdWUsIFNjcmlwdFN0
YXRlKiYgc3RhdGUsIFNjcmlwdENvbnRyb2xsZXIqJiBzY3JpcHRDb250cm9sbGVyKQogewogICAg
IGlmICghZWxlbWVudCkKQEAgLTcyMSw4ICs3MzIsMjggQEANCiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KKyNlbHNlCitzdGF0aWMgYm9vbCBzZXR1cFNjcmlwdENvbnRleHQoV2ViQ29yZTo6RWxlbWVu
dCogZWxlbWVudCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JiB0aGlzVmFsdWUsIFNjcmlwdFN0YXRl
KiYgc3RhdGUsIFNjcmlwdENvbnRyb2xsZXIqJiBzY3JpcHRDb250cm9sbGVyKQoreworICAgIGlm
ICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gZWxlbWVudC0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAg
ICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdGF0ZSA9IG1haW5X
b3JsZFNjcmlwdFN0YXRlKGZyYW1lKTsKKyAgICAvLyBHZXQgVjggd3JhcHBlciBmb3IgRE9NIGVs
ZW1lbnQKKyAgICB0aGlzVmFsdWUgPSB0b1Y4KGZyYW1lLT5kb21XaW5kb3coKSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisjZW5kaWYKKworCiAvKiEKICAgICBFeGVjdXRlcyBcYSBzY3JpcHRTb3Vy
Y2Ugd2l0aCB0aGlzIGVsZW1lbnQgYXMgXGMgdGhpcyBvYmplY3QuCiAqLwpAQCAtNzMyLDEyICs3
NjMsMTYgQEANCiAgICAgICAgIHJldHVybiBRVmFyaWFudCgpOwogCiAgICAgU2NyaXB0U3RhdGUq
IHN0YXRlID0gMDsKKyNpZiBVU0UoSlNDKQogICAgIEpTQzo6SlNWYWx1ZSB0aGlzVmFsdWU7Cisj
ZWxzZQorICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0aGlzVmFsdWU7CisjZW5kaWYKICAgICBT
Y3JpcHRDb250cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyID0gMDsKIAogICAgIGlmICghc2V0dXBT
Y3JpcHRDb250ZXh0KG1fZWxlbWVudCwgdGhpc1ZhbHVlLCBzdGF0ZSwgc2NyaXB0Q29udHJvbGxl
cikpCiAgICAgICAgIHJldHVybiBRVmFyaWFudCgpOwotCisjaWYgVVNFKEpTQykKICAgICBKU0M6
OlNjb3BlQ2hhaW4mIHNjb3BlQ2hhaW4gPSBzdGF0ZS0+ZHluYW1pY0dsb2JhbE9iamVjdCgpLT5n
bG9iYWxTY29wZUNoYWluKCk7CiAgICAgSlNDOjpVU3RyaW5nIHNjcmlwdChyZWludGVycHJldF9j
YXN0X3B0cjxjb25zdCBVQ2hhcio+KHNjcmlwdFNvdXJjZS5kYXRhKCkpLCBzY3JpcHRTb3VyY2Uu
bGVuZ3RoKCkpOwogICAgIEpTQzo6Q29tcGxldGlvbiBjb21wbGV0aW9uID0gSlNDOjpldmFsdWF0
ZShzdGF0ZSwgc2NvcGVDaGFpbiwgSlNDOjptYWtlU291cmNlKHNjcmlwdCksIHRoaXNWYWx1ZSk7
CkBAIC03NTAsNiArNzg1LDI3IEBADQogCiAgICAgaW50IGRpc3RhbmNlID0gMDsKICAgICByZXR1
cm4gSlNDOjpCaW5kaW5nczo6Y29udmVydFZhbHVlVG9RVmFyaWFudChzdGF0ZSwgcmVzdWx0LCBR
TWV0YVR5cGU6OlZvaWQsICZkaXN0YW5jZSk7CisjZWxzZQorICAgIC8vIENyZWF0ZSBzY29wZSBo
YW5kbGVyCisgICAgdjg6OkhhbmRsZVNjb3BlIGhzOworICAgIC8vIEdldCBwcm94eSBmcm9tIHNj
cmlwdGNvbnRyb2xsZXIKKyAgICBWOFByb3h5KiBwcm94eSA9IHNjcmlwdENvbnRyb2xsZXItPnBy
b3h5KCk7CisgICAgLy8gQXNrIHRoZSBjb250ZXh0IGZyb20gcHJveHkKKyAgICB2ODo6SGFuZGxl
PHY4OjpDb250ZXh0PiBjb250ZXh0ID0gcHJveHktPmNvbnRleHQoKTsKKyAgICBpZiAoY29udGV4
dC5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBRVmFyaWFudCgpOworCisgICAgLy8gQ3JlYXRl
IHNjb3BlIGZvciB0aGUgY29udGV4dAorICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29wZShjb250
ZXh0KTsKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBvYmplY3QgPSBwcm94eS0+ZXZhbHVhdGUo
U2NyaXB0U291cmNlQ29kZShzY3JpcHRTb3VyY2UpLCBzdGF0aWNfY2FzdDxOb2RlKj4obV9lbGVt
ZW50KSk7CisKKyAgICBpZiAob2JqZWN0LklzRW1wdHkoKSkgeworICAgICAgICByZXR1cm4gUVZh
cmlhbnQoKTsKKyAgICB9CisgICAgU3RyaW5nIHJlc3VsdCA9IHY4VmFsdWVUb1dlYkNvcmVTdHJp
bmcob2JqZWN0KTsKKyAgICBpbnQgZGlzdGFuY2UgPSAwOworICAgIHJldHVybiBWODo6QmluZGlu
Z3M6OmNvbnZlcnRWYWx1ZVRvUVZhcmlhbnQob2JqZWN0LCBRTWV0YVR5cGU6OlZvaWQsICZkaXN0
YW5jZSk7CisjZW5kaWYKIH0KIAogLyohCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJlbGVtZW50
LmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJlbGVtZW50LmgJKHJldmlzaW9u
IDY2NjkyKQ0KKysrIFdlYktpdC9xdC9BcGkvcXdlYmVsZW1lbnQuaAkod29ya2luZyBjb3B5KQ0K
QEAgLTMyLDExICszMiwyMCBAQA0KICAgICBjbGFzcyBOb2RlOwogfQogCisKKyNpZiBkZWZpbmVk
KFdURl9VU0VfVjgpICYmIFdURl9VU0VfVjgKK25hbWVzcGFjZSBWOCB7CisgICAgbmFtZXNwYWNl
IEJpbmRpbmdzIHsKKyAgICBjbGFzcyBRdFdlYkVsZW1lbnRSdW50aW1lOworICAgIH0KK30KKyNl
bHNlCiBuYW1lc3BhY2UgSlNDIHsKLW5hbWVzcGFjZSBCaW5kaW5ncyB7CisgICAgbmFtZXNwYWNl
IEJpbmRpbmdzIHsKICAgICBjbGFzcyBRdFdlYkVsZW1lbnRSdW50aW1lOworICAgIH0KIH0KLX0K
KyNlbmRpZgogCiBRVF9CRUdJTl9OQU1FU1BBQ0UKIGNsYXNzIFFQYWludGVyOwpAQCAtMTYwLDcg
KzE2OSwxMiBAQA0KICAgICBmcmllbmQgY2xhc3MgUVdlYkhpdFRlc3RSZXN1bHQ7CiAgICAgZnJp
ZW5kIGNsYXNzIFFXZWJIaXRUZXN0UmVzdWx0UHJpdmF0ZTsKICAgICBmcmllbmQgY2xhc3MgUVdl
YlBhZ2U7CisKKyNpZiBkZWZpbmVkKFdURl9VU0VfVjgpICYmIFdURl9VU0VfVjgKKyAgICBmcmll
bmQgY2xhc3MgVjg6OkJpbmRpbmdzOjpRdFdlYkVsZW1lbnRSdW50aW1lOworI2Vsc2UKICAgICBm
cmllbmQgY2xhc3MgSlNDOjpCaW5kaW5nczo6UXRXZWJFbGVtZW50UnVudGltZTsKKyNlbmRpZgog
CiAgICAgUVdlYkVsZW1lbnRQcml2YXRlKiBkOwogICAgIFdlYkNvcmU6OkVsZW1lbnQqIG1fZWxl
bWVudDsKSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAkocmV2aXNpb24gNjY2OTIpDQorKysgV2ViS2l0
L3F0L0FwaS9xd2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMjEsOCArMjEsMTIgQEAN
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAicXdlYmZyYW1lLmgiCiAKKyNpZiBVU0Uo
SlNDKQogI2luY2x1ZGUgIkJyaWRnZS5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2Vsc2UK
KyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNlbmRpZgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgpAQCAtMzIs
MjMgKzM2LDM0IEBADQogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRl
ICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpZiBVU0UoSlNDKQogI2lu
Y2x1ZGUgIkdDQ29udHJvbGxlci5oIgorI2Vsc2UKKyNpbmNsdWRlICJWOEdDQ29udHJvbGxlci5o
IgorI2VuZGlmCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTE1l
dGFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkhUVFBQ
YXJzZXJzLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q29udHJvbGxlci5oIgorI2lmIFVTRShKU0MpCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKKyNlbHNlCisjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCisjaW5jbHVk
ZSAiVjhET01XaW5kb3dTaGVsbC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCisjaWYg
VVNFKEpTQykKICNpbmNsdWRlICJQdXRQcm9wZXJ0eVNsb3QuaCIKKyNlbmRpZgogI2luY2x1ZGUg
IlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKQEAgLTY0LDggKzc5LDEzIEBADQogI2luY2x1ZGUgIlRpbGVkQmFja2lu
Z1N0b3JlLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIK
KyNpZiBVU0UoSlNDKQogI2luY2x1ZGUgInF0X2luc3RhbmNlLmgiCiAjaW5jbHVkZSAicXRfcnVu
dGltZS5oIgorI2Vsc2UKKyNpbmNsdWRlICJxdF9pbnN0YW5jZXY4LmgiCisjaW5jbHVkZSAicXRf
cnVudGltZXY4LmgiCisjZW5kaWYKICNpbmNsdWRlICJxd2ViZWxlbWVudC5oIgogI2luY2x1ZGUg
InF3ZWJmcmFtZV9wLmgiCiAjaW5jbHVkZSAicXdlYnBhZ2UuaCIKQEAgLTc0LDggKzk0LDEwIEBA
DQogI2luY2x1ZGUgInF3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCiAjaW5jbHVkZSAicXdlYnNjcmlw
dHdvcmxkLmgiCiAjaW5jbHVkZSAicXdlYnNjcmlwdHdvcmxkX3AuaCIKKyNpZiBVU0UoSlNDKQog
I2luY2x1ZGUgInJ1bnRpbWVfb2JqZWN0LmgiCiAjaW5jbHVkZSAicnVudGltZV9yb290LmgiCisj
ZW5kaWYKICNpbmNsdWRlICJ3dGYvSGFzaE1hcC5oIgogI2luY2x1ZGUgPFFNdWx0aU1hcD4KICNp
bmNsdWRlIDxxZGVidWcuaD4KQEAgLTQ3Miw2ICs0OTQsNyBAQA0KIAogICAgIFRoZSBvd25lcnNo
aXAgb2YgXGEgb2JqZWN0IGlzIHNwZWNpZmllZCB1c2luZyBcYSBvd24uCiAqLworI2lmIFVTRShK
U0MpCiB2b2lkIFFXZWJGcmFtZTo6YWRkVG9KYXZhU2NyaXB0V2luZG93T2JqZWN0KGNvbnN0IFFT
dHJpbmcgJm5hbWUsIFFPYmplY3QgKm9iamVjdCwgUVNjcmlwdEVuZ2luZTo6VmFsdWVPd25lcnNo
aXAgb3duZXJzaGlwKQogewogICAgIGlmICghcGFnZSgpLT5zZXR0aW5ncygpLT50ZXN0QXR0cmli
dXRlKFFXZWJTZXR0aW5nczo6SmF2YXNjcmlwdEVuYWJsZWQpKQpAQCAtNDk4LDcgKzUyMSwzMiBA
QA0KICAgICBKU0M6OlB1dFByb3BlcnR5U2xvdCBzbG90OwogICAgIHdpbmRvdy0+cHV0KGV4ZWMs
IEpTQzo6SWRlbnRpZmllcihleGVjLCByZWludGVycHJldF9jYXN0X3B0cjxjb25zdCBVQ2hhcio+
KG5hbWUuY29uc3REYXRhKCkpLCBuYW1lLmxlbmd0aCgpKSwgcnVudGltZU9iamVjdCwgc2xvdCk7
CiB9CisjZWxzZQordm9pZCBRV2ViRnJhbWU6OmFkZFRvSmF2YVNjcmlwdFdpbmRvd09iamVjdChj
b25zdCBRU3RyaW5nICZuYW1lLCBRT2JqZWN0ICpvYmplY3QsIFFTY3JpcHRFbmdpbmU6OlZhbHVl
T3duZXJzaGlwIG93bmVyc2hpcCkKK3sKKyAgICBpZiAoIXBhZ2UoKS0+c2V0dGluZ3MoKS0+dGVz
dEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRFbmFibGVkKSkKKyAgICAgICAgcmV0
dXJuOwogCisgICAgLy8gUHVibGlzaCBRT2JqZWN0IGluIHY4IGlzb2xhdGVkIGNvbnRleHQKKyAg
ICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlX3Njb3BlOworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRl
eHQ+IHY4Q29udGV4dCA9IFY4UHJveHk6Om1haW5Xb3JsZENvbnRleHQoZC0+ZnJhbWUpOworICAg
IGlmICh2OENvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgdjg6OkNvbnRl
eHQ6OlNjb3BlIGNvbnh0ZXh0X3Njb3BlKHY4Q29udGV4dCk7CisgICAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IHdpbmRvd1ZhbHVlID0gdjhDb250ZXh0LT5HbG9iYWwoKS0+R2V0KHY4OjpTdHJpbmc6
Ok5ldygid2luZG93IikpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZGVzdCA9IAorICAg
ICAgICAod2luZG93VmFsdWUuSXNFbXB0eSgpIHx8ICF3aW5kb3dWYWx1ZS0+SXNPYmplY3QoKSkg
PyB2OENvbnRleHQtPkdsb2JhbCgpIDogd2luZG93VmFsdWUtPlRvT2JqZWN0KCk7CisgICAgZGVz
dC0+U2V0KHY4OjpTdHJpbmc6Ok5ldygKKyAgICAgICAgbmFtZS50b0xhdGluMSgpLmNvbnN0RGF0
YSgpKSwgCisgICAgICAgIFY4OjpCaW5kaW5nczo6UXRJbnN0YW5jZTo6Z2V0UXRJbnN0YW5jZSgK
KyAgICAgICAgICAgICAgICBvYmplY3QsIAorICAgICAgICAgICAgICAgIHY4Q29udGV4dCwgCisg
ICAgICAgICAgICAgICAgbmFtZSwgLy8gaGF2ZSB0byBwYXNzIG5hbWUgZm9yIHY4OjpGdW5jdGlv
blRlbXBsYXRlCisgICAgICAgICAgICAgICAgb3duZXJzaGlwKS0+Z2V0VjhPYmplY3QoKSk7Cit9
CisjZW5kaWYKKworCiAvKiEKICAgICBSZXR1cm5zIHRoZSBmcmFtZSdzIGNvbnRlbnQgYXMgSFRN
TCwgZW5jbG9zZWQgaW4gSFRNTCBhbmQgQk9EWSB0YWdzLgogCkBAIC0xMzg4LDkgKzE0MzYsMjIg
QEANCiAgICAgU2NyaXB0Q29udHJvbGxlciAqcHJveHkgPSBkLT5mcmFtZS0+c2NyaXB0KCk7CiAg
ICAgUVZhcmlhbnQgcmM7CiAgICAgaWYgKHByb3h5KSB7CisgICAgICAgIGludCBkaXN0YW5jZSA9
IDA7CisjaWYgVVNFKEpTQykKICAgICAgICAgSlNDOjpKU1ZhbHVlIHYgPSBkLT5mcmFtZS0+c2Ny
aXB0KCktPmV4ZWN1dGVTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRTb3VyY2UpKS5qc1Zh
bHVlKCk7Ci0gICAgICAgIGludCBkaXN0YW5jZSA9IDA7CisKICAgICAgICAgcmMgPSBKU0M6OkJp
bmRpbmdzOjpjb252ZXJ0VmFsdWVUb1FWYXJpYW50KHByb3h5LT5nbG9iYWxPYmplY3QobWFpblRo
cmVhZE5vcm1hbFdvcmxkKCkpLT5nbG9iYWxFeGVjKCksIHYsIFFNZXRhVHlwZTo6Vm9pZCwgJmRp
c3RhbmNlKTsKKyNlbHNlCisgICAgICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVfc2NvcGU7Cisg
ICAgICAgIC8vIEdldCBjb250ZXh0IGZyb20gdGhlIGZyYW1lCisgICAgICAgIHY4OjpIYW5kbGU8
djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IFY4UHJveHk6Om1haW5Xb3JsZENvbnRleHQoZC0+ZnJh
bWUpOworICAgICAgICBpZiAodjhDb250ZXh0LklzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVy
biByYzsKKyAgICAgICAgLy8gR2V0IHJvb3Qgb2JqZWN0IGZvciB0aGUgY29udGV4dAorICAgICAg
ICB2ODo6Q29udGV4dDo6U2NvcGUgY29ueHRleHRfc2NvcGUodjhDb250ZXh0KTsKKyAgICAgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHYgPSB2ODo6U2NyaXB0OjpDb21waWxlKHY4OjpTdHJpbmc6
Ok5ldyhzY3JpcHRTb3VyY2UudG9MYXRpbjEoKS5jb25zdERhdGEoKSkpLT5SdW4oKTsKKyAgICAg
ICAgcmMgPSBWODo6QmluZGluZ3M6OmNvbnZlcnRWYWx1ZVRvUVZhcmlhbnQodiwgUU1ldGFUeXBl
OjpWb2lkLCAmZGlzdGFuY2UpOworI2VuZGlmCiAgICAgfQogICAgIHJldHVybiByYzsKIH0KSW5k
ZXg6IFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDY2NjkyKQ0KKysrIFdlYktpdC9xdC9BcGkvcXdl
YnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMjYzLDcgKzI2Myw3IEBADQogICAgICwgaW5z
cGVjdG9ySXNJbnRlcm5hbE9ubHkoZmFsc2UpCiB7CiAgICAgV2ViQ29yZTo6SW5pdGlhbGl6ZUxv
Z2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0gICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7CisgICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogICAgIFdU
Rjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
c2V0TG9jYWxMb2FkUG9saWN5KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpBbGxvd0xvY2FsTG9h
ZHNGb3JMb2NhbEFuZFN1YnN0aXR1dGVEYXRhKTsKICNpZiBRVF9WRVJTSU9OIDwgUVRfVkVSU0lP
Tl9DSEVDSyg0LCA3LCAwKQpJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZw0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2NjkyKQ0KKysrIFdlYktpdC9xdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkNCkBAIC0xLDMgKzEsMjMgQEANCisyMDEwLTA5LTAyICBW
bGFkIEJ1cmxpayAgPHZvbG9kaW1pci5idXJsaWtAbm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFY4IHBvcnQgZm9yIFFUIHBsYXRmb3Jt
OiBRVCBBUEkgaW1wbGVtZW50YXRpb24gY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxNDgKKworICAgICAgICBWOCBJbXBsZW1lbnRhdGlv
biBvZiBRV2ViRnJhbWU6OmFkZFRvSmF2YVNjcmlwdFdpbmRvd09iamVjdCgpIGFuZAorICAgICAg
ICBRV2ViRnJhbWU6OmV2YWx1YXRlSmF2YVNjcmlwdCgpCisKKyAgICAgICAgKiBBcGkvcXdlYmVs
ZW1lbnQuY3BwOgorICAgICAgICAoc2V0dXBTY3JpcHRDb250ZXh0KToKKyAgICAgICAgKFFXZWJF
bGVtZW50OjpldmFsdWF0ZUphdmFTY3JpcHQpOgorICAgICAgICAqIEFwaS9xd2ViZWxlbWVudC5o
OgorICAgICAgICAqIEFwaS9xd2ViZnJhbWUuY3BwOgorICAgICAgICAoUVdlYkZyYW1lOjphZGRU
b0phdmFTY3JpcHRXaW5kb3dPYmplY3QpOgorICAgICAgICAoUVdlYkZyYW1lOjpldmFsdWF0ZUph
dmFTY3JpcHQpOgorICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6IFVzZSBTY3JpcHRDb250cm9s
bGVyIGNsYXNzIGZvciBpbml0aWFsaXplVGhyZWFkaW5nKCkKKyAgICAgICAgKFFXZWJQYWdlUHJp
dmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKwogMjAxMC0wOS0wMiAgQW5kcmVhcyBLbGluZyAgPGFu
ZHJlYXMua2xpbmdAbm9raWEuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IFNpbW9u
IEhhdXNtYW5uLgo=
</data>
<flag name="review"
          id="55469"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66577</attachid>
            <date>2010-09-03 18:14:47 -0700</date>
            <delta_ts>2010-09-05 18:03:39 -0700</delta_ts>
            <desc>Review comments changes</desc>
            <filename>v8_qt_api.patch</filename>
            <type>text/plain</type>
            <size>10210</size>
            <attacher name="Vlad">vladbph</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYmVsZW1lbnQuY3BwDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2Vi
S2l0L3F0L0FwaS9xd2ViZWxlbWVudC5jcHAJKHJldmlzaW9uIDY2NzM1KQ0KKysrIFdlYktpdC9x
dC9BcGkvcXdlYmVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpDQpAQCAtMzEsMjMgKzMxLDMzIEBA
DQogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgog
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaWYgVVNFKEpTQykKICNpbmNsdWRlICJKU0dsb2Jh
bE9iamVjdC5oIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU09iamVj
dC5oIgorI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCisjaW5jbHVkZSA8cGFyc2VyL1Nv
dXJjZUNvZGUuaD4KKyNpbmNsdWRlICJxdF9ydW50aW1lLmgiCisjZWxpZiBVU0UoVjgpCisjaW5j
bHVkZSAiVjhET01XaW5kb3cuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJx
dF9pbnN0YW5jZXY4LmgiCisjZW5kaWYKICNpbmNsdWRlICJOb2RlTGlzdC5oIgotI2luY2x1ZGUg
IlByb3BlcnR5TmFtZUFycmF5LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRl
ICJTdGF0aWNOb2RlTGlzdC5oIgotI2luY2x1ZGUgInF0X3J1bnRpbWUuaCIKICNpbmNsdWRlICJx
d2ViZnJhbWUuaCIKICNpbmNsdWRlICJxd2ViZnJhbWVfcC5oIgogI2luY2x1ZGUgInJ1bnRpbWVf
cm9vdC5oIgotI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VDb2RlLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2luY2x1ZGUgPFFQYWlu
dGVyPgogCisjaWYgVVNFKFY4KQordXNpbmcgbmFtZXNwYWNlIFY4OjpCaW5kaW5nczsKKyNlbmRp
ZgorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgUVdlYkVsZW1lbnRQcml2YXRl
IHsKQEAgLTY5NCw2ICs3MDQsNyBAQA0KICAgICByZXR1cm4gUVdlYkZyYW1lUHJpdmF0ZTo6a2l0
KGZyYW1lKTsKIH0KIAorI2lmIFVTRShKU0MpCiBzdGF0aWMgYm9vbCBzZXR1cFNjcmlwdENvbnRl
eHQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCwgSlNDOjpKU1ZhbHVlJiB0aGlzVmFsdWUsIFNj
cmlwdFN0YXRlKiYgc3RhdGUsIFNjcmlwdENvbnRyb2xsZXIqJiBzY3JpcHRDb250cm9sbGVyKQog
ewogICAgIGlmICghZWxlbWVudCkKQEAgLTcyMSw4ICs3MzIsMjggQEANCiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KKyNlbHNlCitzdGF0aWMgYm9vbCBzZXR1cFNjcmlwdENvbnRleHQoV2ViQ29yZTo6
RWxlbWVudCogZWxlbWVudCwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+JiB0aGlzVmFsdWUsIFNjcmlw
dFN0YXRlKiYgc3RhdGUsIFNjcmlwdENvbnRyb2xsZXIqJiBzY3JpcHRDb250cm9sbGVyKQorewor
ICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gZWxlbWVudC0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUo
KTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdGF0ZSA9
IG1haW5Xb3JsZFNjcmlwdFN0YXRlKGZyYW1lKTsKKyAgICAvLyBHZXQgVjggd3JhcHBlciBmb3Ig
RE9NIGVsZW1lbnQKKyAgICB0aGlzVmFsdWUgPSB0b1Y4KGZyYW1lLT5kb21XaW5kb3coKSk7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKworCiAvKiEKICAgICBFeGVjdXRlcyBcYSBzY3Jp
cHRTb3VyY2Ugd2l0aCB0aGlzIGVsZW1lbnQgYXMgXGMgdGhpcyBvYmplY3QuCiAqLwpAQCAtNzMy
LDEyICs3NjMsMTYgQEANCiAgICAgICAgIHJldHVybiBRVmFyaWFudCgpOwogCiAgICAgU2NyaXB0
U3RhdGUqIHN0YXRlID0gMDsKKyNpZiBVU0UoSlNDKQogICAgIEpTQzo6SlNWYWx1ZSB0aGlzVmFs
dWU7CisjZWxpZiBVU0UoVjgpCisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRoaXNWYWx1ZTsK
KyNlbmRpZgogICAgIFNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSAwOwogCiAg
ICAgaWYgKCFzZXR1cFNjcmlwdENvbnRleHQobV9lbGVtZW50LCB0aGlzVmFsdWUsIHN0YXRlLCBz
Y3JpcHRDb250cm9sbGVyKSkKICAgICAgICAgcmV0dXJuIFFWYXJpYW50KCk7Ci0KKyNpZiBVU0Uo
SlNDKQogICAgIEpTQzo6U2NvcGVDaGFpbiYgc2NvcGVDaGFpbiA9IHN0YXRlLT5keW5hbWljR2xv
YmFsT2JqZWN0KCktPmdsb2JhbFNjb3BlQ2hhaW4oKTsKICAgICBKU0M6OlVTdHJpbmcgc2NyaXB0
KHJlaW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IFVDaGFyKj4oc2NyaXB0U291cmNlLmRhdGEoKSks
IHNjcmlwdFNvdXJjZS5sZW5ndGgoKSk7CiAgICAgSlNDOjpDb21wbGV0aW9uIGNvbXBsZXRpb24g
PSBKU0M6OmV2YWx1YXRlKHN0YXRlLCBzY29wZUNoYWluLCBKU0M6Om1ha2VTb3VyY2Uoc2NyaXB0
KSwgdGhpc1ZhbHVlKTsKQEAgLTc1MCw2ICs3ODUsMjYgQEANCiAKICAgICBpbnQgZGlzdGFuY2Ug
PSAwOwogICAgIHJldHVybiBKU0M6OkJpbmRpbmdzOjpjb252ZXJ0VmFsdWVUb1FWYXJpYW50KHN0
YXRlLCByZXN1bHQsIFFNZXRhVHlwZTo6Vm9pZCwgJmRpc3RhbmNlKTsKKyNlbGlmIFVTRShWOCkK
KyAgICAvLyBDcmVhdGUgc2NvcGUgaGFuZGxlcgorICAgIHY4OjpIYW5kbGVTY29wZSBoczsKKyAg
ICAvLyBHZXQgcHJveHkgZnJvbSBzY3JpcHRjb250cm9sbGVyCisgICAgVjhQcm94eSogcHJveHkg
PSBzY3JpcHRDb250cm9sbGVyLT5wcm94eSgpOworICAgIC8vIEFzayB0aGUgY29udGV4dCBmcm9t
IHByb3h5CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCA9IHByb3h5LT5jb250
ZXh0KCk7CisgICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gUVZhcmlh
bnQoKTsKKworICAgIC8vIENyZWF0ZSBzY29wZSBmb3IgdGhlIGNvbnRleHQKKyAgICB2ODo6Q29u
dGV4dDo6U2NvcGUgc2NvcGUoY29udGV4dCk7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gb2Jq
ZWN0ID0gcHJveHktPmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0U291cmNlKSwgc3Rh
dGljX2Nhc3Q8Tm9kZSo+KG1fZWxlbWVudCkpOworCisgICAgaWYgKG9iamVjdC5Jc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBRVmFyaWFudCgpOworICAgIFN0cmluZyByZXN1bHQgPSB2OFZhbHVl
VG9XZWJDb3JlU3RyaW5nKG9iamVjdCk7CisgICAgaW50IGRpc3RhbmNlID0gMDsKKyAgICByZXR1
cm4gVjg6OkJpbmRpbmdzOjpjb252ZXJ0VmFsdWVUb1FWYXJpYW50KG9iamVjdCwgUU1ldGFUeXBl
OjpWb2lkLCAmZGlzdGFuY2UpOworI2VuZGlmCiB9CiAKIC8qIQpJbmRleDogV2ViS2l0L3F0L0Fw
aS9xd2ViZWxlbWVudC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L3F0L0FwaS9xd2ViZWxlbWVu
dC5oCShyZXZpc2lvbiA2NjczNSkNCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJlbGVtZW50LmgJKHdv
cmtpbmcgY29weSkNCkBAIC0zMiwxMSArMzIsMjAgQEANCiAgICAgY2xhc3MgTm9kZTsKIH0KIAor
CisjaWYgZGVmaW5lZChXVEZfVVNFX1Y4KSAmJiBXVEZfVVNFX1Y4CituYW1lc3BhY2UgVjggewor
ICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CisgICAgY2xhc3MgUXRXZWJFbGVtZW50UnVudGltZTsK
KyAgICB9Cit9CisjZWxzZQogbmFtZXNwYWNlIEpTQyB7Ci1uYW1lc3BhY2UgQmluZGluZ3Mgewor
ICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAgICAgY2xhc3MgUXRXZWJFbGVtZW50UnVudGltZTsK
KyAgICB9CiB9Ci19CisjZW5kaWYKIAogUVRfQkVHSU5fTkFNRVNQQUNFCiBjbGFzcyBRUGFpbnRl
cjsKQEAgLTE2MCw3ICsxNjksMTIgQEANCiAgICAgZnJpZW5kIGNsYXNzIFFXZWJIaXRUZXN0UmVz
dWx0OwogICAgIGZyaWVuZCBjbGFzcyBRV2ViSGl0VGVzdFJlc3VsdFByaXZhdGU7CiAgICAgZnJp
ZW5kIGNsYXNzIFFXZWJQYWdlOworCisjaWYgZGVmaW5lZChXVEZfVVNFX1Y4KSAmJiBXVEZfVVNF
X1Y4CisgICAgZnJpZW5kIGNsYXNzIFY4OjpCaW5kaW5nczo6UXRXZWJFbGVtZW50UnVudGltZTsK
KyNlbHNlCiAgICAgZnJpZW5kIGNsYXNzIEpTQzo6QmluZGluZ3M6OlF0V2ViRWxlbWVudFJ1bnRp
bWU7CisjZW5kaWYKIAogICAgIFFXZWJFbGVtZW50UHJpdmF0ZSogZDsKICAgICBXZWJDb3JlOjpF
bGVtZW50KiBtX2VsZW1lbnQ7CkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHANCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0NCi0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDY2NzM1
KQ0KKysrIFdlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTIx
LDggKzIxLDEyIEBADQogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgInF3ZWJmcmFtZS5o
IgogCisjaWYgVVNFKEpTQykKICNpbmNsdWRlICJCcmlkZ2UuaCIKICNpbmNsdWRlICJDYWxsRnJh
bWUuaCIKKyNlbGlmIFVTRShWOCkKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRl
ICJEcmFnRGF0YS5oIgpAQCAtMzIsMjMgKzM2LDM0IEBADQogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKKyNpZiBVU0UoSlNDKQogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgorI2VsaWYgVVNFKFY4
KQorI2luY2x1ZGUgIlY4R0NDb250cm9sbGVyLmgiCisjZW5kaWYKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKICNpbmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRU
ZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJJY29uRGF0
YWJhc2UuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaWYgVVNFKEpTQykK
ICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIK
ICNpbmNsdWRlICJKU0xvY2suaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgorI2VsaWYgVVNFKFY4
KQorI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIlY4RE9NV2luZG93U2hlbGwu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVu
dC5oIgogI2luY2x1ZGUgIlByaW50Q29udGV4dC5oIgorI2lmIFVTRShKU0MpCiAjaW5jbHVkZSAi
UHV0UHJvcGVydHlTbG90LmgiCisjZW5kaWYKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC02
NCw4ICs3OSwxMyBAQA0KICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaWYgVVNFKEpTQykKICNpbmNs
dWRlICJxdF9pbnN0YW5jZS5oIgogI2luY2x1ZGUgInF0X3J1bnRpbWUuaCIKKyNlbGlmIFVTRShW
OCkKKyNpbmNsdWRlICJxdF9pbnN0YW5jZXY4LmgiCisjaW5jbHVkZSAicXRfcnVudGltZXY4Lmgi
CisjZW5kaWYKICNpbmNsdWRlICJxd2ViZWxlbWVudC5oIgogI2luY2x1ZGUgInF3ZWJmcmFtZV9w
LmgiCiAjaW5jbHVkZSAicXdlYnBhZ2UuaCIKQEAgLTc0LDggKzk0LDEwIEBADQogI2luY2x1ZGUg
InF3ZWJzZWN1cml0eW9yaWdpbl9wLmgiCiAjaW5jbHVkZSAicXdlYnNjcmlwdHdvcmxkLmgiCiAj
aW5jbHVkZSAicXdlYnNjcmlwdHdvcmxkX3AuaCIKKyNpZiBVU0UoSlNDKQogI2luY2x1ZGUgInJ1
bnRpbWVfb2JqZWN0LmgiCiAjaW5jbHVkZSAicnVudGltZV9yb290LmgiCisjZW5kaWYKICNpbmNs
dWRlICJ3dGYvSGFzaE1hcC5oIgogI2luY2x1ZGUgPFFNdWx0aU1hcD4KICNpbmNsdWRlIDxxZGVi
dWcuaD4KQEAgLTQ3Niw3ICs0OTgsNyBAQA0KIHsKICAgICBpZiAoIXBhZ2UoKS0+c2V0dGluZ3Mo
KS0+dGVzdEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkphdmFzY3JpcHRFbmFibGVkKSkKICAgICAg
ICAgcmV0dXJuOwotCisjaWYgVVNFKEpTQykKICAgICBKU0M6OkpTTG9jayBsb2NrKEpTQzo6U2ls
ZW5jZUFzc2VydGlvbnNPbmx5KTsKICAgICBKU0RPTVdpbmRvdyogd2luZG93ID0gdG9KU0RPTVdp
bmRvdyhkLT5mcmFtZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwogICAgIEpTQzo6QmluZGlu
Z3M6OlJvb3RPYmplY3QqIHJvb3Q7CkBAIC00OTcsNiArNTE5LDI0IEBADQogCiAgICAgSlNDOjpQ
dXRQcm9wZXJ0eVNsb3Qgc2xvdDsKICAgICB3aW5kb3ctPnB1dChleGVjLCBKU0M6OklkZW50aWZp
ZXIoZXhlYywgcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgVUNoYXIqPihuYW1lLmNvbnN0RGF0
YSgpKSwgbmFtZS5sZW5ndGgoKSksIHJ1bnRpbWVPYmplY3QsIHNsb3QpOworI2VsaWYgVVNFKFY4
KQorICAgIC8vIFB1Ymxpc2ggUU9iamVjdCBpbiB2OCBpc29sYXRlZCBjb250ZXh0CisgICAgdjg6
OkhhbmRsZVNjb3BlIGhhbmRsZXNjb3BlOworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4
Q29udGV4dCA9IFY4UHJveHk6Om1haW5Xb3JsZENvbnRleHQoZC0+ZnJhbWUpOworICAgIGlmICh2
OENvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgdjg6OkNvbnRleHQ6OlNj
b3BlIGNvbnh0ZXh0c2NvcGUodjhDb250ZXh0KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
d2luZG93VmFsdWUgPSB2OENvbnRleHQtPkdsb2JhbCgpLT5HZXQodjg6OlN0cmluZzo6TmV3KCJ3
aW5kb3ciKSk7CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBkZXN0ID0gCisgICAgICAgICh3
aW5kb3dWYWx1ZS5Jc0VtcHR5KCkgfHwgIXdpbmRvd1ZhbHVlLT5Jc09iamVjdCgpKSA/IHY4Q29u
dGV4dC0+R2xvYmFsKCkgOiB3aW5kb3dWYWx1ZS0+VG9PYmplY3QoKTsKKyAgICBkZXN0LT5TZXQo
djg6OlN0cmluZzo6TmV3KAorICAgICAgICBuYW1lLnRvTGF0aW4xKCkuY29uc3REYXRhKCkpLCAK
KyAgICAgICAgVjg6OkJpbmRpbmdzOjpRdEluc3RhbmNlOjpnZXRRdEluc3RhbmNlKAorICAgICAg
ICAgICAgICAgIG9iamVjdCwgCisgICAgICAgICAgICAgICAgdjhDb250ZXh0LCAKKyAgICAgICAg
ICAgICAgICBuYW1lLCAvLyBoYXZlIHRvIHBhc3MgbmFtZSBmb3Igdjg6OkZ1bmN0aW9uVGVtcGxh
dGUKKyAgICAgICAgICAgICAgICBvd25lcnNoaXApLT5nZXRWOE9iamVjdCgpKTsKKyNlbmRpZgog
fQogCiAvKiEKQEAgLTEzODgsOSArMTQyOCwyMiBAQA0KICAgICBTY3JpcHRDb250cm9sbGVyICpw
cm94eSA9IGQtPmZyYW1lLT5zY3JpcHQoKTsKICAgICBRVmFyaWFudCByYzsKICAgICBpZiAocHJv
eHkpIHsKKyAgICAgICAgaW50IGRpc3RhbmNlID0gMDsKKyNpZiBVU0UoSlNDKQogICAgICAgICBK
U0M6OkpTVmFsdWUgdiA9IGQtPmZyYW1lLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlwdChTY3JpcHRT
b3VyY2VDb2RlKHNjcmlwdFNvdXJjZSkpLmpzVmFsdWUoKTsKLSAgICAgICAgaW50IGRpc3RhbmNl
ID0gMDsKKwogICAgICAgICByYyA9IEpTQzo6QmluZGluZ3M6OmNvbnZlcnRWYWx1ZVRvUVZhcmlh
bnQocHJveHktPmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSktPmdsb2JhbEV4
ZWMoKSwgdiwgUU1ldGFUeXBlOjpWb2lkLCAmZGlzdGFuY2UpOworI2VsaWYgVVNFKFY4KQorICAg
ICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlc2NvcGU7CisgICAgICAgIC8vIEdldCBjb250ZXh0
IGZyb20gdGhlIGZyYW1lCisgICAgICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4
dCA9IFY4UHJveHk6Om1haW5Xb3JsZENvbnRleHQoZC0+ZnJhbWUpOworICAgICAgICBpZiAodjhD
b250ZXh0LklzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgLy8gR2V0
IHJvb3Qgb2JqZWN0IGZvciB0aGUgY29udGV4dAorICAgICAgICB2ODo6Q29udGV4dDo6U2NvcGUg
Y29ueHRleHRzY29wZSh2OENvbnRleHQpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
diA9IHY4OjpTY3JpcHQ6OkNvbXBpbGUodjg6OlN0cmluZzo6TmV3KHNjcmlwdFNvdXJjZS50b0xh
dGluMSgpLmNvbnN0RGF0YSgpKSktPlJ1bigpOworICAgICAgICByYyA9IFY4OjpCaW5kaW5nczo6
Y29udmVydFZhbHVlVG9RVmFyaWFudCh2LCBRTWV0YVR5cGU6OlZvaWQsICZkaXN0YW5jZSk7Cisj
ZW5kaWYKICAgICB9CiAgICAgcmV0dXJuIHJjOwogfQpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAkocmV2
aXNpb24gNjY3MzUpDQorKysgV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkNCkBAIC0yNjMsNyArMjYzLDcgQEANCiAgICAgLCBpbnNwZWN0b3JJc0ludGVybmFsT25seShm
YWxzZSkKIHsKICAgICBXZWJDb3JlOjpJbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkoKTsKLSAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyAgICBTY3JpcHRDb250cm9s
bGVyOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVh
ZCgpOwogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpzZXRMb2NhbExvYWRQb2xpY3koV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93TG9jYWxMb2Fkc0ZvckxvY2FsQW5kU3Vic3RpdHV0
ZURhdGEpOwogI2lmIFFUX1ZFUlNJT04gPCBRVF9WRVJTSU9OX0NIRUNLKDQsIDcsIDApCkluZGV4
OiBXZWJLaXQvcXQvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViS2l0L3F0L0NoYW5nZUxv
ZwkocmV2aXNpb24gNjY3MzUpDQorKysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQ0KQEAgLTEsMyArMSwyMyBAQA0KKzIwMTAtMDktMDMgIFZsYWQgQnVybGlrICA8dm9sb2RpbWly
LmJ1cmxpa0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW1F0XSBWOCBwb3J0IGZvciBRVCBwbGF0Zm9ybTogUVQgQVBJIGltcGxlbWVu
dGF0aW9uIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1MTQ4CisKKyAgICAgICAgVjggSW1wbGVtZW50YXRpb24gb2YgUVdlYkZyYW1lOjph
ZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3QoKQorICAgICAgICBhbmQgUVdlYkZyYW1lOjpldmFs
dWF0ZUphdmFTY3JpcHQoKQorCisgICAgICAgICogQXBpL3F3ZWJlbGVtZW50LmNwcDoKKyAgICAg
ICAgKHNldHVwU2NyaXB0Q29udGV4dCk6IEpTQyBhbmQgVjggdmFyaWF0aW9ucworICAgICAgICAo
UVdlYkVsZW1lbnQ6OmV2YWx1YXRlSmF2YVNjcmlwdCk6CisgICAgICAgICogQXBpL3F3ZWJlbGVt
ZW50Lmg6CisgICAgICAgICogQXBpL3F3ZWJmcmFtZS5jcHA6IFFPYmplY3QgaW5qZWN0aW9uIHRv
IFY4IHdvcmxkCisgICAgICAgIChRV2ViRnJhbWU6OmFkZFRvSmF2YVNjcmlwdFdpbmRvd09iamVj
dCk6CisgICAgICAgIChRV2ViRnJhbWU6OmV2YWx1YXRlSmF2YVNjcmlwdCk6CisgICAgICAgICog
QXBpL3F3ZWJwYWdlLmNwcDogVXNlIFNjcmlwdENvbnRyb2xsZXIgdHlwZSBkZWZpbml0aW9ucyBp
bnN0ZWFkIG9mIGRpcmVjdCByZWZlcmVuY2VzIHRvIEpTQyBvciBWOAorICAgICAgICAoUVdlYlBh
Z2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUpOgorCiAyMDEwLTA5LTAyICBZdXJ5IFNlbWlraGF0
c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZl
bGRtYW4uCg==
</data>
<flag name="review"
          id="55627"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>