<?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>114218</bug_id>
          
          <creation_ts>2013-04-08 14:46:29 -0700</creation_ts>
          <short_desc>Pixel tests in SVG are all broken in WK2</short_desc>
          <delta_ts>2013-04-24 19:08:21 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>871188</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-08 14:46:29 -0700</bug_when>
    <thetext>Pixel tests in SVG with WebKitTestRunner all fail:

age is 800x600, reference image is 480x360
[208/774] svg/W3C-SVG-1.1/color-prop-01-b.svg failed unexpectedly (image diff)
  svg/W3C-SVG-1.1/styling-css-04-f.svg : ImageDiff produced stderr output:
Error: test and reference images have different sizes. Test image is 800x600, reference image is 480x360
[209/774] svg/W3C-SVG-1.1/styling-css-04-f.svg failed unexpectedly (image diff)
  svg/W3C-SVG-1.1/text-intro-01-t.svg : ImageDiff produced stderr output:
Error: test and reference images have different sizes. Test image is 800x600, reference image is 480x360
[210/774] svg/W3C-SVG-1.1/text-intro-01-t.svg failed unexpectedly (image diff)
  svg/W3C-SVG-1.1/animate-elem-04-t.svg : ImageDiff produced stderr output:
Error: test and reference images have different sizes. Test image is 800x600, reference image is 480x360
[211/774] svg/W3C-SVG-1.1/animate-elem-04-t.svg failed un
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871322</commentid>
    <comment_count>1</comment_count>
      <attachid>196977</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-08 18:00:16 -0700</bug_when>
    <thetext>Created attachment 196977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871343</commentid>
    <comment_count>2</comment_count>
      <attachid>196977</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-04-08 18:15:01 -0700</bug_when>
    <thetext>Comment on attachment 196977
Patch

Looks like this doesn’t build for GTK. Please fix that before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871349</commentid>
    <comment_count>3</comment_count>
      <attachid>196977</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-08 18:22:06 -0700</bug_when>
    <thetext>Comment on attachment 196977
Patch

Attachment 196977 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17680002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871371</commentid>
    <comment_count>4</comment_count>
      <attachid>196977</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-04-08 19:16:40 -0700</bug_when>
    <thetext>Comment on attachment 196977
Patch

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

&gt; Tools/WebKitTestRunner/TestInvocation.cpp:314
&gt; -    if (m_dumpPixels &amp;&amp; m_pixelResult)
&gt; +    if (m_dumpPixels /* &amp;&amp; m_pixelResult */)

Is this meant to be so?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>871387</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-08 19:46:52 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 196977 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=196977&amp;action=review
&gt; 
&gt; &gt; Tools/WebKitTestRunner/TestInvocation.cpp:314
&gt; &gt; -    if (m_dumpPixels &amp;&amp; m_pixelResult)
&gt; &gt; +    if (m_dumpPixels /* &amp;&amp; m_pixelResult */)
&gt; 
&gt; Is this meant to be so?

Indeed no, was testing. Won&apos;t commit that part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872095</commentid>
    <comment_count>6</comment_count>
      <attachid>197178</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-09 14:38:37 -0700</bug_when>
    <thetext>Created attachment 197178
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872097</commentid>
    <comment_count>7</comment_count>
      <attachid>197178</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-09 14:43:55 -0700</bug_when>
    <thetext>Comment on attachment 197178
Patch for EWS

Attachment 197178 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17648019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872102</commentid>
    <comment_count>8</comment_count>
      <attachid>197181</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-09 15:03:08 -0700</bug_when>
    <thetext>Created attachment 197181
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872566</commentid>
    <comment_count>9</comment_count>
      <attachid>197181</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-09 19:39:13 -0700</bug_when>
    <thetext>Comment on attachment 197181
Patch for EWS

Attachment 197181 did not pass win-ews (win):
Output: http://webkit-commit-queue.appspot.com/results/17723028</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880779</commentid>
    <comment_count>10</comment_count>
      <attachid>199512</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-24 14:07:00 -0700</bug_when>
    <thetext>Created attachment 199512
Patch for EWS again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880796</commentid>
    <comment_count>11</comment_count>
      <attachid>199512</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-24 14:32:08 -0700</bug_when>
    <thetext>Comment on attachment 199512
Patch for EWS again

Attachment 199512 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/186576</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880802</commentid>
    <comment_count>12</comment_count>
      <attachid>199517</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-24 14:37:51 -0700</bug_when>
    <thetext>Created attachment 199517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880979</commentid>
    <comment_count>13</comment_count>
      <attachid>199517</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-24 18:28:04 -0700</bug_when>
    <thetext>Comment on attachment 199517
Patch

Moving darin&apos;s r+ forward</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881045</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-24 19:07:21 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 199517:

platform/mac/editing/deleting/deletionUI-single-instance.html bug 114181 (author: rniwa@webkit.org)
transitions/color-transition-rounding.html bug 114182 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-svg-length.html bug 114183 (author: peter@chromium.org)
transitions/interrupt-zero-duration.html bug 114184 (authors: cmarrin@apple.com, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/multiple-background-transitions.html bug 114185 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-color.html bug 114186 (author: peter@chromium.org)
transitions/multiple-shadow-transitions.html bug 114187 (author: simon.fraser@apple.com)
transitions/mismatched-shadow-transitions.html bug 114188 (author: simon.fraser@apple.com)
transitions/color-transition-all.html bug 114189 (authors: ossy@webkit.org and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-shadow.html bug 114191 (author: peter@chromium.org)
transitions/min-max-width-height-transitions.html bug 114192 (author: simon.fraser@apple.com)
transitions/cancel-transition.html bug 114193 (authors: ojan@chromium.org, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/border-radius-transition.html bug 114194 (author: simon.fraser@apple.com)
transitions/flex-transitions.html bug 114195 (author: tony@chromium.org)
transitions/mixed-type.html bug 114196 (author: mikelawther@chromium.org)
transitions/multiple-mask-transitions.html bug 114197 (author: simon.fraser@apple.com)
transitions/color-transition-premultiplied.html bug 114198 (author: simon.fraser@apple.com)
transitions/mismatched-shadow-styles.html bug 114199 (author: simon.fraser@apple.com)
transitions/mask-transitions.html bug 114200 (authors: ojan@chromium.org, oliver@apple.com, and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-length.html bug 114201 (author: peter@chromium.org)
transitions/multiple-background-size-transitions.html bug 114202 (authors: mitz@webkit.org and simon.fraser@apple.com)
transitions/clip-transition.html bug 114203 (authors: dglazkov@chromium.org and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-transform.html bug 114204 (author: peter@chromium.org)
transitions/interrupted-accelerated-transition.html bug 56242 (authors: rniwa@webkit.org, simon.fraser@apple.com, and tonyg@chromium.org)
transitions/background-transitions.html bug 114206 (author: simon.fraser@apple.com)
http/tests/security/cookies/third-party-cookie-blocking-user-action.html bug 114511 (authors: ap@webkit.org, jochen@chromium.org, and rniwa@webkit.org)
http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html bug 114208 (authors: abarth@webkit.org and rniwa@webkit.org)
fast/loader/javascript-url-in-object.html bug 114210 (authors: rniwa@webkit.org and sam@webkit.org)
svg/animations/smil-leak-elements.svg bug 114280 (authors: fmalita@chromium.org and timothy_horton@apple.com)
svg/animations/smil-leak-dynamically-added-element-instances.svg bug 114281 (authors: fmalita@chromium.org and timothy_horton@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881046</commentid>
    <comment_count>15</comment_count>
      <attachid>199517</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-24 19:08:16 -0700</bug_when>
    <thetext>Comment on attachment 199517
Patch

Clearing flags on attachment: 199517

Committed r149087: &lt;http://trac.webkit.org/changeset/149087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881047</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-24 19:08:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196977</attachid>
            <date>2013-04-08 18:00:16 -0700</date>
            <delta_ts>2013-04-09 14:38:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114218-20130408180001.patch</filename>
            <type>text/plain</type>
            <size>11987</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3OTQwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjcwYzk5ZTg4YzE0Y2RkNDUxMThkNzhiMzYyNzZhNjA0
ZTFlOWE3NC4uNWRjNWQ0MTVjYTU5NjI1ZjBlNGZlZWFhZmQ3M2M2NzMzNGIzMGJjYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQy
IEBACisyMDEzLTA0LTA4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFBpeGVsIHRlc3RzIGluIFNWRyBhcmUgYWxsIGJyb2tlbiBpbiBXSzIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDIxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV2luZG93
IHNuYXBzaG90cyBpbiBXZWJLaXRUZXN0UnVubmVyIG9uIE1hYyBhcmUgd2luZG93LXNpemVkCisg
ICAgICAgICg4MDB4NjAwKSwgd2hpY2ggaXMgd3JvbmcgZm9yIHRoZSBXM0MgU1ZHIHRlc3RzIHRo
YXQgcmVxdWlyZSBhCisgICAgICAgIDQ4MHgzNjAgc25hcHNob3QuCisgICAgICAgIAorICAgICAg
ICBGaXggYnkgcmVzaXppbmcgdGhlIHdpbmRvdywgYXMgd2VsbCBhcyB0aGUgd2ViIHZpZXcgaW4K
KyAgICAgICAgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbygpIHNvIHRoYXQgd2luZG93IHNuYXBz
aG90cyBhcmUgY29ycmVjdGx5CisgICAgICAgIHNpemVkLgorICAgICAgICAKKyAgICAgICAgQWxz
byBkbyBzb21lIGRyaXZlLWJ5IGNsZWFudXAgb2YgdGhlIHdpbmRvdyBzaXplIGNvbnN0YW50cyBp
biBib3RoCisgICAgICAgIERSVCBhbmQgV1RSIHRvIHJlbW92ZSBtYWdpYyBudW1iZXJzLCBhbmQg
bWFrZSB0aGUgY29kZSBtb3JlIHNpbWlsYXIuCisgICAgICAgIAorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U2hvdWxkUGFp
bnRCcm9rZW5JbWFnZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgor
ICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tOgorICAgICAgICAoY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdyk6
CisgICAgICAgIChzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVNYWMuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbToKKyAgICAgICAgKGNyZWF0ZVBhZ2VkQml0bWFw
Q29udGV4dCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFs
dWVzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgIChUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OnNpemVXZWJWaWV3Rm9yQ3VycmVudFRlc3QpOgor
ICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZHVtcFJlc3VsdHMpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAgKFdUUjo6
UGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAoV1RSOjpQbGF0Zm9y
bVdlYlZpZXc6OnJlc2l6ZVRvKToKKwogMjAxMy0wNC0wOCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNo
LmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gTWFyayBTaG91bGRHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbSBBUEkgdGVzdCBhcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuY3BwCmluZGV4IGQ2MDA0NTI5YzIxNmExMTg4NDI3OTlhNTY3MjkzYmUzOWY0Zjg2
NDQuLmNmYzFiNTA5YTIzYjM1NGU1MTU3ZGIyMGE0YzEzMjBmNDAwNjhiN2MgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC00NCw2ICs0NCwxMiBAQAogI2luY2x1ZGUgPHd0Zi9P
d25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorY29uc3QgdW5zaWduZWQg
VGVzdFJ1bm5lcjo6dmlld1dpZHRoID0gODAwOworY29uc3QgdW5zaWduZWQgVGVzdFJ1bm5lcjo6
dmlld0hlaWdodCA9IDYwMDsKKworY29uc3QgdW5zaWduZWQgVGVzdFJ1bm5lcjo6dzNjU1ZHVmll
d1dpZHRoID0gNDgwOworY29uc3QgdW5zaWduZWQgVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld0hlaWdo
dCA9IDM2MDsKKwogVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcihjb25zdCBzdGQ6OnN0cmluZyYgdGVz
dFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKQogICAgIDog
bV9kaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhKGZhbHNlKQogICAgICwg
bV9kdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzKGZhbHNlKQpAQCAtMjIzNiw2
ICsyMjQyLDMgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRQYWludEJyb2tlbkltYWdlKGJv
b2wgc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSkKIHsKICAgICBtX3Nob3VsZFBhaW50QnJva2VuSW1h
Z2UgPSBzaG91bGRQYWludEJyb2tlbkltYWdlOwogfQotCi1jb25zdCB1bnNpZ25lZCBUZXN0UnVu
bmVyOjptYXhWaWV3V2lkdGggPSA4MDA7Ci1jb25zdCB1bnNpZ25lZCBUZXN0UnVubmVyOjptYXhW
aWV3SGVpZ2h0ID0gNjAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IGYwYTliNmE1
YWZiMmMyN2ExNTEwNTBmZjQ1M2QxMjQ4MDBiN2U5YzEuLmY1MTMzOTIyYjQzYjQ0OTY5ZDM0ZTY3
ZDdlMGY4OTM3NmQ1YzYzYmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTQxLDYg
KzQxLDEzIEBACiBjbGFzcyBUZXN0UnVubmVyIDogcHVibGljIFJlZkNvdW50ZWQ8VGVzdFJ1bm5l
cj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRlc3RSdW5uZXI+IGNyZWF0ZShj
b25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVj
dGVkUGl4ZWxIYXNoKTsKKworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2aWV3V2lkdGg7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZpZXdIZWlnaHQ7CisKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgdzNjU1ZHVmlld1dpZHRoOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NT
VkdWaWV3SGVpZ2h0OworCiAgICAgflRlc3RSdW5uZXIoKTsKIAogICAgIHZvaWQgbWFrZVdpbmRv
d09iamVjdChKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIHdpbmRvd09iamVjdCwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKQEAgLTMzMCw5ICszMzcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRT
aG91bGRQYWludEJyb2tlbkltYWdlKGJvb2wpOwogICAgIGJvb2wgc2hvdWxkUGFpbnRCcm9rZW5J
bWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZTsgfQogCi0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFZpZXdXaWR0aDsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgbWF4Vmlld0hlaWdodDsKLQogICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvbihKU1N0cmlu
Z1JlZik7CiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHRpdGxlVGV4dERpcmVjdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fdGl0bGVUZXh0RGlyZWN0aW9uOyB9CiAgICAgdm9pZCBzZXRUaXRsZVRleHRE
aXJlY3Rpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRpcmVjdGlvbikgeyBtX3RpdGxlVGV4dERpcmVj
dGlvbiA9IGRpcmVjdGlvbjsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCmluZGV4IDllYWYxYWQzYzAwMmQyMDMwNjAwNDRjYmRiZTJkMmZkYTBlOTdhNmEuLmZi
OTMxODk4M2UxMTJlN2M1YzUzMjU3MDY4NjkxMzYwMTk4Y2Q0NzggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTUyMiw3ICs1MjIsNyBAQCBzdGF0aWMg
dm9pZCByZWdpc3Rlck1vY2tTY3JvbGxiYXJzKCkKIAogV2ViVmlldyAqY3JlYXRlV2ViVmlld0Fu
ZE9mZnNjcmVlbldpbmRvdygpCiB7Ci0gICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAsIDAs
IFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6bWF4Vmlld0hlaWdodCk7Cisg
ICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIFRlc3RSdW5uZXI6OnZpZXdXaWR0aCwg
VGVzdFJ1bm5lcjo6dmlld0hlaWdodCk7CiAgICAgV2ViVmlldyAqd2ViVmlldyA9IFtbV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOkAib3Jn
LndlYmtpdC5EdW1wUmVuZGVyVHJlZSJdOwogICAgICAgICAKICAgICBbd2ViVmlldyBzZXRVSURl
bGVnYXRlOnVpRGVsZWdhdGVdOwpAQCAtMTA5NCw5ICsxMDk0LDkgQEAgc3RhdGljIHZvaWQgc2l6
ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCgpCiAgICAgLy8gVzNDIFNWRyB0ZXN0cyBleHBlY3QgdG8g
YmUgNDgweDM2MAogICAgIGJvb2wgaXNTVkdXM0NUZXN0ID0gKGdUZXN0UnVubmVyLT50ZXN0UGF0
aE9yVVJMKCkuZmluZCgic3ZnL1czQy1TVkctMS4xIikgIT0gc3RyaW5nOjpucG9zKTsKICAgICBp
ZiAoaXNTVkdXM0NUZXN0KQotICAgICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRGcmFtZVNp
emU6TlNNYWtlU2l6ZSg0ODAsIDM2MCldOworICAgICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBz
ZXRGcmFtZVNpemU6TlNNYWtlU2l6ZShUZXN0UnVubmVyOjp3M2NTVkdWaWV3V2lkdGgsIFRlc3RS
dW5uZXI6OnczY1NWR1ZpZXdIZWlnaHQpXTsKICAgICBlbHNlCi0gICAgICAgIFtbbWFpbkZyYW1l
IHdlYlZpZXddIHNldEZyYW1lU2l6ZTpOU01ha2VTaXplKFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0
aCwgVGVzdFJ1bm5lcjo6bWF4Vmlld0hlaWdodCldOworICAgICAgICBbW21haW5GcmFtZSB3ZWJW
aWV3XSBzZXRGcmFtZVNpemU6TlNNYWtlU2l6ZShUZXN0UnVubmVyOjp2aWV3V2lkdGgsIFRlc3RS
dW5uZXI6OnZpZXdIZWlnaHQpXTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKm1ldGhvZE5hbWVT
dHJpbmdGb3JGYWlsZWRUZXN0KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZU1hYy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlTWFjLmgKaW5kZXggZTY4OThhOWI5NWNiY2RlNzk2MDk5MzUwYjliYjk4NDJmMmE1NjY3
My4uY2U1MGU1ZjIwZjQxYjVkNTBiMjQyYThjZmM5ZjY0OGJkZTQ3ZDhhZSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmgKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmgKQEAgLTU4LDkgKzU4LDYgQEAg
ZXh0ZXJuIE5hdmlnYXRpb25Db250cm9sbGVyKiBnTmF2aWdhdGlvbkNvbnRyb2xsZXI7CiBleHRl
cm4gUG9saWN5RGVsZWdhdGUqIHBvbGljeURlbGVnYXRlOwogZXh0ZXJuIFN0b3JhZ2VUcmFja2Vy
RGVsZWdhdGUqIHN0b3JhZ2VEZWxlZ2F0ZTsKIAotZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIG1heFZp
ZXdIZWlnaHQ7Ci1leHRlcm4gY29uc3QgdW5zaWduZWQgbWF4Vmlld1dpZHRoOwotCiB2b2lkIHNl
dFdhaXRUb0R1bXBXYXRjaGRvZyhDRlJ1bkxvb3BUaW1lclJlZik7CiBib29sIHNob3VsZFNldFdh
aXRUb0R1bXBXYXRjaGRvZygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9QaXhl
bER1bXBTdXBwb3J0TWFjLm1tCmluZGV4IDBjZjljNGExOWIzOGFhYTZhMmU1ZGJhNGZjOTc4ZWEw
ZTE5YTI4YWMuLmY0Y2M3YzE5ODQ5OWFlNjBmOWVmY2M4ODBkZjU3ODljZGJlNmVkYmUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCkBAIC0x
ODQsOCArMTg0LDggQEAgUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250
ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9vbCBpbmMKIAogUGFzc1JlZlB0cjxCaXRt
YXBDb250ZXh0PiBjcmVhdGVQYWdlZEJpdG1hcENvbnRleHQoKQogewotICAgIGludCBwYWdlV2lk
dGhJblBpeGVscyA9IFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aDsKLSAgICBpbnQgcGFnZUhlaWdo
dEluUGl4ZWxzID0gVGVzdFJ1bm5lcjo6bWF4Vmlld0hlaWdodDsKKyAgICBpbnQgcGFnZVdpZHRo
SW5QaXhlbHMgPSBUZXN0UnVubmVyOjp2aWV3V2lkdGg7CisgICAgaW50IHBhZ2VIZWlnaHRJblBp
eGVscyA9IFRlc3RSdW5uZXI6OnZpZXdIZWlnaHQ7CiAgICAgaW50IG51bWJlck9mUGFnZXMgPSBb
bWFpbkZyYW1lIG51bWJlck9mUGFnZXNXaXRoUGFnZVdpZHRoOnBhZ2VXaWR0aEluUGl4ZWxzIHBh
Z2VIZWlnaHQ6cGFnZUhlaWdodEluUGl4ZWxzXTsKICAgICBzaXplX3Qgcm93Qnl0ZXMgPSAwOwog
ICAgIHZvaWQqIGJ1ZmZlciA9IDA7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IGJlNzYyMGZkZjc2OWJkYWRmYWI0MTJmNTY2NmI2YTQwNjMxMGQ2NGMuLjIz
NWQ5OTU2NTVjMzY0YzhiZDFjYzQyODk4ZDA5MDI0NGI2NzhhN2MgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02Myw2ICs2MywxMiBAQAogCiBuYW1lc3Bh
Y2UgV1RSIHsKIAorY29uc3QgdW5zaWduZWQgVGVzdENvbnRyb2xsZXI6OnZpZXdXaWR0aCA9IDgw
MDsKK2NvbnN0IHVuc2lnbmVkIFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0ID0gNjAwOworCitj
b25zdCB1bnNpZ25lZCBUZXN0Q29udHJvbGxlcjo6dzNjU1ZHVmlld1dpZHRoID0gNDgwOworY29u
c3QgdW5zaWduZWQgVGVzdENvbnRyb2xsZXI6OnczY1NWR1ZpZXdIZWlnaHQgPSAzNjA7CisKIC8v
IGRlZmF1bHRMb25nVGltZW91dCArIGRlZmF1bHRTaG9ydFRpbWVvdXQgc2hvdWxkIGJlIGxlc3Mg
dGhhbiA4MCwKIC8vIHRoZSBkZWZhdWx0IHRpbWVvdXQgdmFsdWUgb2YgdGhlIHRlc3QgaGFybmVz
cyBzbyB3ZSBjYW4gZGV0ZWN0IGFuCiAvLyB1bnJlc3BvbnNpdmUgd2ViIHByb2Nlc3MuCkBAIC01
ODksNyArNTk1LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVu
dFZhbHVlcygpCiAgICAgLy8gRUZMIHVzZSBhIHJlYWwgd2luZG93IHdoaWxlIG90aGVyIHBvcnRz
IHN1Y2ggYXMgUXQgZG9uJ3QuCiAgICAgLy8gSW4gRUZMLCB3ZSBuZWVkIHRvIHJlc2l6ZSB0aGUg
d2luZG93IHRvIHRoZSBvcmlnaW5hbCBzaXplIGFmdGVyIGNhbGxzIHRvIHdpbmRvdy5yZXNpemVU
by4KICAgICBXS1JlY3QgcmVjdCA9IG1fbWFpbldlYlZpZXctPndpbmRvd0ZyYW1lKCk7Ci0gICAg
bV9tYWluV2ViVmlldy0+c2V0V2luZG93RnJhbWUoV0tSZWN0TWFrZShyZWN0Lm9yaWdpbi54LCBy
ZWN0Lm9yaWdpbi55LCA4MDAsIDYwMCkpOworICAgIG1fbWFpbldlYlZpZXctPnNldFdpbmRvd0Zy
YW1lKFdLUmVjdE1ha2UocmVjdC5vcmlnaW4ueCwgcmVjdC5vcmlnaW4ueSwgVGVzdENvbnRyb2xs
ZXI6OnZpZXdXaWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaHQpKTsKICNlbmRpZgogCiAg
ICAgLy8gUmVzZXQgbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMGY2NWM5ZjFhZjU4MThjZGQ2MGRhNzMxMTljNmM2Nzcx
MGIwODMwZS4uZGVlMjY4MzQ2ZGY5YzI4ZDczY2ViZTM5YTgwMzQyMDVkY2EzZDRiNyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNDYsNiArNDYsMTIgQEAgY2xh
c3MgVGVzdENvbnRyb2xsZXIgewogcHVibGljOgogICAgIHN0YXRpYyBUZXN0Q29udHJvbGxlciYg
c2hhcmVkKCk7CiAKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmlld1dpZHRoOworICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCB2aWV3SGVpZ2h0OworCisgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHczY1NWR1ZpZXdXaWR0aDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdzNjU1ZHVmll
d0hlaWdodDsKKwogICAgIFRlc3RDb250cm9sbGVyKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2
W10pOwogICAgIH5UZXN0Q29udHJvbGxlcigpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCmluZGV4IDc4OWVhYTNkZTQ3ZDlhZjNiNjA0NzVkMzg2YjAwODJmNGVk
M2FiZDUuLjlkNGEyZDJjNGMwMWY0NmIzMzdjZWNjNzdiODY1YTg0NzJjOWMzMmEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMjcsMjAgKzEyNywxNiBA
QCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpzZXRDdXN0b21UaW1lb3V0KGludCB0aW1lb3V0KQogICAg
IG1fdGltZW91dCA9IHRpbWVvdXQ7CiB9CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdX
aWR0aCA9IDQ4MDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdIZWlnaHQgPSAzNjA7Ci1z
dGF0aWMgY29uc3QgdW5zaWduZWQgbm9ybWFsV2lkdGggPSA4MDA7Ci1zdGF0aWMgY29uc3QgdW5z
aWduZWQgbm9ybWFsSGVpZ2h0ID0gNjAwOwotCiBzdGF0aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1
cnJlbnRUZXN0KGNvbnN0IGNoYXIqIHBhdGhPclVSTCkKIHsKICAgICBib29sIGlzU1ZHVzNDVGVz
dCA9IHN0cnN0cihwYXRoT3JVUkwsICJzdmcvVzNDLVNWRy0xLjEiKSB8fCBzdHJzdHIocGF0aE9y
VVJMLCAic3ZnXFxXM0MtU1ZHLTEuMSIpOwogCiAgICAgaWYgKGlzU1ZHVzNDVGVzdCkKLSAgICAg
ICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnJlc2l6ZVRvKHczY1NW
R1dpZHRoLCB3M2NTVkdIZWlnaHQpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCku
bWFpbldlYlZpZXcoKS0+cmVzaXplVG8oVGVzdENvbnRyb2xsZXI6OnczY1NWR1ZpZXdXaWR0aCwg
VGVzdENvbnRyb2xsZXI6OnczY1NWR1ZpZXdIZWlnaHQpOwogICAgIGVsc2UKLSAgICAgICAgVGVz
dENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnJlc2l6ZVRvKG5vcm1hbFdpZHRo
LCBub3JtYWxIZWlnaHQpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubWFpbldl
YlZpZXcoKS0+cmVzaXplVG8oVGVzdENvbnRyb2xsZXI6OnZpZXdXaWR0aCwgVGVzdENvbnRyb2xs
ZXI6OnZpZXdIZWlnaHQpOwogfQorCiBzdGF0aWMgYm9vbCBzaG91bGRMb2dGcmFtZUxvYWREZWxl
Z2F0ZXMoY29uc3QgY2hhciogcGF0aE9yVVJMKQogewogICAgIHJldHVybiBzdHJzdHIocGF0aE9y
VVJMLCAibG9hZGluZy8iKTsKQEAgLTMxNSw3ICszMTEsNyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9u
OjpkdW1wUmVzdWx0cygpCiAgICAgZWxzZQogICAgICAgICBkdW1wQXVkaW8obV9hdWRpb1Jlc3Vs
dC5nZXQoKSk7CiAKLSAgICBpZiAobV9kdW1wUGl4ZWxzICYmIG1fcGl4ZWxSZXN1bHQpCisgICAg
aWYgKG1fZHVtcFBpeGVscyAvKiAmJiBtX3BpeGVsUmVzdWx0ICovKQogICAgICAgICBkdW1wUGl4
ZWxzQW5kQ29tcGFyZVdpdGhFeHBlY3RlZChtX3BpeGVsUmVzdWx0LmdldCgpLCBtX3JlcGFpbnRS
ZWN0cy5nZXQoKSk7CiAKICAgICBmcHV0cygiI0VPRlxuIiwgc3Rkb3V0KTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQppbmRleCBiNTVkMzJj
MGE1ODZiMjA5ZWY1OTBiMWMzMWU2YjA5YjA0MzBkMDI5Li41NWRlYTNhY2M5OTY3YWEzMTI0Nzk0
NWIwY2Q1OTE5OTA0YzU2ZjdkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
UGxhdGZvcm1XZWJWaWV3TWFjLm1tCkBAIC0xMjQsNyArMTI0LDcgQEAgUGxhdGZvcm1XZWJWaWV3
OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVm
IHBhZ2VHcm8KICAgICBXS1R5cGVSZWYgdXNlVGlsZWREcmF3aW5nVmFsdWUgPSBvcHRpb25zID8g
V0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShvcHRpb25zLCB1c2VUaWxlZERyYXdpbmdLZXkuZ2V0
KCkpIDogTlVMTDsKICAgICBib29sIHVzZVRpbGVkRHJhd2luZyA9IHVzZVRpbGVkRHJhd2luZ1Zh
bHVlICYmIFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4odXNlVGls
ZWREcmF3aW5nVmFsdWUpKTsKIAotICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCk7CisgICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIFRlc3RDb250cm9s
bGVyOjp2aWV3V2lkdGgsIFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0KTsKICAgICBtX3ZpZXcg
PSBbW1Rlc3RSdW5uZXJXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBjb250ZXh0UmVm
OmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJlZiB1c2VUaWxlZERyYXdpbmc6dXNl
VGlsZWREcmF3aW5nXTsKICAgICBbbV92aWV3IHNldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVu
YWJsZWQ6Tk9dOwogCkBAIC0xNDEsNiArMTQxLDEwIEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZv
cm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3Jv
CiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCB3aWR0aCwgdW5zaWdu
ZWQgaGVpZ2h0KQogeworICAgIE5TUmVjdCB3aW5kb3dGcmFtZSA9IFttX3dpbmRvdyBmcmFtZV07
CisgICAgd2luZG93RnJhbWUuc2l6ZS53aWR0aCA9IHdpZHRoOworICAgIHdpbmRvd0ZyYW1lLnNp
emUuaGVpZ2h0ID0gaGVpZ2h0OworICAgIFttX3dpbmRvdyBzZXRGcmFtZTp3aW5kb3dGcmFtZSBk
aXNwbGF5OllFU107CiAgICAgW21fdmlldyBzZXRGcmFtZTpOU01ha2VSZWN0KDAsIDAsIHdpZHRo
LCBoZWlnaHQpXTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197178</attachid>
            <date>2013-04-09 14:38:37 -0700</date>
            <delta_ts>2013-04-09 15:03:05 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-114218-20130409143820.patch</filename>
            <type>text/plain</type>
            <size>18647</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4MDQ5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTE5YzdlODE4N2UyMDFhZGY2ZDc0NDQxNzFmM2NkYmNh
MjE4Zjk3MS4uZDI3Y2VkMzdmYTAxMWE1ZGUwOGY5M2MyZWNhNjUwZTAxNTE1NzY0MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUw
IEBACisyMDEzLTA0LTA4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFBpeGVsIHRlc3RzIGluIFNWRyBhcmUgYWxsIGJyb2tlbiBpbiBXSzIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDIxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorICAgICAgICAKKyAgICAgICAgV2luZG93IHNu
YXBzaG90cyBpbiBXZWJLaXRUZXN0UnVubmVyIG9uIE1hYyBhcmUgd2luZG93LXNpemVkCisgICAg
ICAgICg4MDB4NjAwKSwgd2hpY2ggaXMgd3JvbmcgZm9yIHRoZSBXM0MgU1ZHIHRlc3RzIHRoYXQg
cmVxdWlyZSBhCisgICAgICAgIDQ4MHgzNjAgc25hcHNob3QuCisgICAgICAgIAorICAgICAgICBG
aXggYnkgcmVzaXppbmcgdGhlIHdpbmRvdywgYXMgd2VsbCBhcyB0aGUgd2ViIHZpZXcgaW4KKyAg
ICAgICAgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbygpIHNvIHRoYXQgd2luZG93IHNuYXBzaG90
cyBhcmUgY29ycmVjdGx5CisgICAgICAgIHNpemVkLgorICAgICAgICAKKyAgICAgICAgQWxzbyBk
byBzb21lIGRyaXZlLWJ5IGNsZWFudXAgb2YgdGhlIHdpbmRvdyBzaXplIGNvbnN0YW50cyBpbiBi
b3RoCisgICAgICAgIERSVCBhbmQgV1RSIHRvIHJlbW92ZSBtYWdpYyBudW1iZXJzLCBhbmQgbWFr
ZSB0aGUgY29kZSBtb3JlIHNpbWlsYXIuCisgICAgICAgIAorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U2hvdWxkUGFpbnRC
cm9rZW5JbWFnZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHdlYkluc3Bl
Y3RvclNob3dXaW5kb3cpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbToKKyAgICAgICAgKGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3cpOgorICAg
ICAgICAoc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L1BpeGVsRHVtcFN1cHBvcnRNYWMubW06CisgICAgICAgIChjcmVhdGVQYWdlZEJpdG1hcENvbnRl
eHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlOjpvcGVuKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVy
UXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChz
aXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9E
dW1wUmVuZGVyVHJlZVd4LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAg
ICAgICAgKFdUUjo6c2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tOgorICAgICAgICAoV1RSOjpQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2Vi
Vmlldzo6cmVzaXplVG8pOgorCiAyMDEzLTA0LTA2ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgS2lsbCBvbGQgcHJvY2Vzc2VzIGJldHdlZW4gcnVucyBvbiBX
aW5FV1MgYm90cy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZDYwMDQ1Mjlj
MjE2YTExODg0Mjc5OWE1NjcyOTNiZTM5ZjRmODY0NC4uY2ZjMWI1MDlhMjNiMzU0ZTUxNTdkYjIw
YTRjMTMyMGY0MDA2OGI3YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTQ0
LDYgKzQ0LDEyIEBACiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCitjb25zdCB1bnNpZ25lZCBUZXN0UnVubmVyOjp2aWV3V2lkdGggPSA4MDA7
Citjb25zdCB1bnNpZ25lZCBUZXN0UnVubmVyOjp2aWV3SGVpZ2h0ID0gNjAwOworCitjb25zdCB1
bnNpZ25lZCBUZXN0UnVubmVyOjp3M2NTVkdWaWV3V2lkdGggPSA0ODA7Citjb25zdCB1bnNpZ25l
ZCBUZXN0UnVubmVyOjp3M2NTVkdWaWV3SGVpZ2h0ID0gMzYwOworCiBUZXN0UnVubmVyOjpUZXN0
UnVubmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmlu
ZyYgZXhwZWN0ZWRQaXhlbEhhc2gpCiAgICAgOiBtX2Rpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNh
dGlvbkNhY2hlUXVvdGEoZmFsc2UpCiAgICAgLCBtX2R1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdh
dGVDYWxsYmFja3MoZmFsc2UpCkBAIC0yMjM2LDYgKzIyNDIsMyBAQCB2b2lkIFRlc3RSdW5uZXI6
OnNldFNob3VsZFBhaW50QnJva2VuSW1hZ2UoYm9vbCBzaG91bGRQYWludEJyb2tlbkltYWdlKQog
ewogICAgIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSA9IHNob3VsZFBhaW50QnJva2VuSW1hZ2U7
CiB9Ci0KLWNvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aCA9IDgwMDsKLWNv
bnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6Om1heFZpZXdIZWlnaHQgPSA2MDA7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmgKaW5kZXggZjBhOWI2YTVhZmIyYzI3YTE1MTA1MGZmNDUzZDEyNDgwMGI3
ZTljMS4uZjUxMzM5MjJiNDNiNDQ5NjlkMzRlNjdkN2UwZjg5Mzc2ZDVjNjNiZiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtNDEsNiArNDEsMTMgQEAKIGNsYXNzIFRlc3RSdW5uZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxUZXN0UnVubmVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8VGVzdFJ1bm5lcj4gY3JlYXRlKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9y
VVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOworCisgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIHZpZXdXaWR0aDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmll
d0hlaWdodDsKKworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdWaWV3V2lkdGg7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NWR1ZpZXdIZWlnaHQ7CisKICAgICB+VGVzdFJ1
bm5lcigpOwogCiAgICAgdm9pZCBtYWtlV2luZG93T2JqZWN0KEpTQ29udGV4dFJlZiwgSlNPYmpl
Y3RSZWYgd2luZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwpAQCAtMzMwLDkgKzMz
Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZFBhaW50QnJva2VuSW1hZ2UoYm9vbCk7
CiAgICAgYm9vbCBzaG91bGRQYWludEJyb2tlbkltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRQYWludEJyb2tlbkltYWdlOyB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4Vmll
d1dpZHRoOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhWaWV3SGVpZ2h0OwotCiAgICAg
dm9pZCBzZXRUZXh0RGlyZWN0aW9uKEpTU3RyaW5nUmVmKTsKICAgICBjb25zdCBzdGQ6OnN0cmlu
ZyYgdGl0bGVUZXh0RGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZVRleHREaXJlY3Rp
b247IH0KICAgICB2b2lkIHNldFRpdGxlVGV4dERpcmVjdGlvbihjb25zdCBzdGQ6OnN0cmluZyYg
ZGlyZWN0aW9uKSB7IG1fdGl0bGVUZXh0RGlyZWN0aW9uID0gZGlyZWN0aW9uOyB9CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA2ZGUyZDRhNDQ1YmYw
YjlmYWU0ZjQwNzIyZWZkZjJlM2RmNDg1OTRkLi4xNmMwMWNhNjM3NDNiODBiOGY0N2IwYTFkMWI5
M2U0NjZjMmIxN2NlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJl
ZS5jcHAKQEAgLTI4MCw4ICsyODAsOCBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IGNoYXIq
IGlucHV0TGluZSkKICAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5zZXRGcm96ZW4oZmFsc2UpOwog
CiAgICAgY29uc3QgYm9vbCBpc1NWR1czQ1Rlc3QgPSB0ZXN0VVJMLmNvbnRhaW5zKCJzdmcvVzND
LVNWRy0xLjEiKTsKLSAgICBjb25zdCBpbnQgd2lkdGggPSBpc1NWR1czQ1Rlc3QgPyA0ODAgOiBU
ZXN0UnVubmVyOjptYXhWaWV3V2lkdGg7Ci0gICAgY29uc3QgaW50IGhlaWdodCA9IGlzU1ZHVzND
VGVzdCA/IDM2MCA6IFRlc3RSdW5uZXI6Om1heFZpZXdIZWlnaHQ7CisgICAgY29uc3QgaW50IHdp
ZHRoID0gaXNTVkdXM0NUZXN0ID8gVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld1dpZHRoIDogVGVzdFJ1
bm5lcjo6dmlld1dpZHRoOworICAgIGNvbnN0IGludCBoZWlnaHQgPSBpc1NWR1czQ1Rlc3QgPyBU
ZXN0UnVubmVyOjp3M2NTVkdWaWV3SGVpZ2h0IDogVGVzdFJ1bm5lcjo6dmlld0hlaWdodDsKICAg
ICBldmFzX29iamVjdF9yZXNpemUoYnJvd3Nlci0+bWFpblZpZXcoKSwgd2lkdGgsIGhlaWdodCk7
CiAKICAgICBpZiAocHJldlRlc3RCRkl0ZW0pCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlLmNwcAppbmRleCBjZWU0NjFjNTgxZDNmMTkzMmU0MWQ0NzQ2NTQ0ZWRiZjY0
NjBkYmNhLi4zZDU1OWEwNDRiNjAwNDU0ODFhM2E2NzYxZWZjZTFmZjdkOWRkYTI0IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTc0Nyw4ICs3NDcs
OCBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIGJv
b2wgaXNTVkdXM0NUZXN0ID0gKHRlc3RVUkwuZmluZCgic3ZnL1czQy1TVkctMS4xIikgIT0gc3Ry
aW5nOjpucG9zKTsKICAgICBHdGtBbGxvY2F0aW9uIHNpemU7CiAgICAgc2l6ZS54ID0gc2l6ZS55
ID0gMDsKLSAgICBzaXplLndpZHRoID0gaXNTVkdXM0NUZXN0ID8gNDgwIDogVGVzdFJ1bm5lcjo6
bWF4Vmlld1dpZHRoOwotICAgIHNpemUuaGVpZ2h0ID0gaXNTVkdXM0NUZXN0ID8gMzYwIDogVGVz
dFJ1bm5lcjo6bWF4Vmlld0hlaWdodDsKKyAgICBzaXplLndpZHRoID0gaXNTVkdXM0NUZXN0ID8g
VGVzdFJ1bm5lcjo6dzNjU1ZHVmlld1dpZHRoIDogVGVzdFJ1bm5lcjo6dmlld1dpZHRoOworICAg
IHNpemUuaGVpZ2h0ID0gaXNTVkdXM0NUZXN0ID8gVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld0hlaWdo
dCA6IFRlc3RSdW5uZXI6OnZpZXdIZWlnaHQ7CiAgICAgZ3RrX3dpbmRvd19yZXNpemUoR1RLX1dJ
TkRPVyh3aW5kb3cpLCBzaXplLndpZHRoLCBzaXplLmhlaWdodCk7CiAgICAgZ3RrX3dpZGdldF9z
aXplX2FsbG9jYXRlKGNvbnRhaW5lciwgJnNpemUpOwogCkBAIC0xMDY3LDcgKzEwNjcsNyBAQCBz
dGF0aWMgV2ViS2l0V2ViVmlldyogd2ViVmlld0NyZWF0ZShXZWJLaXRXZWJWaWV3KiwgV2ViS2l0
V2ViRnJhbWUqKTsKIAogc3RhdGljIGdib29sZWFuIHdlYkluc3BlY3RvclNob3dXaW5kb3coV2Vi
S2l0V2ViSW5zcGVjdG9yKiwgZ3BvaW50ZXIgZGF0YSkKIHsKLSAgICBndGtfd2luZG93X3NldF9k
ZWZhdWx0X3NpemUoR1RLX1dJTkRPVyh3ZWJJbnNwZWN0b3JXaW5kb3cpLCA4MDAsIDYwMCk7Cisg
ICAgZ3RrX3dpbmRvd19zZXRfZGVmYXVsdF9zaXplKEdUS19XSU5ET1cod2ViSW5zcGVjdG9yV2lu
ZG93KSwgVGVzdFJ1bm5lcjo6dmlld1dpZHRoLCBUZXN0UnVubmVyOjp2aWV3SGVpZ2h0KTsKICAg
ICBndGtfd2lkZ2V0X3Nob3dfYWxsKHdlYkluc3BlY3RvcldpbmRvdyk7CiAgICAgcmV0dXJuIFRS
VUU7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXgg
ZGYxN2M5NjhmOGExOTgyYmMyNzllYWVlMmY3NDI3ZDM1MGE1YmRkMy4uOTk1ZjM1NjIyZGIyMzFl
N2FmZmMzM2I3NTI2MzNjYzQ1NzAzMjlkZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQpAQCAtNTIyLDcgKzUyMiw3IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVy
TW9ja1Njcm9sbGJhcnMoKQogCiBXZWJWaWV3ICpjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2lu
ZG93KCkKIHsKLSAgICBOU1JlY3QgcmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgVGVzdFJ1bm5lcjo6
bWF4Vmlld1dpZHRoLCBUZXN0UnVubmVyOjptYXhWaWV3SGVpZ2h0KTsKKyAgICBOU1JlY3QgcmVj
dCA9IE5TTWFrZVJlY3QoMCwgMCwgVGVzdFJ1bm5lcjo6dmlld1dpZHRoLCBUZXN0UnVubmVyOjp2
aWV3SGVpZ2h0KTsKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW1tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOnJlY3QgZnJhbWVOYW1lOm5pbCBncm91cE5hbWU6QCJvcmcud2Via2l0LkR1bXBS
ZW5kZXJUcmVlIl07CiAgICAgICAgIAogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxl
Z2F0ZV07CkBAIC0xMDk4LDkgKzEwOTgsOSBAQCBzdGF0aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1
cnJlbnRUZXN0KCkKICAgICAvLyBXM0MgU1ZHIHRlc3RzIGV4cGVjdCB0byBiZSA0ODB4MzYwCiAg
ICAgYm9vbCBpc1NWR1czQ1Rlc3QgPSAoZ1Rlc3RSdW5uZXItPnRlc3RQYXRoT3JVUkwoKS5maW5k
KCJzdmcvVzNDLVNWRy0xLjEiKSAhPSBzdHJpbmc6Om5wb3MpOwogICAgIGlmIChpc1NWR1czQ1Rl
c3QpCi0gICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldEZyYW1lU2l6ZTpOU01ha2VTaXpl
KDQ4MCwgMzYwKV07CisgICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldEZyYW1lU2l6ZTpO
U01ha2VTaXplKFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dzNjU1ZH
Vmlld0hlaWdodCldOwogICAgIGVsc2UKLSAgICAgICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0
RnJhbWVTaXplOk5TTWFrZVNpemUoVGVzdFJ1bm5lcjo6bWF4Vmlld1dpZHRoLCBUZXN0UnVubmVy
OjptYXhWaWV3SGVpZ2h0KV07CisgICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldEZyYW1l
U2l6ZTpOU01ha2VTaXplKFRlc3RSdW5uZXI6OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hl
aWdodCldOwogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqbWV0aG9kTmFtZVN0cmluZ0ZvckZhaWxl
ZFRlc3QoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlTWFjLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVNYWMuaApp
bmRleCBlNjg5OGE5Yjk1Y2JjZGU3OTYwOTkzNTBiOWJiOTg0MmYyYTU2NjczLi5jZTUwZTVmMjBm
NDFiNWQ1MGIyNDJhOGNmYzlmNjQ4YmRlNDdkOGFlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVNYWMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWVNYWMuaApAQCAtNTgsOSArNTgsNiBAQCBleHRlcm4gTmF2aWdh
dGlvbkNvbnRyb2xsZXIqIGdOYXZpZ2F0aW9uQ29udHJvbGxlcjsKIGV4dGVybiBQb2xpY3lEZWxl
Z2F0ZSogcG9saWN5RGVsZWdhdGU7CiBleHRlcm4gU3RvcmFnZVRyYWNrZXJEZWxlZ2F0ZSogc3Rv
cmFnZURlbGVnYXRlOwogCi1leHRlcm4gY29uc3QgdW5zaWduZWQgbWF4Vmlld0hlaWdodDsKLWV4
dGVybiBjb25zdCB1bnNpZ25lZCBtYXhWaWV3V2lkdGg7Ci0KIHZvaWQgc2V0V2FpdFRvRHVtcFdh
dGNoZG9nKENGUnVuTG9vcFRpbWVyUmVmKTsKIGJvb2wgc2hvdWxkU2V0V2FpdFRvRHVtcFdhdGNo
ZG9nKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBT
dXBwb3J0TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRN
YWMubW0KaW5kZXggMGNmOWM0YTE5YjM4YWFhNmEyZTVkYmE0ZmM5NzhlYTBlMTlhMjhhYy4uZjRj
YzdjMTk4NDk5YWU2MGY5ZWZjYzg4MGRmNTc4OWNkYmU2ZWRiZSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW0KQEAgLTE4NCw4ICsxODQsOCBA
QCBQYXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmll
dyhib29sIG9uc2NyZWVuLCBib29sIGluYwogCiBQYXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNy
ZWF0ZVBhZ2VkQml0bWFwQ29udGV4dCgpCiB7Ci0gICAgaW50IHBhZ2VXaWR0aEluUGl4ZWxzID0g
VGVzdFJ1bm5lcjo6bWF4Vmlld1dpZHRoOwotICAgIGludCBwYWdlSGVpZ2h0SW5QaXhlbHMgPSBU
ZXN0UnVubmVyOjptYXhWaWV3SGVpZ2h0OworICAgIGludCBwYWdlV2lkdGhJblBpeGVscyA9IFRl
c3RSdW5uZXI6OnZpZXdXaWR0aDsKKyAgICBpbnQgcGFnZUhlaWdodEluUGl4ZWxzID0gVGVzdFJ1
bm5lcjo6dmlld0hlaWdodDsKICAgICBpbnQgbnVtYmVyT2ZQYWdlcyA9IFttYWluRnJhbWUgbnVt
YmVyT2ZQYWdlc1dpdGhQYWdlV2lkdGg6cGFnZVdpZHRoSW5QaXhlbHMgcGFnZUhlaWdodDpwYWdl
SGVpZ2h0SW5QaXhlbHNdOwogICAgIHNpemVfdCByb3dCeXRlcyA9IDA7CiAgICAgdm9pZCogYnVm
ZmVyID0gMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJU
cmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAK
aW5kZXggMmZiODc4MjY3ZGM2ZjA2OGIzY2ZhZmRkOGVlNTQ0MWYwODVmZWY0NS4uYzBjMjg1MzUz
NzIwY2RlZjM1NWMxNzY4ODA3YmI2OGMyMTZlYmM0MyAxMDA3NTUKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKQEAgLTQyNyw3ICs0MjcsNyBAQCBEdW1wUmVuZGVy
VHJlZTo6RHVtcFJlbmRlclRyZWUoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp3ZWJQ
YWdlU2V0R3JvdXBOYW1lKHBhZ2VBZGFwdGVyKCksICJvcmcud2Via2l0LnF0LkR1bXBSZW5kZXJU
cmVlIik7CiAKICAgICBtX21haW5WaWV3LT5zZXRDb250ZXh0TWVudVBvbGljeShRdDo6Tm9Db250
ZXh0TWVudSk7Ci0gICAgbV9tYWluVmlldy0+cmVzaXplKFFTaXplKFRlc3RSdW5uZXJRdDo6bWF4
Vmlld1dpZHRoLCBUZXN0UnVubmVyUXQ6Om1heFZpZXdIZWlnaHQpKTsKKyAgICBtX21haW5WaWV3
LT5yZXNpemUoUVNpemUoVGVzdFJ1bm5lcjo6dmlld1dpZHRoLCBUZXN0UnVubmVyOjp2aWV3SGVp
Z2h0KSk7CiAKICAgICAvLyBjbGVhbiB1cCBjYWNoZSBieSByZXNldHRpbmcgcXVvdGEuCiAgICAg
cWludDY0IHF1b3RhID0gd2ViUGFnZSgpLT5zZXR0aW5ncygpLT5vZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZVF1b3RhKCk7CkBAIC02MjUsOCArNjI1LDggQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6
b3Blbihjb25zdCBRVXJsJiB1cmwpCiAKICAgICAvLyBXM0MgU1ZHIHRlc3RzIGV4cGVjdCB0byBi
ZSA0ODB4MzYwCiAgICAgYm9vbCBpc1czQ1Rlc3QgPSB1cmwudG9TdHJpbmcoKS5jb250YWlucygi
c3ZnL1czQy1TVkctMS4xIik7Ci0gICAgaW50IHdpZHRoID0gaXNXM0NUZXN0ID8gNDgwIDogVGVz
dFJ1bm5lclF0OjptYXhWaWV3V2lkdGg7Ci0gICAgaW50IGhlaWdodCA9IGlzVzNDVGVzdCA/IDM2
MCA6IFRlc3RSdW5uZXJRdDo6bWF4Vmlld0hlaWdodDsKKyAgICBpbnQgd2lkdGggPSBpc1czQ1Rl
c3QgPyBUZXN0UnVubmVyOjp3M2NTVkdWaWV3V2lkdGggOiBUZXN0UnVubmVyOjp2aWV3V2lkdGg7
CisgICAgaW50IGhlaWdodCA9IGlzVzNDVGVzdCA/IFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWln
aHQgOiBUZXN0UnVubmVyOjp2aWV3SGVpZ2h0OwogICAgIG1fbWFpblZpZXctPnJlc2l6ZShRU2l6
ZSh3aWR0aCwgaGVpZ2h0KSk7CiAgICAgbV9wYWdlLT5zZXRQcmVmZXJyZWRDb250ZW50c1NpemUo
UVNpemUoKSk7CiAgICAgbV9wYWdlLT5zZXRWaWV3cG9ydFNpemUoUVNpemUod2lkdGgsIGhlaWdo
dCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKaW5kZXggYTNiNTIy
MmM1MTdlODdlZjM5NzEwODdiZWUwYWU1ZDU2MmNlZTFiOS4uYzliODkxZWM2MjA2MmM1OThiNTUz
MDE1YTMxNWJjZTU2Y2ZiNzQwNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
VGVzdFJ1bm5lclF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVy
UXQuY3BwCkBAIC03NzQsOSArNzc0LDYgQEAgdm9pZCBUZXN0UnVubmVyUXQ6OnNldEF1ZGlvRGF0
YShjb25zdCBRQnl0ZUFycmF5JiBhdWRpb0RhdGEpCiAgICAgbV9hdWRpb0R1bXAgPSB0cnVlOwog
fQogCi1jb25zdCB1bnNpZ25lZCBUZXN0UnVubmVyUXQ6Om1heFZpZXdXaWR0aCA9IDgwMDsKLWNv
bnN0IHVuc2lnbmVkIFRlc3RSdW5uZXJRdDo6bWF4Vmlld0hlaWdodCA9IDYwMDsKLQogLy8gLS0t
IEpTQyBDIEFQSSBzdHVicwogCiB2b2lkIFRlc3RSdW5uZXI6OmFkZERpc2FsbG93ZWRVUkwoSlNT
dHJpbmdSZWYgdXJsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1
bm5lclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAppbmRleCBj
YWY4NTIwNmVjMDlkMWFjZGMzZjkzMzMxNTJhMmMwNjBmYjM3NjA2Li43ZGNlMWU0ZmE2MDdlZDE2
NTZiMjY2M2EyZjlmMDdkZjJiYTVmNmQ1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVu
bmVyUXQuaApAQCAtNjgsOSArNjgsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0KCk7CiAK
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG1heFZpZXdXaWR0aDsKLSAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgaW50IG1heFZpZXdIZWlnaHQ7Ci0KICAgICB2b2lkIHNldFRpbWVvdXQo
aW50IHRpbWVvdXQpIHsgbV90aW1lb3V0ID0gdGltZW91dDsgfQogICAgIHZvaWQgc2V0U2hvdWxk
VGltZW91dChib29sIGZsYWcpIHsgbV9zaG91bGRUaW1lb3V0ID0gZmxhZzsgfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA4OWZhOWY3YWZhMTYz
NWY2MTI1ZDQ0YzllMTMyNGVkYzE1ZTI5MTA3Li5hODc0NDc1ZDgwY2NhMDM2OGRiNzQ5MGQ2OTQz
MDQ2ZGQ4YTY1Y2JhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAKQEAgLTkzMSwxMSArOTMxLDExIEBAIHN0YXRpYyB2b2lkIHNpemVXZWJWaWV3Rm9yQ3Vy
cmVudFRlc3QoKQogICAgIHVuc2lnbmVkIHdpZHRoOwogICAgIHVuc2lnbmVkIGhlaWdodDsKICAg
ICBpZiAoaXNTVkdXM0NUZXN0KSB7Ci0gICAgICAgIHdpZHRoID0gNDgwOwotICAgICAgICBoZWln
aHQgPSAzNjA7CisgICAgICAgIHdpZHRoID0gVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld1dpZHRoOwor
ICAgICAgICBoZWlnaHQgPSBUZXN0UnVubmVyOjp3M2NTVkdWaWV3SGVpZ2h0OwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIHdpZHRoID0gVGVzdFJ1bm5lcjo6bWF4Vmlld1dpZHRoOwotICAgICAgICBo
ZWlnaHQgPSBUZXN0UnVubmVyOjptYXhWaWV3SGVpZ2h0OworICAgICAgICB3aWR0aCA9IFRlc3RS
dW5uZXI6OnZpZXdXaWR0aDsKKyAgICAgICAgaGVpZ2h0ID0gVGVzdFJ1bm5lcjo6dmlld0hlaWdo
dDsKICAgICB9CiAKICAgICA6OlNldFdpbmRvd1Bvcyh3ZWJWaWV3V2luZG93LCAwLCAwLCAwLCB3
aWR0aCwgaGVpZ2h0LCBTV1BfTk9NT1ZFKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3d4L0R1bXBSZW5kZXJUcmVlV3guY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvRHVt
cFJlbmRlclRyZWVXeC5jcHAKaW5kZXggY2FkZWNhZjhmMDVmYzgxZDU5ZDcwZDUwYTY5N2U0OWEz
Mzk5OWE1MC4uNDU4MWZiNDY3NTAxYjkyYzE0NWMzYjMxNDI2YTY5NjY2MGY1MjU1ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvRHVtcFJlbmRlclRyZWVXeC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvRHVtcFJlbmRlclRyZWVXeC5jcHAKQEAgLTY1LDggKzY1
LDYgQEAgc3RhdGljIFdlYlZpZXcqIHdlYlZpZXc7CiBzdGF0aWMgd3hUaW1lciogaWRsZVRpbWVy
OwogCiBjb25zdCB1bnNpZ25lZCB0aW1lT3V0ID0gMTA7Ci1jb25zdCB1bnNpZ25lZCBtYXhWaWV3
SGVpZ2h0ID0gNjAwOwotY29uc3QgdW5zaWduZWQgbWF4Vmlld1dpZHRoID0gODAwOwogCiBjbGFz
cyBMYXlvdXRXZWJWaWV3RXZlbnRIYW5kbGVyIDogcHVibGljIHd4RXZ0SGFuZGxlciB7CiAKQEAg
LTI5NCw3ICsyOTIsNyBAQCBib29sIE15QXBwOjpPbkluaXQoKQogICAgIFdlYkJyb3dzZXJTaGVs
bCogd2ViRnJhbWUgPSBuZXcgV2ViQnJvd3NlclNoZWxsKF9UKCJ3eFdlYktpdCBEdW1wUmVuZGVy
VHJlZSBBcHAiKSwgImFib3V0OmJsYW5rIik7CiAgICAgU2V0VG9wV2luZG93KHdlYkZyYW1lKTsK
ICAgICB3ZWJWaWV3ID0gd2ViRnJhbWUtPndlYnZpZXc7Ci0gICAgd2ViVmlldy0+U2V0U2l6ZSh3
eFNpemUobWF4Vmlld1dpZHRoLCBtYXhWaWV3SGVpZ2h0KSk7CisgICAgd2ViVmlldy0+U2V0U2l6
ZSh3eFNpemUoVGVzdFJ1bm5lcjo6dmlld1dpZHRoLCBUZXN0UnVubmVyOjp2aWV3SGVpZ2h0KSk7
CiAgICAgCiAgICAgaWYgKCFldmVudEhhbmRsZXIpIHsKICAgICAgICAgZXZlbnRIYW5kbGVyID0g
bmV3IExheW91dFdlYlZpZXdFdmVudEhhbmRsZXIod2ViVmlldyk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGJlNzYyMGZkZjc2OWJkYWRmYWI0MTJmNTY2
NmI2YTQwNjMxMGQ2NGMuLjIzNWQ5OTU2NTVjMzY0YzhiZDFjYzQyODk4ZDA5MDI0NGI2NzhhN2Mg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02Myw2ICs2
MywxMiBAQAogCiBuYW1lc3BhY2UgV1RSIHsKIAorY29uc3QgdW5zaWduZWQgVGVzdENvbnRyb2xs
ZXI6OnZpZXdXaWR0aCA9IDgwMDsKK2NvbnN0IHVuc2lnbmVkIFRlc3RDb250cm9sbGVyOjp2aWV3
SGVpZ2h0ID0gNjAwOworCitjb25zdCB1bnNpZ25lZCBUZXN0Q29udHJvbGxlcjo6dzNjU1ZHVmll
d1dpZHRoID0gNDgwOworY29uc3QgdW5zaWduZWQgVGVzdENvbnRyb2xsZXI6OnczY1NWR1ZpZXdI
ZWlnaHQgPSAzNjA7CisKIC8vIGRlZmF1bHRMb25nVGltZW91dCArIGRlZmF1bHRTaG9ydFRpbWVv
dXQgc2hvdWxkIGJlIGxlc3MgdGhhbiA4MCwKIC8vIHRoZSBkZWZhdWx0IHRpbWVvdXQgdmFsdWUg
b2YgdGhlIHRlc3QgaGFybmVzcyBzbyB3ZSBjYW4gZGV0ZWN0IGFuCiAvLyB1bnJlc3BvbnNpdmUg
d2ViIHByb2Nlc3MuCkBAIC01ODksNyArNTk1LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVz
ZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgLy8gRUZMIHVzZSBhIHJlYWwgd2luZG93
IHdoaWxlIG90aGVyIHBvcnRzIHN1Y2ggYXMgUXQgZG9uJ3QuCiAgICAgLy8gSW4gRUZMLCB3ZSBu
ZWVkIHRvIHJlc2l6ZSB0aGUgd2luZG93IHRvIHRoZSBvcmlnaW5hbCBzaXplIGFmdGVyIGNhbGxz
IHRvIHdpbmRvdy5yZXNpemVUby4KICAgICBXS1JlY3QgcmVjdCA9IG1fbWFpbldlYlZpZXctPndp
bmRvd0ZyYW1lKCk7Ci0gICAgbV9tYWluV2ViVmlldy0+c2V0V2luZG93RnJhbWUoV0tSZWN0TWFr
ZShyZWN0Lm9yaWdpbi54LCByZWN0Lm9yaWdpbi55LCA4MDAsIDYwMCkpOworICAgIG1fbWFpbldl
YlZpZXctPnNldFdpbmRvd0ZyYW1lKFdLUmVjdE1ha2UocmVjdC5vcmlnaW4ueCwgcmVjdC5vcmln
aW4ueSwgVGVzdENvbnRyb2xsZXI6OnZpZXdXaWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWln
aHQpKTsKICNlbmRpZgogCiAgICAgLy8gUmVzZXQgbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMGY2NWM5ZjFhZjU4MThj
ZGQ2MGRhNzMxMTljNmM2NzcxMGIwODMwZS4uZGVlMjY4MzQ2ZGY5YzI4ZDczY2ViZTM5YTgwMzQy
MDVkY2EzZDRiNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAt
NDYsNiArNDYsMTIgQEAgY2xhc3MgVGVzdENvbnRyb2xsZXIgewogcHVibGljOgogICAgIHN0YXRp
YyBUZXN0Q29udHJvbGxlciYgc2hhcmVkKCk7CiAKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
dmlld1dpZHRoOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2aWV3SGVpZ2h0OworCisgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NWR1ZpZXdXaWR0aDsKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgdzNjU1ZHVmlld0hlaWdodDsKKwogICAgIFRlc3RDb250cm9sbGVyKGludCBhcmdj
LCBjb25zdCBjaGFyKiBhcmd2W10pOwogICAgIH5UZXN0Q29udHJvbGxlcigpOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDc4OWVhYTNkZTQ3ZDlhZjNi
NjA0NzVkMzg2YjAwODJmNGVkM2FiZDUuLjI1M2M3YzcwOGQwNTIzZTBhMjcxZjM2Nzg1ZDg4YWQy
YTAxZjBkMDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBA
IC0xMjcsMjAgKzEyNywxNiBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpzZXRDdXN0b21UaW1lb3V0
KGludCB0aW1lb3V0KQogICAgIG1fdGltZW91dCA9IHRpbWVvdXQ7CiB9CiAKLXN0YXRpYyBjb25z
dCB1bnNpZ25lZCB3M2NTVkdXaWR0aCA9IDQ4MDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NT
VkdIZWlnaHQgPSAzNjA7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgbm9ybWFsV2lkdGggPSA4MDA7
Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgbm9ybWFsSGVpZ2h0ID0gNjAwOwotCiBzdGF0aWMgdm9p
ZCBzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KGNvbnN0IGNoYXIqIHBhdGhPclVSTCkKIHsKICAg
ICBib29sIGlzU1ZHVzNDVGVzdCA9IHN0cnN0cihwYXRoT3JVUkwsICJzdmcvVzNDLVNWRy0xLjEi
KSB8fCBzdHJzdHIocGF0aE9yVVJMLCAic3ZnXFxXM0MtU1ZHLTEuMSIpOwogCiAgICAgaWYgKGlz
U1ZHVzNDVGVzdCkKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3
KCktPnJlc2l6ZVRvKHczY1NWR1dpZHRoLCB3M2NTVkdIZWlnaHQpOworICAgICAgICBUZXN0Q29u
dHJvbGxlcjo6c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+cmVzaXplVG8oVGVzdENvbnRyb2xsZXI6
OnczY1NWR1ZpZXdXaWR0aCwgVGVzdENvbnRyb2xsZXI6OnczY1NWR1ZpZXdIZWlnaHQpOwogICAg
IGVsc2UKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnJl
c2l6ZVRvKG5vcm1hbFdpZHRoLCBub3JtYWxIZWlnaHQpOworICAgICAgICBUZXN0Q29udHJvbGxl
cjo6c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+cmVzaXplVG8oVGVzdENvbnRyb2xsZXI6OnZpZXdX
aWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaHQpOwogfQorCiBzdGF0aWMgYm9vbCBzaG91
bGRMb2dGcmFtZUxvYWREZWxlZ2F0ZXMoY29uc3QgY2hhciogcGF0aE9yVVJMKQogewogICAgIHJl
dHVybiBzdHJzdHIocGF0aE9yVVJMLCAibG9hZGluZy8iKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQppbmRleCBiNTVkMzJjMGE1ODZiMjA5
ZWY1OTBiMWMzMWU2YjA5YjA0MzBkMDI5Li41NWRlYTNhY2M5OTY3YWEzMTI0Nzk0NWIwY2Q1OTE5
OTA0YzU2ZjdkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9y
bVdlYlZpZXdNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1X
ZWJWaWV3TWFjLm1tCkBAIC0xMjQsNyArMTI0LDcgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9y
bVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm8K
ICAgICBXS1R5cGVSZWYgdXNlVGlsZWREcmF3aW5nVmFsdWUgPSBvcHRpb25zID8gV0tEaWN0aW9u
YXJ5R2V0SXRlbUZvcktleShvcHRpb25zLCB1c2VUaWxlZERyYXdpbmdLZXkuZ2V0KCkpIDogTlVM
TDsKICAgICBib29sIHVzZVRpbGVkRHJhd2luZyA9IHVzZVRpbGVkRHJhd2luZ1ZhbHVlICYmIFdL
Qm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4odXNlVGlsZWREcmF3aW5n
VmFsdWUpKTsKIAotICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCk7
CisgICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIFRlc3RDb250cm9sbGVyOjp2aWV3
V2lkdGgsIFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0KTsKICAgICBtX3ZpZXcgPSBbW1Rlc3RS
dW5uZXJXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBjb250ZXh0UmVmOmNvbnRleHRS
ZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJlZiB1c2VUaWxlZERyYXdpbmc6dXNlVGlsZWREcmF3
aW5nXTsKICAgICBbbV92aWV3IHNldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6Tk9d
OwogCkBAIC0xNDEsNiArMTQxLDEwIEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvCiAKIHZvaWQg
UGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0
KQogeworICAgIE5TUmVjdCB3aW5kb3dGcmFtZSA9IFttX3dpbmRvdyBmcmFtZV07CisgICAgd2lu
ZG93RnJhbWUuc2l6ZS53aWR0aCA9IHdpZHRoOworICAgIHdpbmRvd0ZyYW1lLnNpemUuaGVpZ2h0
ID0gaGVpZ2h0OworICAgIFttX3dpbmRvdyBzZXRGcmFtZTp3aW5kb3dGcmFtZSBkaXNwbGF5OllF
U107CiAgICAgW21fdmlldyBzZXRGcmFtZTpOU01ha2VSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQp
XTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197181</attachid>
            <date>2013-04-09 15:03:08 -0700</date>
            <delta_ts>2013-04-24 14:06:56 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-114218-20130409150251.patch</filename>
            <type>text/plain</type>
            <size>19915</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4MDQ5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTE5YzdlODE4N2UyMDFhZGY2ZDc0NDQxNzFmM2NkYmNh
MjE4Zjk3MS4uZDI3Y2VkMzdmYTAxMWE1ZGUwOGY5M2MyZWNhNjUwZTAxNTE1NzY0MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUw
IEBACisyMDEzLTA0LTA4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFBpeGVsIHRlc3RzIGluIFNWRyBhcmUgYWxsIGJyb2tlbiBpbiBXSzIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDIxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorICAgICAgICAKKyAgICAgICAgV2luZG93IHNu
YXBzaG90cyBpbiBXZWJLaXRUZXN0UnVubmVyIG9uIE1hYyBhcmUgd2luZG93LXNpemVkCisgICAg
ICAgICg4MDB4NjAwKSwgd2hpY2ggaXMgd3JvbmcgZm9yIHRoZSBXM0MgU1ZHIHRlc3RzIHRoYXQg
cmVxdWlyZSBhCisgICAgICAgIDQ4MHgzNjAgc25hcHNob3QuCisgICAgICAgIAorICAgICAgICBG
aXggYnkgcmVzaXppbmcgdGhlIHdpbmRvdywgYXMgd2VsbCBhcyB0aGUgd2ViIHZpZXcgaW4KKyAg
ICAgICAgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbygpIHNvIHRoYXQgd2luZG93IHNuYXBzaG90
cyBhcmUgY29ycmVjdGx5CisgICAgICAgIHNpemVkLgorICAgICAgICAKKyAgICAgICAgQWxzbyBk
byBzb21lIGRyaXZlLWJ5IGNsZWFudXAgb2YgdGhlIHdpbmRvdyBzaXplIGNvbnN0YW50cyBpbiBi
b3RoCisgICAgICAgIERSVCBhbmQgV1RSIHRvIHJlbW92ZSBtYWdpYyBudW1iZXJzLCBhbmQgbWFr
ZSB0aGUgY29kZSBtb3JlIHNpbWlsYXIuCisgICAgICAgIAorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U2hvdWxkUGFpbnRC
cm9rZW5JbWFnZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHdlYkluc3Bl
Y3RvclNob3dXaW5kb3cpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbToKKyAgICAgICAgKGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3cpOgorICAg
ICAgICAoc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L1BpeGVsRHVtcFN1cHBvcnRNYWMubW06CisgICAgICAgIChjcmVhdGVQYWdlZEJpdG1hcENvbnRl
eHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlOjpvcGVuKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVy
UXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChz
aXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9E
dW1wUmVuZGVyVHJlZVd4LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAg
ICAgICAgKFdUUjo6c2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tOgorICAgICAgICAoV1RSOjpQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2Vi
Vmlldzo6cmVzaXplVG8pOgorCiAyMDEzLTA0LTA2ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgS2lsbCBvbGQgcHJvY2Vzc2VzIGJldHdlZW4gcnVucyBvbiBX
aW5FV1MgYm90cy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZDYwMDQ1Mjlj
MjE2YTExODg0Mjc5OWE1NjcyOTNiZTM5ZjRmODY0NC4uY2ZjMWI1MDlhMjNiMzU0ZTUxNTdkYjIw
YTRjMTMyMGY0MDA2OGI3YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTQ0
LDYgKzQ0LDEyIEBACiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCitjb25zdCB1bnNpZ25lZCBUZXN0UnVubmVyOjp2aWV3V2lkdGggPSA4MDA7
Citjb25zdCB1bnNpZ25lZCBUZXN0UnVubmVyOjp2aWV3SGVpZ2h0ID0gNjAwOworCitjb25zdCB1
bnNpZ25lZCBUZXN0UnVubmVyOjp3M2NTVkdWaWV3V2lkdGggPSA0ODA7Citjb25zdCB1bnNpZ25l
ZCBUZXN0UnVubmVyOjp3M2NTVkdWaWV3SGVpZ2h0ID0gMzYwOworCiBUZXN0UnVubmVyOjpUZXN0
UnVubmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmlu
ZyYgZXhwZWN0ZWRQaXhlbEhhc2gpCiAgICAgOiBtX2Rpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNh
dGlvbkNhY2hlUXVvdGEoZmFsc2UpCiAgICAgLCBtX2R1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdh
dGVDYWxsYmFja3MoZmFsc2UpCkBAIC0yMjM2LDYgKzIyNDIsMyBAQCB2b2lkIFRlc3RSdW5uZXI6
OnNldFNob3VsZFBhaW50QnJva2VuSW1hZ2UoYm9vbCBzaG91bGRQYWludEJyb2tlbkltYWdlKQog
ewogICAgIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSA9IHNob3VsZFBhaW50QnJva2VuSW1hZ2U7
CiB9Ci0KLWNvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aCA9IDgwMDsKLWNv
bnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6Om1heFZpZXdIZWlnaHQgPSA2MDA7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmgKaW5kZXggZjBhOWI2YTVhZmIyYzI3YTE1MTA1MGZmNDUzZDEyNDgwMGI3
ZTljMS4uZjUxMzM5MjJiNDNiNDQ5NjlkMzRlNjdkN2UwZjg5Mzc2ZDVjNjNiZiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtNDEsNiArNDEsMTMgQEAKIGNsYXNzIFRlc3RSdW5uZXIg
OiBwdWJsaWMgUmVmQ291bnRlZDxUZXN0UnVubmVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8VGVzdFJ1bm5lcj4gY3JlYXRlKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9y
VVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOworCisgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIHZpZXdXaWR0aDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmll
d0hlaWdodDsKKworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdWaWV3V2lkdGg7Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NWR1ZpZXdIZWlnaHQ7CisKICAgICB+VGVzdFJ1
bm5lcigpOwogCiAgICAgdm9pZCBtYWtlV2luZG93T2JqZWN0KEpTQ29udGV4dFJlZiwgSlNPYmpl
Y3RSZWYgd2luZG93T2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwpAQCAtMzMwLDkgKzMz
Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZFBhaW50QnJva2VuSW1hZ2UoYm9vbCk7
CiAgICAgYm9vbCBzaG91bGRQYWludEJyb2tlbkltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRQYWludEJyb2tlbkltYWdlOyB9CiAKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4Vmll
d1dpZHRoOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhWaWV3SGVpZ2h0OwotCiAgICAg
dm9pZCBzZXRUZXh0RGlyZWN0aW9uKEpTU3RyaW5nUmVmKTsKICAgICBjb25zdCBzdGQ6OnN0cmlu
ZyYgdGl0bGVUZXh0RGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZVRleHREaXJlY3Rp
b247IH0KICAgICB2b2lkIHNldFRpdGxlVGV4dERpcmVjdGlvbihjb25zdCBzdGQ6OnN0cmluZyYg
ZGlyZWN0aW9uKSB7IG1fdGl0bGVUZXh0RGlyZWN0aW9uID0gZGlyZWN0aW9uOyB9CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA2ZGUyZDRhNDQ1YmYw
YjlmYWU0ZjQwNzIyZWZkZjJlM2RmNDg1OTRkLi4xNmMwMWNhNjM3NDNiODBiOGY0N2IwYTFkMWI5
M2U0NjZjMmIxN2NlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJl
ZS5jcHAKQEAgLTI4MCw4ICsyODAsOCBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IGNoYXIq
IGlucHV0TGluZSkKICAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5zZXRGcm96ZW4oZmFsc2UpOwog
CiAgICAgY29uc3QgYm9vbCBpc1NWR1czQ1Rlc3QgPSB0ZXN0VVJMLmNvbnRhaW5zKCJzdmcvVzND
LVNWRy0xLjEiKTsKLSAgICBjb25zdCBpbnQgd2lkdGggPSBpc1NWR1czQ1Rlc3QgPyA0ODAgOiBU
ZXN0UnVubmVyOjptYXhWaWV3V2lkdGg7Ci0gICAgY29uc3QgaW50IGhlaWdodCA9IGlzU1ZHVzND
VGVzdCA/IDM2MCA6IFRlc3RSdW5uZXI6Om1heFZpZXdIZWlnaHQ7CisgICAgY29uc3QgaW50IHdp
ZHRoID0gaXNTVkdXM0NUZXN0ID8gVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld1dpZHRoIDogVGVzdFJ1
bm5lcjo6dmlld1dpZHRoOworICAgIGNvbnN0IGludCBoZWlnaHQgPSBpc1NWR1czQ1Rlc3QgPyBU
ZXN0UnVubmVyOjp3M2NTVkdWaWV3SGVpZ2h0IDogVGVzdFJ1bm5lcjo6dmlld0hlaWdodDsKICAg
ICBldmFzX29iamVjdF9yZXNpemUoYnJvd3Nlci0+bWFpblZpZXcoKSwgd2lkdGgsIGhlaWdodCk7
CiAKICAgICBpZiAocHJldlRlc3RCRkl0ZW0pCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCAwM2JmMDI1MjEyYmY0NGMxZjFjY2Vk
ZGZhMjFhNmJkZDFjZDhiZTU4Li45MTI4MGMyYjhlYmVhNmQ4YmI0NDc3MmNhZjk5Y2M0MzVkNWY0
NmE5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVD
aHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBFdmFzX09iamVjdCogRHVtcFJlbmRlclRyZWVD
aHJvbWU6OmNyZWF0ZUluc3BlY3RvclZpZXcoKQogICAgIEV2YXNfT2JqZWN0KiBtYWluRnJhbWUg
PSBld2tfdmlld19mcmFtZV9tYWluX2dldChpbnNwZWN0b3JWaWV3KTsKICAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAibG9hZCxmaW5pc2hlZCIsIG9uSW5zcGVj
dG9yRnJhbWVMb2FkRmluaXNoZWQsIDApOwogCi0gICAgZXZhc19vYmplY3RfcmVzaXplKGluc3Bl
Y3RvclZpZXcsIFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6bWF4Vmlld0hl
aWdodCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGluc3BlY3RvclZpZXcsIFRlc3RSdW5uZXI6
OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCk7CiAgICAgZXZhc19vYmplY3Rfc2hv
dyhpbnNwZWN0b3JWaWV3KTsKICAgICBldmFzX29iamVjdF9mb2N1c19zZXQoaW5zcGVjdG9yVmll
dywgdHJ1ZSk7CiAKQEAgLTIxMiw3ICsyMTIsNyBAQCBib29sIER1bXBSZW5kZXJUcmVlQ2hyb21l
Ojppbml0aWFsaXplKCkKIAogICAgIGV2YXNfb2JqZWN0X25hbWVfc2V0KG1fbWFpblZpZXcsICJt
X21haW5WaWV3Iik7CiAgICAgZXZhc19vYmplY3RfbW92ZShtX21haW5WaWV3LCAwLCAwKTsKLSAg
ICBldmFzX29iamVjdF9yZXNpemUobV9tYWluVmlldywgODAwLCA2MDApOworICAgIGV2YXNfb2Jq
ZWN0X3Jlc2l6ZShtX21haW5WaWV3LCBUZXN0UnVubmVyOjp2aWV3V2lkdGgsIFRlc3RSdW5uZXI6
OnZpZXdIZWlnaHQpOwogICAgIGV2YXNfb2JqZWN0X2xheWVyX3NldChtX21haW5WaWV3LCBFVkFT
X0xBWUVSX01BWCk7CiAgICAgZXZhc19vYmplY3Rfc2hvdyhtX21haW5WaWV3KTsKICAgICBldmFz
X29iamVjdF9mb2N1c19zZXQobV9tYWluVmlldywgRUlOQV9UUlVFKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGNlZTQ2MWM1ODFkM2YxOTMyZTQx
ZDQ3NDY1NDRlZGJmNjQ2MGRiY2EuLjNkNTU5YTA0NGI2MDA0NTQ4MWEzYTY3NjFlZmNlMWZmN2Q5
ZGRhMjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJl
ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApA
QCAtNzQ3LDggKzc0Nyw4IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1
dExpbmUpCiAgICAgYm9vbCBpc1NWR1czQ1Rlc3QgPSAodGVzdFVSTC5maW5kKCJzdmcvVzNDLVNW
Ry0xLjEiKSAhPSBzdHJpbmc6Om5wb3MpOwogICAgIEd0a0FsbG9jYXRpb24gc2l6ZTsKICAgICBz
aXplLnggPSBzaXplLnkgPSAwOwotICAgIHNpemUud2lkdGggPSBpc1NWR1czQ1Rlc3QgPyA0ODAg
OiBUZXN0UnVubmVyOjptYXhWaWV3V2lkdGg7Ci0gICAgc2l6ZS5oZWlnaHQgPSBpc1NWR1czQ1Rl
c3QgPyAzNjAgOiBUZXN0UnVubmVyOjptYXhWaWV3SGVpZ2h0OworICAgIHNpemUud2lkdGggPSBp
c1NWR1czQ1Rlc3QgPyBUZXN0UnVubmVyOjp3M2NTVkdWaWV3V2lkdGggOiBUZXN0UnVubmVyOjp2
aWV3V2lkdGg7CisgICAgc2l6ZS5oZWlnaHQgPSBpc1NWR1czQ1Rlc3QgPyBUZXN0UnVubmVyOjp3
M2NTVkdWaWV3SGVpZ2h0IDogVGVzdFJ1bm5lcjo6dmlld0hlaWdodDsKICAgICBndGtfd2luZG93
X3Jlc2l6ZShHVEtfV0lORE9XKHdpbmRvdyksIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KTsKICAg
ICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoY29udGFpbmVyLCAmc2l6ZSk7CiAKQEAgLTEwNjcs
NyArMTA2Nyw3IEBAIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3Q3JlYXRlKFdlYktpdFdl
YlZpZXcqLCBXZWJLaXRXZWJGcmFtZSopOwogCiBzdGF0aWMgZ2Jvb2xlYW4gd2ViSW5zcGVjdG9y
U2hvd1dpbmRvdyhXZWJLaXRXZWJJbnNwZWN0b3IqLCBncG9pbnRlciBkYXRhKQogewotICAgIGd0
a193aW5kb3dfc2V0X2RlZmF1bHRfc2l6ZShHVEtfV0lORE9XKHdlYkluc3BlY3RvcldpbmRvdyks
IDgwMCwgNjAwKTsKKyAgICBndGtfd2luZG93X3NldF9kZWZhdWx0X3NpemUoR1RLX1dJTkRPVyh3
ZWJJbnNwZWN0b3JXaW5kb3cpLCBUZXN0UnVubmVyOjp2aWV3V2lkdGgsIFRlc3RSdW5uZXI6OnZp
ZXdIZWlnaHQpOwogICAgIGd0a193aWRnZXRfc2hvd19hbGwod2ViSW5zcGVjdG9yV2luZG93KTsK
ICAgICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbQppbmRleCBkZjE3Yzk2OGY4YTE5ODJiYzI3OWVhZWUyZjc0MjdkMzUwYTViZGQzLi45
OTVmMzU2MjJkYjIzMWU3YWZmYzMzYjc1MjYzM2NjNDU3MDMyOWRlIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC01MjIsNyArNTIyLDcgQEAgc3RhdGlj
IHZvaWQgcmVnaXN0ZXJNb2NrU2Nyb2xsYmFycygpCiAKIFdlYlZpZXcgKmNyZWF0ZVdlYlZpZXdB
bmRPZmZzY3JlZW5XaW5kb3coKQogewotICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgwLCAw
LCBUZXN0UnVubmVyOjptYXhWaWV3V2lkdGgsIFRlc3RSdW5uZXI6Om1heFZpZXdIZWlnaHQpOwor
ICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBUZXN0UnVubmVyOjp2aWV3V2lkdGgs
IFRlc3RSdW5uZXI6OnZpZXdIZWlnaHQpOwogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbW1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBmcmFtZU5hbWU6bmlsIGdyb3VwTmFtZTpAIm9y
Zy53ZWJraXQuRHVtcFJlbmRlclRyZWUiXTsKICAgICAgICAgCiAgICAgW3dlYlZpZXcgc2V0VUlE
ZWxlZ2F0ZTp1aURlbGVnYXRlXTsKQEAgLTEwOTgsOSArMTA5OCw5IEBAIHN0YXRpYyB2b2lkIHNp
emVXZWJWaWV3Rm9yQ3VycmVudFRlc3QoKQogICAgIC8vIFczQyBTVkcgdGVzdHMgZXhwZWN0IHRv
IGJlIDQ4MHgzNjAKICAgICBib29sIGlzU1ZHVzNDVGVzdCA9IChnVGVzdFJ1bm5lci0+dGVzdFBh
dGhPclVSTCgpLmZpbmQoInN2Zy9XM0MtU1ZHLTEuMSIpICE9IHN0cmluZzo6bnBvcyk7CiAgICAg
aWYgKGlzU1ZHVzNDVGVzdCkKLSAgICAgICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0RnJhbWVT
aXplOk5TTWFrZVNpemUoNDgwLCAzNjApXTsKKyAgICAgICAgW1ttYWluRnJhbWUgd2ViVmlld10g
c2V0RnJhbWVTaXplOk5TTWFrZVNpemUoVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld1dpZHRoLCBUZXN0
UnVubmVyOjp3M2NTVkdWaWV3SGVpZ2h0KV07CiAgICAgZWxzZQotICAgICAgICBbW21haW5GcmFt
ZSB3ZWJWaWV3XSBzZXRGcmFtZVNpemU6TlNNYWtlU2l6ZShUZXN0UnVubmVyOjptYXhWaWV3V2lk
dGgsIFRlc3RSdW5uZXI6Om1heFZpZXdIZWlnaHQpXTsKKyAgICAgICAgW1ttYWluRnJhbWUgd2Vi
Vmlld10gc2V0RnJhbWVTaXplOk5TTWFrZVNpemUoVGVzdFJ1bm5lcjo6dmlld1dpZHRoLCBUZXN0
UnVubmVyOjp2aWV3SGVpZ2h0KV07CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyICptZXRob2ROYW1l
U3RyaW5nRm9yRmFpbGVkVGVzdCgpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWVNYWMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZU1hYy5oCmluZGV4IGU2ODk4YTliOTVjYmNkZTc5NjA5OTM1MGI5YmI5ODQyZjJhNTY2
NzMuLmNlNTBlNWYyMGY0MWI1ZDUwYjI0MmE4Y2ZjOWY2NDhiZGU0N2Q4YWUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZU1hYy5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZU1hYy5oCkBAIC01OCw5ICs1OCw2IEBA
IGV4dGVybiBOYXZpZ2F0aW9uQ29udHJvbGxlciogZ05hdmlnYXRpb25Db250cm9sbGVyOwogZXh0
ZXJuIFBvbGljeURlbGVnYXRlKiBwb2xpY3lEZWxlZ2F0ZTsKIGV4dGVybiBTdG9yYWdlVHJhY2tl
ckRlbGVnYXRlKiBzdG9yYWdlRGVsZWdhdGU7CiAKLWV4dGVybiBjb25zdCB1bnNpZ25lZCBtYXhW
aWV3SGVpZ2h0OwotZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIG1heFZpZXdXaWR0aDsKLQogdm9pZCBz
ZXRXYWl0VG9EdW1wV2F0Y2hkb2coQ0ZSdW5Mb29wVGltZXJSZWYpOwogYm9vbCBzaG91bGRTZXRX
YWl0VG9EdW1wV2F0Y2hkb2coKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUGl4
ZWxEdW1wU3VwcG9ydE1hYy5tbQppbmRleCAwY2Y5YzRhMTliMzhhYWE2YTJlNWRiYTRmYzk3OGVh
MGUxOWEyOGFjLi5mNGNjN2MxOTg0OTlhZTYwZjllZmNjODgwZGY1Nzg5Y2RiZTZlZGJlIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbQpAQCAt
MTg0LDggKzE4NCw4IEBAIFBhc3NSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29u
dGV4dEZyb21XZWJWaWV3KGJvb2wgb25zY3JlZW4sIGJvb2wgaW5jCiAKIFBhc3NSZWZQdHI8Qml0
bWFwQ29udGV4dD4gY3JlYXRlUGFnZWRCaXRtYXBDb250ZXh0KCkKIHsKLSAgICBpbnQgcGFnZVdp
ZHRoSW5QaXhlbHMgPSBUZXN0UnVubmVyOjptYXhWaWV3V2lkdGg7Ci0gICAgaW50IHBhZ2VIZWln
aHRJblBpeGVscyA9IFRlc3RSdW5uZXI6Om1heFZpZXdIZWlnaHQ7CisgICAgaW50IHBhZ2VXaWR0
aEluUGl4ZWxzID0gVGVzdFJ1bm5lcjo6dmlld1dpZHRoOworICAgIGludCBwYWdlSGVpZ2h0SW5Q
aXhlbHMgPSBUZXN0UnVubmVyOjp2aWV3SGVpZ2h0OwogICAgIGludCBudW1iZXJPZlBhZ2VzID0g
W21haW5GcmFtZSBudW1iZXJPZlBhZ2VzV2l0aFBhZ2VXaWR0aDpwYWdlV2lkdGhJblBpeGVscyBw
YWdlSGVpZ2h0OnBhZ2VIZWlnaHRJblBpeGVsc107CiAgICAgc2l6ZV90IHJvd0J5dGVzID0gMDsK
ICAgICB2b2lkKiBidWZmZXIgPSAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcAppbmRleCAyZmI4NzgyNjdkYzZmMDY4YjNjZmFmZGQ4ZWU1NDQxZjA4NWZl
ZjQ1Li5jMGMyODUzNTM3MjBjZGVmMzU1YzE3Njg4MDdiYjY4YzIxNmViYzQzIDEwMDc1NQotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApAQCAtNDI3LDcgKzQyNyw3
IEBAIER1bXBSZW5kZXJUcmVlOjpEdW1wUmVuZGVyVHJlZSgpCiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OndlYlBhZ2VTZXRHcm91cE5hbWUocGFnZUFkYXB0ZXIoKSwgIm9yZy53ZWJraXQu
cXQuRHVtcFJlbmRlclRyZWUiKTsKIAogICAgIG1fbWFpblZpZXctPnNldENvbnRleHRNZW51UG9s
aWN5KFF0OjpOb0NvbnRleHRNZW51KTsKLSAgICBtX21haW5WaWV3LT5yZXNpemUoUVNpemUoVGVz
dFJ1bm5lclF0OjptYXhWaWV3V2lkdGgsIFRlc3RSdW5uZXJRdDo6bWF4Vmlld0hlaWdodCkpOwor
ICAgIG1fbWFpblZpZXctPnJlc2l6ZShRU2l6ZShUZXN0UnVubmVyOjp2aWV3V2lkdGgsIFRlc3RS
dW5uZXI6OnZpZXdIZWlnaHQpKTsKIAogICAgIC8vIGNsZWFuIHVwIGNhY2hlIGJ5IHJlc2V0dGlu
ZyBxdW90YS4KICAgICBxaW50NjQgcXVvdGEgPSB3ZWJQYWdlKCktPnNldHRpbmdzKCktPm9mZmxp
bmVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGEoKTsKQEAgLTYyNSw4ICs2MjUsOCBAQCB2b2lkIER1
bXBSZW5kZXJUcmVlOjpvcGVuKGNvbnN0IFFVcmwmIHVybCkKIAogICAgIC8vIFczQyBTVkcgdGVz
dHMgZXhwZWN0IHRvIGJlIDQ4MHgzNjAKICAgICBib29sIGlzVzNDVGVzdCA9IHVybC50b1N0cmlu
ZygpLmNvbnRhaW5zKCJzdmcvVzNDLVNWRy0xLjEiKTsKLSAgICBpbnQgd2lkdGggPSBpc1czQ1Rl
c3QgPyA0ODAgOiBUZXN0UnVubmVyUXQ6Om1heFZpZXdXaWR0aDsKLSAgICBpbnQgaGVpZ2h0ID0g
aXNXM0NUZXN0ID8gMzYwIDogVGVzdFJ1bm5lclF0OjptYXhWaWV3SGVpZ2h0OworICAgIGludCB3
aWR0aCA9IGlzVzNDVGVzdCA/IFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdXaWR0aCA6IFRlc3RSdW5u
ZXI6OnZpZXdXaWR0aDsKKyAgICBpbnQgaGVpZ2h0ID0gaXNXM0NUZXN0ID8gVGVzdFJ1bm5lcjo6
dzNjU1ZHVmlld0hlaWdodCA6IFRlc3RSdW5uZXI6OnZpZXdIZWlnaHQ7CiAgICAgbV9tYWluVmll
dy0+cmVzaXplKFFTaXplKHdpZHRoLCBoZWlnaHQpKTsKICAgICBtX3BhZ2UtPnNldFByZWZlcnJl
ZENvbnRlbnRzU2l6ZShRU2l6ZSgpKTsKICAgICBtX3BhZ2UtPnNldFZpZXdwb3J0U2l6ZShRU2l6
ZSh3aWR0aCwgaGVpZ2h0KSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9U
ZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNw
cAppbmRleCBhM2I1MjIyYzUxN2U4N2VmMzk3MTA4N2JlZTBhZTVkNTYyY2VlMWI5Li5jOWI4OTFl
YzYyMDYyYzU5OGI1NTMwMTVhMzE1YmNlNTZjZmI3NDA3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTc3NCw5ICs3NzQsNiBAQCB2b2lkIFRlc3RSdW5uZXJR
dDo6c2V0QXVkaW9EYXRhKGNvbnN0IFFCeXRlQXJyYXkmIGF1ZGlvRGF0YSkKICAgICBtX2F1ZGlv
RHVtcCA9IHRydWU7CiB9CiAKLWNvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXJRdDo6bWF4Vmlld1dp
ZHRoID0gODAwOwotY29uc3QgdW5zaWduZWQgVGVzdFJ1bm5lclF0OjptYXhWaWV3SGVpZ2h0ID0g
NjAwOwotCiAvLyAtLS0gSlNDIEMgQVBJIHN0dWJzCiAKIHZvaWQgVGVzdFJ1bm5lcjo6YWRkRGlz
YWxsb3dlZFVSTChKU1N0cmluZ1JlZiB1cmwpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9UZXN0UnVubmVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5u
ZXJRdC5oCmluZGV4IGNhZjg1MjA2ZWMwOWQxYWNkYzNmOTMzMzE1MmEyYzA2MGZiMzc2MDYuLjdk
Y2UxZTRmYTYwN2VkMTY1NmIyNjYzYTJmOWYwN2RmMmJhNWY2ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L1Rlc3RSdW5uZXJRdC5oCkBAIC02OCw5ICs2OCw2IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgcmVzZXQoKTsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbWF4Vmlld1dpZHRo
OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbWF4Vmlld0hlaWdodDsKLQogICAgIHZv
aWQgc2V0VGltZW91dChpbnQgdGltZW91dCkgeyBtX3RpbWVvdXQgPSB0aW1lb3V0OyB9CiAgICAg
dm9pZCBzZXRTaG91bGRUaW1lb3V0KGJvb2wgZmxhZykgeyBtX3Nob3VsZFRpbWVvdXQgPSBmbGFn
OyB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4
IDg5ZmE5ZjdhZmExNjM1ZjYxMjVkNDRjOWUxMzI0ZWRjMTVlMjkxMDcuLmE4NzQ0NzVkODBjY2Ew
MzY4ZGI3NDkwZDY5NDMwNDZkZDhhNjVjYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtOTMxLDExICs5MzEsMTEgQEAgc3RhdGljIHZvaWQgc2l6
ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCgpCiAgICAgdW5zaWduZWQgd2lkdGg7CiAgICAgdW5zaWdu
ZWQgaGVpZ2h0OwogICAgIGlmIChpc1NWR1czQ1Rlc3QpIHsKLSAgICAgICAgd2lkdGggPSA0ODA7
Ci0gICAgICAgIGhlaWdodCA9IDM2MDsKKyAgICAgICAgd2lkdGggPSBUZXN0UnVubmVyOjp3M2NT
VkdWaWV3V2lkdGg7CisgICAgICAgIGhlaWdodCA9IFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWln
aHQ7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgd2lkdGggPSBUZXN0UnVubmVyOjptYXhWaWV3V2lk
dGg7Ci0gICAgICAgIGhlaWdodCA9IFRlc3RSdW5uZXI6Om1heFZpZXdIZWlnaHQ7CisgICAgICAg
IHdpZHRoID0gVGVzdFJ1bm5lcjo6dmlld1dpZHRoOworICAgICAgICBoZWlnaHQgPSBUZXN0UnVu
bmVyOjp2aWV3SGVpZ2h0OwogICAgIH0KIAogICAgIDo6U2V0V2luZG93UG9zKHdlYlZpZXdXaW5k
b3csIDAsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIFNXUF9OT01PVkUpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd3gvRHVtcFJlbmRlclRyZWVXeC5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93eC9EdW1wUmVuZGVyVHJlZVd4LmNwcAppbmRleCBjYWRlY2FmOGYwNWZjODFkNTlk
NzBkNTBhNjk3ZTQ5YTMzOTk5YTUwLi40NTgxZmI0Njc1MDFiOTJjMTQ1YzNiMzE0MjZhNjk2NjYw
ZjUyNTVmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9EdW1wUmVuZGVyVHJl
ZVd4LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9EdW1wUmVuZGVyVHJlZVd4LmNw
cApAQCAtNjUsOCArNjUsNiBAQCBzdGF0aWMgV2ViVmlldyogd2ViVmlldzsKIHN0YXRpYyB3eFRp
bWVyKiBpZGxlVGltZXI7CiAKIGNvbnN0IHVuc2lnbmVkIHRpbWVPdXQgPSAxMDsKLWNvbnN0IHVu
c2lnbmVkIG1heFZpZXdIZWlnaHQgPSA2MDA7Ci1jb25zdCB1bnNpZ25lZCBtYXhWaWV3V2lkdGgg
PSA4MDA7CiAKIGNsYXNzIExheW91dFdlYlZpZXdFdmVudEhhbmRsZXIgOiBwdWJsaWMgd3hFdnRI
YW5kbGVyIHsKIApAQCAtMjk0LDcgKzI5Miw3IEBAIGJvb2wgTXlBcHA6Ok9uSW5pdCgpCiAgICAg
V2ViQnJvd3NlclNoZWxsKiB3ZWJGcmFtZSA9IG5ldyBXZWJCcm93c2VyU2hlbGwoX1QoInd4V2Vi
S2l0IER1bXBSZW5kZXJUcmVlIEFwcCIpLCAiYWJvdXQ6YmxhbmsiKTsKICAgICBTZXRUb3BXaW5k
b3cod2ViRnJhbWUpOwogICAgIHdlYlZpZXcgPSB3ZWJGcmFtZS0+d2VidmlldzsKLSAgICB3ZWJW
aWV3LT5TZXRTaXplKHd4U2l6ZShtYXhWaWV3V2lkdGgsIG1heFZpZXdIZWlnaHQpKTsKKyAgICB3
ZWJWaWV3LT5TZXRTaXplKHd4U2l6ZShUZXN0UnVubmVyOjp2aWV3V2lkdGgsIFRlc3RSdW5uZXI6
OnZpZXdIZWlnaHQpKTsKICAgICAKICAgICBpZiAoIWV2ZW50SGFuZGxlcikgewogICAgICAgICBl
dmVudEhhbmRsZXIgPSBuZXcgTGF5b3V0V2ViVmlld0V2ZW50SGFuZGxlcih3ZWJWaWV3KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYmU3NjIwZmRmNzY5
YmRhZGZhYjQxMmY1NjY2YjZhNDA2MzEwZDY0Yy4uMjM1ZDk5NTY1NWMzNjRjOGJkMWNjNDI4OThk
MDkwMjQ0YjY3OGE3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTYzLDYgKzYzLDEyIEBACiAKIG5hbWVzcGFjZSBXVFIgewogCitjb25zdCB1bnNpZ25l
ZCBUZXN0Q29udHJvbGxlcjo6dmlld1dpZHRoID0gODAwOworY29uc3QgdW5zaWduZWQgVGVzdENv
bnRyb2xsZXI6OnZpZXdIZWlnaHQgPSA2MDA7CisKK2NvbnN0IHVuc2lnbmVkIFRlc3RDb250cm9s
bGVyOjp3M2NTVkdWaWV3V2lkdGggPSA0ODA7Citjb25zdCB1bnNpZ25lZCBUZXN0Q29udHJvbGxl
cjo6dzNjU1ZHVmlld0hlaWdodCA9IDM2MDsKKwogLy8gZGVmYXVsdExvbmdUaW1lb3V0ICsgZGVm
YXVsdFNob3J0VGltZW91dCBzaG91bGQgYmUgbGVzcyB0aGFuIDgwLAogLy8gdGhlIGRlZmF1bHQg
dGltZW91dCB2YWx1ZSBvZiB0aGUgdGVzdCBoYXJuZXNzIHNvIHdlIGNhbiBkZXRlY3QgYW4KIC8v
IHVucmVzcG9uc2l2ZSB3ZWIgcHJvY2Vzcy4KQEAgLTU4OSw3ICs1OTUsNyBAQCBib29sIFRlc3RD
b250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICAvLyBFRkwgdXNl
IGEgcmVhbCB3aW5kb3cgd2hpbGUgb3RoZXIgcG9ydHMgc3VjaCBhcyBRdCBkb24ndC4KICAgICAv
LyBJbiBFRkwsIHdlIG5lZWQgdG8gcmVzaXplIHRoZSB3aW5kb3cgdG8gdGhlIG9yaWdpbmFsIHNp
emUgYWZ0ZXIgY2FsbHMgdG8gd2luZG93LnJlc2l6ZVRvLgogICAgIFdLUmVjdCByZWN0ID0gbV9t
YWluV2ViVmlldy0+d2luZG93RnJhbWUoKTsKLSAgICBtX21haW5XZWJWaWV3LT5zZXRXaW5kb3dG
cmFtZShXS1JlY3RNYWtlKHJlY3Qub3JpZ2luLngsIHJlY3Qub3JpZ2luLnksIDgwMCwgNjAwKSk7
CisgICAgbV9tYWluV2ViVmlldy0+c2V0V2luZG93RnJhbWUoV0tSZWN0TWFrZShyZWN0Lm9yaWdp
bi54LCByZWN0Lm9yaWdpbi55LCBUZXN0Q29udHJvbGxlcjo6dmlld1dpZHRoLCBUZXN0Q29udHJv
bGxlcjo6dmlld0hlaWdodCkpOwogI2VuZGlmCiAKICAgICAvLyBSZXNldCBub3RpZmljYXRpb24g
cGVybWlzc2lvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCAw
ZjY1YzlmMWFmNTgxOGNkZDYwZGE3MzExOWM2YzY3NzEwYjA4MzBlLi5kZWUyNjgzNDZkZjljMjhk
NzNjZWJlMzlhODAzNDIwNWRjYTNkNGI3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCkBAIC00Niw2ICs0NiwxMiBAQCBjbGFzcyBUZXN0Q29udHJvbGxlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFRlc3RDb250cm9sbGVyJiBzaGFyZWQoKTsKIAorICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCB2aWV3V2lkdGg7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZpZXdI
ZWlnaHQ7CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdzNjU1ZHVmlld1dpZHRoOworICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdWaWV3SGVpZ2h0OworCiAgICAgVGVzdENvbnRy
b2xsZXIoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSk7CiAgICAgflRlc3RDb250cm9sbGVy
KCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNzg5
ZWFhM2RlNDdkOWFmM2I2MDQ3NWQzODZiMDA4MmY0ZWQzYWJkNS4uMjUzYzdjNzA4ZDA1MjNlMGEy
NzFmMzY3ODVkODhhZDJhMDFmMGQwNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKQEAgLTEyNywyMCArMTI3LDE2IEBAIHZvaWQgVGVzdEludm9jYXRpb246OnNl
dEN1c3RvbVRpbWVvdXQoaW50IHRpbWVvdXQpCiAgICAgbV90aW1lb3V0ID0gdGltZW91dDsKIH0K
IAotc3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NWR1dpZHRoID0gNDgwOwotc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHczY1NWR0hlaWdodCA9IDM2MDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBub3Jt
YWxXaWR0aCA9IDgwMDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBub3JtYWxIZWlnaHQgPSA2MDA7
Ci0KIHN0YXRpYyB2b2lkIHNpemVXZWJWaWV3Rm9yQ3VycmVudFRlc3QoY29uc3QgY2hhciogcGF0
aE9yVVJMKQogewogICAgIGJvb2wgaXNTVkdXM0NUZXN0ID0gc3Ryc3RyKHBhdGhPclVSTCwgInN2
Zy9XM0MtU1ZHLTEuMSIpIHx8IHN0cnN0cihwYXRoT3JVUkwsICJzdmdcXFczQy1TVkctMS4xIik7
CiAKICAgICBpZiAoaXNTVkdXM0NUZXN0KQotICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVk
KCkubWFpbldlYlZpZXcoKS0+cmVzaXplVG8odzNjU1ZHV2lkdGgsIHczY1NWR0hlaWdodCk7Cisg
ICAgICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5tYWluV2ViVmlldygpLT5yZXNpemVUbyhU
ZXN0Q29udHJvbGxlcjo6dzNjU1ZHVmlld1dpZHRoLCBUZXN0Q29udHJvbGxlcjo6dzNjU1ZHVmll
d0hlaWdodCk7CiAgICAgZWxzZQotICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubWFp
bldlYlZpZXcoKS0+cmVzaXplVG8obm9ybWFsV2lkdGgsIG5vcm1hbEhlaWdodCk7CisgICAgICAg
IFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5tYWluV2ViVmlldygpLT5yZXNpemVUbyhUZXN0Q29u
dHJvbGxlcjo6dmlld1dpZHRoLCBUZXN0Q29udHJvbGxlcjo6dmlld0hlaWdodCk7CiB9CisKIHN0
YXRpYyBib29sIHNob3VsZExvZ0ZyYW1lTG9hZERlbGVnYXRlcyhjb25zdCBjaGFyKiBwYXRoT3JV
UkwpCiB7CiAgICAgcmV0dXJuIHN0cnN0cihwYXRoT3JVUkwsICJsb2FkaW5nLyIpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IGI1
NWQzMmMwYTU4NmIyMDllZjU5MGIxYzMxZTZiMDliMDQzMGQwMjkuLjU1ZGVhM2FjYzk5NjdhYTMx
MjQ3OTQ1YjBjZDU5MTk5MDRjNTZmN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAgLTEyNCw3ICsxMjQsNyBAQCBQbGF0Zm9ybVdl
YlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3Jv
dXBSZWYgcGFnZUdybwogICAgIFdLVHlwZVJlZiB1c2VUaWxlZERyYXdpbmdWYWx1ZSA9IG9wdGlv
bnMgPyBXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG9wdGlvbnMsIHVzZVRpbGVkRHJhd2luZ0tl
eS5nZXQoKSkgOiBOVUxMOwogICAgIGJvb2wgdXNlVGlsZWREcmF3aW5nID0gdXNlVGlsZWREcmF3
aW5nVmFsdWUgJiYgV0tCb29sZWFuR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPih1
c2VUaWxlZERyYXdpbmdWYWx1ZSkpOwogCi0gICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKTsKKyAgICBOU1JlY3QgcmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgVGVzdENv
bnRyb2xsZXI6OnZpZXdXaWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaHQpOwogICAgIG1f
dmlldyA9IFtbVGVzdFJ1bm5lcldLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGNvbnRl
eHRSZWY6Y29udGV4dFJlZiBwYWdlR3JvdXBSZWY6cGFnZUdyb3VwUmVmIHVzZVRpbGVkRHJhd2lu
Zzp1c2VUaWxlZERyYXdpbmddOwogICAgIFttX3ZpZXcgc2V0V2luZG93T2NjbHVzaW9uRGV0ZWN0
aW9uRW5hYmxlZDpOT107CiAKQEAgLTE0MSw2ICsxNDEsMTAgQEAgUGxhdGZvcm1XZWJWaWV3OjpQ
bGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBh
Z2VHcm8KIAogdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVkIHdpZHRoLCB1
bnNpZ25lZCBoZWlnaHQpCiB7CisgICAgTlNSZWN0IHdpbmRvd0ZyYW1lID0gW21fd2luZG93IGZy
YW1lXTsKKyAgICB3aW5kb3dGcmFtZS5zaXplLndpZHRoID0gd2lkdGg7CisgICAgd2luZG93RnJh
bWUuc2l6ZS5oZWlnaHQgPSBoZWlnaHQ7CisgICAgW21fd2luZG93IHNldEZyYW1lOndpbmRvd0Zy
YW1lIGRpc3BsYXk6WUVTXTsKICAgICBbbV92aWV3IHNldEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
d2lkdGgsIGhlaWdodCldOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199512</attachid>
            <date>2013-04-24 14:07:00 -0700</date>
            <delta_ts>2013-04-24 14:37:47 -0700</delta_ts>
            <desc>Patch for EWS again</desc>
            <filename>bug-114218-20130424140625.patch</filename>
            <type>text/plain</type>
            <size>18962</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MDUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTM5NDMwNWI3Yjg3ZTczOGQzMmUwYmEyNDc0OTNlZWVi
ZDQyMTg1Yi4uZGJkNTkzODhhMDc0YmZmZjc1NTBmNzljZThmNWU3YzZjZGY4ODI2NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUw
IEBACisyMDEzLTA0LTI0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFBpeGVsIHRlc3RzIGluIFNWRyBhcmUgYWxsIGJyb2tlbiBpbiBXSzIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDIxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorICAgICAgICAKKyAgICAgICAgV2luZG93IHNu
YXBzaG90cyBpbiBXZWJLaXRUZXN0UnVubmVyIG9uIE1hYyBhcmUgd2luZG93LXNpemVkCisgICAg
ICAgICg4MDB4NjAwKSwgd2hpY2ggaXMgd3JvbmcgZm9yIHRoZSBXM0MgU1ZHIHRlc3RzIHRoYXQg
cmVxdWlyZSBhCisgICAgICAgIDQ4MHgzNjAgc25hcHNob3QuCisgICAgICAgIAorICAgICAgICBG
aXggYnkgcmVzaXppbmcgdGhlIHdpbmRvdywgYXMgd2VsbCBhcyB0aGUgd2ViIHZpZXcgaW4KKyAg
ICAgICAgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbygpIHNvIHRoYXQgd2luZG93IHNuYXBzaG90
cyBhcmUgY29ycmVjdGx5CisgICAgICAgIHNpemVkLgorICAgICAgICAKKyAgICAgICAgQWxzbyBk
byBzb21lIGRyaXZlLWJ5IGNsZWFudXAgb2YgdGhlIHdpbmRvdyBzaXplIGNvbnN0YW50cyBpbiBi
b3RoCisgICAgICAgIERSVCBhbmQgV1RSIHRvIHJlbW92ZSBtYWdpYyBudW1iZXJzLCBhbmQgbWFr
ZSB0aGUgY29kZSBtb3JlIHNpbWlsYXIuCisgICAgICAgIAorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U2hvdWxkUGFpbnRC
cm9rZW5JbWFnZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHdlYkluc3Bl
Y3RvclNob3dXaW5kb3cpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbToKKyAgICAgICAgKGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3cpOgorICAg
ICAgICAoc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L1BpeGVsRHVtcFN1cHBvcnRNYWMubW06CisgICAgICAgIChjcmVhdGVQYWdlZEJpdG1hcENvbnRl
eHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlOjpvcGVuKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVy
UXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChz
aXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9E
dW1wUmVuZGVyVHJlZVd4LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAg
ICAgICAgKFdUUjo6c2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tOgorICAgICAgICAoV1RSOjpQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2Vi
Vmlldzo6cmVzaXplVG8pOgorCiAyMDEzLTA0LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVc2Ugc3RhbXAgZmlsZXMgZm9yIGdl
bmVyYXRlLWZvcndhcmRpbmctaGVhZGVycyBtYWtlZmlsZSBydWxlcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcAppbmRleCBkNjAwNDUyOWMyMTZhMTE4ODQyNzk5YTU2NzI5M2JlMzlmNGY4
NjQ0Li5jZmMxYjUwOWEyM2IzNTRlNTE1N2RiMjBhNGMxMzIwZjQwMDY4YjdjIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtNDQsNiArNDQsMTIgQEAKICNpbmNsdWRlIDx3dGYv
T3duQXJyYXlQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK2NvbnN0IHVuc2lnbmVk
IFRlc3RSdW5uZXI6OnZpZXdXaWR0aCA9IDgwMDsKK2NvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6
OnZpZXdIZWlnaHQgPSA2MDA7CisKK2NvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6OnczY1NWR1Zp
ZXdXaWR0aCA9IDQ4MDsKK2NvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWln
aHQgPSAzNjA7CisKIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHRl
c3RQYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKICAgICA6
IG1fZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YShmYWxzZSkKICAgICAs
IG1fZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcyhmYWxzZSkKQEAgLTIyMzYs
NiArMjI0MiwzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkUGFpbnRCcm9rZW5JbWFnZShi
b29sIHNob3VsZFBhaW50QnJva2VuSW1hZ2UpCiB7CiAgICAgbV9zaG91bGRQYWludEJyb2tlbklt
YWdlID0gc2hvdWxkUGFpbnRCcm9rZW5JbWFnZTsKIH0KLQotY29uc3QgdW5zaWduZWQgVGVzdFJ1
bm5lcjo6bWF4Vmlld1dpZHRoID0gODAwOwotY29uc3QgdW5zaWduZWQgVGVzdFJ1bm5lcjo6bWF4
Vmlld0hlaWdodCA9IDYwMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCBmMGE5YjZh
NWFmYjJjMjdhMTUxMDUwZmY0NTNkMTI0ODAwYjdlOWMxLi5mNTEzMzkyMmI0M2I0NDk2OWQzNGU2
N2Q3ZTBmODkzNzZkNWM2M2JmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC00MSw2
ICs0MSwxMyBAQAogY2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBSZWZDb3VudGVkPFRlc3RSdW5u
ZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXN0UnVubmVyPiBjcmVhdGUo
Y29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBl
Y3RlZFBpeGVsSGFzaCk7CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmlld1dpZHRoOwor
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2aWV3SGVpZ2h0OworCisgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHczY1NWR1ZpZXdXaWR0aDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdzNj
U1ZHVmlld0hlaWdodDsKKwogICAgIH5UZXN0UnVubmVyKCk7CiAKICAgICB2b2lkIG1ha2VXaW5k
b3dPYmplY3QoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiB3aW5kb3dPYmplY3QsIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbik7CkBAIC0zMzAsOSArMzM3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
U2hvdWxkUGFpbnRCcm9rZW5JbWFnZShib29sKTsKICAgICBib29sIHNob3VsZFBhaW50QnJva2Vu
SW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2U7IH0KIAotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhWaWV3V2lkdGg7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG1heFZpZXdIZWlnaHQ7Ci0KICAgICB2b2lkIHNldFRleHREaXJlY3Rpb24oSlNTdHJp
bmdSZWYpOwogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB0aXRsZVRleHREaXJlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBtX3RpdGxlVGV4dERpcmVjdGlvbjsgfQogICAgIHZvaWQgc2V0VGl0bGVUZXh0
RGlyZWN0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkaXJlY3Rpb24pIHsgbV90aXRsZVRleHREaXJl
Y3Rpb24gPSBkaXJlY3Rpb247IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRl
clRyZWUuY3BwCmluZGV4IDZkZTJkNGE0NDViZjBiOWZhZTRmNDA3MjJlZmRmMmUzZGY0ODU5NGQu
LjE2YzAxY2E2Mzc0M2I4MGI4ZjQ3YjBhMWQxYjkzZTQ2NmMyYjE3Y2UgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMjgwLDggKzI4MCw4IEBAIHN0
YXRpYyB2b2lkIHJ1blRlc3QoY29uc3QgY2hhciogaW5wdXRMaW5lKQogICAgIFdvcmtRdWV1ZTo6
c2hhcmVkKCktPnNldEZyb3plbihmYWxzZSk7CiAKICAgICBjb25zdCBib29sIGlzU1ZHVzNDVGVz
dCA9IHRlc3RVUkwuY29udGFpbnMoInN2Zy9XM0MtU1ZHLTEuMSIpOwotICAgIGNvbnN0IGludCB3
aWR0aCA9IGlzU1ZHVzNDVGVzdCA/IDQ4MCA6IFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aDsKLSAg
ICBjb25zdCBpbnQgaGVpZ2h0ID0gaXNTVkdXM0NUZXN0ID8gMzYwIDogVGVzdFJ1bm5lcjo6bWF4
Vmlld0hlaWdodDsKKyAgICBjb25zdCBpbnQgd2lkdGggPSBpc1NWR1czQ1Rlc3QgPyBUZXN0UnVu
bmVyOjp3M2NTVkdWaWV3V2lkdGggOiBUZXN0UnVubmVyOjp2aWV3V2lkdGg7CisgICAgY29uc3Qg
aW50IGhlaWdodCA9IGlzU1ZHVzNDVGVzdCA/IFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWlnaHQg
OiBUZXN0UnVubmVyOjp2aWV3SGVpZ2h0OwogICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShicm93c2Vy
LT5tYWluVmlldygpLCB3aWR0aCwgaGVpZ2h0KTsKIAogICAgIGlmIChwcmV2VGVzdEJGSXRlbSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9t
ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3Bw
CmluZGV4IDAzYmYwMjUyMTJiZjQ0YzFmMWNjZWRkZmEyMWE2YmRkMWNkOGJlNTguLjkxMjgwYzJi
OGViZWE2ZDhiYjQ0NzcyY2FmOTljYzQzNWQ1ZjQ2YTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBA
IEV2YXNfT2JqZWN0KiBEdW1wUmVuZGVyVHJlZUNocm9tZTo6Y3JlYXRlSW5zcGVjdG9yVmlldygp
CiAgICAgRXZhc19PYmplY3QqIG1haW5GcmFtZSA9IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KGlu
c3BlY3RvclZpZXcpOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJh
bWUsICJsb2FkLGZpbmlzaGVkIiwgb25JbnNwZWN0b3JGcmFtZUxvYWRGaW5pc2hlZCwgMCk7CiAK
LSAgICBldmFzX29iamVjdF9yZXNpemUoaW5zcGVjdG9yVmlldywgVGVzdFJ1bm5lcjo6bWF4Vmll
d1dpZHRoLCBUZXN0UnVubmVyOjptYXhWaWV3SGVpZ2h0KTsKKyAgICBldmFzX29iamVjdF9yZXNp
emUoaW5zcGVjdG9yVmlldywgVGVzdFJ1bm5lcjo6dmlld1dpZHRoLCBUZXN0UnVubmVyOjp2aWV3
SGVpZ2h0KTsKICAgICBldmFzX29iamVjdF9zaG93KGluc3BlY3RvclZpZXcpOwogICAgIGV2YXNf
b2JqZWN0X2ZvY3VzX3NldChpbnNwZWN0b3JWaWV3LCB0cnVlKTsKIApAQCAtMjEyLDcgKzIxMiw3
IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVDaHJvbWU6OmluaXRpYWxpemUoKQogCiAgICAgZXZhc19v
YmplY3RfbmFtZV9zZXQobV9tYWluVmlldywgIm1fbWFpblZpZXciKTsKICAgICBldmFzX29iamVj
dF9tb3ZlKG1fbWFpblZpZXcsIDAsIDApOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShtX21haW5W
aWV3LCA4MDAsIDYwMCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKG1fbWFpblZpZXcsIFRlc3RS
dW5uZXI6OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCk7CiAgICAgZXZhc19vYmpl
Y3RfbGF5ZXJfc2V0KG1fbWFpblZpZXcsIEVWQVNfTEFZRVJfTUFYKTsKICAgICBldmFzX29iamVj
dF9zaG93KG1fbWFpblZpZXcpOwogICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChtX21haW5WaWV3
LCBFSU5BX1RSVUUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBS
ZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5j
cHAKaW5kZXggN2YxYWNkMzllMzk5ZWFmYjkwZDFiMzY4NzY2ZDg4N2NhMTI4M2QzOC4uNTM1Mjg2
M2U4YzFkZGE1ZWU3NGFmMjlhODQyNjczMjI1OWU4OTBmNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC03NDcsOCArNzQ3LDggQEAgc3RhdGljIHZv
aWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKICAgICBib29sIGlzU1ZHVzNDVGVz
dCA9ICh0ZXN0VVJMLmZpbmQoInN2Zy9XM0MtU1ZHLTEuMSIpICE9IHN0cmluZzo6bnBvcyk7CiAg
ICAgR3RrQWxsb2NhdGlvbiBzaXplOwogICAgIHNpemUueCA9IHNpemUueSA9IDA7Ci0gICAgc2l6
ZS53aWR0aCA9IGlzU1ZHVzNDVGVzdCA/IDQ4MCA6IFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aDsK
LSAgICBzaXplLmhlaWdodCA9IGlzU1ZHVzNDVGVzdCA/IDM2MCA6IFRlc3RSdW5uZXI6Om1heFZp
ZXdIZWlnaHQ7CisgICAgc2l6ZS53aWR0aCA9IGlzU1ZHVzNDVGVzdCA/IFRlc3RSdW5uZXI6Oncz
Y1NWR1ZpZXdXaWR0aCA6IFRlc3RSdW5uZXI6OnZpZXdXaWR0aDsKKyAgICBzaXplLmhlaWdodCA9
IGlzU1ZHVzNDVGVzdCA/IFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWlnaHQgOiBUZXN0UnVubmVy
Ojp2aWV3SGVpZ2h0OwogICAgIGd0a193aW5kb3dfcmVzaXplKEdUS19XSU5ET1cod2luZG93KSwg
c2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpOwogICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShj
b250YWluZXIsICZzaXplKTsKIApAQCAtMTA2Nyw3ICsxMDY3LDcgQEAgc3RhdGljIFdlYktpdFdl
YlZpZXcqIHdlYlZpZXdDcmVhdGUoV2ViS2l0V2ViVmlldyosIFdlYktpdFdlYkZyYW1lKik7CiAK
IHN0YXRpYyBnYm9vbGVhbiB3ZWJJbnNwZWN0b3JTaG93V2luZG93KFdlYktpdFdlYkluc3BlY3Rv
ciosIGdwb2ludGVyIGRhdGEpCiB7Ci0gICAgZ3RrX3dpbmRvd19zZXRfZGVmYXVsdF9zaXplKEdU
S19XSU5ET1cod2ViSW5zcGVjdG9yV2luZG93KSwgODAwLCA2MDApOworICAgIGd0a193aW5kb3df
c2V0X2RlZmF1bHRfc2l6ZShHVEtfV0lORE9XKHdlYkluc3BlY3RvcldpbmRvdyksIFRlc3RSdW5u
ZXI6OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCk7CiAgICAgZ3RrX3dpZGdldF9z
aG93X2FsbCh3ZWJJbnNwZWN0b3JXaW5kb3cpOwogICAgIHJldHVybiBUUlVFOwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDBhOGNmZTUxMzRlNTZk
NGZkYjdhNWI1YjU4ZmU1YTgwNWE4MzhhMzcuLjNiNTNhMjk3ZWU4MDllZTQ2MmY4MDcwZjE0MGQ0
YjFmYWRmZGFmNmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KQEAgLTUyMiw3ICs1MjIsNyBAQCBzdGF0aWMgdm9pZCByZWdpc3Rlck1vY2tTY3JvbGxiYXJz
KCkKIAogV2ViVmlldyAqY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdygpCiB7Ci0gICAg
TlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aCwg
VGVzdFJ1bm5lcjo6bWF4Vmlld0hlaWdodCk7CisgICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0
KDAsIDAsIFRlc3RSdW5uZXI6OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCk7CiAg
ICAgV2ViVmlldyAqd2ViVmlldyA9IFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0
IGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOkAib3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZSJdOwog
ICAgICAgICAKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGVdOwpAQCAtMTEw
NSw5ICsxMTA1LDkgQEAgc3RhdGljIHZvaWQgc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCgpCiAg
ICAgLy8gVzNDIFNWRyB0ZXN0cyBleHBlY3QgdG8gYmUgNDgweDM2MAogICAgIGJvb2wgaXNTVkdX
M0NUZXN0ID0gKGdUZXN0UnVubmVyLT50ZXN0UGF0aE9yVVJMKCkuZmluZCgic3ZnL1czQy1TVkct
MS4xIikgIT0gc3RyaW5nOjpucG9zKTsKICAgICBpZiAoaXNTVkdXM0NUZXN0KQotICAgICAgICBb
W21haW5GcmFtZSB3ZWJWaWV3XSBzZXRGcmFtZVNpemU6TlNNYWtlU2l6ZSg0ODAsIDM2MCldOwor
ICAgICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRGcmFtZVNpemU6TlNNYWtlU2l6ZShUZXN0
UnVubmVyOjp3M2NTVkdWaWV3V2lkdGgsIFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWlnaHQpXTsK
ICAgICBlbHNlCi0gICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldEZyYW1lU2l6ZTpOU01h
a2VTaXplKFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6bWF4Vmlld0hlaWdo
dCldOworICAgICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRGcmFtZVNpemU6TlNNYWtlU2l6
ZShUZXN0UnVubmVyOjp2aWV3V2lkdGgsIFRlc3RSdW5uZXI6OnZpZXdIZWlnaHQpXTsKIH0KIAog
c3RhdGljIGNvbnN0IGNoYXIgKm1ldGhvZE5hbWVTdHJpbmdGb3JGYWlsZWRUZXN0KCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZU1hYy5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmgKaW5kZXggZTY4OThhOWI5
NWNiY2RlNzk2MDk5MzUwYjliYjk4NDJmMmE1NjY3My4uY2U1MGU1ZjIwZjQxYjVkNTBiMjQyYThj
ZmM5ZjY0OGJkZTQ3ZDhhZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlTWFjLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlTWFjLmgKQEAgLTU4LDkgKzU4LDYgQEAgZXh0ZXJuIE5hdmlnYXRpb25Db250cm9sbGVy
KiBnTmF2aWdhdGlvbkNvbnRyb2xsZXI7CiBleHRlcm4gUG9saWN5RGVsZWdhdGUqIHBvbGljeURl
bGVnYXRlOwogZXh0ZXJuIFN0b3JhZ2VUcmFja2VyRGVsZWdhdGUqIHN0b3JhZ2VEZWxlZ2F0ZTsK
IAotZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIG1heFZpZXdIZWlnaHQ7Ci1leHRlcm4gY29uc3QgdW5z
aWduZWQgbWF4Vmlld1dpZHRoOwotCiB2b2lkIHNldFdhaXRUb0R1bXBXYXRjaGRvZyhDRlJ1bkxv
b3BUaW1lclJlZik7CiBib29sIHNob3VsZFNldFdhaXRUb0R1bXBXYXRjaGRvZygpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCmluZGV4IDBj
ZjljNGExOWIzOGFhYTZhMmU1ZGJhNGZjOTc4ZWEwZTE5YTI4YWMuLmY0Y2M3YzE5ODQ5OWFlNjBm
OWVmY2M4ODBkZjU3ODljZGJlNmVkYmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCkBAIC0xODQsOCArMTg0LDggQEAgUGFzc1JlZlB0cjxC
aXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVl
biwgYm9vbCBpbmMKIAogUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVQYWdlZEJpdG1h
cENvbnRleHQoKQogewotICAgIGludCBwYWdlV2lkdGhJblBpeGVscyA9IFRlc3RSdW5uZXI6Om1h
eFZpZXdXaWR0aDsKLSAgICBpbnQgcGFnZUhlaWdodEluUGl4ZWxzID0gVGVzdFJ1bm5lcjo6bWF4
Vmlld0hlaWdodDsKKyAgICBpbnQgcGFnZVdpZHRoSW5QaXhlbHMgPSBUZXN0UnVubmVyOjp2aWV3
V2lkdGg7CisgICAgaW50IHBhZ2VIZWlnaHRJblBpeGVscyA9IFRlc3RSdW5uZXI6OnZpZXdIZWln
aHQ7CiAgICAgaW50IG51bWJlck9mUGFnZXMgPSBbbWFpbkZyYW1lIG51bWJlck9mUGFnZXNXaXRo
UGFnZVdpZHRoOnBhZ2VXaWR0aEluUGl4ZWxzIHBhZ2VIZWlnaHQ6cGFnZUhlaWdodEluUGl4ZWxz
XTsKICAgICBzaXplX3Qgcm93Qnl0ZXMgPSAwOwogICAgIHZvaWQqIGJ1ZmZlciA9IDA7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDJmYjg3ODI2
N2RjNmYwNjhiM2NmYWZkZDhlZTU0NDFmMDg1ZmVmNDUuLmMwYzI4NTM1MzcyMGNkZWYzNTVjMTc2
ODgwN2JiNjhjMjE2ZWJjNDMgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1
bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5k
ZXJUcmVlUXQuY3BwCkBAIC00MjcsNyArNDI3LDcgQEAgRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5k
ZXJUcmVlKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6d2ViUGFnZVNldEdyb3VwTmFt
ZShwYWdlQWRhcHRlcigpLCAib3JnLndlYmtpdC5xdC5EdW1wUmVuZGVyVHJlZSIpOwogCiAgICAg
bV9tYWluVmlldy0+c2V0Q29udGV4dE1lbnVQb2xpY3koUXQ6Ok5vQ29udGV4dE1lbnUpOwotICAg
IG1fbWFpblZpZXctPnJlc2l6ZShRU2l6ZShUZXN0UnVubmVyUXQ6Om1heFZpZXdXaWR0aCwgVGVz
dFJ1bm5lclF0OjptYXhWaWV3SGVpZ2h0KSk7CisgICAgbV9tYWluVmlldy0+cmVzaXplKFFTaXpl
KFRlc3RSdW5uZXI6OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCkpOwogCiAgICAg
Ly8gY2xlYW4gdXAgY2FjaGUgYnkgcmVzZXR0aW5nIHF1b3RhLgogICAgIHFpbnQ2NCBxdW90YSA9
IHdlYlBhZ2UoKS0+c2V0dGluZ3MoKS0+b2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YSgp
OwpAQCAtNjI1LDggKzYyNSw4IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6Om9wZW4oY29uc3QgUVVy
bCYgdXJsKQogCiAgICAgLy8gVzNDIFNWRyB0ZXN0cyBleHBlY3QgdG8gYmUgNDgweDM2MAogICAg
IGJvb2wgaXNXM0NUZXN0ID0gdXJsLnRvU3RyaW5nKCkuY29udGFpbnMoInN2Zy9XM0MtU1ZHLTEu
MSIpOwotICAgIGludCB3aWR0aCA9IGlzVzNDVGVzdCA/IDQ4MCA6IFRlc3RSdW5uZXJRdDo6bWF4
Vmlld1dpZHRoOwotICAgIGludCBoZWlnaHQgPSBpc1czQ1Rlc3QgPyAzNjAgOiBUZXN0UnVubmVy
UXQ6Om1heFZpZXdIZWlnaHQ7CisgICAgaW50IHdpZHRoID0gaXNXM0NUZXN0ID8gVGVzdFJ1bm5l
cjo6dzNjU1ZHVmlld1dpZHRoIDogVGVzdFJ1bm5lcjo6dmlld1dpZHRoOworICAgIGludCBoZWln
aHQgPSBpc1czQ1Rlc3QgPyBUZXN0UnVubmVyOjp3M2NTVkdWaWV3SGVpZ2h0IDogVGVzdFJ1bm5l
cjo6dmlld0hlaWdodDsKICAgICBtX21haW5WaWV3LT5yZXNpemUoUVNpemUod2lkdGgsIGhlaWdo
dCkpOwogICAgIG1fcGFnZS0+c2V0UHJlZmVycmVkQ29udGVudHNTaXplKFFTaXplKCkpOwogICAg
IG1fcGFnZS0+c2V0Vmlld3BvcnRTaXplKFFTaXplKHdpZHRoLCBoZWlnaHQpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IGEzYjUyMjJjNTE3ZTg3ZWYzOTcx
MDg3YmVlMGFlNWQ1NjJjZWUxYjkuLmM5Yjg5MWVjNjIwNjJjNTk4YjU1MzAxNWEzMTViY2U1NmNm
Yjc0MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcApAQCAtNzc0
LDkgKzc3NCw2IEBAIHZvaWQgVGVzdFJ1bm5lclF0OjpzZXRBdWRpb0RhdGEoY29uc3QgUUJ5dGVB
cnJheSYgYXVkaW9EYXRhKQogICAgIG1fYXVkaW9EdW1wID0gdHJ1ZTsKIH0KIAotY29uc3QgdW5z
aWduZWQgVGVzdFJ1bm5lclF0OjptYXhWaWV3V2lkdGggPSA4MDA7Ci1jb25zdCB1bnNpZ25lZCBU
ZXN0UnVubmVyUXQ6Om1heFZpZXdIZWlnaHQgPSA2MDA7Ci0KIC8vIC0tLSBKU0MgQyBBUEkgc3R1
YnMKIAogdm9pZCBUZXN0UnVubmVyOjphZGREaXNhbGxvd2VkVVJMKEpTU3RyaW5nUmVmIHVybCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKaW5kZXggY2FmODUyMDZlYzA5ZDFh
Y2RjM2Y5MzMzMTUyYTJjMDYwZmIzNzYwNi4uN2RjZTFlNGZhNjA3ZWQxNjU2YjI2NjNhMmY5ZjA3
ZGYyYmE1ZjZkNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5l
clF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKQEAgLTY4
LDkgKzY4LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXNldCgpOwogCi0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGludCBtYXhWaWV3V2lkdGg7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGludCBtYXhWaWV3SGVpZ2h0OwotCiAgICAgdm9pZCBzZXRUaW1lb3V0KGludCB0aW1lb3V0KSB7
IG1fdGltZW91dCA9IHRpbWVvdXQ7IH0KICAgICB2b2lkIHNldFNob3VsZFRpbWVvdXQoYm9vbCBm
bGFnKSB7IG1fc2hvdWxkVGltZW91dCA9IGZsYWc7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggODlmYTlmN2FmYTE2MzVmNjEyNWQ0NGM5ZTEz
MjRlZGMxNWUyOTEwNy4uYTg3NDQ3NWQ4MGNjYTAzNjhkYjc0OTBkNjk0MzA0NmRkOGE2NWNiYSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC05MzEs
MTEgKzkzMSwxMSBAQCBzdGF0aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KCkKICAg
ICB1bnNpZ25lZCB3aWR0aDsKICAgICB1bnNpZ25lZCBoZWlnaHQ7CiAgICAgaWYgKGlzU1ZHVzND
VGVzdCkgewotICAgICAgICB3aWR0aCA9IDQ4MDsKLSAgICAgICAgaGVpZ2h0ID0gMzYwOworICAg
ICAgICB3aWR0aCA9IFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdXaWR0aDsKKyAgICAgICAgaGVpZ2h0
ID0gVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld0hlaWdodDsKICAgICB9IGVsc2UgewotICAgICAgICB3
aWR0aCA9IFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aDsKLSAgICAgICAgaGVpZ2h0ID0gVGVzdFJ1
bm5lcjo6bWF4Vmlld0hlaWdodDsKKyAgICAgICAgd2lkdGggPSBUZXN0UnVubmVyOjp2aWV3V2lk
dGg7CisgICAgICAgIGhlaWdodCA9IFRlc3RSdW5uZXI6OnZpZXdIZWlnaHQ7CiAgICAgfQogCiAg
ICAgOjpTZXRXaW5kb3dQb3Mod2ViVmlld1dpbmRvdywgMCwgMCwgMCwgd2lkdGgsIGhlaWdodCwg
U1dQX05PTU9WRSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGEzMWI0OGU4OTg5ODUwMGQ4NzI5ZDBjNzNhNGIyNjQxMmZhYmIxNzAuLjRlNjMzMmQ0YWZj
N2RhYjFhMDRiMmZkYmE3MWRkMWJlN2Q1YWY4MGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC02Myw2ICs2MywxMiBAQAogCiBuYW1lc3BhY2UgV1RSIHsK
IAorY29uc3QgdW5zaWduZWQgVGVzdENvbnRyb2xsZXI6OnZpZXdXaWR0aCA9IDgwMDsKK2NvbnN0
IHVuc2lnbmVkIFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0ID0gNjAwOworCitjb25zdCB1bnNp
Z25lZCBUZXN0Q29udHJvbGxlcjo6dzNjU1ZHVmlld1dpZHRoID0gNDgwOworY29uc3QgdW5zaWdu
ZWQgVGVzdENvbnRyb2xsZXI6OnczY1NWR1ZpZXdIZWlnaHQgPSAzNjA7CisKIC8vIGRlZmF1bHRM
b25nVGltZW91dCArIGRlZmF1bHRTaG9ydFRpbWVvdXQgc2hvdWxkIGJlIGxlc3MgdGhhbiA4MCwK
IC8vIHRoZSBkZWZhdWx0IHRpbWVvdXQgdmFsdWUgb2YgdGhlIHRlc3QgaGFybmVzcyBzbyB3ZSBj
YW4gZGV0ZWN0IGFuCiAvLyB1bnJlc3BvbnNpdmUgd2ViIHByb2Nlc3MuCkBAIC01ODksNyArNTk1
LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygp
CiAgICAgLy8gRUZMIHVzZSBhIHJlYWwgd2luZG93IHdoaWxlIG90aGVyIHBvcnRzIHN1Y2ggYXMg
UXQgZG9uJ3QuCiAgICAgLy8gSW4gRUZMLCB3ZSBuZWVkIHRvIHJlc2l6ZSB0aGUgd2luZG93IHRv
IHRoZSBvcmlnaW5hbCBzaXplIGFmdGVyIGNhbGxzIHRvIHdpbmRvdy5yZXNpemVUby4KICAgICBX
S1JlY3QgcmVjdCA9IG1fbWFpbldlYlZpZXctPndpbmRvd0ZyYW1lKCk7Ci0gICAgbV9tYWluV2Vi
Vmlldy0+c2V0V2luZG93RnJhbWUoV0tSZWN0TWFrZShyZWN0Lm9yaWdpbi54LCByZWN0Lm9yaWdp
bi55LCA4MDAsIDYwMCkpOworICAgIG1fbWFpbldlYlZpZXctPnNldFdpbmRvd0ZyYW1lKFdLUmVj
dE1ha2UocmVjdC5vcmlnaW4ueCwgcmVjdC5vcmlnaW4ueSwgVGVzdENvbnRyb2xsZXI6OnZpZXdX
aWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaHQpKTsKICNlbmRpZgogCiAgICAgLy8gUmVz
ZXQgbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgKaW5kZXggMGY2NWM5ZjFhZjU4MThjZGQ2MGRhNzMxMTljNmM2NzcxMGIwODMwZS4u
ZGVlMjY4MzQ2ZGY5YzI4ZDczY2ViZTM5YTgwMzQyMDVkY2EzZDRiNyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNDYsNiArNDYsMTIgQEAgY2xhc3MgVGVzdENv
bnRyb2xsZXIgewogcHVibGljOgogICAgIHN0YXRpYyBUZXN0Q29udHJvbGxlciYgc2hhcmVkKCk7
CiAKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmlld1dpZHRoOworICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCB2aWV3SGVpZ2h0OworCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NW
R1ZpZXdXaWR0aDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdzNjU1ZHVmlld0hlaWdodDsK
KwogICAgIFRlc3RDb250cm9sbGVyKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pOwogICAg
IH5UZXN0Q29udHJvbGxlcigpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCmluZGV4IDc4OWVhYTNkZTQ3ZDlhZjNiNjA0NzVkMzg2YjAwODJmNGVkM2FiZDUuLjI1
M2M3YzcwOGQwNTIzZTBhMjcxZjM2Nzg1ZDg4YWQyYTAxZjBkMDYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMjcsMjAgKzEyNywxNiBAQCB2b2lkIFRl
c3RJbnZvY2F0aW9uOjpzZXRDdXN0b21UaW1lb3V0KGludCB0aW1lb3V0KQogICAgIG1fdGltZW91
dCA9IHRpbWVvdXQ7CiB9CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdXaWR0aCA9IDQ4
MDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdIZWlnaHQgPSAzNjA7Ci1zdGF0aWMgY29u
c3QgdW5zaWduZWQgbm9ybWFsV2lkdGggPSA4MDA7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgbm9y
bWFsSGVpZ2h0ID0gNjAwOwotCiBzdGF0aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0
KGNvbnN0IGNoYXIqIHBhdGhPclVSTCkKIHsKICAgICBib29sIGlzU1ZHVzNDVGVzdCA9IHN0cnN0
cihwYXRoT3JVUkwsICJzdmcvVzNDLVNWRy0xLjEiKSB8fCBzdHJzdHIocGF0aE9yVVJMLCAic3Zn
XFxXM0MtU1ZHLTEuMSIpOwogCiAgICAgaWYgKGlzU1ZHVzNDVGVzdCkKLSAgICAgICAgVGVzdENv
bnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnJlc2l6ZVRvKHczY1NWR1dpZHRoLCB3
M2NTVkdIZWlnaHQpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubWFpbldlYlZp
ZXcoKS0+cmVzaXplVG8oVGVzdENvbnRyb2xsZXI6OnczY1NWR1ZpZXdXaWR0aCwgVGVzdENvbnRy
b2xsZXI6OnczY1NWR1ZpZXdIZWlnaHQpOwogICAgIGVsc2UKLSAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnJlc2l6ZVRvKG5vcm1hbFdpZHRoLCBub3JtYWxI
ZWlnaHQpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+
cmVzaXplVG8oVGVzdENvbnRyb2xsZXI6OnZpZXdXaWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdI
ZWlnaHQpOwogfQorCiBzdGF0aWMgYm9vbCBzaG91bGRMb2dGcmFtZUxvYWREZWxlZ2F0ZXMoY29u
c3QgY2hhciogcGF0aE9yVVJMKQogewogICAgIHJldHVybiBzdHJzdHIocGF0aE9yVVJMLCAibG9h
ZGluZy8iKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3Jt
V2ViVmlld01hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmll
d01hYy5tbQppbmRleCBiNTVkMzJjMGE1ODZiMjA5ZWY1OTBiMWMzMWU2YjA5YjA0MzBkMDI5Li41
NWRlYTNhY2M5OTY3YWEzMTI0Nzk0NWIwY2Q1OTE5OTA0YzU2ZjdkIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCkBAIC0xMjQsNyArMTI0
LDcgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm8KICAgICBXS1R5cGVSZWYgdXNlVGlsZWREcmF3
aW5nVmFsdWUgPSBvcHRpb25zID8gV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShvcHRpb25zLCB1
c2VUaWxlZERyYXdpbmdLZXkuZ2V0KCkpIDogTlVMTDsKICAgICBib29sIHVzZVRpbGVkRHJhd2lu
ZyA9IHVzZVRpbGVkRHJhd2luZ1ZhbHVlICYmIFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0
PFdLQm9vbGVhblJlZj4odXNlVGlsZWREcmF3aW5nVmFsdWUpKTsKIAotICAgIE5TUmVjdCByZWN0
ID0gTlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCk7CisgICAgTlNSZWN0IHJlY3QgPSBOU01ha2VS
ZWN0KDAsIDAsIFRlc3RDb250cm9sbGVyOjp2aWV3V2lkdGgsIFRlc3RDb250cm9sbGVyOjp2aWV3
SGVpZ2h0KTsKICAgICBtX3ZpZXcgPSBbW1Rlc3RSdW5uZXJXS1ZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6cmVjdCBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJl
ZiB1c2VUaWxlZERyYXdpbmc6dXNlVGlsZWREcmF3aW5nXTsKICAgICBbbV92aWV3IHNldFdpbmRv
d09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6Tk9dOwogCkBAIC0xNDEsNiArMTQxLDEwIEBAIFBs
YXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvCiAKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1
bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogeworICAgIE5TUmVjdCB3aW5kb3dGcmFt
ZSA9IFttX3dpbmRvdyBmcmFtZV07CisgICAgd2luZG93RnJhbWUuc2l6ZS53aWR0aCA9IHdpZHRo
OworICAgIHdpbmRvd0ZyYW1lLnNpemUuaGVpZ2h0ID0gaGVpZ2h0OworICAgIFttX3dpbmRvdyBz
ZXRGcmFtZTp3aW5kb3dGcmFtZSBkaXNwbGF5OllFU107CiAgICAgW21fdmlldyBzZXRGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpXTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199517</attachid>
            <date>2013-04-24 14:37:51 -0700</date>
            <delta_ts>2013-04-24 19:08:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114218-20130424143716.patch</filename>
            <type>text/plain</type>
            <size>19527</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MDUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTM5NDMwNWI3Yjg3ZTczOGQzMmUwYmEyNDc0OTNlZWVi
ZDQyMTg1Yi4uZGJkNTkzODhhMDc0YmZmZjc1NTBmNzljZThmNWU3YzZjZGY4ODI2NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUw
IEBACisyMDEzLTA0LTI0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFBpeGVsIHRlc3RzIGluIFNWRyBhcmUgYWxsIGJyb2tlbiBpbiBXSzIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDIxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorICAgICAgICAKKyAgICAgICAgV2luZG93IHNu
YXBzaG90cyBpbiBXZWJLaXRUZXN0UnVubmVyIG9uIE1hYyBhcmUgd2luZG93LXNpemVkCisgICAg
ICAgICg4MDB4NjAwKSwgd2hpY2ggaXMgd3JvbmcgZm9yIHRoZSBXM0MgU1ZHIHRlc3RzIHRoYXQg
cmVxdWlyZSBhCisgICAgICAgIDQ4MHgzNjAgc25hcHNob3QuCisgICAgICAgIAorICAgICAgICBG
aXggYnkgcmVzaXppbmcgdGhlIHdpbmRvdywgYXMgd2VsbCBhcyB0aGUgd2ViIHZpZXcgaW4KKyAg
ICAgICAgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbygpIHNvIHRoYXQgd2luZG93IHNuYXBzaG90
cyBhcmUgY29ycmVjdGx5CisgICAgICAgIHNpemVkLgorICAgICAgICAKKyAgICAgICAgQWxzbyBk
byBzb21lIGRyaXZlLWJ5IGNsZWFudXAgb2YgdGhlIHdpbmRvdyBzaXplIGNvbnN0YW50cyBpbiBi
b3RoCisgICAgICAgIERSVCBhbmQgV1RSIHRvIHJlbW92ZSBtYWdpYyBudW1iZXJzLCBhbmQgbWFr
ZSB0aGUgY29kZSBtb3JlIHNpbWlsYXIuCisgICAgICAgIAorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0U2hvdWxkUGFpbnRC
cm9rZW5JbWFnZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHdlYkluc3Bl
Y3RvclNob3dXaW5kb3cpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbToKKyAgICAgICAgKGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3cpOgorICAg
ICAgICAoc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L1BpeGVsRHVtcFN1cHBvcnRNYWMubW06CisgICAgICAgIChjcmVhdGVQYWdlZEJpdG1hcENvbnRl
eHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlOjpvcGVuKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVy
UXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChz
aXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9E
dW1wUmVuZGVyVHJlZVd4LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0Nv
bnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAg
ICAgICAgKFdUUjo6c2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tOgorICAgICAgICAoV1RSOjpQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2Vi
Vmlldzo6cmVzaXplVG8pOgorCiAyMDEzLTA0LTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVc2Ugc3RhbXAgZmlsZXMgZm9yIGdl
bmVyYXRlLWZvcndhcmRpbmctaGVhZGVycyBtYWtlZmlsZSBydWxlcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcAppbmRleCBkNjAwNDUyOWMyMTZhMTE4ODQyNzk5YTU2NzI5M2JlMzlmNGY4
NjQ0Li5jZmMxYjUwOWEyM2IzNTRlNTE1N2RiMjBhNGMxMzIwZjQwMDY4YjdjIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtNDQsNiArNDQsMTIgQEAKICNpbmNsdWRlIDx3dGYv
T3duQXJyYXlQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK2NvbnN0IHVuc2lnbmVk
IFRlc3RSdW5uZXI6OnZpZXdXaWR0aCA9IDgwMDsKK2NvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6
OnZpZXdIZWlnaHQgPSA2MDA7CisKK2NvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6OnczY1NWR1Zp
ZXdXaWR0aCA9IDQ4MDsKK2NvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWln
aHQgPSAzNjA7CisKIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHRl
c3RQYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKICAgICA6
IG1fZGlzYWxsb3dJbmNyZWFzZUZvckFwcGxpY2F0aW9uQ2FjaGVRdW90YShmYWxzZSkKICAgICAs
IG1fZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxlZ2F0ZUNhbGxiYWNrcyhmYWxzZSkKQEAgLTIyMzYs
NiArMjI0MiwzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkUGFpbnRCcm9rZW5JbWFnZShi
b29sIHNob3VsZFBhaW50QnJva2VuSW1hZ2UpCiB7CiAgICAgbV9zaG91bGRQYWludEJyb2tlbklt
YWdlID0gc2hvdWxkUGFpbnRCcm9rZW5JbWFnZTsKIH0KLQotY29uc3QgdW5zaWduZWQgVGVzdFJ1
bm5lcjo6bWF4Vmlld1dpZHRoID0gODAwOwotY29uc3QgdW5zaWduZWQgVGVzdFJ1bm5lcjo6bWF4
Vmlld0hlaWdodCA9IDYwMDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCBmMGE5YjZh
NWFmYjJjMjdhMTUxMDUwZmY0NTNkMTI0ODAwYjdlOWMxLi5mNTEzMzkyMmI0M2I0NDk2OWQzNGU2
N2Q3ZTBmODkzNzZkNWM2M2JmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC00MSw2
ICs0MSwxMyBAQAogY2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBSZWZDb3VudGVkPFRlc3RSdW5u
ZXI+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXN0UnVubmVyPiBjcmVhdGUo
Y29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBl
Y3RlZFBpeGVsSGFzaCk7CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdmlld1dpZHRoOwor
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB2aWV3SGVpZ2h0OworCisgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHczY1NWR1ZpZXdXaWR0aDsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgdzNj
U1ZHVmlld0hlaWdodDsKKwogICAgIH5UZXN0UnVubmVyKCk7CiAKICAgICB2b2lkIG1ha2VXaW5k
b3dPYmplY3QoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiB3aW5kb3dPYmplY3QsIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbik7CkBAIC0zMzAsOSArMzM3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
U2hvdWxkUGFpbnRCcm9rZW5JbWFnZShib29sKTsKICAgICBib29sIHNob3VsZFBhaW50QnJva2Vu
SW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2U7IH0KIAotICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhWaWV3V2lkdGg7Ci0gICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG1heFZpZXdIZWlnaHQ7Ci0KICAgICB2b2lkIHNldFRleHREaXJlY3Rpb24oSlNTdHJp
bmdSZWYpOwogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB0aXRsZVRleHREaXJlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBtX3RpdGxlVGV4dERpcmVjdGlvbjsgfQogICAgIHZvaWQgc2V0VGl0bGVUZXh0
RGlyZWN0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkaXJlY3Rpb24pIHsgbV90aXRsZVRleHREaXJl
Y3Rpb24gPSBkaXJlY3Rpb247IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRl
clRyZWUuY3BwCmluZGV4IDZkZTJkNGE0NDViZjBiOWZhZTRmNDA3MjJlZmRmMmUzZGY0ODU5NGQu
LjE2YzAxY2E2Mzc0M2I4MGI4ZjQ3YjBhMWQxYjkzZTQ2NmMyYjE3Y2UgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMjgwLDggKzI4MCw4IEBAIHN0
YXRpYyB2b2lkIHJ1blRlc3QoY29uc3QgY2hhciogaW5wdXRMaW5lKQogICAgIFdvcmtRdWV1ZTo6
c2hhcmVkKCktPnNldEZyb3plbihmYWxzZSk7CiAKICAgICBjb25zdCBib29sIGlzU1ZHVzNDVGVz
dCA9IHRlc3RVUkwuY29udGFpbnMoInN2Zy9XM0MtU1ZHLTEuMSIpOwotICAgIGNvbnN0IGludCB3
aWR0aCA9IGlzU1ZHVzNDVGVzdCA/IDQ4MCA6IFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aDsKLSAg
ICBjb25zdCBpbnQgaGVpZ2h0ID0gaXNTVkdXM0NUZXN0ID8gMzYwIDogVGVzdFJ1bm5lcjo6bWF4
Vmlld0hlaWdodDsKKyAgICBjb25zdCBpbnQgd2lkdGggPSBpc1NWR1czQ1Rlc3QgPyBUZXN0UnVu
bmVyOjp3M2NTVkdWaWV3V2lkdGggOiBUZXN0UnVubmVyOjp2aWV3V2lkdGg7CisgICAgY29uc3Qg
aW50IGhlaWdodCA9IGlzU1ZHVzNDVGVzdCA/IFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWlnaHQg
OiBUZXN0UnVubmVyOjp2aWV3SGVpZ2h0OwogICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShicm93c2Vy
LT5tYWluVmlldygpLCB3aWR0aCwgaGVpZ2h0KTsKIAogICAgIGlmIChwcmV2VGVzdEJGSXRlbSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9t
ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3Bw
CmluZGV4IDAzYmYwMjUyMTJiZjQ0YzFmMWNjZWRkZmEyMWE2YmRkMWNkOGJlNTguLjkxMjgwYzJi
OGViZWE2ZDhiYjQ0NzcyY2FmOTljYzQzNWQ1ZjQ2YTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBA
IEV2YXNfT2JqZWN0KiBEdW1wUmVuZGVyVHJlZUNocm9tZTo6Y3JlYXRlSW5zcGVjdG9yVmlldygp
CiAgICAgRXZhc19PYmplY3QqIG1haW5GcmFtZSA9IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KGlu
c3BlY3RvclZpZXcpOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJh
bWUsICJsb2FkLGZpbmlzaGVkIiwgb25JbnNwZWN0b3JGcmFtZUxvYWRGaW5pc2hlZCwgMCk7CiAK
LSAgICBldmFzX29iamVjdF9yZXNpemUoaW5zcGVjdG9yVmlldywgVGVzdFJ1bm5lcjo6bWF4Vmll
d1dpZHRoLCBUZXN0UnVubmVyOjptYXhWaWV3SGVpZ2h0KTsKKyAgICBldmFzX29iamVjdF9yZXNp
emUoaW5zcGVjdG9yVmlldywgVGVzdFJ1bm5lcjo6dmlld1dpZHRoLCBUZXN0UnVubmVyOjp2aWV3
SGVpZ2h0KTsKICAgICBldmFzX29iamVjdF9zaG93KGluc3BlY3RvclZpZXcpOwogICAgIGV2YXNf
b2JqZWN0X2ZvY3VzX3NldChpbnNwZWN0b3JWaWV3LCB0cnVlKTsKIApAQCAtMjEyLDcgKzIxMiw3
IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVDaHJvbWU6OmluaXRpYWxpemUoKQogCiAgICAgZXZhc19v
YmplY3RfbmFtZV9zZXQobV9tYWluVmlldywgIm1fbWFpblZpZXciKTsKICAgICBldmFzX29iamVj
dF9tb3ZlKG1fbWFpblZpZXcsIDAsIDApOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShtX21haW5W
aWV3LCA4MDAsIDYwMCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKG1fbWFpblZpZXcsIFRlc3RS
dW5uZXI6OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCk7CiAgICAgZXZhc19vYmpl
Y3RfbGF5ZXJfc2V0KG1fbWFpblZpZXcsIEVWQVNfTEFZRVJfTUFYKTsKICAgICBldmFzX29iamVj
dF9zaG93KG1fbWFpblZpZXcpOwogICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChtX21haW5WaWV3
LCBFSU5BX1RSVUUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBS
ZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5j
cHAKaW5kZXggN2YxYWNkMzllMzk5ZWFmYjkwZDFiMzY4NzY2ZDg4N2NhMTI4M2QzOC4uNTM1Mjg2
M2U4YzFkZGE1ZWU3NGFmMjlhODQyNjczMjI1OWU4OTBmNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC03NDcsOCArNzQ3LDggQEAgc3RhdGljIHZv
aWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKICAgICBib29sIGlzU1ZHVzNDVGVz
dCA9ICh0ZXN0VVJMLmZpbmQoInN2Zy9XM0MtU1ZHLTEuMSIpICE9IHN0cmluZzo6bnBvcyk7CiAg
ICAgR3RrQWxsb2NhdGlvbiBzaXplOwogICAgIHNpemUueCA9IHNpemUueSA9IDA7Ci0gICAgc2l6
ZS53aWR0aCA9IGlzU1ZHVzNDVGVzdCA/IDQ4MCA6IFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aDsK
LSAgICBzaXplLmhlaWdodCA9IGlzU1ZHVzNDVGVzdCA/IDM2MCA6IFRlc3RSdW5uZXI6Om1heFZp
ZXdIZWlnaHQ7CisgICAgc2l6ZS53aWR0aCA9IGlzU1ZHVzNDVGVzdCA/IFRlc3RSdW5uZXI6Oncz
Y1NWR1ZpZXdXaWR0aCA6IFRlc3RSdW5uZXI6OnZpZXdXaWR0aDsKKyAgICBzaXplLmhlaWdodCA9
IGlzU1ZHVzNDVGVzdCA/IFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWlnaHQgOiBUZXN0UnVubmVy
Ojp2aWV3SGVpZ2h0OwogICAgIGd0a193aW5kb3dfcmVzaXplKEdUS19XSU5ET1cod2luZG93KSwg
c2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpOwogICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShj
b250YWluZXIsICZzaXplKTsKIApAQCAtMTA2Nyw3ICsxMDY3LDcgQEAgc3RhdGljIFdlYktpdFdl
YlZpZXcqIHdlYlZpZXdDcmVhdGUoV2ViS2l0V2ViVmlldyosIFdlYktpdFdlYkZyYW1lKik7CiAK
IHN0YXRpYyBnYm9vbGVhbiB3ZWJJbnNwZWN0b3JTaG93V2luZG93KFdlYktpdFdlYkluc3BlY3Rv
ciosIGdwb2ludGVyIGRhdGEpCiB7Ci0gICAgZ3RrX3dpbmRvd19zZXRfZGVmYXVsdF9zaXplKEdU
S19XSU5ET1cod2ViSW5zcGVjdG9yV2luZG93KSwgODAwLCA2MDApOworICAgIGd0a193aW5kb3df
c2V0X2RlZmF1bHRfc2l6ZShHVEtfV0lORE9XKHdlYkluc3BlY3RvcldpbmRvdyksIFRlc3RSdW5u
ZXI6OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCk7CiAgICAgZ3RrX3dpZGdldF9z
aG93X2FsbCh3ZWJJbnNwZWN0b3JXaW5kb3cpOwogICAgIHJldHVybiBUUlVFOwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDBhOGNmZTUxMzRlNTZk
NGZkYjdhNWI1YjU4ZmU1YTgwNWE4MzhhMzcuLjNiNTNhMjk3ZWU4MDllZTQ2MmY4MDcwZjE0MGQ0
YjFmYWRmZGFmNmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KQEAgLTUyMiw3ICs1MjIsNyBAQCBzdGF0aWMgdm9pZCByZWdpc3Rlck1vY2tTY3JvbGxiYXJz
KCkKIAogV2ViVmlldyAqY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdygpCiB7Ci0gICAg
TlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aCwg
VGVzdFJ1bm5lcjo6bWF4Vmlld0hlaWdodCk7CisgICAgTlNSZWN0IHJlY3QgPSBOU01ha2VSZWN0
KDAsIDAsIFRlc3RSdW5uZXI6OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCk7CiAg
ICAgV2ViVmlldyAqd2ViVmlldyA9IFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0
IGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOkAib3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZSJdOwog
ICAgICAgICAKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGVdOwpAQCAtMTEw
NSw5ICsxMTA1LDkgQEAgc3RhdGljIHZvaWQgc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCgpCiAg
ICAgLy8gVzNDIFNWRyB0ZXN0cyBleHBlY3QgdG8gYmUgNDgweDM2MAogICAgIGJvb2wgaXNTVkdX
M0NUZXN0ID0gKGdUZXN0UnVubmVyLT50ZXN0UGF0aE9yVVJMKCkuZmluZCgic3ZnL1czQy1TVkct
MS4xIikgIT0gc3RyaW5nOjpucG9zKTsKICAgICBpZiAoaXNTVkdXM0NUZXN0KQotICAgICAgICBb
W21haW5GcmFtZSB3ZWJWaWV3XSBzZXRGcmFtZVNpemU6TlNNYWtlU2l6ZSg0ODAsIDM2MCldOwor
ICAgICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRGcmFtZVNpemU6TlNNYWtlU2l6ZShUZXN0
UnVubmVyOjp3M2NTVkdWaWV3V2lkdGgsIFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWlnaHQpXTsK
ICAgICBlbHNlCi0gICAgICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldEZyYW1lU2l6ZTpOU01h
a2VTaXplKFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6bWF4Vmlld0hlaWdo
dCldOworICAgICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRGcmFtZVNpemU6TlNNYWtlU2l6
ZShUZXN0UnVubmVyOjp2aWV3V2lkdGgsIFRlc3RSdW5uZXI6OnZpZXdIZWlnaHQpXTsKIH0KIAog
c3RhdGljIGNvbnN0IGNoYXIgKm1ldGhvZE5hbWVTdHJpbmdGb3JGYWlsZWRUZXN0KCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZU1hYy5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmgKaW5kZXggZTY4OThhOWI5
NWNiY2RlNzk2MDk5MzUwYjliYjk4NDJmMmE1NjY3My4uY2U1MGU1ZjIwZjQxYjVkNTBiMjQyYThj
ZmM5ZjY0OGJkZTQ3ZDhhZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlTWFjLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlTWFjLmgKQEAgLTU4LDkgKzU4LDYgQEAgZXh0ZXJuIE5hdmlnYXRpb25Db250cm9sbGVy
KiBnTmF2aWdhdGlvbkNvbnRyb2xsZXI7CiBleHRlcm4gUG9saWN5RGVsZWdhdGUqIHBvbGljeURl
bGVnYXRlOwogZXh0ZXJuIFN0b3JhZ2VUcmFja2VyRGVsZWdhdGUqIHN0b3JhZ2VEZWxlZ2F0ZTsK
IAotZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIG1heFZpZXdIZWlnaHQ7Ci1leHRlcm4gY29uc3QgdW5z
aWduZWQgbWF4Vmlld1dpZHRoOwotCiB2b2lkIHNldFdhaXRUb0R1bXBXYXRjaGRvZyhDRlJ1bkxv
b3BUaW1lclJlZik7CiBib29sIHNob3VsZFNldFdhaXRUb0R1bXBXYXRjaGRvZygpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbSBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCmluZGV4IDBj
ZjljNGExOWIzOGFhYTZhMmU1ZGJhNGZjOTc4ZWEwZTE5YTI4YWMuLmY0Y2M3YzE5ODQ5OWFlNjBm
OWVmY2M4ODBkZjU3ODljZGJlNmVkYmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCkBAIC0xODQsOCArMTg0LDggQEAgUGFzc1JlZlB0cjxC
aXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVl
biwgYm9vbCBpbmMKIAogUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVQYWdlZEJpdG1h
cENvbnRleHQoKQogewotICAgIGludCBwYWdlV2lkdGhJblBpeGVscyA9IFRlc3RSdW5uZXI6Om1h
eFZpZXdXaWR0aDsKLSAgICBpbnQgcGFnZUhlaWdodEluUGl4ZWxzID0gVGVzdFJ1bm5lcjo6bWF4
Vmlld0hlaWdodDsKKyAgICBpbnQgcGFnZVdpZHRoSW5QaXhlbHMgPSBUZXN0UnVubmVyOjp2aWV3
V2lkdGg7CisgICAgaW50IHBhZ2VIZWlnaHRJblBpeGVscyA9IFRlc3RSdW5uZXI6OnZpZXdIZWln
aHQ7CiAgICAgaW50IG51bWJlck9mUGFnZXMgPSBbbWFpbkZyYW1lIG51bWJlck9mUGFnZXNXaXRo
UGFnZVdpZHRoOnBhZ2VXaWR0aEluUGl4ZWxzIHBhZ2VIZWlnaHQ6cGFnZUhlaWdodEluUGl4ZWxz
XTsKICAgICBzaXplX3Qgcm93Qnl0ZXMgPSAwOwogICAgIHZvaWQqIGJ1ZmZlciA9IDA7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDJmYjg3ODI2
N2RjNmYwNjhiM2NmYWZkZDhlZTU0NDFmMDg1ZmVmNDUuLmMwYzI4NTM1MzcyMGNkZWYzNTVjMTc2
ODgwN2JiNjhjMjE2ZWJjNDMgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1
bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5k
ZXJUcmVlUXQuY3BwCkBAIC00MjcsNyArNDI3LDcgQEAgRHVtcFJlbmRlclRyZWU6OkR1bXBSZW5k
ZXJUcmVlKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6d2ViUGFnZVNldEdyb3VwTmFt
ZShwYWdlQWRhcHRlcigpLCAib3JnLndlYmtpdC5xdC5EdW1wUmVuZGVyVHJlZSIpOwogCiAgICAg
bV9tYWluVmlldy0+c2V0Q29udGV4dE1lbnVQb2xpY3koUXQ6Ok5vQ29udGV4dE1lbnUpOwotICAg
IG1fbWFpblZpZXctPnJlc2l6ZShRU2l6ZShUZXN0UnVubmVyUXQ6Om1heFZpZXdXaWR0aCwgVGVz
dFJ1bm5lclF0OjptYXhWaWV3SGVpZ2h0KSk7CisgICAgbV9tYWluVmlldy0+cmVzaXplKFFTaXpl
KFRlc3RSdW5uZXI6OnZpZXdXaWR0aCwgVGVzdFJ1bm5lcjo6dmlld0hlaWdodCkpOwogCiAgICAg
Ly8gY2xlYW4gdXAgY2FjaGUgYnkgcmVzZXR0aW5nIHF1b3RhLgogICAgIHFpbnQ2NCBxdW90YSA9
IHdlYlBhZ2UoKS0+c2V0dGluZ3MoKS0+b2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YSgp
OwpAQCAtNjI1LDggKzYyNSw4IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6Om9wZW4oY29uc3QgUVVy
bCYgdXJsKQogCiAgICAgLy8gVzNDIFNWRyB0ZXN0cyBleHBlY3QgdG8gYmUgNDgweDM2MAogICAg
IGJvb2wgaXNXM0NUZXN0ID0gdXJsLnRvU3RyaW5nKCkuY29udGFpbnMoInN2Zy9XM0MtU1ZHLTEu
MSIpOwotICAgIGludCB3aWR0aCA9IGlzVzNDVGVzdCA/IDQ4MCA6IFRlc3RSdW5uZXJRdDo6bWF4
Vmlld1dpZHRoOwotICAgIGludCBoZWlnaHQgPSBpc1czQ1Rlc3QgPyAzNjAgOiBUZXN0UnVubmVy
UXQ6Om1heFZpZXdIZWlnaHQ7CisgICAgaW50IHdpZHRoID0gaXNXM0NUZXN0ID8gVGVzdFJ1bm5l
cjo6dzNjU1ZHVmlld1dpZHRoIDogVGVzdFJ1bm5lcjo6dmlld1dpZHRoOworICAgIGludCBoZWln
aHQgPSBpc1czQ1Rlc3QgPyBUZXN0UnVubmVyOjp3M2NTVkdWaWV3SGVpZ2h0IDogVGVzdFJ1bm5l
cjo6dmlld0hlaWdodDsKICAgICBtX21haW5WaWV3LT5yZXNpemUoUVNpemUod2lkdGgsIGhlaWdo
dCkpOwogICAgIG1fcGFnZS0+c2V0UHJlZmVycmVkQ29udGVudHNTaXplKFFTaXplKCkpOwogICAg
IG1fcGFnZS0+c2V0Vmlld3BvcnRTaXplKFFTaXplKHdpZHRoLCBoZWlnaHQpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IGEzYjUyMjJjNTE3ZTg3ZWYzOTcx
MDg3YmVlMGFlNWQ1NjJjZWUxYjkuLmM5Yjg5MWVjNjIwNjJjNTk4YjU1MzAxNWEzMTViY2U1NmNm
Yjc0MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcApAQCAtNzc0
LDkgKzc3NCw2IEBAIHZvaWQgVGVzdFJ1bm5lclF0OjpzZXRBdWRpb0RhdGEoY29uc3QgUUJ5dGVB
cnJheSYgYXVkaW9EYXRhKQogICAgIG1fYXVkaW9EdW1wID0gdHJ1ZTsKIH0KIAotY29uc3QgdW5z
aWduZWQgVGVzdFJ1bm5lclF0OjptYXhWaWV3V2lkdGggPSA4MDA7Ci1jb25zdCB1bnNpZ25lZCBU
ZXN0UnVubmVyUXQ6Om1heFZpZXdIZWlnaHQgPSA2MDA7Ci0KIC8vIC0tLSBKU0MgQyBBUEkgc3R1
YnMKIAogdm9pZCBUZXN0UnVubmVyOjphZGREaXNhbGxvd2VkVVJMKEpTU3RyaW5nUmVmIHVybCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKaW5kZXggY2FmODUyMDZlYzA5ZDFh
Y2RjM2Y5MzMzMTUyYTJjMDYwZmIzNzYwNi4uN2RjZTFlNGZhNjA3ZWQxNjU2YjI2NjNhMmY5ZjA3
ZGYyYmE1ZjZkNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5l
clF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKQEAgLTY4
LDkgKzY4LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXNldCgpOwogCi0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIGludCBtYXhWaWV3V2lkdGg7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGludCBtYXhWaWV3SGVpZ2h0OwotCiAgICAgdm9pZCBzZXRUaW1lb3V0KGludCB0aW1lb3V0KSB7
IG1fdGltZW91dCA9IHRpbWVvdXQ7IH0KICAgICB2b2lkIHNldFNob3VsZFRpbWVvdXQoYm9vbCBm
bGFnKSB7IG1fc2hvdWxkVGltZW91dCA9IGZsYWc7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggODlmYTlmN2FmYTE2MzVmNjEyNWQ0NGM5ZTEz
MjRlZGMxNWUyOTEwNy4uN2U5MTY3MmY4NzI5ODc0ZjU2YmJkYWFmM2NlZjRlY2M2M2M5YjM2OCAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC05MzEs
MTEgKzkzMSwxMSBAQCBzdGF0aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KCkKICAg
ICB1bnNpZ25lZCB3aWR0aDsKICAgICB1bnNpZ25lZCBoZWlnaHQ7CiAgICAgaWYgKGlzU1ZHVzND
VGVzdCkgewotICAgICAgICB3aWR0aCA9IDQ4MDsKLSAgICAgICAgaGVpZ2h0ID0gMzYwOworICAg
ICAgICB3aWR0aCA9IFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdXaWR0aDsKKyAgICAgICAgaGVpZ2h0
ID0gVGVzdFJ1bm5lcjo6dzNjU1ZHVmlld0hlaWdodDsKICAgICB9IGVsc2UgewotICAgICAgICB3
aWR0aCA9IFRlc3RSdW5uZXI6Om1heFZpZXdXaWR0aDsKLSAgICAgICAgaGVpZ2h0ID0gVGVzdFJ1
bm5lcjo6bWF4Vmlld0hlaWdodDsKKyAgICAgICAgd2lkdGggPSBUZXN0UnVubmVyOjp2aWV3V2lk
dGg7CisgICAgICAgIGhlaWdodCA9IFRlc3RSdW5uZXI6OnZpZXdIZWlnaHQ7CiAgICAgfQogCiAg
ICAgOjpTZXRXaW5kb3dQb3Mod2ViVmlld1dpbmRvdywgMCwgMCwgMCwgd2lkdGgsIGhlaWdodCwg
U1dQX05PTU9WRSk7CkBAIC0xMTkwLDggKzExOTAsOCBAQCBXaW5kb3dUb1dlYlZpZXdNYXAmIHdp
bmRvd1RvV2ViVmlld01hcCgpCiAKIElXZWJWaWV3KiBjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVu
V2luZG93KEhXTkQqIHdlYlZpZXdXaW5kb3cpCiB7Ci0gICAgdW5zaWduZWQgbWF4Vmlld1dpZHRo
ID0gVGVzdFJ1bm5lcjo6bWF4Vmlld1dpZHRoOwotICAgIHVuc2lnbmVkIG1heFZpZXdIZWlnaHQg
PSBUZXN0UnVubmVyOjptYXhWaWV3SGVpZ2h0OworICAgIHVuc2lnbmVkIG1heFZpZXdXaWR0aCA9
IFRlc3RSdW5uZXI6OnZpZXdXaWR0aDsKKyAgICB1bnNpZ25lZCBtYXhWaWV3SGVpZ2h0ID0gVGVz
dFJ1bm5lcjo6dmlld0hlaWdodDsKICAgICBIV05EIGhvc3RXaW5kb3cgPSBDcmVhdGVXaW5kb3dF
eChXU19FWF9UT09MV0lORE9XLCBrRHVtcFJlbmRlclRyZWVDbGFzc05hbWUsIFRFWFQoIkR1bXBS
ZW5kZXJUcmVlIiksIFdTX1BPUFVQLAogICAgICAgLW1heFZpZXdXaWR0aCwgLW1heFZpZXdIZWln
aHQsIG1heFZpZXdXaWR0aCwgbWF4Vmlld0hlaWdodCwgMCwgMCwgR2V0TW9kdWxlSGFuZGxlKDAp
LCAwKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBh
MzFiNDhlODk4OTg1MDBkODcyOWQwYzczYTRiMjY0MTJmYWJiMTcwLi40ZTYzMzJkNGFmYzdkYWIx
YTA0YjJmZGJhNzFkZDFiZTdkNWFmODBiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcApAQCAtNjMsNiArNjMsMTIgQEAKIAogbmFtZXNwYWNlIFdUUiB7CiAKK2Nv
bnN0IHVuc2lnbmVkIFRlc3RDb250cm9sbGVyOjp2aWV3V2lkdGggPSA4MDA7Citjb25zdCB1bnNp
Z25lZCBUZXN0Q29udHJvbGxlcjo6dmlld0hlaWdodCA9IDYwMDsKKworY29uc3QgdW5zaWduZWQg
VGVzdENvbnRyb2xsZXI6OnczY1NWR1ZpZXdXaWR0aCA9IDQ4MDsKK2NvbnN0IHVuc2lnbmVkIFRl
c3RDb250cm9sbGVyOjp3M2NTVkdWaWV3SGVpZ2h0ID0gMzYwOworCiAvLyBkZWZhdWx0TG9uZ1Rp
bWVvdXQgKyBkZWZhdWx0U2hvcnRUaW1lb3V0IHNob3VsZCBiZSBsZXNzIHRoYW4gODAsCiAvLyB0
aGUgZGVmYXVsdCB0aW1lb3V0IHZhbHVlIG9mIHRoZSB0ZXN0IGhhcm5lc3Mgc28gd2UgY2FuIGRl
dGVjdCBhbgogLy8gdW5yZXNwb25zaXZlIHdlYiBwcm9jZXNzLgpAQCAtNTg5LDcgKzU5NSw3IEBA
IGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAg
IC8vIEVGTCB1c2UgYSByZWFsIHdpbmRvdyB3aGlsZSBvdGhlciBwb3J0cyBzdWNoIGFzIFF0IGRv
bid0LgogICAgIC8vIEluIEVGTCwgd2UgbmVlZCB0byByZXNpemUgdGhlIHdpbmRvdyB0byB0aGUg
b3JpZ2luYWwgc2l6ZSBhZnRlciBjYWxscyB0byB3aW5kb3cucmVzaXplVG8uCiAgICAgV0tSZWN0
IHJlY3QgPSBtX21haW5XZWJWaWV3LT53aW5kb3dGcmFtZSgpOwotICAgIG1fbWFpbldlYlZpZXct
PnNldFdpbmRvd0ZyYW1lKFdLUmVjdE1ha2UocmVjdC5vcmlnaW4ueCwgcmVjdC5vcmlnaW4ueSwg
ODAwLCA2MDApKTsKKyAgICBtX21haW5XZWJWaWV3LT5zZXRXaW5kb3dGcmFtZShXS1JlY3RNYWtl
KHJlY3Qub3JpZ2luLngsIHJlY3Qub3JpZ2luLnksIFRlc3RDb250cm9sbGVyOjp2aWV3V2lkdGgs
IFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0KSk7CiAjZW5kaWYKIAogICAgIC8vIFJlc2V0IG5v
dGlmaWNhdGlvbiBwZXJtaXNzaW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCmluZGV4IDBmNjVjOWYxYWY1ODE4Y2RkNjBkYTczMTE5YzZjNjc3MTBiMDgzMGUuLmRlZTI2
ODM0NmRmOWMyOGQ3M2NlYmUzOWE4MDM0MjA1ZGNhM2Q0YjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTQ2LDYgKzQ2LDEyIEBAIGNsYXNzIFRlc3RDb250cm9s
bGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgVGVzdENvbnRyb2xsZXImIHNoYXJlZCgpOwogCisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZpZXdXaWR0aDsKKyAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgdmlld0hlaWdodDsKKworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3M2NTVkdWaWV3
V2lkdGg7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHczY1NWR1ZpZXdIZWlnaHQ7CisKICAg
ICBUZXN0Q29udHJvbGxlcihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKTsKICAgICB+VGVz
dENvbnRyb2xsZXIoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAppbmRleCA3ODllYWEzZGU0N2Q5YWYzYjYwNDc1ZDM4NmIwMDgyZjRlZDNhYmQ1Li4yNTNjN2M3
MDhkMDUyM2UwYTI3MWYzNjc4NWQ4OGFkMmEwMWYwZDA2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTI3LDIwICsxMjcsMTYgQEAgdm9pZCBUZXN0SW52
b2NhdGlvbjo6c2V0Q3VzdG9tVGltZW91dChpbnQgdGltZW91dCkKICAgICBtX3RpbWVvdXQgPSB0
aW1lb3V0OwogfQogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgdzNjU1ZHV2lkdGggPSA0ODA7Ci1z
dGF0aWMgY29uc3QgdW5zaWduZWQgdzNjU1ZHSGVpZ2h0ID0gMzYwOwotc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG5vcm1hbFdpZHRoID0gODAwOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIG5vcm1hbEhl
aWdodCA9IDYwMDsKLQogc3RhdGljIHZvaWQgc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdChjb25z
dCBjaGFyKiBwYXRoT3JVUkwpCiB7CiAgICAgYm9vbCBpc1NWR1czQ1Rlc3QgPSBzdHJzdHIocGF0
aE9yVVJMLCAic3ZnL1czQy1TVkctMS4xIikgfHwgc3Ryc3RyKHBhdGhPclVSTCwgInN2Z1xcVzND
LVNWRy0xLjEiKTsKIAogICAgIGlmIChpc1NWR1czQ1Rlc3QpCi0gICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaGFyZWQoKS5tYWluV2ViVmlldygpLT5yZXNpemVUbyh3M2NTVkdXaWR0aCwgdzNjU1ZH
SGVpZ2h0KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCkt
PnJlc2l6ZVRvKFRlc3RDb250cm9sbGVyOjp3M2NTVkdWaWV3V2lkdGgsIFRlc3RDb250cm9sbGVy
Ojp3M2NTVkdWaWV3SGVpZ2h0KTsKICAgICBlbHNlCi0gICAgICAgIFRlc3RDb250cm9sbGVyOjpz
aGFyZWQoKS5tYWluV2ViVmlldygpLT5yZXNpemVUbyhub3JtYWxXaWR0aCwgbm9ybWFsSGVpZ2h0
KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnJlc2l6
ZVRvKFRlc3RDb250cm9sbGVyOjp2aWV3V2lkdGgsIFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0
KTsKIH0KKwogc3RhdGljIGJvb2wgc2hvdWxkTG9nRnJhbWVMb2FkRGVsZWdhdGVzKGNvbnN0IGNo
YXIqIHBhdGhPclVSTCkKIHsKICAgICByZXR1cm4gc3Ryc3RyKHBhdGhPclVSTCwgImxvYWRpbmcv
Iik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZp
ZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMu
bW0KaW5kZXggYjU1ZDMyYzBhNTg2YjIwOWVmNTkwYjFjMzFlNmIwOWIwNDMwZDAyOS4uNTVkZWEz
YWNjOTk2N2FhMzEyNDc5NDViMGNkNTkxOTkwNGM1NmY3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMTI0LDcgKzEyNCw3IEBA
IFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVm
LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvCiAgICAgV0tUeXBlUmVmIHVzZVRpbGVkRHJhd2luZ1Zh
bHVlID0gb3B0aW9ucyA/IFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkob3B0aW9ucywgdXNlVGls
ZWREcmF3aW5nS2V5LmdldCgpKSA6IE5VTEw7CiAgICAgYm9vbCB1c2VUaWxlZERyYXdpbmcgPSB1
c2VUaWxlZERyYXdpbmdWYWx1ZSAmJiBXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jv
b2xlYW5SZWY+KHVzZVRpbGVkRHJhd2luZ1ZhbHVlKSk7CiAKLSAgICBOU1JlY3QgcmVjdCA9IE5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApOworICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgw
LCAwLCBUZXN0Q29udHJvbGxlcjo6dmlld1dpZHRoLCBUZXN0Q29udHJvbGxlcjo6dmlld0hlaWdo
dCk7CiAgICAgbV92aWV3ID0gW1tUZXN0UnVubmVyV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OnJlY3QgY29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBSZWYgdXNl
VGlsZWREcmF3aW5nOnVzZVRpbGVkRHJhd2luZ107CiAgICAgW21fdmlldyBzZXRXaW5kb3dPY2Ns
dXNpb25EZXRlY3Rpb25FbmFibGVkOk5PXTsKIApAQCAtMTQxLDYgKzE0MSwxMCBAQCBQbGF0Zm9y
bVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdl
R3JvdXBSZWYgcGFnZUdybwogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVzaXplVG8odW5zaWdu
ZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKIHsKKyAgICBOU1JlY3Qgd2luZG93RnJhbWUgPSBb
bV93aW5kb3cgZnJhbWVdOworICAgIHdpbmRvd0ZyYW1lLnNpemUud2lkdGggPSB3aWR0aDsKKyAg
ICB3aW5kb3dGcmFtZS5zaXplLmhlaWdodCA9IGhlaWdodDsKKyAgICBbbV93aW5kb3cgc2V0RnJh
bWU6d2luZG93RnJhbWUgZGlzcGxheTpZRVNdOwogICAgIFttX3ZpZXcgc2V0RnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KV07CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>