<?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>89810</bug_id>
          
          <creation_ts>2012-06-23 06:39:42 -0700</creation_ts>
          <short_desc>[GTK] Test /webkit2/WebKitFindController/hide always fails in Xvfb</short_desc>
          <delta_ts>2013-04-20 01:22:11 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>656074</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-06-23 06:39:42 -0700</bug_when>
    <thetext>It&apos;s flaky when running without Xvfb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877743</commentid>
    <comment_count>1</comment_count>
      <attachid>198694</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-04-18 01:35:47 -0700</bug_when>
    <thetext>Created attachment 198694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877751</commentid>
    <comment_count>2</comment_count>
      <attachid>198694</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-18 02:11:27 -0700</bug_when>
    <thetext>Comment on attachment 198694
Patch

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

Looks good in general, thanks!

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitFindController.cpp:68
&gt; -        g_signal_connect_after(m_webView, &quot;draw&quot;, G_CALLBACK(webViewDraw), this);
&gt; +        webkit_web_view_get_snapshot(m_webView, WEBKIT_SNAPSHOT_REGION_VISIBLE, WEBKIT_SNAPSHOT_OPTIONS_NONE, 0,
&gt; +            reinterpret_cast&lt;GAsyncReadyCallback&gt;(onSnapshotReady), this);

I think we can make this generic so that it can be used by other tests, adding WebViewTest::snapshot(), for example. Instead of the visible region I think you should get the whole document.

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitFindController.cpp:283
&gt; +    g_assert_cmpint(cairo_image_surface_get_width(firstSurface), ==, cairo_image_surface_get_width(secondSurface));
&gt; +    g_assert_cmpint(cairo_image_surface_get_height(firstSurface), ==, cairo_image_surface_get_height(secondSurface));
&gt; +    g_assert_cmpint(cairo_image_surface_get_stride(firstSurface), ==, cairo_image_surface_get_stride(secondSurface));

You should not assert here, you either call this assertSurfacesEqual and assert when they are different, or you leave it as cairoSurfaceEqual and assert on the result. Note that there&apos;s a function for this already in TestWebKitWebView.cpp. Move it to Test.h to make it shareable and use it from both places.

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitFindController.cpp:285
&gt; +        cairo_image_surface_get_width(firstSurface) * cairo_image_surface_get_stride(firstSurface));

Sorry, I told you wrongly, it&apos;s height * stride, not width * stride.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877805</commentid>
    <comment_count>3</comment_count>
      <attachid>198714</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-04-18 03:55:36 -0700</bug_when>
    <thetext>Created attachment 198714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>877935</commentid>
    <comment_count>4</comment_count>
      <attachid>198714</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-18 09:25:40 -0700</bug_when>
    <thetext>Comment on attachment 198714
Patch

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

Much better! Just some minor issues and a memory leak.

&gt; Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp:437
&gt; +    m_surface = 0;

This leaks the surface, this is not a smart pointer. You should check if the poiner is valid can call cairo_surface_destroy.

&gt; Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp:440
&gt; +    return cairo_surface_reference(m_surface);

If you are keeping a reference, it&apos;s better to return your reference and let the caller decide whether she needs to hold a reference or not.

&gt; Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp:443
&gt; +gboolean WebViewTest::cairoSurfacesEqual(cairo_surface_t* s1, cairo_surface_t* s2)

Use bool instead of gboolean. This has nothing to do with WebView, you could add it as a static method to Test, as I proposed before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878349</commentid>
    <comment_count>5</comment_count>
      <attachid>198836</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-04-19 03:13:54 -0700</bug_when>
    <thetext>Created attachment 198836
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878351</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-19 03:14:33 -0700</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>878526</commentid>
    <comment_count>7</comment_count>
      <attachid>198889</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-04-19 09:00:15 -0700</bug_when>
    <thetext>Created attachment 198889
Patch

Rename WebViewTest::waitForSnapshot() method to WebViewTest::getSnapshotAndWaitUntilReady().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878739</commentid>
    <comment_count>8</comment_count>
      <attachid>198889</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-20 01:22:08 -0700</bug_when>
    <thetext>Comment on attachment 198889
Patch

Clearing flags on attachment: 198889

Committed r148788: &lt;http://trac.webkit.org/changeset/148788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878740</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-20 01:22:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198694</attachid>
            <date>2013-04-18 01:35:47 -0700</date>
            <delta_ts>2013-04-18 03:55:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89810-20130418103517.patch</filename>
            <type>text/plain</type>
            <size>9656</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzMyMzZlZjBiNTkxNWVi
ZjZhZmY0OGU4Y2Y3ZjFkZGI5NGM2NmYxMC4uNTcyYTIzMGFlNjQyODllM2FiODdkYTFiYzY5ZDVm
OTYxNGM2MGE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTA0LTE3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEZp
eCB1bml0IHRlc3Qgd2Via2l0Mi9XZWJLaXRGaW5kQ29udHJvbGxlci9oaWRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTgxMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGhhZCBzb21lIGhh
Y2tzIGluIG9yZGVyIHRvIGNvbXBhcmUgYSBwYWdlIHdpdGggaGlnaGxpZ2h0ZWQKKyAgICAgICAg
cmVzdWx0cyBhZnRlciB1c2luZyB0aGUgZmluZCBjb21tYW5kIHdpdGggdGhlIG9yaWdpbmFsIHBh
Z2UuIE5vdyBpdCB1c2VzCisgICAgICAgIHRoZSBzbmFwc2hvdHMgQVBJIHRoYXQgYWxsb3dzIHRv
IG1ha2UgdGhlIHRlc3Qgc2ltcGxlciBhbmQgbW9yZSByZWxpYWJsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChjYWlyb1N1cmZhY2VFcXVhbCk6IEhlbHBlciBmdW5jdGlvbiB0byBjb21wYXJlIHR3byBj
YWlybyBzdXJmYWNlcy4KKyAgICAgICAgKHRlc3RGaW5kQ29udHJvbGxlckhpZGUpOiBNb2RpZnkg
dGVzdCB0byB1c2Ugc25hcHNob3RzLgorCiAyMDEzLTA0LTE3ICBKb29uZSBIdXIgIDxqb29uZS5o
dXJAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW0FDXSBtX3BlbmRpbmdTdXJmYWNlUmVzaXpl
IG5lZWRzIHRvIGJlIGd1YXJkZWQgYnkgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktp
dEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rl
c3RzL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHAKaW5kZXggOTAxNTliODdmY2I5YjM0Mjc2
ZGI0N2Q3Mzc1ODk1ZmEyOTU2ZDE1MC4uOTE3MzRlMTA5M2U4MmRjZjdjNTgxNjMxZDhmNTgzMDU3
NDBkMDQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVz
dHMvVGVzdFdlYktpdEZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0RmluZENvbnRyb2xsZXIuY3BwCkBAIC02Miwy
NSArNjIsMjEgQEAgcHVibGljOgogICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcCk7
CiAgICAgfQogCi0gICAgdm9pZCB3YWl0VW50aWxXZWJWaWV3RHJhd1NpZ25hbCgpCisgICAgdm9p
ZCB3YWl0VW50aWxTbmFwc2hvdElzUmVhZHkoKQogICAgIHsKLSAgICAgICAgZ19zaWduYWxfY29u
bmVjdF9hZnRlcihtX3dlYlZpZXcsICJkcmF3IiwgR19DQUxMQkFDSyh3ZWJWaWV3RHJhdyksIHRo
aXMpOworICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90KG1fd2ViVmlldywgV0VC
S0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxFLCBXRUJLSVRfU05BUFNIT1RfT1BUSU9OU19OT05F
LCAwLAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxHQXN5bmNSZWFkeUNhbGxiYWNrPihv
blNuYXBzaG90UmVhZHkpLCB0aGlzKTsKICAgICAgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxv
b3ApOwogICAgIH0KIAogICAgIEdSZWZQdHI8V2ViS2l0RmluZENvbnRyb2xsZXI+IG1fZmluZENv
bnRyb2xsZXI7CiAgICAgYm9vbCBtX3RleHRGb3VuZDsKICAgICB1bnNpZ25lZCBtX21hdGNoQ291
bnQ7CisgICAgY2Fpcm9fc3VyZmFjZV90KiBtX3NuYXBzaG90OwogCiBwcml2YXRlOgogICAgIGJv
b2wgbV9ydW5GaW5kVW50aWxDb21wbGV0aW9uOwogCi0gICAgc3RhdGljIHZvaWQgd2ViVmlld0Ry
YXcoR3RrV2lkZ2V0ICp3aWRnZXQsIGNhaXJvX3QgKmNyLCBGaW5kQ29udHJvbGxlclRlc3QqIHRl
c3QpCi0gICAgewotICAgICAgICBnX21haW5fbG9vcF9xdWl0KHRlc3QtPm1fbWFpbkxvb3ApOwot
ICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQod2lkZ2V0LCBHX1NJ
R05BTF9NQVRDSF9EQVRBLCAwLCAwLCAwLCAwLCB0ZXN0KTsKLSAgICB9Ci0KICAgICBzdGF0aWMg
dm9pZCBmb3VuZFRleHRDYWxsYmFjayhXZWJLaXRGaW5kQ29udHJvbGxlciosIGd1aW50IG1hdGNo
Q291bnQsIEZpbmRDb250cm9sbGVyVGVzdCogdGVzdCkKICAgICB7CiAgICAgICAgIHRlc3QtPm1f
dGV4dEZvdW5kID0gdHJ1ZTsKQEAgLTEwMiw2ICs5OCwxNSBAQCBwcml2YXRlOgogICAgICAgICBp
ZiAodGVzdC0+bV9ydW5GaW5kVW50aWxDb21wbGV0aW9uKQogICAgICAgICAgICAgZ19tYWluX2xv
b3BfcXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKICAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBvblNu
YXBzaG90UmVhZHkoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR0FzeW5jUmVzdWx0KiByZXN1bHQs
IEZpbmRDb250cm9sbGVyVGVzdCogdGVzdCkKKyAgICB7CisgICAgICAgIEdPd25QdHI8R0Vycm9y
PiBlcnJvcjsKKyAgICAgICAgdGVzdC0+bV9zbmFwc2hvdCA9IHdlYmtpdF93ZWJfdmlld19nZXRf
c25hcHNob3RfZmluaXNoKHdlYlZpZXcsIHJlc3VsdCwgJmVycm9yLm91dFB0cigpKTsKKyAgICAg
ICAgZ19hc3NlcnQoIWVycm9yLmdldCgpKTsKKyAgICAgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0
LT5tX21haW5Mb29wKTsKKyAgICB9CisKIH07CiAKIHN0YXRpYyB2b2lkIHRlc3RGaW5kQ29udHJv
bGxlclRleHRGb3VuZChGaW5kQ29udHJvbGxlclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCkBA
IC0yNzEsMzMgKzI3NiwxMyBAQCBzdGF0aWMgdm9pZCB0ZXN0RmluZENvbnRyb2xsZXJPcHRpb25z
KEZpbmRDb250cm9sbGVyVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydCh0
ZXN0LT5tX3RleHRGb3VuZCk7CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiBnZGtQaXhidWZFcXVhbChH
ZGtQaXhidWYqIGZpcnN0UGl4YnVmLCBHZGtQaXhidWYqIHNlY29uZFBpeGJ1ZikKK3N0YXRpYyBn
Ym9vbGVhbiBjYWlyb1N1cmZhY2VFcXVhbChjYWlyb19zdXJmYWNlX3QqIGZpcnN0U3VyZmFjZSwg
Y2Fpcm9fc3VyZmFjZV90KiBzZWNvbmRTdXJmYWNlKQogewotICAgIGlmIChnZGtfcGl4YnVmX2dl
dF9iaXRzX3Blcl9zYW1wbGUoZmlyc3RQaXhidWYpICE9IGdka19waXhidWZfZ2V0X2JpdHNfcGVy
X3NhbXBsZShzZWNvbmRQaXhidWYpCi0gICAgICAgIHx8IGdka19waXhidWZfZ2V0X2hhc19hbHBo
YShmaXJzdFBpeGJ1ZikgIT0gZ2RrX3BpeGJ1Zl9nZXRfaGFzX2FscGhhKHNlY29uZFBpeGJ1ZikK
LSAgICAgICAgfHwgZ2RrX3BpeGJ1Zl9nZXRfaGVpZ2h0KGZpcnN0UGl4YnVmKSAhPSBnZGtfcGl4
YnVmX2dldF9oZWlnaHQoc2Vjb25kUGl4YnVmKQotICAgICAgICB8fCBnZGtfcGl4YnVmX2dldF9u
X2NoYW5uZWxzKGZpcnN0UGl4YnVmKSAhPSBnZGtfcGl4YnVmX2dldF9uX2NoYW5uZWxzKHNlY29u
ZFBpeGJ1ZikKLSAgICAgICAgfHwgZ2RrX3BpeGJ1Zl9nZXRfcm93c3RyaWRlKGZpcnN0UGl4YnVm
KSAhPSBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUoc2Vjb25kUGl4YnVmKQotICAgICAgICB8fCBn
ZGtfcGl4YnVmX2dldF93aWR0aChmaXJzdFBpeGJ1ZikgIT0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgo
c2Vjb25kUGl4YnVmKSkKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAgaW50IHBpeGJ1ZlJv
d3N0cmlkZSA9IGdka19waXhidWZfZ2V0X3Jvd3N0cmlkZShmaXJzdFBpeGJ1Zik7Ci0gICAgaW50
IHBpeGJ1ZkhlaWdodCA9IGdka19waXhidWZfZ2V0X2hlaWdodChmaXJzdFBpeGJ1Zik7Ci0gICAg
aW50IHBpeGJ1ZldpZHRoID0gZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgoZmlyc3RQaXhidWYpOwotICAg
IGludCBudW1iZXJPZkNoYW5uZWxzID0gZ2RrX3BpeGJ1Zl9nZXRfbl9jaGFubmVscyhmaXJzdFBp
eGJ1Zik7Ci0gICAgaW50IGJpdHNQZXJTYW1wbGUgPSBnZGtfcGl4YnVmX2dldF9iaXRzX3Blcl9z
YW1wbGUoZmlyc3RQaXhidWYpOwotCi0gICAgLy8gTGFzdCByb3cgY2FuIGJlIG9mIGRpZmZlcmVu
dCBsZW5ndGguIFRha2VuIGZyb20gZ2RrLXBpeGJ1ZiBkb2N1bWVudGF0aW9uLgotICAgIGludCB0
b3RhbExlbmd0aCA9IChwaXhidWZIZWlnaHQgLSAxKSAqIHBpeGJ1ZlJvd3N0cmlkZSBcCi0gICAg
ICAgICsgcGl4YnVmV2lkdGggKiAoKG51bWJlck9mQ2hhbm5lbHMgKiBiaXRzUGVyU2FtcGxlICsg
NykgLyA4KTsKLQotICAgIGd1Y2hhciogZmlyc3RQaXhlbHMgPSBnZGtfcGl4YnVmX2dldF9waXhl
bHMoZmlyc3RQaXhidWYpOwotICAgIGd1Y2hhciogc2Vjb25kUGl4ZWxzID0gZ2RrX3BpeGJ1Zl9n
ZXRfcGl4ZWxzKHNlY29uZFBpeGJ1Zik7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbExl
bmd0aDsgaSsrKQotICAgICAgICBpZiAoZmlyc3RQaXhlbHNbaV0gIT0gc2Vjb25kUGl4ZWxzW2ld
KQotICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAgcmV0dXJuIFRSVUU7CisgICAgZ19h
c3NlcnRfY21waW50KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3dpZHRoKGZpcnN0U3VyZmFjZSks
ID09LCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzZWNvbmRTdXJmYWNlKSk7CisgICAg
Z19hc3NlcnRfY21waW50KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hlaWdodChmaXJzdFN1cmZh
Y2UpLCA9PSwgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHNlY29uZFN1cmZhY2UpKTsK
KyAgICBnX2Fzc2VydF9jbXBpbnQoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRlKGZpcnN0
U3VyZmFjZSksID09LCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9zdHJpZGUoc2Vjb25kU3VyZmFj
ZSkpOworICAgIHJldHVybiAhbWVtY21wKGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEoZmly
c3RTdXJmYWNlKSwgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzZWNvbmRTdXJmYWNlKSwK
KyAgICAgICAgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lkdGgoZmlyc3RTdXJmYWNlKSAqIGNh
aXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShmaXJzdFN1cmZhY2UpKTsKIH0KIAogc3RhdGlj
IHZvaWQgdGVzdEZpbmRDb250cm9sbGVySGlkZShGaW5kQ29udHJvbGxlclRlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCkBAIC0zMDYsMzIgKzI5MSwzMiBAQCBzdGF0aWMgdm9pZCB0ZXN0RmluZENv
bnRyb2xsZXJIaWRlKEZpbmRDb250cm9sbGVyVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAg
ICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIAogICAgIHRlc3QtPnNob3dJbldpbmRv
d0FuZFdhaXRVbnRpbE1hcHBlZCgpOwotICAgIGludCBhbGxvY2F0ZWRIZWlnaHQgPSBndGtfd2lk
Z2V0X2dldF9hbGxvY2F0ZWRfaGVpZ2h0KEdUS19XSURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0g
ICAgaW50IGFsbG9jYXRlZFdpZHRoID0gZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGVkX3dpZHRoKEdU
S19XSURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0gICAgR2RrV2luZG93KiB3ZWJWaWV3R2RrV2lu
ZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQodGVzdC0+bV93ZWJWaWV3KSk7
Ci0gICAgZ19hc3NlcnQod2ViVmlld0dka1dpbmRvdyk7CiAKLSAgICB0ZXN0LT53YWl0VW50aWxX
ZWJWaWV3RHJhd1NpZ25hbCgpOwotICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBvcmlnaW5hbFBpeGJ1
ZiA9IGFkb3B0R1JlZihnZGtfcGl4YnVmX2dldF9mcm9tX3dpbmRvdyh3ZWJWaWV3R2RrV2luZG93
LCAwLCAwLCBhbGxvY2F0ZWRIZWlnaHQsIGFsbG9jYXRlZFdpZHRoKSk7Ci0gICAgZ19hc3NlcnQo
b3JpZ2luYWxQaXhidWYpOworICAgIHRlc3QtPndhaXRVbnRpbFNuYXBzaG90SXNSZWFkeSgpOwor
ICAgIGNhaXJvX3N1cmZhY2VfdCogb3JpZ2luYWxTdXJmYWNlID0gdGVzdC0+bV9zbmFwc2hvdDsK
KyAgICBnX2Fzc2VydChvcmlnaW5hbFN1cmZhY2UpOwogCiAgICAgdGVzdC0+ZmluZCgidGVzdGlu
ZyIsIFdFQktJVF9GSU5EX09QVElPTlNfTk9ORSwgMSk7CiAgICAgdGVzdC0+d2FpdFVudGlsRmlu
ZEZpbmlzaGVkKCk7CiAgICAgZ19hc3NlcnQodGVzdC0+bV90ZXh0Rm91bmQpOwogCi0gICAgdGVz
dC0+d2FpdFVudGlsV2ViVmlld0RyYXdTaWduYWwoKTsKLSAgICBHUmVmUHRyPEdka1BpeGJ1Zj4g
aGlnaGxpZ2h0UGl4YnVmID0gYWRvcHRHUmVmKGdka19waXhidWZfZ2V0X2Zyb21fd2luZG93KHdl
YlZpZXdHZGtXaW5kb3csIDAsIDAsIGFsbG9jYXRlZEhlaWdodCwgYWxsb2NhdGVkV2lkdGgpKTsK
LSAgICBnX2Fzc2VydChoaWdobGlnaHRQaXhidWYpOwotICAgIGdfYXNzZXJ0KCFnZGtQaXhidWZF
cXVhbChvcmlnaW5hbFBpeGJ1Zi5nZXQoKSwgaGlnaGxpZ2h0UGl4YnVmLmdldCgpKSk7CisgICAg
dGVzdC0+d2FpdFVudGlsU25hcHNob3RJc1JlYWR5KCk7CisgICAgY2Fpcm9fc3VyZmFjZV90KiBo
aWdobGlnaHRTdXJmYWNlID0gdGVzdC0+bV9zbmFwc2hvdDsKKyAgICBnX2Fzc2VydChoaWdobGln
aHRTdXJmYWNlKTsKKyAgICBnX2Fzc2VydCghY2Fpcm9TdXJmYWNlRXF1YWwob3JpZ2luYWxTdXJm
YWNlLCBoaWdobGlnaHRTdXJmYWNlKSk7CiAKICAgICBXZWJLaXRGaW5kQ29udHJvbGxlciogZmlu
ZENvbnRyb2xsZXIgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ZpbmRfY29udHJvbGxlcih0ZXN0LT5t
X3dlYlZpZXcpOwogICAgIHdlYmtpdF9maW5kX2NvbnRyb2xsZXJfc2VhcmNoX2ZpbmlzaChmaW5k
Q29udHJvbGxlcik7CiAgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5k
KHRlc3QtPm1fd2ViVmlldywgIlVuc2VsZWN0Iik7CiAKLSAgICB0ZXN0LT53YWl0VW50aWxXZWJW
aWV3RHJhd1NpZ25hbCgpOwotICAgIEdSZWZQdHI8R2RrUGl4YnVmPiB1bmhpZ2hsaWdodFBpeGJ1
ZiA9IGFkb3B0R1JlZihnZGtfcGl4YnVmX2dldF9mcm9tX3dpbmRvdyh3ZWJWaWV3R2RrV2luZG93
LCAwLCAwLCBhbGxvY2F0ZWRIZWlnaHQsIGFsbG9jYXRlZFdpZHRoKSk7Ci0gICAgZ19hc3NlcnQo
dW5oaWdobGlnaHRQaXhidWYpOwotICAgIGdfYXNzZXJ0KGdka1BpeGJ1ZkVxdWFsKG9yaWdpbmFs
UGl4YnVmLmdldCgpLCB1bmhpZ2hsaWdodFBpeGJ1Zi5nZXQoKSkpOworICAgIHRlc3QtPndhaXRV
bnRpbFNuYXBzaG90SXNSZWFkeSgpOworICAgIGNhaXJvX3N1cmZhY2VfdCogdW5oaWdobGlnaHRT
dXJmYWNlID0gdGVzdC0+bV9zbmFwc2hvdDsKKyAgICBnX2Fzc2VydCh1bmhpZ2hsaWdodFN1cmZh
Y2UpOworICAgIGdfYXNzZXJ0KGNhaXJvU3VyZmFjZUVxdWFsKG9yaWdpbmFsU3VyZmFjZSwgdW5o
aWdobGlnaHRTdXJmYWNlKSk7CisKKyAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kob3JpZ2luYWxT
dXJmYWNlKTsKKyAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3koaGlnaGxpZ2h0U3VyZmFjZSk7Cisg
ICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHVuaGlnaGxpZ2h0U3VyZmFjZSk7CiB9CiAKIHN0YXRp
YyB2b2lkIHRlc3RGaW5kQ29udHJvbGxlckluc3RhbmNlKEZpbmRDb250cm9sbGVyVGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA2MDFiMGFjZWI4NTFkYWU2MDEwZTA3NDkzZTU5YWNjMmE2MTdiZmY0Li43
YmUyMmFkZTg5MmNhMjhhYmVkMzUzYWY5MDc5ZjZhNmM4YTlmMmY1IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMt
MDQtMTcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS10gRml4IHVuaXQgdGVzdCB3ZWJraXQyL1dlYktpdEZpbmRDb250cm9sbGVyL2hpZGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5ODEwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L3J1bi1ndGstdGVzdHM6CisgICAgICAgIChUZXN0UnVubmVyKTogVW5za2lwIHRlc3Qgd2Via2l0
Mi9XZWJLaXRGaW5kQ29udHJvbGxlci9oaWRlLgorCiAyMDEzLTA0LTE3ICBaYW4gRG9iZXJzZWsg
IDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0Rhc2hib2FyZF0gUmVtb3ZlIGNv
ZGUgZm9yIHNob3dpbmcgJ1dlYktpdCByb2xsJyBhbm5vdGF0aW9ucyBpbiB0aW1lbGluZXMgZm9y
IENocm9taXVtIGJ1aWxkZXJzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVz
dHMgYi9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMKaW5kZXggM2Q0Nzk5OTA4MGRjZWViNDJh
NmRiYTJiMmMzNTkzNjdlMDE1MmM3Zi4uN2VkNWQ0ZDdiMjlkMzQ0ZGU4OGQ4ODhkMmYxODZmNmY4
NDYzZjc2ZCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCisrKyBiL1Rv
b2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cwpAQCAtNzAsNyArNzAsNiBAQCBjbGFzcyBUZXN0UnVu
bmVyOgogICAgICAgICBTa2lwcGVkVGVzdCgiV2ViS2l0MkFQSVRlc3RzL1Rlc3RJbnNwZWN0b3JT
ZXJ2ZXIiLCBTa2lwcGVkVGVzdC5FTlRJUkVfU1VJVEUsICJUZXN0IHRpbWVzIG91dCIsIDEwNTg2
NiksCiAgICAgICAgIFNraXBwZWRUZXN0KCJXZWJLaXQyQVBJVGVzdHMvVGVzdFJlc291cmNlcyIs
ICIvd2Via2l0Mi9XZWJLaXRXZWJWaWV3L3Jlc291cmNlcyIsICJUZXN0IGlzIGZsYWt5IGluIEdU
SyBMaW51eCAzMi1iaXQgUmVsZWFzZSBib3QiLCA4Mjg2OCksCiAgICAgICAgIFNraXBwZWRUZXN0
KCJXZWJLaXQyQVBJVGVzdHMvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkiLCAiL3dlYmtpdDIvV2Vi
S2l0QWNjZXNzaWJpbGl0eS9hdHNwaS1iYXNpYy1oaWVyYXJjaHkiLCAiVGVzdCBmYWlscyIsIDEw
MDQwOCksCi0gICAgICAgIFNraXBwZWRUZXN0KCJXZWJLaXQyQVBJVGVzdHMvVGVzdFdlYktpdEZp
bmRDb250cm9sbGVyIiwgIi93ZWJraXQyL1dlYktpdEZpbmRDb250cm9sbGVyL2hpZGUiLCAiVGVz
dCBhbHdheXMgZmFpbHMgaW4gWHZmYiIsIDg5ODEwKSwKICAgICAgICAgU2tpcHBlZFRlc3QoIlRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdDIiLCAiV2ViS2l0Mi5DYW5IYW5kbGVSZXF1ZXN0IiwgIlRl
c3QgZmFpbHMiLCA4ODQ1MyksCiAgICAgICAgIFNraXBwZWRUZXN0KCJUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXQyIiwgIldlYktpdDIuTW91c2VNb3ZlQWZ0ZXJDcmFzaCIsICJUZXN0IGlzIGZsYWt5
IiwgODUwNjYpLAogICAgICAgICBTa2lwcGVkVGVzdCgiVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
MiIsICJXZWJLaXQyLk5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlcyIsICJU
ZXN0IGlzIGZsYWt5IiwgODUwNjYpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198714</attachid>
            <date>2013-04-18 03:55:36 -0700</date>
            <delta_ts>2013-04-19 03:13:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89810-20130418125506.patch</filename>
            <type>text/plain</type>
            <size>16495</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzMyMzZlZjBiNTkxNWVi
ZjZhZmY0OGU4Y2Y3ZjFkZGI5NGM2NmYxMC4uN2NmMzFhMDVlZDYyMjA3YTE2NTVkNDYzYzg1NDgw
MWRkYWYxMjhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA0LTE4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEZp
eCB1bml0IHRlc3Qgd2Via2l0Mi9XZWJLaXRGaW5kQ29udHJvbGxlci9oaWRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTgxMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGhhZCBzb21lIGhh
Y2tzIGluIG9yZGVyIHRvIGNvbXBhcmUgYSBwYWdlIHdpdGggaGlnaGxpZ2h0ZWQKKyAgICAgICAg
cmVzdWx0cyBhZnRlciB1c2luZyB0aGUgZmluZCBjb21tYW5kIHdpdGggdGhlIG9yaWdpbmFsIHBh
Z2UuIE5vdyBpdCB1c2VzCisgICAgICAgIHRoZSBzbmFwc2hvdHMgQVBJIHRoYXQgYWxsb3dzIHRv
IG1ha2UgdGhlIHRlc3Qgc2ltcGxlciBhbmQgbW9yZSByZWxpYWJsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHA6CisgICAg
ICAgICh0ZXN0RmluZENvbnRyb2xsZXJIaWRlKTogTW9kaWZ5IHRlc3QgdG8gdXNlIHNuYXBzaG90
cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5j
cHA6CisgICAgICAgICh0ZXN0V2ViVmlld1NuYXBzaG90KTogTW92ZSBiYXNpYyBzbmFwc2hvcCBt
ZXRob2RzIHRvIFdlYlZpZXdUZXN0IHRvCisgICAgICAgIHNoYXJlIHRoZW0gd2l0aCBUZXN0V2Vi
S2l0RmluZENvbnRyb2xsZXIgdGVzdC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0
cy9XZWJWaWV3VGVzdC5jcHA6IE1ldGhvZHMgbW92ZWQgZnJvbQorICAgICAgICBUZXN0V2ViS2l0
V2ViVmlldy4KKyAgICAgICAgKFdlYlZpZXdUZXN0OjpXZWJWaWV3VGVzdCk6IEluaXRpYWxpemUg
Y2Fpcm8gc3VyZmFjZS4KKyAgICAgICAgKFdlYlZpZXdUZXN0Ojp+V2ViVmlld1Rlc3QpOiBEZXN0
cm95IGNhaXJvIHN1cmZhY2UuCisgICAgICAgIChvblNuYXBzaG90UmVhZHkpOiBDYWxsYmFjayB0
byBzZXQgdGhlIGNhaXJvIHN1cmZhY2Ugd2hlbiB0aGUgc25hcHNob3QKKyAgICAgICAgaXMgcmVh
ZHkuCisgICAgICAgIChXZWJWaWV3VGVzdDo6d2FpdEZvclNuYXBzaG90KTogTWV0aG9kIHRoYXQg
dGFrZXMgYSBzbmFwc2hvdCBhbmQgcmV0dXJucworICAgICAgICB0aGUgY2Fpcm8gc3VyZmFjZS4K
KyAgICAgICAgKFdlYlZpZXdUZXN0OjpjYWlyb1N1cmZhY2VzRXF1YWwpOiBIZWxwZXIgZnVuY3Rp
b24gdG8gY29tcGFyZSB0d28gY2Fpcm8KKyAgICAgICAgc3VyZmFjZXMuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rlc3QuaDogQWRkIG5ldyBtZXRob2QgaGVhZGVy
cyBhbmQKKyAgICAgICAgYXR0cmlidXRlIGZvciB0aGUgY2Fpcm8gc3VyZmFjZS4KKwogMjAxMy0w
NC0xNyAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtB
Q10gbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSBuZWVkcyB0byBiZSBndWFyZGVkIGJ5IFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0RmluZENvbnRyb2xsZXIuY3Bw
CmluZGV4IDkwMTU5Yjg3ZmNiOWIzNDI3NmRiNDdkNzM3NTg5NWZhMjk1NmQxNTAuLmI0ZDNhZGJk
MzI4MzkwYmIyZmQyMTUyYzhiNjc0ZjU3ZWI3MGVkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdEZp
bmRDb250cm9sbGVyLmNwcApAQCAtNjIsMTIgKzYyLDYgQEAgcHVibGljOgogICAgICAgICBnX21h
aW5fbG9vcF9ydW4obV9tYWluTG9vcCk7CiAgICAgfQogCi0gICAgdm9pZCB3YWl0VW50aWxXZWJW
aWV3RHJhd1NpZ25hbCgpCi0gICAgewotICAgICAgICBnX3NpZ25hbF9jb25uZWN0X2FmdGVyKG1f
d2ViVmlldywgImRyYXciLCBHX0NBTExCQUNLKHdlYlZpZXdEcmF3KSwgdGhpcyk7Ci0gICAgICAg
IGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKLSAgICB9Ci0KICAgICBHUmVmUHRyPFdlYktp
dEZpbmRDb250cm9sbGVyPiBtX2ZpbmRDb250cm9sbGVyOwogICAgIGJvb2wgbV90ZXh0Rm91bmQ7
CiAgICAgdW5zaWduZWQgbV9tYXRjaENvdW50OwpAQCAtNzUsMTIgKzY5LDYgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBib29sIG1fcnVuRmluZFVudGlsQ29tcGxldGlvbjsKIAotICAgIHN0YXRp
YyB2b2lkIHdlYlZpZXdEcmF3KEd0a1dpZGdldCAqd2lkZ2V0LCBjYWlyb190ICpjciwgRmluZENv
bnRyb2xsZXJUZXN0KiB0ZXN0KQotICAgIHsKLSAgICAgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0
LT5tX21haW5Mb29wKTsKLSAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRj
aGVkKHdpZGdldCwgR19TSUdOQUxfTUFUQ0hfREFUQSwgMCwgMCwgMCwgMCwgdGVzdCk7Ci0gICAg
fQotCiAgICAgc3RhdGljIHZvaWQgZm91bmRUZXh0Q2FsbGJhY2soV2ViS2l0RmluZENvbnRyb2xs
ZXIqLCBndWludCBtYXRjaENvdW50LCBGaW5kQ29udHJvbGxlclRlc3QqIHRlc3QpCiAgICAgewog
ICAgICAgICB0ZXN0LT5tX3RleHRGb3VuZCA9IHRydWU7CkBAIC0yNzEsNjcgKzI1OSwzNSBAQCBz
dGF0aWMgdm9pZCB0ZXN0RmluZENvbnRyb2xsZXJPcHRpb25zKEZpbmRDb250cm9sbGVyVGVzdCog
dGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydCh0ZXN0LT5tX3RleHRGb3VuZCk7CiB9
CiAKLXN0YXRpYyBnYm9vbGVhbiBnZGtQaXhidWZFcXVhbChHZGtQaXhidWYqIGZpcnN0UGl4YnVm
LCBHZGtQaXhidWYqIHNlY29uZFBpeGJ1ZikKLXsKLSAgICBpZiAoZ2RrX3BpeGJ1Zl9nZXRfYml0
c19wZXJfc2FtcGxlKGZpcnN0UGl4YnVmKSAhPSBnZGtfcGl4YnVmX2dldF9iaXRzX3Blcl9zYW1w
bGUoc2Vjb25kUGl4YnVmKQotICAgICAgICB8fCBnZGtfcGl4YnVmX2dldF9oYXNfYWxwaGEoZmly
c3RQaXhidWYpICE9IGdka19waXhidWZfZ2V0X2hhc19hbHBoYShzZWNvbmRQaXhidWYpCi0gICAg
ICAgIHx8IGdka19waXhidWZfZ2V0X2hlaWdodChmaXJzdFBpeGJ1ZikgIT0gZ2RrX3BpeGJ1Zl9n
ZXRfaGVpZ2h0KHNlY29uZFBpeGJ1ZikKLSAgICAgICAgfHwgZ2RrX3BpeGJ1Zl9nZXRfbl9jaGFu
bmVscyhmaXJzdFBpeGJ1ZikgIT0gZ2RrX3BpeGJ1Zl9nZXRfbl9jaGFubmVscyhzZWNvbmRQaXhi
dWYpCi0gICAgICAgIHx8IGdka19waXhidWZfZ2V0X3Jvd3N0cmlkZShmaXJzdFBpeGJ1ZikgIT0g
Z2RrX3BpeGJ1Zl9nZXRfcm93c3RyaWRlKHNlY29uZFBpeGJ1ZikKLSAgICAgICAgfHwgZ2RrX3Bp
eGJ1Zl9nZXRfd2lkdGgoZmlyc3RQaXhidWYpICE9IGdka19waXhidWZfZ2V0X3dpZHRoKHNlY29u
ZFBpeGJ1ZikpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIGludCBwaXhidWZSb3dzdHJp
ZGUgPSBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUoZmlyc3RQaXhidWYpOwotICAgIGludCBwaXhi
dWZIZWlnaHQgPSBnZGtfcGl4YnVmX2dldF9oZWlnaHQoZmlyc3RQaXhidWYpOwotICAgIGludCBw
aXhidWZXaWR0aCA9IGdka19waXhidWZfZ2V0X3dpZHRoKGZpcnN0UGl4YnVmKTsKLSAgICBpbnQg
bnVtYmVyT2ZDaGFubmVscyA9IGdka19waXhidWZfZ2V0X25fY2hhbm5lbHMoZmlyc3RQaXhidWYp
OwotICAgIGludCBiaXRzUGVyU2FtcGxlID0gZ2RrX3BpeGJ1Zl9nZXRfYml0c19wZXJfc2FtcGxl
KGZpcnN0UGl4YnVmKTsKLQotICAgIC8vIExhc3Qgcm93IGNhbiBiZSBvZiBkaWZmZXJlbnQgbGVu
Z3RoLiBUYWtlbiBmcm9tIGdkay1waXhidWYgZG9jdW1lbnRhdGlvbi4KLSAgICBpbnQgdG90YWxM
ZW5ndGggPSAocGl4YnVmSGVpZ2h0IC0gMSkgKiBwaXhidWZSb3dzdHJpZGUgXAotICAgICAgICAr
IHBpeGJ1ZldpZHRoICogKChudW1iZXJPZkNoYW5uZWxzICogYml0c1BlclNhbXBsZSArIDcpIC8g
OCk7Ci0KLSAgICBndWNoYXIqIGZpcnN0UGl4ZWxzID0gZ2RrX3BpeGJ1Zl9nZXRfcGl4ZWxzKGZp
cnN0UGl4YnVmKTsKLSAgICBndWNoYXIqIHNlY29uZFBpeGVscyA9IGdka19waXhidWZfZ2V0X3Bp
eGVscyhzZWNvbmRQaXhidWYpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdG90YWxMZW5ndGg7
IGkrKykKLSAgICAgICAgaWYgKGZpcnN0UGl4ZWxzW2ldICE9IHNlY29uZFBpeGVsc1tpXSkKLSAg
ICAgICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIHJldHVybiBUUlVFOwotfQotCiBzdGF0aWMg
dm9pZCB0ZXN0RmluZENvbnRyb2xsZXJIaWRlKEZpbmRDb250cm9sbGVyVGVzdCogdGVzdCwgZ2Nv
bnN0cG9pbnRlcikKIHsKICAgICB0ZXN0LT5sb2FkSHRtbCh0ZXN0U3RyaW5nLCAwKTsKICAgICB0
ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIAogICAgIHRlc3QtPnNob3dJbldpbmRvd0Fu
ZFdhaXRVbnRpbE1hcHBlZCgpOwotICAgIGludCBhbGxvY2F0ZWRIZWlnaHQgPSBndGtfd2lkZ2V0
X2dldF9hbGxvY2F0ZWRfaGVpZ2h0KEdUS19XSURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0gICAg
aW50IGFsbG9jYXRlZFdpZHRoID0gZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGVkX3dpZHRoKEdUS19X
SURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0gICAgR2RrV2luZG93KiB3ZWJWaWV3R2RrV2luZG93
ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0g
ICAgZ19hc3NlcnQod2ViVmlld0dka1dpbmRvdyk7CiAKLSAgICB0ZXN0LT53YWl0VW50aWxXZWJW
aWV3RHJhd1NpZ25hbCgpOwotICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBvcmlnaW5hbFBpeGJ1ZiA9
IGFkb3B0R1JlZihnZGtfcGl4YnVmX2dldF9mcm9tX3dpbmRvdyh3ZWJWaWV3R2RrV2luZG93LCAw
LCAwLCBhbGxvY2F0ZWRIZWlnaHQsIGFsbG9jYXRlZFdpZHRoKSk7Ci0gICAgZ19hc3NlcnQob3Jp
Z2luYWxQaXhidWYpOworICAgIGNhaXJvX3N1cmZhY2VfdCogb3JpZ2luYWxTdXJmYWNlID0gdGVz
dC0+d2FpdEZvclNuYXBzaG90KFdFQktJVF9TTkFQU0hPVF9SRUdJT05fRlVMTF9ET0NVTUVOVCwg
V0VCS0lUX1NOQVBTSE9UX09QVElPTlNfTk9ORSk7CisgICAgZ19hc3NlcnQob3JpZ2luYWxTdXJm
YWNlKTsKIAogICAgIHRlc3QtPmZpbmQoInRlc3RpbmciLCBXRUJLSVRfRklORF9PUFRJT05TX05P
TkUsIDEpOwogICAgIHRlc3QtPndhaXRVbnRpbEZpbmRGaW5pc2hlZCgpOwogICAgIGdfYXNzZXJ0
KHRlc3QtPm1fdGV4dEZvdW5kKTsKIAotICAgIHRlc3QtPndhaXRVbnRpbFdlYlZpZXdEcmF3U2ln
bmFsKCk7Ci0gICAgR1JlZlB0cjxHZGtQaXhidWY+IGhpZ2hsaWdodFBpeGJ1ZiA9IGFkb3B0R1Jl
ZihnZGtfcGl4YnVmX2dldF9mcm9tX3dpbmRvdyh3ZWJWaWV3R2RrV2luZG93LCAwLCAwLCBhbGxv
Y2F0ZWRIZWlnaHQsIGFsbG9jYXRlZFdpZHRoKSk7Ci0gICAgZ19hc3NlcnQoaGlnaGxpZ2h0UGl4
YnVmKTsKLSAgICBnX2Fzc2VydCghZ2RrUGl4YnVmRXF1YWwob3JpZ2luYWxQaXhidWYuZ2V0KCks
IGhpZ2hsaWdodFBpeGJ1Zi5nZXQoKSkpOworICAgIGNhaXJvX3N1cmZhY2VfdCogaGlnaGxpZ2h0
U3VyZmFjZSA9IHRlc3QtPndhaXRGb3JTbmFwc2hvdChXRUJLSVRfU05BUFNIT1RfUkVHSU9OX0ZV
TExfRE9DVU1FTlQsIFdFQktJVF9TTkFQU0hPVF9PUFRJT05TX05PTkUpOworICAgIGdfYXNzZXJ0
KGhpZ2hsaWdodFN1cmZhY2UpOworICAgIGdfYXNzZXJ0KCFXZWJWaWV3VGVzdDo6Y2Fpcm9TdXJm
YWNlc0VxdWFsKG9yaWdpbmFsU3VyZmFjZSwgaGlnaGxpZ2h0U3VyZmFjZSkpOwogCiAgICAgV2Vi
S2l0RmluZENvbnRyb2xsZXIqIGZpbmRDb250cm9sbGVyID0gd2Via2l0X3dlYl92aWV3X2dldF9m
aW5kX2NvbnRyb2xsZXIodGVzdC0+bV93ZWJWaWV3KTsKICAgICB3ZWJraXRfZmluZF9jb250cm9s
bGVyX3NlYXJjaF9maW5pc2goZmluZENvbnRyb2xsZXIpOwogICAgIHdlYmtpdF93ZWJfdmlld19l
eGVjdXRlX2VkaXRpbmdfY29tbWFuZCh0ZXN0LT5tX3dlYlZpZXcsICJVbnNlbGVjdCIpOwogCi0g
ICAgdGVzdC0+d2FpdFVudGlsV2ViVmlld0RyYXdTaWduYWwoKTsKLSAgICBHUmVmUHRyPEdka1Bp
eGJ1Zj4gdW5oaWdobGlnaHRQaXhidWYgPSBhZG9wdEdSZWYoZ2RrX3BpeGJ1Zl9nZXRfZnJvbV93
aW5kb3cod2ViVmlld0dka1dpbmRvdywgMCwgMCwgYWxsb2NhdGVkSGVpZ2h0LCBhbGxvY2F0ZWRX
aWR0aCkpOwotICAgIGdfYXNzZXJ0KHVuaGlnaGxpZ2h0UGl4YnVmKTsKLSAgICBnX2Fzc2VydChn
ZGtQaXhidWZFcXVhbChvcmlnaW5hbFBpeGJ1Zi5nZXQoKSwgdW5oaWdobGlnaHRQaXhidWYuZ2V0
KCkpKTsKKyAgICBjYWlyb19zdXJmYWNlX3QqIHVuaGlnaGxpZ2h0U3VyZmFjZSA9IHRlc3QtPndh
aXRGb3JTbmFwc2hvdChXRUJLSVRfU05BUFNIT1RfUkVHSU9OX0ZVTExfRE9DVU1FTlQsIFdFQktJ
VF9TTkFQU0hPVF9PUFRJT05TX05PTkUpOworICAgIGdfYXNzZXJ0KHVuaGlnaGxpZ2h0U3VyZmFj
ZSk7CisgICAgZ19hc3NlcnQoV2ViVmlld1Rlc3Q6OmNhaXJvU3VyZmFjZXNFcXVhbChvcmlnaW5h
bFN1cmZhY2UsIHVuaGlnaGxpZ2h0U3VyZmFjZSkpOworCisgICAgY2Fpcm9fc3VyZmFjZV9kZXN0
cm95KG9yaWdpbmFsU3VyZmFjZSk7CisgICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KGhpZ2hsaWdo
dFN1cmZhY2UpOworICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveSh1bmhpZ2hsaWdodFN1cmZhY2Up
OwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0RmluZENvbnRyb2xsZXJJbnN0YW5jZShGaW5kQ29udHJv
bGxlclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5jcHAKaW5k
ZXggOTUxMDNkYTU1Y2Y0NjZlOGMwMmI1YzY4OWI4OGQwZmJkNDhmMGE4OC4uMDMxNTBkN2RkNDA4
YWJjNWFhOGE3OTJhODkyZjk1ZGFkZDE3N2ZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcApA
QCAtMTE1MCwzNCArMTE1MCw2IEBAIGNsYXNzIFNuYXBzaG90V2ViVmlld1Rlc3Q6IHB1YmxpYyBX
ZWJWaWV3VGVzdCB7CiBwdWJsaWM6CiAgICAgTUFLRV9HTElCX1RFU1RfRklYVFVSRShTbmFwc2hv
dFdlYlZpZXdUZXN0KTsKIAotICAgIFNuYXBzaG90V2ViVmlld1Rlc3QoKQotICAgICAgICA6IG1f
c3VyZmFjZSgwKQotICAgIHsKLSAgICB9Ci0KLSAgICB+U25hcHNob3RXZWJWaWV3VGVzdCgpCi0g
ICAgewotICAgICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kobV9zdXJmYWNlKTsKLSAgICB9Ci0K
LSAgICBzdGF0aWMgdm9pZCBvblNuYXBzaG90UmVhZHkoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcs
IEdBc3luY1Jlc3VsdCogcmVzLCBTbmFwc2hvdFdlYlZpZXdUZXN0KiB0ZXN0KQotICAgIHsKLSAg
ICAgICAgR093blB0cjxHRXJyb3I+IGVycm9yOwotICAgICAgICB0ZXN0LT5tX3N1cmZhY2UgPSB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90X2ZpbmlzaCh3ZWJfdmlldywgcmVzLCAmZXJyb3Iu
b3V0UHRyKCkpOwotICAgICAgICBnX2Fzc2VydCghdGVzdC0+bV9zdXJmYWNlIHx8ICFlcnJvci5n
ZXQoKSk7Ci0gICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgIGdfYXNzZXJ0X2Vycm9yKGVy
cm9yLmdldCgpLCBXRUJLSVRfU05BUFNIT1RfRVJST1IsIFdFQktJVF9TTkFQU0hPVF9FUlJPUl9G
QUlMRURfVE9fQ1JFQVRFKTsKLSAgICAgICAgdGVzdC0+cXVpdE1haW5Mb29wKCk7Ci0gICAgfQot
Ci0gICAgY2Fpcm9fc3VyZmFjZV90KiB3YWl0Rm9yU25hcHNob3QoV2ViS2l0U25hcHNob3RSZWdp
b24gcmVnaW9uLCBXZWJLaXRTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucykKLSAgICB7Ci0gICAgICAg
IG1fc3VyZmFjZSA9IDA7Ci0gICAgICAgIHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QobV93
ZWJWaWV3LCByZWdpb24sIG9wdGlvbnMsIDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlD
YWxsYmFjaz4ob25TbmFwc2hvdFJlYWR5KSwgdGhpcyk7Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1
bihtX21haW5Mb29wKTsKLSAgICAgICAgcmV0dXJuIGNhaXJvX3N1cmZhY2VfcmVmZXJlbmNlKG1f
c3VyZmFjZSk7Ci0gICAgfQotCiAgICAgc3RhdGljIHZvaWQgb25TbmFwc2hvdENhbmNlbGxlZFJl
YWR5KFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBHQXN5bmNSZXN1bHQqIHJlcywgU25hcHNob3RX
ZWJWaWV3VGVzdCogdGVzdCkKICAgICB7CiAgICAgICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsK
QEAgLTExOTgsMjAgKzExNzAsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAotICAgIGNhaXJvX3N1cmZhY2VfdCogbV9zdXJmYWNlOwogfTsKIAotc3RhdGljIGdib29s
ZWFuIGNhaXJvU3VyZmFjZXNFcXVhbChjYWlyb19zdXJmYWNlX3QqIHMxLCBjYWlyb19zdXJmYWNl
X3QqIHMyKQotewotICAgIHJldHVybiAoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZm9ybWF0KHMx
KSA9PSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9mb3JtYXQoczIpCi0gICAgICAgICYmIGNhaXJv
X2ltYWdlX3N1cmZhY2VfZ2V0X3dpZHRoKHMxKSA9PSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93
aWR0aChzMikKLSAgICAgICAgJiYgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHMxKSA9
PSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoczIpCi0gICAgICAgICYmIGNhaXJvX2lt
YWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzMSkgPT0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3Ry
aWRlKHMyKQotICAgICAgICAmJiAhbWVtY21wKGNvbnN0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEoczEpKSksCi0g
ICAgICAgICAgICBjb25zdF9jYXN0PGNvbnN0IHZvaWQqPihyZWludGVycHJldF9jYXN0PHZvaWQq
PihjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKHMyKSkpLAotICAgICAgICAgICAgY2Fpcm9f
aW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHMxKSpjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9zdHJp
ZGUoczEpKSk7Ci19Ci0KIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3U25hcHNob3QoU25hcHNob3RX
ZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKICAgICB0ZXN0LT5sb2FkSHRtbCgi
PGh0bWw+PGJvZHk+PHA+V2hhdGV2ZXI8L3A+PC9ib2R5PjwvaHRtbD4iLCAwKTsKQEAgLTEyNDgs
NyArMTIwOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3U25hcHNob3QoU25hcHNob3RXZWJW
aWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydChzdXJmYWNlMik7CiAK
ICAgICAvLyBDb21wYXJlIHRoZXNlIHR3bywgdGhleSBzaG91bGQgYmUgaWRlbnRpY2FsLgotICAg
IGdfYXNzZXJ0KGNhaXJvU3VyZmFjZXNFcXVhbChzdXJmYWNlMSwgc3VyZmFjZTIpKTsKKyAgICBn
X2Fzc2VydChXZWJWaWV3VGVzdDo6Y2Fpcm9TdXJmYWNlc0VxdWFsKHN1cmZhY2UxLCBzdXJmYWNl
MikpOwogICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShzdXJmYWNlMik7CiAKICAgICAvLyBSZXF1
ZXN0IGEgbmV3IHNuYXBzaG90LCBpbmNsdWRpbmcgdGhlIHNlbGVjdGlvbiB0aGlzIHRpbWUuIFRo
ZQpAQCAtMTI1OCw3ICsxMjE4LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdTbmFwc2hvdChT
bmFwc2hvdFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KHN1
cmZhY2UyKTsKICAgICBnX2Fzc2VydF9jbXBpbnQoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lk
dGgoc3VyZmFjZTIpLCA9PSwgd2lkdGgpOwogICAgIGdfYXNzZXJ0X2NtcGludChjYWlyb19pbWFn
ZV9zdXJmYWNlX2dldF9oZWlnaHQoc3VyZmFjZTIpLCA9PSwgaGVpZ2h0KTsKLSAgICBnX2Fzc2Vy
dCghY2Fpcm9TdXJmYWNlc0VxdWFsKHN1cmZhY2UxLCBzdXJmYWNlMikpOworICAgIGdfYXNzZXJ0
KCFXZWJWaWV3VGVzdDo6Y2Fpcm9TdXJmYWNlc0VxdWFsKHN1cmZhY2UxLCBzdXJmYWNlMikpOwog
ICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShzdXJmYWNlMik7CiAKICAgICAvLyBSZXF1ZXN0IGEg
c25hcHNob3Qgb2YgdGhlIHdob2xlIGRvY3VtZW50IGluIHRoZSBXZWJWaWV3LiBUaGUKQEAgLTEy
NjcsNyArMTIyNyw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3U25hcHNob3QoU25hcHNob3RX
ZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydChzdXJmYWNlMik7
CiAgICAgZ19hc3NlcnRfY21waW50KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3dpZHRoKHN1cmZh
Y2UyKSwgID4sIHdpZHRoKTsKICAgICBnX2Fzc2VydF9jbXBpbnQoY2Fpcm9faW1hZ2Vfc3VyZmFj
ZV9nZXRfaGVpZ2h0KHN1cmZhY2UyKSwgPiwgaGVpZ2h0KTsKLSAgICBnX2Fzc2VydCghY2Fpcm9T
dXJmYWNlc0VxdWFsKHN1cmZhY2UxLCBzdXJmYWNlMikpOworICAgIGdfYXNzZXJ0KCFXZWJWaWV3
VGVzdDo6Y2Fpcm9TdXJmYWNlc0VxdWFsKHN1cmZhY2UxLCBzdXJmYWNlMikpOwogCiAgICAgY2Fp
cm9fc3VyZmFjZV9kZXN0cm95KHN1cmZhY2UxKTsKICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3ko
c3VyZmFjZTIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvV2ViVmlld1Rlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvV2ViVmlld1Rlc3QuY3BwCmluZGV4IDA2MjE5OGE5ZTNhMDU3NTU0MWNmMWVmYTZjZTFk
ODE0ZmE5YTE0M2EuLjFjYTNhNzg4MzZmZWEzOTEwOGRlYTJkOTA4NGU0NDgyMWRhZTJhNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJW
aWV3VGVzdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAgV2ViVmlld1Rlc3Q6OldlYlZpZXdUZXN0KCkK
ICAgICAsIG1fcGFyZW50V2luZG93KDApCiAgICAgLCBtX2phdmFzY3JpcHRSZXN1bHQoMCkKICAg
ICAsIG1fcmVzb3VyY2VEYXRhU2l6ZSgwKQorICAgICwgbV9zdXJmYWNlKDApCiB7CiAgICAgYXNz
ZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChtX3dlYlZpZXcpKTsK
IH0KQEAgLTQwLDYgKzQxLDcgQEAgV2ViVmlld1Rlc3Q6On5XZWJWaWV3VGVzdCgpCiAgICAgICAg
IGd0a193aWRnZXRfZGVzdHJveShtX3BhcmVudFdpbmRvdyk7CiAgICAgaWYgKG1famF2YXNjcmlw
dFJlc3VsdCkKICAgICAgICAgd2Via2l0X2phdmFzY3JpcHRfcmVzdWx0X3VucmVmKG1famF2YXNj
cmlwdFJlc3VsdCk7CisgICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KG1fc3VyZmFjZSk7CiAgICAg
Z19vYmplY3RfdW5yZWYobV93ZWJWaWV3KTsKICAgICBnX21haW5fbG9vcF91bnJlZihtX21haW5M
b29wKTsKIH0KQEAgLTQyMCwzICs0MjIsMzEgQEAgYm9vbCBXZWJWaWV3VGVzdDo6amF2YXNjcmlw
dFJlc3VsdElzVW5kZWZpbmVkKFdlYktpdEphdmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHQKICAg
ICByZXR1cm4gSlNWYWx1ZUlzVW5kZWZpbmVkKGNvbnRleHQsIHZhbHVlKTsKIH0KIAorc3RhdGlj
IHZvaWQgb25TbmFwc2hvdFJlYWR5KFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBHQXN5bmNSZXN1
bHQqIHJlcywgV2ViVmlld1Rlc3QqIHRlc3QpCit7CisgICAgR093blB0cjxHRXJyb3I+IGVycm9y
OworICAgIHRlc3QtPm1fc3VyZmFjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3RfZmlu
aXNoKHdlYl92aWV3LCByZXMsICZlcnJvci5vdXRQdHIoKSk7CisgICAgZ19hc3NlcnQoIXRlc3Qt
Pm1fc3VyZmFjZSB8fCAhZXJyb3IuZ2V0KCkpOworICAgIGlmIChlcnJvcikKKyAgICAgICAgZ19h
c3NlcnRfZXJyb3IoZXJyb3IuZ2V0KCksIFdFQktJVF9TTkFQU0hPVF9FUlJPUiwgV0VCS0lUX1NO
QVBTSE9UX0VSUk9SX0ZBSUxFRF9UT19DUkVBVEUpOworICAgIHRlc3QtPnF1aXRNYWluTG9vcCgp
OworfQorCitjYWlyb19zdXJmYWNlX3QqIFdlYlZpZXdUZXN0Ojp3YWl0Rm9yU25hcHNob3QoV2Vi
S2l0U25hcHNob3RSZWdpb24gcmVnaW9uLCBXZWJLaXRTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucykK
K3sKKyAgICBtX3N1cmZhY2UgPSAwOworICAgIHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3Qo
bV93ZWJWaWV3LCByZWdpb24sIG9wdGlvbnMsIDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVh
ZHlDYWxsYmFjaz4ob25TbmFwc2hvdFJlYWR5KSwgdGhpcyk7CisgICAgZ19tYWluX2xvb3BfcnVu
KG1fbWFpbkxvb3ApOworICAgIHJldHVybiBjYWlyb19zdXJmYWNlX3JlZmVyZW5jZShtX3N1cmZh
Y2UpOworfQorCitnYm9vbGVhbiBXZWJWaWV3VGVzdDo6Y2Fpcm9TdXJmYWNlc0VxdWFsKGNhaXJv
X3N1cmZhY2VfdCogczEsIGNhaXJvX3N1cmZhY2VfdCogczIpCit7CisgICAgcmV0dXJuIChjYWly
b19pbWFnZV9zdXJmYWNlX2dldF9mb3JtYXQoczEpID09IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0
X2Zvcm1hdChzMikKKyAgICAgICAgJiYgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lkdGgoczEp
ID09IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3dpZHRoKHMyKQorICAgICAgICAmJiBjYWlyb19p
bWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoczEpID09IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hl
aWdodChzMikKKyAgICAgICAgJiYgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRlKHMxKSA9
PSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9zdHJpZGUoczIpCisgICAgICAgICYmICFtZW1jbXAo
Y29uc3RfY2FzdDxjb25zdCB2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9nZXRfZGF0YShzMSkpKSwKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y29uc3Qg
dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2Rh
dGEoczIpKSksCisgICAgICAgICAgICBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoczEp
KmNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzMSkpKTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVzdC5oCmluZGV4IGIx
MzIwM2UwYWI0ZWM4NWIxYjJhY2Q2NGUzOWE1NGI2Mjg5MWZkZjkuLjVmOWFlY2YxZDkwODNhOWI4
YTdjYmY1YWY2MzBkOTFiOWI5MjNmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rlc3QuaApAQCAtNjYsNiArNjYsOSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgamF2YXNjcmlwdFJlc3VsdElzTnVsbChXZWJLaXRKYXZhc2Ny
aXB0UmVzdWx0Kik7CiAgICAgc3RhdGljIGJvb2wgamF2YXNjcmlwdFJlc3VsdElzVW5kZWZpbmVk
KFdlYktpdEphdmFzY3JpcHRSZXN1bHQqKTsKIAorICAgIGNhaXJvX3N1cmZhY2VfdCogd2FpdEZv
clNuYXBzaG90KFdlYktpdFNuYXBzaG90UmVnaW9uLCBXZWJLaXRTbmFwc2hvdE9wdGlvbnMpOwor
ICAgIHN0YXRpYyBnYm9vbGVhbiBjYWlyb1N1cmZhY2VzRXF1YWwoY2Fpcm9fc3VyZmFjZV90Kiwg
Y2Fpcm9fc3VyZmFjZV90Kik7CisKICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAg
R01haW5Mb29wKiBtX21haW5Mb29wOwogICAgIENTdHJpbmcgbV9hY3RpdmVVUkk7CkBAIC03NSw2
ICs3OCw3IEBAIHB1YmxpYzoKICAgICBHRXJyb3IqKiBtX2phdmFzY3JpcHRFcnJvcjsKICAgICBH
T3duUHRyPGNoYXI+IG1fcmVzb3VyY2VEYXRhOwogICAgIHNpemVfdCBtX3Jlc291cmNlRGF0YVNp
emU7CisgICAgY2Fpcm9fc3VyZmFjZV90KiBtX3N1cmZhY2U7CiAKIHByaXZhdGU6CiAgICAgdm9p
ZCBkb01vdXNlQnV0dG9uRXZlbnQoR2RrRXZlbnRUeXBlLCBpbnQsIGludCwgdW5zaWduZWQgaW50
LCB1bnNpZ25lZCBpbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDYwMWIwYWNlYjg1MWRhZTYwMTBlMDc0OTNlNTlhY2MyYTYxN2JmZjQuLjJh
NmRmYjg3OTMwZjJmYzY0ZjgxNzg1MDBjNDdjNDY2MTI4ZWNjNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0w
NC0xOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAg
ICBbR1RLXSBGaXggdW5pdCB0ZXN0IHdlYmtpdDIvV2ViS2l0RmluZENvbnRyb2xsZXIvaGlkZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
cnVuLWd0ay10ZXN0czoKKyAgICAgICAgKFRlc3RSdW5uZXIpOiBVbnNraXAgdGVzdCB3ZWJraXQy
L1dlYktpdEZpbmRDb250cm9sbGVyL2hpZGUuCisKIDIwMTMtMDQtMTcgIFphbiBEb2JlcnNlayAg
PHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBbRGFzaGJvYXJkXSBSZW1vdmUgY29k
ZSBmb3Igc2hvd2luZyAnV2ViS2l0IHJvbGwnIGFubm90YXRpb25zIGluIHRpbWVsaW5lcyBmb3Ig
Q2hyb21pdW0gYnVpbGRlcnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0
cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cwppbmRleCAzZDQ3OTk5MDgwZGNlZWI0MmE2
ZGJhMmIyYzM1OTM2N2UwMTUyYzdmLi43ZWQ1ZDRkN2IyOWQzNDRkZTg4ZDg4OGQyZjE4NmY2Zjg0
NjNmNzZkIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMKKysrIGIvVG9v
bHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCkBAIC03MCw3ICs3MCw2IEBAIGNsYXNzIFRlc3RSdW5u
ZXI6CiAgICAgICAgIFNraXBwZWRUZXN0KCJXZWJLaXQyQVBJVGVzdHMvVGVzdEluc3BlY3RvclNl
cnZlciIsIFNraXBwZWRUZXN0LkVOVElSRV9TVUlURSwgIlRlc3QgdGltZXMgb3V0IiwgMTA1ODY2
KSwKICAgICAgICAgU2tpcHBlZFRlc3QoIldlYktpdDJBUElUZXN0cy9UZXN0UmVzb3VyY2VzIiwg
Ii93ZWJraXQyL1dlYktpdFdlYlZpZXcvcmVzb3VyY2VzIiwgIlRlc3QgaXMgZmxha3kgaW4gR1RL
IExpbnV4IDMyLWJpdCBSZWxlYXNlIGJvdCIsIDgyODY4KSwKICAgICAgICAgU2tpcHBlZFRlc3Qo
IldlYktpdDJBUElUZXN0cy9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eSIsICIvd2Via2l0Mi9XZWJL
aXRBY2Nlc3NpYmlsaXR5L2F0c3BpLWJhc2ljLWhpZXJhcmNoeSIsICJUZXN0IGZhaWxzIiwgMTAw
NDA4KSwKLSAgICAgICAgU2tpcHBlZFRlc3QoIldlYktpdDJBUElUZXN0cy9UZXN0V2ViS2l0Rmlu
ZENvbnRyb2xsZXIiLCAiL3dlYmtpdDIvV2ViS2l0RmluZENvbnRyb2xsZXIvaGlkZSIsICJUZXN0
IGFsd2F5cyBmYWlscyBpbiBYdmZiIiwgODk4MTApLAogICAgICAgICBTa2lwcGVkVGVzdCgiVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0MiIsICJXZWJLaXQyLkNhbkhhbmRsZVJlcXVlc3QiLCAiVGVz
dCBmYWlscyIsIDg4NDUzKSwKICAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdDIiLCAiV2ViS2l0Mi5Nb3VzZU1vdmVBZnRlckNyYXNoIiwgIlRlc3QgaXMgZmxha3ki
LCA4NTA2NiksCiAgICAgICAgIFNraXBwZWRUZXN0KCJUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXQy
IiwgIldlYktpdDIuTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzIiwgIlRl
c3QgaXMgZmxha3kiLCA4NTA2NiksCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198836</attachid>
            <date>2013-04-19 03:13:54 -0700</date>
            <delta_ts>2013-04-19 09:00:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89810-20130419121323.patch</filename>
            <type>text/plain</type>
            <size>18589</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzMyMzZlZjBiNTkxNWVi
ZjZhZmY0OGU4Y2Y3ZjFkZGI5NGM2NmYxMC4uODUxMWNmN2Q0NDlhZDY2NWYxNWJiM2JhMjBmMTk5
OWM3NzljZjE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA0LTE5ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEZp
eCB1bml0IHRlc3Qgd2Via2l0Mi9XZWJLaXRGaW5kQ29udHJvbGxlci9oaWRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTgxMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGhhZCBzb21lIGhh
Y2tzIGluIG9yZGVyIHRvIGNvbXBhcmUgYSBwYWdlIHdpdGggaGlnaGxpZ2h0ZWQKKyAgICAgICAg
cmVzdWx0cyBhZnRlciB1c2luZyB0aGUgZmluZCBjb21tYW5kIHdpdGggdGhlIG9yaWdpbmFsIHBh
Z2UuIE5vdyBpdCB1c2VzCisgICAgICAgIHRoZSBzbmFwc2hvdHMgQVBJIHRoYXQgYWxsb3dzIHRv
IG1ha2UgdGhlIHRlc3Qgc2ltcGxlciBhbmQgbW9yZSByZWxpYWJsZS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RNYWluLmg6CisgICAgICAgIChUZXN0OjpjYWlyb1N1
cmZhY2VzRXF1YWwpOiBNb3ZlZCBoZWxwZXIgZnVuY3Rpb24gdG8gY29tcGFyZSB0d28gY2Fpcm8g
c3VyZmFjZXMgZnJvbSBUZXN0V2ViS2l0V2ViVmlldy4KKyAgICAgICAgKFRlc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHA6
CisgICAgICAgICh0ZXN0RmluZENvbnRyb2xsZXJIaWRlKTogTW9kaWZ5IHRlc3QgdG8gdXNlIHNu
YXBzaG90cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2Vi
Vmlldy5jcHA6CisgICAgICAgICh0ZXN0V2ViVmlld1NuYXBzaG90KTogTW92ZSBiYXNpYyBzbmFw
c2hvcCBtZXRob2RzIHRvIFdlYlZpZXdUZXN0IHRvCisgICAgICAgIHNoYXJlIHRoZW0gd2l0aCBU
ZXN0V2ViS2l0RmluZENvbnRyb2xsZXIgdGVzdC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay90ZXN0cy9XZWJWaWV3VGVzdC5jcHA6CisgICAgICAgIChXZWJWaWV3VGVzdDo6V2ViVmlld1Rl
c3QpOiBJbml0aWFsaXplIGNhaXJvIHN1cmZhY2UuCisgICAgICAgIChXZWJWaWV3VGVzdDo6fldl
YlZpZXdUZXN0KTogRGVzdHJveSBjYWlybyBzdXJmYWNlLgorICAgICAgICAob25TbmFwc2hvdFJl
YWR5KTogQ2FsbGJhY2sgdG8gc2V0IHRoZSBjYWlybyBzdXJmYWNlIHdoZW4gdGhlIHNuYXBzaG90
CisgICAgICAgIGlzIHJlYWR5LgorICAgICAgICAoV2ViVmlld1Rlc3Q6OndhaXRGb3JTbmFwc2hv
dCk6IE1ldGhvZCB0aGF0IHRha2VzIGEgc25hcHNob3QgYW5kIHJldHVybnMKKyAgICAgICAgdGhl
IGNhaXJvIHN1cmZhY2UuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmll
d1Rlc3QuaDogQWRkIG5ldyBtZXRob2QgaGVhZGVycyBhbmQKKyAgICAgICAgYXR0cmlidXRlIGZv
ciB0aGUgY2Fpcm8gc3VyZmFjZS4KKwogMjAxMy0wNC0xNyAgSm9vbmUgSHVyICA8am9vbmUuaHVy
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtBQ10gbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSBu
ZWVkcyB0byBiZSBndWFyZGVkIGJ5IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RNYWluLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0TWFpbi5oCmluZGV4
IDQ4ZGE3MzZkYmJiYjM1YjdiYTUxY2M5NjU1NGRjZTczNzMzOGE4ZWIuLjAyYzkwNzA5YzQzYTlh
ZTY1NmU5Y2I5NTQ0N2Y4ZjkyODQ4ZDNjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RNYWluLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdE1haW4uaApAQCAtMjAsNiArMjAsNyBAQAogI2lmbmRl
ZiBUZXN0TWFpbl9oCiAjZGVmaW5lIFRlc3RNYWluX2gKIAorI2luY2x1ZGUgPGNhaXJvLmg+CiAj
aW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KQEAgLTEwMSw2ICsxMDIsMTcgQEAgcHVibGljOgog
ICAgICAgICBnX2xvZ19zZXRfYWx3YXlzX2ZhdGFsKHN0YXRpY19jYXN0PEdMb2dMZXZlbEZsYWdz
PihmYXRhbE1hc2spKTsKICAgICB9CiAKKyAgICBzdGF0aWMgYm9vbCBjYWlyb1N1cmZhY2VzRXF1
YWwoY2Fpcm9fc3VyZmFjZV90KiBzMSwgY2Fpcm9fc3VyZmFjZV90KiBzMikKKyAgICB7CisgICAg
ICAgIHJldHVybiAoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZm9ybWF0KHMxKSA9PSBjYWlyb19p
bWFnZV9zdXJmYWNlX2dldF9mb3JtYXQoczIpCisgICAgICAgICAgICAmJiBjYWlyb19pbWFnZV9z
dXJmYWNlX2dldF93aWR0aChzMSkgPT0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lkdGgoczIp
CisgICAgICAgICAgICAmJiBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoczEpID09IGNh
aXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hlaWdodChzMikKKyAgICAgICAgICAgICYmIGNhaXJvX2lt
YWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzMSkgPT0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3Ry
aWRlKHMyKQorICAgICAgICAgICAgJiYgIW1lbWNtcChjb25zdF9jYXN0PGNvbnN0IHZvaWQqPihy
ZWludGVycHJldF9jYXN0PHZvaWQqPihjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKHMxKSkp
LAorICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEoczIpKSksCisgICAgICAgICAg
ICAgICAgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHMxKSpjYWlyb19pbWFnZV9zdXJm
YWNlX2dldF9zdHJpZGUoczEpKSk7CisgICAgfQorCiAgICAgSGFzaFNldDxHT2JqZWN0Kj4gbV93
YXRjaGVkT2JqZWN0czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0RmluZENvbnRyb2xsZXIuY3Bw
CmluZGV4IDkwMTU5Yjg3ZmNiOWIzNDI3NmRiNDdkNzM3NTg5NWZhMjk1NmQxNTAuLjFlMmQxOGFm
MDc4Yzk0ZmUxNWJjNjk2YzMzMmUzZTkzOGZjMzljYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdEZp
bmRDb250cm9sbGVyLmNwcApAQCAtNjIsMTIgKzYyLDYgQEAgcHVibGljOgogICAgICAgICBnX21h
aW5fbG9vcF9ydW4obV9tYWluTG9vcCk7CiAgICAgfQogCi0gICAgdm9pZCB3YWl0VW50aWxXZWJW
aWV3RHJhd1NpZ25hbCgpCi0gICAgewotICAgICAgICBnX3NpZ25hbF9jb25uZWN0X2FmdGVyKG1f
d2ViVmlldywgImRyYXciLCBHX0NBTExCQUNLKHdlYlZpZXdEcmF3KSwgdGhpcyk7Ci0gICAgICAg
IGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKLSAgICB9Ci0KICAgICBHUmVmUHRyPFdlYktp
dEZpbmRDb250cm9sbGVyPiBtX2ZpbmRDb250cm9sbGVyOwogICAgIGJvb2wgbV90ZXh0Rm91bmQ7
CiAgICAgdW5zaWduZWQgbV9tYXRjaENvdW50OwpAQCAtNzUsMTIgKzY5LDYgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBib29sIG1fcnVuRmluZFVudGlsQ29tcGxldGlvbjsKIAotICAgIHN0YXRp
YyB2b2lkIHdlYlZpZXdEcmF3KEd0a1dpZGdldCAqd2lkZ2V0LCBjYWlyb190ICpjciwgRmluZENv
bnRyb2xsZXJUZXN0KiB0ZXN0KQotICAgIHsKLSAgICAgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0
LT5tX21haW5Mb29wKTsKLSAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRj
aGVkKHdpZGdldCwgR19TSUdOQUxfTUFUQ0hfREFUQSwgMCwgMCwgMCwgMCwgdGVzdCk7Ci0gICAg
fQotCiAgICAgc3RhdGljIHZvaWQgZm91bmRUZXh0Q2FsbGJhY2soV2ViS2l0RmluZENvbnRyb2xs
ZXIqLCBndWludCBtYXRjaENvdW50LCBGaW5kQ29udHJvbGxlclRlc3QqIHRlc3QpCiAgICAgewog
ICAgICAgICB0ZXN0LT5tX3RleHRGb3VuZCA9IHRydWU7CkBAIC0yNzEsNjcgKzI1OSwzNSBAQCBz
dGF0aWMgdm9pZCB0ZXN0RmluZENvbnRyb2xsZXJPcHRpb25zKEZpbmRDb250cm9sbGVyVGVzdCog
dGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydCh0ZXN0LT5tX3RleHRGb3VuZCk7CiB9
CiAKLXN0YXRpYyBnYm9vbGVhbiBnZGtQaXhidWZFcXVhbChHZGtQaXhidWYqIGZpcnN0UGl4YnVm
LCBHZGtQaXhidWYqIHNlY29uZFBpeGJ1ZikKLXsKLSAgICBpZiAoZ2RrX3BpeGJ1Zl9nZXRfYml0
c19wZXJfc2FtcGxlKGZpcnN0UGl4YnVmKSAhPSBnZGtfcGl4YnVmX2dldF9iaXRzX3Blcl9zYW1w
bGUoc2Vjb25kUGl4YnVmKQotICAgICAgICB8fCBnZGtfcGl4YnVmX2dldF9oYXNfYWxwaGEoZmly
c3RQaXhidWYpICE9IGdka19waXhidWZfZ2V0X2hhc19hbHBoYShzZWNvbmRQaXhidWYpCi0gICAg
ICAgIHx8IGdka19waXhidWZfZ2V0X2hlaWdodChmaXJzdFBpeGJ1ZikgIT0gZ2RrX3BpeGJ1Zl9n
ZXRfaGVpZ2h0KHNlY29uZFBpeGJ1ZikKLSAgICAgICAgfHwgZ2RrX3BpeGJ1Zl9nZXRfbl9jaGFu
bmVscyhmaXJzdFBpeGJ1ZikgIT0gZ2RrX3BpeGJ1Zl9nZXRfbl9jaGFubmVscyhzZWNvbmRQaXhi
dWYpCi0gICAgICAgIHx8IGdka19waXhidWZfZ2V0X3Jvd3N0cmlkZShmaXJzdFBpeGJ1ZikgIT0g
Z2RrX3BpeGJ1Zl9nZXRfcm93c3RyaWRlKHNlY29uZFBpeGJ1ZikKLSAgICAgICAgfHwgZ2RrX3Bp
eGJ1Zl9nZXRfd2lkdGgoZmlyc3RQaXhidWYpICE9IGdka19waXhidWZfZ2V0X3dpZHRoKHNlY29u
ZFBpeGJ1ZikpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIGludCBwaXhidWZSb3dzdHJp
ZGUgPSBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUoZmlyc3RQaXhidWYpOwotICAgIGludCBwaXhi
dWZIZWlnaHQgPSBnZGtfcGl4YnVmX2dldF9oZWlnaHQoZmlyc3RQaXhidWYpOwotICAgIGludCBw
aXhidWZXaWR0aCA9IGdka19waXhidWZfZ2V0X3dpZHRoKGZpcnN0UGl4YnVmKTsKLSAgICBpbnQg
bnVtYmVyT2ZDaGFubmVscyA9IGdka19waXhidWZfZ2V0X25fY2hhbm5lbHMoZmlyc3RQaXhidWYp
OwotICAgIGludCBiaXRzUGVyU2FtcGxlID0gZ2RrX3BpeGJ1Zl9nZXRfYml0c19wZXJfc2FtcGxl
KGZpcnN0UGl4YnVmKTsKLQotICAgIC8vIExhc3Qgcm93IGNhbiBiZSBvZiBkaWZmZXJlbnQgbGVu
Z3RoLiBUYWtlbiBmcm9tIGdkay1waXhidWYgZG9jdW1lbnRhdGlvbi4KLSAgICBpbnQgdG90YWxM
ZW5ndGggPSAocGl4YnVmSGVpZ2h0IC0gMSkgKiBwaXhidWZSb3dzdHJpZGUgXAotICAgICAgICAr
IHBpeGJ1ZldpZHRoICogKChudW1iZXJPZkNoYW5uZWxzICogYml0c1BlclNhbXBsZSArIDcpIC8g
OCk7Ci0KLSAgICBndWNoYXIqIGZpcnN0UGl4ZWxzID0gZ2RrX3BpeGJ1Zl9nZXRfcGl4ZWxzKGZp
cnN0UGl4YnVmKTsKLSAgICBndWNoYXIqIHNlY29uZFBpeGVscyA9IGdka19waXhidWZfZ2V0X3Bp
eGVscyhzZWNvbmRQaXhidWYpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdG90YWxMZW5ndGg7
IGkrKykKLSAgICAgICAgaWYgKGZpcnN0UGl4ZWxzW2ldICE9IHNlY29uZFBpeGVsc1tpXSkKLSAg
ICAgICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIHJldHVybiBUUlVFOwotfQotCiBzdGF0aWMg
dm9pZCB0ZXN0RmluZENvbnRyb2xsZXJIaWRlKEZpbmRDb250cm9sbGVyVGVzdCogdGVzdCwgZ2Nv
bnN0cG9pbnRlcikKIHsKICAgICB0ZXN0LT5sb2FkSHRtbCh0ZXN0U3RyaW5nLCAwKTsKICAgICB0
ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIAogICAgIHRlc3QtPnNob3dJbldpbmRvd0Fu
ZFdhaXRVbnRpbE1hcHBlZCgpOwotICAgIGludCBhbGxvY2F0ZWRIZWlnaHQgPSBndGtfd2lkZ2V0
X2dldF9hbGxvY2F0ZWRfaGVpZ2h0KEdUS19XSURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0gICAg
aW50IGFsbG9jYXRlZFdpZHRoID0gZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGVkX3dpZHRoKEdUS19X
SURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0gICAgR2RrV2luZG93KiB3ZWJWaWV3R2RrV2luZG93
ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0g
ICAgZ19hc3NlcnQod2ViVmlld0dka1dpbmRvdyk7CiAKLSAgICB0ZXN0LT53YWl0VW50aWxXZWJW
aWV3RHJhd1NpZ25hbCgpOwotICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBvcmlnaW5hbFBpeGJ1ZiA9
IGFkb3B0R1JlZihnZGtfcGl4YnVmX2dldF9mcm9tX3dpbmRvdyh3ZWJWaWV3R2RrV2luZG93LCAw
LCAwLCBhbGxvY2F0ZWRIZWlnaHQsIGFsbG9jYXRlZFdpZHRoKSk7Ci0gICAgZ19hc3NlcnQob3Jp
Z2luYWxQaXhidWYpOworICAgIGNhaXJvX3N1cmZhY2VfdCogb3JpZ2luYWxTdXJmYWNlID0gY2Fp
cm9fc3VyZmFjZV9yZWZlcmVuY2UodGVzdC0+d2FpdEZvclNuYXBzaG90KFdFQktJVF9TTkFQU0hP
VF9SRUdJT05fRlVMTF9ET0NVTUVOVCwgV0VCS0lUX1NOQVBTSE9UX09QVElPTlNfTk9ORSkpOwor
ICAgIGdfYXNzZXJ0KG9yaWdpbmFsU3VyZmFjZSk7CiAKICAgICB0ZXN0LT5maW5kKCJ0ZXN0aW5n
IiwgV0VCS0lUX0ZJTkRfT1BUSU9OU19OT05FLCAxKTsKICAgICB0ZXN0LT53YWl0VW50aWxGaW5k
RmluaXNoZWQoKTsKICAgICBnX2Fzc2VydCh0ZXN0LT5tX3RleHRGb3VuZCk7CiAKLSAgICB0ZXN0
LT53YWl0VW50aWxXZWJWaWV3RHJhd1NpZ25hbCgpOwotICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBo
aWdobGlnaHRQaXhidWYgPSBhZG9wdEdSZWYoZ2RrX3BpeGJ1Zl9nZXRfZnJvbV93aW5kb3cod2Vi
Vmlld0dka1dpbmRvdywgMCwgMCwgYWxsb2NhdGVkSGVpZ2h0LCBhbGxvY2F0ZWRXaWR0aCkpOwot
ICAgIGdfYXNzZXJ0KGhpZ2hsaWdodFBpeGJ1Zik7Ci0gICAgZ19hc3NlcnQoIWdka1BpeGJ1ZkVx
dWFsKG9yaWdpbmFsUGl4YnVmLmdldCgpLCBoaWdobGlnaHRQaXhidWYuZ2V0KCkpKTsKKyAgICBj
YWlyb19zdXJmYWNlX3QqIGhpZ2hsaWdodFN1cmZhY2UgPSBjYWlyb19zdXJmYWNlX3JlZmVyZW5j
ZSh0ZXN0LT53YWl0Rm9yU25hcHNob3QoV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9GVUxMX0RPQ1VN
RU5ULCBXRUJLSVRfU05BUFNIT1RfT1BUSU9OU19OT05FKSk7CisgICAgZ19hc3NlcnQoaGlnaGxp
Z2h0U3VyZmFjZSk7CisgICAgZ19hc3NlcnQoIVRlc3Q6OmNhaXJvU3VyZmFjZXNFcXVhbChvcmln
aW5hbFN1cmZhY2UsIGhpZ2hsaWdodFN1cmZhY2UpKTsKIAogICAgIFdlYktpdEZpbmRDb250cm9s
bGVyKiBmaW5kQ29udHJvbGxlciA9IHdlYmtpdF93ZWJfdmlld19nZXRfZmluZF9jb250cm9sbGVy
KHRlc3QtPm1fd2ViVmlldyk7CiAgICAgd2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfZmlu
aXNoKGZpbmRDb250cm9sbGVyKTsKICAgICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5n
X2NvbW1hbmQodGVzdC0+bV93ZWJWaWV3LCAiVW5zZWxlY3QiKTsKIAotICAgIHRlc3QtPndhaXRV
bnRpbFdlYlZpZXdEcmF3U2lnbmFsKCk7Ci0gICAgR1JlZlB0cjxHZGtQaXhidWY+IHVuaGlnaGxp
Z2h0UGl4YnVmID0gYWRvcHRHUmVmKGdka19waXhidWZfZ2V0X2Zyb21fd2luZG93KHdlYlZpZXdH
ZGtXaW5kb3csIDAsIDAsIGFsbG9jYXRlZEhlaWdodCwgYWxsb2NhdGVkV2lkdGgpKTsKLSAgICBn
X2Fzc2VydCh1bmhpZ2hsaWdodFBpeGJ1Zik7Ci0gICAgZ19hc3NlcnQoZ2RrUGl4YnVmRXF1YWwo
b3JpZ2luYWxQaXhidWYuZ2V0KCksIHVuaGlnaGxpZ2h0UGl4YnVmLmdldCgpKSk7CisgICAgY2Fp
cm9fc3VyZmFjZV90KiB1bmhpZ2hsaWdodFN1cmZhY2UgPSBjYWlyb19zdXJmYWNlX3JlZmVyZW5j
ZSh0ZXN0LT53YWl0Rm9yU25hcHNob3QoV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9GVUxMX0RPQ1VN
RU5ULCBXRUJLSVRfU05BUFNIT1RfT1BUSU9OU19OT05FKSk7CisgICAgZ19hc3NlcnQodW5oaWdo
bGlnaHRTdXJmYWNlKTsKKyAgICBnX2Fzc2VydChUZXN0OjpjYWlyb1N1cmZhY2VzRXF1YWwob3Jp
Z2luYWxTdXJmYWNlLCB1bmhpZ2hsaWdodFN1cmZhY2UpKTsKKworICAgIGNhaXJvX3N1cmZhY2Vf
ZGVzdHJveShvcmlnaW5hbFN1cmZhY2UpOworICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShoaWdo
bGlnaHRTdXJmYWNlKTsKKyAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kodW5oaWdobGlnaHRTdXJm
YWNlKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdEZpbmRDb250cm9sbGVySW5zdGFuY2UoRmluZENv
bnRyb2xsZXJUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXcuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXcuY3Bw
CmluZGV4IDk1MTAzZGE1NWNmNDY2ZThjMDJiNWM2ODliODhkMGZiZDQ4ZjBhODguLmJmZjgwMGQ1
YzZkZDE1YjdiYzI2OTgzZjU1MjExYTI3ZWE1ZDU2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5j
cHAKQEAgLTExNTAsMzQgKzExNTAsNiBAQCBjbGFzcyBTbmFwc2hvdFdlYlZpZXdUZXN0OiBwdWJs
aWMgV2ViVmlld1Rlc3QgewogcHVibGljOgogICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRVUkUoU25h
cHNob3RXZWJWaWV3VGVzdCk7CiAKLSAgICBTbmFwc2hvdFdlYlZpZXdUZXN0KCkKLSAgICAgICAg
OiBtX3N1cmZhY2UoMCkKLSAgICB7Ci0gICAgfQotCi0gICAgflNuYXBzaG90V2ViVmlld1Rlc3Qo
KQotICAgIHsKLSAgICAgICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KG1fc3VyZmFjZSk7Ci0gICAg
fQotCi0gICAgc3RhdGljIHZvaWQgb25TbmFwc2hvdFJlYWR5KFdlYktpdFdlYlZpZXcqIHdlYl92
aWV3LCBHQXN5bmNSZXN1bHQqIHJlcywgU25hcHNob3RXZWJWaWV3VGVzdCogdGVzdCkKLSAgICB7
Ci0gICAgICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKLSAgICAgICAgdGVzdC0+bV9zdXJmYWNl
ID0gd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdF9maW5pc2god2ViX3ZpZXcsIHJlcywgJmVy
cm9yLm91dFB0cigpKTsKLSAgICAgICAgZ19hc3NlcnQoIXRlc3QtPm1fc3VyZmFjZSB8fCAhZXJy
b3IuZ2V0KCkpOwotICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICBnX2Fzc2VydF9lcnJv
cihlcnJvci5nZXQoKSwgV0VCS0lUX1NOQVBTSE9UX0VSUk9SLCBXRUJLSVRfU05BUFNIT1RfRVJS
T1JfRkFJTEVEX1RPX0NSRUFURSk7Ci0gICAgICAgIHRlc3QtPnF1aXRNYWluTG9vcCgpOwotICAg
IH0KLQotICAgIGNhaXJvX3N1cmZhY2VfdCogd2FpdEZvclNuYXBzaG90KFdlYktpdFNuYXBzaG90
UmVnaW9uIHJlZ2lvbiwgV2ViS2l0U25hcHNob3RPcHRpb25zIG9wdGlvbnMpCi0gICAgewotICAg
ICAgICBtX3N1cmZhY2UgPSAwOwotICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90
KG1fd2ViVmlldywgcmVnaW9uLCBvcHRpb25zLCAwLCByZWludGVycHJldF9jYXN0PEdBc3luY1Jl
YWR5Q2FsbGJhY2s+KG9uU25hcHNob3RSZWFkeSksIHRoaXMpOwotICAgICAgICBnX21haW5fbG9v
cF9ydW4obV9tYWluTG9vcCk7Ci0gICAgICAgIHJldHVybiBjYWlyb19zdXJmYWNlX3JlZmVyZW5j
ZShtX3N1cmZhY2UpOwotICAgIH0KLQogICAgIHN0YXRpYyB2b2lkIG9uU25hcHNob3RDYW5jZWxs
ZWRSZWFkeShXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgR0FzeW5jUmVzdWx0KiByZXMsIFNuYXBz
aG90V2ViVmlld1Rlc3QqIHRlc3QpCiAgICAgewogICAgICAgICBHT3duUHRyPEdFcnJvcj4gZXJy
b3I7CkBAIC0xMTg5LDYgKzExNjEsOCBAQCBwdWJsaWM6CiAKICAgICBnYm9vbGVhbiBnZXRTbmFw
c2hvdEFuZENhbmNlbCgpCiAgICAgeworICAgICAgICBpZiAobV9zdXJmYWNlKQorICAgICAgICAg
ICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KG1fc3VyZmFjZSk7CiAgICAgICAgIG1fc3VyZmFjZSA9
IDA7CiAgICAgICAgIEdSZWZQdHI8R0NhbmNlbGxhYmxlPiBjYW5jZWxsYWJsZSA9IGFkb3B0R1Jl
ZihnX2NhbmNlbGxhYmxlX25ldygpKTsKICAgICAgICAgd2Via2l0X3dlYl92aWV3X2dldF9zbmFw
c2hvdChtX3dlYlZpZXcsIFdFQktJVF9TTkFQU0hPVF9SRUdJT05fVklTSUJMRSwgV0VCS0lUX1NO
QVBTSE9UX09QVElPTlNfTk9ORSwgY2FuY2VsbGFibGUuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8
R0FzeW5jUmVhZHlDYWxsYmFjaz4ob25TbmFwc2hvdENhbmNlbGxlZFJlYWR5KSwgdGhpcyk7CkBA
IC0xMTk4LDIwICsxMTcyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKLSAgICBjYWlyb19zdXJmYWNlX3QqIG1fc3VyZmFjZTsKIH07CiAKLXN0YXRpYyBnYm9vbGVh
biBjYWlyb1N1cmZhY2VzRXF1YWwoY2Fpcm9fc3VyZmFjZV90KiBzMSwgY2Fpcm9fc3VyZmFjZV90
KiBzMikKLXsKLSAgICByZXR1cm4gKGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2Zvcm1hdChzMSkg
PT0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZm9ybWF0KHMyKQotICAgICAgICAmJiBjYWlyb19p
bWFnZV9zdXJmYWNlX2dldF93aWR0aChzMSkgPT0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lk
dGgoczIpCi0gICAgICAgICYmIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hlaWdodChzMSkgPT0g
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHMyKQotICAgICAgICAmJiBjYWlyb19pbWFn
ZV9zdXJmYWNlX2dldF9zdHJpZGUoczEpID09IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlk
ZShzMikKLSAgICAgICAgJiYgIW1lbWNtcChjb25zdF9jYXN0PGNvbnN0IHZvaWQqPihyZWludGVy
cHJldF9jYXN0PHZvaWQqPihjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKHMxKSkpLAotICAg
ICAgICAgICAgY29uc3RfY2FzdDxjb25zdCB2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzMikpKSwKLSAgICAgICAgICAgIGNhaXJvX2lt
YWdlX3N1cmZhY2VfZ2V0X2hlaWdodChzMSkqY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRl
KHMxKSkpOwotfQotCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1NuYXBzaG90KFNuYXBzaG90V2Vi
Vmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CiAgICAgdGVzdC0+bG9hZEh0bWwoIjxo
dG1sPjxib2R5PjxwPldoYXRldmVyPC9wPjwvYm9keT48L2h0bWw+IiwgMCk7CkBAIC0xMjM0LDEx
ICsxMTk2LDkgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdTbmFwc2hvdChTbmFwc2hvdFdlYlZp
ZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0X2NtcGludCh3aWR0aCwg
PD0sIDUwKTsKICAgICBnX2Fzc2VydF9jbXBpbnQoaGVpZ2h0LCA8PSwgNTApOwogCi0gICAgY2Fp
cm9fc3VyZmFjZV9kZXN0cm95KHN1cmZhY2UxKTsKLQogICAgIC8vIFNlbGVjdCBhbGwgdGV4dCBp
biB0aGUgV2ViVmlldywgcmVxdWVzdCBhIHNuYXBzaG90IGlnbm9yaW5nIHNlbGVjdGlvbi4KICAg
ICB0ZXN0LT5zZWxlY3RBbGwoKTsKLSAgICBzdXJmYWNlMSA9IHRlc3QtPndhaXRGb3JTbmFwc2hv
dChXRUJLSVRfU05BUFNIT1RfUkVHSU9OX1ZJU0lCTEUsIFdFQktJVF9TTkFQU0hPVF9PUFRJT05T
X05PTkUpOworICAgIHN1cmZhY2UxID0gY2Fpcm9fc3VyZmFjZV9yZWZlcmVuY2UodGVzdC0+d2Fp
dEZvclNuYXBzaG90KFdFQktJVF9TTkFQU0hPVF9SRUdJT05fVklTSUJMRSwgV0VCS0lUX1NOQVBT
SE9UX09QVElPTlNfTk9ORSkpOwogICAgIGdfYXNzZXJ0KHN1cmZhY2UxKTsKICAgICBnX2Fzc2Vy
dF9jbXBpbnQoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lkdGgoc3VyZmFjZTEpLCA9PSwgd2lk
dGgpOwogICAgIGdfYXNzZXJ0X2NtcGludChjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQo
c3VyZmFjZTEpLCA9PSwgaGVpZ2h0KTsKQEAgLTEyNDgsOCArMTIwOCw3IEBAIHN0YXRpYyB2b2lk
IHRlc3RXZWJWaWV3U25hcHNob3QoU25hcHNob3RXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9p
bnRlcikKICAgICBnX2Fzc2VydChzdXJmYWNlMik7CiAKICAgICAvLyBDb21wYXJlIHRoZXNlIHR3
bywgdGhleSBzaG91bGQgYmUgaWRlbnRpY2FsLgotICAgIGdfYXNzZXJ0KGNhaXJvU3VyZmFjZXNF
cXVhbChzdXJmYWNlMSwgc3VyZmFjZTIpKTsKLSAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3koc3Vy
ZmFjZTIpOworICAgIGdfYXNzZXJ0KFRlc3Q6OmNhaXJvU3VyZmFjZXNFcXVhbChzdXJmYWNlMSwg
c3VyZmFjZTIpKTsKIAogICAgIC8vIFJlcXVlc3QgYSBuZXcgc25hcHNob3QsIGluY2x1ZGluZyB0
aGUgc2VsZWN0aW9uIHRoaXMgdGltZS4gVGhlCiAgICAgLy8gc2l6ZSBzaG91bGQgYmUgdGhlIHNh
bWUgYnV0IHRoZSByZXN1bHQgbXVzdCBiZSBkaWZmZXJlbnQgdG8gdGhlCkBAIC0xMjU4LDggKzEy
MTcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1NuYXBzaG90KFNuYXBzaG90V2ViVmlld1Rl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnQoc3VyZmFjZTIpOwogICAgIGdf
YXNzZXJ0X2NtcGludChjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzdXJmYWNlMiksID09
LCB3aWR0aCk7CiAgICAgZ19hc3NlcnRfY21waW50KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hl
aWdodChzdXJmYWNlMiksID09LCBoZWlnaHQpOwotICAgIGdfYXNzZXJ0KCFjYWlyb1N1cmZhY2Vz
RXF1YWwoc3VyZmFjZTEsIHN1cmZhY2UyKSk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHN1
cmZhY2UyKTsKKyAgICBnX2Fzc2VydCghVGVzdDo6Y2Fpcm9TdXJmYWNlc0VxdWFsKHN1cmZhY2Ux
LCBzdXJmYWNlMikpOwogCiAgICAgLy8gUmVxdWVzdCBhIHNuYXBzaG90IG9mIHRoZSB3aG9sZSBk
b2N1bWVudCBpbiB0aGUgV2ViVmlldy4gVGhlCiAgICAgLy8gcmVzdWx0IHNob3VsZCBiZSBkaWZm
ZXJlbnQgZnJvbSB0aGUgc2l6ZSBvYnRhaW5lZCBwcmV2aW91c2x5LgpAQCAtMTI2NywxMCArMTIy
NSw5IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3U25hcHNob3QoU25hcHNob3RXZWJWaWV3VGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydChzdXJmYWNlMik7CiAgICAgZ19h
c3NlcnRfY21waW50KGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3dpZHRoKHN1cmZhY2UyKSwgID4s
IHdpZHRoKTsKICAgICBnX2Fzc2VydF9jbXBpbnQoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVp
Z2h0KHN1cmZhY2UyKSwgPiwgaGVpZ2h0KTsKLSAgICBnX2Fzc2VydCghY2Fpcm9TdXJmYWNlc0Vx
dWFsKHN1cmZhY2UxLCBzdXJmYWNlMikpOworICAgIGdfYXNzZXJ0KCFUZXN0OjpjYWlyb1N1cmZh
Y2VzRXF1YWwoc3VyZmFjZTEsIHN1cmZhY2UyKSk7CiAKICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ry
b3koc3VyZmFjZTEpOwotICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShzdXJmYWNlMik7CiAKICAg
ICBnX2Fzc2VydCh0ZXN0LT5nZXRTbmFwc2hvdEFuZENhbmNlbCgpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcApp
bmRleCAwNjIxOThhOWUzYTA1NzU1NDFjZjFlZmE2Y2UxZDgxNGZhOWExNDNhLi43MTM2YTQ3OGE5
MWRiNzU0YmJmYjE0ZjFlMTkzOTRjYTQ5ZDZhZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rlc3QuY3BwCkBAIC0zMCw2ICsz
MCw3IEBAIFdlYlZpZXdUZXN0OjpXZWJWaWV3VGVzdCgpCiAgICAgLCBtX3BhcmVudFdpbmRvdygw
KQogICAgICwgbV9qYXZhc2NyaXB0UmVzdWx0KDApCiAgICAgLCBtX3Jlc291cmNlRGF0YVNpemUo
MCkKKyAgICAsIG1fc3VyZmFjZSgwKQogewogICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5U
ZXN0RmluaXNoZXMoR19PQkpFQ1QobV93ZWJWaWV3KSk7CiB9CkBAIC00MCw2ICs0MSw4IEBAIFdl
YlZpZXdUZXN0Ojp+V2ViVmlld1Rlc3QoKQogICAgICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3kobV9w
YXJlbnRXaW5kb3cpOwogICAgIGlmIChtX2phdmFzY3JpcHRSZXN1bHQpCiAgICAgICAgIHdlYmtp
dF9qYXZhc2NyaXB0X3Jlc3VsdF91bnJlZihtX2phdmFzY3JpcHRSZXN1bHQpOworICAgIGlmICht
X3N1cmZhY2UpCisgICAgICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShtX3N1cmZhY2UpOwogICAg
IGdfb2JqZWN0X3VucmVmKG1fd2ViVmlldyk7CiAgICAgZ19tYWluX2xvb3BfdW5yZWYobV9tYWlu
TG9vcCk7CiB9CkBAIC00MjAsMyArNDIzLDIyIEBAIGJvb2wgV2ViVmlld1Rlc3Q6OmphdmFzY3Jp
cHRSZXN1bHRJc1VuZGVmaW5lZChXZWJLaXRKYXZhc2NyaXB0UmVzdWx0KiBqYXZhc2NyaXB0CiAg
ICAgcmV0dXJuIEpTVmFsdWVJc1VuZGVmaW5lZChjb250ZXh0LCB2YWx1ZSk7CiB9CiAKK3N0YXRp
YyB2b2lkIG9uU25hcHNob3RSZWFkeShXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgR0FzeW5jUmVz
dWx0KiByZXMsIFdlYlZpZXdUZXN0KiB0ZXN0KQoreworICAgIEdPd25QdHI8R0Vycm9yPiBlcnJv
cjsKKyAgICB0ZXN0LT5tX3N1cmZhY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90X2Zp
bmlzaCh3ZWJfdmlldywgcmVzLCAmZXJyb3Iub3V0UHRyKCkpOworICAgIGdfYXNzZXJ0KCF0ZXN0
LT5tX3N1cmZhY2UgfHwgIWVycm9yLmdldCgpKTsKKyAgICBpZiAoZXJyb3IpCisgICAgICAgIGdf
YXNzZXJ0X2Vycm9yKGVycm9yLmdldCgpLCBXRUJLSVRfU05BUFNIT1RfRVJST1IsIFdFQktJVF9T
TkFQU0hPVF9FUlJPUl9GQUlMRURfVE9fQ1JFQVRFKTsKKyAgICB0ZXN0LT5xdWl0TWFpbkxvb3Ao
KTsKK30KKworY2Fpcm9fc3VyZmFjZV90KiBXZWJWaWV3VGVzdDo6d2FpdEZvclNuYXBzaG90KFdl
YktpdFNuYXBzaG90UmVnaW9uIHJlZ2lvbiwgV2ViS2l0U25hcHNob3RPcHRpb25zIG9wdGlvbnMp
Cit7CisgICAgaWYgKG1fc3VyZmFjZSkKKyAgICAgICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KG1f
c3VyZmFjZSk7CisgICAgbV9zdXJmYWNlID0gMDsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Nu
YXBzaG90KG1fd2ViVmlldywgcmVnaW9uLCBvcHRpb25zLCAwLCByZWludGVycHJldF9jYXN0PEdB
c3luY1JlYWR5Q2FsbGJhY2s+KG9uU25hcHNob3RSZWFkeSksIHRoaXMpOworICAgIGdfbWFpbl9s
b29wX3J1bihtX21haW5Mb29wKTsKKyAgICByZXR1cm4gbV9zdXJmYWNlOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rlc3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmgKaW5k
ZXggYjEzMjAzZTBhYjRlYzg1YjFiMmFjZDY0ZTM5YTU0YjYyODkxZmRmOS4uMDk5N2M1ODA4ZTQ0
ZGFiZTUwNjMyMjA3YjJlNWJmYjUzY2MxMDM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVzdC5oCkBAIC02Niw2ICs2Niw4IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBqYXZhc2NyaXB0UmVzdWx0SXNOdWxsKFdlYktpdEph
dmFzY3JpcHRSZXN1bHQqKTsKICAgICBzdGF0aWMgYm9vbCBqYXZhc2NyaXB0UmVzdWx0SXNVbmRl
ZmluZWQoV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCopOwogCisgICAgY2Fpcm9fc3VyZmFjZV90KiB3
YWl0Rm9yU25hcHNob3QoV2ViS2l0U25hcHNob3RSZWdpb24sIFdlYktpdFNuYXBzaG90T3B0aW9u
cyk7CisKICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAgR01haW5Mb29wKiBtX21h
aW5Mb29wOwogICAgIENTdHJpbmcgbV9hY3RpdmVVUkk7CkBAIC03NSw2ICs3Nyw3IEBAIHB1Ymxp
YzoKICAgICBHRXJyb3IqKiBtX2phdmFzY3JpcHRFcnJvcjsKICAgICBHT3duUHRyPGNoYXI+IG1f
cmVzb3VyY2VEYXRhOwogICAgIHNpemVfdCBtX3Jlc291cmNlRGF0YVNpemU7CisgICAgY2Fpcm9f
c3VyZmFjZV90KiBtX3N1cmZhY2U7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkb01vdXNlQnV0dG9u
RXZlbnQoR2RrRXZlbnRUeXBlLCBpbnQsIGludCwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYw
MWIwYWNlYjg1MWRhZTYwMTBlMDc0OTNlNTlhY2MyYTYxN2JmZjQuLjI4M2MyMjliOWJkNmIzYTY4
MjcxYzNjMTdmMzk0ZGQxOWVlZjdlYTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wNC0xOSAgTWFudWVsIFJl
Z28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBGaXggdW5p
dCB0ZXN0IHdlYmtpdDIvV2ViS2l0RmluZENvbnRyb2xsZXIvaGlkZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4MTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLWd0ay10ZXN0czoK
KyAgICAgICAgKFRlc3RSdW5uZXIpOiBVbnNraXAgdGVzdCB3ZWJraXQyL1dlYktpdEZpbmRDb250
cm9sbGVyL2hpZGUuCisKIDIwMTMtMDQtMTcgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdt
YWlsLmNvbT4KIAogICAgICAgICBbRGFzaGJvYXJkXSBSZW1vdmUgY29kZSBmb3Igc2hvd2luZyAn
V2ViS2l0IHJvbGwnIGFubm90YXRpb25zIGluIHRpbWVsaW5lcyBmb3IgQ2hyb21pdW0gYnVpbGRl
cnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0cyBiL1Rvb2xzL1Njcmlw
dHMvcnVuLWd0ay10ZXN0cwppbmRleCAzZDQ3OTk5MDgwZGNlZWI0MmE2ZGJhMmIyYzM1OTM2N2Uw
MTUyYzdmLi43ZWQ1ZDRkN2IyOWQzNDRkZTg4ZDg4OGQyZjE4NmY2Zjg0NjNmNzZkIDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4t
Z3RrLXRlc3RzCkBAIC03MCw3ICs3MCw2IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgIFNr
aXBwZWRUZXN0KCJXZWJLaXQyQVBJVGVzdHMvVGVzdEluc3BlY3RvclNlcnZlciIsIFNraXBwZWRU
ZXN0LkVOVElSRV9TVUlURSwgIlRlc3QgdGltZXMgb3V0IiwgMTA1ODY2KSwKICAgICAgICAgU2tp
cHBlZFRlc3QoIldlYktpdDJBUElUZXN0cy9UZXN0UmVzb3VyY2VzIiwgIi93ZWJraXQyL1dlYktp
dFdlYlZpZXcvcmVzb3VyY2VzIiwgIlRlc3QgaXMgZmxha3kgaW4gR1RLIExpbnV4IDMyLWJpdCBS
ZWxlYXNlIGJvdCIsIDgyODY4KSwKICAgICAgICAgU2tpcHBlZFRlc3QoIldlYktpdDJBUElUZXN0
cy9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eSIsICIvd2Via2l0Mi9XZWJLaXRBY2Nlc3NpYmlsaXR5
L2F0c3BpLWJhc2ljLWhpZXJhcmNoeSIsICJUZXN0IGZhaWxzIiwgMTAwNDA4KSwKLSAgICAgICAg
U2tpcHBlZFRlc3QoIldlYktpdDJBUElUZXN0cy9UZXN0V2ViS2l0RmluZENvbnRyb2xsZXIiLCAi
L3dlYmtpdDIvV2ViS2l0RmluZENvbnRyb2xsZXIvaGlkZSIsICJUZXN0IGFsd2F5cyBmYWlscyBp
biBYdmZiIiwgODk4MTApLAogICAgICAgICBTa2lwcGVkVGVzdCgiVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0MiIsICJXZWJLaXQyLkNhbkhhbmRsZVJlcXVlc3QiLCAiVGVzdCBmYWlscyIsIDg4NDUz
KSwKICAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdDIiLCAiV2Vi
S2l0Mi5Nb3VzZU1vdmVBZnRlckNyYXNoIiwgIlRlc3QgaXMgZmxha3kiLCA4NTA2NiksCiAgICAg
ICAgIFNraXBwZWRUZXN0KCJUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXQyIiwgIldlYktpdDIuTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzIiwgIlRlc3QgaXMgZmxha3kiLCA4
NTA2NiksCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198889</attachid>
            <date>2013-04-19 09:00:15 -0700</date>
            <delta_ts>2013-04-20 01:22:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89810-20130419175943.patch</filename>
            <type>text/plain</type>
            <size>20018</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2FlOWRlMjIzMWZjNWEz
NzRjMGE2YjBhZDgwNWVjZjEyNjczZDFiMy4uMDExZjcyZjY5NTYwYWM1Zjc5ODEzMzkwZDUxMDUz
NjJlNjBlZDJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA0LTE5ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEZp
eCB1bml0IHRlc3Qgd2Via2l0Mi9XZWJLaXRGaW5kQ29udHJvbGxlci9oaWRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTgxMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0ZXN0IGhhZCBzb21lIGhh
Y2tzIGluIG9yZGVyIHRvIGNvbXBhcmUgYSBwYWdlIHdpdGggaGlnaGxpZ2h0ZWQKKyAgICAgICAg
cmVzdWx0cyBhZnRlciB1c2luZyB0aGUgZmluZCBjb21tYW5kIHdpdGggdGhlIG9yaWdpbmFsIHBh
Z2UuIE5vdyBpdCB1c2VzCisgICAgICAgIHRoZSBzbmFwc2hvdHMgQVBJIHRoYXQgYWxsb3dzIHRv
IG1ha2UgdGhlIHRlc3Qgc2ltcGxlciBhbmQgbW9yZQorICAgICAgICByZWxpYWJsZS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RNYWluLmg6CisgICAgICAgIChUZXN0
OjpjYWlyb1N1cmZhY2VzRXF1YWwpOiBNb3ZlZCBoZWxwZXIgZnVuY3Rpb24gdG8gY29tcGFyZSB0
d28gY2Fpcm8KKyAgICAgICAgc3VyZmFjZXMgZnJvbSBUZXN0V2ViS2l0V2ViVmlldy4KKyAgICAg
ICAgKFRlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRG
aW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgICh0ZXN0RmluZENvbnRyb2xsZXJIaWRlKTogTW9k
aWZ5IHRlc3QgdG8gdXNlIHNuYXBzaG90cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay90
ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh0ZXN0V2ViVmlld1NuYXBzaG90
KTogTW92ZSBiYXNpYyBzbmFwc2hvcCBtZXRob2RzIHRvIFdlYlZpZXdUZXN0IHRvCisgICAgICAg
IHNoYXJlIHRoZW0gd2l0aCBUZXN0V2ViS2l0RmluZENvbnRyb2xsZXIgdGVzdC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVzdC5jcHA6CisgICAgICAgIChXZWJW
aWV3VGVzdDo6V2ViVmlld1Rlc3QpOiBJbml0aWFsaXplIGNhaXJvIHN1cmZhY2UuCisgICAgICAg
IChXZWJWaWV3VGVzdDo6fldlYlZpZXdUZXN0KTogRGVzdHJveSBjYWlybyBzdXJmYWNlLgorICAg
ICAgICAob25TbmFwc2hvdFJlYWR5KTogQ2FsbGJhY2sgdG8gc2V0IHRoZSBjYWlybyBzdXJmYWNl
IHdoZW4gdGhlIHNuYXBzaG90CisgICAgICAgIGlzIHJlYWR5LgorICAgICAgICAoV2ViVmlld1Rl
c3Q6OmdldFNuYXBzaG90QW5kV2FpdFVudGlsUmVhZHkpOiBNZXRob2QgdGhhdCB0YWtlcyBhCisg
ICAgICAgIHNuYXBzaG90IGFuZCByZXR1cm5zIHRoZSBjYWlybyBzdXJmYWNlIHdoZW4gaXQgaXMg
cmVhZHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rlc3QuaDog
QWRkIG5ldyBtZXRob2QgaGVhZGVycyBhbmQKKyAgICAgICAgYXR0cmlidXRlIGZvciB0aGUgY2Fp
cm8gc3VyZmFjZS4KKwogMjAxMy0wNC0xOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBQREZQbHVnaW46IFVwZGF0ZSBQREZMYXllckNvbnRyb2xsZXIn
cyBzY2FsZSBmYWN0b3JzIGVhcmxpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RNYWluLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay90ZXN0cy9UZXN0TWFpbi5oCmluZGV4IDQ4ZGE3MzZkYmJiYjM1YjdiYTUxY2M5NjU1
NGRjZTczNzMzOGE4ZWIuLjAyYzkwNzA5YzQzYTlhZTY1NmU5Y2I5NTQ0N2Y4ZjkyODQ4ZDNjOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RN
YWluLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdE1h
aW4uaApAQCAtMjAsNiArMjAsNyBAQAogI2lmbmRlZiBUZXN0TWFpbl9oCiAjZGVmaW5lIFRlc3RN
YWluX2gKIAorI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4K
QEAgLTEwMSw2ICsxMDIsMTcgQEAgcHVibGljOgogICAgICAgICBnX2xvZ19zZXRfYWx3YXlzX2Zh
dGFsKHN0YXRpY19jYXN0PEdMb2dMZXZlbEZsYWdzPihmYXRhbE1hc2spKTsKICAgICB9CiAKKyAg
ICBzdGF0aWMgYm9vbCBjYWlyb1N1cmZhY2VzRXF1YWwoY2Fpcm9fc3VyZmFjZV90KiBzMSwgY2Fp
cm9fc3VyZmFjZV90KiBzMikKKyAgICB7CisgICAgICAgIHJldHVybiAoY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9nZXRfZm9ybWF0KHMxKSA9PSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9mb3JtYXQoczIp
CisgICAgICAgICAgICAmJiBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF93aWR0aChzMSkgPT0gY2Fp
cm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lkdGgoczIpCisgICAgICAgICAgICAmJiBjYWlyb19pbWFn
ZV9zdXJmYWNlX2dldF9oZWlnaHQoczEpID09IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2hlaWdo
dChzMikKKyAgICAgICAgICAgICYmIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzMSkg
PT0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRlKHMyKQorICAgICAgICAgICAgJiYgIW1l
bWNtcChjb25zdF9jYXN0PGNvbnN0IHZvaWQqPihyZWludGVycHJldF9jYXN0PHZvaWQqPihjYWly
b19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKHMxKSkpLAorICAgICAgICAgICAgICAgIGNvbnN0X2Nh
c3Q8Y29uc3Qgdm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhaXJvX2ltYWdlX3N1cmZh
Y2VfZ2V0X2RhdGEoczIpKSksCisgICAgICAgICAgICAgICAgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9n
ZXRfaGVpZ2h0KHMxKSpjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9zdHJpZGUoczEpKSk7CisgICAg
fQorCiAgICAgSGFzaFNldDxHT2JqZWN0Kj4gbV93YXRjaGVkT2JqZWN0czsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRG
aW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0
cy9UZXN0V2ViS2l0RmluZENvbnRyb2xsZXIuY3BwCmluZGV4IDkwMTU5Yjg3ZmNiOWIzNDI3NmRi
NDdkNzM3NTg5NWZhMjk1NmQxNTAuLmQyZWVmNGNhNDg2M2U5YzFhMmMzNmU0MzE1N2VjNmQ1NGI1
ZDcxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3Rz
L1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdEZpbmRDb250cm9sbGVyLmNwcApAQCAtNjIsMTIg
KzYyLDYgQEAgcHVibGljOgogICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcCk7CiAg
ICAgfQogCi0gICAgdm9pZCB3YWl0VW50aWxXZWJWaWV3RHJhd1NpZ25hbCgpCi0gICAgewotICAg
ICAgICBnX3NpZ25hbF9jb25uZWN0X2FmdGVyKG1fd2ViVmlldywgImRyYXciLCBHX0NBTExCQUNL
KHdlYlZpZXdEcmF3KSwgdGhpcyk7Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29w
KTsKLSAgICB9Ci0KICAgICBHUmVmUHRyPFdlYktpdEZpbmRDb250cm9sbGVyPiBtX2ZpbmRDb250
cm9sbGVyOwogICAgIGJvb2wgbV90ZXh0Rm91bmQ7CiAgICAgdW5zaWduZWQgbV9tYXRjaENvdW50
OwpAQCAtNzUsMTIgKzY5LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBib29sIG1fcnVuRmlu
ZFVudGlsQ29tcGxldGlvbjsKIAotICAgIHN0YXRpYyB2b2lkIHdlYlZpZXdEcmF3KEd0a1dpZGdl
dCAqd2lkZ2V0LCBjYWlyb190ICpjciwgRmluZENvbnRyb2xsZXJUZXN0KiB0ZXN0KQotICAgIHsK
LSAgICAgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKLSAgICAgICAgZ19z
aWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkKHdpZGdldCwgR19TSUdOQUxfTUFUQ0hf
REFUQSwgMCwgMCwgMCwgMCwgdGVzdCk7Ci0gICAgfQotCiAgICAgc3RhdGljIHZvaWQgZm91bmRU
ZXh0Q2FsbGJhY2soV2ViS2l0RmluZENvbnRyb2xsZXIqLCBndWludCBtYXRjaENvdW50LCBGaW5k
Q29udHJvbGxlclRlc3QqIHRlc3QpCiAgICAgewogICAgICAgICB0ZXN0LT5tX3RleHRGb3VuZCA9
IHRydWU7CkBAIC0yNzEsNjcgKzI1OSwzOCBAQCBzdGF0aWMgdm9pZCB0ZXN0RmluZENvbnRyb2xs
ZXJPcHRpb25zKEZpbmRDb250cm9sbGVyVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBn
X2Fzc2VydCh0ZXN0LT5tX3RleHRGb3VuZCk7CiB9CiAKLXN0YXRpYyBnYm9vbGVhbiBnZGtQaXhi
dWZFcXVhbChHZGtQaXhidWYqIGZpcnN0UGl4YnVmLCBHZGtQaXhidWYqIHNlY29uZFBpeGJ1ZikK
LXsKLSAgICBpZiAoZ2RrX3BpeGJ1Zl9nZXRfYml0c19wZXJfc2FtcGxlKGZpcnN0UGl4YnVmKSAh
PSBnZGtfcGl4YnVmX2dldF9iaXRzX3Blcl9zYW1wbGUoc2Vjb25kUGl4YnVmKQotICAgICAgICB8
fCBnZGtfcGl4YnVmX2dldF9oYXNfYWxwaGEoZmlyc3RQaXhidWYpICE9IGdka19waXhidWZfZ2V0
X2hhc19hbHBoYShzZWNvbmRQaXhidWYpCi0gICAgICAgIHx8IGdka19waXhidWZfZ2V0X2hlaWdo
dChmaXJzdFBpeGJ1ZikgIT0gZ2RrX3BpeGJ1Zl9nZXRfaGVpZ2h0KHNlY29uZFBpeGJ1ZikKLSAg
ICAgICAgfHwgZ2RrX3BpeGJ1Zl9nZXRfbl9jaGFubmVscyhmaXJzdFBpeGJ1ZikgIT0gZ2RrX3Bp
eGJ1Zl9nZXRfbl9jaGFubmVscyhzZWNvbmRQaXhidWYpCi0gICAgICAgIHx8IGdka19waXhidWZf
Z2V0X3Jvd3N0cmlkZShmaXJzdFBpeGJ1ZikgIT0gZ2RrX3BpeGJ1Zl9nZXRfcm93c3RyaWRlKHNl
Y29uZFBpeGJ1ZikKLSAgICAgICAgfHwgZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgoZmlyc3RQaXhidWYp
ICE9IGdka19waXhidWZfZ2V0X3dpZHRoKHNlY29uZFBpeGJ1ZikpCi0gICAgICAgIHJldHVybiBG
QUxTRTsKLQotICAgIGludCBwaXhidWZSb3dzdHJpZGUgPSBnZGtfcGl4YnVmX2dldF9yb3dzdHJp
ZGUoZmlyc3RQaXhidWYpOwotICAgIGludCBwaXhidWZIZWlnaHQgPSBnZGtfcGl4YnVmX2dldF9o
ZWlnaHQoZmlyc3RQaXhidWYpOwotICAgIGludCBwaXhidWZXaWR0aCA9IGdka19waXhidWZfZ2V0
X3dpZHRoKGZpcnN0UGl4YnVmKTsKLSAgICBpbnQgbnVtYmVyT2ZDaGFubmVscyA9IGdka19waXhi
dWZfZ2V0X25fY2hhbm5lbHMoZmlyc3RQaXhidWYpOwotICAgIGludCBiaXRzUGVyU2FtcGxlID0g
Z2RrX3BpeGJ1Zl9nZXRfYml0c19wZXJfc2FtcGxlKGZpcnN0UGl4YnVmKTsKLQotICAgIC8vIExh
c3Qgcm93IGNhbiBiZSBvZiBkaWZmZXJlbnQgbGVuZ3RoLiBUYWtlbiBmcm9tIGdkay1waXhidWYg
ZG9jdW1lbnRhdGlvbi4KLSAgICBpbnQgdG90YWxMZW5ndGggPSAocGl4YnVmSGVpZ2h0IC0gMSkg
KiBwaXhidWZSb3dzdHJpZGUgXAotICAgICAgICArIHBpeGJ1ZldpZHRoICogKChudW1iZXJPZkNo
YW5uZWxzICogYml0c1BlclNhbXBsZSArIDcpIC8gOCk7Ci0KLSAgICBndWNoYXIqIGZpcnN0UGl4
ZWxzID0gZ2RrX3BpeGJ1Zl9nZXRfcGl4ZWxzKGZpcnN0UGl4YnVmKTsKLSAgICBndWNoYXIqIHNl
Y29uZFBpeGVscyA9IGdka19waXhidWZfZ2V0X3BpeGVscyhzZWNvbmRQaXhidWYpOwotICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgdG90YWxMZW5ndGg7IGkrKykKLSAgICAgICAgaWYgKGZpcnN0UGl4
ZWxzW2ldICE9IHNlY29uZFBpeGVsc1tpXSkKLSAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLQot
ICAgIHJldHVybiBUUlVFOwotfQotCiBzdGF0aWMgdm9pZCB0ZXN0RmluZENvbnRyb2xsZXJIaWRl
KEZpbmRDb250cm9sbGVyVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKICAgICB0ZXN0LT5s
b2FkSHRtbCh0ZXN0U3RyaW5nLCAwKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQo
KTsKIAogICAgIHRlc3QtPnNob3dJbldpbmRvd0FuZFdhaXRVbnRpbE1hcHBlZCgpOwotICAgIGlu
dCBhbGxvY2F0ZWRIZWlnaHQgPSBndGtfd2lkZ2V0X2dldF9hbGxvY2F0ZWRfaGVpZ2h0KEdUS19X
SURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0gICAgaW50IGFsbG9jYXRlZFdpZHRoID0gZ3RrX3dp
ZGdldF9nZXRfYWxsb2NhdGVkX3dpZHRoKEdUS19XSURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0g
ICAgR2RrV2luZG93KiB3ZWJWaWV3R2RrV2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KEdU
S19XSURHRVQodGVzdC0+bV93ZWJWaWV3KSk7Ci0gICAgZ19hc3NlcnQod2ViVmlld0dka1dpbmRv
dyk7CiAKLSAgICB0ZXN0LT53YWl0VW50aWxXZWJWaWV3RHJhd1NpZ25hbCgpOwotICAgIEdSZWZQ
dHI8R2RrUGl4YnVmPiBvcmlnaW5hbFBpeGJ1ZiA9IGFkb3B0R1JlZihnZGtfcGl4YnVmX2dldF9m
cm9tX3dpbmRvdyh3ZWJWaWV3R2RrV2luZG93LCAwLCAwLCBhbGxvY2F0ZWRIZWlnaHQsIGFsbG9j
YXRlZFdpZHRoKSk7Ci0gICAgZ19hc3NlcnQob3JpZ2luYWxQaXhidWYpOworICAgIGNhaXJvX3N1
cmZhY2VfdCogb3JpZ2luYWxTdXJmYWNlID0gY2Fpcm9fc3VyZmFjZV9yZWZlcmVuY2UoCisgICAg
ICAgIHRlc3QtPmdldFNuYXBzaG90QW5kV2FpdFVudGlsUmVhZHkoV0VCS0lUX1NOQVBTSE9UX1JF
R0lPTl9GVUxMX0RPQ1VNRU5ULCBXRUJLSVRfU05BUFNIT1RfT1BUSU9OU19OT05FKSk7CisgICAg
Z19hc3NlcnQob3JpZ2luYWxTdXJmYWNlKTsKIAogICAgIHRlc3QtPmZpbmQoInRlc3RpbmciLCBX
RUJLSVRfRklORF9PUFRJT05TX05PTkUsIDEpOwogICAgIHRlc3QtPndhaXRVbnRpbEZpbmRGaW5p
c2hlZCgpOwogICAgIGdfYXNzZXJ0KHRlc3QtPm1fdGV4dEZvdW5kKTsKIAotICAgIHRlc3QtPndh
aXRVbnRpbFdlYlZpZXdEcmF3U2lnbmFsKCk7Ci0gICAgR1JlZlB0cjxHZGtQaXhidWY+IGhpZ2hs
aWdodFBpeGJ1ZiA9IGFkb3B0R1JlZihnZGtfcGl4YnVmX2dldF9mcm9tX3dpbmRvdyh3ZWJWaWV3
R2RrV2luZG93LCAwLCAwLCBhbGxvY2F0ZWRIZWlnaHQsIGFsbG9jYXRlZFdpZHRoKSk7Ci0gICAg
Z19hc3NlcnQoaGlnaGxpZ2h0UGl4YnVmKTsKLSAgICBnX2Fzc2VydCghZ2RrUGl4YnVmRXF1YWwo
b3JpZ2luYWxQaXhidWYuZ2V0KCksIGhpZ2hsaWdodFBpeGJ1Zi5nZXQoKSkpOworICAgIGNhaXJv
X3N1cmZhY2VfdCogaGlnaGxpZ2h0U3VyZmFjZSA9IGNhaXJvX3N1cmZhY2VfcmVmZXJlbmNlKAor
ICAgICAgICB0ZXN0LT5nZXRTbmFwc2hvdEFuZFdhaXRVbnRpbFJlYWR5KFdFQktJVF9TTkFQU0hP
VF9SRUdJT05fRlVMTF9ET0NVTUVOVCwgV0VCS0lUX1NOQVBTSE9UX09QVElPTlNfTk9ORSkpOwor
ICAgIGdfYXNzZXJ0KGhpZ2hsaWdodFN1cmZhY2UpOworICAgIGdfYXNzZXJ0KCFUZXN0OjpjYWly
b1N1cmZhY2VzRXF1YWwob3JpZ2luYWxTdXJmYWNlLCBoaWdobGlnaHRTdXJmYWNlKSk7CiAKICAg
ICBXZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIgPSB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2ZpbmRfY29udHJvbGxlcih0ZXN0LT5tX3dlYlZpZXcpOwogICAgIHdlYmtpdF9maW5kX2Nv
bnRyb2xsZXJfc2VhcmNoX2ZpbmlzaChmaW5kQ29udHJvbGxlcik7CiAgICAgd2Via2l0X3dlYl92
aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kKHRlc3QtPm1fd2ViVmlldywgIlVuc2VsZWN0Iik7
CiAKLSAgICB0ZXN0LT53YWl0VW50aWxXZWJWaWV3RHJhd1NpZ25hbCgpOwotICAgIEdSZWZQdHI8
R2RrUGl4YnVmPiB1bmhpZ2hsaWdodFBpeGJ1ZiA9IGFkb3B0R1JlZihnZGtfcGl4YnVmX2dldF9m
cm9tX3dpbmRvdyh3ZWJWaWV3R2RrV2luZG93LCAwLCAwLCBhbGxvY2F0ZWRIZWlnaHQsIGFsbG9j
YXRlZFdpZHRoKSk7Ci0gICAgZ19hc3NlcnQodW5oaWdobGlnaHRQaXhidWYpOwotICAgIGdfYXNz
ZXJ0KGdka1BpeGJ1ZkVxdWFsKG9yaWdpbmFsUGl4YnVmLmdldCgpLCB1bmhpZ2hsaWdodFBpeGJ1
Zi5nZXQoKSkpOworICAgIGNhaXJvX3N1cmZhY2VfdCogdW5oaWdobGlnaHRTdXJmYWNlID0gY2Fp
cm9fc3VyZmFjZV9yZWZlcmVuY2UoCisgICAgICAgIHRlc3QtPmdldFNuYXBzaG90QW5kV2FpdFVu
dGlsUmVhZHkoV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9GVUxMX0RPQ1VNRU5ULCBXRUJLSVRfU05B
UFNIT1RfT1BUSU9OU19OT05FKSk7CisgICAgZ19hc3NlcnQodW5oaWdobGlnaHRTdXJmYWNlKTsK
KyAgICBnX2Fzc2VydChUZXN0OjpjYWlyb1N1cmZhY2VzRXF1YWwob3JpZ2luYWxTdXJmYWNlLCB1
bmhpZ2hsaWdodFN1cmZhY2UpKTsKKworICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShvcmlnaW5h
bFN1cmZhY2UpOworICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShoaWdobGlnaHRTdXJmYWNlKTsK
KyAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kodW5oaWdobGlnaHRTdXJmYWNlKTsKIH0KIAogc3Rh
dGljIHZvaWQgdGVzdEZpbmRDb250cm9sbGVySW5zdGFuY2UoRmluZENvbnRyb2xsZXJUZXN0KiB0
ZXN0LCBnY29uc3Rwb2ludGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXcuY3BwCmluZGV4IDk1MTAzZGE1
NWNmNDY2ZThjMDJiNWM2ODliODhkMGZiZDQ4ZjBhODguLjQ4YzUyZTZlNWI1MTIwODk1MGQxMTFh
NDA2NGRlNGUzYjBjY2NmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5jcHAKQEAgLTExNTAsMzQg
KzExNTAsNiBAQCBjbGFzcyBTbmFwc2hvdFdlYlZpZXdUZXN0OiBwdWJsaWMgV2ViVmlld1Rlc3Qg
ewogcHVibGljOgogICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRVUkUoU25hcHNob3RXZWJWaWV3VGVz
dCk7CiAKLSAgICBTbmFwc2hvdFdlYlZpZXdUZXN0KCkKLSAgICAgICAgOiBtX3N1cmZhY2UoMCkK
LSAgICB7Ci0gICAgfQotCi0gICAgflNuYXBzaG90V2ViVmlld1Rlc3QoKQotICAgIHsKLSAgICAg
ICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KG1fc3VyZmFjZSk7Ci0gICAgfQotCi0gICAgc3RhdGlj
IHZvaWQgb25TbmFwc2hvdFJlYWR5KFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBHQXN5bmNSZXN1
bHQqIHJlcywgU25hcHNob3RXZWJWaWV3VGVzdCogdGVzdCkKLSAgICB7Ci0gICAgICAgIEdPd25Q
dHI8R0Vycm9yPiBlcnJvcjsKLSAgICAgICAgdGVzdC0+bV9zdXJmYWNlID0gd2Via2l0X3dlYl92
aWV3X2dldF9zbmFwc2hvdF9maW5pc2god2ViX3ZpZXcsIHJlcywgJmVycm9yLm91dFB0cigpKTsK
LSAgICAgICAgZ19hc3NlcnQoIXRlc3QtPm1fc3VyZmFjZSB8fCAhZXJyb3IuZ2V0KCkpOwotICAg
ICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICBnX2Fzc2VydF9lcnJvcihlcnJvci5nZXQoKSwg
V0VCS0lUX1NOQVBTSE9UX0VSUk9SLCBXRUJLSVRfU05BUFNIT1RfRVJST1JfRkFJTEVEX1RPX0NS
RUFURSk7Ci0gICAgICAgIHRlc3QtPnF1aXRNYWluTG9vcCgpOwotICAgIH0KLQotICAgIGNhaXJv
X3N1cmZhY2VfdCogd2FpdEZvclNuYXBzaG90KFdlYktpdFNuYXBzaG90UmVnaW9uIHJlZ2lvbiwg
V2ViS2l0U25hcHNob3RPcHRpb25zIG9wdGlvbnMpCi0gICAgewotICAgICAgICBtX3N1cmZhY2Ug
PSAwOwotICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90KG1fd2ViVmlldywgcmVn
aW9uLCBvcHRpb25zLCAwLCByZWludGVycHJldF9jYXN0PEdBc3luY1JlYWR5Q2FsbGJhY2s+KG9u
U25hcHNob3RSZWFkeSksIHRoaXMpOwotICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9v
cCk7Ci0gICAgICAgIHJldHVybiBjYWlyb19zdXJmYWNlX3JlZmVyZW5jZShtX3N1cmZhY2UpOwot
ICAgIH0KLQogICAgIHN0YXRpYyB2b2lkIG9uU25hcHNob3RDYW5jZWxsZWRSZWFkeShXZWJLaXRX
ZWJWaWV3KiB3ZWJfdmlldywgR0FzeW5jUmVzdWx0KiByZXMsIFNuYXBzaG90V2ViVmlld1Rlc3Qq
IHRlc3QpCiAgICAgewogICAgICAgICBHT3duUHRyPEdFcnJvcj4gZXJyb3I7CkBAIC0xMTg5LDYg
KzExNjEsOCBAQCBwdWJsaWM6CiAKICAgICBnYm9vbGVhbiBnZXRTbmFwc2hvdEFuZENhbmNlbCgp
CiAgICAgeworICAgICAgICBpZiAobV9zdXJmYWNlKQorICAgICAgICAgICAgY2Fpcm9fc3VyZmFj
ZV9kZXN0cm95KG1fc3VyZmFjZSk7CiAgICAgICAgIG1fc3VyZmFjZSA9IDA7CiAgICAgICAgIEdS
ZWZQdHI8R0NhbmNlbGxhYmxlPiBjYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2NhbmNlbGxhYmxl
X25ldygpKTsKICAgICAgICAgd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdChtX3dlYlZpZXcs
IFdFQktJVF9TTkFQU0hPVF9SRUdJT05fVklTSUJMRSwgV0VCS0lUX1NOQVBTSE9UX09QVElPTlNf
Tk9ORSwgY2FuY2VsbGFibGUuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R0FzeW5jUmVhZHlDYWxs
YmFjaz4ob25TbmFwc2hvdENhbmNlbGxlZFJlYWR5KSwgdGhpcyk7CkBAIC0xMTk4LDMzICsxMTcy
LDIxIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgY2Fpcm9f
c3VyZmFjZV90KiBtX3N1cmZhY2U7CiB9OwogCi1zdGF0aWMgZ2Jvb2xlYW4gY2Fpcm9TdXJmYWNl
c0VxdWFsKGNhaXJvX3N1cmZhY2VfdCogczEsIGNhaXJvX3N1cmZhY2VfdCogczIpCi17Ci0gICAg
cmV0dXJuIChjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9mb3JtYXQoczEpID09IGNhaXJvX2ltYWdl
X3N1cmZhY2VfZ2V0X2Zvcm1hdChzMikKLSAgICAgICAgJiYgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9n
ZXRfd2lkdGgoczEpID09IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3dpZHRoKHMyKQotICAgICAg
ICAmJiBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoczEpID09IGNhaXJvX2ltYWdlX3N1
cmZhY2VfZ2V0X2hlaWdodChzMikKLSAgICAgICAgJiYgY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRf
c3RyaWRlKHMxKSA9PSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9zdHJpZGUoczIpCi0gICAgICAg
ICYmICFtZW1jbXAoY29uc3RfY2FzdDxjb25zdCB2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfZGF0YShzMSkpKSwKLSAgICAgICAgICAgIGNvbnN0
X2Nhc3Q8Y29uc3Qgdm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNhaXJvX2ltYWdlX3N1
cmZhY2VfZ2V0X2RhdGEoczIpKSksCi0gICAgICAgICAgICBjYWlyb19pbWFnZV9zdXJmYWNlX2dl
dF9oZWlnaHQoczEpKmNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzMSkpKTsKLX0KLQog
c3RhdGljIHZvaWQgdGVzdFdlYlZpZXdTbmFwc2hvdChTbmFwc2hvdFdlYlZpZXdUZXN0KiB0ZXN0
LCBnY29uc3Rwb2ludGVyKQogewogICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48Ym9keT48cD5X
aGF0ZXZlcjwvcD48L2JvZHk+PC9odG1sPiIsIDApOwogICAgIHRlc3QtPndhaXRVbnRpbExvYWRG
aW5pc2hlZCgpOwogCiAgICAgLy8gV2ViVmlldyBub3QgdmlzaWJsZS4KLSAgICBjYWlyb19zdXJm
YWNlX3QqIHN1cmZhY2UxID0gdGVzdC0+d2FpdEZvclNuYXBzaG90KFdFQktJVF9TTkFQU0hPVF9S
RUdJT05fVklTSUJMRSwgV0VCS0lUX1NOQVBTSE9UX09QVElPTlNfTk9ORSk7CisgICAgY2Fpcm9f
c3VyZmFjZV90KiBzdXJmYWNlMSA9IHRlc3QtPmdldFNuYXBzaG90QW5kV2FpdFVudGlsUmVhZHko
V0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxFLCBXRUJLSVRfU05BUFNIT1RfT1BUSU9OU19O
T05FKTsKICAgICBnX2Fzc2VydCghc3VyZmFjZTEpOwogCiAgICAgLy8gU2hvdyBzdXJmYWNlLCBy
ZXNpemUgdG8gNTB4NTAsIHRyeSBhZ2Fpbi4KICAgICB0ZXN0LT5zaG93SW5XaW5kb3dBbmRXYWl0
VW50aWxNYXBwZWQoKTsKICAgICB0ZXN0LT5yZXNpemVWaWV3KDUwLCA1MCk7Ci0gICAgc3VyZmFj
ZTEgPSB0ZXN0LT53YWl0Rm9yU25hcHNob3QoV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxF
LCBXRUJLSVRfU05BUFNIT1RfT1BUSU9OU19OT05FKTsKKyAgICBzdXJmYWNlMSA9IHRlc3QtPmdl
dFNuYXBzaG90QW5kV2FpdFVudGlsUmVhZHkoV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxF
LCBXRUJLSVRfU05BUFNIT1RfT1BUSU9OU19OT05FKTsKICAgICBnX2Fzc2VydChzdXJmYWNlMSk7
CiAKICAgICAvLyBvYnRhaW5lZCBzdXJmYWNlIHNob3VsZCBiZSBhdCB0aGUgbW9zdCA1MHg1MC4g
U3RvcmUgdGhlIHNpemUKQEAgLTEyMzQsNDMgKzExOTYsMzggQEAgc3RhdGljIHZvaWQgdGVzdFdl
YlZpZXdTbmFwc2hvdChTbmFwc2hvdFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQog
ICAgIGdfYXNzZXJ0X2NtcGludCh3aWR0aCwgPD0sIDUwKTsKICAgICBnX2Fzc2VydF9jbXBpbnQo
aGVpZ2h0LCA8PSwgNTApOwogCi0gICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHN1cmZhY2UxKTsK
LQogICAgIC8vIFNlbGVjdCBhbGwgdGV4dCBpbiB0aGUgV2ViVmlldywgcmVxdWVzdCBhIHNuYXBz
aG90IGlnbm9yaW5nIHNlbGVjdGlvbi4KICAgICB0ZXN0LT5zZWxlY3RBbGwoKTsKLSAgICBzdXJm
YWNlMSA9IHRlc3QtPndhaXRGb3JTbmFwc2hvdChXRUJLSVRfU05BUFNIT1RfUkVHSU9OX1ZJU0lC
TEUsIFdFQktJVF9TTkFQU0hPVF9PUFRJT05TX05PTkUpOworICAgIHN1cmZhY2UxID0gY2Fpcm9f
c3VyZmFjZV9yZWZlcmVuY2UodGVzdC0+Z2V0U25hcHNob3RBbmRXYWl0VW50aWxSZWFkeShXRUJL
SVRfU05BUFNIT1RfUkVHSU9OX1ZJU0lCTEUsIFdFQktJVF9TTkFQU0hPVF9PUFRJT05TX05PTkUp
KTsKICAgICBnX2Fzc2VydChzdXJmYWNlMSk7CiAgICAgZ19hc3NlcnRfY21waW50KGNhaXJvX2lt
YWdlX3N1cmZhY2VfZ2V0X3dpZHRoKHN1cmZhY2UxKSwgPT0sIHdpZHRoKTsKICAgICBnX2Fzc2Vy
dF9jbXBpbnQoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KHN1cmZhY2UxKSwgPT0sIGhl
aWdodCk7CiAKICAgICAvLyBDcmVhdGUgaWRlbnRpY2FsIHN1cmZhY2UuCi0gICAgY2Fpcm9fc3Vy
ZmFjZV90KiBzdXJmYWNlMiA9IHRlc3QtPndhaXRGb3JTbmFwc2hvdChXRUJLSVRfU05BUFNIT1Rf
UkVHSU9OX1ZJU0lCTEUsIFdFQktJVF9TTkFQU0hPVF9PUFRJT05TX05PTkUpOworICAgIGNhaXJv
X3N1cmZhY2VfdCogc3VyZmFjZTIgPSB0ZXN0LT5nZXRTbmFwc2hvdEFuZFdhaXRVbnRpbFJlYWR5
KFdFQktJVF9TTkFQU0hPVF9SRUdJT05fVklTSUJMRSwgV0VCS0lUX1NOQVBTSE9UX09QVElPTlNf
Tk9ORSk7CiAgICAgZ19hc3NlcnQoc3VyZmFjZTIpOwogCiAgICAgLy8gQ29tcGFyZSB0aGVzZSB0
d28sIHRoZXkgc2hvdWxkIGJlIGlkZW50aWNhbC4KLSAgICBnX2Fzc2VydChjYWlyb1N1cmZhY2Vz
RXF1YWwoc3VyZmFjZTEsIHN1cmZhY2UyKSk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHN1
cmZhY2UyKTsKKyAgICBnX2Fzc2VydChUZXN0OjpjYWlyb1N1cmZhY2VzRXF1YWwoc3VyZmFjZTEs
IHN1cmZhY2UyKSk7CiAKICAgICAvLyBSZXF1ZXN0IGEgbmV3IHNuYXBzaG90LCBpbmNsdWRpbmcg
dGhlIHNlbGVjdGlvbiB0aGlzIHRpbWUuIFRoZQogICAgIC8vIHNpemUgc2hvdWxkIGJlIHRoZSBz
YW1lIGJ1dCB0aGUgcmVzdWx0IG11c3QgYmUgZGlmZmVyZW50IHRvIHRoZQogICAgIC8vIG9uZSBw
cmV2aW91c2x5IG9idGFpbmVkLgotICAgIHN1cmZhY2UyID0gdGVzdC0+d2FpdEZvclNuYXBzaG90
KFdFQktJVF9TTkFQU0hPVF9SRUdJT05fVklTSUJMRSwgV0VCS0lUX1NOQVBTSE9UX09QVElPTlNf
SU5DTFVERV9TRUxFQ1RJT05fSElHSExJR0hUSU5HKTsKKyAgICBzdXJmYWNlMiA9IHRlc3QtPmdl
dFNuYXBzaG90QW5kV2FpdFVudGlsUmVhZHkoV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxF
LCBXRUJLSVRfU05BUFNIT1RfT1BUSU9OU19JTkNMVURFX1NFTEVDVElPTl9ISUdITElHSFRJTkcp
OwogICAgIGdfYXNzZXJ0KHN1cmZhY2UyKTsKICAgICBnX2Fzc2VydF9jbXBpbnQoY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9nZXRfd2lkdGgoc3VyZmFjZTIpLCA9PSwgd2lkdGgpOwogICAgIGdfYXNzZXJ0
X2NtcGludChjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoc3VyZmFjZTIpLCA9PSwgaGVp
Z2h0KTsKLSAgICBnX2Fzc2VydCghY2Fpcm9TdXJmYWNlc0VxdWFsKHN1cmZhY2UxLCBzdXJmYWNl
MikpOwotICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShzdXJmYWNlMik7CisgICAgZ19hc3NlcnQo
IVRlc3Q6OmNhaXJvU3VyZmFjZXNFcXVhbChzdXJmYWNlMSwgc3VyZmFjZTIpKTsKIAogICAgIC8v
IFJlcXVlc3QgYSBzbmFwc2hvdCBvZiB0aGUgd2hvbGUgZG9jdW1lbnQgaW4gdGhlIFdlYlZpZXcu
IFRoZQogICAgIC8vIHJlc3VsdCBzaG91bGQgYmUgZGlmZmVyZW50IGZyb20gdGhlIHNpemUgb2J0
YWluZWQgcHJldmlvdXNseS4KLSAgICBzdXJmYWNlMiA9IHRlc3QtPndhaXRGb3JTbmFwc2hvdChX
RUJLSVRfU05BUFNIT1RfUkVHSU9OX0ZVTExfRE9DVU1FTlQsIFdFQktJVF9TTkFQU0hPVF9PUFRJ
T05TX05PTkUpOworICAgIHN1cmZhY2UyID0gdGVzdC0+Z2V0U25hcHNob3RBbmRXYWl0VW50aWxS
ZWFkeShXRUJLSVRfU05BUFNIT1RfUkVHSU9OX0ZVTExfRE9DVU1FTlQsIFdFQktJVF9TTkFQU0hP
VF9PUFRJT05TX05PTkUpOwogICAgIGdfYXNzZXJ0KHN1cmZhY2UyKTsKICAgICBnX2Fzc2VydF9j
bXBpbnQoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfd2lkdGgoc3VyZmFjZTIpLCAgPiwgd2lkdGgp
OwogICAgIGdfYXNzZXJ0X2NtcGludChjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9oZWlnaHQoc3Vy
ZmFjZTIpLCA+LCBoZWlnaHQpOwotICAgIGdfYXNzZXJ0KCFjYWlyb1N1cmZhY2VzRXF1YWwoc3Vy
ZmFjZTEsIHN1cmZhY2UyKSk7CisgICAgZ19hc3NlcnQoIVRlc3Q6OmNhaXJvU3VyZmFjZXNFcXVh
bChzdXJmYWNlMSwgc3VyZmFjZTIpKTsKIAogICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShzdXJm
YWNlMSk7Ci0gICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHN1cmZhY2UyKTsKIAogICAgIGdfYXNz
ZXJ0KHRlc3QtPmdldFNuYXBzaG90QW5kQ2FuY2VsKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rlc3QuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rlc3QuY3BwCmluZGV4IDA2
MjE5OGE5ZTNhMDU3NTU0MWNmMWVmYTZjZTFkODE0ZmE5YTE0M2EuLmU2Yzg0MzQ1NmYzNWMwZjFh
OWIzMDFmODc2MTIxNWU4NDQ5MmVmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVzdC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAg
V2ViVmlld1Rlc3Q6OldlYlZpZXdUZXN0KCkKICAgICAsIG1fcGFyZW50V2luZG93KDApCiAgICAg
LCBtX2phdmFzY3JpcHRSZXN1bHQoMCkKICAgICAsIG1fcmVzb3VyY2VEYXRhU2l6ZSgwKQorICAg
ICwgbV9zdXJmYWNlKDApCiB7CiAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5p
c2hlcyhHX09CSkVDVChtX3dlYlZpZXcpKTsKIH0KQEAgLTQwLDYgKzQxLDggQEAgV2ViVmlld1Rl
c3Q6On5XZWJWaWV3VGVzdCgpCiAgICAgICAgIGd0a193aWRnZXRfZGVzdHJveShtX3BhcmVudFdp
bmRvdyk7CiAgICAgaWYgKG1famF2YXNjcmlwdFJlc3VsdCkKICAgICAgICAgd2Via2l0X2phdmFz
Y3JpcHRfcmVzdWx0X3VucmVmKG1famF2YXNjcmlwdFJlc3VsdCk7CisgICAgaWYgKG1fc3VyZmFj
ZSkKKyAgICAgICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KG1fc3VyZmFjZSk7CiAgICAgZ19vYmpl
Y3RfdW5yZWYobV93ZWJWaWV3KTsKICAgICBnX21haW5fbG9vcF91bnJlZihtX21haW5Mb29wKTsK
IH0KQEAgLTQyMCwzICs0MjMsMjIgQEAgYm9vbCBXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3Vs
dElzVW5kZWZpbmVkKFdlYktpdEphdmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHQKICAgICByZXR1
cm4gSlNWYWx1ZUlzVW5kZWZpbmVkKGNvbnRleHQsIHZhbHVlKTsKIH0KIAorc3RhdGljIHZvaWQg
b25TbmFwc2hvdFJlYWR5KFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBHQXN5bmNSZXN1bHQqIHJl
cywgV2ViVmlld1Rlc3QqIHRlc3QpCit7CisgICAgR093blB0cjxHRXJyb3I+IGVycm9yOworICAg
IHRlc3QtPm1fc3VyZmFjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3RfZmluaXNoKHdl
Yl92aWV3LCByZXMsICZlcnJvci5vdXRQdHIoKSk7CisgICAgZ19hc3NlcnQoIXRlc3QtPm1fc3Vy
ZmFjZSB8fCAhZXJyb3IuZ2V0KCkpOworICAgIGlmIChlcnJvcikKKyAgICAgICAgZ19hc3NlcnRf
ZXJyb3IoZXJyb3IuZ2V0KCksIFdFQktJVF9TTkFQU0hPVF9FUlJPUiwgV0VCS0lUX1NOQVBTSE9U
X0VSUk9SX0ZBSUxFRF9UT19DUkVBVEUpOworICAgIHRlc3QtPnF1aXRNYWluTG9vcCgpOworfQor
CitjYWlyb19zdXJmYWNlX3QqIFdlYlZpZXdUZXN0OjpnZXRTbmFwc2hvdEFuZFdhaXRVbnRpbFJl
YWR5KFdlYktpdFNuYXBzaG90UmVnaW9uIHJlZ2lvbiwgV2ViS2l0U25hcHNob3RPcHRpb25zIG9w
dGlvbnMpCit7CisgICAgaWYgKG1fc3VyZmFjZSkKKyAgICAgICAgY2Fpcm9fc3VyZmFjZV9kZXN0
cm95KG1fc3VyZmFjZSk7CisgICAgbV9zdXJmYWNlID0gMDsKKyAgICB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3NuYXBzaG90KG1fd2ViVmlldywgcmVnaW9uLCBvcHRpb25zLCAwLCByZWludGVycHJldF9j
YXN0PEdBc3luY1JlYWR5Q2FsbGJhY2s+KG9uU25hcHNob3RSZWFkeSksIHRoaXMpOworICAgIGdf
bWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKKyAgICByZXR1cm4gbV9zdXJmYWNlOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rl
c3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1dlYlZpZXdUZXN0
LmgKaW5kZXggYjEzMjAzZTBhYjRlYzg1YjFiMmFjZDY0ZTM5YTU0YjYyODkxZmRmOS4uYTQ2MGUy
MmI0ZTc0N2VkYzBlMzkyNDE5ZGUwYmMwZWMzZDExODM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvV2ViVmlld1Rlc3QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9XZWJWaWV3VGVzdC5oCkBAIC02Niw2ICs2
Niw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBqYXZhc2NyaXB0UmVzdWx0SXNOdWxsKFdl
YktpdEphdmFzY3JpcHRSZXN1bHQqKTsKICAgICBzdGF0aWMgYm9vbCBqYXZhc2NyaXB0UmVzdWx0
SXNVbmRlZmluZWQoV2ViS2l0SmF2YXNjcmlwdFJlc3VsdCopOwogCisgICAgY2Fpcm9fc3VyZmFj
ZV90KiBnZXRTbmFwc2hvdEFuZFdhaXRVbnRpbFJlYWR5KFdlYktpdFNuYXBzaG90UmVnaW9uLCBX
ZWJLaXRTbmFwc2hvdE9wdGlvbnMpOworCiAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3Owog
ICAgIEdNYWluTG9vcCogbV9tYWluTG9vcDsKICAgICBDU3RyaW5nIG1fYWN0aXZlVVJJOwpAQCAt
NzUsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgR0Vycm9yKiogbV9qYXZhc2NyaXB0RXJyb3I7CiAg
ICAgR093blB0cjxjaGFyPiBtX3Jlc291cmNlRGF0YTsKICAgICBzaXplX3QgbV9yZXNvdXJjZURh
dGFTaXplOworICAgIGNhaXJvX3N1cmZhY2VfdCogbV9zdXJmYWNlOwogCiBwcml2YXRlOgogICAg
IHZvaWQgZG9Nb3VzZUJ1dHRvbkV2ZW50KEdka0V2ZW50VHlwZSwgaW50LCBpbnQsIHVuc2lnbmVk
IGludCwgdW5zaWduZWQgaW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA5NmJmYTZjZjlhMGM0OWVmMDFmMzE1MmNiMDhjNzY1ZWUwMTMxY2Zm
Li45YjdhMTIxNjI5MTNmZTc3NzE3NzAwNjM2MGU2NDNkNWMyYmY0MmE1IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTMtMDQtMTkgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0dUS10gRml4IHVuaXQgdGVzdCB3ZWJraXQyL1dlYktpdEZpbmRDb250cm9sbGVyL2hp
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5ODEw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3J1bi1ndGstdGVzdHM6CisgICAgICAgIChUZXN0UnVubmVyKTogVW5za2lwIHRlc3Qgd2Vi
a2l0Mi9XZWJLaXRGaW5kQ29udHJvbGxlci9oaWRlLgorCiAyMDEzLTA0LTE5ICBaYW4gRG9iZXJz
ZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRGFzaGJvYXJkXSBSZW1vdmUg
dGhlIGlzVG9UV2ViS2l0IG1lbWJlciB2YXJpYWJsZSBmcm9tIHRoZSBCdWlsZGVyR3JvdXAgaW50
ZXJmYWNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMgYi9Ub29scy9T
Y3JpcHRzL3J1bi1ndGstdGVzdHMKaW5kZXggM2Q0Nzk5OTA4MGRjZWViNDJhNmRiYTJiMmMzNTkz
NjdlMDE1MmM3Zi4uN2VkNWQ0ZDdiMjlkMzQ0ZGU4OGQ4ODhkMmYxODZmNmY4NDYzZjc2ZCAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMv
cnVuLWd0ay10ZXN0cwpAQCAtNzAsNyArNzAsNiBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAg
ICBTa2lwcGVkVGVzdCgiV2ViS2l0MkFQSVRlc3RzL1Rlc3RJbnNwZWN0b3JTZXJ2ZXIiLCBTa2lw
cGVkVGVzdC5FTlRJUkVfU1VJVEUsICJUZXN0IHRpbWVzIG91dCIsIDEwNTg2NiksCiAgICAgICAg
IFNraXBwZWRUZXN0KCJXZWJLaXQyQVBJVGVzdHMvVGVzdFJlc291cmNlcyIsICIvd2Via2l0Mi9X
ZWJLaXRXZWJWaWV3L3Jlc291cmNlcyIsICJUZXN0IGlzIGZsYWt5IGluIEdUSyBMaW51eCAzMi1i
aXQgUmVsZWFzZSBib3QiLCA4Mjg2OCksCiAgICAgICAgIFNraXBwZWRUZXN0KCJXZWJLaXQyQVBJ
VGVzdHMvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkiLCAiL3dlYmtpdDIvV2ViS2l0QWNjZXNzaWJp
bGl0eS9hdHNwaS1iYXNpYy1oaWVyYXJjaHkiLCAiVGVzdCBmYWlscyIsIDEwMDQwOCksCi0gICAg
ICAgIFNraXBwZWRUZXN0KCJXZWJLaXQyQVBJVGVzdHMvVGVzdFdlYktpdEZpbmRDb250cm9sbGVy
IiwgIi93ZWJraXQyL1dlYktpdEZpbmRDb250cm9sbGVyL2hpZGUiLCAiVGVzdCBhbHdheXMgZmFp
bHMgaW4gWHZmYiIsIDg5ODEwKSwKICAgICAgICAgU2tpcHBlZFRlc3QoIlRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdDIiLCAiV2ViS2l0Mi5DYW5IYW5kbGVSZXF1ZXN0IiwgIlRlc3QgZmFpbHMiLCA4
ODQ1MyksCiAgICAgICAgIFNraXBwZWRUZXN0KCJUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXQyIiwg
IldlYktpdDIuTW91c2VNb3ZlQWZ0ZXJDcmFzaCIsICJUZXN0IGlzIGZsYWt5IiwgODUwNjYpLAog
ICAgICAgICBTa2lwcGVkVGVzdCgiVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0MiIsICJXZWJLaXQy
Lk5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlcyIsICJUZXN0IGlzIGZsYWt5
IiwgODUwNjYpLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>