<?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>102072</bug_id>
          
          <creation_ts>2012-11-13 05:13:53 -0800</creation_ts>
          <short_desc>Clean up use of adjustWindowRect</short_desc>
          <delta_ts>2012-11-14 03:06:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>765491</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-13 05:13:53 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765495</commentid>
    <comment_count>1</comment_count>
      <attachid>173874</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-13 05:17:25 -0800</bug_when>
    <thetext>Created attachment 173874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765509</commentid>
    <comment_count>2</comment_count>
      <attachid>173878</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-13 05:36:17 -0800</bug_when>
    <thetext>Created attachment 173878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765535</commentid>
    <comment_count>3</comment_count>
      <attachid>173878</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-13 06:25:17 -0800</bug_when>
    <thetext>Comment on attachment 173878
Patch

looks good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765718</commentid>
    <comment_count>4</comment_count>
      <attachid>173878</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 09:58:00 -0800</bug_when>
    <thetext>Comment on attachment 173878
Patch

Attachment 173878 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14815661

New failing tests:
fast/dom/Window/open-window-min-size.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765721</commentid>
    <comment_count>5</comment_count>
      <attachid>173878</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 09:59:49 -0800</bug_when>
    <thetext>Comment on attachment 173878
Patch

Clearing flags on attachment: 173878

Committed r134434: &lt;http://trac.webkit.org/changeset/134434&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765722</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 09:59:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765843</commentid>
    <comment_count>7</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-13 11:25:01 -0800</bug_when>
    <thetext>Reverted r134434 for reason:

The test that was added asserts in loader.

Committed r134451: &lt;http://trac.webkit.org/changeset/134451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765846</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-13 11:26:25 -0800</bug_when>
    <thetext>http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;tests=fast%2Fdom%2FWindow%2Fopen-window-min-size.html

Here&apos;s the ASSERT:

crash log for DumpRenderTree (pid 25001):
STDOUT: &lt;empty&gt;
STDERR: ASSERTION FAILED: shouldLoadAsEmptyDocument(r.url()) || !defersLoading()
STDERR: third_party/WebKit/Source/WebCore/loader/MainResourceLoader.cpp(388) : virtual void WebCore::MainResourceLoader::didReceiveResponse(const WebCore::ResourceResponse&amp;)
STDERR: 1   0x7f998c67a871
STDERR: 2   0x7f998c690543
STDERR: 3   0x7f998bfdb573
STDERR: 4   0x7f9987534219
STDERR: 5   0x5edb4f
STDERR: 6   0x5f4193
STDERR: 7   0x5f3b7e
STDERR: 8   0x5f33c6
STDERR: 9   0x7f9988c2730d
STDERR: 10  0x7f9988c6a0ad MessageLoop::RunTask(base::PendingTask const&amp;)
STDERR: 11  0x7f9988c6a1c8 MessageLoop::DeferOrRunPendingTask(base::PendingTask const&amp;)
STDERR: 12  0x7f9988c6aa5d MessageLoop::DoWork()
STDERR: 13  0x7f9988c0be36 base::MessagePumpGlib::RunWithDispatcher(base::MessagePump::Delegate*, base::MessagePumpDispatcher*)
STDERR: 14  0x7f9988c0c216 base::MessagePumpGlib::Run(base::MessagePump::Delegate*)
STDERR: 15  0x7f9988c69c9d MessageLoop::RunInternal()
STDERR: 16  0x7f9988c69b54 MessageLoop::RunHandler()
STDERR: 17  0x7f9988ca1212 base::RunLoop::Run()
STDERR: 18  0x7f9988c69482 MessageLoop::Run()
STDERR: 19  0x51db02
STDERR: 20  0x4b375a
STDERR: 21  0x7f998b0ba118
STDERR: 22  0x7f998c6dae28
STDERR: 23  0x7f998c6fe1a0
STDERR: 24  0x7f998c255b81
STDERR: 25  0x7f99890b661a
STDERR: 26  0x7f99890b1279
STDERR: 27  0x7f99890b124a
STDERR: 28  0x12fc8ab0618e</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766061</commentid>
    <comment_count>9</comment_count>
      <attachid>173991</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-13 14:33:35 -0800</bug_when>
    <thetext>Created attachment 173991
New testing approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766344</commentid>
    <comment_count>10</comment_count>
      <attachid>173991</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-11-13 20:19:34 -0800</bug_when>
    <thetext>Comment on attachment 173991
New testing approach

Looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766436</commentid>
    <comment_count>11</comment_count>
      <attachid>173991</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 22:18:42 -0800</bug_when>
    <thetext>Comment on attachment 173991
New testing approach

Attachment 173991 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14828310

New failing tests:
fast/dom/Window/open-window-min-size.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766680</commentid>
    <comment_count>12</comment_count>
      <attachid>174118</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-14 02:42:52 -0800</bug_when>
    <thetext>Created attachment 174118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766684</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-14 02:44:56 -0800</bug_when>
    <thetext>Working fine now locally on chromium --debug, skipping for mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766696</commentid>
    <comment_count>14</comment_count>
      <attachid>174118</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 03:05:54 -0800</bug_when>
    <thetext>Comment on attachment 174118
Patch

Clearing flags on attachment: 174118

Committed r134586: &lt;http://trac.webkit.org/changeset/134586&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766697</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 03:06:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173874</attachid>
            <date>2012-11-13 05:17:25 -0800</date>
            <delta_ts>2012-11-13 05:36:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102072-20121113141520.patch</filename>
            <type>text/plain</type>
            <size>13810</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Mzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZmZWFlZjAzZTJkZDZi
NzUyZjNkNTU4YTVmZTc1ODcyOTA0OGYzMS4uNGRkMDFlNmRmNTcxZDA1OTYyOWEzODYyOTBlOGZj
YjIwMzJkNjQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTExLTEyICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBD
bGVhbiB1cCB1c2Ugb2YgYWRqdXN0V2luZG93UmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGVkIGJ5IGZhc3QvZG9tL1dpbmRvdy9vcGVuLXdp
bmRvdy1taW4tc2l6ZS5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV2luZG93KToKKworICAgICAgICAgICAgVmFsaWRhdGUg
dGhlIHdpbmRvdyBzaXplIGhlcmUgc28gdGhhdCBpdCBpcyBub3QganVzdCBkb25lIGZvcgorICAg
ICAgICAgICAgLm9wZW4sIGJ1dCBhbHNvIGZvciAuc2hvd01vZGFsRGlhbG9nLiBUaGlzIGlzIGNv
bXBhdGlibGUgd2l0aAorICAgICAgICAgICAgb3RoZXIgYnJvd3NlcnMgc3VjaCBhcyBJRSBhbmQg
RmlyZWZveCAodGhvdWdoIElFID4gNiwgZW5mb3JjZXMKKyAgICAgICAgICAgIGEgbWluaW11bSB3
aWR0aCBvZiAyNTAgaW5zdGVhZCBvZiAxMDAgYXMgRmlyZWZveCBhbmQgdXMuKQorCisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QpOgorCisgICAgICAgICAgICBNYWtlIGl0
IGEgc3RhdGljIG1ldGhvZCB3aGljaCBvbmx5IHRha2VzIHBhZ2UuIEl0IHdhcyBuZXZlcgorICAg
ICAgICAgICAgY2FsbGVkIGZyb20gYW55d2hlcmUgd2l0aG91dCBhIHZhbGlkIHBhZ2UsIHNvIHRo
ZSBwYWdlIGNoZWNrCisgICAgICAgICAgICBoYXMgYmVlbiB0dXJuZWQgaW50byBhbiBhc3NlcnQs
IGFuZCB0d28gb2YgdGhlIGFyZ3VtZW50cyBoYXZlCisgICAgICAgICAgICBiZWVuIHJlbW92ZWQg
YXMgdGhleSBjYW4gYmUgYWNjZXNzZWQgdmlhIHRoZSBwYWdlLgorCisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om1vdmVCeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlc2l6ZUJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cmVzaXplVG8pOgorCisgICAgICAgICAgICBVcGRhdGUgdXNlIG9m
IGFkanVzdFdpbmRvd1JlY3QuCisKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6
CisKKyAgICAgICAgICAgIEF2b2lkIG1vZGlmeWluZyB0aGUgV2luZG93RmVhdHVyZXMgYXMgdGhl
IFdlYkNvcmU6OmNyZWF0ZVdpbmRvdworICAgICAgICAgICAgdmFsaWRhdGVzIGFuZCBhZGp1c3Rz
IHRoZSBhcmd1bWVudHMuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAo
RE9NV2luZG93KToKKwogMjAxMi0xMS0xMyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIGluZGVudGF0aW9uIGxvZ2lj
IGludG8gVGV4dEVkaXRvck1vZGVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCBjZDdmZWFlZTdkMjgxOWYyYWY1Mzk2OTYxZmVkN2Q0Y2EwNGE2MGMwLi5mZmMyMjgzNGQy
NDdhMjQ1OGRjNDFmMDgwNGU2MWU5YTM2MmNjZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTMzMjEsMjEgKzMzMjEsMjUgQEAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhG
cmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVx
dWUKICAgICBwYWdlLT5jaHJvbWUoKS0+c2V0UmVzaXphYmxlKGZlYXR1cmVzLnJlc2l6YWJsZSk7
CiAKICAgICAvLyAneCcgYW5kICd5JyBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiB0aGUgd2luZG93
LCB3aGlsZSAnd2lkdGgnIGFuZCAnaGVpZ2h0JwotICAgIC8vIHNwZWNpZnkgdGhlIHNpemUgb2Yg
dGhlIHBhZ2UuIFdlIGNhbiBvbmx5IHJlc2l6ZSB0aGUgd2luZG93LCBzbwotICAgIC8vIGFkanVz
dCBmb3IgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2luZG93IHNpemUgYW5kIHRoZSBwYWdl
IHNpemUuCisgICAgLy8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuIFdlIGNhbiBv
bmx5IHJlc2l6ZSB0aGUgd2luZG93LCBzbyBhZGp1c3QKKyAgICAvLyBmb3IgdGhlIGRpZmZlcmVu
Y2UgYmV0d2VlbiB0aGUgd2luZG93IHNpemUgYW5kIHRoZSB2aWV3cG9ydCBzaXplLgogCiAgICAg
RmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwotICAg
IEZsb2F0U2l6ZSBwYWdlU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLT5wYWdlUmVjdCgpLnNpemUoKTsK
KyAgICBGbG9hdFNpemUgdmlld3BvcnRTaXplID0gcGFnZS0+Y2hyb21lKCktPnBhZ2VSZWN0KCku
c2l6ZSgpOworCiAgICAgaWYgKGZlYXR1cmVzLnhTZXQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0
WChmZWF0dXJlcy54KTsKICAgICBpZiAoZmVhdHVyZXMueVNldCkKICAgICAgICAgd2luZG93UmVj
dC5zZXRZKGZlYXR1cmVzLnkpOwogICAgIGlmIChmZWF0dXJlcy53aWR0aFNldCkKLSAgICAgICAg
d2luZG93UmVjdC5zZXRXaWR0aChmZWF0dXJlcy53aWR0aCArICh3aW5kb3dSZWN0LndpZHRoKCkg
LSBwYWdlU2l6ZS53aWR0aCgpKSk7CisgICAgICAgIHdpbmRvd1JlY3Quc2V0V2lkdGgoZmVhdHVy
ZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gdmlld3BvcnRTaXplLndpZHRoKCkpKTsK
ICAgICBpZiAoZmVhdHVyZXMuaGVpZ2h0U2V0KQotICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdo
dChmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHBhZ2VTaXplLmhlaWdo
dCgpKSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3Qod2luZG93UmVjdCk7Cisg
ICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KGZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dSZWN0
LmhlaWdodCgpIC0gdmlld3BvcnRTaXplLmhlaWdodCgpKSk7CisKKyAgICAvLyBFbnN1cmUgbm9u
LU5hTiB2YWx1ZXMsIG1pbmltdW0gc2l6ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2YWxpZCBz
Y3JlZW4gYXJlYS4KKyAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6YWRq
dXN0V2luZG93UmVjdChwYWdlLCB3aW5kb3dSZWN0KTsKIAorICAgIHBhZ2UtPmNocm9tZSgpLT5z
ZXRXaW5kb3dSZWN0KG5ld1dpbmRvd1JlY3QpOwogICAgIHBhZ2UtPmNocm9tZSgpLT5zaG93KCk7
CiAKICAgICBjcmVhdGVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBh
ODRmZWM1OWM5NWViODUxYzRiYTM3OWRmYzE4YTI3NWUzZjJmZGIwLi5hY2RlYzk1ZDhiYTQyOTk2
M2FiNzRiNzIwOTk1MmJiZWJlYjkzMjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC0zMDgsMTYgKzMwOCwxOCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hBbGxQZW5kaW5nVW5s
b2FkRXZlbnRzKCkKIH0KIAogLy8gVGhpcyBmdW5jdGlvbjoKLS8vIDEpIFZhbGlkYXRlcyB0aGUg
cGVuZGluZyBjaGFuZ2VzIGFyZSBub3QgY2hhbmdpbmcgdG8gTmFOCi0vLyAyKSBDb25zdHJhaW5z
IHRoZSB3aW5kb3cgcmVjdCB0byB0aGUgbWluaW11bSB3aW5kb3cgc2l6ZSBhbmQgbm8gYmlnZ2Vy
IHRoYW4KLS8vICAgIHRoZSB0aGUgZmxvYXQgcmVjdCdzIGRpbWVuc2lvbnMuCi0vLyAzKSBDb25z
dHJhaW4gd2luZG93IHJlY3QgdG8gd2l0aGluIHRoZSB0b3AgYW5kIGxlZnQgYm91bmRhcmllcyBv
ZiB0aGUgc2NyZWVuIHJlY3QKLS8vIDQpIENvbnN0cmFpbnQgdGhlIHdpbmRvdyByZWN0IHRvIHdp
dGhpbiB0aGUgYm90dG9tIGFuZCByaWdodCBib3VuZGFyaWVzIG9mIHRoZQotLy8gICAgc2NyZWVu
IHJlY3QuCi0vLyA1KSBUcmFuc2xhdGUgdGhlIHdpbmRvdyByZWN0IGNvb3JkaW5hdGVzIHRvIGJl
IHdpdGhpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZSBvZgotLy8gICAgdGhlIHNjcmVlbiByZWN0Lgot
dm9pZCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4s
IEZsb2F0UmVjdCYgd2luZG93LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKSBjb25z
dAorLy8gMSkgVmFsaWRhdGVzIHRoZSBwZW5kaW5nIGNoYW5nZXMgYXJlIG5vdCBjaGFuZ2luZyBh
bnkgdmFsdWUgdG8gTmFOOyBpbiB0aGF0IGNhc2Uga2VlcCBvcmlnaW5hbCB2YWx1ZS4KKy8vIDIp
IENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHRoZSBtaW5pbXVtIHdpbmRvdyBzaXplIGFu
ZCBubyBiaWdnZXIgdGhhbiB0aGUgZmxvYXQgcmVjdCdzIGRpbWVuc2lvbnMuCisvLyAzKSBDb25z
dHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIHRvcCBhbmQgbGVmdCBib3VuZGFy
aWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCisvLyA0KSBDb25zdHJhaW5zIHRoZSB3
aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIGJvdHRvbSBhbmQgcmlnaHQgYm91bmRhcmllcyBvZiB0
aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgorLy8gNSkgVHJhbnNsYXRlIHRoZSB3aW5kb3cgcmVj
dCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2YgdGhlIHNj
cmVlbi4KK0Zsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKIHsKKyAgICBBU1NFUlQocGFnZSk7CisK
KyAgICBGbG9hdFJlY3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJh
bWUoKS0+dmlldygpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93ID0gcGFnZS0+Y2hyb21lKCktPndp
bmRvd1JlY3QoKTsKKwogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBpbiBhIHZhbGlkIHN0YXRlIGJl
Zm9yZSBhZGp1c3RpbmcgZGltZW5zaW9ucy4KICAgICBBU1NFUlQoaXNmaW5pdGUoc2NyZWVuLngo
KSkpOwogICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW4ueSgpKSk7CkBAIC0zMjcsNyArMzI5LDcg
QEAgdm9pZCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3Jl
ZW4sIEZsb2F0UmVjdCYgd2luZG93LCBjb24KICAgICBBU1NFUlQoaXNmaW5pdGUod2luZG93Lnko
KSkpOwogICAgIEFTU0VSVChpc2Zpbml0ZSh3aW5kb3cud2lkdGgoKSkpOwogICAgIEFTU0VSVChp
c2Zpbml0ZSh3aW5kb3cuaGVpZ2h0KCkpKTsKLSAgICAKKwogICAgIC8vIFVwZGF0ZSB3aW5kb3cg
dmFsdWVzIGlmIG5ldyByZXF1ZXN0ZWQgdmFsdWVzIGFyZSBub3QgTmFOLgogICAgIGlmICghaXNu
YW4ocGVuZGluZ0NoYW5nZXMueCgpKSkKICAgICAgICAgd2luZG93LnNldFgocGVuZGluZ0NoYW5n
ZXMueCgpKTsKQEAgLTMzOCwxNSArMzQwLDE1IEBAIHZvaWQgRE9NV2luZG93OjphZGp1c3RXaW5k
b3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVuLCBGbG9hdFJlY3QmIHdpbmRvdywgY29uCiAg
ICAgaWYgKCFpc25hbihwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSkpCiAgICAgICAgIHdpbmRvdy5z
ZXRIZWlnaHQocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpOwogCi0gICAgQVNTRVJUKG1fZnJhbWUp
OwotICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7Ci0gICAgRmxvYXRTaXplIG1pbmlt
dW1TaXplID0gcGFnZSA/IG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5taW5p
bXVtV2luZG93U2l6ZSgpIDogRmxvYXRTaXplKDEwMCwgMTAwKTsKKyAgICBGbG9hdFNpemUgbWlu
aW11bVNpemUgPSBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPm1pbmltdW1XaW5kb3dTaXplKCk7
CiAgICAgd2luZG93LnNldFdpZHRoKG1pbihtYXgobWluaW11bVNpemUud2lkdGgoKSwgd2luZG93
LndpZHRoKCkpLCBzY3JlZW4ud2lkdGgoKSkpOwogICAgIHdpbmRvdy5zZXRIZWlnaHQobWluKG1h
eChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93LmhlaWdodCgpKSwgc2NyZWVuLmhlaWdodCgp
KSk7CiAKLSAgICAvLyBDb25zdHJhaW4gdGhlIHdpbmRvdyBwb3NpdGlvbiB0byB0aGUgc2NyZWVu
LgorICAgIC8vIENvbnN0cmFpbiB0aGUgd2luZG93IHBvc2l0aW9uIHdpdGhpbiB0aGUgdmFsaWQg
c2NyZWVuIGFyZWEuCiAgICAgd2luZG93LnNldFgobWF4KHNjcmVlbi54KCksIG1pbih3aW5kb3cu
eCgpLCBzY3JlZW4ubWF4WCgpIC0gd2luZG93LndpZHRoKCkpKSk7CiAgICAgd2luZG93LnNldFko
bWF4KHNjcmVlbi55KCksIG1pbih3aW5kb3cueSgpLCBzY3JlZW4ubWF4WSgpIC0gd2luZG93Lmhl
aWdodCgpKSkpOworCisgICAgcmV0dXJuIHdpbmRvdzsKIH0KIAogLy8gRklYTUU6IFdlIGNhbiBy
ZW1vdmUgdGhpcyBmdW5jdGlvbiBvbmNlIFY4IHNob3dNb2RhbERpYWxvZyBpcyBjaGFuZ2VkIHRv
IHVzZSBET01XaW5kb3cuCkBAIC0xNDUwLDggKzE0NTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6bW92
ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwog
ICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwogICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0
YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4u
KQotICAgIGFkanVzdFdpbmRvd1JlY3Qoc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJh
bWUoKS0+dmlldygpKSwgZnIsIHVwZGF0ZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRv
d1JlY3QoZnIpOworICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRv
d1JlY3QocGFnZSwgdXBkYXRlKSk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQg
eCwgZmxvYXQgeSkgY29uc3QKQEAgLTE0NzAsMTAgKzE0NzEsOSBAQCB2b2lkIERPTVdpbmRvdzo6
bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgRmxvYXRSZWN0IHNyID0gc2NyZWVu
QXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKTsKICAgICBmci5zZXRMb2Nh
dGlvbihzci5sb2NhdGlvbigpKTsKICAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7Ci0gICAgdXBk
YXRlLm1vdmUoeCwgeSk7ICAgICAKKyAgICB1cGRhdGUubW92ZSh4LCB5KTsKICAgICAvLyBTZWN1
cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRv
IGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICBhZGp1c3RXaW5kb3dSZWN0KHNyLCBmciwgdXBk
YXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAgcGFnZS0+
Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsK
IH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CkBA
IC0xNDkxLDggKzE0OTEsNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxv
YXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVj
dCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRTaXplKHgsIHkpOwog
ICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0gICAgYWRqdXN0V2lu
ZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpLCBm
ciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAg
cGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRh
dGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRvKGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQpIGNvbnN0CkBAIC0xNTEwLDggKzE1MDksNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXpl
VG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBw
YWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gRmxvYXRT
aXplKHdpZHRoLCBoZWlnaHQpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwg
ZGVzdCk7Ci0gICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1h
aW5GcmFtZSgpLT52aWV3KCkpLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0
V2luZG93UmVjdChmcik7CisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoYWRqdXN0
V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6c2V0VGltZW91
dChQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwgRXhjZXB0
aW9uQ29kZSYgZWMpCkBAIC0xOTMwLDE1ICsxOTI4LDYgQEAgUGFzc1JlZlB0cjxET01XaW5kb3c+
IERPTVdpbmRvdzo6b3Blbihjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgQXRvbWljU3Ry
aW4KICAgICB9CiAKICAgICBXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcyh3aW5kb3dGZWF0
dXJlc1N0cmluZyk7Ci0gICAgRmxvYXRSZWN0IHdpbmRvd1JlY3Qod2luZG93RmVhdHVyZXMueFNl
dCA/IHdpbmRvd0ZlYXR1cmVzLnggOiAwLCB3aW5kb3dGZWF0dXJlcy55U2V0ID8gd2luZG93RmVh
dHVyZXMueSA6IDAsCi0gICAgICAgIHdpbmRvd0ZlYXR1cmVzLndpZHRoU2V0ID8gd2luZG93RmVh
dHVyZXMud2lkdGggOiAwLCB3aW5kb3dGZWF0dXJlcy5oZWlnaHRTZXQgPyB3aW5kb3dGZWF0dXJl
cy5oZWlnaHQgOiAwKTsKLSAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwotICAgIERP
TVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UgPyBwYWdl
LT5tYWluRnJhbWUoKS0+dmlldygpIDogMCksIHdpbmRvd1JlY3QsIHdpbmRvd1JlY3QpOwotICAg
IHdpbmRvd0ZlYXR1cmVzLnggPSB3aW5kb3dSZWN0LngoKTsKLSAgICB3aW5kb3dGZWF0dXJlcy55
ID0gd2luZG93UmVjdC55KCk7Ci0gICAgd2luZG93RmVhdHVyZXMuaGVpZ2h0ID0gd2luZG93UmVj
dC5oZWlnaHQoKTsKLSAgICB3aW5kb3dGZWF0dXJlcy53aWR0aCA9IHdpbmRvd1JlY3Qud2lkdGgo
KTsKLQogICAgIEZyYW1lKiByZXN1bHQgPSBjcmVhdGVXaW5kb3codXJsU3RyaW5nLCBmcmFtZU5h
bWUsIHdpbmRvd0ZlYXR1cmVzLCBhY3RpdmVXaW5kb3csIGZpcnN0RnJhbWUsIG1fZnJhbWUpOwog
ICAgIHJldHVybiByZXN1bHQgPyByZXN1bHQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpIDogMDsK
IH0KQEAgLTE5NTgsNyArMTk0Nyw4IEBAIHZvaWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2co
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlhbG9nRmVhCiAgICAgaWYg
KCFjYW5TaG93TW9kYWxEaWFsb2dOb3cobV9mcmFtZSkgfHwgIWZpcnN0V2luZG93LT5hbGxvd1Bv
cFVwKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lKiBkaWFsb2dGcmFtZSA9IGNyZWF0
ZVdpbmRvdyh1cmxTdHJpbmcsIGVtcHR5QXRvbSwgV2luZG93RmVhdHVyZXMoZGlhbG9nRmVhdHVy
ZXNTdHJpbmcsIHNjcmVlbkF2YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSksCisgICAgV2lu
ZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXMoZGlhbG9nRmVhdHVyZXNTdHJpbmcsIHNjcmVlbkF2
YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSk7CisgICAgRnJhbWUqIGRpYWxvZ0ZyYW1lID0g
Y3JlYXRlV2luZG93KHVybFN0cmluZywgZW1wdHlBdG9tLCB3aW5kb3dGZWF0dXJlcywKICAgICAg
ICAgYWN0aXZlV2luZG93LCBmaXJzdEZyYW1lLCBtX2ZyYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25D
b250ZXh0KTsKICAgICBpZiAoIWRpYWxvZ0ZyYW1lKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAppbmRleCA5NWY2ZWYxZWVkZWNlOTNiY2ZkMWQwYzY2M2FiNjY2YWM1ZmVm
YTY1Li40MjRmNThhMmU0YjVjNjA1OTc3MTIxZDFmZjMwZWM5OWZiYjM4ZWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHN0YXRpYyBib29sIGRpc3BhdGNoQWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2ZW50cygp
OwogICAgICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKTsK
IAotICAgICAgICB2b2lkIGFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4s
IEZsb2F0UmVjdCYgd2luZG93LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKSBjb25z
dDsKKyAgICAgICAgc3RhdGljIEZsb2F0UmVjdCBhZGp1c3RXaW5kb3dSZWN0KFBhZ2UqLCBjb25z
dCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKIAogICAgICAgICAvLyBGSVhNRTogV2UgY2Fu
IHJlbW92ZSB0aGlzIGZ1bmN0aW9uIG9uY2UgVjggc2hvd01vZGFsRGlhbG9nIGlzIGNoYW5nZWQg
dG8gdXNlIERPTVdpbmRvdy4KICAgICAgICAgc3RhdGljIHZvaWQgcGFyc2VNb2RhbERpYWxvZ0Zl
YXR1cmVzKGNvbnN0IFN0cmluZyYsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Jik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTY5YTYxMjk1NWU0OWVkYjRlMTg4NDliNGNiZTg3YTY0NjI2Yjg5Yy4uMGE4MWFkNjg4NTU0MzJl
ODljNDRiNjAyZDMzM2IyMzk1MjU1ZTJiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEx
LTEyICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBDbGVhbiB1cCB1c2Ugb2YgYWRqdXN0V2luZG93UmVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMDcyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IG1pbmltdW0gc2l6ZXMg
YXJlIGhvbm9yZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvb3Blbi13aW5kb3ctbWlu
LXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9w
cmludC1jbG9zZS5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0xMyAgQmFsYXpzIEtlbGVtZW4gIDxr
YmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBRdCBnYXJkZW5pbmcuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3Blbi13aW5kb3ctbWluLXNp
emUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1taW4tc2l6
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVhNTE1NDllMjlhMGUzNzI3ZWIzMmUwNThhZTQ5NWMyYjM1YWJi
NGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3Blbi13
aW5kb3ctbWluLXNpemUuaHRtbApAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB2YXIgZXhwZWN0ZWRNc2dzID0gMjsKKyAg
ICB2YXIgbXNnc1JlY2VpdmVkID0gMDsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVz
c2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgbXNnc1JlY2VpdmVkKys7CisgICAgICAgIHNo
b3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKGUuZGF0YVsid2lkdGgiXS50b1N0cmluZygpLCAiMTAw
Iik7CisgICAgICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKGUuZGF0YVsiaGVpZ2h0Il0u
dG9TdHJpbmcoKSwgIjEwMCIpOworICAgICAgICBpZiAobXNnc1JlY2VpdmVkID09PSBleHBlY3Rl
ZE1zZ3MpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9LCBmYWxz
ZSk7CisKKyAgICB3aW5kb3cub3BlbigicmVzb3VyY2VzL3ByaW50LWNsb3NlLmh0bWwiLCAiIiwg
IndpZHRoPTEwLCBoZWlnaHQ9MTAiKTsKKyAgICB3aW5kb3cuc2hvd01vZGFsRGlhbG9nKCJyZXNv
dXJjZXMvcHJpbnQtY2xvc2UuaHRtbCIsICIiLCAiZGlhbG9nV2lkdGg6MTA7IGRpYWxvZ0hlaWdo
dDoxMCIpOworfQorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVu
bmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgdGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmlu
Z1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9wcmludC1jbG9zZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9wcmludC1jbG9zZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY5YmYyYzgyYTEyOTM1MTM1N2MzNWI1NmU2OGY2MWQzMTAzMTdiZTcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3ByaW50LWNs
b3NlLmh0bWwKQEAgLTAsMCArMSw5IEBACis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBsb2FkZWQoKSB7CisgICAgdmFyIG1zZyA9IHsgIndpZHRoIjogd2luZG93
Lm91dGVyV2lkdGgsICJoZWlnaHQiOiB3aW5kb3cub3V0ZXJIZWlnaHQgfTsKKyAgICB3aW5kb3cu
b3BlbmVyLnBvc3RNZXNzYWdlKG1zZywgJyonKTsKKyAgICB3aW5kb3cuY2xvc2UoKTsKK30KKzwv
c2NyaXB0PgorPC9ib2R5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173878</attachid>
            <date>2012-11-13 05:36:17 -0800</date>
            <delta_ts>2012-11-13 14:33:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102072-20121113143413.patch</filename>
            <type>text/plain</type>
            <size>14358</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Mzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZmZWFlZjAzZTJkZDZi
NzUyZjNkNTU4YTVmZTc1ODcyOTA0OGYzMS4uNGRkMDFlNmRmNTcxZDA1OTYyOWEzODYyOTBlOGZj
YjIwMzJkNjQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTExLTEyICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBD
bGVhbiB1cCB1c2Ugb2YgYWRqdXN0V2luZG93UmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGVkIGJ5IGZhc3QvZG9tL1dpbmRvdy9vcGVuLXdp
bmRvdy1taW4tc2l6ZS5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV2luZG93KToKKworICAgICAgICAgICAgVmFsaWRhdGUg
dGhlIHdpbmRvdyBzaXplIGhlcmUgc28gdGhhdCBpdCBpcyBub3QganVzdCBkb25lIGZvcgorICAg
ICAgICAgICAgLm9wZW4sIGJ1dCBhbHNvIGZvciAuc2hvd01vZGFsRGlhbG9nLiBUaGlzIGlzIGNv
bXBhdGlibGUgd2l0aAorICAgICAgICAgICAgb3RoZXIgYnJvd3NlcnMgc3VjaCBhcyBJRSBhbmQg
RmlyZWZveCAodGhvdWdoIElFID4gNiwgZW5mb3JjZXMKKyAgICAgICAgICAgIGEgbWluaW11bSB3
aWR0aCBvZiAyNTAgaW5zdGVhZCBvZiAxMDAgYXMgRmlyZWZveCBhbmQgdXMuKQorCisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QpOgorCisgICAgICAgICAgICBNYWtlIGl0
IGEgc3RhdGljIG1ldGhvZCB3aGljaCBvbmx5IHRha2VzIHBhZ2UuIEl0IHdhcyBuZXZlcgorICAg
ICAgICAgICAgY2FsbGVkIGZyb20gYW55d2hlcmUgd2l0aG91dCBhIHZhbGlkIHBhZ2UsIHNvIHRo
ZSBwYWdlIGNoZWNrCisgICAgICAgICAgICBoYXMgYmVlbiB0dXJuZWQgaW50byBhbiBhc3NlcnQs
IGFuZCB0d28gb2YgdGhlIGFyZ3VtZW50cyBoYXZlCisgICAgICAgICAgICBiZWVuIHJlbW92ZWQg
YXMgdGhleSBjYW4gYmUgYWNjZXNzZWQgdmlhIHRoZSBwYWdlLgorCisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om1vdmVCeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlc2l6ZUJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cmVzaXplVG8pOgorCisgICAgICAgICAgICBVcGRhdGUgdXNlIG9m
IGFkanVzdFdpbmRvd1JlY3QuCisKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6
CisKKyAgICAgICAgICAgIEF2b2lkIG1vZGlmeWluZyB0aGUgV2luZG93RmVhdHVyZXMgYXMgdGhl
IFdlYkNvcmU6OmNyZWF0ZVdpbmRvdworICAgICAgICAgICAgdmFsaWRhdGVzIGFuZCBhZGp1c3Rz
IHRoZSBhcmd1bWVudHMuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAo
RE9NV2luZG93KToKKwogMjAxMi0xMS0xMyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIGluZGVudGF0aW9uIGxvZ2lj
IGludG8gVGV4dEVkaXRvck1vZGVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCBjZDdmZWFlZTdkMjgxOWYyYWY1Mzk2OTYxZmVkN2Q0Y2EwNGE2MGMwLi5mZmMyMjgzNGQy
NDdhMjQ1OGRjNDFmMDgwNGU2MWU5YTM2MmNjZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTMzMjEsMjEgKzMzMjEsMjUgQEAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhG
cmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVx
dWUKICAgICBwYWdlLT5jaHJvbWUoKS0+c2V0UmVzaXphYmxlKGZlYXR1cmVzLnJlc2l6YWJsZSk7
CiAKICAgICAvLyAneCcgYW5kICd5JyBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiB0aGUgd2luZG93
LCB3aGlsZSAnd2lkdGgnIGFuZCAnaGVpZ2h0JwotICAgIC8vIHNwZWNpZnkgdGhlIHNpemUgb2Yg
dGhlIHBhZ2UuIFdlIGNhbiBvbmx5IHJlc2l6ZSB0aGUgd2luZG93LCBzbwotICAgIC8vIGFkanVz
dCBmb3IgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2luZG93IHNpemUgYW5kIHRoZSBwYWdl
IHNpemUuCisgICAgLy8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuIFdlIGNhbiBv
bmx5IHJlc2l6ZSB0aGUgd2luZG93LCBzbyBhZGp1c3QKKyAgICAvLyBmb3IgdGhlIGRpZmZlcmVu
Y2UgYmV0d2VlbiB0aGUgd2luZG93IHNpemUgYW5kIHRoZSB2aWV3cG9ydCBzaXplLgogCiAgICAg
RmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwotICAg
IEZsb2F0U2l6ZSBwYWdlU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLT5wYWdlUmVjdCgpLnNpemUoKTsK
KyAgICBGbG9hdFNpemUgdmlld3BvcnRTaXplID0gcGFnZS0+Y2hyb21lKCktPnBhZ2VSZWN0KCku
c2l6ZSgpOworCiAgICAgaWYgKGZlYXR1cmVzLnhTZXQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0
WChmZWF0dXJlcy54KTsKICAgICBpZiAoZmVhdHVyZXMueVNldCkKICAgICAgICAgd2luZG93UmVj
dC5zZXRZKGZlYXR1cmVzLnkpOwogICAgIGlmIChmZWF0dXJlcy53aWR0aFNldCkKLSAgICAgICAg
d2luZG93UmVjdC5zZXRXaWR0aChmZWF0dXJlcy53aWR0aCArICh3aW5kb3dSZWN0LndpZHRoKCkg
LSBwYWdlU2l6ZS53aWR0aCgpKSk7CisgICAgICAgIHdpbmRvd1JlY3Quc2V0V2lkdGgoZmVhdHVy
ZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gdmlld3BvcnRTaXplLndpZHRoKCkpKTsK
ICAgICBpZiAoZmVhdHVyZXMuaGVpZ2h0U2V0KQotICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdo
dChmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHBhZ2VTaXplLmhlaWdo
dCgpKSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3Qod2luZG93UmVjdCk7Cisg
ICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KGZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dSZWN0
LmhlaWdodCgpIC0gdmlld3BvcnRTaXplLmhlaWdodCgpKSk7CisKKyAgICAvLyBFbnN1cmUgbm9u
LU5hTiB2YWx1ZXMsIG1pbmltdW0gc2l6ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2YWxpZCBz
Y3JlZW4gYXJlYS4KKyAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6YWRq
dXN0V2luZG93UmVjdChwYWdlLCB3aW5kb3dSZWN0KTsKIAorICAgIHBhZ2UtPmNocm9tZSgpLT5z
ZXRXaW5kb3dSZWN0KG5ld1dpbmRvd1JlY3QpOwogICAgIHBhZ2UtPmNocm9tZSgpLT5zaG93KCk7
CiAKICAgICBjcmVhdGVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBh
ODRmZWM1OWM5NWViODUxYzRiYTM3OWRmYzE4YTI3NWUzZjJmZGIwLi5hY2RlYzk1ZDhiYTQyOTk2
M2FiNzRiNzIwOTk1MmJiZWJlYjkzMjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC0zMDgsMTYgKzMwOCwxOCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hBbGxQZW5kaW5nVW5s
b2FkRXZlbnRzKCkKIH0KIAogLy8gVGhpcyBmdW5jdGlvbjoKLS8vIDEpIFZhbGlkYXRlcyB0aGUg
cGVuZGluZyBjaGFuZ2VzIGFyZSBub3QgY2hhbmdpbmcgdG8gTmFOCi0vLyAyKSBDb25zdHJhaW5z
IHRoZSB3aW5kb3cgcmVjdCB0byB0aGUgbWluaW11bSB3aW5kb3cgc2l6ZSBhbmQgbm8gYmlnZ2Vy
IHRoYW4KLS8vICAgIHRoZSB0aGUgZmxvYXQgcmVjdCdzIGRpbWVuc2lvbnMuCi0vLyAzKSBDb25z
dHJhaW4gd2luZG93IHJlY3QgdG8gd2l0aGluIHRoZSB0b3AgYW5kIGxlZnQgYm91bmRhcmllcyBv
ZiB0aGUgc2NyZWVuIHJlY3QKLS8vIDQpIENvbnN0cmFpbnQgdGhlIHdpbmRvdyByZWN0IHRvIHdp
dGhpbiB0aGUgYm90dG9tIGFuZCByaWdodCBib3VuZGFyaWVzIG9mIHRoZQotLy8gICAgc2NyZWVu
IHJlY3QuCi0vLyA1KSBUcmFuc2xhdGUgdGhlIHdpbmRvdyByZWN0IGNvb3JkaW5hdGVzIHRvIGJl
IHdpdGhpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZSBvZgotLy8gICAgdGhlIHNjcmVlbiByZWN0Lgot
dm9pZCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4s
IEZsb2F0UmVjdCYgd2luZG93LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKSBjb25z
dAorLy8gMSkgVmFsaWRhdGVzIHRoZSBwZW5kaW5nIGNoYW5nZXMgYXJlIG5vdCBjaGFuZ2luZyBh
bnkgdmFsdWUgdG8gTmFOOyBpbiB0aGF0IGNhc2Uga2VlcCBvcmlnaW5hbCB2YWx1ZS4KKy8vIDIp
IENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHRoZSBtaW5pbXVtIHdpbmRvdyBzaXplIGFu
ZCBubyBiaWdnZXIgdGhhbiB0aGUgZmxvYXQgcmVjdCdzIGRpbWVuc2lvbnMuCisvLyAzKSBDb25z
dHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIHRvcCBhbmQgbGVmdCBib3VuZGFy
aWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCisvLyA0KSBDb25zdHJhaW5zIHRoZSB3
aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIGJvdHRvbSBhbmQgcmlnaHQgYm91bmRhcmllcyBvZiB0
aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgorLy8gNSkgVHJhbnNsYXRlIHRoZSB3aW5kb3cgcmVj
dCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2YgdGhlIHNj
cmVlbi4KK0Zsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKIHsKKyAgICBBU1NFUlQocGFnZSk7CisK
KyAgICBGbG9hdFJlY3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJh
bWUoKS0+dmlldygpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93ID0gcGFnZS0+Y2hyb21lKCktPndp
bmRvd1JlY3QoKTsKKwogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBpbiBhIHZhbGlkIHN0YXRlIGJl
Zm9yZSBhZGp1c3RpbmcgZGltZW5zaW9ucy4KICAgICBBU1NFUlQoaXNmaW5pdGUoc2NyZWVuLngo
KSkpOwogICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW4ueSgpKSk7CkBAIC0zMjcsNyArMzI5LDcg
QEAgdm9pZCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3Jl
ZW4sIEZsb2F0UmVjdCYgd2luZG93LCBjb24KICAgICBBU1NFUlQoaXNmaW5pdGUod2luZG93Lnko
KSkpOwogICAgIEFTU0VSVChpc2Zpbml0ZSh3aW5kb3cud2lkdGgoKSkpOwogICAgIEFTU0VSVChp
c2Zpbml0ZSh3aW5kb3cuaGVpZ2h0KCkpKTsKLSAgICAKKwogICAgIC8vIFVwZGF0ZSB3aW5kb3cg
dmFsdWVzIGlmIG5ldyByZXF1ZXN0ZWQgdmFsdWVzIGFyZSBub3QgTmFOLgogICAgIGlmICghaXNu
YW4ocGVuZGluZ0NoYW5nZXMueCgpKSkKICAgICAgICAgd2luZG93LnNldFgocGVuZGluZ0NoYW5n
ZXMueCgpKTsKQEAgLTMzOCwxNSArMzQwLDE1IEBAIHZvaWQgRE9NV2luZG93OjphZGp1c3RXaW5k
b3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVuLCBGbG9hdFJlY3QmIHdpbmRvdywgY29uCiAg
ICAgaWYgKCFpc25hbihwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSkpCiAgICAgICAgIHdpbmRvdy5z
ZXRIZWlnaHQocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpOwogCi0gICAgQVNTRVJUKG1fZnJhbWUp
OwotICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7Ci0gICAgRmxvYXRTaXplIG1pbmlt
dW1TaXplID0gcGFnZSA/IG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5taW5p
bXVtV2luZG93U2l6ZSgpIDogRmxvYXRTaXplKDEwMCwgMTAwKTsKKyAgICBGbG9hdFNpemUgbWlu
aW11bVNpemUgPSBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPm1pbmltdW1XaW5kb3dTaXplKCk7
CiAgICAgd2luZG93LnNldFdpZHRoKG1pbihtYXgobWluaW11bVNpemUud2lkdGgoKSwgd2luZG93
LndpZHRoKCkpLCBzY3JlZW4ud2lkdGgoKSkpOwogICAgIHdpbmRvdy5zZXRIZWlnaHQobWluKG1h
eChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93LmhlaWdodCgpKSwgc2NyZWVuLmhlaWdodCgp
KSk7CiAKLSAgICAvLyBDb25zdHJhaW4gdGhlIHdpbmRvdyBwb3NpdGlvbiB0byB0aGUgc2NyZWVu
LgorICAgIC8vIENvbnN0cmFpbiB0aGUgd2luZG93IHBvc2l0aW9uIHdpdGhpbiB0aGUgdmFsaWQg
c2NyZWVuIGFyZWEuCiAgICAgd2luZG93LnNldFgobWF4KHNjcmVlbi54KCksIG1pbih3aW5kb3cu
eCgpLCBzY3JlZW4ubWF4WCgpIC0gd2luZG93LndpZHRoKCkpKSk7CiAgICAgd2luZG93LnNldFko
bWF4KHNjcmVlbi55KCksIG1pbih3aW5kb3cueSgpLCBzY3JlZW4ubWF4WSgpIC0gd2luZG93Lmhl
aWdodCgpKSkpOworCisgICAgcmV0dXJuIHdpbmRvdzsKIH0KIAogLy8gRklYTUU6IFdlIGNhbiBy
ZW1vdmUgdGhpcyBmdW5jdGlvbiBvbmNlIFY4IHNob3dNb2RhbERpYWxvZyBpcyBjaGFuZ2VkIHRv
IHVzZSBET01XaW5kb3cuCkBAIC0xNDUwLDggKzE0NTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6bW92
ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwog
ICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwogICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0
YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4u
KQotICAgIGFkanVzdFdpbmRvd1JlY3Qoc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJh
bWUoKS0+dmlldygpKSwgZnIsIHVwZGF0ZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRv
d1JlY3QoZnIpOworICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRv
d1JlY3QocGFnZSwgdXBkYXRlKSk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQg
eCwgZmxvYXQgeSkgY29uc3QKQEAgLTE0NzAsMTAgKzE0NzEsOSBAQCB2b2lkIERPTVdpbmRvdzo6
bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgRmxvYXRSZWN0IHNyID0gc2NyZWVu
QXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKTsKICAgICBmci5zZXRMb2Nh
dGlvbihzci5sb2NhdGlvbigpKTsKICAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7Ci0gICAgdXBk
YXRlLm1vdmUoeCwgeSk7ICAgICAKKyAgICB1cGRhdGUubW92ZSh4LCB5KTsKICAgICAvLyBTZWN1
cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRv
IGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICBhZGp1c3RXaW5kb3dSZWN0KHNyLCBmciwgdXBk
YXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAgcGFnZS0+
Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsK
IH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CkBA
IC0xNDkxLDggKzE0OTEsNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxv
YXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVj
dCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRTaXplKHgsIHkpOwog
ICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0gICAgYWRqdXN0V2lu
ZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpLCBm
ciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAg
cGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRh
dGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRvKGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQpIGNvbnN0CkBAIC0xNTEwLDggKzE1MDksNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXpl
VG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBw
YWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gRmxvYXRT
aXplKHdpZHRoLCBoZWlnaHQpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwg
ZGVzdCk7Ci0gICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1h
aW5GcmFtZSgpLT52aWV3KCkpLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0
V2luZG93UmVjdChmcik7CisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoYWRqdXN0
V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6c2V0VGltZW91
dChQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwgRXhjZXB0
aW9uQ29kZSYgZWMpCkBAIC0xOTMwLDE1ICsxOTI4LDYgQEAgUGFzc1JlZlB0cjxET01XaW5kb3c+
IERPTVdpbmRvdzo6b3Blbihjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgQXRvbWljU3Ry
aW4KICAgICB9CiAKICAgICBXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcyh3aW5kb3dGZWF0
dXJlc1N0cmluZyk7Ci0gICAgRmxvYXRSZWN0IHdpbmRvd1JlY3Qod2luZG93RmVhdHVyZXMueFNl
dCA/IHdpbmRvd0ZlYXR1cmVzLnggOiAwLCB3aW5kb3dGZWF0dXJlcy55U2V0ID8gd2luZG93RmVh
dHVyZXMueSA6IDAsCi0gICAgICAgIHdpbmRvd0ZlYXR1cmVzLndpZHRoU2V0ID8gd2luZG93RmVh
dHVyZXMud2lkdGggOiAwLCB3aW5kb3dGZWF0dXJlcy5oZWlnaHRTZXQgPyB3aW5kb3dGZWF0dXJl
cy5oZWlnaHQgOiAwKTsKLSAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwotICAgIERP
TVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UgPyBwYWdl
LT5tYWluRnJhbWUoKS0+dmlldygpIDogMCksIHdpbmRvd1JlY3QsIHdpbmRvd1JlY3QpOwotICAg
IHdpbmRvd0ZlYXR1cmVzLnggPSB3aW5kb3dSZWN0LngoKTsKLSAgICB3aW5kb3dGZWF0dXJlcy55
ID0gd2luZG93UmVjdC55KCk7Ci0gICAgd2luZG93RmVhdHVyZXMuaGVpZ2h0ID0gd2luZG93UmVj
dC5oZWlnaHQoKTsKLSAgICB3aW5kb3dGZWF0dXJlcy53aWR0aCA9IHdpbmRvd1JlY3Qud2lkdGgo
KTsKLQogICAgIEZyYW1lKiByZXN1bHQgPSBjcmVhdGVXaW5kb3codXJsU3RyaW5nLCBmcmFtZU5h
bWUsIHdpbmRvd0ZlYXR1cmVzLCBhY3RpdmVXaW5kb3csIGZpcnN0RnJhbWUsIG1fZnJhbWUpOwog
ICAgIHJldHVybiByZXN1bHQgPyByZXN1bHQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpIDogMDsK
IH0KQEAgLTE5NTgsNyArMTk0Nyw4IEBAIHZvaWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2co
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlhbG9nRmVhCiAgICAgaWYg
KCFjYW5TaG93TW9kYWxEaWFsb2dOb3cobV9mcmFtZSkgfHwgIWZpcnN0V2luZG93LT5hbGxvd1Bv
cFVwKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lKiBkaWFsb2dGcmFtZSA9IGNyZWF0
ZVdpbmRvdyh1cmxTdHJpbmcsIGVtcHR5QXRvbSwgV2luZG93RmVhdHVyZXMoZGlhbG9nRmVhdHVy
ZXNTdHJpbmcsIHNjcmVlbkF2YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSksCisgICAgV2lu
ZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXMoZGlhbG9nRmVhdHVyZXNTdHJpbmcsIHNjcmVlbkF2
YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSk7CisgICAgRnJhbWUqIGRpYWxvZ0ZyYW1lID0g
Y3JlYXRlV2luZG93KHVybFN0cmluZywgZW1wdHlBdG9tLCB3aW5kb3dGZWF0dXJlcywKICAgICAg
ICAgYWN0aXZlV2luZG93LCBmaXJzdEZyYW1lLCBtX2ZyYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25D
b250ZXh0KTsKICAgICBpZiAoIWRpYWxvZ0ZyYW1lKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAppbmRleCA5NWY2ZWYxZWVkZWNlOTNiY2ZkMWQwYzY2M2FiNjY2YWM1ZmVm
YTY1Li40MjRmNThhMmU0YjVjNjA1OTc3MTIxZDFmZjMwZWM5OWZiYjM4ZWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHN0YXRpYyBib29sIGRpc3BhdGNoQWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2ZW50cygp
OwogICAgICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKTsK
IAotICAgICAgICB2b2lkIGFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4s
IEZsb2F0UmVjdCYgd2luZG93LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKSBjb25z
dDsKKyAgICAgICAgc3RhdGljIEZsb2F0UmVjdCBhZGp1c3RXaW5kb3dSZWN0KFBhZ2UqLCBjb25z
dCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKIAogICAgICAgICAvLyBGSVhNRTogV2UgY2Fu
IHJlbW92ZSB0aGlzIGZ1bmN0aW9uIG9uY2UgVjggc2hvd01vZGFsRGlhbG9nIGlzIGNoYW5nZWQg
dG8gdXNlIERPTVdpbmRvdy4KICAgICAgICAgc3RhdGljIHZvaWQgcGFyc2VNb2RhbERpYWxvZ0Zl
YXR1cmVzKGNvbnN0IFN0cmluZyYsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Jik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTY5YTYxMjk1NWU0OWVkYjRlMTg4NDliNGNiZTg3YTY0NjI2Yjg5Yy4uYTgxMzgzYmRhZjljZjA4
MDAyZWY1NGQyM2FiOWU0N2MwM2NlOTZjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEx
LTEyICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBDbGVhbiB1cCB1c2Ugb2YgYWRqdXN0V2luZG93UmVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMDcyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IG1pbmltdW0gc2l6ZXMg
YXJlIGhvbm9yZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvb3Blbi13aW5kb3ctbWlu
LXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L29wZW4td2luZG93
LW1pbi1zaXplLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93
L3Jlc291cmNlcy9wcmludC1jbG9zZS5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0xMyAgQmFsYXpz
IEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBRdCBn
YXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3Blbi13
aW5kb3ctbWluLXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L29wZW4td2luZG93LW1pbi1zaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWRjZWQ5MzEz
Y2Q4NjNlMTQ0ZDMwNDdhMTcwODJmNGE0NzUxOTFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L29wZW4td2luZG93LW1pbi1zaXplLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDggQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorUEFTUyAxMDAgaXMgPj0gMTAwCitQQVNTIDEwMCBpcyA+PSAxMDAKK1BBU1MgMTAw
IGlzID49IDEwMAorUEFTUyAxMDAgaXMgPj0gMTAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1taW4tc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L29wZW4td2luZG93LW1pbi1zaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE1
MTU0OWUyOWEwZTM3MjdlYjMyZTA1OGFlNDk1YzJiMzVhYmI0ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1taW4tc2l6ZS5odG1sCkBA
IC0wLDAgKzEsMzIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
KCkgeworICAgIHZhciBleHBlY3RlZE1zZ3MgPSAyOworICAgIHZhciBtc2dzUmVjZWl2ZWQgPSAw
OworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgewor
ICAgICAgICBtc2dzUmVjZWl2ZWQrKzsKKyAgICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1
YWwoZS5kYXRhWyJ3aWR0aCJdLnRvU3RyaW5nKCksICIxMDAiKTsKKyAgICAgICAgc2hvdWxkQmVH
cmVhdGVyVGhhbk9yRXF1YWwoZS5kYXRhWyJoZWlnaHQiXS50b1N0cmluZygpLCAiMTAwIik7Cisg
ICAgICAgIGlmIChtc2dzUmVjZWl2ZWQgPT09IGV4cGVjdGVkTXNncykKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIGZhbHNlKTsKKworICAgIHdpbmRvdy5vcGVu
KCJyZXNvdXJjZXMvcHJpbnQtY2xvc2UuaHRtbCIsICIiLCAid2lkdGg9MTAsIGhlaWdodD0xMCIp
OworICAgIHdpbmRvdy5zaG93TW9kYWxEaWFsb2coInJlc291cmNlcy9wcmludC1jbG9zZS5odG1s
IiwgIiIsICJkaWFsb2dXaWR0aDoxMDsgZGlhbG9nSGVpZ2h0OjEwIik7Cit9CisKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3Mo
KTsKKyAgICB0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0
cnVlKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvcmVzb3VyY2VzL3ByaW50LWNsb3NlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvcmVzb3VyY2VzL3ByaW50LWNsb3NlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjliZjJjODJhMTI5MzUx
MzU3YzM1YjU2ZTY4ZjYxZDMxMDMxN2JlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvcHJpbnQtY2xvc2UuaHRtbApAQCAtMCwwICsxLDkg
QEAKKzxib2R5IG9ubG9hZD0ibG9hZGVkKCkiPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWRlZCgp
IHsKKyAgICB2YXIgbXNnID0geyAid2lkdGgiOiB3aW5kb3cub3V0ZXJXaWR0aCwgImhlaWdodCI6
IHdpbmRvdy5vdXRlckhlaWdodCB9OworICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UobXNn
LCAnKicpOworICAgIHdpbmRvdy5jbG9zZSgpOworfQorPC9zY3JpcHQ+Cis8L2JvZHkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173991</attachid>
            <date>2012-11-13 14:33:35 -0800</date>
            <delta_ts>2012-11-14 02:42:47 -0800</delta_ts>
            <desc>New testing approach</desc>
            <filename>bug-102072-20121113233129.patch</filename>
            <type>text/plain</type>
            <size>14482</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Mzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZmZWFlZjAzZTJkZDZi
NzUyZjNkNTU4YTVmZTc1ODcyOTA0OGYzMS4uNGRkMDFlNmRmNTcxZDA1OTYyOWEzODYyOTBlOGZj
YjIwMzJkNjQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTExLTEyICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBD
bGVhbiB1cCB1c2Ugb2YgYWRqdXN0V2luZG93UmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGVkIGJ5IGZhc3QvZG9tL1dpbmRvdy9vcGVuLXdp
bmRvdy1taW4tc2l6ZS5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV2luZG93KToKKworICAgICAgICAgICAgVmFsaWRhdGUg
dGhlIHdpbmRvdyBzaXplIGhlcmUgc28gdGhhdCBpdCBpcyBub3QganVzdCBkb25lIGZvcgorICAg
ICAgICAgICAgLm9wZW4sIGJ1dCBhbHNvIGZvciAuc2hvd01vZGFsRGlhbG9nLiBUaGlzIGlzIGNv
bXBhdGlibGUgd2l0aAorICAgICAgICAgICAgb3RoZXIgYnJvd3NlcnMgc3VjaCBhcyBJRSBhbmQg
RmlyZWZveCAodGhvdWdoIElFID4gNiwgZW5mb3JjZXMKKyAgICAgICAgICAgIGEgbWluaW11bSB3
aWR0aCBvZiAyNTAgaW5zdGVhZCBvZiAxMDAgYXMgRmlyZWZveCBhbmQgdXMuKQorCisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QpOgorCisgICAgICAgICAgICBNYWtlIGl0
IGEgc3RhdGljIG1ldGhvZCB3aGljaCBvbmx5IHRha2VzIHBhZ2UuIEl0IHdhcyBuZXZlcgorICAg
ICAgICAgICAgY2FsbGVkIGZyb20gYW55d2hlcmUgd2l0aG91dCBhIHZhbGlkIHBhZ2UsIHNvIHRo
ZSBwYWdlIGNoZWNrCisgICAgICAgICAgICBoYXMgYmVlbiB0dXJuZWQgaW50byBhbiBhc3NlcnQs
IGFuZCB0d28gb2YgdGhlIGFyZ3VtZW50cyBoYXZlCisgICAgICAgICAgICBiZWVuIHJlbW92ZWQg
YXMgdGhleSBjYW4gYmUgYWNjZXNzZWQgdmlhIHRoZSBwYWdlLgorCisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om1vdmVCeSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlc2l6ZUJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cmVzaXplVG8pOgorCisgICAgICAgICAgICBVcGRhdGUgdXNlIG9m
IGFkanVzdFdpbmRvd1JlY3QuCisKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6
CisKKyAgICAgICAgICAgIEF2b2lkIG1vZGlmeWluZyB0aGUgV2luZG93RmVhdHVyZXMgYXMgdGhl
IFdlYkNvcmU6OmNyZWF0ZVdpbmRvdworICAgICAgICAgICAgdmFsaWRhdGVzIGFuZCBhZGp1c3Rz
IHRoZSBhcmd1bWVudHMuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAo
RE9NV2luZG93KToKKwogMjAxMi0xMS0xMyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIGluZGVudGF0aW9uIGxvZ2lj
IGludG8gVGV4dEVkaXRvck1vZGVsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApp
bmRleCBjZDdmZWFlZTdkMjgxOWYyYWY1Mzk2OTYxZmVkN2Q0Y2EwNGE2MGMwLi5mZmMyMjgzNGQy
NDdhMjQ1OGRjNDFmMDgwNGU2MWU5YTM2MmNjZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTMzMjEsMjEgKzMzMjEsMjUgQEAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhG
cmFtZSogb3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVx
dWUKICAgICBwYWdlLT5jaHJvbWUoKS0+c2V0UmVzaXphYmxlKGZlYXR1cmVzLnJlc2l6YWJsZSk7
CiAKICAgICAvLyAneCcgYW5kICd5JyBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiB0aGUgd2luZG93
LCB3aGlsZSAnd2lkdGgnIGFuZCAnaGVpZ2h0JwotICAgIC8vIHNwZWNpZnkgdGhlIHNpemUgb2Yg
dGhlIHBhZ2UuIFdlIGNhbiBvbmx5IHJlc2l6ZSB0aGUgd2luZG93LCBzbwotICAgIC8vIGFkanVz
dCBmb3IgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2luZG93IHNpemUgYW5kIHRoZSBwYWdl
IHNpemUuCisgICAgLy8gc3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgdmlld3BvcnQuIFdlIGNhbiBv
bmx5IHJlc2l6ZSB0aGUgd2luZG93LCBzbyBhZGp1c3QKKyAgICAvLyBmb3IgdGhlIGRpZmZlcmVu
Y2UgYmV0d2VlbiB0aGUgd2luZG93IHNpemUgYW5kIHRoZSB2aWV3cG9ydCBzaXplLgogCiAgICAg
RmxvYXRSZWN0IHdpbmRvd1JlY3QgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwotICAg
IEZsb2F0U2l6ZSBwYWdlU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLT5wYWdlUmVjdCgpLnNpemUoKTsK
KyAgICBGbG9hdFNpemUgdmlld3BvcnRTaXplID0gcGFnZS0+Y2hyb21lKCktPnBhZ2VSZWN0KCku
c2l6ZSgpOworCiAgICAgaWYgKGZlYXR1cmVzLnhTZXQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0
WChmZWF0dXJlcy54KTsKICAgICBpZiAoZmVhdHVyZXMueVNldCkKICAgICAgICAgd2luZG93UmVj
dC5zZXRZKGZlYXR1cmVzLnkpOwogICAgIGlmIChmZWF0dXJlcy53aWR0aFNldCkKLSAgICAgICAg
d2luZG93UmVjdC5zZXRXaWR0aChmZWF0dXJlcy53aWR0aCArICh3aW5kb3dSZWN0LndpZHRoKCkg
LSBwYWdlU2l6ZS53aWR0aCgpKSk7CisgICAgICAgIHdpbmRvd1JlY3Quc2V0V2lkdGgoZmVhdHVy
ZXMud2lkdGggKyAod2luZG93UmVjdC53aWR0aCgpIC0gdmlld3BvcnRTaXplLndpZHRoKCkpKTsK
ICAgICBpZiAoZmVhdHVyZXMuaGVpZ2h0U2V0KQotICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdo
dChmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHBhZ2VTaXplLmhlaWdo
dCgpKSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3Qod2luZG93UmVjdCk7Cisg
ICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KGZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dSZWN0
LmhlaWdodCgpIC0gdmlld3BvcnRTaXplLmhlaWdodCgpKSk7CisKKyAgICAvLyBFbnN1cmUgbm9u
LU5hTiB2YWx1ZXMsIG1pbmltdW0gc2l6ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2YWxpZCBz
Y3JlZW4gYXJlYS4KKyAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6YWRq
dXN0V2luZG93UmVjdChwYWdlLCB3aW5kb3dSZWN0KTsKIAorICAgIHBhZ2UtPmNocm9tZSgpLT5z
ZXRXaW5kb3dSZWN0KG5ld1dpbmRvd1JlY3QpOwogICAgIHBhZ2UtPmNocm9tZSgpLT5zaG93KCk7
CiAKICAgICBjcmVhdGVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBh
ODRmZWM1OWM5NWViODUxYzRiYTM3OWRmYzE4YTI3NWUzZjJmZGIwLi5hY2RlYzk1ZDhiYTQyOTk2
M2FiNzRiNzIwOTk1MmJiZWJlYjkzMjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC0zMDgsMTYgKzMwOCwxOCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hBbGxQZW5kaW5nVW5s
b2FkRXZlbnRzKCkKIH0KIAogLy8gVGhpcyBmdW5jdGlvbjoKLS8vIDEpIFZhbGlkYXRlcyB0aGUg
cGVuZGluZyBjaGFuZ2VzIGFyZSBub3QgY2hhbmdpbmcgdG8gTmFOCi0vLyAyKSBDb25zdHJhaW5z
IHRoZSB3aW5kb3cgcmVjdCB0byB0aGUgbWluaW11bSB3aW5kb3cgc2l6ZSBhbmQgbm8gYmlnZ2Vy
IHRoYW4KLS8vICAgIHRoZSB0aGUgZmxvYXQgcmVjdCdzIGRpbWVuc2lvbnMuCi0vLyAzKSBDb25z
dHJhaW4gd2luZG93IHJlY3QgdG8gd2l0aGluIHRoZSB0b3AgYW5kIGxlZnQgYm91bmRhcmllcyBv
ZiB0aGUgc2NyZWVuIHJlY3QKLS8vIDQpIENvbnN0cmFpbnQgdGhlIHdpbmRvdyByZWN0IHRvIHdp
dGhpbiB0aGUgYm90dG9tIGFuZCByaWdodCBib3VuZGFyaWVzIG9mIHRoZQotLy8gICAgc2NyZWVu
IHJlY3QuCi0vLyA1KSBUcmFuc2xhdGUgdGhlIHdpbmRvdyByZWN0IGNvb3JkaW5hdGVzIHRvIGJl
IHdpdGhpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZSBvZgotLy8gICAgdGhlIHNjcmVlbiByZWN0Lgot
dm9pZCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4s
IEZsb2F0UmVjdCYgd2luZG93LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKSBjb25z
dAorLy8gMSkgVmFsaWRhdGVzIHRoZSBwZW5kaW5nIGNoYW5nZXMgYXJlIG5vdCBjaGFuZ2luZyBh
bnkgdmFsdWUgdG8gTmFOOyBpbiB0aGF0IGNhc2Uga2VlcCBvcmlnaW5hbCB2YWx1ZS4KKy8vIDIp
IENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHRoZSBtaW5pbXVtIHdpbmRvdyBzaXplIGFu
ZCBubyBiaWdnZXIgdGhhbiB0aGUgZmxvYXQgcmVjdCdzIGRpbWVuc2lvbnMuCisvLyAzKSBDb25z
dHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIHRvcCBhbmQgbGVmdCBib3VuZGFy
aWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCisvLyA0KSBDb25zdHJhaW5zIHRoZSB3
aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIGJvdHRvbSBhbmQgcmlnaHQgYm91bmRhcmllcyBvZiB0
aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgorLy8gNSkgVHJhbnNsYXRlIHRoZSB3aW5kb3cgcmVj
dCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2YgdGhlIHNj
cmVlbi4KK0Zsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwg
Y29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKIHsKKyAgICBBU1NFUlQocGFnZSk7CisK
KyAgICBGbG9hdFJlY3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJh
bWUoKS0+dmlldygpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93ID0gcGFnZS0+Y2hyb21lKCktPndp
bmRvd1JlY3QoKTsKKwogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBpbiBhIHZhbGlkIHN0YXRlIGJl
Zm9yZSBhZGp1c3RpbmcgZGltZW5zaW9ucy4KICAgICBBU1NFUlQoaXNmaW5pdGUoc2NyZWVuLngo
KSkpOwogICAgIEFTU0VSVChpc2Zpbml0ZShzY3JlZW4ueSgpKSk7CkBAIC0zMjcsNyArMzI5LDcg
QEAgdm9pZCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3Jl
ZW4sIEZsb2F0UmVjdCYgd2luZG93LCBjb24KICAgICBBU1NFUlQoaXNmaW5pdGUod2luZG93Lnko
KSkpOwogICAgIEFTU0VSVChpc2Zpbml0ZSh3aW5kb3cud2lkdGgoKSkpOwogICAgIEFTU0VSVChp
c2Zpbml0ZSh3aW5kb3cuaGVpZ2h0KCkpKTsKLSAgICAKKwogICAgIC8vIFVwZGF0ZSB3aW5kb3cg
dmFsdWVzIGlmIG5ldyByZXF1ZXN0ZWQgdmFsdWVzIGFyZSBub3QgTmFOLgogICAgIGlmICghaXNu
YW4ocGVuZGluZ0NoYW5nZXMueCgpKSkKICAgICAgICAgd2luZG93LnNldFgocGVuZGluZ0NoYW5n
ZXMueCgpKTsKQEAgLTMzOCwxNSArMzQwLDE1IEBAIHZvaWQgRE9NV2luZG93OjphZGp1c3RXaW5k
b3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2NyZWVuLCBGbG9hdFJlY3QmIHdpbmRvdywgY29uCiAg
ICAgaWYgKCFpc25hbihwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSkpCiAgICAgICAgIHdpbmRvdy5z
ZXRIZWlnaHQocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpOwogCi0gICAgQVNTRVJUKG1fZnJhbWUp
OwotICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7Ci0gICAgRmxvYXRTaXplIG1pbmlt
dW1TaXplID0gcGFnZSA/IG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5taW5p
bXVtV2luZG93U2l6ZSgpIDogRmxvYXRTaXplKDEwMCwgMTAwKTsKKyAgICBGbG9hdFNpemUgbWlu
aW11bVNpemUgPSBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPm1pbmltdW1XaW5kb3dTaXplKCk7
CiAgICAgd2luZG93LnNldFdpZHRoKG1pbihtYXgobWluaW11bVNpemUud2lkdGgoKSwgd2luZG93
LndpZHRoKCkpLCBzY3JlZW4ud2lkdGgoKSkpOwogICAgIHdpbmRvdy5zZXRIZWlnaHQobWluKG1h
eChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93LmhlaWdodCgpKSwgc2NyZWVuLmhlaWdodCgp
KSk7CiAKLSAgICAvLyBDb25zdHJhaW4gdGhlIHdpbmRvdyBwb3NpdGlvbiB0byB0aGUgc2NyZWVu
LgorICAgIC8vIENvbnN0cmFpbiB0aGUgd2luZG93IHBvc2l0aW9uIHdpdGhpbiB0aGUgdmFsaWQg
c2NyZWVuIGFyZWEuCiAgICAgd2luZG93LnNldFgobWF4KHNjcmVlbi54KCksIG1pbih3aW5kb3cu
eCgpLCBzY3JlZW4ubWF4WCgpIC0gd2luZG93LndpZHRoKCkpKSk7CiAgICAgd2luZG93LnNldFko
bWF4KHNjcmVlbi55KCksIG1pbih3aW5kb3cueSgpLCBzY3JlZW4ubWF4WSgpIC0gd2luZG93Lmhl
aWdodCgpKSkpOworCisgICAgcmV0dXJuIHdpbmRvdzsKIH0KIAogLy8gRklYTUU6IFdlIGNhbiBy
ZW1vdmUgdGhpcyBmdW5jdGlvbiBvbmNlIFY4IHNob3dNb2RhbERpYWxvZyBpcyBjaGFuZ2VkIHRv
IHVzZSBET01XaW5kb3cuCkBAIC0xNDUwLDggKzE0NTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6bW92
ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwog
ICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwogICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0
YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4u
KQotICAgIGFkanVzdFdpbmRvd1JlY3Qoc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJh
bWUoKS0+dmlldygpKSwgZnIsIHVwZGF0ZSk7Ci0gICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRv
d1JlY3QoZnIpOworICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRv
d1JlY3QocGFnZSwgdXBkYXRlKSk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQg
eCwgZmxvYXQgeSkgY29uc3QKQEAgLTE0NzAsMTAgKzE0NzEsOSBAQCB2b2lkIERPTVdpbmRvdzo6
bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgRmxvYXRSZWN0IHNyID0gc2NyZWVu
QXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKTsKICAgICBmci5zZXRMb2Nh
dGlvbihzci5sb2NhdGlvbigpKTsKICAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7Ci0gICAgdXBk
YXRlLm1vdmUoeCwgeSk7ICAgICAKKyAgICB1cGRhdGUubW92ZSh4LCB5KTsKICAgICAvLyBTZWN1
cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRv
IGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICBhZGp1c3RXaW5kb3dSZWN0KHNyLCBmciwgdXBk
YXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAgcGFnZS0+
Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsK
IH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CkBA
IC0xNDkxLDggKzE0OTEsNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxv
YXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS0+d2luZG93UmVj
dCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRTaXplKHgsIHkpOwog
ICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0gICAgYWRqdXN0V2lu
ZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpLCBm
ciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAg
cGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRh
dGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRvKGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQpIGNvbnN0CkBAIC0xNTEwLDggKzE1MDksNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXpl
VG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBw
YWdlLT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gRmxvYXRT
aXplKHdpZHRoLCBoZWlnaHQpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwg
ZGVzdCk7Ci0gICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1h
aW5GcmFtZSgpLT52aWV3KCkpLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0
V2luZG93UmVjdChmcik7CisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QoYWRqdXN0
V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6c2V0VGltZW91
dChQYXNzT3duUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwgRXhjZXB0
aW9uQ29kZSYgZWMpCkBAIC0xOTMwLDE1ICsxOTI4LDYgQEAgUGFzc1JlZlB0cjxET01XaW5kb3c+
IERPTVdpbmRvdzo6b3Blbihjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgQXRvbWljU3Ry
aW4KICAgICB9CiAKICAgICBXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcyh3aW5kb3dGZWF0
dXJlc1N0cmluZyk7Ci0gICAgRmxvYXRSZWN0IHdpbmRvd1JlY3Qod2luZG93RmVhdHVyZXMueFNl
dCA/IHdpbmRvd0ZlYXR1cmVzLnggOiAwLCB3aW5kb3dGZWF0dXJlcy55U2V0ID8gd2luZG93RmVh
dHVyZXMueSA6IDAsCi0gICAgICAgIHdpbmRvd0ZlYXR1cmVzLndpZHRoU2V0ID8gd2luZG93RmVh
dHVyZXMud2lkdGggOiAwLCB3aW5kb3dGZWF0dXJlcy5oZWlnaHRTZXQgPyB3aW5kb3dGZWF0dXJl
cy5oZWlnaHQgOiAwKTsKLSAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOwotICAgIERP
TVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UgPyBwYWdl
LT5tYWluRnJhbWUoKS0+dmlldygpIDogMCksIHdpbmRvd1JlY3QsIHdpbmRvd1JlY3QpOwotICAg
IHdpbmRvd0ZlYXR1cmVzLnggPSB3aW5kb3dSZWN0LngoKTsKLSAgICB3aW5kb3dGZWF0dXJlcy55
ID0gd2luZG93UmVjdC55KCk7Ci0gICAgd2luZG93RmVhdHVyZXMuaGVpZ2h0ID0gd2luZG93UmVj
dC5oZWlnaHQoKTsKLSAgICB3aW5kb3dGZWF0dXJlcy53aWR0aCA9IHdpbmRvd1JlY3Qud2lkdGgo
KTsKLQogICAgIEZyYW1lKiByZXN1bHQgPSBjcmVhdGVXaW5kb3codXJsU3RyaW5nLCBmcmFtZU5h
bWUsIHdpbmRvd0ZlYXR1cmVzLCBhY3RpdmVXaW5kb3csIGZpcnN0RnJhbWUsIG1fZnJhbWUpOwog
ICAgIHJldHVybiByZXN1bHQgPyByZXN1bHQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpIDogMDsK
IH0KQEAgLTE5NTgsNyArMTk0Nyw4IEBAIHZvaWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2co
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlhbG9nRmVhCiAgICAgaWYg
KCFjYW5TaG93TW9kYWxEaWFsb2dOb3cobV9mcmFtZSkgfHwgIWZpcnN0V2luZG93LT5hbGxvd1Bv
cFVwKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lKiBkaWFsb2dGcmFtZSA9IGNyZWF0
ZVdpbmRvdyh1cmxTdHJpbmcsIGVtcHR5QXRvbSwgV2luZG93RmVhdHVyZXMoZGlhbG9nRmVhdHVy
ZXNTdHJpbmcsIHNjcmVlbkF2YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSksCisgICAgV2lu
ZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXMoZGlhbG9nRmVhdHVyZXNTdHJpbmcsIHNjcmVlbkF2
YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSk7CisgICAgRnJhbWUqIGRpYWxvZ0ZyYW1lID0g
Y3JlYXRlV2luZG93KHVybFN0cmluZywgZW1wdHlBdG9tLCB3aW5kb3dGZWF0dXJlcywKICAgICAg
ICAgYWN0aXZlV2luZG93LCBmaXJzdEZyYW1lLCBtX2ZyYW1lLCBmdW5jdGlvbiwgZnVuY3Rpb25D
b250ZXh0KTsKICAgICBpZiAoIWRpYWxvZ0ZyYW1lKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaAppbmRleCA5NWY2ZWYxZWVkZWNlOTNiY2ZkMWQwYzY2M2FiNjY2YWM1ZmVm
YTY1Li40MjRmNThhMmU0YjVjNjA1OTc3MTIxZDFmZjMwZWM5OWZiYjM4ZWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHN0YXRpYyBib29sIGRpc3BhdGNoQWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2ZW50cygp
OwogICAgICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKTsK
IAotICAgICAgICB2b2lkIGFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4s
IEZsb2F0UmVjdCYgd2luZG93LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKSBjb25z
dDsKKyAgICAgICAgc3RhdGljIEZsb2F0UmVjdCBhZGp1c3RXaW5kb3dSZWN0KFBhZ2UqLCBjb25z
dCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKIAogICAgICAgICAvLyBGSVhNRTogV2UgY2Fu
IHJlbW92ZSB0aGlzIGZ1bmN0aW9uIG9uY2UgVjggc2hvd01vZGFsRGlhbG9nIGlzIGNoYW5nZWQg
dG8gdXNlIERPTVdpbmRvdy4KICAgICAgICAgc3RhdGljIHZvaWQgcGFyc2VNb2RhbERpYWxvZ0Zl
YXR1cmVzKGNvbnN0IFN0cmluZyYsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Jik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTY5YTYxMjk1NWU0OWVkYjRlMTg4NDliNGNiZTg3YTY0NjI2Yjg5Yy4uYjk1MDIzODdiNGYwNjQ3
ZTNiNTMxNzQ0ZTg2ZmQ2ZWE1NTM1MjVmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEx
LTEyICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBDbGVhbiB1cCB1c2Ugb2YgYWRqdXN0V2luZG93UmVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMDcyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IG1pbmltdW0gc2l6ZXMg
YXJlIGhvbm9yZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvb3Blbi13aW5kb3ctbWlu
LXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L29wZW4td2luZG93
LW1pbi1zaXplLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93
L3Jlc291cmNlcy9yZXBvcnQtc2l6ZS1hbmQtY2xvc2UuaHRtbDogQWRkZWQuCisKIDIwMTItMTEt
MTMgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgUXQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L29wZW4td2luZG93LW1pbi1zaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1taW4tc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTlkY2VkOTMxM2NkODYzZTE0NGQzMDQ3YTE3MDgyZjRhNDc1MTkxYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1taW4tc2l6ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK1BBU1MgMTAwIGlzID49IDEwMAorUEFTUyAxMDAgaXMgPj0gMTAw
CitQQVNTIDEwMCBpcyA+PSAxMDAKK1BBU1MgMTAwIGlzID49IDEwMAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3Blbi13aW5kb3ctbWluLXNpemUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1taW4tc2l6ZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM3MDc3YzM3MGRlYjk4OWZjZThlMDgzNjdiNjNkZDkwYzliM2JiOGMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3Blbi13aW5kb3ctbWluLXNp
emUuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gdmFsaWRhdGUobXNnKSB7CisgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwobXNn
WyJ3aWR0aCJdLnRvU3RyaW5nKCksICIxMDAiKTsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JF
cXVhbChtc2dbImhlaWdodCJdLnRvU3RyaW5nKCksICIxMDAiKTsKK30KKworZnVuY3Rpb24gdGVz
dCgpIHsKKyAgICB2YXIgZGF0YSA9IHdpbmRvdy5zaG93TW9kYWxEaWFsb2coInJlc291cmNlcy9y
ZXBvcnQtc2l6ZS1hbmQtY2xvc2UuaHRtbCIsICIiLCAiZGlhbG9nV2lkdGg6MTA7IGRpYWxvZ0hl
aWdodDoxMCIpOworICAgIHZhbGlkYXRlKGRhdGEpOworCisgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhbGlkYXRlKGUuZGF0YSk7
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0sIGZhbHNlKTsKKyAgICB3
aW5kb3cub3BlbigicmVzb3VyY2VzL3JlcG9ydC1zaXplLWFuZC1jbG9zZS5odG1sIiwgIm5vbi1l
bXB0eS1hcmd1bWVudCIsICJ3aWR0aD0xMCwgaGVpZ2h0PTEwIik7Cit9CisKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsK
KyAgICB0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVl
KTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
cmVzb3VyY2VzL3JlcG9ydC1zaXplLWFuZC1jbG9zZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3Jlc291cmNlcy9yZXBvcnQtc2l6ZS1hbmQtY2xvc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42MzNjMmFiMGM2M2FkODJjN2ZlZTM2NjU5MDEwOWE4ZWIxYzYxMzBjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9yZXBvcnQtc2l6ZS1h
bmQtY2xvc2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpIj4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkZWQoKSB7CisgICAgdmFyIG1zZyA9IHsgIndpZHRoIjog
d2luZG93Lm91dGVyV2lkdGgsICJoZWlnaHQiOiB3aW5kb3cub3V0ZXJIZWlnaHQgfTsKKyAgICBp
ZiAod2luZG93LmRpYWxvZ0FyZ3VtZW50cyAhPSB1bmRlZmluZWQpCisgICAgICAgIHdpbmRvdy5y
ZXR1cm5WYWx1ZSA9IG1zZzsKKyAgICBlbHNlCisgICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1l
c3NhZ2UobXNnLCAnKicpOworICAgIHdpbmRvdy5jbG9zZSgpOworfQorPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174118</attachid>
            <date>2012-11-14 02:42:52 -0800</date>
            <delta_ts>2012-11-14 03:05:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102072-20121114114045.patch</filename>
            <type>text/plain</type>
            <size>15253</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU0Yzc1Yjk4NDBjZGUy
NWRhZjI0OTg0MzlmM2E1MWI2YjZkYmY4ZC4uZjhmMjdkYmVjOTY0NjczYTNjOTY5NWU4ZjdjOTk4
YThhZjExZWFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTExLTEyICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBD
bGVhbiB1cCB1c2Ugb2YgYWRqdXN0V2luZG93UmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR3l1
eW91bmcgS2ltLgorCisgICAgICAgIFRlc3RlZCBieSBmYXN0L2RvbS9XaW5kb3cvb3Blbi13aW5k
b3ctbWluLXNpemUuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6CisKKyAgICAgICAgICAgIFZhbGlkYXRlIHRo
ZSB3aW5kb3cgc2l6ZSBoZXJlIHNvIHRoYXQgaXQgaXMgbm90IGp1c3QgZG9uZSBmb3IKKyAgICAg
ICAgICAgIC5vcGVuLCBidXQgYWxzbyBmb3IgLnNob3dNb2RhbERpYWxvZy4gVGhpcyBpcyBjb21w
YXRpYmxlIHdpdGgKKyAgICAgICAgICAgIG90aGVyIGJyb3dzZXJzIHN1Y2ggYXMgSUUgYW5kIEZp
cmVmb3ggKHRob3VnaCBJRSA+IDYsIGVuZm9yY2VzCisgICAgICAgICAgICBhIG1pbmltdW0gd2lk
dGggb2YgMjUwIGluc3RlYWQgb2YgMTAwIGFzIEZpcmVmb3ggYW5kIHVzLikKKworICAgICAgICAq
IHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KToKKworICAgICAgICAgICAgTWFrZSBpdCBh
IHN0YXRpYyBtZXRob2Qgd2hpY2ggb25seSB0YWtlcyBwYWdlLiBJdCB3YXMgbmV2ZXIKKyAgICAg
ICAgICAgIGNhbGxlZCBmcm9tIGFueXdoZXJlIHdpdGhvdXQgYSB2YWxpZCBwYWdlLCBzbyB0aGUg
cGFnZSBjaGVjaworICAgICAgICAgICAgaGFzIGJlZW4gdHVybmVkIGludG8gYW4gYXNzZXJ0LCBh
bmQgdHdvIG9mIHRoZSBhcmd1bWVudHMgaGF2ZQorICAgICAgICAgICAgYmVlbiByZW1vdmVkIGFz
IHRoZXkgY2FuIGJlIGFjY2Vzc2VkIHZpYSB0aGUgcGFnZS4KKworICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojptb3ZlQnkpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojptb3ZlVG8p
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OnJlc2l6ZVRvKToKKworICAgICAgICAgICAgVXBkYXRlIHVzZSBvZiBh
ZGp1c3RXaW5kb3dSZWN0LgorCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om9wZW4pOgor
CisgICAgICAgICAgICBBdm9pZCBtb2RpZnlpbmcgdGhlIFdpbmRvd0ZlYXR1cmVzIGFzIHRoZSBX
ZWJDb3JlOjpjcmVhdGVXaW5kb3cKKyAgICAgICAgICAgIHZhbGlkYXRlcyBhbmQgYWRqdXN0cyB0
aGUgYXJndW1lbnRzLgorCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKERP
TVdpbmRvdyk6CisKIDIwMTItMTEtMTMgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBNaXNzaW5nIE5vZGVSZW5kZXJTdHlsZS5oIGluY2x1ZGUgaW4g
V2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IGNkN2ZlYWVlN2QyODE5ZjJhZjUzOTY5NjFmZWQ3ZDRjYTA0YTYw
YzAuLmZmYzIyODM0ZDI0N2EyNDU4ZGM0MWYwODA0ZTYxZTlhMzYyY2NlNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzMyMSwyMSArMzMyMSwyNSBAQCBGcmFtZSog
Y3JlYXRlV2luZG93KEZyYW1lKiBvcGVuZXJGcmFtZSwgRnJhbWUqIGxvb2t1cEZyYW1lLCBjb25z
dCBGcmFtZUxvYWRSZXF1ZQogICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRSZXNpemFibGUoZmVhdHVy
ZXMucmVzaXphYmxlKTsKIAogICAgIC8vICd4JyBhbmQgJ3knIHNwZWNpZnkgdGhlIGxvY2F0aW9u
IG9mIHRoZSB3aW5kb3csIHdoaWxlICd3aWR0aCcgYW5kICdoZWlnaHQnCi0gICAgLy8gc3BlY2lm
eSB0aGUgc2l6ZSBvZiB0aGUgcGFnZS4gV2UgY2FuIG9ubHkgcmVzaXplIHRoZSB3aW5kb3csIHNv
Ci0gICAgLy8gYWRqdXN0IGZvciB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aW5kb3cgc2l6
ZSBhbmQgdGhlIHBhZ2Ugc2l6ZS4KKyAgICAvLyBzcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSB2aWV3
cG9ydC4gV2UgY2FuIG9ubHkgcmVzaXplIHRoZSB3aW5kb3csIHNvIGFkanVzdAorICAgIC8vIGZv
ciB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aW5kb3cgc2l6ZSBhbmQgdGhlIHZpZXdwb3J0
IHNpemUuCiAKICAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCA9IHBhZ2UtPmNocm9tZSgpLT53aW5k
b3dSZWN0KCk7Ci0gICAgRmxvYXRTaXplIHBhZ2VTaXplID0gcGFnZS0+Y2hyb21lKCktPnBhZ2VS
ZWN0KCkuc2l6ZSgpOworICAgIEZsb2F0U2l6ZSB2aWV3cG9ydFNpemUgPSBwYWdlLT5jaHJvbWUo
KS0+cGFnZVJlY3QoKS5zaXplKCk7CisKICAgICBpZiAoZmVhdHVyZXMueFNldCkKICAgICAgICAg
d2luZG93UmVjdC5zZXRYKGZlYXR1cmVzLngpOwogICAgIGlmIChmZWF0dXJlcy55U2V0KQogICAg
ICAgICB3aW5kb3dSZWN0LnNldFkoZmVhdHVyZXMueSk7CiAgICAgaWYgKGZlYXR1cmVzLndpZHRo
U2V0KQotICAgICAgICB3aW5kb3dSZWN0LnNldFdpZHRoKGZlYXR1cmVzLndpZHRoICsgKHdpbmRv
d1JlY3Qud2lkdGgoKSAtIHBhZ2VTaXplLndpZHRoKCkpKTsKKyAgICAgICAgd2luZG93UmVjdC5z
ZXRXaWR0aChmZWF0dXJlcy53aWR0aCArICh3aW5kb3dSZWN0LndpZHRoKCkgLSB2aWV3cG9ydFNp
emUud2lkdGgoKSkpOwogICAgIGlmIChmZWF0dXJlcy5oZWlnaHRTZXQpCi0gICAgICAgIHdpbmRv
d1JlY3Quc2V0SGVpZ2h0KGZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dSZWN0LmhlaWdodCgpIC0g
cGFnZVNpemUuaGVpZ2h0KCkpKTsKLSAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdCh3
aW5kb3dSZWN0KTsKKyAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoZmVhdHVyZXMuaGVpZ2h0
ICsgKHdpbmRvd1JlY3QuaGVpZ2h0KCkgLSB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpKTsKKworICAg
IC8vIEVuc3VyZSBub24tTmFOIHZhbHVlcywgbWluaW11bSBzaXplIGFzIHdlbGwgYXMgYmVpbmcg
d2l0aGluIHZhbGlkIHNjcmVlbiBhcmVhLgorICAgIEZsb2F0UmVjdCBuZXdXaW5kb3dSZWN0ID0g
RE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHdpbmRvd1JlY3QpOwogCisgICAgcGFn
ZS0+Y2hyb21lKCktPnNldFdpbmRvd1JlY3QobmV3V2luZG93UmVjdCk7CiAgICAgcGFnZS0+Y2hy
b21lKCktPnNob3coKTsKIAogICAgIGNyZWF0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCmluZGV4IGE4NGZlYzU5Yzk1ZWI4NTFjNGJhMzc5ZGZjMThhMjc1ZTNmMmZkYjAuLmFj
ZGVjOTVkOGJhNDI5OTYzYWI3NGI3MjA5OTUyYmJlYmViOTMyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKQEAgLTMwOCwxNiArMzA4LDE4IEBAIHZvaWQgRE9NV2luZG93OjpkaXNwYXRj
aEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKQogfQogCiAvLyBUaGlzIGZ1bmN0aW9uOgotLy8gMSkg
VmFsaWRhdGVzIHRoZSBwZW5kaW5nIGNoYW5nZXMgYXJlIG5vdCBjaGFuZ2luZyB0byBOYU4KLS8v
IDIpIENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHRoZSBtaW5pbXVtIHdpbmRvdyBzaXpl
IGFuZCBubyBiaWdnZXIgdGhhbgotLy8gICAgdGhlIHRoZSBmbG9hdCByZWN0J3MgZGltZW5zaW9u
cy4KLS8vIDMpIENvbnN0cmFpbiB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIHRvcCBhbmQgbGVm
dCBib3VuZGFyaWVzIG9mIHRoZSBzY3JlZW4gcmVjdAotLy8gNCkgQ29uc3RyYWludCB0aGUgd2lu
ZG93IHJlY3QgdG8gd2l0aGluIHRoZSBib3R0b20gYW5kIHJpZ2h0IGJvdW5kYXJpZXMgb2YgdGhl
Ci0vLyAgICBzY3JlZW4gcmVjdC4KLS8vIDUpIFRyYW5zbGF0ZSB0aGUgd2luZG93IHJlY3QgY29v
cmRpbmF0ZXMgdG8gYmUgd2l0aGluIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mCi0vLyAgICB0aGUg
c2NyZWVuIHJlY3QuCi12b2lkIERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChjb25zdCBGbG9h
dFJlY3QmIHNjcmVlbiwgRmxvYXRSZWN0JiB3aW5kb3csIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGlu
Z0NoYW5nZXMpIGNvbnN0CisvLyAxKSBWYWxpZGF0ZXMgdGhlIHBlbmRpbmcgY2hhbmdlcyBhcmUg
bm90IGNoYW5naW5nIGFueSB2YWx1ZSB0byBOYU47IGluIHRoYXQgY2FzZSBrZWVwIG9yaWdpbmFs
IHZhbHVlLgorLy8gMikgQ29uc3RyYWlucyB0aGUgd2luZG93IHJlY3QgdG8gdGhlIG1pbmltdW0g
d2luZG93IHNpemUgYW5kIG5vIGJpZ2dlciB0aGFuIHRoZSBmbG9hdCByZWN0J3MgZGltZW5zaW9u
cy4KKy8vIDMpIENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhpbiB0aGUgdG9wIGFu
ZCBsZWZ0IGJvdW5kYXJpZXMgb2YgdGhlIGF2YWlsYWJsZSBzY3JlZW4gcmVjdC4KKy8vIDQpIENv
bnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhpbiB0aGUgYm90dG9tIGFuZCByaWdodCBi
b3VuZGFyaWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCisvLyA1KSBUcmFuc2xhdGUg
dGhlIHdpbmRvdyByZWN0IGNvb3JkaW5hdGVzIHRvIGJlIHdpdGhpbiB0aGUgY29vcmRpbmF0ZSBz
cGFjZSBvZiB0aGUgc2NyZWVuLgorRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVj
dChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKQogeworICAgIEFT
U0VSVChwYWdlKTsKKworICAgIEZsb2F0UmVjdCBzY3JlZW4gPSBzY3JlZW5BdmFpbGFibGVSZWN0
KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpOworICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdl
LT5jaHJvbWUoKS0+d2luZG93UmVjdCgpOworCiAgICAgLy8gTWFrZSBzdXJlIHdlJ3JlIGluIGEg
dmFsaWQgc3RhdGUgYmVmb3JlIGFkanVzdGluZyBkaW1lbnNpb25zLgogICAgIEFTU0VSVChpc2Zp
bml0ZShzY3JlZW4ueCgpKSk7CiAgICAgQVNTRVJUKGlzZmluaXRlKHNjcmVlbi55KCkpKTsKQEAg
LTMyNyw3ICszMjksNyBAQCB2b2lkIERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChjb25zdCBG
bG9hdFJlY3QmIHNjcmVlbiwgRmxvYXRSZWN0JiB3aW5kb3csIGNvbgogICAgIEFTU0VSVChpc2Zp
bml0ZSh3aW5kb3cueSgpKSk7CiAgICAgQVNTRVJUKGlzZmluaXRlKHdpbmRvdy53aWR0aCgpKSk7
CiAgICAgQVNTRVJUKGlzZmluaXRlKHdpbmRvdy5oZWlnaHQoKSkpOwotICAgIAorCiAgICAgLy8g
VXBkYXRlIHdpbmRvdyB2YWx1ZXMgaWYgbmV3IHJlcXVlc3RlZCB2YWx1ZXMgYXJlIG5vdCBOYU4u
CiAgICAgaWYgKCFpc25hbihwZW5kaW5nQ2hhbmdlcy54KCkpKQogICAgICAgICB3aW5kb3cuc2V0
WChwZW5kaW5nQ2hhbmdlcy54KCkpOwpAQCAtMzM4LDE1ICszNDAsMTUgQEAgdm9pZCBET01XaW5k
b3c6OmFkanVzdFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JiBzY3JlZW4sIEZsb2F0UmVjdCYg
d2luZG93LCBjb24KICAgICBpZiAoIWlzbmFuKHBlbmRpbmdDaGFuZ2VzLmhlaWdodCgpKSkKICAg
ICAgICAgd2luZG93LnNldEhlaWdodChwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSk7CiAKLSAgICBB
U1NFUlQobV9mcmFtZSk7Ci0gICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBG
bG9hdFNpemUgbWluaW11bVNpemUgPSBwYWdlID8gbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+
Y2xpZW50KCktPm1pbmltdW1XaW5kb3dTaXplKCkgOiBGbG9hdFNpemUoMTAwLCAxMDApOworICAg
IEZsb2F0U2l6ZSBtaW5pbXVtU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+bWluaW11
bVdpbmRvd1NpemUoKTsKICAgICB3aW5kb3cuc2V0V2lkdGgobWluKG1heChtaW5pbXVtU2l6ZS53
aWR0aCgpLCB3aW5kb3cud2lkdGgoKSksIHNjcmVlbi53aWR0aCgpKSk7CiAgICAgd2luZG93LnNl
dEhlaWdodChtaW4obWF4KG1pbmltdW1TaXplLmhlaWdodCgpLCB3aW5kb3cuaGVpZ2h0KCkpLCBz
Y3JlZW4uaGVpZ2h0KCkpKTsKIAotICAgIC8vIENvbnN0cmFpbiB0aGUgd2luZG93IHBvc2l0aW9u
IHRvIHRoZSBzY3JlZW4uCisgICAgLy8gQ29uc3RyYWluIHRoZSB3aW5kb3cgcG9zaXRpb24gd2l0
aGluIHRoZSB2YWxpZCBzY3JlZW4gYXJlYS4KICAgICB3aW5kb3cuc2V0WChtYXgoc2NyZWVuLngo
KSwgbWluKHdpbmRvdy54KCksIHNjcmVlbi5tYXhYKCkgLSB3aW5kb3cud2lkdGgoKSkpKTsKICAg
ICB3aW5kb3cuc2V0WShtYXgoc2NyZWVuLnkoKSwgbWluKHdpbmRvdy55KCksIHNjcmVlbi5tYXhZ
KCkgLSB3aW5kb3cuaGVpZ2h0KCkpKSk7CisKKyAgICByZXR1cm4gd2luZG93OwogfQogCiAvLyBG
SVhNRTogV2UgY2FuIHJlbW92ZSB0aGlzIGZ1bmN0aW9uIG9uY2UgVjggc2hvd01vZGFsRGlhbG9n
IGlzIGNoYW5nZWQgdG8gdXNlIERPTVdpbmRvdy4KQEAgLTE0NTAsOCArMTQ1Miw3IEBAIHZvaWQg
RE9NV2luZG93Ojptb3ZlQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3Qg
dXBkYXRlID0gZnI7CiAgICAgdXBkYXRlLm1vdmUoeCwgeSk7CiAgICAgLy8gU2VjdXJpdHkgY2hl
Y2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxl
IHRoaXMgY2hlY2suLi4pCi0gICAgYWRqdXN0V2luZG93UmVjdChzY3JlZW5BdmFpbGFibGVSZWN0
KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpLCBmciwgdXBkYXRlKTsKLSAgICBwYWdlLT5jaHJv
bWUoKS0+c2V0V2luZG93UmVjdChmcik7CisgICAgcGFnZS0+Y2hyb21lKCktPnNldFdpbmRvd1Jl
Y3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6
Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApAQCAtMTQ3MCwxMCArMTQ3MSw5IEBAIHZv
aWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBGbG9hdFJl
Y3Qgc3IgPSBzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpOwog
ICAgIGZyLnNldExvY2F0aW9uKHNyLmxvY2F0aW9uKCkpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUg
PSBmcjsKLSAgICB1cGRhdGUubW92ZSh4LCB5KTsgICAgIAorICAgIHVwZGF0ZS5tb3ZlKHgsIHkp
OwogICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxC
cm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIGFkanVzdFdpbmRvd1Jl
Y3Qoc3IsIGZyLCB1cGRhdGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZy
KTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBh
Z2UsIHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxv
YXQgeSkgY29uc3QKQEAgLTE0OTEsOCArMTQ5MSw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVC
eShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9t
ZSgpLT53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRTaXplIGRlc3QgPSBmci5zaXplKCkgKyBGbG9h
dFNpemUoeCwgeSk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsK
LSAgICBhZGp1c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS0+bWFpbkZyYW1l
KCktPnZpZXcoKSksIGZyLCB1cGRhdGUpOwotICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRXaW5kb3dS
ZWN0KGZyKTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dS
ZWN0KHBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQg
d2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKQEAgLTE1MTAsOCArMTUwOSw3IEBAIHZvaWQgRE9N
V2luZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25zdAogICAgIEZs
b2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLT53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRTaXpl
IGRlc3QgPSBGbG9hdFNpemUod2lkdGgsIGhlaWdodCk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZShm
ci5sb2NhdGlvbigpLCBkZXN0KTsKLSAgICBhZGp1c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJs
ZVJlY3QocGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKSksIGZyLCB1cGRhdGUpOwotICAgIHBhZ2Ut
PmNocm9tZSgpLT5zZXRXaW5kb3dSZWN0KGZyKTsKKyAgICBwYWdlLT5jaHJvbWUoKS0+c2V0V2lu
ZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOwogfQogCiBpbnQgRE9NV2lu
ZG93OjpzZXRUaW1lb3V0KFBhc3NPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0
aW1lb3V0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTE5MzAsMTUgKzE5MjgsNiBAQCBQYXNzUmVm
UHRyPERPTVdpbmRvdz4gRE9NV2luZG93OjpvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBj
b25zdCBBdG9taWNTdHJpbgogICAgIH0KIAogICAgIFdpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1
cmVzKHdpbmRvd0ZlYXR1cmVzU3RyaW5nKTsKLSAgICBGbG9hdFJlY3Qgd2luZG93UmVjdCh3aW5k
b3dGZWF0dXJlcy54U2V0ID8gd2luZG93RmVhdHVyZXMueCA6IDAsIHdpbmRvd0ZlYXR1cmVzLnlT
ZXQgPyB3aW5kb3dGZWF0dXJlcy55IDogMCwKLSAgICAgICAgd2luZG93RmVhdHVyZXMud2lkdGhT
ZXQgPyB3aW5kb3dGZWF0dXJlcy53aWR0aCA6IDAsIHdpbmRvd0ZlYXR1cmVzLmhlaWdodFNldCA/
IHdpbmRvd0ZlYXR1cmVzLmhlaWdodCA6IDApOwotICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5w
YWdlKCk7Ci0gICAgRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KHNjcmVlbkF2YWlsYWJsZVJl
Y3QocGFnZSA/IHBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkgOiAwKSwgd2luZG93UmVjdCwgd2lu
ZG93UmVjdCk7Ci0gICAgd2luZG93RmVhdHVyZXMueCA9IHdpbmRvd1JlY3QueCgpOwotICAgIHdp
bmRvd0ZlYXR1cmVzLnkgPSB3aW5kb3dSZWN0LnkoKTsKLSAgICB3aW5kb3dGZWF0dXJlcy5oZWln
aHQgPSB3aW5kb3dSZWN0LmhlaWdodCgpOwotICAgIHdpbmRvd0ZlYXR1cmVzLndpZHRoID0gd2lu
ZG93UmVjdC53aWR0aCgpOwotCiAgICAgRnJhbWUqIHJlc3VsdCA9IGNyZWF0ZVdpbmRvdyh1cmxT
dHJpbmcsIGZyYW1lTmFtZSwgd2luZG93RmVhdHVyZXMsIGFjdGl2ZVdpbmRvdywgZmlyc3RGcmFt
ZSwgbV9mcmFtZSk7CiAgICAgcmV0dXJuIHJlc3VsdCA/IHJlc3VsdC0+ZG9jdW1lbnQoKS0+ZG9t
V2luZG93KCkgOiAwOwogfQpAQCAtMTk1OCw3ICsxOTQ3LDggQEAgdm9pZCBET01XaW5kb3c6OnNo
b3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBkaWFs
b2dGZWEKICAgICBpZiAoIWNhblNob3dNb2RhbERpYWxvZ05vdyhtX2ZyYW1lKSB8fCAhZmlyc3RX
aW5kb3ctPmFsbG93UG9wVXAoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWUqIGRpYWxv
Z0ZyYW1lID0gY3JlYXRlV2luZG93KHVybFN0cmluZywgZW1wdHlBdG9tLCBXaW5kb3dGZWF0dXJl
cyhkaWFsb2dGZWF0dXJlc1N0cmluZywgc2NyZWVuQXZhaWxhYmxlUmVjdChtX2ZyYW1lLT52aWV3
KCkpKSwKKyAgICBXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcyhkaWFsb2dGZWF0dXJlc1N0
cmluZywgc2NyZWVuQXZhaWxhYmxlUmVjdChtX2ZyYW1lLT52aWV3KCkpKTsKKyAgICBGcmFtZSog
ZGlhbG9nRnJhbWUgPSBjcmVhdGVXaW5kb3codXJsU3RyaW5nLCBlbXB0eUF0b20sIHdpbmRvd0Zl
YXR1cmVzLAogICAgICAgICBhY3RpdmVXaW5kb3csIGZpcnN0RnJhbWUsIG1fZnJhbWUsIGZ1bmN0
aW9uLCBmdW5jdGlvbkNvbnRleHQpOwogICAgIGlmICghZGlhbG9nRnJhbWUpCiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDk1ZjZlZjFlZWRlY2U5M2JjZmQxZDBj
NjYzYWI2NjZhYzVmZWZhNjUuLjQyNGY1OGEyZTRiNWM2MDU5NzcxMjFkMWZmMzBlYzk5ZmJiMzhl
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMTIwLDcgKzEyMCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIGJvb2wgZGlzcGF0Y2hBbGxQZW5kaW5nQmVmb3Jl
VW5sb2FkRXZlbnRzKCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoQWxsUGVuZGluZ1Vu
bG9hZEV2ZW50cygpOwogCi0gICAgICAgIHZvaWQgYWRqdXN0V2luZG93UmVjdChjb25zdCBGbG9h
dFJlY3QmIHNjcmVlbiwgRmxvYXRSZWN0JiB3aW5kb3csIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGlu
Z0NoYW5nZXMpIGNvbnN0OworICAgICAgICBzdGF0aWMgRmxvYXRSZWN0IGFkanVzdFdpbmRvd1Jl
Y3QoUGFnZSosIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpOwogCiAgICAgICAgIC8v
IEZJWE1FOiBXZSBjYW4gcmVtb3ZlIHRoaXMgZnVuY3Rpb24gb25jZSBWOCBzaG93TW9kYWxEaWFs
b2cgaXMgY2hhbmdlZCB0byB1c2UgRE9NV2luZG93LgogICAgICAgICBzdGF0aWMgdm9pZCBwYXJz
ZU1vZGFsRGlhbG9nRmVhdHVyZXMoY29uc3QgU3RyaW5nJiwgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4mKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAzMjVlM2NjY2MwNzgyYjExOWI5NDhjMTk3YmNjNGU1YThhNzI5YzdmLi45
MmQ5ZWUxNDdkMjViZWQwZmE1N2RlOTVlOThjZTQ0ODVjOTM0MDlhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTItMTEtMTIgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3
ZWJraXQub3JnPgorCisgICAgICAgIENsZWFuIHVwIHVzZSBvZiBhZGp1c3RXaW5kb3dSZWN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIwNzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBHeXV5b3VuZyBLaW0uCisKKyAgICAgICAgVGVzdCB0aGF0IG1p
bmltdW0gc2l6ZXMgYXJlIGhvbm9yZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvb3Bl
bi13aW5kb3ctbWluLXNpemUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93
L29wZW4td2luZG93LW1pbi1zaXplLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy9yZXBvcnQtc2l6ZS1hbmQtY2xvc2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXBwZWQgYXMgaXQg
dGltZXMgb3V0LgorCiAyMDEyLTExLTEzICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmViYXNlbGluZXMgZm9yIGZpbHRlcmluZyBjaGFuZ2VzIGR1ZSB0
byBjaHJvbWl1bSByMTY3NDc5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvb3Blbi13aW5kb3ctbWluLXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L29wZW4td2luZG93LW1pbi1zaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
OWRjZWQ5MzEzY2Q4NjNlMTQ0ZDMwNDdhMTcwODJmNGE0NzUxOTFiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L29wZW4td2luZG93LW1pbi1zaXplLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorUEFTUyAxMDAgaXMgPj0gMTAwCitQQVNTIDEwMCBpcyA+PSAxMDAK
K1BBU1MgMTAwIGlzID49IDEwMAorUEFTUyAxMDAgaXMgPj0gMTAwCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1taW4tc2l6ZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L29wZW4td2luZG93LW1pbi1zaXplLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDVhNzVkYzk2ZmU0YWMxMWMzMWYyYTQzYjY5MmFkNDAzODAxZjU2YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1taW4tc2l6
ZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiB2YWxpZGF0ZShtc2cpIHsKKyAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbChtc2db
IndpZHRoIl0udG9TdHJpbmcoKSwgIjEwMCIpOworICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVx
dWFsKG1zZ1siaGVpZ2h0Il0udG9TdHJpbmcoKSwgIjEwMCIpOworfQorCitmdW5jdGlvbiB0ZXN0
KCkgeworICAgIHZhciBkYXRhID0gd2luZG93LnNob3dNb2RhbERpYWxvZygicmVzb3VyY2VzL3Jl
cG9ydC1zaXplLWFuZC1jbG9zZS5odG1sIiwgIiIsICJkaWFsb2dXaWR0aDoxMDsgZGlhbG9nSGVp
Z2h0OjEwIik7CisgICAgdmFsaWRhdGUoZGF0YSk7CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFsaWRhdGUoZS5kYXRhKTsK
KyAgICAgICAgZS5zb3VyY2UuY2xvc2UoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgfSwgZmFsc2UpOworICAgIHdpbmRvdy5vcGVuKCJyZXNvdXJjZXMvcmVwb3J0LXNp
emUtYW5kLWNsb3NlLmh0bWwiLCAibm9uLWVtcHR5LWFyZ3VtZW50IiwgIndpZHRoPTEwLCBoZWln
aHQ9MTAiKTsKK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1
bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5p
bmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvcmVwb3J0LXNpemUtYW5kLWNsb3Nl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3JlcG9ydC1zaXpl
LWFuZC1jbG9zZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MjQ4MGQwNjA3N2E0OTg4NDhiYTNmOWZhYzdh
Yzk2ZmZiYjhkZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvcmVzb3VyY2VzL3JlcG9ydC1zaXplLWFuZC1jbG9zZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAK
Kzxib2R5IG9ubG9hZD0ibG9hZGVkKCkiPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWRlZCgpIHsK
KyAgICB2YXIgbXNnID0geyAid2lkdGgiOiB3aW5kb3cub3V0ZXJXaWR0aCwgImhlaWdodCI6IHdp
bmRvdy5vdXRlckhlaWdodCB9OworICAgIGlmICh3aW5kb3cuZGlhbG9nQXJndW1lbnRzICE9IHVu
ZGVmaW5lZCkgeworICAgICAgICB3aW5kb3cucmV0dXJuVmFsdWUgPSBtc2c7CisgICAgICAgIHdp
bmRvdy5jbG9zZSgpOworICAgIH0gZWxzZQorICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNz
YWdlKG1zZywgJyonKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyMTRmZTIyOTFlYjgzMjBjMjk4ZmM2ZThlNTE5
MWNhZWI2N2RmZGU0Li4wNjNkZjk5M2Q4ZWI5ZDE4ODQ3ZTBiM2ZiZmE0ZWUwYmRlYzQwMjQyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTEwLDYgKzUx
MCw5IEBAIGZhc3QvZm9ybXMvc2VhcmNoLXBsYWNlaG9sZGVyLXZhbHVlLWNoYW5nZWQuaHRtbAog
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0MzUKIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtYXJyYXlzLmh0bWwKIAorIyBUaW1lb3V0LgorZmFz
dC9kb20vV2luZG93L29wZW4td2luZG93LW1pbi1zaXplLmh0bWwKKwogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNDgKIGZhc3QvY2FudmFzL3dlYmdsL3dlYmds
LXRleHR1cmUtYmluZGluZy1wcmVzZXJ2ZWQuaHRtbAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>