<?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>43974</bug_id>
          
          <creation_ts>2010-08-13 08:18:42 -0700</creation_ts>
          <short_desc>Geolocation requests in progress when the frame is disconnected should invoke the error callback</short_desc>
          <delta_ts>2010-08-16 12:13:16 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Steve Block">steveblock</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>jorlow</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>264369</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-13 08:18:42 -0700</bug_when>
    <thetext>Currently, Geolocation::disconnectFrame() calls stopTimers() which prevents any future callbacks. This was added in http://trac.webkit.org/changeset/59859 for Bug 39388 to prevent callbacks after the script context has gone away.

Instead, we should attempt to invoke the error callback for all ongoing requests. This is safe because we now make sure that the script context is still good before we make each callback, see Bug 40162.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264388</commentid>
    <comment_count>1</comment_count>
      <attachid>64349</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-13 08:46:45 -0700</bug_when>
    <thetext>Created attachment 64349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264999</commentid>
    <comment_count>2</comment_count>
      <attachid>64481</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-16 02:37:39 -0700</bug_when>
    <thetext>Created attachment 64481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265008</commentid>
    <comment_count>3</comment_count>
      <attachid>64481</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-16 03:41:22 -0700</bug_when>
    <thetext>Comment on attachment 64481
Patch

&gt; Instead, we should attempt to invoke the error callback for all ongoing requests.

I think that this is a good change because it matches XMLHttpRequest (which dispatches an abort event when window is closed). But for posterity, it would be best to document why else we want this. Does any spec say so?

+    if (m_fatalError)
+        return;

It might be helpful to add a comment explaining why the first error wins.

r=me. The split js-test makes me sad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265040</commentid>
    <comment_count>4</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-16 05:31:26 -0700</bug_when>
    <thetext>Committed r65416: &lt;http://trac.webkit.org/changeset/65416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265041</commentid>
    <comment_count>5</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-16 05:33:31 -0700</bug_when>
    <thetext>&gt; I think that this is a good change because it matches XMLHttpRequest (which
&gt; dispatches an abort event when window is closed). But for posterity, it would
&gt; be best to document why else we want this. Does any spec say so?
No, the spec isn&apos;t specific to JavaScript or browsers so doesn&apos;t mention anything about Frames or windows.

&gt; It might be helpful to add a comment explaining why the first error wins.
Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265058</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-16 06:13:15 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65416 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265192</commentid>
    <comment_count>7</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-16 12:13:16 -0700</bug_when>
    <thetext>Problems with fast/dom/Geolocation/disconnected-frame-permission-denied.html are being tracked in Bug 44059</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64349</attachid>
            <date>2010-08-13 08:46:45 -0700</date>
            <delta_ts>2010-08-16 02:37:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43974-20100813164642.patch</filename>
            <type>text/plain</type>
            <size>13231</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTMwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTAtMDgtMTMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEdlb2xvY2F0aW9uIHJlcXVlc3RzIGluIHByb2dyZXNzIHdoZW4gdGhlIGZyYW1lIGlzIGRpc2Nv
bm5lY3RlZCBzaG91bGQgaW52b2tlIHRoZSBlcnJvciBjYWxsYmFjaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM5NzQKKworICAgICAgICBJZiByZXF1
ZXN0cyBhcmUgb25nb2luZyB3aGVuIHRoZSBGcmFtZSBpcyBkaXNjb25uZWN0ZWQsIHdlIGFib3J0
IHRoZW0gd2l0aCBhIGZhdGFsIGVycm9yLgorICAgICAgICBUbyBkbyB0aGlzLCB3aGVuIEdlb2xv
Y2F0aW9uOjpkaXNjb25uZWN0RnJhbWUoKSBpcyBjYWxsZWQgd2UgY2FsbCBjYW5jZWxBbGxSZXF1
ZXN0cygpIHRvCisgICAgICAgIHNldCBhIGZhdGFsIGVycm9yIG9uIGFsbCBvbmdvaW5nIHJlcXVl
c3RzLiBPbmNlIHRoZSByZXF1ZXN0cyBoYXZlIG1hZGUgdGhlaXIgZXJyb3IKKyAgICAgICAgY2Fs
bGJhY2tzLCB0aGV5IGFyZSBkZWxldGVkLiBOb3RlIHRoYXQgd2UgY2hlY2sgYXQgY2FsbGJhY2sg
dGltZSB0aGF0IHRoZSBzY3JpcHQKKyAgICAgICAgZXhlY3V0aW9uIGNvbnRleHQgZm9yIHRoZSBj
YWxsYmFjayBpcyBzdGlsbCB2YWxpZCwgc28gaXQncyBzYWZlIHRvIGF0dGVtcHQgdGhlc2UKKyAg
ICAgICAgY2FsbGJhY2tzIGV2ZW4gYWZ0ZXIgdGhlIEdlb2xvY2F0aW9uIG9iamVjdCdzIEZyYW1l
IGhhcyBnb25lLgorCisgICAgICAgIFRoaXMgcmVxdWlyZXMgYSBjaGFuZ2UgdG8gYWxsb3cgbXVs
dGlwbGUgY2FsbHMgdG8gR2VvTm90aWZpZXI6OnNldEZhdGFsRXJyb3IoKS4KKyAgICAgICAgRm9y
IHJlcGVhdGVkIGNhbGxzLCB3ZSBkbyBub3QgcmVwbGFjZSB0aGUgZXhpc3RpbmcgZXJyb3IuCisK
KyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorCisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6R2VvTm90aWZpZXI6OnNldEZhdGFs
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OmRpc2Nvbm5lY3RGcmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpjYW5jZWxBbGxSZXF1ZXN0cyk6CisgICAgICAgICogcGFn
ZS9HZW9sb2NhdGlvbi5oOgorCiAyMDEwLTA4LTEzICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCklu
ZGV4OiBXZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9HZW9sb2NhdGlvbi5jcHAJKHJldmlzaW9uIDY1MzA4KQorKysgV2ViQ29yZS9wYWdlL0dl
b2xvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3Nh
Z2VbXSA9ICJVc2VyIGRlbmllZCBHZW9sb2NhdGlvbiI7CiBzdGF0aWMgY29uc3QgY2hhciBmYWls
ZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZVtdID0gIkZhaWxlZCB0byBzdGFydCBHZW9sb2Nh
dGlvbiBzZXJ2aWNlIjsKK3N0YXRpYyBjb25zdCBjaGFyIGZyYW1lbGVzc0RvY3VtZW50RXJyb3JN
ZXNzYWdlW10gPSAiR2VvbG9jYXRpb24gY2Fubm90IGJlIHVzZWQgaW4gZnJhbWVsZXNzIGRvY3Vt
ZW50cyI7CiAKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogCkBAIC05NCw5
ICs5NSwxMiBAQCBHZW9sb2NhdGlvbjo6R2VvTm90aWZpZXI6Okdlb05vdGlmaWVyKEdlCiAKIHZv
aWQgR2VvbG9jYXRpb246Okdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKFBhc3NSZWZQdHI8UG9z
aXRpb25FcnJvcj4gZXJyb3IpCiB7Ci0gICAgLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGF0IG1v
c3Qgb25jZSBvbiBhIGdpdmVuIEdlb05vdGlmaWVyIG9iamVjdC4KLSAgICBBU1NFUlQoIW1fZmF0
YWxFcnJvcik7CisgICAgaWYgKG1fZmF0YWxFcnJvcikKKyAgICAgICAgcmV0dXJuOworCiAgICAg
bV9mYXRhbEVycm9yID0gZXJyb3I7CisgICAgLy8gQW4gZXhpc3RpbmcgdGltZXIgbWF5IG5vdCBo
YXZlIGEgemVybyB0aW1lb3V0LgorICAgIG1fdGltZXIuc3RvcCgpOwogICAgIG1fdGltZXIuc3Rh
cnRPbmVTaG90KDApOwogfQogCkBAIC0xMzAsNiArMTM0LDggQEAgdm9pZCBHZW9sb2NhdGlvbjo6
R2VvTm90aWZpZXI6OnRpbWVyRmlyZQogICAgIC8vIGNvdWxkIGJlIGRlbGV0ZWQgYnkgYSBjYWxs
IHRvIGNsZWFyV2F0Y2ggaW4gYSBjYWxsYmFjay4KICAgICBSZWZQdHI8R2VvTm90aWZpZXI+IHBy
b3RlY3QodGhpcyk7CiAKKyAgICAvLyBUZXN0IGZvciBmYXRhbCBlcnJvciBmaXJzdC4gVGhpcyBp
cyByZXF1aXJlZCBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIEZyYW1lIGlzCisgICAgLy8gZGlzY29u
bmVjdGVkIGFuZCByZXF1ZXN0cyBhcmUgY2FuY2VsbGVkLgogICAgIGlmIChtX2ZhdGFsRXJyb3Ip
IHsKICAgICAgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKICAgICAgICAgICAgIG1fZXJyb3JDYWxs
YmFjay0+aGFuZGxlRXZlbnQobV9mYXRhbEVycm9yLmdldCgpKTsKQEAgLTIyMiw3ICsyMjgsNyBA
QCB2b2lkIEdlb2xvY2F0aW9uOjpkaXNjb25uZWN0RnJhbWUoKQogewogICAgIGlmIChtX2ZyYW1l
ICYmIG1fZnJhbWUtPnBhZ2UoKSAmJiBtX2FsbG93R2VvbG9jYXRpb24gPT0gSW5Qcm9ncmVzcykK
ICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdEZvckZyYW1lKG1fZnJhbWUsIHRoaXMpOwotICAgIHN0b3BUaW1lcnMoKTsK
KyAgICBjYW5jZWxBbGxSZXF1ZXN0cygpOwogICAgIHN0b3BVcGRhdGluZygpOwogICAgIGlmICht
X2ZyYW1lICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50
KCktPnNldFVzaW5nR2VvbG9jYXRpb24oZmFsc2UpOwpAQCAtNDk3LDYgKzUwMywyMiBAQCB2b2lk
IEdlb2xvY2F0aW9uOjpzdG9wVGltZXJzKCkKICAgICBzdG9wVGltZXJzRm9yV2F0Y2hlcnMoKTsK
IH0KIAordm9pZCBHZW9sb2NhdGlvbjo6Y2FuY2VsUmVxdWVzdHMoVmVjdG9yPFJlZlB0cjxHZW9O
b3RpZmllcj4gPiYgbm90aWZpZXJzKQoreworICAgIFZlY3RvcjxSZWZQdHI8R2VvTm90aWZpZXI+
ID46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG5vdGlmaWVycy5lbmQoKTsKKyAgICBmb3IgKFZlY3Rv
cjxSZWZQdHI8R2VvTm90aWZpZXI+ID46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbm90aWZpZXJzLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgKCppdCktPnNldEZhdGFsRXJyb3IoUG9z
aXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBm
cmFtZWxlc3NEb2N1bWVudEVycm9yTWVzc2FnZSkpOworfQorCit2b2lkIEdlb2xvY2F0aW9uOjpj
YW5jZWxBbGxSZXF1ZXN0cygpCit7CisgICAgVmVjdG9yPFJlZlB0cjxHZW9Ob3RpZmllcj4gPiBj
b3B5OworICAgIGNvcHlUb1ZlY3RvcihtX29uZVNob3RzLCBjb3B5KTsKKyAgICBjYW5jZWxSZXF1
ZXN0cyhjb3B5KTsKKyAgICBtX3dhdGNoZXJzLmdldE5vdGlmaWVyc1ZlY3Rvcihjb3B5KTsKKyAg
ICBjYW5jZWxSZXF1ZXN0cyhjb3B5KTsKK30KKwogdm9pZCBHZW9sb2NhdGlvbjo6aGFuZGxlRXJy
b3IoUG9zaXRpb25FcnJvciogZXJyb3IpCiB7CiAgICAgQVNTRVJUKGVycm9yKTsKSW5kZXg6IFdl
YkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9HZW9s
b2NhdGlvbi5oCShyZXZpc2lvbiA2NTMwOCkKKysrIFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNiArMTM1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0
b3BUaW1lcnNGb3JXYXRjaGVycygpOwogICAgIHZvaWQgc3RvcFRpbWVycygpOwogCisgICAgdm9p
ZCBjYW5jZWxSZXF1ZXN0cyhWZWN0b3I8UmVmUHRyPEdlb05vdGlmaWVyPiA+Jik7CisgICAgdm9p
ZCBjYW5jZWxBbGxSZXF1ZXN0cygpOworCiAgICAgdm9pZCBwb3NpdGlvbkNoYW5nZWRJbnRlcm5h
bCgpOwogICAgIHZvaWQgbWFrZVN1Y2Nlc3NDYWxsYmFja3MoKTsKICAgICB2b2lkIGhhbmRsZUVy
cm9yKFBvc2l0aW9uRXJyb3IqKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1MzA4KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDgt
MTMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdlb2xvY2F0aW9uIHJlcXVlc3RzIGlu
IHByb2dyZXNzIHdoZW4gdGhlIGZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBzaG91bGQgaW52b2tlIHRo
ZSBlcnJvciBjYWxsYmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDM5NzQKKworICAgICAgICBBZGRlZCBuZXcgdGVzdHMgdG8gR1RLIHNraXBwZWQg
bGlzdC4KKworICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFt
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0
ZWQtZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2Nh
dGlvbi9zY3JpcHQtdGVzdHMvZGlzY29ubmVjdGVkLWZyYW1lLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWlubmVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3Rl
ZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVz
dHMvZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKwogMjAxMC0wOC0xMiAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1l
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2Nh
dGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorZnJhbWUgIjwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUwLS0+LS0+IiAtIGhhcyAxIG9udW5sb2FkIGhhbmRsZXIocykKK1Rlc3RzIHRo
YXQgd2hlbiBhIHJlcXVlc3QgaXMgbWFkZSBvbiBhIEdlb2xvY2F0aW9uIG9iamVjdCBhbmQgaXRz
IEZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBiZWZvcmUgYSBjYWxsYmFjayBpcyBtYWRlLCB0aGUgZXJy
b3IgY2FsbGJhY2sgaXMgaW52b2tlZCB3aXRoIHRoZSBjb3JyZWN0IGVycm9yIG1lc3NhZ2UuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGVycm9yLmNvZGUgaXMgMgorUEFT
UyBlcnJvci5tZXNzYWdlIGlzICJHZW9sb2NhdGlvbiBjYW5ub3QgYmUgdXNlZCBpbiBmcmFtZWxl
c3MgZG9jdW1lbnRzIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5l
Y3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1p
c3Npb24tZGVuaWVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKK2ZyYW1lICI8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCitU
ZXN0cyB0aGF0IHdoZW4gYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBHZW9sb2NhdGlvbiBvYmplY3Qs
IHBlcm1pc3Npb24gaXMgZGVuaWVkIGFuZCBpdHMgRnJhbWUgaXMgZGlzY29ubmVjdGVkIGJlZm9y
ZSBhIGNhbGxiYWNrIGlzIG1hZGUsIHRoZSBlcnJvciBjYWxsYmFjayBpcyBpbnZva2VkIHdpdGgg
UEVSTUlTU0lPTl9ERU5JRUQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IGVycm9yLmNvZGUgaXMgZXJyb3IuUEVSTUlTU0lPTl9ERU5JRUQKK1BBU1MgZXJyb3IubWVzc2Fn
ZSBpcyAiVXNlciBkZW5pZWQgR2VvbG9jYXRpb24iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZy
YW1lLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9kaXNjb25uZWN0ZWQtZnJhbWUt
cGVybWlzc2lvbi1kZW5pZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29u
bmVjdGVkLWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9H
ZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9kaXNjb25uZWN0ZWQtZnJhbWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcmVzb3VyY2Vz
L2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jl
c291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgb25sb2FkPSJ3aW5kb3cucGFy
ZW50Lm9uSWZyYW1lTG9hZGVkKCkiLCBvbnVubG9hZD0id2luZG93LnBhcmVudC5vbklmcmFtZVVu
bG9hZGVkKCk7Ij4KKyAgICA8cD5UaGlzIGZyYW1lIHNob3VsZCBiZSByZXBsYWNlZCBiZWZvcmUg
dGhlIHRlc3QgZW5kczwvcD4KKyAgPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9s
b2NhdGlvbi9zY3JpcHQtdGVzdHMvZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVk
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vc2Ny
aXB0LXRlc3RzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyOSBAQAorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2hlbiBhIHJl
cXVlc3QgaXMgbWFkZSBvbiBhIEdlb2xvY2F0aW9uIG9iamVjdCwgcGVybWlzc2lvbiBpcyBkZW5p
ZWQgYW5kIGl0cyBGcmFtZSBpcyBkaXNjb25uZWN0ZWQgYmVmb3JlIGEgY2FsbGJhY2sgaXMgbWFk
ZSwgdGhlIGVycm9yIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCBQRVJNSVNTSU9OX0RFTklFRC4i
KTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oZmFsc2UpOworCitmdW5jdGlvbiBvbklm
cmFtZUxvYWRlZCgpIHsKKyAgICBpZnJhbWVHZW9sb2NhdGlvbiA9IGlmcmFtZS5jb250ZW50V2lu
ZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbjsKKyAgICBpZnJhbWUuc3JjID0gJ2RhdGE6dGV4dC9o
dG1sLFRoaXMgZnJhbWUgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgdGVzdCBjb21wbGV0ZXMn
OworfQorCit2YXIgZXJyb3I7CitmdW5jdGlvbiBvbklmcmFtZVVubG9hZGVkKCkgeworICAgIGlm
cmFtZUdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbiAoKSB7CisgICAgICAg
IHRlc3RGYWlsZWQoJ1N1Y2Nlc3MgY2FsbGJhY2sgaW52b2tlZCB1bmV4cGVjdGVkbHknKTsKKyAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oZSkgeworICAgICAgICBlcnJv
ciA9IGU7CisgICAgICAgIHNob3VsZEJlKCdlcnJvci5jb2RlJywgJ2Vycm9yLlBFUk1JU1NJT05f
REVOSUVEJyk7CisgICAgICAgIHNob3VsZEJlKCdlcnJvci5tZXNzYWdlJywgJyJVc2VyIGRlbmll
ZCBHZW9sb2NhdGlvbiInKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7Cit9CisK
K3ZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKK2lmcmFtZS5z
cmMgPSAncmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5odG1sJzsKK2RvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
Oword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvZGlzY29ubmVjdGVkLWZyYW1lLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0
cy9kaXNjb25uZWN0ZWQtZnJhbWUuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVzdHMvZGlzY29ubmVjdGVkLWZyYW1lLmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3aGVuIGEg
cmVxdWVzdCBpcyBtYWRlIG9uIGEgR2VvbG9jYXRpb24gb2JqZWN0IGFuZCBpdHMgRnJhbWUgaXMg
ZGlzY29ubmVjdGVkIGJlZm9yZSBhIGNhbGxiYWNrIGlzIG1hZGUsIHRoZSBlcnJvciBjYWxsYmFj
ayBpcyBpbnZva2VkIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZS4iKTsKKworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEdlb2xvY2F0aW9uUGVybWlzc2lvbih0cnVlKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbig1MS40NzgsIC0wLjE2NiwgMTAwKTsKK30KKworZnVu
Y3Rpb24gb25JZnJhbWVMb2FkZWQoKSB7CisgICAgaWZyYW1lR2VvbG9jYXRpb24gPSBpZnJhbWUu
Y29udGVudFdpbmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb247CisgICAgaWZyYW1lLnNyYyA9ICdk
YXRhOnRleHQvaHRtbCxUaGlzIGZyYW1lIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRlc3Qg
Y29tcGxldGVzJzsKK30KKwordmFyIGVycm9yOworZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgp
IHsKKyAgICBpZnJhbWVHZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24gKCkg
eworICAgICAgICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3Rl
ZGx5Jyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZXJyb3IgPSBlOworICAgICAgICBzaG91bGRCZSgnZXJyb3IuY29kZScsICcyJyk7Cisg
ICAgICAgIHNob3VsZEJlKCdlcnJvci5tZXNzYWdlJywgJyJHZW9sb2NhdGlvbiBjYW5ub3QgYmUg
dXNlZCBpbiBmcmFtZWxlc3MgZG9jdW1lbnRzIicpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICB9KTsKK30KKwordmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFt
ZScpOworaWZyYW1lLnNyYyA9ICdyZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWlubmVyLmh0
bWwnOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOworCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA2NTMwOCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01Njc2LDYgKzU2NzYsOCBA
QCBzdG9yYWdlL2luZGV4ZWRkYgogZmFzdC9kb20vR2VvbG9jYXRpb24vY2FsbGJhY2stdG8tcmVt
b3RlLWNvbnRleHQuaHRtbAogZmFzdC9kb20vR2VvbG9jYXRpb24vY2FsbGJhY2stdG8tcmVtb3Rl
LWNvbnRleHQyLmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRvLWRlbGV0ZWQt
Y29udGV4dC5odG1sCitmYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUuaHRt
bAorZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVu
aWVkLmh0bWwKIAogIyBHVEsrIHRoZW1lLXJlbmRlcmVkIHdpZGdldHMgZG8gbm90IHN1cHBvcnQg
Q1NTIHRyYW5zZm9ybXMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMTM5Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64481</attachid>
            <date>2010-08-16 02:37:39 -0700</date>
            <delta_ts>2010-08-16 03:41:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43974-20100816103736.patch</filename>
            <type>text/plain</type>
            <size>13286</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTQwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTAtMDgtMTMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEdlb2xvY2F0aW9uIHJlcXVlc3RzIGluIHByb2dyZXNzIHdoZW4gdGhlIGZyYW1lIGlzIGRpc2Nv
bm5lY3RlZCBzaG91bGQgaW52b2tlIHRoZSBlcnJvciBjYWxsYmFjaworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM5NzQKKworICAgICAgICBJZiByZXF1
ZXN0cyBhcmUgb25nb2luZyB3aGVuIHRoZSBGcmFtZSBpcyBkaXNjb25uZWN0ZWQsIHdlIGFib3J0
IHRoZW0gd2l0aCBhIGZhdGFsIGVycm9yLgorICAgICAgICBUbyBkbyB0aGlzLCB3aGVuIEdlb2xv
Y2F0aW9uOjpkaXNjb25uZWN0RnJhbWUoKSBpcyBjYWxsZWQgd2UgY2FsbCBjYW5jZWxBbGxSZXF1
ZXN0cygpIHRvCisgICAgICAgIHNldCBhIGZhdGFsIGVycm9yIG9uIGFsbCBvbmdvaW5nIHJlcXVl
c3RzLiBPbmNlIHRoZSByZXF1ZXN0cyBoYXZlIG1hZGUgdGhlaXIgZXJyb3IKKyAgICAgICAgY2Fs
bGJhY2tzLCB0aGV5IGFyZSBkZWxldGVkLiBOb3RlIHRoYXQgd2UgY2hlY2sgYXQgY2FsbGJhY2sg
dGltZSB0aGF0IHRoZSBzY3JpcHQKKyAgICAgICAgZXhlY3V0aW9uIGNvbnRleHQgZm9yIHRoZSBj
YWxsYmFjayBpcyBzdGlsbCB2YWxpZCwgc28gaXQncyBzYWZlIHRvIGF0dGVtcHQgdGhlc2UKKyAg
ICAgICAgY2FsbGJhY2tzIGV2ZW4gYWZ0ZXIgdGhlIEdlb2xvY2F0aW9uIG9iamVjdCdzIEZyYW1l
IGhhcyBnb25lLgorCisgICAgICAgIFRoaXMgcmVxdWlyZXMgYSBjaGFuZ2UgdG8gYWxsb3cgbXVs
dGlwbGUgY2FsbHMgdG8gR2VvTm90aWZpZXI6OnNldEZhdGFsRXJyb3IoKS4KKyAgICAgICAgRm9y
IHJlcGVhdGVkIGNhbGxzLCB3ZSBkbyBub3QgcmVwbGFjZSB0aGUgZXhpc3RpbmcgZXJyb3IuCisK
KyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJh
bWUtcGVybWlzc2lvbi1kZW5pZWQuaHRtbAorCisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6R2VvTm90aWZpZXI6OnNldEZhdGFs
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OmRpc2Nvbm5lY3RGcmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpjYW5jZWxBbGxSZXF1ZXN0cyk6CisgICAgICAgICogcGFn
ZS9HZW9sb2NhdGlvbi5oOgorCiAyMDEwLTA4LTE2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6
IFdlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L0dlb2xvY2F0aW9uLmNwcAkocmV2aXNpb24gNjU0MDIpCisrKyBXZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RhdGljIGNvbnN0IGNoYXIgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZVtd
ID0gIlVzZXIgZGVuaWVkIEdlb2xvY2F0aW9uIjsKIHN0YXRpYyBjb25zdCBjaGFyIGZhaWxlZFRv
U3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlW10gPSAiRmFpbGVkIHRvIHN0YXJ0IEdlb2xvY2F0aW9u
IHNlcnZpY2UiOworc3RhdGljIGNvbnN0IGNoYXIgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1lc3Nh
Z2VbXSA9ICJHZW9sb2NhdGlvbiBjYW5ub3QgYmUgdXNlZCBpbiBmcmFtZWxlc3MgZG9jdW1lbnRz
IjsKIAogI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAKQEAgLTk0LDkgKzk1
LDEyIEBAIEdlb2xvY2F0aW9uOjpHZW9Ob3RpZmllcjo6R2VvTm90aWZpZXIoR2UKIAogdm9pZCBH
ZW9sb2NhdGlvbjo6R2VvTm90aWZpZXI6OnNldEZhdGFsRXJyb3IoUGFzc1JlZlB0cjxQb3NpdGlv
bkVycm9yPiBlcnJvcikKIHsKLSAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXQgbW9zdCBv
bmNlIG9uIGEgZ2l2ZW4gR2VvTm90aWZpZXIgb2JqZWN0LgotICAgIEFTU0VSVCghbV9mYXRhbEVy
cm9yKTsKKyAgICBpZiAobV9mYXRhbEVycm9yKQorICAgICAgICByZXR1cm47CisKICAgICBtX2Zh
dGFsRXJyb3IgPSBlcnJvcjsKKyAgICAvLyBBbiBleGlzdGluZyB0aW1lciBtYXkgbm90IGhhdmUg
YSB6ZXJvIHRpbWVvdXQuCisgICAgbV90aW1lci5zdG9wKCk7CiAgICAgbV90aW1lci5zdGFydE9u
ZVNob3QoMCk7CiB9CiAKQEAgLTEzMCw2ICsxMzQsOCBAQCB2b2lkIEdlb2xvY2F0aW9uOjpHZW9O
b3RpZmllcjo6dGltZXJGaXJlCiAgICAgLy8gY291bGQgYmUgZGVsZXRlZCBieSBhIGNhbGwgdG8g
Y2xlYXJXYXRjaCBpbiBhIGNhbGxiYWNrLgogICAgIFJlZlB0cjxHZW9Ob3RpZmllcj4gcHJvdGVj
dCh0aGlzKTsKIAorICAgIC8vIFRlc3QgZm9yIGZhdGFsIGVycm9yIGZpcnN0LiBUaGlzIGlzIHJl
cXVpcmVkIGZvciB0aGUgY2FzZSB3aGVyZSB0aGUgRnJhbWUgaXMKKyAgICAvLyBkaXNjb25uZWN0
ZWQgYW5kIHJlcXVlc3RzIGFyZSBjYW5jZWxsZWQuCiAgICAgaWYgKG1fZmF0YWxFcnJvcikgewog
ICAgICAgICBpZiAobV9lcnJvckNhbGxiYWNrKQogICAgICAgICAgICAgbV9lcnJvckNhbGxiYWNr
LT5oYW5kbGVFdmVudChtX2ZhdGFsRXJyb3IuZ2V0KCkpOwpAQCAtMjIyLDcgKzIyOCw3IEBAIHZv
aWQgR2VvbG9jYXRpb246OmRpc2Nvbm5lY3RGcmFtZSgpCiB7CiAgICAgaWYgKG1fZnJhbWUgJiYg
bV9mcmFtZS0+cGFnZSgpICYmIG1fYWxsb3dHZW9sb2NhdGlvbiA9PSBJblByb2dyZXNzKQogICAg
ICAgICBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5jYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Rm9yRnJhbWUobV9mcmFtZSwgdGhpcyk7Ci0gICAgc3RvcFRpbWVycygpOworICAg
IGNhbmNlbEFsbFJlcXVlc3RzKCk7CiAgICAgc3RvcFVwZGF0aW5nKCk7CiAgICAgaWYgKG1fZnJh
bWUgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKSkKICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
c2V0VXNpbmdHZW9sb2NhdGlvbihmYWxzZSk7CkBAIC01MDMsNiArNTA5LDIyIEBAIHZvaWQgR2Vv
bG9jYXRpb246OnN0b3BUaW1lcnMoKQogICAgIHN0b3BUaW1lcnNGb3JXYXRjaGVycygpOwogfQog
Cit2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxSZXF1ZXN0cyhWZWN0b3I8UmVmUHRyPEdlb05vdGlm
aWVyPiA+JiBub3RpZmllcnMpCit7CisgICAgVmVjdG9yPFJlZlB0cjxHZW9Ob3RpZmllcj4gPjo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gbm90aWZpZXJzLmVuZCgpOworICAgIGZvciAoVmVjdG9yPFJl
ZlB0cjxHZW9Ob3RpZmllcj4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBub3RpZmllcnMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICAoKml0KS0+c2V0RmF0YWxFcnJvcihQb3NpdGlv
bkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZyYW1l
bGVzc0RvY3VtZW50RXJyb3JNZXNzYWdlKSk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb246OmNhbmNl
bEFsbFJlcXVlc3RzKCkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPEdlb05vdGlmaWVyPiA+IGNvcHk7
CisgICAgY29weVRvVmVjdG9yKG1fb25lU2hvdHMsIGNvcHkpOworICAgIGNhbmNlbFJlcXVlc3Rz
KGNvcHkpOworICAgIG1fd2F0Y2hlcnMuZ2V0Tm90aWZpZXJzVmVjdG9yKGNvcHkpOworICAgIGNh
bmNlbFJlcXVlc3RzKGNvcHkpOworfQorCiB2b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQ
b3NpdGlvbkVycm9yKiBlcnJvcikKIHsKICAgICBBU1NFUlQoZXJyb3IpOwpJbmRleDogV2ViQ29y
ZS9wYWdlL0dlb2xvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0dlb2xvY2F0
aW9uLmgJKHJldmlzaW9uIDY1NDAyKQorKysgV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEzNSw2ICsxMzUsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcFRp
bWVyc0ZvcldhdGNoZXJzKCk7CiAgICAgdm9pZCBzdG9wVGltZXJzKCk7CiAKKyAgICB2b2lkIGNh
bmNlbFJlcXVlc3RzKFZlY3RvcjxSZWZQdHI8R2VvTm90aWZpZXI+ID4mKTsKKyAgICB2b2lkIGNh
bmNlbEFsbFJlcXVlc3RzKCk7CisKICAgICB2b2lkIHBvc2l0aW9uQ2hhbmdlZEludGVybmFsKCk7
CiAgICAgdm9pZCBtYWtlU3VjY2Vzc0NhbGxiYWNrcygpOwogICAgIHZvaWQgaGFuZGxlRXJyb3Io
UG9zaXRpb25FcnJvciopOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjU0MDIpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wOC0xMyAg
U3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgR2VvbG9jYXRpb24gcmVxdWVzdHMgaW4gcHJv
Z3Jlc3Mgd2hlbiB0aGUgZnJhbWUgaXMgZGlzY29ubmVjdGVkIHNob3VsZCBpbnZva2UgdGhlIGVy
cm9yIGNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00Mzk3NAorCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyB0byBHVEsgc2tpcHBlZCBsaXN0
LgorCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9u
L3NjcmlwdC10ZXN0cy9kaXNjb25uZWN0ZWQtZnJhbWUuanM6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZy
YW1lLXBlcm1pc3Npb24tZGVuaWVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0dl
b2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9k
aXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuanM6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorCiAyMDEwLTA4LTE2ICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFt
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9j
YXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKK2ZyYW1lICI8IS0tZnJhbWVQYXRo
IC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBoYXMgMSBvbnVubG9hZCBoYW5kbGVyKHMpCitUZXN0cyB0
aGF0IHdoZW4gYSByZXF1ZXN0IGlzIG1hZGUgb24gYSBHZW9sb2NhdGlvbiBvYmplY3QgYW5kIGl0
cyBGcmFtZSBpcyBkaXNjb25uZWN0ZWQgYmVmb3JlIGEgY2FsbGJhY2sgaXMgbWFkZSwgdGhlIGVy
cm9yIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBtZXNzYWdlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlcnJvci5jb2RlIGlzIDIKK1BB
U1MgZXJyb3IubWVzc2FnZSBpcyAiR2VvbG9jYXRpb24gY2Fubm90IGJlIHVzZWQgaW4gZnJhbWVs
ZXNzIGRvY3VtZW50cyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25u
ZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJt
aXNzaW9uLWRlbmllZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitmcmFtZSAiPCEtLWZy
YW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gaGFzIDEgb251bmxvYWQgaGFuZGxlcihzKQor
VGVzdHMgdGhhdCB3aGVuIGEgcmVxdWVzdCBpcyBtYWRlIG9uIGEgR2VvbG9jYXRpb24gb2JqZWN0
LCBwZXJtaXNzaW9uIGlzIGRlbmllZCBhbmQgaXRzIEZyYW1lIGlzIGRpc2Nvbm5lY3RlZCBiZWZv
cmUgYSBjYWxsYmFjayBpcyBtYWRlLCB0aGUgZXJyb3IgY2FsbGJhY2sgaXMgaW52b2tlZCB3aXRo
IFBFUk1JU1NJT05fREVOSUVELgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBlcnJvci5jb2RlIGlzIGVycm9yLlBFUk1JU1NJT05fREVOSUVECitQQVNTIGVycm9yLm1lc3Nh
Z2UgaXMgIlVzZXIgZGVuaWVkIEdlb2xvY2F0aW9uIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dl
b2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1m
cmFtZS1wZXJtaXNzaW9uLWRlbmllZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLXBlcm1pc3Npb24tZGVuaWVk
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGlzY29ubmVjdGVkLWZyYW1l
LXBlcm1pc3Npb24tZGVuaWVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nv
bm5lY3RlZC1mcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
R2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvZGlzY29ubmVjdGVkLWZyYW1lLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Jlc291cmNl
cy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9yZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWlubmVy
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9y
ZXNvdXJjZXMvZGlzY29ubmVjdGVkLWZyYW1lLWlubmVyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0id2luZG93LnBh
cmVudC5vbklmcmFtZUxvYWRlZCgpIiwgb251bmxvYWQ9IndpbmRvdy5wYXJlbnQub25JZnJhbWVV
bmxvYWRlZCgpOyI+CisgICAgPHA+VGhpcyBmcmFtZSBzaG91bGQgYmUgcmVwbGFjZWQgYmVmb3Jl
IHRoZSB0ZXN0IGVuZHM8L3A+CisgIDwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3NjcmlwdC10ZXN0cy9kaXNjb25uZWN0ZWQtZnJhbWUtcGVy
bWlzc2lvbi1kZW5pZWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vc2NyaXB0LXRlc3RzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmll
ZC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Nj
cmlwdC10ZXN0cy9kaXNjb25uZWN0ZWQtZnJhbWUtcGVybWlzc2lvbi1kZW5pZWQuanMJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjkgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdoZW4gYSBy
ZXF1ZXN0IGlzIG1hZGUgb24gYSBHZW9sb2NhdGlvbiBvYmplY3QsIHBlcm1pc3Npb24gaXMgZGVu
aWVkIGFuZCBpdHMgRnJhbWUgaXMgZGlzY29ubmVjdGVkIGJlZm9yZSBhIGNhbGxiYWNrIGlzIG1h
ZGUsIHRoZSBlcnJvciBjYWxsYmFjayBpcyBpbnZva2VkIHdpdGggUEVSTUlTU0lPTl9ERU5JRUQu
Iik7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGZhbHNlKTsKKworZnVuY3Rpb24gb25J
ZnJhbWVMb2FkZWQoKSB7CisgICAgaWZyYW1lR2VvbG9jYXRpb24gPSBpZnJhbWUuY29udGVudFdp
bmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb247CisgICAgaWZyYW1lLnNyYyA9ICdkYXRhOnRleHQv
aHRtbCxUaGlzIGZyYW1lIHNob3VsZCBiZSB2aXNpYmxlIHdoZW4gdGhlIHRlc3QgY29tcGxldGVz
JzsKK30KKwordmFyIGVycm9yOworZnVuY3Rpb24gb25JZnJhbWVVbmxvYWRlZCgpIHsKKyAgICBp
ZnJhbWVHZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24gKCkgeworICAgICAg
ICB0ZXN0RmFpbGVkKCdTdWNjZXNzIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZXJy
b3IgPSBlOworICAgICAgICBzaG91bGRCZSgnZXJyb3IuY29kZScsICdlcnJvci5QRVJNSVNTSU9O
X0RFTklFRCcpOworICAgICAgICBzaG91bGRCZSgnZXJyb3IubWVzc2FnZScsICciVXNlciBkZW5p
ZWQgR2VvbG9jYXRpb24iJyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfQor
Cit2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CitpZnJhbWUu
c3JjID0gJ3Jlc291cmNlcy9kaXNjb25uZWN0ZWQtZnJhbWUtaW5uZXIuaHRtbCc7Citkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL2Rpc2Nvbm5lY3RlZC1mcmFtZS5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9zY3JpcHQtdGVz
dHMvZGlzY29ubmVjdGVkLWZyYW1lLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vR2VvbG9jYXRpb24vc2NyaXB0LXRlc3RzL2Rpc2Nvbm5lY3RlZC1mcmFtZS5qcwkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgd2hlbiBh
IHJlcXVlc3QgaXMgbWFkZSBvbiBhIEdlb2xvY2F0aW9uIG9iamVjdCBhbmQgaXRzIEZyYW1lIGlz
IGRpc2Nvbm5lY3RlZCBiZWZvcmUgYSBjYWxsYmFjayBpcyBtYWRlLCB0aGUgZXJyb3IgY2FsbGJh
Y2sgaXMgaW52b2tlZCB3aXRoIHRoZSBjb3JyZWN0IGVycm9yIG1lc3NhZ2UuIik7CisKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRHZW9sb2NhdGlvblBlcm1pc3Npb24odHJ1ZSk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oNTEuNDc4LCAtMC4xNjYsIDEwMCk7Cit9CisKK2Z1
bmN0aW9uIG9uSWZyYW1lTG9hZGVkKCkgeworICAgIGlmcmFtZUdlb2xvY2F0aW9uID0gaWZyYW1l
LmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uOworICAgIGlmcmFtZS5zcmMgPSAn
ZGF0YTp0ZXh0L2h0bWwsVGhpcyBmcmFtZSBzaG91bGQgYmUgdmlzaWJsZSB3aGVuIHRoZSB0ZXN0
IGNvbXBsZXRlcyc7Cit9CisKK3ZhciBlcnJvcjsKK2Z1bmN0aW9uIG9uSWZyYW1lVW5sb2FkZWQo
KSB7CisgICAgaWZyYW1lR2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgdGVzdEZhaWxlZCgnU3VjY2VzcyBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0
ZWRseScpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgc2hvdWxkQmUoJ2Vycm9yLmNvZGUnLCAnMicpOwor
ICAgICAgICBzaG91bGRCZSgnZXJyb3IubWVzc2FnZScsICciR2VvbG9jYXRpb24gY2Fubm90IGJl
IHVzZWQgaW4gZnJhbWVsZXNzIGRvY3VtZW50cyInKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfSk7Cit9CisKK3ZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJh
bWUnKTsKK2lmcmFtZS5zcmMgPSAncmVzb3VyY2VzL2Rpc2Nvbm5lY3RlZC1mcmFtZS1pbm5lci5o
dG1sJzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkocmV2aXNpb24gNjU0MDIpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTY4Miw3ICs1NjgyLDkg
QEAgc3RvcmFnZS9pbmRleGVkZGIKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRvLXJl
bW90ZS1jb250ZXh0Lmh0bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2NhbGxiYWNrLXRvLXJlbW90
ZS1jb250ZXh0Mi5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9jYWxsYmFjay10by1kZWxldGVk
LWNvbnRleHQuaHRtbAorZmFzdC9kb20vR2VvbG9jYXRpb24vZGlzY29ubmVjdGVkLWZyYW1lLmh0
bWwKIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1hbHJlYWR5Lmh0bWwK
K2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2Rpc2Nvbm5lY3RlZC1mcmFtZS1wZXJtaXNzaW9uLWRlbmll
ZC5odG1sCiAKICMgR1RLKyB0aGVtZS1yZW5kZXJlZCB3aWRnZXRzIGRvIG5vdCBzdXBwb3J0IENT
UyB0cmFuc2Zvcm1zCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDEzOQo=
</data>
<flag name="review"
          id="53058"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>