<?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>124126</bug_id>
          
          <creation_ts>2013-11-10 12:15:07 -0800</creation_ts>
          <short_desc>[GTK] Support right-side attachment of the inspector</short_desc>
          <delta_ts>2013-12-11 08:37:53 -0800</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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gustavo Noronha (kov)">gustavo</reporter>
          <assigned_to name="Gustavo Noronha (kov)">gustavo</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>949163</commentid>
    <comment_count>0</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-11-10 12:15:07 -0800</bug_when>
    <thetext>[GTK] Support right-side attachment of the inspector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949166</commentid>
    <comment_count>1</comment_count>
      <attachid>216533</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-11-10 12:22:54 -0800</bug_when>
    <thetext>Created attachment 216533
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949167</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-10 12:25:28 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>949235</commentid>
    <comment_count>3</comment_count>
      <attachid>216533</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-11-11 00:56:19 -0800</bug_when>
    <thetext>Comment on attachment 216533
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/gtk/WKInspectorClientGtk.h:51
&gt; +    WKInspectorClientGtkDidChangeAttachedWidthCallback  didChangeAttachedWidth;

We should use this new callback in WebKitWebInspector to expose an attached-width property. And I guess we also need to expose somehow the AttachmentSide in the API. We can do it in a follow up patch, though, but in such case, add a NULL for the new callback in  webkitWebInspectorCreate

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:110
&gt;      unsigned inspectorViewHeight;
&gt; +    unsigned inspectorViewWidth;

These are mutually exclusive in the end, I wonder if we can use a single member inspectorViewSize and use it as width or height depending on inspectorAttachmentSide

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:311
&gt; +    webViewBase-&gt;priv-&gt;inspectorAttachmentSide = attachmentSide;
&gt; +
&gt; +    if (webViewBase-&gt;priv-&gt;inspectorView == inspector) {
&gt; +        gtk_widget_queue_resize(GTK_WIDGET(webViewBase));
&gt; +        return;
&gt; +    }

Should we check if the attachmentSide has actually changed in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957621</commentid>
    <comment_count>4</comment_count>
      <attachid>218688</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-08 07:53:26 -0800</bug_when>
    <thetext>Created attachment 218688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958268</commentid>
    <comment_count>5</comment_count>
      <attachid>218688</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-12-10 03:49:10 -0800</bug_when>
    <thetext>Comment on attachment 218688
Patch

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

We need also unit tests for the new API. Maybe we can split the patch and implement right side attachment for the default embedded web inspector view first, and then add the new api to allow users to do it as well.

&gt; Source/WebKit2/UIProcess/API/C/gtk/WKInspectorClientGtk.h:62
&gt; +typedef struct WKInspectorClientGtk WKInspectorClientGtk;
&gt; +
&gt; +enum { kWKInspectorClientGtkCurrentVersion = 0 };

I think we don&apos;t need these anymore with the versioned structs.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp:150
&gt; +     * The width that the inspector view should have when it is attached.
&gt; +     */

Since: 2.4

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp:163
&gt; +     * The side the inspector view should be attached to.
&gt; +     */

Since: 2.4

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp:360
&gt; +    WebKitWebInspector* inspector = WEBKIT_WEB_INSPECTOR(clientInfo);
&gt; +    g_object_notify(G_OBJECT(inspector), &quot;attachment-side&quot;);

Shouldn&apos;t we check it actually changed before emitting the notify signal? or this callback is only called when it has actually changed?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp:506
&gt; + */

Since: 2.4

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp:512
&gt; +    if (!inspector-&gt;priv-&gt;webInspector-&gt;isAttached())
&gt; +        return WEBKIT_WEB_INSPECTOR_ATTACHMENT_SIDE_NONE;

I think we could return the actual value even if not attached, to know where to attach it no? or am I misunderstanding the API? Because this is not the attached side , but the attachment side

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.cpp:548
&gt; + */

Since: 2.4

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.h:46
&gt; + * @WEBKIT_WEB_INSPECTOR_ATTACHMENT_SIDE_NONE: The inspector should be detached.

I think I don&apos;t understand the NONE case. If it&apos;s only to be used as default, I would use bottom as default value, which I guess it&apos;s the default in webkit2

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebInspector.h:52
&gt; + */

Since: 2.4

&gt; Source/WebKit2/UIProcess/WebInspectorProxy.h:118
&gt; +    AttachmentSide attachmentSide() const { return m_attachmentSide; }
&gt; +

This is cross-platform change in wk2, I guess we need an owner.

&gt; Source/WebKit2/UIProcess/gtk/WebInspectorClientGtk.h:56
&gt; +    void didChangeAttachedWidth(WebInspectorProxy*, unsigned width);
&gt;  };

What about didChangeAttachmentSide? it seems the C API callback is not called anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958660</commentid>
    <comment_count>6</comment_count>
      <attachid>218948</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-11 03:26:45 -0800</bug_when>
    <thetext>Created attachment 218948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958742</commentid>
    <comment_count>7</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-12-11 08:37:53 -0800</bug_when>
    <thetext>Committed r160435: &lt;http://trac.webkit.org/changeset/160435&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216533</attachid>
            <date>2013-11-10 12:22:54 -0800</date>
            <delta_ts>2013-12-08 07:53:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124126-20131110182253.patch</filename>
            <type>text/plain</type>
            <size>13860</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2I1MTk5YWUxZDY3OTkz
NTdhZmFmMjI2MzQ3OTRkZjAyMGZhOTQ2Ny4uYzBjYmJkNzk3NDE4NTVmYzAxOTk2MGU0MzM3YWU2
YTQ1YjIxMDY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTExLTEwICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIFN1cHBv
cnQgcmlnaHQtc2lkZSBhdHRhY2htZW50IG9mIHRoZSBpbnNwZWN0b3IKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDEyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0ay9X
S0luc3BlY3RvckNsaWVudEd0ay5oOiBhZGQgY2hhbmdlZCBhdHRhY2hlZCB3aWR0aCBjYWxsYmFj
ay4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZUFkZFdlYkluc3BlY3Rvcik6IHRha2UgYXR0YWNobWVu
dCBzaWRlIHBhcmFtZXRlciBpbnRvIGFjY291bnQgd2hlbiBhZGRpbmcgdGhlCisgICAgICAgIGlu
c3BlY3RvciB2aWV3LgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDb250YWluZXJSZW1vdmUp
OiBhbHNvIHJlc2V0IGluc3BlY3RvciB2aWV3IHdpZHRoIHdoZW4gcmVtb3ZpbmcuCisgICAgICAg
IChyZXNpemVXZWJLaXRXZWJWaWV3QmFzZUZyb21BbGxvY2F0aW9uKTogdGFrZSBhdHRhY2htZW50
IHNpZGUgaW50byBhY2NvdW50IHdoZW4gYWxsb2NhdGluZyB0aGUKKyAgICAgICAgc2l6ZXMgZm9y
IHRoZSBpbnNwZWN0b3IgdmlldyBhbmQgdGhlIGluc3BlY3RlZCB2aWV3LgorICAgICAgICAod2Vi
a2l0V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3V2lkdGgpOiBhbGxvdyBzZXR0aW5nIHRoZSBp
bnNwZWN0b3IgdmlldyB3aWR0aC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZVByaXZhdGUuaDogZGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJJ
bnNwZWN0b3JDbGllbnRHdGsuY3BwOiBub3RpZnkgY2xpZW50IHRoYXQgdmlldyB3aWR0aCBoYXMg
Y2hhbmdlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xpZW50R3RrOjpkaWRDaGFu
Z2VBdHRhY2hlZFdpZHRoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNs
aWVudEd0ay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2gp
OiB1c2UgYXR0YWNobWVudCBzaWRlIGZvciBzZXR0aW5nIHRoZSBkZWZhdWx0IHNpemUKKyAgICAg
ICAgZm9yIHRoZSBpbnNwZWN0b3Igdmlldy4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCk6IGFsbG93IHNldHRpbmcgdGhl
IGluc3BlY3RvciB2aWV3IHdpZHRoLgorCiAyMDEzLTEwLTIxICBHZXJnbyBCYWxvZ2ggIDxnZXJ5
eHl6QGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBSZW1vdmUgcXQgZnJvbSBnZW5lcmF0ZS1m
b3J3YXJkaW5nLWhlYWRlcnMucGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsuaAppbmRleCA4NjVlMTlhZTMzNjJj
OTljMmZmNGExMDNhNzg4MzZiMjlmYjkzNzUyLi5mMjRmMWFkNzdiYTMwOGExNDdkZjE1MjhhNjVh
NTAzNTAyMDcwYzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
Z3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL2d0ay9XS0luc3BlY3RvckNsaWVudEd0ay5oCkBAIC0zNiw2ICszNiw3IEBAIHR5cGVk
ZWYgYm9vbCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9yQ2FsbGJhY2spKFdLSW5zcGVj
dG9yUmVmIGluc3BlY3RvciwKIHR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrSW5z
cGVjdG9yRGlkQ2xvc2VDYWxsYmFjaykoV0tJbnNwZWN0b3JSZWYgaW5zcGVjdG9yLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrSW5z
cGVjdGVkVVJMQ2hhbmdlZENhbGxiYWNrKShXS0luc3BlY3RvclJlZiBpbnNwZWN0b3IsIFdLU3Ry
aW5nUmVmIHVybCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0lu
c3BlY3RvckNsaWVudEd0a0RpZENoYW5nZUF0dGFjaGVkSGVpZ2h0Q2FsbGJhY2spKFdLSW5zcGVj
dG9yUmVmIGluc3BlY3RvciwgdW5zaWduZWQgaGVpZ2h0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKK3R5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrRGlkQ2hhbmdlQXR0YWNoZWRX
aWR0aENhbGxiYWNrKShXS0luc3BlY3RvclJlZiBpbnNwZWN0b3IsIHVuc2lnbmVkIHdpZHRoLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogc3RydWN0IFdLSW5zcGVjdG9yQ2xpZW50R3RrIHsK
ICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbjsKQEAgLTQ3LDYgKzQ4LDcgQEAgc3RydWN0IFdLSW5zcGVjdG9yQ2xpZW50R3RrIHsK
ICAgICBXS0luc3BlY3RvckNsaWVudEd0a0luc3BlY3RvckNhbGxiYWNrICAgICAgICAgICAgICAg
YXR0YWNoOwogICAgIFdLSW5zcGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9yQ2FsbGJhY2sgICAgICAg
ICAgICAgICBkZXRhY2g7CiAgICAgV0tJbnNwZWN0b3JDbGllbnRHdGtEaWRDaGFuZ2VBdHRhY2hl
ZEhlaWdodENhbGxiYWNrIGRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0OworICAgIFdLSW5zcGVjdG9y
Q2xpZW50R3RrRGlkQ2hhbmdlQXR0YWNoZWRXaWR0aENhbGxiYWNrICBkaWRDaGFuZ2VBdHRhY2hl
ZFdpZHRoOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLSW5zcGVjdG9yQ2xpZW50R3RrIFdLSW5zcGVj
dG9yQ2xpZW50R3RrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggMzZkMTIyM2VlMTEyNGJjYTRjNTE1N2Rh
MmNhNGVhMDI2MjllODdhNS4uZjM1M2YwYzdhMjI4NzgzZGE3NzhhMGRhYTgwZDYxMDdkYmRkNjlj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdCYXNlLmNwcApAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+LgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xMDQsNyArMTA1LDkgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVBy
aXZhdGUgewogICAgIGJvb2wgbmVlZHNSZXNpemVPbk1hcDsKICAgICBHdGtXaWRnZXQqIGF1dGhl
bnRpY2F0aW9uRGlhbG9nOwogICAgIEd0a1dpZGdldCogaW5zcGVjdG9yVmlldzsKKyAgICBBdHRh
Y2htZW50U2lkZSBpbnNwZWN0b3JBdHRhY2htZW50U2lkZTsKICAgICB1bnNpZ25lZCBpbnNwZWN0
b3JWaWV3SGVpZ2h0OworICAgIHVuc2lnbmVkIGluc3BlY3RvclZpZXdXaWR0aDsKICAgICBHT3du
UHRyPEdka0V2ZW50PiBjb250ZXh0TWVudUV2ZW50OwogICAgIFdlYkNvbnRleHRNZW51UHJveHlH
dGsqIGFjdGl2ZUNvbnRleHRNZW51UHJveHk7CiAgICAgV2ViVmlld0Jhc2VJbnB1dE1ldGhvZEZp
bHRlciBpbnB1dE1ldGhvZEZpbHRlcjsKQEAgLTI5OCw4ICszMDEsMTUgQEAgdm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZUFkZEF1dGhlbnRpY2F0aW9uRGlhbG9nKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJW
aWV3QmFzZSwgR3QKICAgICBndGtfd2lkZ2V0X3F1ZXVlX2RyYXcoR1RLX1dJREdFVCh3ZWJWaWV3
QmFzZSkpOwogfQogCi12b2lkIHdlYmtpdFdlYlZpZXdCYXNlQWRkV2ViSW5zcGVjdG9yKFdlYktp
dFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwgR3RrV2lkZ2V0KiBpbnNwZWN0b3IpCit2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlQWRkV2ViSW5zcGVjdG9yKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZSwgR3RrV2lkZ2V0KiBpbnNwZWN0b3IsIEF0dGFjaG1lbnRTaWRlIGF0dGFjaG1lbnRTaWRl
KQogeworICAgIHdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JBdHRhY2htZW50U2lkZSA9IGF0
dGFjaG1lbnRTaWRlOworCisgICAgaWYgKHdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JWaWV3
ID09IGluc3BlY3RvcikgeworICAgICAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jlc2l6ZShHVEtfV0lE
R0VUKHdlYlZpZXdCYXNlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICB3ZWJWaWV3
QmFzZS0+cHJpdi0+aW5zcGVjdG9yVmlldyA9IGluc3BlY3RvcjsKICAgICBndGtfY29udGFpbmVy
X2FkZChHVEtfQ09OVEFJTkVSKHdlYlZpZXdCYXNlKSwgaW5zcGVjdG9yKTsKIH0KQEAgLTMxNiw2
ICszMjYsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNvbnRhaW5lclJlbW92ZShH
dGtDb250YWluZXIqIGNvbnRhaW5lciwgR3RrV2lkZ2V0KgogICAgIGlmIChwcml2LT5pbnNwZWN0
b3JWaWV3ID09IHdpZGdldCkgewogICAgICAgICBwcml2LT5pbnNwZWN0b3JWaWV3ID0gMDsKICAg
ICAgICAgcHJpdi0+aW5zcGVjdG9yVmlld0hlaWdodCA9IDA7CisgICAgICAgIHByaXYtPmluc3Bl
Y3RvclZpZXdXaWR0aCA9IDA7CiAgICAgfSBlbHNlIGlmIChwcml2LT5hdXRoZW50aWNhdGlvbkRp
YWxvZyA9PSB3aWRnZXQpIHsKICAgICAgICAgcHJpdi0+YXV0aGVudGljYXRpb25EaWFsb2cgPSAw
OwogICAgIH0gZWxzZSB7CkBAIC00NTgsMTMgKzQ2OSwyMyBAQCBzdGF0aWMgdm9pZCByZXNpemVX
ZWJLaXRXZWJWaWV3QmFzZUZyb21BbGxvY2F0aW9uKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZQogICAgIEludFJlY3Qgdmlld1JlY3QoYWxsb2NhdGlvbi0+eCwgYWxsb2NhdGlvbi0+eSwg
YWxsb2NhdGlvbi0+d2lkdGgsIGFsbG9jYXRpb24tPmhlaWdodCk7CiAgICAgV2ViS2l0V2ViVmll
d0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnByaXY7CiAgICAgaWYgKHByaXYtPmlu
c3BlY3RvclZpZXcpIHsKLSAgICAgICAgaW50IGluc3BlY3RvclZpZXdIZWlnaHQgPSBzdGQ6Om1p
bihzdGF0aWNfY2FzdDxpbnQ+KHByaXYtPmluc3BlY3RvclZpZXdIZWlnaHQpLCBhbGxvY2F0aW9u
LT5oZWlnaHQpOwogICAgICAgICBHdGtBbGxvY2F0aW9uIGNoaWxkQWxsb2NhdGlvbiA9IHZpZXdS
ZWN0OwotICAgICAgICBjaGlsZEFsbG9jYXRpb24ueSA9IGFsbG9jYXRpb24tPmhlaWdodCAtIGlu
c3BlY3RvclZpZXdIZWlnaHQ7Ci0gICAgICAgIGNoaWxkQWxsb2NhdGlvbi5oZWlnaHQgPSBpbnNw
ZWN0b3JWaWV3SGVpZ2h0OwotICAgICAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUocHJpdi0+
aW5zcGVjdG9yVmlldywgJmNoaWxkQWxsb2NhdGlvbik7CiAKLSAgICAgICAgdmlld1JlY3Quc2V0
SGVpZ2h0KHN0ZDo6bWF4KGFsbG9jYXRpb24tPmhlaWdodCAtIGluc3BlY3RvclZpZXdIZWlnaHQs
IDEpKTsKKyAgICAgICAgaWYgKHByaXYtPmluc3BlY3RvckF0dGFjaG1lbnRTaWRlID09IEF0dGFj
aG1lbnRTaWRlQm90dG9tKSB7CisgICAgICAgICAgICBpbnQgaW5zcGVjdG9yVmlld0hlaWdodCA9
IHN0ZDo6bWluKHN0YXRpY19jYXN0PGludD4ocHJpdi0+aW5zcGVjdG9yVmlld0hlaWdodCksIGFs
bG9jYXRpb24tPmhlaWdodCk7CisgICAgICAgICAgICBjaGlsZEFsbG9jYXRpb24ueCA9IDA7Cisg
ICAgICAgICAgICBjaGlsZEFsbG9jYXRpb24ueSA9IGFsbG9jYXRpb24tPmhlaWdodCAtIGluc3Bl
Y3RvclZpZXdIZWlnaHQ7CisgICAgICAgICAgICBjaGlsZEFsbG9jYXRpb24uaGVpZ2h0ID0gaW5z
cGVjdG9yVmlld0hlaWdodDsKKyAgICAgICAgICAgIHZpZXdSZWN0LnNldEhlaWdodChzdGQ6Om1h
eChhbGxvY2F0aW9uLT5oZWlnaHQgLSBpbnNwZWN0b3JWaWV3SGVpZ2h0LCAxKSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaW5zcGVjdG9yVmlld1dpZHRoID0gc3RkOjptaW4o
c3RhdGljX2Nhc3Q8aW50Pihwcml2LT5pbnNwZWN0b3JWaWV3V2lkdGgpLCBhbGxvY2F0aW9uLT53
aWR0aCk7CisgICAgICAgICAgICBjaGlsZEFsbG9jYXRpb24ueSA9IDA7CisgICAgICAgICAgICBj
aGlsZEFsbG9jYXRpb24ueCA9IGFsbG9jYXRpb24tPndpZHRoIC0gaW5zcGVjdG9yVmlld1dpZHRo
OworICAgICAgICAgICAgY2hpbGRBbGxvY2F0aW9uLndpZHRoID0gaW5zcGVjdG9yVmlld1dpZHRo
OworICAgICAgICAgICAgdmlld1JlY3Quc2V0V2lkdGgoc3RkOjptYXgoYWxsb2NhdGlvbi0+d2lk
dGggLSBpbnNwZWN0b3JWaWV3V2lkdGgsIDEpKTsKKyAgICAgICAgfQorCisgICAgICAgIGd0a193
aWRnZXRfc2l6ZV9hbGxvY2F0ZShwcml2LT5pbnNwZWN0b3JWaWV3LCAmY2hpbGRBbGxvY2F0aW9u
KTsKICAgICB9CiAKICAgICAvLyBUaGUgYXV0aGVudGljYXRpb24gZGlhbG9nIGlzIGNlbnRlcmVk
IGluIHRoZSB2aWV3IHJlY3QsIHdoaWNoIG1lYW5zIHRoYXQgaXQKQEAgLTEwMzcsNiArMTA1OCwx
NSBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5zcGVjdG9yVmlld0hlaWdodChXZWJLaXRX
ZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0JhcwogICAgICAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jl
c2l6ZV9ub19yZWRyYXcoR1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3QmFzZSkpOwogfQogCit2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5zcGVjdG9yVmlld1dpZHRoKFdlYktpdFdlYlZpZXdCYXNl
KiB3ZWJraXRXZWJWaWV3QmFzZSwgdW5zaWduZWQgd2lkdGgpCit7CisgICAgaWYgKHdlYmtpdFdl
YlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JWaWV3V2lkdGggPT0gd2lkdGgpCisgICAgICAgIHJl
dHVybjsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZS0+cHJpdi0+aW5zcGVjdG9yVmlld1dpZHRoID0g
d2lkdGg7CisgICAgaWYgKHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JWaWV3KQor
ICAgICAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jlc2l6ZV9ub19yZWRyYXcoR1RLX1dJREdFVCh3ZWJr
aXRXZWJWaWV3QmFzZSkpOworfQorCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0QWN0aXZlQ29u
dGV4dE1lbnVQcm94eShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIFdlYkNv
bnRleHRNZW51UHJveHlHdGsqIGNvbnRleHRNZW51UHJveHkpCiB7CiAgICAgd2Via2l0V2ViVmll
d0Jhc2UtPnByaXYtPmFjdGl2ZUNvbnRleHRNZW51UHJveHkgPSBjb250ZXh0TWVudVByb3h5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZVByaXZhdGUuaAppbmRleCBmOWI4YmZhMzFjYjY2M2QzNjgzODAzMmZlMzhhZGJh
YWUxNTc2NDUwLi41Y2NlOGRkZTZjZjY5NmRkYjhiODg3ZDc1MDBkOTgzMzJhNzc2MDg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFz
ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZVByaXZhdGUuaApAQCAtMjksNiArMjksNyBAQAogI2RlZmluZSBXZWJLaXRXZWJW
aWV3QmFzZVByaXZhdGVfaAogCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQcm94eUd0ay5oIgor
I2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCkBAIC00Niw2ICs0Nyw3IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VFbnRlckZ1bGxTY3Jl
ZW4oV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VFeGl0RnVsbFNj
cmVlbihXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUluaXRpYWxp
emVGdWxsU2NyZWVuQ2xpZW50KFdlYktpdFdlYlZpZXdCYXNlKiwgY29uc3QgV0tGdWxsU2NyZWVu
Q2xpZW50R3RrKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5zcGVjdG9yVmlld0hlaWdo
dChXZWJLaXRXZWJWaWV3QmFzZSosIHVuc2lnbmVkIGhlaWdodCk7Cit2b2lkIHdlYmtpdFdlYlZp
ZXdCYXNlU2V0SW5zcGVjdG9yVmlld1dpZHRoKFdlYktpdFdlYlZpZXdCYXNlKiwgdW5zaWduZWQg
d2lkdGgpOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldEFjdGl2ZUNvbnRleHRNZW51UHJveHko
V2ViS2l0V2ViVmlld0Jhc2UqLCBXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGsqKTsKIFdl
YktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0ayogd2Via2l0V2ViVmlld0Jhc2VHZXRBY3RpdmVD
b250ZXh0TWVudVByb3h5KFdlYktpdFdlYlZpZXdCYXNlKik7CiBHZGtFdmVudCogd2Via2l0V2Vi
Vmlld0Jhc2VUYWtlQ29udGV4dE1lbnVFdmVudChXZWJLaXRXZWJWaWV3QmFzZSopOwpAQCAtNjks
NiArNzEsNiBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlSGFuZGxlRG93bmxvYWRSZXF1ZXN0KFdl
YktpdFdlYlZpZXdCYXNlKiwgV2ViS2l0OjpEb3dubG9hZAogCiB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlQWRkQXV0aGVudGljYXRpb25EaWFsb2coV2ViS2l0V2ViVmlld0Jhc2UqLCBHdGtXaWRnZXQq
IGF1dGhEaWFsb2cpOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNhbmNlbEF1dGhlbnRpY2F0aW9u
RGlhbG9nKFdlYktpdFdlYlZpZXdCYXNlKik7Ci12b2lkIHdlYmtpdFdlYlZpZXdCYXNlQWRkV2Vi
SW5zcGVjdG9yKFdlYktpdFdlYlZpZXdCYXNlKiwgR3RrV2lkZ2V0KiBpbnNwZWN0b3IpOwordm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZUFkZFdlYkluc3BlY3RvcihXZWJLaXRXZWJWaWV3QmFzZSosIEd0
a1dpZGdldCogaW5zcGVjdG9yLCBXZWJLaXQ6OkF0dGFjaG1lbnRTaWRlKTsKIAogI2VuZGlmIC8v
IFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5jcHAKaW5kZXggNDQ4ZjQyMzc4M2Iy
NTUwOGM0OTk5MTk0YzQ0OTA1MTJjZGVjOGQ2NC4uZTM3NGFhZWVlZDkxOGM5MTdlNzdkOTczNWZl
ZTM2MmI1YWZhZDI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9X
ZWJJbnNwZWN0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcApAQCAtODEsNCArODEsMTEgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JDbGllbnRHdGs6OmRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0KFdlYkluc3BlY3RvclBy
b3h5KiBpbnNwZWN0b3IKICAgICBtX2NsaWVudC5kaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCh0b0FQ
SShpbnNwZWN0b3IpLCBoZWlnaHQsIG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCit2b2lkIFdl
Ykluc3BlY3RvckNsaWVudEd0azo6ZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aChXZWJJbnNwZWN0b3JQ
cm94eSogaW5zcGVjdG9yLCB1bnNpZ25lZCB3aWR0aCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRp
ZENoYW5nZUF0dGFjaGVkV2lkdGgpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC5kaWRD
aGFuZ2VBdHRhY2hlZFdpZHRoKHRvQVBJKGluc3BlY3RvciksIHdpZHRoLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuaAppbmRleCA4OWQwZjcz
ZDlkOGEzNzQ4ZDI5N2I1M2JiM2EzYWQ3NzU0NWViMWYwLi4wNGY5NDZmYzk3M2U4ZThlOGIzMzVl
NDdhMzMxZTFlZDE0NjYyMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgYXR0YWNoKFdlYkluc3BlY3RvclByb3h5Kik7CiAgICAgYm9vbCBkZXRhY2goV2Vi
SW5zcGVjdG9yUHJveHkqKTsKICAgICB2b2lkIGRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0KFdlYklu
c3BlY3RvclByb3h5KiwgdW5zaWduZWQgaGVpZ2h0KTsKKyAgICB2b2lkIGRpZENoYW5nZUF0dGFj
aGVkV2lkdGgoV2ViSW5zcGVjdG9yUHJveHkqLCB1bnNpZ25lZCB3aWR0aCk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9n
dGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKaW5kZXggMjFmYzk0NzIwMDNlYWFkYjNkNjg1OWM2
ZTBkZmVmZDQzNWEyNTQxNy4uMDc3YTBhNDBhOWJmMjBkZTUzNDk1ZjQ3NzM2NjFkNGJmNzc0OGJk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQ
cm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0
b3JQcm94eUd0ay5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAy
MDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR3VzdGF2
byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPi4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTc2LDE1ICsxNzcsMjAgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1BdHRhY2goKQogICAgICAgICBtX2luc3BlY3RvcldpbmRvdyA9IDA7CiAgICAgfQogCi0g
ICAgLy8gU2V0IGEgZGVmYXVsdCBhdHRhY2hlZCBoZWlnaHQgYmFzZWQgb24gSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC4KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZGVmYXVsdEF0dGFj
aGVkSGVpZ2h0ID0gMzAwOwotICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZEhlaWdodCA9IHBs
YXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkgKiAzIC8gNDsKLSAgICBwbGF0Zm9ybVNldEF0
dGFjaGVkV2luZG93SGVpZ2h0KHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZEhlaWdodCwgc3RkOjpt
aW4oZGVmYXVsdEF0dGFjaGVkSGVpZ2h0LCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQpKSk7CisgICAg
Ly8gU2V0IGEgZGVmYXVsdCBhdHRhY2hlZCBzaXplIGJhc2VkIG9uIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwuCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRBdHRhY2hlZFNp
emUgPSAzMDA7CisgICAgaWYgKG1fYXR0YWNobWVudFNpZGUgPT0gQXR0YWNobWVudFNpZGVCb3R0
b20pIHsKKyAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkSGVpZ2h0ID0gcGxhdGZvcm1J
bnNwZWN0ZWRXaW5kb3dIZWlnaHQoKSAqIDMgLyA0OworICAgICAgICBwbGF0Zm9ybVNldEF0dGFj
aGVkV2luZG93SGVpZ2h0KHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZEhlaWdodCwgc3RkOjptaW4o
ZGVmYXVsdEF0dGFjaGVkU2l6ZSwgbWF4aW11bUF0dGFjaGVkSGVpZ2h0KSkpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZFdpZHRoID0gcGxhdGZvcm1JbnNw
ZWN0ZWRXaW5kb3dXaWR0aCgpICogMyAvIDQ7CisgICAgICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRX
aW5kb3dXaWR0aChzdGQ6Om1heChtaW5pbXVtQXR0YWNoZWRXaWR0aCwgc3RkOjptaW4oZGVmYXVs
dEF0dGFjaGVkU2l6ZSwgbWF4aW11bUF0dGFjaGVkV2lkdGgpKSk7CisgICAgfQogCiAgICAgaWYg
KG1fY2xpZW50LmF0dGFjaCh0aGlzKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2Via2l0V2Vi
Vmlld0Jhc2VBZGRXZWJJbnNwZWN0b3IoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV9wYWdlLT52aWV3
V2lkZ2V0KCkpLCBtX2luc3BlY3RvclZpZXcpOworICAgIHdlYmtpdFdlYlZpZXdCYXNlQWRkV2Vi
SW5zcGVjdG9yKFdFQktJVF9XRUJfVklFV19CQVNFKG1fcGFnZS0+dmlld1dpZGdldCgpKSwgbV9p
bnNwZWN0b3JWaWV3LCBtX2F0dGFjaG1lbnRTaWRlKTsKICAgICBndGtfd2lkZ2V0X3Nob3cobV9p
bnNwZWN0b3JWaWV3KTsKIH0KIApAQCAtMjE1LDkgKzIyMSwxMyBAQCB2b2lkIFdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkK
ICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdIZWlnaHQoV0VCS0lUX1dFQl9W
SUVXX0JBU0UobV9wYWdlLT52aWV3V2lkZ2V0KCkpLCBoZWlnaHQpOwogfQogCi12b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgodW5z
aWduZWQgd2lkdGgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAoIW1faXNBdHRh
Y2hlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuZGlkQ2hhbmdlQXR0YWNoZWRX
aWR0aCh0aGlzLCB3aWR0aCk7CisgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3
V2lkdGgoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV9wYWdlLT52aWV3V2lkZ2V0KCkpLCB3aWR0aCk7
CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0VG9vbGJhckhlaWdodCh1
bnNpZ25lZCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218688</attachid>
            <date>2013-12-08 07:53:26 -0800</date>
            <delta_ts>2013-12-11 03:26:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124126-20131208165324.patch</filename>
            <type>text/plain</type>
            <size>25665</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTJlNzkxYWFmMDJhZTZj
NjM0OGI4M2IzZjQ2MWYzMjY4MDA0ODkwOC4uYjE1YmU3OTViYWY3YzFiZjdmZTFiNjAyNzlmZGJk
NTZiYWY4NGNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTEyLTA4ICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFN1cHBvcnQgcmln
aHQtc2lkZSBhdHRhY2htZW50IGZvciB0aGUgaW5zcGVjdG9yCisKKyAgICAgICAgW0dUS10gU3Vw
cG9ydCByaWdodC1zaWRlIGF0dGFjaG1lbnQgb2YgdGhlIGluc3BlY3RvcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MTI2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3Rr
L1dLSW5zcGVjdG9yQ2xpZW50R3RrLmg6IGFkZCBjaGFuZ2VkIGF0dGFjaGVkIHdpZHRoIGNhbGxi
YWNrLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHA6
CisgICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9jbGFzc19pbml0KToKKyAgICAgICAgKGRp
ZENoYW5nZUF0dGFjaGVkV2lkdGgpOiB3YXRjaCB0aGUgaW5zcGVjdG9yIHZpZXcgd2lkdGguCisg
ICAgICAgIChkaWRDaGFuZ2VBdHRhY2htZW50U2lkZSk6IHdhdGNoIGluc3BlY3RvciBhdHRhY2ht
ZW50IHNpZGUsIGFuZCBub3RpZnkgdGhlIEdPYmplY3QgcHJvcGVydHkuCisgICAgICAgICh3ZWJr
aXRXZWJJbnNwZWN0b3JDcmVhdGUpOiBhZGRlZCB0aGUgbmV3IGF0dGFjaG1lbnQgc2lkZSBjYWxs
YmFjayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF9h
dHRhY2htZW50X3NpZGUpOiBwdWJsaWMgQVBJIHRvIG9idGFpbiB0aGUgYXR0YWNobWVudCBzaWRl
LgorICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X2F0dGFjaGVkX2hlaWdodCk6IGFs
c28gdXNlIHRoZSBhdHRhY2htZW50IHNpZGUgdG8gZGVjaWRlIHdoZXRoZXIgdG8gcmV0dXJuIDAu
CisgICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfYXR0YWNoZWRfd2lkdGgpOiBvYnRh
aW5zIHRoZSB3aWR0aCBvZiB0aGUgaW5zcGVjdG9yIHZpZXcgd2hlbiByaWdodC1hdHRhY2hlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0b3IuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6CisgICAgICAgICh3
ZWJraXRXZWJWaWV3QmFzZUFkZFdlYkluc3BlY3Rvcik6IHRha2UgYXR0YWNobWVudCBzaWRlIHBh
cmFtZXRlciBpbnRvIGFjY291bnQgd2hlbiBhZGRpbmcgdGhlCisgICAgICAgIGluc3BlY3RvciB2
aWV3LgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDb250YWluZXJSZW1vdmUpOiBhbHNvIHJl
c2V0IGluc3BlY3RvciB2aWV3IHdpZHRoIHdoZW4gcmVtb3ZpbmcuCisgICAgICAgIChyZXNpemVX
ZWJLaXRXZWJWaWV3QmFzZUZyb21BbGxvY2F0aW9uKTogdGFrZSBhdHRhY2htZW50IHNpZGUgaW50
byBhY2NvdW50IHdoZW4gYWxsb2NhdGluZyB0aGUKKyAgICAgICAgc2l6ZXMgZm9yIHRoZSBpbnNw
ZWN0b3IgdmlldyBhbmQgdGhlIGluc3BlY3RlZCB2aWV3LgorICAgICAgICAod2Via2l0V2ViVmll
d0Jhc2VTZXRJbnNwZWN0b3JWaWV3U2l6ZSk6IGFsbG93IHNldHRpbmcgdGhlIGluc3BlY3RvciB2
aWV3IHdpZHRoLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNl
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1z
ZWN0aW9ucy50eHQ6IGRvY3VtZW50IG5ldyBBUElzLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJ
bnNwZWN0b3JQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6YXR0
YWNobWVudFNpZGUpOiBhY2Nlc3NvciB0byBnZXQgdGhlIGF0dGFjaG1lbnQgc2lkZS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudEd0azo6ZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aCk6IG5v
dGlmeSBjbGllbnQgdGhhdCB2aWV3IHdpZHRoIGhhcyBjaGFuZ2VkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmg6CisgICAgICAgICogVUlQcm9jZXNzL2d0
ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybUF0dGFjaCk6IHVzZSBhdHRhY2htZW50IHNpZGUgZm9yIHNldHRpbmcg
dGhlIGRlZmF1bHQgc2l6ZQorICAgICAgICBmb3IgdGhlIGluc3BlY3RvciB2aWV3LgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hl
aWdodCk6IHVzZSB0aGUgbmV3IGdlbmVyaWMgU2V0SW5zcGVjdG9yVmlld1NpemUuCisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lk
dGgpOiBhbGxvdyBzZXR0aW5nIHRoZSBpbnNwZWN0b3IgdmlldyB3aWR0aC4KKwogMjAxMy0xMi0w
NyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBGaXgg
QVBJIHRlc3QgZXhwZWN0YXRpb24gZm9sbG93aW5nIDE2MDIyMC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsuaApp
bmRleCA5Y2NhZWZkYjEwZjIwZDYzMDAyYTYxZmYzZGRlYzcxZGEwMzRlOGZjLi5hMjA1NTM3NTIz
MmMwNGUzYjNlOTBhODE3NTFiMjMzMTJhNzc2MzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLSW5zcGVjdG9yQ2xpZW50R3RrLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS0luc3BlY3RvckNsaWVudEd0ay5oCkBAIC0z
Niw2ICszNiw4IEBAIHR5cGVkZWYgYm9vbCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9y
Q2FsbGJhY2spKFdLSW5zcGVjdG9yUmVmIGluc3BlY3RvciwKIHR5cGVkZWYgdm9pZCAoKldLSW5z
cGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9yRGlkQ2xvc2VDYWxsYmFjaykoV0tJbnNwZWN0b3JSZWYg
aW5zcGVjdG9yLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLSW5z
cGVjdG9yQ2xpZW50R3RrSW5zcGVjdGVkVVJMQ2hhbmdlZENhbGxiYWNrKShXS0luc3BlY3RvclJl
ZiBpbnNwZWN0b3IsIFdLU3RyaW5nUmVmIHVybCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS0luc3BlY3RvckNsaWVudEd0a0RpZENoYW5nZUF0dGFjaGVkSGVpZ2h0
Q2FsbGJhY2spKFdLSW5zcGVjdG9yUmVmIGluc3BlY3RvciwgdW5zaWduZWQgaGVpZ2h0LCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3Rr
RGlkQ2hhbmdlQXR0YWNoZWRXaWR0aENhbGxiYWNrKShXS0luc3BlY3RvclJlZiBpbnNwZWN0b3Is
IHVuc2lnbmVkIHdpZHRoLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAo
KldLSW5zcGVjdG9yQ2xpZW50R3RrRGlkQ2hhbmdlQXR0YWNobWVudFNpZGVDYWxsYmFjaykoV0tJ
bnNwZWN0b3JSZWYgaW5zcGVjdG9yLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogdHlwZWRl
ZiBzdHJ1Y3QgV0tJbnNwZWN0b3JDbGllbnRHdGtCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKQEAgLTUyLDcgKzU0
LDEyIEBAIHR5cGVkZWYgc3RydWN0IFdLSW5zcGVjdG9yQ2xpZW50R3RrVjAgewogICAgIFdLSW5z
cGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9yQ2FsbGJhY2sgICAgICAgICAgICAgICBhdHRhY2g7CiAg
ICAgV0tJbnNwZWN0b3JDbGllbnRHdGtJbnNwZWN0b3JDYWxsYmFjayAgICAgICAgICAgICAgIGRl
dGFjaDsKICAgICBXS0luc3BlY3RvckNsaWVudEd0a0RpZENoYW5nZUF0dGFjaGVkSGVpZ2h0Q2Fs
bGJhY2sgZGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHQ7CisgICAgV0tJbnNwZWN0b3JDbGllbnRHdGtE
aWRDaGFuZ2VBdHRhY2hlZFdpZHRoQ2FsbGJhY2sgIGRpZENoYW5nZUF0dGFjaGVkV2lkdGg7Cisg
ICAgV0tJbnNwZWN0b3JDbGllbnRHdGtEaWRDaGFuZ2VBdHRhY2htZW50U2lkZUNhbGxiYWNrIGRp
ZENoYW5nZUF0dGFjaG1lbnRTaWRlOwogfSBXS0luc3BlY3RvckNsaWVudEd0a1YwOwordHlwZWRl
ZiBzdHJ1Y3QgV0tJbnNwZWN0b3JDbGllbnRHdGsgV0tJbnNwZWN0b3JDbGllbnRHdGs7CisKK2Vu
dW0geyBrV0tJbnNwZWN0b3JDbGllbnRHdGtDdXJyZW50VmVyc2lvbiA9IDAgfTsKIAogV0tfRVhQ
T1JUIHZvaWQgV0tJbnNwZWN0b3JTZXRJbnNwZWN0b3JDbGllbnRHdGsoV0tJbnNwZWN0b3JSZWYg
aW5zcGVjdG9yUmVmLCBjb25zdCBXS0luc3BlY3RvckNsaWVudEd0a0Jhc2UqIGNsaWVudCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYklu
c3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJ
bnNwZWN0b3IuY3BwCmluZGV4IGI0MDFjNWJjNmFjOWU4OTAzNjcyZDgzZDYyYmJiZDQ0NTEwMGU0
NzcuLjliZjM4NjZiNDg5NzViOWEwNWE2Y2FkMzAxNDkyOGQ1MTJjYjM4MzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViSW5zcGVjdG9y
LmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYkluc3BlY3Rvci5oIgog
CiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKKyNpbmNsdWRlICJXZWJLaXRFbnVtVHlw
ZXMuaCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViSW5z
cGVjdG9yUHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CkBAIC03Miw3ICs3
Myw5IEBAIGVudW0gewogICAgIFBST1BfMCwKIAogICAgIFBST1BfSU5TUEVDVEVEX1VSSSwKLSAg
ICBQUk9QX0FUVEFDSEVEX0hFSUdIVAorICAgIFBST1BfQVRUQUNIRURfSEVJR0hULAorICAgIFBS
T1BfQVRUQUNIRURfV0lEVEgsCisgICAgUFJPUF9BVFRBQ0hNRU5UX1NJREUKIH07CiAKIHN0cnVj
dCBfV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZSB7CkBAIC04NCw2ICs4Nyw3IEBAIHN0cnVjdCBf
V2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkluc3BlY3RvclByb3h5
PiB3ZWJJbnNwZWN0b3I7CiAgICAgQ1N0cmluZyBpbnNwZWN0ZWRVUkk7CiAgICAgdW5zaWduZWQg
YXR0YWNoZWRIZWlnaHQ7CisgICAgdW5zaWduZWQgYXR0YWNoZWRXaWR0aDsKIH07CiAKIFdFQktJ
VF9ERUZJTkVfVFlQRShXZWJLaXRXZWJJbnNwZWN0b3IsIHdlYmtpdF93ZWJfaW5zcGVjdG9yLCBH
X1RZUEVfT0JKRUNUKQpAQCAtMTAxLDYgKzEwNSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYklu
c3BlY3RvckdldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUq
CiAgICAgY2FzZSBQUk9QX0FUVEFDSEVEX0hFSUdIVDoKICAgICAgICAgZ192YWx1ZV9zZXRfdWlu
dCh2YWx1ZSwgd2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X2F0dGFjaGVkX2hlaWdodChpbnNwZWN0
b3IpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0FUVEFDSEVEX1dJRFRIOgorICAg
ICAgICBnX3ZhbHVlX3NldF91aW50KHZhbHVlLCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfYXR0
YWNoZWRfd2lkdGgoaW5zcGVjdG9yKSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwg
cGFyYW1TcGVjKTsKICAgICB9CkBAIC0xMzcsNiArMTQ0LDMzIEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfaW5zcGVjdG9yX2NsYXNzX2luaXQoV2ViS2l0V2ViSW5zcGVjdG9yQ2xhc3MqIGZpbmRD
bGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2Vi
SW5zcGVjdG9yOmF0dGFjaGVkLXdpZHRoOgorICAgICAqCisgICAgICogVGhlIHdpZHRoIHRoYXQg
dGhlIGluc3BlY3RvciB2aWV3IHNob3VsZCBoYXZlIHdoZW4gaXQgaXMgYXR0YWNoZWQuCisgICAg
ICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCisg
ICAgICAgIFBST1BfQVRUQUNIRURfV0lEVEgsCisgICAgICAgIGdfcGFyYW1fc3BlY191aW50KCJh
dHRhY2hlZC13aWR0aCIsCisgICAgICAgICAgICBfKCJBdHRhY2hlZCBXaWR0aCIpLAorICAgICAg
ICAgICAgXygiVGhlIHdpZHRoIHRoYXQgdGhlIGluc3BlY3RvciB2aWV3IHNob3VsZCBoYXZlIHdo
ZW4gaXQgaXMgYXR0YWNoZWQiKSwKKyAgICAgICAgICAgIDAsIEdfTUFYVUlOVCwgMCwKKyAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgLyoqCisgICAgICogV2ViS2l0
V2ViSW5zcGVjdG9yOmF0dGFjaG1lbnQtc2lkZToKKyAgICAgKgorICAgICAqIFRoZSBzaWRlIHRo
ZSBpbnNwZWN0b3IgdmlldyBzaG91bGQgYmUgYXR0YWNoZWQgdG8uCisgICAgICovCisgICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnT2JqZWN0Q2xhc3MsCisgICAgICAgIFBST1Bf
QVRUQUNITUVOVF9TSURFLAorICAgICAgICBnX3BhcmFtX3NwZWNfZW51bSgiYXR0YWNobWVudC1z
aWRlIiwKKyAgICAgICAgICAgIF8oIkF0dGFjaG1lbnQgU2lkZSIpLAorICAgICAgICAgICAgXygi
VGhlIHNpZGUgb2YgdGhlIHdpbmRvdyB0aGUgaW5zcGVjdG9yIHZpZXcgc2hvdWxkIGJlIGF0dGFj
aGVkIHRvIiksCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfSU5TUEVDVE9SX0FUVEFDSE1F
TlRfU0lERSwKKyAgICAgICAgICAgIFdFQktJVF9XRUJfSU5TUEVDVE9SX0FUVEFDSE1FTlRfU0lE
RV9OT05FLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICAvKioK
ICAgICAgKiBXZWJLaXRXZWJJbnNwZWN0b3I6Om9wZW4td2luZG93OgogICAgICAqIEBpbnNwZWN0
b3I6IHRoZSAjV2ViS2l0V2ViSW5zcGVjdG9yIG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRl
ZAogICAgICAqCkBAIC0zMTEsNiArMzQ1LDIxIEBAIHN0YXRpYyB2b2lkIGRpZENoYW5nZUF0dGFj
aGVkSGVpZ2h0KFdLSW5zcGVjdG9yUmVmLCB1bnNpZ25lZCBoZWlnaHQsIGNvbnN0IHZvaWQqCiAg
ICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKGluc3BlY3RvciksICJhdHRhY2hlZC1oZWlnaHQi
KTsKIH0KIAorc3RhdGljIHZvaWQgZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aChXS0luc3BlY3RvclJl
ZiwgdW5zaWduZWQgd2lkdGgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgV2ViS2l0
V2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IgPSBXRUJLSVRfV0VCX0lOU1BFQ1RPUihjbGllbnRJbmZv
KTsKKyAgICBpZiAoaW5zcGVjdG9yLT5wcml2LT5hdHRhY2hlZFdpZHRoID09IHdpZHRoKQorICAg
ICAgICByZXR1cm47CisgICAgaW5zcGVjdG9yLT5wcml2LT5hdHRhY2hlZFdpZHRoID0gd2lkdGg7
CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKGluc3BlY3RvciksICJhdHRhY2hlZC13aWR0
aCIpOworfQorCitzdGF0aWMgdm9pZCBkaWRDaGFuZ2VBdHRhY2htZW50U2lkZShXS0luc3BlY3Rv
clJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBXZWJLaXRXZWJJbnNwZWN0b3Iq
IGluc3BlY3RvciA9IFdFQktJVF9XRUJfSU5TUEVDVE9SKGNsaWVudEluZm8pOworICAgIGdfb2Jq
ZWN0X25vdGlmeShHX09CSkVDVChpbnNwZWN0b3IpLCAiYXR0YWNobWVudC1zaWRlIik7Cit9CisK
IFdlYktpdFdlYkluc3BlY3Rvciogd2Via2l0V2ViSW5zcGVjdG9yQ3JlYXRlKFdlYkluc3BlY3Rv
clByb3h5KiB3ZWJJbnNwZWN0b3IpCiB7CiAgICAgV2ViS2l0V2ViSW5zcGVjdG9yKiBpbnNwZWN0
b3IgPSBXRUJLSVRfV0VCX0lOU1BFQ1RPUihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0lO
U1BFQ1RPUiwgTlVMTCkpOwpAQCAtMzI3LDcgKzM3Niw5IEBAIFdlYktpdFdlYkluc3BlY3Rvciog
d2Via2l0V2ViSW5zcGVjdG9yQ3JlYXRlKFdlYkluc3BlY3RvclByb3h5KiB3ZWJJbnNwZWN0b3Ip
CiAgICAgICAgIGluc3BlY3RlZFVSTENoYW5nZWQsCiAgICAgICAgIGF0dGFjaCwKICAgICAgICAg
ZGV0YWNoLAotICAgICAgICBkaWRDaGFuZ2VBdHRhY2hlZEhlaWdodAorICAgICAgICBkaWRDaGFu
Z2VBdHRhY2hlZEhlaWdodCwKKyAgICAgICAgZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aCwKKyAgICAg
ICAgZGlkQ2hhbmdlQXR0YWNobWVudFNpZGUKICAgICB9OwogICAgIFdLSW5zcGVjdG9yU2V0SW5z
cGVjdG9yQ2xpZW50R3RrKHRvQVBJKHdlYkluc3BlY3RvciksICZ3a0luc3BlY3RvckNsaWVudEd0
ay5iYXNlKTsKIApAQCAtNDQ0LDExICs0OTUsMzQgQEAgdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rv
cl9jbG9zZShXZWJLaXRXZWJJbnNwZWN0b3IqIGluc3BlY3RvcikKIH0KIAogLyoqCisgKiB3ZWJr
aXRfd2ViX2luc3BlY3Rvcl9nZXRfYXR0YWNobWVudF9zaWRlOgorICogQGluc3BlY3RvcjogYSAj
V2ViS2l0V2ViSW5zcGVjdG9yCisgKgorICogR2V0IHRoZSBzaWRlIHRoZSBpbnNwZWN0b3Igdmll
dyBzaG91bGQgYmUgYXR0YWNoZWQgdG8gcmVsYXRpdmUgdG8gdGhlIHZpZXcKKyAqIHRoYXQgaXMg
YmVpbmcgaW5zcGVjdGVkLCB3aGVuIGF0dGFjaGVkLgorICoKKyAqIFJldHVybnM6ICNXZWJLaXRX
ZWJJbnNwZWN0b3JBdHRhY2htZW50U2lkZSByZXByZXNlbnRpbmcgdGhlIHNpZGUgdGhlIGluc3Bl
Y3RvciBzaG91bGQgYmUKKyAqIGF0dGFjaGVkIHRvLgorICovCitXZWJLaXRXZWJJbnNwZWN0b3JB
dHRhY2htZW50U2lkZSB3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfYXR0YWNobWVudF9zaWRlKFdl
YktpdFdlYkluc3BlY3RvciogaW5zcGVjdG9yKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfSU5TUEVDVE9SKGluc3BlY3RvciksIFdFQktJVF9XRUJfSU5TUEVDVE9S
X0FUVEFDSE1FTlRfU0lERV9OT05FKTsKKworICAgIGlmICghaW5zcGVjdG9yLT5wcml2LT53ZWJJ
bnNwZWN0b3ItPmlzQXR0YWNoZWQoKSkKKyAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJfSU5TUEVD
VE9SX0FUVEFDSE1FTlRfU0lERV9OT05FOworCisgICAgaWYgKGluc3BlY3Rvci0+cHJpdi0+d2Vi
SW5zcGVjdG9yLT5hdHRhY2htZW50U2lkZSgpID09IEF0dGFjaG1lbnRTaWRlQm90dG9tKQorICAg
ICAgICByZXR1cm4gV0VCS0lUX1dFQl9JTlNQRUNUT1JfQVRUQUNITUVOVF9TSURFX0JPVFRPTTsK
KworICAgIHJldHVybiBXRUJLSVRfV0VCX0lOU1BFQ1RPUl9BVFRBQ0hNRU5UX1NJREVfUklHSFQ7
Cit9CisKKy8qKgogICogd2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X2F0dGFjaGVkX2hlaWdodDoK
ICAqIEBpbnNwZWN0b3I6IGEgI1dlYktpdFdlYkluc3BlY3RvcgogICoKLSAqIEdldCB0aGUgaGVp
Z2h0IHRoYXQgdGhlIGluc3BlY3RvciB2aWV3IHNob3VsZCBoYXZlIHdoZW4KLSAqIGl0J3MgYXR0
YWNoZWQuIElmIHRoZSBpbnNwZWN0b3IgdmlldyBpcyBub3QgYXR0YWNoZWQgdGhpcworICogR2V0
IHRoZSBoZWlnaHQgdGhhdCB0aGUgaW5zcGVjdG9yIHZpZXcgc2hvdWxkIGhhdmUgd2hlbiBpdCdz
CisgKiBhdHRhY2hlZC4gSWYgdGhlIGluc3BlY3RvciB2aWV3IGlzIG5vdCBhdHRhY2hlZCB0byB0
aGUgYm90dG9tIHRoaXMKICAqIHJldHVybnMgMC4KICAqCiAgKiBSZXR1cm5zOiB0aGUgaGVpZ2h0
IG9mIHRoZSBpbnNwZWN0b3IgdmlldyB3aGVuIGF0dGFjaGVkCkBAIC00NTcsNyArNTMxLDI2IEBA
IGd1aW50IHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF9hdHRhY2hlZF9oZWlnaHQoV2ViS2l0V2Vi
SW5zcGVjdG9yKiBpbnNwZWN0b3IpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9JTlNQRUNUT1IoaW5zcGVjdG9yKSwgMCk7CiAKLSAgICBpZiAoIWluc3BlY3Rvci0+
cHJpdi0+d2ViSW5zcGVjdG9yLT5pc0F0dGFjaGVkKCkpCisgICAgaWYgKCFpbnNwZWN0b3ItPnBy
aXYtPndlYkluc3BlY3Rvci0+aXNBdHRhY2hlZCgpIHx8IGluc3BlY3Rvci0+cHJpdi0+d2ViSW5z
cGVjdG9yLT5hdHRhY2htZW50U2lkZSgpICE9IEF0dGFjaG1lbnRTaWRlQm90dG9tKQogICAgICAg
ICByZXR1cm4gMDsKICAgICByZXR1cm4gaW5zcGVjdG9yLT5wcml2LT5hdHRhY2hlZEhlaWdodDsK
IH0KKworLyoqCisgKiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfYXR0YWNoZWRfd2lkdGg6Cisg
KiBAaW5zcGVjdG9yOiBhICNXZWJLaXRXZWJJbnNwZWN0b3IKKyAqCisgKiBHZXQgdGhlIHdpZHRo
IHRoYXQgdGhlIGluc3BlY3RvciB2aWV3IHNob3VsZCBoYXZlIHdoZW4gaXQncworICogYXR0YWNo
ZWQuIElmIHRoZSBpbnNwZWN0b3IgdmlldyBpcyBub3QgYXR0YWNoZWQgdG8gdGhlIHJpZ2h0IHRo
aXMKKyAqIHJldHVybnMgMC4KKyAqCisgKiBSZXR1cm5zOiB0aGUgd2lkdGggb2YgdGhlIGluc3Bl
Y3RvciB2aWV3IHdoZW4gYXR0YWNoZWQKKyAqLworZ3VpbnQgd2Via2l0X3dlYl9pbnNwZWN0b3Jf
Z2V0X2F0dGFjaGVkX3dpZHRoKFdlYktpdFdlYkluc3BlY3RvciogaW5zcGVjdG9yKQoreworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfSU5TUEVDVE9SKGluc3BlY3Rvciks
IDApOworCisgICAgaWYgKCFpbnNwZWN0b3ItPnByaXYtPndlYkluc3BlY3Rvci0+aXNBdHRhY2hl
ZCgpIHx8IGluc3BlY3Rvci0+cHJpdi0+d2ViSW5zcGVjdG9yLT5hdHRhY2htZW50U2lkZSgpICE9
IEF0dGFjaG1lbnRTaWRlUmlnaHQpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBpbnNw
ZWN0b3ItPnByaXYtPmF0dGFjaGVkV2lkdGg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5oCmluZGV4IDY3ZjBmNDk1N2Jl
OGE0YTFkMGU1NTZjNTQzNTdjZmMwYmU0MDhiZGYuLmRlMTI3MDI3NGIwOTU1ZWYyMzFhNDNlMzk0
NTYwZGY5ZDZmMGVhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5oCkBAIC00MSw2ICs0MSwyMSBAQCB0eXBlZGVmIHN0
cnVjdCBfV2ViS2l0V2ViSW5zcGVjdG9yICAgICAgICBXZWJLaXRXZWJJbnNwZWN0b3I7CiB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0V2ViSW5zcGVjdG9yQ2xhc3MgICBXZWJLaXRXZWJJbnNwZWN0b3JD
bGFzczsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlIFdlYktpdFdl
Ykluc3BlY3RvclByaXZhdGU7CiAKKy8qKgorICogV2ViS2l0V2ViSW5zcGVjdG9yQXR0YWNobWVu
dFNpZGU6CisgKiBAV0VCS0lUX1dFQl9JTlNQRUNUT1JfQVRUQUNITUVOVF9TSURFX05PTkU6IFRo
ZSBpbnNwZWN0b3Igc2hvdWxkIGJlIGRldGFjaGVkLgorICogQFdFQktJVF9XRUJfSU5TUEVDVE9S
X0FUVEFDSE1FTlRfU0lERV9CT1RUT006IFRoZSBpbnNwZWN0b3Igc2hvdWxkIGJlIGF0dGFjaGVk
IHRvIHRoZSBib3R0b20uCisgKiBAV0VCS0lUX1dFQl9JTlNQRUNUT1JfQVRUQUNITUVOVF9TSURF
X1JJR0hUOiBUaGUgaW5zcGVjdG9yIHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgcmlnaHQuCisg
KgorICogRW51bSB2YWx1ZXMgdXNlZCBmb3IgZGV0ZXJtaW5pbmcgd2hlcmUgdGhlIGluc3BlY3Rv
ciBzaG91bGQgYmUgbG9jYXRlZCByZWxhdGl2ZSB0byB0aGUgdmlldworICogdGhhdCBpcyBiZWlu
ZyBpbnNwZWN0ZWQsIHdoZW4gYXR0YWNoZWQuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VC
S0lUX1dFQl9JTlNQRUNUT1JfQVRUQUNITUVOVF9TSURFX05PTkUsCisgICAgV0VCS0lUX1dFQl9J
TlNQRUNUT1JfQVRUQUNITUVOVF9TSURFX0JPVFRPTSwKKyAgICBXRUJLSVRfV0VCX0lOU1BFQ1RP
Ul9BVFRBQ0hNRU5UX1NJREVfUklHSFQsCit9IFdlYktpdFdlYkluc3BlY3RvckF0dGFjaG1lbnRT
aWRlOworCiBzdHJ1Y3QgX1dlYktpdFdlYkluc3BlY3RvciB7CiAgICAgR09iamVjdCBwYXJlbnQ7
CiAKQEAgLTgwLDkgKzk1LDE1IEBAIHdlYmtpdF93ZWJfaW5zcGVjdG9yX3Nob3cgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYkluc3BlY3RvciAqaW5zcGVjdG9yKTsKIFdFQktJVF9BUEkgdm9pZAog
d2Via2l0X3dlYl9pbnNwZWN0b3JfY2xvc2UgICAgICAgICAgICAgICAoV2ViS2l0V2ViSW5zcGVj
dG9yICppbnNwZWN0b3IpOwogCitXRUJLSVRfQVBJIFdlYktpdFdlYkluc3BlY3RvckF0dGFjaG1l
bnRTaWRlCit3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfYXR0YWNobWVudF9zaWRlIChXZWJLaXRX
ZWJJbnNwZWN0b3IqIGluc3BlY3Rvcik7CisKIFdFQktJVF9BUEkgZ3VpbnQKIHdlYmtpdF93ZWJf
aW5zcGVjdG9yX2dldF9hdHRhY2hlZF9oZWlnaHQgKFdlYktpdFdlYkluc3BlY3RvciAqaW5zcGVj
dG9yKTsKIAorV0VCS0lUX0FQSSBndWludAord2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X2F0dGFj
aGVkX3dpZHRoICAoV2ViS2l0V2ViSW5zcGVjdG9yICppbnNwZWN0b3IpOworCiBHX0VORF9ERUNM
UwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCA3NWY1Nzk2YzM1ODk4MDkxZmEwNzc1MTcyNjcz
MDlhNGZmNTk4M2Q3Li44ZWU0NjQyODgwNzg1OThmODIyNmUwNGY2ZjgwMzYxM2IyMGY0ZmY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2UuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAx
MCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YSA8Z25zQGdub21lLm9yZz4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTEwNSw3ICsxMDYsOCBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0
ZSB7CiAgICAgYm9vbCBuZWVkc1Jlc2l6ZU9uTWFwOwogICAgIEd0a1dpZGdldCogYXV0aGVudGlj
YXRpb25EaWFsb2c7CiAgICAgR3RrV2lkZ2V0KiBpbnNwZWN0b3JWaWV3OwotICAgIHVuc2lnbmVk
IGluc3BlY3RvclZpZXdIZWlnaHQ7CisgICAgQXR0YWNobWVudFNpZGUgaW5zcGVjdG9yQXR0YWNo
bWVudFNpZGU7CisgICAgdW5zaWduZWQgaW5zcGVjdG9yVmlld1NpemU7CiAgICAgR093blB0cjxH
ZGtFdmVudD4gY29udGV4dE1lbnVFdmVudDsKICAgICBXZWJDb250ZXh0TWVudVByb3h5R3RrKiBh
Y3RpdmVDb250ZXh0TWVudVByb3h5OwogICAgIFdlYlZpZXdCYXNlSW5wdXRNZXRob2RGaWx0ZXIg
aW5wdXRNZXRob2RGaWx0ZXI7CkBAIC0zMjAsOCArMzIyLDE4IEBAIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VBZGRBdXRoZW50aWNhdGlvbkRpYWxvZyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jh
c2UsIEd0CiAgICAgZ3RrX3dpZGdldF9xdWV1ZV9kcmF3KEdUS19XSURHRVQod2ViVmlld0Jhc2Up
KTsKIH0KIAotdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUFkZFdlYkluc3BlY3RvcihXZWJLaXRXZWJW
aWV3QmFzZSogd2ViVmlld0Jhc2UsIEd0a1dpZGdldCogaW5zcGVjdG9yKQordm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZUFkZFdlYkluc3BlY3RvcihXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2Us
IEd0a1dpZGdldCogaW5zcGVjdG9yLCBBdHRhY2htZW50U2lkZSBhdHRhY2htZW50U2lkZSkKIHsK
KyAgICBpZiAod2ViVmlld0Jhc2UtPnByaXYtPmluc3BlY3RvclZpZXcgPT0gaW5zcGVjdG9yICYm
IHdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JBdHRhY2htZW50U2lkZSA9PSBhdHRhY2htZW50
U2lkZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgd2ViVmlld0Jhc2UtPnByaXYtPmluc3BlY3Rv
ckF0dGFjaG1lbnRTaWRlID0gYXR0YWNobWVudFNpZGU7CisKKyAgICBpZiAod2ViVmlld0Jhc2Ut
PnByaXYtPmluc3BlY3RvclZpZXcgPT0gaW5zcGVjdG9yKSB7CisgICAgICAgIGd0a193aWRnZXRf
cXVldWVfcmVzaXplKEdUS19XSURHRVQod2ViVmlld0Jhc2UpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIHdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JWaWV3ID0gaW5zcGVjdG9y
OwogICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIod2ViVmlld0Jhc2UpLCBpbnNw
ZWN0b3IpOwogfQpAQCAtMzM3LDcgKzM0OSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlQ29udGFpbmVyUmVtb3ZlKEd0a0NvbnRhaW5lciogY29udGFpbmVyLCBHdGtXaWRnZXQqCiAK
ICAgICBpZiAocHJpdi0+aW5zcGVjdG9yVmlldyA9PSB3aWRnZXQpIHsKICAgICAgICAgcHJpdi0+
aW5zcGVjdG9yVmlldyA9IDA7Ci0gICAgICAgIHByaXYtPmluc3BlY3RvclZpZXdIZWlnaHQgPSAw
OworICAgICAgICBwcml2LT5pbnNwZWN0b3JWaWV3U2l6ZSA9IDA7CiAgICAgfSBlbHNlIGlmIChw
cml2LT5hdXRoZW50aWNhdGlvbkRpYWxvZyA9PSB3aWRnZXQpIHsKICAgICAgICAgcHJpdi0+YXV0
aGVudGljYXRpb25EaWFsb2cgPSAwOwogICAgIH0gZWxzZSB7CkBAIC00ODAsMTMgKzQ5MiwyMyBA
QCBzdGF0aWMgdm9pZCByZXNpemVXZWJLaXRXZWJWaWV3QmFzZUZyb21BbGxvY2F0aW9uKFdlYktp
dFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZQogICAgIEludFJlY3Qgdmlld1JlY3QoYWxsb2NhdGlv
bi0+eCwgYWxsb2NhdGlvbi0+eSwgYWxsb2NhdGlvbi0+d2lkdGgsIGFsbG9jYXRpb24tPmhlaWdo
dCk7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jhc2UtPnBy
aXY7CiAgICAgaWYgKHByaXYtPmluc3BlY3RvclZpZXcpIHsKLSAgICAgICAgaW50IGluc3BlY3Rv
clZpZXdIZWlnaHQgPSBzdGQ6Om1pbihzdGF0aWNfY2FzdDxpbnQ+KHByaXYtPmluc3BlY3RvclZp
ZXdIZWlnaHQpLCBhbGxvY2F0aW9uLT5oZWlnaHQpOwogICAgICAgICBHdGtBbGxvY2F0aW9uIGNo
aWxkQWxsb2NhdGlvbiA9IHZpZXdSZWN0OwotICAgICAgICBjaGlsZEFsbG9jYXRpb24ueSA9IGFs
bG9jYXRpb24tPmhlaWdodCAtIGluc3BlY3RvclZpZXdIZWlnaHQ7Ci0gICAgICAgIGNoaWxkQWxs
b2NhdGlvbi5oZWlnaHQgPSBpbnNwZWN0b3JWaWV3SGVpZ2h0OwotICAgICAgICBndGtfd2lkZ2V0
X3NpemVfYWxsb2NhdGUocHJpdi0+aW5zcGVjdG9yVmlldywgJmNoaWxkQWxsb2NhdGlvbik7CiAK
LSAgICAgICAgdmlld1JlY3Quc2V0SGVpZ2h0KHN0ZDo6bWF4KGFsbG9jYXRpb24tPmhlaWdodCAt
IGluc3BlY3RvclZpZXdIZWlnaHQsIDEpKTsKKyAgICAgICAgaWYgKHByaXYtPmluc3BlY3RvckF0
dGFjaG1lbnRTaWRlID09IEF0dGFjaG1lbnRTaWRlQm90dG9tKSB7CisgICAgICAgICAgICBpbnQg
aW5zcGVjdG9yVmlld0hlaWdodCA9IHN0ZDo6bWluKHN0YXRpY19jYXN0PGludD4ocHJpdi0+aW5z
cGVjdG9yVmlld1NpemUpLCBhbGxvY2F0aW9uLT5oZWlnaHQpOworICAgICAgICAgICAgY2hpbGRB
bGxvY2F0aW9uLnggPSAwOworICAgICAgICAgICAgY2hpbGRBbGxvY2F0aW9uLnkgPSBhbGxvY2F0
aW9uLT5oZWlnaHQgLSBpbnNwZWN0b3JWaWV3SGVpZ2h0OworICAgICAgICAgICAgY2hpbGRBbGxv
Y2F0aW9uLmhlaWdodCA9IGluc3BlY3RvclZpZXdIZWlnaHQ7CisgICAgICAgICAgICB2aWV3UmVj
dC5zZXRIZWlnaHQoc3RkOjptYXgoYWxsb2NhdGlvbi0+aGVpZ2h0IC0gaW5zcGVjdG9yVmlld0hl
aWdodCwgMSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGluc3BlY3RvclZp
ZXdXaWR0aCA9IHN0ZDo6bWluKHN0YXRpY19jYXN0PGludD4ocHJpdi0+aW5zcGVjdG9yVmlld1Np
emUpLCBhbGxvY2F0aW9uLT53aWR0aCk7CisgICAgICAgICAgICBjaGlsZEFsbG9jYXRpb24ueSA9
IDA7CisgICAgICAgICAgICBjaGlsZEFsbG9jYXRpb24ueCA9IGFsbG9jYXRpb24tPndpZHRoIC0g
aW5zcGVjdG9yVmlld1dpZHRoOworICAgICAgICAgICAgY2hpbGRBbGxvY2F0aW9uLndpZHRoID0g
aW5zcGVjdG9yVmlld1dpZHRoOworICAgICAgICAgICAgdmlld1JlY3Quc2V0V2lkdGgoc3RkOjpt
YXgoYWxsb2NhdGlvbi0+d2lkdGggLSBpbnNwZWN0b3JWaWV3V2lkdGgsIDEpKTsKKyAgICAgICAg
fQorCisgICAgICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShwcml2LT5pbnNwZWN0b3JWaWV3
LCAmY2hpbGRBbGxvY2F0aW9uKTsKICAgICB9CiAKICAgICAvLyBUaGUgYXV0aGVudGljYXRpb24g
ZGlhbG9nIGlzIGNlbnRlcmVkIGluIHRoZSB2aWV3IHJlY3QsIHdoaWNoIG1lYW5zIHRoYXQgaXQK
QEAgLTEwNTAsMTEgKzEwNzIsMTEgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUluaXRpYWxpemVG
dWxsU2NyZWVuQ2xpZW50KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWUKICAgICB3ZWJr
aXRXZWJWaWV3QmFzZS0+cHJpdi0+ZnVsbFNjcmVlbkNsaWVudC5pbml0aWFsaXplKHdrQ2xpZW50
KTsKIH0KIAotdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdIZWlnaHQoV2Vi
S2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlLCB1bnNpZ25lZCBoZWlnaHQpCit2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5zcGVjdG9yVmlld1NpemUoV2ViS2l0V2ViVmlld0Jhc2Uq
IHdlYmtpdFdlYlZpZXdCYXNlLCB1bnNpZ25lZCBzaXplKQogewotICAgIGlmICh3ZWJraXRXZWJW
aWV3QmFzZS0+cHJpdi0+aW5zcGVjdG9yVmlld0hlaWdodCA9PSBoZWlnaHQpCisgICAgaWYgKHdl
YmtpdFdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JWaWV3U2l6ZSA9PSBzaXplKQogICAgICAg
ICByZXR1cm47Ci0gICAgd2Via2l0V2ViVmlld0Jhc2UtPnByaXYtPmluc3BlY3RvclZpZXdIZWln
aHQgPSBoZWlnaHQ7CisgICAgd2Via2l0V2ViVmlld0Jhc2UtPnByaXYtPmluc3BlY3RvclZpZXdT
aXplID0gc2l6ZTsKICAgICBpZiAod2Via2l0V2ViVmlld0Jhc2UtPnByaXYtPmluc3BlY3RvclZp
ZXcpCiAgICAgICAgIGd0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyhHVEtfV0lER0VU
KHdlYmtpdFdlYlZpZXdCYXNlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCmluZGV4IDI5YmIx
NDViMDFiNzg0ZDI2OWE5ZGMyNDljMjFjZWI2MGE4NTcyODUuLmFlZmI3YmQ0MmZmM2Y5YTNjOTg1
MzUwOTVjZTM2YWM2NGQ5MmRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjZGVmaW5lIFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZV9oCiAKICNpbmNsdWRlICJX
ZWJDb250ZXh0TWVudVByb3h5R3RrLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIK
ICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2Uu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKQEAgLTQ1LDcgKzQ2LDcgQEAgdm9pZCB3ZWJr
aXRXZWJWaWV3QmFzZUNoaWxkTW92ZVJlc2l6ZShXZWJLaXRXZWJWaWV3QmFzZSosIEd0a1dpZGdl
dCosIGNvbnN0IFdlYkMKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VFbnRlckZ1bGxTY3JlZW4oV2Vi
S2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VFeGl0RnVsbFNjcmVlbihX
ZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUluaXRpYWxpemVGdWxs
U2NyZWVuQ2xpZW50KFdlYktpdFdlYlZpZXdCYXNlKiwgY29uc3QgV0tGdWxsU2NyZWVuQ2xpZW50
R3RrQmFzZSopOwotdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdIZWlnaHQo
V2ViS2l0V2ViVmlld0Jhc2UqLCB1bnNpZ25lZCBoZWlnaHQpOwordm9pZCB3ZWJraXRXZWJWaWV3
QmFzZVNldEluc3BlY3RvclZpZXdTaXplKFdlYktpdFdlYlZpZXdCYXNlKiwgdW5zaWduZWQgc2l6
ZSk7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0QWN0aXZlQ29udGV4dE1lbnVQcm94eShXZWJL
aXRXZWJWaWV3QmFzZSosIFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUd0ayopOwogV2ViS2l0
OjpXZWJDb250ZXh0TWVudVByb3h5R3RrKiB3ZWJraXRXZWJWaWV3QmFzZUdldEFjdGl2ZUNvbnRl
eHRNZW51UHJveHkoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIEdka0V2ZW50KiB3ZWJraXRXZWJWaWV3
QmFzZVRha2VDb250ZXh0TWVudUV2ZW50KFdlYktpdFdlYlZpZXdCYXNlKik7CkBAIC03MCw2ICs3
MSw2IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VIYW5kbGVEb3dubG9hZFJlcXVlc3QoV2ViS2l0
V2ViVmlld0Jhc2UqLCBXZWJLaXQ6OkRvd25sb2FkCiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VB
ZGRBdXRoZW50aWNhdGlvbkRpYWxvZyhXZWJLaXRXZWJWaWV3QmFzZSosIEd0a1dpZGdldCogYXV0
aERpYWxvZyk7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ2FuY2VsQXV0aGVudGljYXRpb25EaWFs
b2coV2ViS2l0V2ViVmlld0Jhc2UqKTsKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VBZGRXZWJJbnNw
ZWN0b3IoV2ViS2l0V2ViVmlld0Jhc2UqLCBHdGtXaWRnZXQqIGluc3BlY3Rvcik7Cit2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlQWRkV2ViSW5zcGVjdG9yKFdlYktpdFdlYlZpZXdCYXNlKiwgR3RrV2lk
Z2V0KiBpbnNwZWN0b3IsIFdlYktpdDo6QXR0YWNobWVudFNpZGUpOwogCiAjZW5kaWYgLy8gV2Vi
S2l0V2ViVmlld0Jhc2VQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IGU4
YzBlNWYzMDZmMTIzNDFhMzc0YmYxNmE3ZjE2OGMyNDhiM2VhOTcuLjY5OTU0MDNhNTJiZmU5Nzgy
OGYxNTliNDJiMDE0YzIxNTdjN2NmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAt
ODIzLDYgKzgyMyw3IEBAIFdlYktpdFBsdWdpblByaXZhdGUKIAogPFNFQ1RJT04+CiA8RklMRT5X
ZWJLaXRXZWJJbnNwZWN0b3I8L0ZJTEU+CitXZWJLaXRXZWJJbnNwZWN0b3JBdHRhY2htZW50U2lk
ZQogV2ViS2l0V2ViSW5zcGVjdG9yCiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfd2ViX3ZpZXcK
IHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF9pbnNwZWN0ZWRfdXJpCkBAIC04MzIsNiArODMzLDgg
QEAgd2Via2l0X3dlYl9pbnNwZWN0b3JfZGV0YWNoCiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9zaG93
CiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9jbG9zZQogd2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X2F0
dGFjaGVkX2hlaWdodAord2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X2F0dGFjaGVkX3dpZHRoCit3
ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfYXR0YWNobWVudF9zaWRlCiAKIDxTVUJTRUNUSU9OIFN0
YW5kYXJkPgogV2ViS2l0V2ViSW5zcGVjdG9yQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggZjUwY2IyZDk2ZGMzNTdkZDM0ODA2ZTAwYjcx
OTdmYjUyZGViN2M0ZC4uM2RhYzZhYmFkZjkyMjNlOTg5MTIxMjFlNDNiMmI3NmNjZGY0OTM5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKQEAgLTEx
NCw2ICsxMTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93TWFpblJlc291cmNlRm9yRnJhbWUo
V2ViRnJhbWVQcm94eSopOwogCiAgICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4g
bV9pc0F0dGFjaGVkOyB9CisgICAgQXR0YWNobWVudFNpZGUgYXR0YWNobWVudFNpZGUoKSBjb25z
dCB7IHJldHVybiBtX2F0dGFjaG1lbnRTaWRlOyB9CisKICAgICB2b2lkIGF0dGFjaFJpZ2h0KCk7
CiAgICAgdm9pZCBhdHRhY2hCb3R0b20oKTsKICAgICB2b2lkIGF0dGFjaChBdHRhY2htZW50U2lk
ZSA9IEF0dGFjaG1lbnRTaWRlQm90dG9tKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAppbmRleCA1YWZkZDViMTEyMDZi
NzI4MzY4ZjYzZmUyYmM2ZTY3Mzc2NGMwZWI2Li41ODg0YzMyYWRmYmMxYmZlZjI2Y2EzOTQ5MTU4
ZDIyMWFlNTY0M2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dl
Ykluc3BlY3RvckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuY3BwCkBAIC04MSw0ICs4MSwxMSBAQCB2b2lkIFdlYklu
c3BlY3RvckNsaWVudEd0azo6ZGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHQoV2ViSW5zcGVjdG9yUHJv
eHkqIGluc3BlY3RvcgogICAgIG1fY2xpZW50LmRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0KHRvQVBJ
KGluc3BlY3RvciksIGhlaWdodCwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAordm9p
ZCBXZWJJbnNwZWN0b3JDbGllbnRHdGs6OmRpZENoYW5nZUF0dGFjaGVkV2lkdGgoV2ViSW5zcGVj
dG9yUHJveHkqIGluc3BlY3RvciwgdW5zaWduZWQgd2lkdGgpCit7CisgICAgaWYgKCFtX2NsaWVu
dC5kaWRDaGFuZ2VBdHRhY2hlZFdpZHRoKQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnQu
ZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aCh0b0FQSShpbnNwZWN0b3IpLCB3aWR0aCwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuaAppbmRl
eCBiMzBiOTQ1Y2NhZGExMmQ0MzQ3ZDlkMjUxMWU5NzMyOTE4NmExMGUyLi45ZDdiMGViNjg4NDRi
ODgyZmRmNzBiNGRlODQ1ZTVmNTdhNTZhOGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmgKQEAgLTUyLDYgKzUyLDcgQEAg
cHVibGljOgogICAgIGJvb2wgYXR0YWNoKFdlYkluc3BlY3RvclByb3h5Kik7CiAgICAgYm9vbCBk
ZXRhY2goV2ViSW5zcGVjdG9yUHJveHkqKTsKICAgICB2b2lkIGRpZENoYW5nZUF0dGFjaGVkSGVp
Z2h0KFdlYkluc3BlY3RvclByb3h5KiwgdW5zaWduZWQgaGVpZ2h0KTsKKyAgICB2b2lkIGRpZENo
YW5nZUF0dGFjaGVkV2lkdGgoV2ViSW5zcGVjdG9yUHJveHkqLCB1bnNpZ25lZCB3aWR0aCk7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKaW5kZXggOTg3YTk5MmM0ZDY3ZWJh
YTAxNmIwZmYwMzVkNDQxYWE3MmE1MmZjMS4uOTUyMmEwYTYyODA1ZjdiYWJkYmVjMDE2MWNiNTc0
YmNkNzI4MDM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJ
bnNwZWN0b3JQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9X
ZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogUG9ydGlvbnMgQ29weXJp
Z2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPi4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTc2LDE1ICsxNzcsMjAgQEAgdm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1BdHRhY2goKQogICAgICAgICBtX2luc3BlY3RvcldpbmRvdyA9IDA7CiAg
ICAgfQogCi0gICAgLy8gU2V0IGEgZGVmYXVsdCBhdHRhY2hlZCBoZWlnaHQgYmFzZWQgb24gSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC4KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZGVm
YXVsdEF0dGFjaGVkSGVpZ2h0ID0gMzAwOwotICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZEhl
aWdodCA9IHBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkgKiAzIC8gNDsKLSAgICBwbGF0
Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZEhlaWdo
dCwgc3RkOjptaW4oZGVmYXVsdEF0dGFjaGVkSGVpZ2h0LCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQp
KSk7CisgICAgLy8gU2V0IGEgZGVmYXVsdCBhdHRhY2hlZCBzaXplIGJhc2VkIG9uIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWwuCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRB
dHRhY2hlZFNpemUgPSAzMDA7CisgICAgaWYgKG1fYXR0YWNobWVudFNpZGUgPT0gQXR0YWNobWVu
dFNpZGVCb3R0b20pIHsKKyAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkSGVpZ2h0ID0g
cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKSAqIDMgLyA0OworICAgICAgICBwbGF0Zm9y
bVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZEhlaWdodCwg
c3RkOjptaW4oZGVmYXVsdEF0dGFjaGVkU2l6ZSwgbWF4aW11bUF0dGFjaGVkSGVpZ2h0KSkpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZFdpZHRoID0gcGxh
dGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpICogMyAvIDQ7CisgICAgICAgIHBsYXRmb3JtU2V0
QXR0YWNoZWRXaW5kb3dXaWR0aChzdGQ6Om1heChtaW5pbXVtQXR0YWNoZWRXaWR0aCwgc3RkOjpt
aW4oZGVmYXVsdEF0dGFjaGVkU2l6ZSwgbWF4aW11bUF0dGFjaGVkV2lkdGgpKSk7CisgICAgfQog
CiAgICAgaWYgKG1fY2xpZW50LmF0dGFjaCh0aGlzKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
d2Via2l0V2ViVmlld0Jhc2VBZGRXZWJJbnNwZWN0b3IoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV9w
YWdlLT52aWV3V2lkZ2V0KCkpLCBtX2luc3BlY3RvclZpZXcpOworICAgIHdlYmtpdFdlYlZpZXdC
YXNlQWRkV2ViSW5zcGVjdG9yKFdFQktJVF9XRUJfVklFV19CQVNFKG1fcGFnZS0+dmlld1dpZGdl
dCgpKSwgbV9pbnNwZWN0b3JWaWV3LCBtX2F0dGFjaG1lbnRTaWRlKTsKICAgICBndGtfd2lkZ2V0
X3Nob3cobV9pbnNwZWN0b3JWaWV3KTsKIH0KIApAQCAtMjEyLDEyICsyMTgsMTYgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25l
ZCBoZWlnaHQpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY2xpZW50LmRpZENoYW5nZUF0dGFj
aGVkSGVpZ2h0KHRoaXMsIGhlaWdodCk7Ci0gICAgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnNwZWN0
b3JWaWV3SGVpZ2h0KFdFQktJVF9XRUJfVklFV19CQVNFKG1fcGFnZS0+dmlld1dpZGdldCgpKSwg
aGVpZ2h0KTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdTaXplKFdFQktJ
VF9XRUJfVklFV19CQVNFKG1fcGFnZS0+dmlld1dpZGdldCgpKSwgaGVpZ2h0KTsKIH0KIAotdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2ln
bmVkKQordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dp
ZHRoKHVuc2lnbmVkIHdpZHRoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKCFt
X2lzQXR0YWNoZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmRpZENoYW5nZUF0
dGFjaGVkV2lkdGgodGhpcywgd2lkdGgpOworICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5zcGVj
dG9yVmlld1NpemUoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV9wYWdlLT52aWV3V2lkZ2V0KCkpLCB3
aWR0aCk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0VG9vbGJhckhl
aWdodCh1bnNpZ25lZCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218948</attachid>
            <date>2013-12-11 03:26:45 -0800</date>
            <delta_ts>2013-12-11 03:59:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124126-20131211122644.patch</filename>
            <type>text/plain</type>
            <size>14482</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGVlMjg4OWIxMWY4YWIy
NDRlMzJhZmY1Yzk5NWZmNTc2ZDNjMDg0Ni4uNzRjZTZmZDM1NzBiMDkwNTNiMzdmZWYwM2NkMzJk
ZjQyMDYwNzUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTEyLTExICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIFN1cHBv
cnQgcmlnaHQtc2lkZSBhdHRhY2htZW50IG9mIHRoZSBpbnNwZWN0b3IKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDEyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2d0ay9X
S0luc3BlY3RvckNsaWVudEd0ay5oOiBhZGQgY2hhbmdlZCBhdHRhY2hlZCB3aWR0aCBjYWxsYmFj
ay4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZUFkZFdlYkluc3BlY3Rvcik6IHRha2UgYXR0YWNobWVu
dCBzaWRlIHBhcmFtZXRlciBpbnRvIGFjY291bnQgd2hlbiBhZGRpbmcgdGhlCisgICAgICAgIGlu
c3BlY3RvciB2aWV3LgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDb250YWluZXJSZW1vdmUp
OiByZW5hbWVkIGluc3BlY3RvclZpZXdIZWlnaHQgdG8gaW5zcGVjdG9yVmlld1NpemUuCisgICAg
ICAgIChyZXNpemVXZWJLaXRXZWJWaWV3QmFzZUZyb21BbGxvY2F0aW9uKTogdGFrZSBhdHRhY2ht
ZW50IHNpZGUgaW50byBhY2NvdW50IHdoZW4gYWxsb2NhdGluZyB0aGUKKyAgICAgICAgc2l6ZXMg
Zm9yIHRoZSBpbnNwZWN0b3IgdmlldyBhbmQgdGhlIGluc3BlY3RlZCB2aWV3LgorICAgICAgICAo
d2Via2l0V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3U2l6ZSk6IHJlbmFtZWQgZnJvbSB3ZWJr
aXRXZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdIZWlnaHQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2d0ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JDbGllbnRHdGs6OmRpZENoYW5nZUF0dGFjaGVkV2lkdGgpOiBub3RpZnkgY2xpZW50IHRo
YXQgdmlldyB3aWR0aCBoYXMgY2hhbmdlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYklu
c3BlY3RvckNsaWVudEd0ay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9y
UHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1BdHRhY2gpOiB1c2UgYXR0YWNobWVudCBzaWRlIGZvciBzZXR0aW5nIHRoZSBkZWZhdWx0IHNp
emUKKyAgICAgICAgZm9yIHRoZSBpbnNwZWN0b3Igdmlldy4KKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQpOiB1c2UgdGhl
IG5ldyBnZW5lcmljIFNldEluc3BlY3RvclZpZXdTaXplLgorICAgICAgICAoV2ViS2l0OjpXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKTogYWxsb3cgc2V0
dGluZyB0aGUgaW5zcGVjdG9yIHZpZXcgd2lkdGguCisKIDIwMTMtMTItMTAgIE1pY2hhxYIgUGFr
dcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkIEVGTCBidWlsZCBmaXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9ndGsvV0tJbnNwZWN0b3JDbGllbnRHdGsuaAppbmRleCA5Y2NhZWZkYjEwZjIwZDYz
MDAyYTYxZmYzZGRlYzcxZGEwMzRlOGZjLi4yODI0MmRhMDkyZjNkNWNhNGNkZWI0MGY0MGU4YTFk
MWNjY2ZlYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZ3Rr
L1dLSW5zcGVjdG9yQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL2d0ay9XS0luc3BlY3RvckNsaWVudEd0ay5oCkBAIC0zNiw2ICszNiw3IEBAIHR5cGVkZWYg
Ym9vbCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrSW5zcGVjdG9yQ2FsbGJhY2spKFdLSW5zcGVjdG9y
UmVmIGluc3BlY3RvciwKIHR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrSW5zcGVj
dG9yRGlkQ2xvc2VDYWxsYmFjaykoV0tJbnNwZWN0b3JSZWYgaW5zcGVjdG9yLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrSW5zcGVj
dGVkVVJMQ2hhbmdlZENhbGxiYWNrKShXS0luc3BlY3RvclJlZiBpbnNwZWN0b3IsIFdLU3RyaW5n
UmVmIHVybCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0luc3Bl
Y3RvckNsaWVudEd0a0RpZENoYW5nZUF0dGFjaGVkSGVpZ2h0Q2FsbGJhY2spKFdLSW5zcGVjdG9y
UmVmIGluc3BlY3RvciwgdW5zaWduZWQgaGVpZ2h0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
K3R5cGVkZWYgdm9pZCAoKldLSW5zcGVjdG9yQ2xpZW50R3RrRGlkQ2hhbmdlQXR0YWNoZWRXaWR0
aENhbGxiYWNrKShXS0luc3BlY3RvclJlZiBpbnNwZWN0b3IsIHVuc2lnbmVkIHdpZHRoLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKIAogdHlwZWRlZiBzdHJ1Y3QgV0tJbnNwZWN0b3JDbGllbnRH
dGtCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmVyc2lvbjsKQEAgLTUyLDYgKzUzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tJbnNw
ZWN0b3JDbGllbnRHdGtWMCB7CiAgICAgV0tJbnNwZWN0b3JDbGllbnRHdGtJbnNwZWN0b3JDYWxs
YmFjayAgICAgICAgICAgICAgIGF0dGFjaDsKICAgICBXS0luc3BlY3RvckNsaWVudEd0a0luc3Bl
Y3RvckNhbGxiYWNrICAgICAgICAgICAgICAgZGV0YWNoOwogICAgIFdLSW5zcGVjdG9yQ2xpZW50
R3RrRGlkQ2hhbmdlQXR0YWNoZWRIZWlnaHRDYWxsYmFjayBkaWRDaGFuZ2VBdHRhY2hlZEhlaWdo
dDsKKyAgICBXS0luc3BlY3RvckNsaWVudEd0a0RpZENoYW5nZUF0dGFjaGVkV2lkdGhDYWxsYmFj
ayAgZGlkQ2hhbmdlQXR0YWNoZWRXaWR0aDsKIH0gV0tJbnNwZWN0b3JDbGllbnRHdGtWMDsKIAog
V0tfRVhQT1JUIHZvaWQgV0tJbnNwZWN0b3JTZXRJbnNwZWN0b3JDbGllbnRHdGsoV0tJbnNwZWN0
b3JSZWYgaW5zcGVjdG9yUmVmLCBjb25zdCBXS0luc3BlY3RvckNsaWVudEd0a0Jhc2UqIGNsaWVu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZS5jcHAKaW5kZXggMjUxYTFmYTE0YWMzYjJkMmE0YWRjZWZkMTU2NzgwYjk0YTAz
ODk3Ni4uZDlmOTY4NDMwNTA0NGVlNWYxZGJlOTUzNzQ1ZGY4ZThjODJjOTMyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNl
LmNwcApAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3Jv
bGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgPGduc0Bnbm9tZS5vcmc+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0xMDUsNyArMTA2LDggQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUgewogICAg
IGJvb2wgbmVlZHNSZXNpemVPbk1hcDsKICAgICBHdGtXaWRnZXQqIGF1dGhlbnRpY2F0aW9uRGlh
bG9nOwogICAgIEd0a1dpZGdldCogaW5zcGVjdG9yVmlldzsKLSAgICB1bnNpZ25lZCBpbnNwZWN0
b3JWaWV3SGVpZ2h0OworICAgIEF0dGFjaG1lbnRTaWRlIGluc3BlY3RvckF0dGFjaG1lbnRTaWRl
OworICAgIHVuc2lnbmVkIGluc3BlY3RvclZpZXdTaXplOwogICAgIEdPd25QdHI8R2RrRXZlbnQ+
IGNvbnRleHRNZW51RXZlbnQ7CiAgICAgV2ViQ29udGV4dE1lbnVQcm94eUd0ayogYWN0aXZlQ29u
dGV4dE1lbnVQcm94eTsKICAgICBXZWJWaWV3QmFzZUlucHV0TWV0aG9kRmlsdGVyIGlucHV0TWV0
aG9kRmlsdGVyOwpAQCAtMzIwLDggKzMyMiwxOCBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQWRk
QXV0aGVudGljYXRpb25EaWFsb2coV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBHdAog
ICAgIGd0a193aWRnZXRfcXVldWVfZHJhdyhHVEtfV0lER0VUKHdlYlZpZXdCYXNlKSk7CiB9CiAK
LXZvaWQgd2Via2l0V2ViVmlld0Jhc2VBZGRXZWJJbnNwZWN0b3IoV2ViS2l0V2ViVmlld0Jhc2Uq
IHdlYlZpZXdCYXNlLCBHdGtXaWRnZXQqIGluc3BlY3RvcikKK3ZvaWQgd2Via2l0V2ViVmlld0Jh
c2VBZGRXZWJJbnNwZWN0b3IoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBHdGtXaWRn
ZXQqIGluc3BlY3RvciwgQXR0YWNobWVudFNpZGUgYXR0YWNobWVudFNpZGUpCiB7CisgICAgaWYg
KHdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JWaWV3ID09IGluc3BlY3RvciAmJiB3ZWJWaWV3
QmFzZS0+cHJpdi0+aW5zcGVjdG9yQXR0YWNobWVudFNpZGUgPT0gYXR0YWNobWVudFNpZGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIHdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JBdHRhY2ht
ZW50U2lkZSA9IGF0dGFjaG1lbnRTaWRlOworCisgICAgaWYgKHdlYlZpZXdCYXNlLT5wcml2LT5p
bnNwZWN0b3JWaWV3ID09IGluc3BlY3RvcikgeworICAgICAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jl
c2l6ZShHVEtfV0lER0VUKHdlYlZpZXdCYXNlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICB3ZWJWaWV3QmFzZS0+cHJpdi0+aW5zcGVjdG9yVmlldyA9IGluc3BlY3RvcjsKICAgICBn
dGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHdlYlZpZXdCYXNlKSwgaW5zcGVjdG9yKTsK
IH0KQEAgLTMzNyw3ICszNDksNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNvbnRh
aW5lclJlbW92ZShHdGtDb250YWluZXIqIGNvbnRhaW5lciwgR3RrV2lkZ2V0KgogCiAgICAgaWYg
KHByaXYtPmluc3BlY3RvclZpZXcgPT0gd2lkZ2V0KSB7CiAgICAgICAgIHByaXYtPmluc3BlY3Rv
clZpZXcgPSAwOwotICAgICAgICBwcml2LT5pbnNwZWN0b3JWaWV3SGVpZ2h0ID0gMDsKKyAgICAg
ICAgcHJpdi0+aW5zcGVjdG9yVmlld1NpemUgPSAwOwogICAgIH0gZWxzZSBpZiAocHJpdi0+YXV0
aGVudGljYXRpb25EaWFsb2cgPT0gd2lkZ2V0KSB7CiAgICAgICAgIHByaXYtPmF1dGhlbnRpY2F0
aW9uRGlhbG9nID0gMDsKICAgICB9IGVsc2UgewpAQCAtNDgwLDEzICs0OTIsMjMgQEAgc3RhdGlj
IHZvaWQgcmVzaXplV2ViS2l0V2ViVmlld0Jhc2VGcm9tQWxsb2NhdGlvbihXZWJLaXRXZWJWaWV3
QmFzZSogd2ViVmlld0Jhc2UKICAgICBJbnRSZWN0IHZpZXdSZWN0KGFsbG9jYXRpb24tPngsIGFs
bG9jYXRpb24tPnksIGFsbG9jYXRpb24tPndpZHRoLCBhbGxvY2F0aW9uLT5oZWlnaHQpOwogICAg
IFdlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYlZpZXdCYXNlLT5wcml2OwogICAg
IGlmIChwcml2LT5pbnNwZWN0b3JWaWV3KSB7Ci0gICAgICAgIGludCBpbnNwZWN0b3JWaWV3SGVp
Z2h0ID0gc3RkOjptaW4oc3RhdGljX2Nhc3Q8aW50Pihwcml2LT5pbnNwZWN0b3JWaWV3SGVpZ2h0
KSwgYWxsb2NhdGlvbi0+aGVpZ2h0KTsKICAgICAgICAgR3RrQWxsb2NhdGlvbiBjaGlsZEFsbG9j
YXRpb24gPSB2aWV3UmVjdDsKLSAgICAgICAgY2hpbGRBbGxvY2F0aW9uLnkgPSBhbGxvY2F0aW9u
LT5oZWlnaHQgLSBpbnNwZWN0b3JWaWV3SGVpZ2h0OwotICAgICAgICBjaGlsZEFsbG9jYXRpb24u
aGVpZ2h0ID0gaW5zcGVjdG9yVmlld0hlaWdodDsKLSAgICAgICAgZ3RrX3dpZGdldF9zaXplX2Fs
bG9jYXRlKHByaXYtPmluc3BlY3RvclZpZXcsICZjaGlsZEFsbG9jYXRpb24pOwogCi0gICAgICAg
IHZpZXdSZWN0LnNldEhlaWdodChzdGQ6Om1heChhbGxvY2F0aW9uLT5oZWlnaHQgLSBpbnNwZWN0
b3JWaWV3SGVpZ2h0LCAxKSk7CisgICAgICAgIGlmIChwcml2LT5pbnNwZWN0b3JBdHRhY2htZW50
U2lkZSA9PSBBdHRhY2htZW50U2lkZUJvdHRvbSkgeworICAgICAgICAgICAgaW50IGluc3BlY3Rv
clZpZXdIZWlnaHQgPSBzdGQ6Om1pbihzdGF0aWNfY2FzdDxpbnQ+KHByaXYtPmluc3BlY3RvclZp
ZXdTaXplKSwgYWxsb2NhdGlvbi0+aGVpZ2h0KTsKKyAgICAgICAgICAgIGNoaWxkQWxsb2NhdGlv
bi54ID0gMDsKKyAgICAgICAgICAgIGNoaWxkQWxsb2NhdGlvbi55ID0gYWxsb2NhdGlvbi0+aGVp
Z2h0IC0gaW5zcGVjdG9yVmlld0hlaWdodDsKKyAgICAgICAgICAgIGNoaWxkQWxsb2NhdGlvbi5o
ZWlnaHQgPSBpbnNwZWN0b3JWaWV3SGVpZ2h0OworICAgICAgICAgICAgdmlld1JlY3Quc2V0SGVp
Z2h0KHN0ZDo6bWF4KGFsbG9jYXRpb24tPmhlaWdodCAtIGluc3BlY3RvclZpZXdIZWlnaHQsIDEp
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBpbnNwZWN0b3JWaWV3V2lkdGgg
PSBzdGQ6Om1pbihzdGF0aWNfY2FzdDxpbnQ+KHByaXYtPmluc3BlY3RvclZpZXdTaXplKSwgYWxs
b2NhdGlvbi0+d2lkdGgpOworICAgICAgICAgICAgY2hpbGRBbGxvY2F0aW9uLnkgPSAwOworICAg
ICAgICAgICAgY2hpbGRBbGxvY2F0aW9uLnggPSBhbGxvY2F0aW9uLT53aWR0aCAtIGluc3BlY3Rv
clZpZXdXaWR0aDsKKyAgICAgICAgICAgIGNoaWxkQWxsb2NhdGlvbi53aWR0aCA9IGluc3BlY3Rv
clZpZXdXaWR0aDsKKyAgICAgICAgICAgIHZpZXdSZWN0LnNldFdpZHRoKHN0ZDo6bWF4KGFsbG9j
YXRpb24tPndpZHRoIC0gaW5zcGVjdG9yVmlld1dpZHRoLCAxKSk7CisgICAgICAgIH0KKworICAg
ICAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUocHJpdi0+aW5zcGVjdG9yVmlldywgJmNoaWxk
QWxsb2NhdGlvbik7CiAgICAgfQogCiAgICAgLy8gVGhlIGF1dGhlbnRpY2F0aW9uIGRpYWxvZyBp
cyBjZW50ZXJlZCBpbiB0aGUgdmlldyByZWN0LCB3aGljaCBtZWFucyB0aGF0IGl0CkBAIC0xMDQ2
LDExICsxMDY4LDExIEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VJbml0aWFsaXplRnVsbFNjcmVl
bkNsaWVudChXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmllCiAgICAgd2Via2l0V2ViVmll
d0Jhc2UtPnByaXYtPmZ1bGxTY3JlZW5DbGllbnQuaW5pdGlhbGl6ZSh3a0NsaWVudCk7CiB9CiAK
LXZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3SGVpZ2h0KFdlYktpdFdlYlZp
ZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgdW5zaWduZWQgaGVpZ2h0KQordm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdTaXplKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRX
ZWJWaWV3QmFzZSwgdW5zaWduZWQgc2l6ZSkKIHsKLSAgICBpZiAod2Via2l0V2ViVmlld0Jhc2Ut
PnByaXYtPmluc3BlY3RvclZpZXdIZWlnaHQgPT0gaGVpZ2h0KQorICAgIGlmICh3ZWJraXRXZWJW
aWV3QmFzZS0+cHJpdi0+aW5zcGVjdG9yVmlld1NpemUgPT0gc2l6ZSkKICAgICAgICAgcmV0dXJu
OwotICAgIHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JWaWV3SGVpZ2h0ID0gaGVp
Z2h0OworICAgIHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JWaWV3U2l6ZSA9IHNp
emU7CiAgICAgaWYgKHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2LT5pbnNwZWN0b3JWaWV3KQogICAg
ICAgICBndGtfd2lkZ2V0X3F1ZXVlX3Jlc2l6ZV9ub19yZWRyYXcoR1RLX1dJREdFVCh3ZWJraXRX
ZWJWaWV3QmFzZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAppbmRleCAyOWJiMTQ1YjAxYjc4
NGQyNjlhOWRjMjQ5YzIxY2ViNjBhODU3Mjg1Li5hZWZiN2JkNDJmZjNmOWEzYzk4NTM1MDk1Y2Uz
NmFjNjRkOTJkZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaApAQCAtMjksNiArMjksNyBAQAog
I2RlZmluZSBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGVfaAogCiAjaW5jbHVkZSAiV2ViQ29udGV4
dE1lbnVQcm94eUd0ay5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVk
ZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdCYXNlLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5LmgiCkBAIC00NSw3ICs0Niw3IEBAIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VDaGlsZE1vdmVSZXNpemUoV2ViS2l0V2ViVmlld0Jhc2UqLCBHdGtXaWRnZXQqLCBjb25z
dCBXZWJDCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRW50ZXJGdWxsU2NyZWVuKFdlYktpdFdlYlZp
ZXdCYXNlKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRXhpdEZ1bGxTY3JlZW4oV2ViS2l0V2Vi
Vmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VJbml0aWFsaXplRnVsbFNjcmVlbkNs
aWVudChXZWJLaXRXZWJWaWV3QmFzZSosIGNvbnN0IFdLRnVsbFNjcmVlbkNsaWVudEd0a0Jhc2Uq
KTsKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3SGVpZ2h0KFdlYktpdFdl
YlZpZXdCYXNlKiwgdW5zaWduZWQgaGVpZ2h0KTsKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRJ
bnNwZWN0b3JWaWV3U2l6ZShXZWJLaXRXZWJWaWV3QmFzZSosIHVuc2lnbmVkIHNpemUpOwogdm9p
ZCB3ZWJraXRXZWJWaWV3QmFzZVNldEFjdGl2ZUNvbnRleHRNZW51UHJveHkoV2ViS2l0V2ViVmll
d0Jhc2UqLCBXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlHdGsqKTsKIFdlYktpdDo6V2ViQ29u
dGV4dE1lbnVQcm94eUd0ayogd2Via2l0V2ViVmlld0Jhc2VHZXRBY3RpdmVDb250ZXh0TWVudVBy
b3h5KFdlYktpdFdlYlZpZXdCYXNlKik7CiBHZGtFdmVudCogd2Via2l0V2ViVmlld0Jhc2VUYWtl
Q29udGV4dE1lbnVFdmVudChXZWJLaXRXZWJWaWV3QmFzZSopOwpAQCAtNzAsNiArNzEsNiBAQCB2
b2lkIHdlYmtpdFdlYlZpZXdCYXNlSGFuZGxlRG93bmxvYWRSZXF1ZXN0KFdlYktpdFdlYlZpZXdC
YXNlKiwgV2ViS2l0OjpEb3dubG9hZAogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQWRkQXV0aGVu
dGljYXRpb25EaWFsb2coV2ViS2l0V2ViVmlld0Jhc2UqLCBHdGtXaWRnZXQqIGF1dGhEaWFsb2cp
Owogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNhbmNlbEF1dGhlbnRpY2F0aW9uRGlhbG9nKFdlYktp
dFdlYlZpZXdCYXNlKik7Ci12b2lkIHdlYmtpdFdlYlZpZXdCYXNlQWRkV2ViSW5zcGVjdG9yKFdl
YktpdFdlYlZpZXdCYXNlKiwgR3RrV2lkZ2V0KiBpbnNwZWN0b3IpOwordm9pZCB3ZWJraXRXZWJW
aWV3QmFzZUFkZFdlYkluc3BlY3RvcihXZWJLaXRXZWJWaWV3QmFzZSosIEd0a1dpZGdldCogaW5z
cGVjdG9yLCBXZWJLaXQ6OkF0dGFjaG1lbnRTaWRlKTsKIAogI2VuZGlmIC8vIFdlYktpdFdlYlZp
ZXdCYXNlUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYkluc3BlY3RvckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYkluc3BlY3RvckNsaWVudEd0ay5jcHAKaW5kZXggNWFmZGQ1YjExMjA2YjcyODM2OGY2M2Zl
MmJjNmU2NzM3NjRjMGViNi4uNTg4NGMzMmFkZmJjMWJmZWYyNmNhMzk0OTE1OGQyMjFhZTU2NDNi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JD
bGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVj
dG9yQ2xpZW50R3RrLmNwcApAQCAtODEsNCArODEsMTEgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGll
bnRHdGs6OmRpZENoYW5nZUF0dGFjaGVkSGVpZ2h0KFdlYkluc3BlY3RvclByb3h5KiBpbnNwZWN0
b3IKICAgICBtX2NsaWVudC5kaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCh0b0FQSShpbnNwZWN0b3Ip
LCBoZWlnaHQsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVj
dG9yQ2xpZW50R3RrOjpkaWRDaGFuZ2VBdHRhY2hlZFdpZHRoKFdlYkluc3BlY3RvclByb3h5KiBp
bnNwZWN0b3IsIHVuc2lnbmVkIHdpZHRoKQoreworICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdl
QXR0YWNoZWRXaWR0aCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50LmRpZENoYW5nZUF0
dGFjaGVkV2lkdGgodG9BUEkoaW5zcGVjdG9yKSwgd2lkdGgsIG1fY2xpZW50LmJhc2UuY2xpZW50
SW5mbyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yQ2xpZW50R3RrLmgKaW5kZXggYjMwYjk0NWNj
YWRhMTJkNDM0N2Q5ZDI1MTFlOTczMjkxODZhMTBlMi4uOWQ3YjBlYjY4ODQ0Yjg4MmZkZjcwYjRk
ZTg0NWU1ZjU3YTU2YThjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0
ay9XZWJJbnNwZWN0b3JDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGF0dGFjaChXZWJJbnNwZWN0b3JQcm94eSopOwogICAgIGJvb2wgZGV0YWNoKFdlYklu
c3BlY3RvclByb3h5Kik7CiAgICAgdm9pZCBkaWRDaGFuZ2VBdHRhY2hlZEhlaWdodChXZWJJbnNw
ZWN0b3JQcm94eSosIHVuc2lnbmVkIGhlaWdodCk7CisgICAgdm9pZCBkaWRDaGFuZ2VBdHRhY2hl
ZFdpZHRoKFdlYkluc3BlY3RvclByb3h5KiwgdW5zaWduZWQgd2lkdGgpOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYkluc3BlY3RvclByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsv
V2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCmluZGV4IDk4N2E5OTJjNGQ2N2ViYWEwMTZiMGZmMDM1
ZDQ0MWFhNzJhNTJmYzEuLjk1MjJhMGE2MjgwNWY3YmFiZGJlYzAxNjFjYjU3NGJjZDcyODAzNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJv
eHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9y
UHJveHlHdGsuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAx
MCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHly
aWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YSA8Z25zQGdub21lLm9yZz4uCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTE3NiwxNSArMTc3LDIwIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtQXR0YWNoKCkKICAgICAgICAgbV9pbnNwZWN0b3JXaW5kb3cgPSAwOwogICAgIH0KIAotICAg
IC8vIFNldCBhIGRlZmF1bHQgYXR0YWNoZWQgaGVpZ2h0IGJhc2VkIG9uIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWwuCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGRlZmF1bHRBdHRhY2hl
ZEhlaWdodCA9IDMwMDsKLSAgICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQgPSBwbGF0
Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpICogMyAvIDQ7Ci0gICAgcGxhdGZvcm1TZXRBdHRh
Y2hlZFdpbmRvd0hlaWdodChzdGQ6Om1heChtaW5pbXVtQXR0YWNoZWRIZWlnaHQsIHN0ZDo6bWlu
KGRlZmF1bHRBdHRhY2hlZEhlaWdodCwgbWF4aW11bUF0dGFjaGVkSGVpZ2h0KSkpOworICAgIC8v
IFNldCBhIGRlZmF1bHQgYXR0YWNoZWQgc2l6ZSBiYXNlZCBvbiBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLgorICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0QXR0YWNoZWRTaXpl
ID0gMzAwOworICAgIGlmIChtX2F0dGFjaG1lbnRTaWRlID09IEF0dGFjaG1lbnRTaWRlQm90dG9t
KSB7CisgICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZEhlaWdodCA9IHBsYXRmb3JtSW5z
cGVjdGVkV2luZG93SGVpZ2h0KCkgKiAzIC8gNDsKKyAgICAgICAgcGxhdGZvcm1TZXRBdHRhY2hl
ZFdpbmRvd0hlaWdodChzdGQ6Om1heChtaW5pbXVtQXR0YWNoZWRIZWlnaHQsIHN0ZDo6bWluKGRl
ZmF1bHRBdHRhY2hlZFNpemUsIG1heGltdW1BdHRhY2hlZEhlaWdodCkpKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRXaWR0aCA9IHBsYXRmb3JtSW5zcGVj
dGVkV2luZG93V2lkdGgoKSAqIDMgLyA0OworICAgICAgICBwbGF0Zm9ybVNldEF0dGFjaGVkV2lu
ZG93V2lkdGgoc3RkOjptYXgobWluaW11bUF0dGFjaGVkV2lkdGgsIHN0ZDo6bWluKGRlZmF1bHRB
dHRhY2hlZFNpemUsIG1heGltdW1BdHRhY2hlZFdpZHRoKSkpOworICAgIH0KIAogICAgIGlmICht
X2NsaWVudC5hdHRhY2godGhpcykpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYmtpdFdlYlZp
ZXdCYXNlQWRkV2ViSW5zcGVjdG9yKFdFQktJVF9XRUJfVklFV19CQVNFKG1fcGFnZS0+dmlld1dp
ZGdldCgpKSwgbV9pbnNwZWN0b3JWaWV3KTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZUFkZFdlYklu
c3BlY3RvcihXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3BhZ2UtPnZpZXdXaWRnZXQoKSksIG1faW5z
cGVjdG9yVmlldywgbV9hdHRhY2htZW50U2lkZSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KG1faW5z
cGVjdG9yVmlldyk7CiB9CiAKQEAgLTIxMiwxMiArMjE4LDE2IEBAIHZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQgaGVpZ2h0KQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX2NsaWVudC5kaWRDaGFuZ2VBdHRhY2hlZEhlaWdodCh0
aGlzLCBoZWlnaHQpOwotICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5zcGVjdG9yVmlld0hlaWdo
dChXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3BhZ2UtPnZpZXdXaWRnZXQoKSksIGhlaWdodCk7Cisg
ICAgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3U2l6ZShXRUJLSVRfV0VCX1ZJRVdf
QkFTRShtX3BhZ2UtPnZpZXdXaWRnZXQoKSksIGhlaWdodCk7CiB9CiAKLXZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkKK3ZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25l
ZCB3aWR0aCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmICghbV9pc0F0dGFjaGVk
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5kaWRDaGFuZ2VBdHRhY2hlZFdpZHRo
KHRoaXMsIHdpZHRoKTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEluc3BlY3RvclZpZXdTaXpl
KFdFQktJVF9XRUJfVklFV19CQVNFKG1fcGFnZS0+dmlld1dpZGdldCgpKSwgd2lkdGgpOwogfQog
CiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFRvb2xiYXJIZWlnaHQodW5zaWdu
ZWQpCg==
</data>
<flag name="review"
          id="242515"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>