<?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>109276</bug_id>
          
          <creation_ts>2013-02-08 02:31:27 -0800</creation_ts>
          <short_desc>[EFL][WK2] WKViewCreate*() API should not accept NULL parameters</short_desc>
          <delta_ts>2013-03-20 06:07: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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>112794</dup_id>
          
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828362</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-08 02:31:27 -0800</bug_when>
    <thetext>WKViewCreate*() C API in EFL currently allows the user to pass NULL parameters for context and page group. We should prevent that to clarify the behavior and make it more consistent with other C API functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828391</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-08 03:23:57 -0800</bug_when>
    <thetext>This patch is inspired by Benjamin&apos;s comment at:
https://bugs.webkit.org/show_bug.cgi?id=107820#c14</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828408</commentid>
    <comment_count>2</comment_count>
      <attachid>187283</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-08 03:54:15 -0800</bug_when>
    <thetext>Created attachment 187283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828413</commentid>
    <comment_count>3</comment_count>
      <attachid>187283</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-08 04:06:37 -0800</bug_when>
    <thetext>Comment on attachment 187283
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:32
&gt; +    Evas_Object* evasObject = EwkView::createEvasObject(canvas, EwkContext::create(contextRef), pageGroupRef, behavior);

this cannot return &apos;0&apos; any more, right? So the following &apos;if (!evasObject)&apos; should be either removed or substituted with assertion.

&gt; Source/WebKit2/UIProcess/WebContext.h:145
&gt; +    WebPageGroup* defaultPageGroup() { return m_defaultPageGroup.get(); }

PassRefPtr&lt;WebPageGroup&gt; defaultPageGroup() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828418</commentid>
    <comment_count>4</comment_count>
      <attachid>187283</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-08 04:14:00 -0800</bug_when>
    <thetext>Comment on attachment 187283
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:32
&gt;&gt; +    Evas_Object* evasObject = EwkView::createEvasObject(canvas, EwkContext::create(contextRef), pageGroupRef, behavior);
&gt; 
&gt; this cannot return &apos;0&apos; any more, right? So the following &apos;if (!evasObject)&apos; should be either removed or substituted with assertion.

It can, if toSmartData(evasObject) returns NULL.

&gt;&gt; Source/WebKit2/UIProcess/WebContext.h:145
&gt;&gt; +    WebPageGroup* defaultPageGroup() { return m_defaultPageGroup.get(); }
&gt; 
&gt; PassRefPtr&lt;WebPageGroup&gt; defaultPageGroup() ?

This is consistent with other getters in this class. For e.g.
WebIconDatabase* iconDatabase() const { return m_iconDatabase.get(); }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828428</commentid>
    <comment_count>5</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-08 04:32:06 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 187283 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187283&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:32
&gt; &gt;&gt; +    Evas_Object* evasObject = EwkView::createEvasObject(canvas, EwkContext::create(contextRef), pageGroupRef, behavior);
&gt; &gt; 
&gt; &gt; this cannot return &apos;0&apos; any more, right? So the following &apos;if (!evasObject)&apos; should be either removed or substituted with assertion.
&gt; 
&gt; It can, if toSmartData(evasObject) returns NULL.
&gt; 
So don&apos;t you think it&apos;s worth adding
--- a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
@@ -291,12 +291,7 @@ Evas_Object* EwkView::createEvasObject(Evas* canvas, Evas_Smart* smart, PassRefP
     EINA_SAFETY_ON_NULL_RETURN_VAL(evasObject, 0);
 
     Ewk_View_Smart_Data* smartData = toSmartData(evasObject);
-    if (!smartData) {
-        evas_object_del(evasObject);
-        return 0;
-    }
-
-    ASSERT(!smartData-&gt;priv);
+    ASSERT(smartData &amp;&amp; !smartData-&gt;priv);

to fix it? :) 

(well, not sure on whether it&apos;s within the scope of the patch, but this also would make sure that smart data had been set at EwkView::handleEvasObjectAdd which has to be right.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828436</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-08 04:45:43 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 187283 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187283&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit2/UIProcess/API/C/efl/WKView.cpp:32
&gt; &gt; &gt;&gt; +    Evas_Object* evasObject = EwkView::createEvasObject(canvas, EwkContext::create(contextRef), pageGroupRef, behavior);
&gt; &gt; &gt; 
&gt; &gt; &gt; this cannot return &apos;0&apos; any more, right? So the following &apos;if (!evasObject)&apos; should be either removed or substituted with assertion.
&gt; &gt; 
&gt; &gt; It can, if toSmartData(evasObject) returns NULL.
&gt; &gt; 
&gt; So don&apos;t you think it&apos;s worth adding
&gt; --- a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
&gt; +++ b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
&gt; @@ -291,12 +291,7 @@ Evas_Object* EwkView::createEvasObject(Evas* canvas, Evas_Smart* smart, PassRefP
&gt;      EINA_SAFETY_ON_NULL_RETURN_VAL(evasObject, 0);
&gt; 
&gt;      Ewk_View_Smart_Data* smartData = toSmartData(evasObject);
&gt; -    if (!smartData) {
&gt; -        evas_object_del(evasObject);
&gt; -        return 0;
&gt; -    }
&gt; -
&gt; -    ASSERT(!smartData-&gt;priv);
&gt; +    ASSERT(smartData &amp;&amp; !smartData-&gt;priv);
&gt; 
&gt; to fix it? :) 
&gt; 
&gt; (well, not sure on whether it&apos;s within the scope of the patch, but this also would make sure that smart data had been set at EwkView::handleEvasObjectAdd which has to be right.)

Probably out of scope for this patch but it sounds like a good idea to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828644</commentid>
    <comment_count>7</comment_count>
      <attachid>187283</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-08 09:49:23 -0800</bug_when>
    <thetext>Comment on attachment 187283
Patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/WebContext.h:145
&gt;&gt;&gt; +    WebPageGroup* defaultPageGroup() { return m_defaultPageGroup.get(); }
&gt;&gt; 
&gt;&gt; PassRefPtr&lt;WebPageGroup&gt; defaultPageGroup() ?
&gt; 
&gt; This is consistent with other getters in this class. For e.g.
&gt; WebIconDatabase* iconDatabase() const { return m_iconDatabase.get(); }

PassRefPtr means that ownership is being transferred, and it&apos;s an optimization for this case. Using it here would be less efficient than a plain pointer, and misleading for readers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828646</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-08 09:52:28 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 187283 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187283&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/WebContext.h:145
&gt; &gt;&gt;&gt; +    WebPageGroup* defaultPageGroup() { return m_defaultPageGroup.get(); }
&gt; &gt;&gt; 
&gt; &gt;&gt; PassRefPtr&lt;WebPageGroup&gt; defaultPageGroup() ?
&gt; &gt; 
&gt; &gt; This is consistent with other getters in this class. For e.g.
&gt; &gt; WebIconDatabase* iconDatabase() const { return m_iconDatabase.get(); }
&gt; 
&gt; PassRefPtr means that ownership is being transferred, and it&apos;s an optimization for this case. Using it here would be less efficient than a plain pointer, and misleading for readers.

Thanks for the explanation Alexey!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828742</commentid>
    <comment_count>9</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-08 13:38:01 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 187283 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187283&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/WebContext.h:145
&gt; &gt; &gt;&gt;&gt; +    WebPageGroup* defaultPageGroup() { return m_defaultPageGroup.get(); }
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; PassRefPtr&lt;WebPageGroup&gt; defaultPageGroup() ?
&gt; &gt; &gt; 
&gt; &gt; &gt; This is consistent with other getters in this class. For e.g.
&gt; &gt; &gt; WebIconDatabase* iconDatabase() const { return m_iconDatabase.get(); }
&gt; &gt; 
&gt; &gt; PassRefPtr means that ownership is being transferred, and it&apos;s an optimization for this case. Using it here would be less efficient than a plain pointer, and misleading for readers.
&gt; 
&gt; Thanks for the explanation Alexey!
+1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829391</commentid>
    <comment_count>10</comment_count>
      <attachid>187283</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-10 18:11:16 -0800</bug_when>
    <thetext>Comment on attachment 187283
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKContext.cpp:81
&gt; +WKPageGroupRef WKContextGetDefaultPageGroup(WKContextRef contextRef)
&gt; +{
&gt; +    return toAPI(toImpl(contextRef)-&gt;defaultPageGroup());
&gt; +}
&gt; +

Hum, this looks like fixing one of the EFL quirks by adding an new EFL quirk. :(

If anything, I&apos;d rather get rid of the default page group. I&apos;ll have to look into that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>859300</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-03-20 06:06:30 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 112794 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187283</attachid>
            <date>2013-02-08 03:54:15 -0800</date>
            <delta_ts>2013-03-20 06:06:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>109276_null_pagegroup.patch</filename>
            <type>text/plain</type>
            <size>11325</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2OTlhMjc3Li4wOWI3MTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTMtMDItMDggIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gV0tWaWV3Q3JlYXRlKigpIEFQSSBzaG91bGQgbm90
IGFjY2VwdCBOVUxMIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTI3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZSBXS1ZpZXdDcmVhdGUqKCkgQyBBUEkgZnVuY3Rpb25zIHNv
IHRoYXQgdGhleSBubyBsb25nZXIgYWNjZXB0CisgICAgICAgIE5VTEwgcGFyYW1ldGVycy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250
ZXh0R2V0RGVmYXVsdFBhZ2VHcm91cCk6IEFkZCBuZXcgQyBBUEkgdG8gcmV0cmlldmUgdGhlIGRl
ZmF1bHQKKyAgICAgICAgcGFnZSBncm91cCBmcm9tIHRoZSBjb250ZXh0LgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZs
L1dLVmlldy5jcHA6IFVwZGF0ZSBXS1ZpZXdDcmVhdGUqKCkgQyBBUEkgZnVuY3Rpb25zCisgICAg
ICAgIHNvIHRoYXQgdGhleSBubyBsb25nZXIgYWNjZXB0IE5VTEwgcGFyYW1ldGVycy4KKyAgICAg
ICAgKGNyZWF0ZVdLVmlldyk6CisgICAgICAgIChXS1ZpZXdDcmVhdGUpOgorICAgICAgICAoV0tW
aWV3Q3JlYXRlV2l0aEZpeGVkTGF5b3V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OkV3a1ZpZXcpOiBVcGRhdGUgY29uc3RydWN0
b3IgYW5kIGZhY3RvcnkgbWV0aG9kcyB0byB0YWtlIGludG8KKyAgICAgICAgYWNjb3VudCB0aGUg
ZmFjdCB0aGF0IHRoZSBXS1BhZ2VHcm91cFJlZiBwYXJhbWV0ZXIgY2FuIG5vIGxvbmdlciBiZQor
ICAgICAgICBOVUxMLgorICAgICAgICAoRXdrVmlldzo6Y3JlYXRlRXZhc09iamVjdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcDogQ2FsbCBuZXcgV0tDb250ZXh0R2V0RGVmYXVsdFBhZ2VHcm91
cCgpCisgICAgICAgIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBkZWZhdWx0IHBhZ2UgZ3JvdXAg
ZnJvbSB0aGUgY29udGV4dCBiZWZvcmUKKyAgICAgICAgY29uc3RydWN0aW5nIHRoZSBFd2tWaWV3
IG9iamVjdC4KKyAgICAgICAgKGV3a192aWV3X3NtYXJ0X2FkZCk6CisgICAgICAgIChld2tfdmll
d19hZGRfd2l0aF9jb250ZXh0KToKKyAgICAgICAgKGV3a192aWV3X2FkZCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZGVm
YXVsdFBhZ2VHcm91cCk6IEFkZCBtZXRob2QgdG8gZXhwb3NlIHRoZSBkZWZhdWx0CisgICAgICAg
IHBhZ2UgZ3JvdXAgb2YgYSBnaXZlbiBXZWJDb250ZXh0LgorICAgICAgICAoV2ViQ29udGV4dCk6
CisKIDIwMTMtMDItMDcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDIyMTIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IDVjODM4ZmUuLjlkM2Vj
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBA
IC03NCw2ICs3NCwxMSBAQCBXS0NvbnRleHRSZWYgV0tDb250ZXh0Q3JlYXRlV2l0aEluamVjdGVk
QnVuZGxlUGF0aChXS1N0cmluZ1JlZiBwYXRoUmVmKQogICAgIHJldHVybiB0b0FQSShjb250ZXh0
LnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCitXS1BhZ2VHcm91cFJlZiBXS0NvbnRleHRHZXRE
ZWZhdWx0UGFnZUdyb3VwKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0
b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPmRlZmF1bHRQYWdlR3JvdXAoKSk7Cit9CisKIHZvaWQg
V0tDb250ZXh0U2V0Q2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBjb25zdCBXS0NvbnRl
eHRDbGllbnQqIHdrQ2xpZW50KQogewogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+aW5pdGlhbGl6
ZUNsaWVudCh3a0NsaWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmgKaW5kZXggNzJhNTQ1Zi4uYmNjMzVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuaApAQCAtMTQ4LDYgKzE0OCw4IEBAIFdLX0VYUE9SVCBXS1R5cGVJ
RCBXS0NvbnRleHRHZXRUeXBlSUQoKTsKIFdLX0VYUE9SVCBXS0NvbnRleHRSZWYgV0tDb250ZXh0
Q3JlYXRlKCk7CiBXS19FWFBPUlQgV0tDb250ZXh0UmVmIFdLQ29udGV4dENyZWF0ZVdpdGhJbmpl
Y3RlZEJ1bmRsZVBhdGgoV0tTdHJpbmdSZWYgcGF0aCk7CiAKK1dLX0VYUE9SVCBXS1BhZ2VHcm91
cFJlZiBXS0NvbnRleHRHZXREZWZhdWx0UGFnZUdyb3VwKFdLQ29udGV4dFJlZiBjb250ZXh0KTsK
KwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0Q2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0
LCBjb25zdCBXS0NvbnRleHRDbGllbnQqIGNsaWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRl
eHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgV0tD
b250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQqIGNsaWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTZXRIaXN0b3J5Q2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBXS0NvbnRl
eHRIaXN0b3J5Q2xpZW50KiBjbGllbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS1ZpZXcuY3BwCmluZGV4IDExY2QyOGEuLmQ2ZGVhMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKQEAgLTI5LDggKzI5LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogc3RhdGljIGlubGluZSBXS1ZpZXdSZWYgY3JlYXRl
V0tWaWV3KEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3Vw
UmVmIHBhZ2VHcm91cFJlZiwgRXdrVmlldzo6Vmlld0JlaGF2aW9yIGJlaGF2aW9yKQogewotICAg
IFJlZlB0cjxFd2tDb250ZXh0PiBjb250ZXh0ID0gY29udGV4dFJlZiA/IEV3a0NvbnRleHQ6OmNy
ZWF0ZShjb250ZXh0UmVmKSA6IEV3a0NvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCk7Ci0gICAgRXZh
c19PYmplY3QqIGV2YXNPYmplY3QgPSBFd2tWaWV3OjpjcmVhdGVFdmFzT2JqZWN0KGNhbnZhcywg
Y29udGV4dCwgcGFnZUdyb3VwUmVmLCBiZWhhdmlvcik7CisgICAgRXZhc19PYmplY3QqIGV2YXNP
YmplY3QgPSBFd2tWaWV3OjpjcmVhdGVFdmFzT2JqZWN0KGNhbnZhcywgRXdrQ29udGV4dDo6Y3Jl
YXRlKGNvbnRleHRSZWYpLCBwYWdlR3JvdXBSZWYsIGJlaGF2aW9yKTsKICAgICBpZiAoIWV2YXNP
YmplY3QpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0zOSwxMSArMzgsMTcgQEAgc3RhdGljIGlu
bGluZSBXS1ZpZXdSZWYgY3JlYXRlV0tWaWV3KEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIFdLUGEKIAogV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShFdmFzKiBjYW52YXMsIFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCiB7Cisg
ICAgQVNTRVJUKGNvbnRleHRSZWYpOworICAgIEFTU0VSVChwYWdlR3JvdXBSZWYpOworCiAgICAg
cmV0dXJuIGNyZWF0ZVdLVmlldyhjYW52YXMsIGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZiwgRXdr
Vmlldzo6TGVnYWN5QmVoYXZpb3IpOwogfQogCiBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aEZp
eGVkTGF5b3V0KEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdy
b3VwUmVmIHBhZ2VHcm91cFJlZikKIHsKKyAgICBBU1NFUlQoY29udGV4dFJlZik7CisgICAgQVNT
RVJUKHBhZ2VHcm91cFJlZik7CisKICAgICByZXR1cm4gY3JlYXRlV0tWaWV3KGNhbnZhcywgY29u
dGV4dFJlZiwgcGFnZUdyb3VwUmVmLCBFd2tWaWV3OjpEZWZhdWx0QmVoYXZpb3IpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IGM0NTMz
MTMuLjE5ODEwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXcuY3BwCkBAIC0yNTQsOCArMjU0LDcgQEAgRXdrVmlldzo6RXdrVmlldyhFdmFzX09iamVjdCog
ZXZhc09iamVjdCwgUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2UKIAogICAg
IFdLUGFnZVNldFVzZUZpeGVkTGF5b3V0KHdrUGFnZSgpLCBiZWhhdmlvciA9PSBEZWZhdWx0QmVo
YXZpb3IpOwogCi0gICAgV0tQYWdlR3JvdXBSZWYgd2tQYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdl
R3JvdXAod2tQYWdlKCkpOwotICAgIFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNlcyA9IFdL
UGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMod2tQYWdlR3JvdXApOworICAgIFdLUHJlZmVyZW5jZXNS
ZWYgd2tQcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwKTsK
IAogICAgIFdLUHJlZmVyZW5jZXNTZXRXZWJHTEVuYWJsZWQod2tQcmVmZXJlbmNlcywgdHJ1ZSk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldEZ1bGxTY3JlZW5FbmFibGVkKHdrUHJlZmVyZW5jZXMsIHRy
dWUpOwpAQCAtMjgzLDEyICsyODIsMTMgQEAgRXdrVmlldzo6fkV3a1ZpZXcoKQogCiBFdmFzX09i
amVjdCogRXdrVmlldzo6Y3JlYXRlRXZhc09iamVjdChFdmFzKiBjYW52YXMsIEV2YXNfU21hcnQq
IHNtYXJ0LCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRleHQsIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cFJlZiwgVmlld0JlaGF2aW9yIGJlaGF2aW9yKQogewotICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChzbWFydCwgMCk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNv
bnRleHQsIDApOworICAgIEFTU0VSVChjYW52YXMpOworICAgIEFTU0VSVChzbWFydCk7CisgICAg
QVNTRVJUKGNvbnRleHQpOworICAgIEFTU0VSVChwYWdlR3JvdXBSZWYpOwogCiAgICAgRXZhc19P
YmplY3QqIGV2YXNPYmplY3QgPSBldmFzX29iamVjdF9zbWFydF9hZGQoY2FudmFzLCBzbWFydCk7
Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGV2YXNPYmplY3QsIDApOworICAg
IEFTU0VSVChldmFzT2JqZWN0KTsKIAogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0
YSA9IHRvU21hcnREYXRhKGV2YXNPYmplY3QpOwogICAgIGlmICghc21hcnREYXRhKSB7CkBAIC0z
MDYsNiArMzA2LDEwIEBAIEV2YXNfT2JqZWN0KiBFd2tWaWV3OjpjcmVhdGVFdmFzT2JqZWN0KEV2
YXMqIGNhbnZhcywgRXZhc19TbWFydCogc21hcnQsIFBhc3NSZWZQCiAKIEV2YXNfT2JqZWN0KiBF
d2tWaWV3OjpjcmVhdGVFdmFzT2JqZWN0KEV2YXMqIGNhbnZhcywgUGFzc1JlZlB0cjxFd2tDb250
ZXh0PiBjb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIFZpZXdCZWhhdmlvciBi
ZWhhdmlvcikKIHsKKyAgICBBU1NFUlQoY2FudmFzKTsKKyAgICBBU1NFUlQoY29udGV4dCk7Cisg
ICAgQVNTRVJUKHBhZ2VHcm91cFJlZik7CisKICAgICByZXR1cm4gY3JlYXRlRXZhc09iamVjdChj
YW52YXMsIGRlZmF1bHRTbWFydENsYXNzSW5zdGFuY2UoKSwgY29udGV4dCwgcGFnZUdyb3VwUmVm
LCBiZWhhdmlvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXcuaAppbmRleCA5YWRmYjBmLi45NDI0YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5oCkBAIC0xMDQsOCArMTA0LDggQEAgcHVibGljOgogICAgICAgICBE
ZWZhdWx0QmVoYXZpb3IKICAgICB9OwogCi0gICAgc3RhdGljIEV2YXNfT2JqZWN0KiBjcmVhdGVF
dmFzT2JqZWN0KEV2YXMqIGNhbnZhcywgRXZhc19TbWFydCogc21hcnQsIFBhc3NSZWZQdHI8RXdr
Q29udGV4dD4gY29udGV4dCwgIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiA9IDAsIFZpZXdC
ZWhhdmlvciBiZWhhdmlvciA9IEV3a1ZpZXc6OkRlZmF1bHRCZWhhdmlvcik7Ci0gICAgc3RhdGlj
IEV2YXNfT2JqZWN0KiBjcmVhdGVFdmFzT2JqZWN0KEV2YXMqIGNhbnZhcywgUGFzc1JlZlB0cjxF
d2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYgPSAwLCBWaWV3
QmVoYXZpb3IgYmVoYXZpb3IgPSBFd2tWaWV3OjpEZWZhdWx0QmVoYXZpb3IpOworICAgIHN0YXRp
YyBFdmFzX09iamVjdCogY3JlYXRlRXZhc09iamVjdChFdmFzKiBjYW52YXMsIEV2YXNfU21hcnQq
IHNtYXJ0LCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRleHQsICBXS1BhZ2VHcm91cFJlZiBw
YWdlR3JvdXBSZWYsIFZpZXdCZWhhdmlvciBiZWhhdmlvciA9IEV3a1ZpZXc6OkRlZmF1bHRCZWhh
dmlvcik7CisgICAgc3RhdGljIEV2YXNfT2JqZWN0KiBjcmVhdGVFdmFzT2JqZWN0KEV2YXMqIGNh
bnZhcywgUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdl
R3JvdXBSZWYsIFZpZXdCZWhhdmlvciBiZWhhdmlvciA9IEV3a1ZpZXc6OkRlZmF1bHRCZWhhdmlv
cik7CiAKICAgICBzdGF0aWMgYm9vbCBpbml0U21hcnRDbGFzc0ludGVyZmFjZShFd2tfVmlld19T
bWFydF9DbGFzcyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5jcHAKaW5kZXggODYzYmU0OC4uZDUxNjZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtODEsMTYgKzgxLDI3IEBAIEVpbmFfQm9v
bCBld2tfdmlld19zbWFydF9jbGFzc19zZXQoRXdrX1ZpZXdfU21hcnRfQ2xhc3MqIGFwaSkKIAog
RXZhc19PYmplY3QqIGV3a192aWV3X3NtYXJ0X2FkZChFdmFzKiBjYW52YXMsIEV2YXNfU21hcnQq
IHNtYXJ0LCBFd2tfQ29udGV4dCogY29udGV4dCkKIHsKLSAgICByZXR1cm4gRXdrVmlldzo6Y3Jl
YXRlRXZhc09iamVjdChjYW52YXMsIHNtYXJ0LCBld2tfb2JqZWN0X2Nhc3Q8RXdrQ29udGV4dCo+
KGNvbnRleHQpKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2FudmFzLCAw
KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnQsIDApOworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb250ZXh0LCAwKTsKKworICAgIEV3a0NvbnRl
eHQqIGV3a0NvbnRleHQgPSBld2tfb2JqZWN0X2Nhc3Q8RXdrQ29udGV4dCo+KGNvbnRleHQpOwor
ICAgIHJldHVybiBFd2tWaWV3OjpjcmVhdGVFdmFzT2JqZWN0KGNhbnZhcywgc21hcnQsIGV3a0Nv
bnRleHQsIFdLQ29udGV4dEdldERlZmF1bHRQYWdlR3JvdXAoZXdrQ29udGV4dC0+d2tDb250ZXh0
KCkpKTsKIH0KIAogRXZhc19PYmplY3QqIGV3a192aWV3X2FkZF93aXRoX2NvbnRleHQoRXZhcyog
Y2FudmFzLCBFd2tfQ29udGV4dCogY29udGV4dCkKIHsKLSAgICByZXR1cm4gRXdrVmlldzo6Y3Jl
YXRlRXZhc09iamVjdChjYW52YXMsIGV3a19vYmplY3RfY2FzdDxFd2tDb250ZXh0Kj4oY29udGV4
dCkpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYW52YXMsIDApOworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb250ZXh0LCAwKTsKKworICAgIEV3a0Nv
bnRleHQqIGV3a0NvbnRleHQgPSBld2tfb2JqZWN0X2Nhc3Q8RXdrQ29udGV4dCo+KGNvbnRleHQp
OworICAgIHJldHVybiBFd2tWaWV3OjpjcmVhdGVFdmFzT2JqZWN0KGNhbnZhcywgZXdrQ29udGV4
dCwgV0tDb250ZXh0R2V0RGVmYXVsdFBhZ2VHcm91cChld2tDb250ZXh0LT53a0NvbnRleHQoKSkp
OwogfQogCiBFdmFzX09iamVjdCogZXdrX3ZpZXdfYWRkKEV2YXMqIGNhbnZhcykKIHsKKyAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2FudmFzLCAwKTsKKwogICAgIHJldHVybiBl
d2tfdmlld19hZGRfd2l0aF9jb250ZXh0KGNhbnZhcywgZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQo
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IDBkODNkNTMu
LjA3NGI2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtMTQyLDYg
KzE0Miw4IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBjcmVhdGVX
ZWJQYWdlKFBhZ2VDbGllbnQqLCBXZWJQYWdlR3JvdXAqLCBXZWJQYWdlUHJveHkqIHJlbGF0ZWRQ
YWdlID0gMCk7CiAKKyAgICBXZWJQYWdlR3JvdXAqIGRlZmF1bHRQYWdlR3JvdXAoKSB7IHJldHVy
biBtX2RlZmF1bHRQYWdlR3JvdXAuZ2V0KCk7IH0KKwogICAgIGNvbnN0IFN0cmluZyYgaW5qZWN0
ZWRCdW5kbGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3RlZEJ1bmRsZVBhdGg7IH0KIAog
ICAgIERvd25sb2FkUHJveHkqIGRvd25sb2FkKFdlYlBhZ2VQcm94eSogaW5pdGlhdGluZ1BhZ2Us
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRjYzc0N2UuLjA3NTA1OWIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxMy0wMi0wOCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgW0VGTF1bV0syXSBXS1ZpZXdDcmVhdGUqKCkgQVBJIHNob3VsZCBub3Qg
YWNjZXB0IE5VTEwgcGFyYW1ldGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3IG1heSBiZSBnaXZl
biBhIE5VTEwgcGFnZSBncm91cC4gU2luY2UKKyAgICAgICAgb3VyIFdLVmlld0NyZWF0ZSooKSBB
UEkgbm8gbG9uZ2VyIGFjY2VwdCBhIE5VTEwgcGFnZSBncm91cCBhcyBpbnB1dCwgd2UKKyAgICAg
ICAgbm93IHJldHJpZXZlIHRoZSBkZWZhdWx0IHBhZ2UgZ3JvdXAgZnJvbSB0aGUgY29udGV4dCBp
ZiBuZWNlc3NhcnkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2VmbC9QbGF0Zm9ybVdlYlZp
ZXcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9y
bVdlYlZpZXcpOgorCiAyMDEzLTAyLTA3ICBEYXZpZCBGYXJsZXIgIDxkZmFybGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlZmlsZXMgc2hvdWxkIHdvcmsgZm9yIGFyYml0cmFyeSBTREtzIGFu
ZCBhcmNoaXRlY3R1cmVzIG9uIEFwcGxlIHBvcnRzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2VmbC9QbGF0Zm9ybVdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwv
UGxhdGZvcm1XZWJWaWV3LmNwcAppbmRleCA4YTAzNWYzLi5hYTcwNDkyIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL2VmbC9QbGF0Zm9ybVdlYlZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtV2ViVmlldy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgUGxh
dGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdL
UGFnZUdyb3VwUmVmIHBhZ2VHcm8KIHsKICAgICBtX3dpbmRvdyA9IGluaXRFY29yZUV2YXMoKTsK
ICAgICBFdmFzKiBldmFzID0gZWNvcmVfZXZhc19nZXQobV93aW5kb3cpOwotICAgIG1fdmlldyA9
IFdLVmlld0NyZWF0ZShldmFzLCBjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYpOworICAgIG1fdmll
dyA9IFdLVmlld0NyZWF0ZShldmFzLCBjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYgPyBwYWdlR3Jv
dXBSZWYgOiBXS0NvbnRleHRHZXREZWZhdWx0UGFnZUdyb3VwKGNvbnRleHRSZWYpKTsKICAgICBl
d2tfdmlld190aGVtZV9zZXQoV0tWaWV3R2V0RXZhc09iamVjdChtX3ZpZXcpLCBUSEVNRV9ESVIi
L2RlZmF1bHQuZWRqIik7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKFdLVmll
d0dldEV2YXNPYmplY3QobV92aWV3KSwgIndlYnByb2Nlc3MsY3Jhc2hlZCIsIG9uV2ViUHJvY2Vz
c0NyYXNoZWQsIDApOwogICAgIHJlc2l6ZVRvKDYwMCwgODAwKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>