<?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>148223</bug_id>
          
          <creation_ts>2015-08-20 09:26:31 -0700</creation_ts>
          <short_desc>Web Inspector: add a regression test for the fix introduced in r188679</short_desc>
          <delta_ts>2015-08-31 18:22:05 -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>Web Inspector</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>148158</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119253</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-20 09:26:31 -0700</bug_when>
    <thetext>Here&apos;s the key trick:

    function listenerRecieversWithPrototype(proto, emitter) {
        let results = new Set;
        for (let eventType in emitter._listeners) {
            let recordsForEvent = emitter._listeners[eventType];
            for (let listener of recordsForEvent) {
                if (listener.thisObject instanceof proto)
                    results.add(listener.thisObject);
            }
        }
        return results;
    }

We can check that the number of instances stays the same across reloads or navigations between simple pages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119255</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-08-20 09:26:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/22362146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119292</commentid>
    <comment_count>2</comment_count>
      <attachid>259480</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-20 10:45:11 -0700</bug_when>
    <thetext>Created attachment 259480
Proposed Fix

I manually verified that the last assertion in the test fails prior to the mentioned revision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119337</commentid>
    <comment_count>3</comment_count>
      <attachid>259480</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-20 14:04:32 -0700</bug_when>
    <thetext>Comment on attachment 259480
Proposed Fix

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

Keeping r? regarding the possibly unexpected change in behavior.

&gt; Source/WebInspectorUI/UserInterface/Models/Frame.js:341
&gt; +        this._detachFromParentFrame();

This doesn&apos;t sound right to me.

Currently if a MainFrame reloads, DOMManager should send out a DocumentUpdated event and the DOMTree associated with the MainFrame will clear and re-request its root DOM node. I don&apos;t understand it all, but it seems keeping the DOMTree of the MainFrame, but removing all the child frames, should be fine without this step.

That said, you did point out an interesting case on IRC. If there is a n&gt;2 depth tree, this doesn&apos;t seem to recursively go through and disconnect child frames, and that should likely happen.

&gt; LayoutTests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation-expected.txt:14
&gt; +PASS: There should not be a DOMTree listening to DOMTreeManager events after a main frame navigation.

I&apos;m not sure this really matters. Currently, we create a new FrameDOMTreeContentView across reloads but we continue to use the MainFrame&apos;s DOMTree. The changes you&apos;ve made in this patch may be for the better though. I just want to make sure we&apos;ve through through them all.

Is DOM.documentUpdated still needed? Maybe for overwriting the DOM, something like replacing the document, without an explicit navigation?

&gt; LayoutTests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:10
&gt; +    function listenerRecieversWithPrototype(proto, emitter) {

Typo: &quot;Recievers&quot; =&gt; &quot;Receivers&quot;

&gt; LayoutTests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:18
&gt; +        for (let eventType in emitter._listeners) {
&gt; +            let recordsForEvent = emitter._listeners[eventType];
&gt; +            for (let listener of recordsForEvent) {
&gt; +                if (listener.thisObject instanceof proto)
&gt; +                    results.add(listener.thisObject);
&gt; +            }
&gt; +        }

This, looking into the internals of WebInspector.Object kinda irks me and was why I didn&apos;t write a test in the first place.

That said, I have a patch that moves _listeners to a Symbol, and that feels a bit better than this if we use a well defined symbol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119408</commentid>
    <comment_count>4</comment_count>
      <attachid>259480</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-20 15:37:46 -0700</bug_when>
    <thetext>Comment on attachment 259480
Proposed Fix

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/Frame.js:341
&gt;&gt; +        this._detachFromParentFrame();
&gt; 
&gt; This doesn&apos;t sound right to me.
&gt; 
&gt; Currently if a MainFrame reloads, DOMManager should send out a DocumentUpdated event and the DOMTree associated with the MainFrame will clear and re-request its root DOM node. I don&apos;t understand it all, but it seems keeping the DOMTree of the MainFrame, but removing all the child frames, should be fine without this step.
&gt; 
&gt; That said, you did point out an interesting case on IRC. If there is a n&gt;2 depth tree, this doesn&apos;t seem to recursively go through and disconnect child frames, and that should likely happen.

In my understanding, re-using the DOMTree instance in some cases (reload) doesn&apos;t really buy us anything, nor does forcing a new one to be created cause problems. It would be great to have this straightforward, no-exceptions story for the lifetimes of DOMTrees.

In the next patch I&apos;ll make it recurse, so it&apos;s clearer that this._detachFromParentFrame() is the &quot;base case&quot;.

&gt;&gt; LayoutTests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation-expected.txt:14
&gt;&gt; +PASS: There should not be a DOMTree listening to DOMTreeManager events after a main frame navigation.
&gt; 
&gt; I&apos;m not sure this really matters. Currently, we create a new FrameDOMTreeContentView across reloads but we continue to use the MainFrame&apos;s DOMTree. The changes you&apos;ve made in this patch may be for the better though. I just want to make sure we&apos;ve through through them all.
&gt; 
&gt; Is DOM.documentUpdated still needed? Maybe for overwriting the DOM, something like replacing the document, without an explicit navigation?

This change will force creation of a new DOMTree, so there&apos;s no way we could accidentally look up and get the old one. Even if we always create a new DOMTree, there&apos;s no reason to keep the old one around in a Frame / DOMTreeManager. If a view needs the old tree for some reason, then it keeps a reference and it won&apos;t get GC&apos;d.

I don&apos;t want to touch documentUpdated.

&gt;&gt; LayoutTests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:18
&gt;&gt; +        }
&gt; 
&gt; This, looking into the internals of WebInspector.Object kinda irks me and was why I didn&apos;t write a test in the first place.
&gt; 
&gt; That said, I have a patch that moves _listeners to a Symbol, and that feels a bit better than this if we use a well defined symbol.

What about just moving this method to Object?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119413</commentid>
    <comment_count>5</comment_count>
      <attachid>259511</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-20 15:44:51 -0700</bug_when>
    <thetext>Created attachment 259511
Proposed Fix (revised)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119476</commentid>
    <comment_count>6</comment_count>
      <attachid>259511</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-20 17:12:40 -0700</bug_when>
    <thetext>Comment on attachment 259511
Proposed Fix (revised)

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

Awesome, this looks great! r=me

&gt; Source/WebInspectorUI/UserInterface/Base/Object.js:114
&gt; +    static retainedObjectsWithPrototype(proto) {

Style: Braces

&gt; LayoutTests/http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:32
&gt; +             // Force creation of child DOM trees.

Style: spaces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119778</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-21 10:06:13 -0700</bug_when>
    <thetext>Committed r188756: &lt;http://trac.webkit.org/changeset/188756&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122347</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-31 16:33:36 -0700</bug_when>
    <thetext>This test (http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html) always times out on Windows. Brian, could you please take care of that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122433</commentid>
    <comment_count>9</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-31 18:20:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; This test
&gt; (http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.
&gt; html) always times out on Windows. Brian, could you please take care of that?

I thought windows skipped all inspector tests. Maybe it wasn&apos;t skipping http/tests/inspector?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259480</attachid>
            <date>2015-08-20 10:45:11 -0700</date>
            <delta_ts>2015-08-20 15:44:46 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-148223-20150820104506.patch</filename>
            <type>text/plain</type>
            <size>8667</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA0
ZDdhN2Q5YTg4MzdhYTAwZjkyZDU0ZWVmMmRlZTM5NDdlZWFkYTQ3Li42YzBmYWZiYjhhZDZhNjQ3
MDk1NDA2NDBhOTViN2U2MzUzMDMzYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNS0wOC0yMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgYSByZWdyZXNzaW9uIHRlc3QgZm9yIHRoZSBmaXgg
aW50cm9kdWNlZCBpbiByMTg4Njc5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDgyMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSByZWdyZXNzaW9uIHRlc3QgdG8gY2hlY2sgdGhlIG51bWJlciBv
ZiBET01UcmVlIGluc3RhbmNlcyB0aGF0CisgICAgICAgIGxpc3RlbiB0byBET01UcmVlTWFuYWdl
ci4KKworICAgICAgICBUdXJucyBvdXQgdGhhdCB3ZSB3ZXJlIHBvc3NpYmx5IGxlYWtpbmcgYSBz
aW5nbGUgRE9NVHJlZSBvbiByZWxvYWQuCisgICAgICAgIEFsd2F5cyBjbGVhciB0aGUgbWFpbiBm
cmFtZSdzIERPTVRyZWUgYXMgd2VsbCBhcyB0aG9zZSBvZiBzdWItZnJhbWVzLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9CYXNlL09iamVjdC5qczogQWRkIGJhY2sgc2luZ2xlLWZpcmUgbGlz
dGVuZXJzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdC5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lci5sZXQud3JhcHBlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3Qu
c2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdC5w
cm90b3R5cGUuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL0ZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lLnByb3RvdHlw
ZS5yZW1vdmVBbGxDaGlsZEZyYW1lcyk6IENsZWFyIG93biB0cmVlIHRvby4KKwogMjAxNS0wOC0x
OSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBhZGQgVGVzdEhhcm5lc3Mgb3B0aW9uIHRvIHRlZSBhbGwgY29tbWFuZHMgdG8gc3lzdGVtIGNv
bnNvbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvT2JqZWN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9P
YmplY3QuanMKaW5kZXggOWVkZTBhZGI0OTFiMjU3MTk0ZGY1ZmViODliNzc0ZTNhODRlNmNhYy4u
NGRlNzU3MTY1YTgwMWI4YmYzYmVjMzk0NjAzZGNlNzNjMzQ0OTQ0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9PYmplY3QuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9PYmplY3QuanMKQEAgLTU1LDYg
KzU1LDE2IEBAIFdlYkluc3BlY3Rvci5PYmplY3QgPSBjbGFzcyBPYmplY3QKICAgICAgICAgbGlz
dGVuZXJzLnB1c2goe3RoaXNPYmplY3QsIGxpc3RlbmVyfSk7CiAgICAgfQogCisgICAgc3RhdGlj
IHNpbmdsZUZpcmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHRoaXNPYmplY3Qp
CisgICAgeworICAgICAgICBsZXQgd3JhcHBlZENhbGxiYWNrID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCB3cmFwcGVkQ2FsbGJh
Y2ssIG51bGwpOworICAgICAgICAgICAgbGlzdGVuZXIuYXBwbHkodGhpc09iamVjdCwgYXJndW1l
bnRzKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpOworCisgICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0
ZW5lcihldmVudFR5cGUsIHdyYXBwZWRDYWxsYmFjaywgbnVsbCk7CisgICAgfQorCiAgICAgc3Rh
dGljIHJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgdGhpc09iamVjdCkK
ICAgICB7CiAgICAgICAgIGV2ZW50VHlwZSA9IGV2ZW50VHlwZSB8fCBudWxsOwpAQCAtMTAzLDYg
KzExMyw3IEBAIFdlYkluc3BlY3Rvci5PYmplY3QgPSBjbGFzcyBPYmplY3QKICAgICAvLyBQdWJs
aWMKIAogICAgIGFkZEV2ZW50TGlzdGVuZXIoKSB7IHJldHVybiBXZWJJbnNwZWN0b3IuT2JqZWN0
LmFkZEV2ZW50TGlzdGVuZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfQorICAgIHNpbmdsZUZp
cmVFdmVudExpc3RlbmVyKCkgeyByZXR1cm4gV2ViSW5zcGVjdG9yLk9iamVjdC5zaW5nbGVGaXJl
RXZlbnRMaXN0ZW5lci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9CiAgICAgcmVtb3ZlRXZlbnRM
aXN0ZW5lcigpIHsgcmV0dXJuIFdlYkluc3BlY3Rvci5PYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5l
ci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9CiAgICAgcmVtb3ZlQWxsTGlzdGVuZXJzKCkgeyBy
ZXR1cm4gV2ViSW5zcGVjdG9yLk9iamVjdC5yZW1vdmVBbGxMaXN0ZW5lcnMuYXBwbHkodGhpcywg
YXJndW1lbnRzKTsgfQogICAgIGhhc0V2ZW50TGlzdGVuZXJzKCkgeyByZXR1cm4gV2ViSW5zcGVj
dG9yLk9iamVjdC5oYXNFdmVudExpc3RlbmVycy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRnJh
bWUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRnJhbWUu
anMKaW5kZXggYjE0YjM2ZDQ5YjBmMWIzYzY0OTJhN2M1OTFjOTRmMTQyNTU4OGQ4My4uYjIwZGRm
MzBiOTZmYTM0ZTllMjUzYmEwYTA4NTAyMGQwOTRlMTBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0ZyYW1lLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9GcmFtZS5qcwpAQCAtMzM4LDYgKzMz
OCw4IEBAIFdlYkluc3BlY3Rvci5GcmFtZSA9IGNsYXNzIEZyYW1lIGV4dGVuZHMgV2ViSW5zcGVj
dG9yLk9iamVjdAogCiAgICAgcmVtb3ZlQWxsQ2hpbGRGcmFtZXMoKQogICAgIHsKKyAgICAgICAg
dGhpcy5fZGV0YWNoRnJvbVBhcmVudEZyYW1lKCk7CisKICAgICAgICAgaWYgKCF0aGlzLl9jaGls
ZEZyYW1lcy5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZjFlYzQ4YWYx
ZjllOGQxNWQxZGE0NmUyOTcxYzM3YTc4MzYyOGYwLi41NTZmY2QyNThjMmM4ZGM5ZWMwZDcxM2M1
ZGQ0MGVjNjRlNWI2MDU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDgtMjAgIEJyaWFu
IEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGEg
cmVncmVzc2lvbiB0ZXN0IGZvciB0aGUgZml4IGludHJvZHVjZWQgaW4gcjE4ODY3OQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MjIzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAqIGluc3BlY3Rvci9kb20vZGlzY29ubmVjdC1kb20tdHJlZS1hZnRl
ci1tYWluLWZyYW1lLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZG9tL2Rpc2Nvbm5lY3QtZG9tLXRyZWUtYWZ0ZXItbWFpbi1mcmFtZS1uYXZpZ2F0
aW9uLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA4LTIwICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCBhY2NpZGVudGFsIGNvbW1pdCBvZiBhIG5l
dyB0ZXN0IHRoYXQgaXNuJ3QgcmVhZHkgZm9yIHByaW1lIHRpbWUuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tL2Rpc2Nvbm5lY3QtZG9tLXRyZWUtYWZ0ZXItbWFpbi1mcmFt
ZS1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZGlz
Y29ubmVjdC1kb20tdHJlZS1hZnRlci1tYWluLWZyYW1lLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNkNjAyYWViMTk5ZjM2YzllMmUyMzJhZTI2MjljNjJiY2EwYzkzOTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2Rpc2Nvbm5lY3QtZG9t
LXRyZWUtYWZ0ZXItbWFpbi1mcmFtZS1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE2IEBACitUZXN0aW5nIHRoYXQgRE9NVHJlZXMgYXJlIG5vdCByZXRhaW5lZCBieSBET01UcmVl
TWFuYWdlciBhY3Jvc3MgbWFpbiBmcmFtZSBuYXZpZ2F0aW9ucy4KKworCis9PSBSdW5uaW5nIHRl
c3Qgc3VpdGU6IERPTS5EaXNjb25uZWN0VHJlZU9uTWFpblJlc291cmNlQ2hhbmdlCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogQ2hlY2tMYXp5SW5pdGlhbGl6YXRpb25PZkRPTVRyZWUKK1BBU1M6IFRo
ZXJlIHNob3VsZCBub3QgYmUgYSBET01UcmVlIGxpc3RlbmluZyB0byBET01UcmVlTWFuYWdlciBl
dmVudHMgaW5pdGlhbGx5LgorRE9NVHJlZSBpbnN0YW5jZSBjb3VudDogMAorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQ2hlY2tJbml0aWFsRE9NVHJlZUNvdW50CitQQVNTOiBUaGVyZSBzaG91bGQg
YmUgYSBvbmUgRE9NVHJlZSBsaXN0ZW5pbmcgdG8gRE9NVHJlZU1hbmFnZXIgZXZlbnRzIGFmdGVy
IGNyZWF0aW9uLgorRE9NVHJlZSBpbnN0YW5jZSBjb3VudDogMQorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQ2hlY2tET01UcmVlQ291bnRBZnRlclJlbG9hZGluZworUEFTUzogVGhlcmUgc2hvdWxk
IG5vdCBiZSBhIERPTVRyZWUgbGlzdGVuaW5nIHRvIERPTVRyZWVNYW5hZ2VyIGV2ZW50cyBhZnRl
ciBhIG1haW4gZnJhbWUgbmF2aWdhdGlvbi4KK0RPTVRyZWUgaW5zdGFuY2UgY291bnQ6IDAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kaXNjb25uZWN0LWRvbS10cmVl
LWFmdGVyLW1haW4tZnJhbWUtbmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9kaXNjb25uZWN0LWRvbS10cmVlLWFmdGVyLW1haW4tZnJhbWUtbmF2aWdhdGlvbi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNkY2RkZTAxZTI0OThmMmY0YmIzZTVjYzE0ZDE1MDE5NDhhMzcyMWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2Rpc2Nvbm5lY3QtZG9t
LXRyZWUtYWZ0ZXItbWFpbi1mcmFtZS1uYXZpZ2F0aW9uLmh0bWwKQEAgLTAsMCArMSw3MSBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kdW1wQWN0aXZp
dHlUb1N5c3RlbUNvbnNvbGUgPSB0cnVlOworCisgICAgZnVuY3Rpb24gbGlzdGVuZXJSZWNpZXZl
cnNXaXRoUHJvdG90eXBlKHByb3RvLCBlbWl0dGVyKSB7CisgICAgICAgIGxldCByZXN1bHRzID0g
bmV3IFNldDsKKyAgICAgICAgZm9yIChsZXQgZXZlbnRUeXBlIGluIGVtaXR0ZXIuX2xpc3RlbmVy
cykgeworICAgICAgICAgICAgbGV0IHJlY29yZHNGb3JFdmVudCA9IGVtaXR0ZXIuX2xpc3RlbmVy
c1tldmVudFR5cGVdOworICAgICAgICAgICAgZm9yIChsZXQgbGlzdGVuZXIgb2YgcmVjb3Jkc0Zv
ckV2ZW50KSB7CisgICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVyLnRoaXNPYmplY3QgaW5zdGFu
Y2VvZiBwcm90bykKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5hZGQobGlzdGVuZXIudGhp
c09iamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3Vs
dHM7CisgICAgfQorCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1
aXRlKCJET00uRGlzY29ubmVjdFRyZWVPbk1haW5SZXNvdXJjZUNoYW5nZSIpOworCisgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ2hlY2tMYXp5SW5pdGlhbGl6YXRpb25P
ZkRPTVRyZWUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgRE9NVHJlZSBpbnN0
YW5jZXMgYXJlIGNyZWF0ZWQgbGF6aWx5LiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKKyAgICAgICAgICAgIGxldCBpbnN0YW5jZXMgPSBsaXN0ZW5lclJlY2lldmVyc1dp
dGhQcm90b3R5cGUoV2ViSW5zcGVjdG9yLkRPTVRyZWUsIFdlYkluc3BlY3Rvci5kb21UcmVlTWFu
YWdlcik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zdGFuY2VzLnNp
emUgPT09IDAsICJUaGVyZSBzaG91bGQgbm90IGJlIGEgRE9NVHJlZSBsaXN0ZW5pbmcgdG8gRE9N
VHJlZU1hbmFnZXIgZXZlbnRzIGluaXRpYWxseS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJET01UcmVlIGluc3RhbmNlIGNvdW50OiAiICsgaW5zdGFuY2VzLnNpemUpOworICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDaGVja0luaXRpYWxET01UcmVlQ291bnQiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIGluaXRpYWwgY291bnQgb2YgY29ubmVj
dGVkIERPTVRyZWVzIGlzIGNvcnJlY3QuIiwKKyAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICAgICAgbGV0IG1haW5GcmFtZSA9IFdlYkluc3BlY3Rvci5mcmFtZVJl
c291cmNlTWFuYWdlci5tYWluRnJhbWU7CisgICAgICAgICAgICBsZXQgdHJlZSA9IG1haW5GcmFt
ZS5kb21UcmVlOyAvLyBGb3JjZSBjcmVhdGlvbiBvZiB0aGUgRE9NIHRyZWUuCisKKyAgICAgICAg
ICAgIGxldCBpbnN0YW5jZXMgPSBsaXN0ZW5lclJlY2lldmVyc1dpdGhQcm90b3R5cGUoV2ViSW5z
cGVjdG9yLkRPTVRyZWUsIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlcik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zdGFuY2VzLnNpemUgPT09IDEsICJUaGVyZSBz
aG91bGQgYmUgYSBvbmUgRE9NVHJlZSBsaXN0ZW5pbmcgdG8gRE9NVHJlZU1hbmFnZXIgZXZlbnRz
IGFmdGVyIGNyZWF0aW9uLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRPTVRy
ZWUgaW5zdGFuY2UgY291bnQ6ICIgKyBpbnN0YW5jZXMuc2l6ZSk7CisgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIkNoZWNrRE9NVHJlZUNvdW50QWZ0ZXJSZWxvYWRpbmciLAorICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIGNvdW50IG9mIGNvbm5lY3RlZCBET01UcmVlcyBp
cyBjb3JyZWN0IGFmdGVyIGEgcmVsb2FkLiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5GcmFtZS5zaW5nbGVGaXJlRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCAo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBsZXQgaW5zdGFuY2VzID0gbGlzdGVuZXJSZWNp
ZXZlcnNXaXRoUHJvdG90eXBlKFdlYkluc3BlY3Rvci5ET01UcmVlLCBXZWJJbnNwZWN0b3IuZG9t
VHJlZU1hbmFnZXIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChp
bnN0YW5jZXMuc2l6ZSA9PT0gMCwgIlRoZXJlIHNob3VsZCBub3QgYmUgYSBET01UcmVlIGxpc3Rl
bmluZyB0byBET01UcmVlTWFuYWdlciBldmVudHMgYWZ0ZXIgYSBtYWluIGZyYW1lIG5hdmlnYXRp
b24uIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRPTVRyZWUgaW5zdGFu
Y2UgY291bnQ6ICIgKyBpbnN0YW5jZXMuc2l6ZSk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFn
ZSgpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
ICAgIDxwPlRlc3RpbmcgdGhhdCBET01UcmVlcyBhcmUgbm90IHJldGFpbmVkIGJ5IERPTVRyZWVN
YW5hZ2VyIGFjcm9zcyBtYWluIGZyYW1lIG5hdmlnYXRpb25zLjwvcD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259511</attachid>
            <date>2015-08-20 15:44:51 -0700</date>
            <delta_ts>2015-08-31 18:22:05 -0700</delta_ts>
            <desc>Proposed Fix (revised)</desc>
            <filename>bug-148223-20150820154445.patch</filename>
            <type>text/plain</type>
            <size>12807</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4Njk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAy
OThhYzEwNjEyNWVjYjBiMmQ5ZjljOWZlMTJmZTg2MDk1ZDIyOWJhLi43YTZkNTBmNzNlNzllZmFl
MDM3Zjk1NzBiMzAzOTdkODc5ZmQ3MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyNCBAQAogMjAxNS0wOC0yMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgYSByZWdyZXNzaW9uIHRlc3QgZm9yIHRoZSBmaXgg
aW50cm9kdWNlZCBpbiByMTg4Njc5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDgyMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUdXJucyBvdXQgdGhhdCB3ZSB3ZXJlIHBvc3NpYmx5IGxlYWtpbmcgYSBz
aW5nbGUgRE9NVHJlZSBvbiByZWxvYWQuCisgICAgICAgIEFsd2F5cyBjbGVhciB0aGUgbWFpbiBm
cmFtZSdzIERPTVRyZWUgYXMgd2VsbCBhcyB0aG9zZSBvZiBzdWItZnJhbWVzLgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9CYXNlL09iamVjdC5qczogQWRkIGJhY2sgc2luZ2xlLWZpcmUgbGlz
dGVuZXJzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdC5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lci5sZXQud3JhcHBlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3Qu
c2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk9iamVjdC5y
ZXRhaW5lZE9iamVjdHNXaXRoUHJvdG90eXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmpl
Y3QucHJvdG90eXBlLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5PYmplY3QucHJvdG90eXBlLnJldGFpbmVkT2JqZWN0c1dpdGhQcm90b3R5cGUpOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0ZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkZyYW1lLnByb3RvdHlwZS5yZW1vdmVBbGxDaGlsZEZyYW1lcyk6IENsZWFyIG93biB0cmVl
IHRvby4KKworMjAxNS0wOC0yMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBjb25zb2xlIGFzc2VydGlvbiB3aGVuIGhpdHRpbmcgYnJlYWtw
b2ludCBhZnRlciBhdXRvLXJlY29yZGluZyBlbmRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgyMjUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9PYmplY3QuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL09iamVjdC5qcwppbmRleCA5ZWRlMGFkYjQ5MWIyNTcx
OTRkZjVmZWI4OWI3NzRlM2E4NGU2Y2FjLi5iYTU5MzlkMjI5OGJmYzA2YzI1NGM1YjJkZjZjMzIw
NzEwYjQ5ZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL09iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL09iamVjdC5qcwpAQCAtNTUsNiArNTUsMTYgQEAgV2ViSW5zcGVjdG9yLk9iamVjdCA9
IGNsYXNzIE9iamVjdAogICAgICAgICBsaXN0ZW5lcnMucHVzaCh7dGhpc09iamVjdCwgbGlzdGVu
ZXJ9KTsKICAgICB9CiAKKyAgICBzdGF0aWMgc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoZXZlbnRU
eXBlLCBsaXN0ZW5lciwgdGhpc09iamVjdCkKKyAgICB7CisgICAgICAgIGxldCB3cmFwcGVkQ2Fs
bGJhY2sgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5l
cihldmVudFR5cGUsIHdyYXBwZWRDYWxsYmFjaywgbnVsbCk7CisgICAgICAgICAgICBsaXN0ZW5l
ci5hcHBseSh0aGlzT2JqZWN0LCBhcmd1bWVudHMpOworICAgICAgICB9LmJpbmQodGhpcyk7CisK
KyAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgd3JhcHBlZENhbGxiYWNr
LCBudWxsKTsKKyAgICB9CisKICAgICBzdGF0aWMgcmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5
cGUsIGxpc3RlbmVyLCB0aGlzT2JqZWN0KQogICAgIHsKICAgICAgICAgZXZlbnRUeXBlID0gZXZl
bnRUeXBlIHx8IG51bGw7CkBAIC0xMDAsMTIgKzExMCwyNyBAQCBXZWJJbnNwZWN0b3IuT2JqZWN0
ID0gY2xhc3MgT2JqZWN0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIC8vIFRo
aXMgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoaW4gcmVncmVzc2lvbiB0ZXN0cyB0byBkZXRlY3Qg
bGVha3MuCisgICAgc3RhdGljIHJldGFpbmVkT2JqZWN0c1dpdGhQcm90b3R5cGUocHJvdG8pIHsK
KyAgICAgICAgbGV0IHJlc3VsdHMgPSBuZXcgU2V0OworICAgICAgICBmb3IgKGxldCBldmVudFR5
cGUgaW4gdGhpcy5fbGlzdGVuZXJzKSB7CisgICAgICAgICAgICBsZXQgcmVjb3Jkc0ZvckV2ZW50
ID0gdGhpcy5fbGlzdGVuZXJzW2V2ZW50VHlwZV07CisgICAgICAgICAgICBmb3IgKGxldCBsaXN0
ZW5lciBvZiByZWNvcmRzRm9yRXZlbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXIu
dGhpc09iamVjdCBpbnN0YW5jZW9mIHByb3RvKQorICAgICAgICAgICAgICAgICAgICByZXN1bHRz
LmFkZChsaXN0ZW5lci50aGlzT2JqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gcmVzdWx0czsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGFkZEV2
ZW50TGlzdGVuZXIoKSB7IHJldHVybiBXZWJJbnNwZWN0b3IuT2JqZWN0LmFkZEV2ZW50TGlzdGVu
ZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfQorICAgIHNpbmdsZUZpcmVFdmVudExpc3RlbmVy
KCkgeyByZXR1cm4gV2ViSW5zcGVjdG9yLk9iamVjdC5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lci5h
cHBseSh0aGlzLCBhcmd1bWVudHMpOyB9CiAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcigpIHsgcmV0
dXJuIFdlYkluc3BlY3Rvci5PYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lci5hcHBseSh0aGlzLCBh
cmd1bWVudHMpOyB9CiAgICAgcmVtb3ZlQWxsTGlzdGVuZXJzKCkgeyByZXR1cm4gV2ViSW5zcGVj
dG9yLk9iamVjdC5yZW1vdmVBbGxMaXN0ZW5lcnMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfQog
ICAgIGhhc0V2ZW50TGlzdGVuZXJzKCkgeyByZXR1cm4gV2ViSW5zcGVjdG9yLk9iamVjdC5oYXNF
dmVudExpc3RlbmVycy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9CisgICAgcmV0YWluZWRPYmpl
Y3RzV2l0aFByb3RvdHlwZSgpIHsgcmV0dXJuIFdlYkluc3BlY3Rvci5PYmplY3QucmV0YWluZWRP
YmplY3RzV2l0aFByb3RvdHlwZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9CiAKICAgICBkaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoZXZlbnRUeXBlLCBldmVudERhdGEpCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0ZyYW1lLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0ZyYW1lLmpzCmlu
ZGV4IGIxNGIzNmQ0OWIwZjFiM2M2NDkyYTdjNTkxYzk0ZjE0MjU1ODhkODMuLjMyMWEyMTZmYzhm
Yzc0MjVkMjBiMTg2NjFkNjBjOWEwYjkyYTRlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9GcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRnJhbWUuanMKQEAgLTMzOCwxMSArMzM4LDEw
IEBAIFdlYkluc3BlY3Rvci5GcmFtZSA9IGNsYXNzIEZyYW1lIGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk9iamVjdAogCiAgICAgcmVtb3ZlQWxsQ2hpbGRGcmFtZXMoKQogICAgIHsKLSAgICAgICAgaWYg
KCF0aGlzLl9jaGlsZEZyYW1lcy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAg
IHRoaXMuX2RldGFjaEZyb21QYXJlbnRGcmFtZSgpOwogCiAgICAgICAgIGZvciAobGV0IGNoaWxk
RnJhbWUgb2YgdGhpcy5fY2hpbGRGcmFtZXMpCi0gICAgICAgICAgICBjaGlsZEZyYW1lLl9kZXRh
Y2hGcm9tUGFyZW50RnJhbWUoKTsKKyAgICAgICAgICAgIGNoaWxkRnJhbWUucmVtb3ZlQWxsQ2hp
bGRGcmFtZXMoKTsKIAogICAgICAgICB0aGlzLl9jaGlsZEZyYW1lcyA9IFtdOwogICAgICAgICB0
aGlzLl9jaGlsZEZyYW1lSWRlbnRpZmllck1hcCA9IHt9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkwNGE1Mjc1ZDk3NjA3
Nzk3NTc1OTUxNTE1MGZiZmJlMWIwOGYyMjkuLjI3MWI4MzU5MGZiMjU1OThmMTljMzhkZGRhMDQy
ZWIzYTk3YmVhMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wOC0yMCAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgYSByZWdy
ZXNzaW9uIHRlc3QgZm9yIHRoZSBmaXggaW50cm9kdWNlZCBpbiByMTg4Njc5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgyMjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSByZWdyZXNzaW9uIHRl
c3QgdG8gY2hlY2sgdGhlIG51bWJlciBvZiBET01UcmVlIGluc3RhbmNlcyB0aGF0CisgICAgICAg
IGxpc3RlbiB0byBET01UcmVlTWFuYWdlci4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6
IERvbid0IHNraXAgdGhlIGluc3BlY3Rvci9kb20vIGRpcmVjdG9yeS4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9kb20vZGlzY29ubmVjdC1kb20tdHJlZS1hZnRlci1tYWluLWZyYW1l
LW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9kb20vZGlzY29ubmVjdC1kb20tdHJlZS1hZnRlci1tYWluLWZyYW1lLW5hdmlnYXRp
b24uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZG9tL3Jlc291
cmNlcy9uZXN0ZWQtZnJhbWUtMS1kZWVwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL2RvbS9yZXNvdXJjZXMvbmVzdGVkLWZyYW1lLTItZGVlcC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vcmVzb3VyY2VzL25lc3RlZC1m
cmFtZS1iYXNlLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA4LTIwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogaHR0cC90ZXN0cy9jYWNoZS9kaXNr
LWNhY2hlL2Rpc2stY2FjaGUtcmV2YWxpZGF0aW9uLW5ldy1leHBpcmUtaGVhZGVyLmh0bWwgaXMg
dmVyeSBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmZkOWQ4MzlhYjFlNTU1ZTgxNmM1YTNk
MDNlNjJkZDJhODJmMGQ0MC4uMzYxZWE2ODdlNjcyN2NjMGM2YjFiNzcwMmZlNTZhN2U0MzlhY2Vi
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC05Nyw3ICs5NywxMCBAQCB3ZWJraXQub3JnL2IvODM2
MTggZmFzdC9kb20vaW5saW5lLWV2ZW50LWF0dHJpYnV0ZXMtcmVsZWFzZS5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvMTI5MDU3IG1lZGlhL2NvbnRyb2xzLXN0eWxpbmctc3RyaWN0Lmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQogCiAjIFRoZXNlIHRlc3RzIHdpbGwgYmUgcmV3cml0dGVuLCBq
dXN0IHNraXAgdGhlbSB1bnRpbCB0aGF0IHRpbWUuCi13ZWJraXQub3JnL2IvMTQ4MDM2IGh0dHAv
dGVzdHMvaW5zcGVjdG9yLyBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE0ODAzNiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLyBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE0ODAzNiBodHRwL3Rl
c3RzL2luc3BlY3Rvci9jc3MvIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTQ4MDM2IGh0dHAvdGVz
dHMvaW5zcGVjdG9yL3BhZ2UvIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTQ4MDM2IGh0dHAvdGVz
dHMvaW5zcGVjdG9yL3JlcGxheS8gWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzEyOTYzOSBpbnNw
ZWN0b3IvZG9tL2RvbS1zZWFyY2gtY3Jhc2guaHRtbCBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vZGlzY29ubmVjdC1kb20tdHJlZS1h
ZnRlci1tYWluLWZyYW1lLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZG9tL2Rpc2Nvbm5lY3QtZG9tLXRyZWUtYWZ0ZXItbWFpbi1mcmFt
ZS1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzEwYWY2NDFjZTQ1YjA5MWMx
NTExOTk0ZjZhMjVjYjEzNzk4MDgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZG9tL2Rpc2Nvbm5lY3QtZG9tLXRyZWUtYWZ0ZXItbWFpbi1mcmFt
ZS1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0aW5nIHRoYXQg
RE9NVHJlZXMgYXJlIG5vdCByZXRhaW5lZCBieSBET01UcmVlTWFuYWdlciBhY3Jvc3MgbWFpbiBm
cmFtZSBuYXZpZ2F0aW9ucy4KKworCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRE9NLkRpc2Nv
bm5lY3RUcmVlT25NYWluUmVzb3VyY2VDaGFuZ2UKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDaGVj
a0xhenlJbml0aWFsaXphdGlvbk9mRE9NVHJlZQorUEFTUzogVGhlcmUgc2hvdWxkIG5vdCBiZSBh
IERPTVRyZWUgbGlzdGVuaW5nIHRvIERPTVRyZWVNYW5hZ2VyIGV2ZW50cyBpbml0aWFsbHkuCitE
T01UcmVlIGluc3RhbmNlIGNvdW50OiAwCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDaGVja0RP
TVRyZWVDb3VudEFmdGVyVXNpbmdHZXR0ZXIKK1BBU1M6IFRoZXJlIHNob3VsZCBiZSBhIG9uZSBE
T01UcmVlIGxpc3RlbmluZyB0byBET01UcmVlTWFuYWdlciBldmVudHMgYWZ0ZXIgY3JlYXRpb24u
CitET01UcmVlIGluc3RhbmNlIGNvdW50OiAxCitQQVNTOiBUaGVyZSBzaG91bGQgYmUgZm91ciBE
T01UcmVlcyBsaXN0ZW5pbmcgdG8gRE9NVHJlZU1hbmFnZXIgZXZlbnRzIGFmdGVyIHRvdWNoaW5n
IGVhY2ggRnJhbWUuCitET01UcmVlIGluc3RhbmNlIGNvdW50OiA0CisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDaGVja0RPTVRyZWVDb3VudEFmdGVyUmVsb2FkaW5nCitQQVNTOiBUaGVyZSBzaG91
bGQgbm90IGJlIGFueSBET01UcmVlcyBsaXN0ZW5pbmcgdG8gRE9NVHJlZU1hbmFnZXIgZXZlbnRz
IGFmdGVyIGEgbWFpbiBmcmFtZSBuYXZpZ2F0aW9uLgorRE9NVHJlZSBpbnN0YW5jZSBjb3VudDog
MAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vZGlz
Y29ubmVjdC1kb20tdHJlZS1hZnRlci1tYWluLWZyYW1lLW5hdmlnYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RvbS9kaXNjb25uZWN0LWRvbS10cmVlLWFmdGVy
LW1haW4tZnJhbWUtbmF2aWdhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MTQ4YmY0NGVkNTNkMzEz
MTAxMzAyYjUwNWRhZGIxYTJhNzIxMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9kb20vZGlzY29ubmVjdC1kb20tdHJlZS1hZnRlci1tYWluLWZy
YW1lLW5hdmlnYXRpb24uaHRtbApAQCAtMCwwICsxLDY4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRPTS5EaXNjb25uZWN0VHJlZU9uTWFp
blJlc291cmNlQ2hhbmdlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJDaGVja0xhenlJbml0aWFsaXphdGlvbk9mRE9NVHJlZSIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiQ2hlY2sgdGhhdCBET01UcmVlIGluc3RhbmNlcyBhcmUgY3JlYXRlZCBsYXppbHkuIiwK
KyAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgbGV0IGlu
c3RhbmNlcyA9IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5yZXRhaW5lZE9iamVjdHNXaXRo
UHJvdG90eXBlKFdlYkluc3BlY3Rvci5ET01UcmVlKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChpbnN0YW5jZXMuc2l6ZSA9PT0gMCwgIlRoZXJlIHNob3VsZCBub3QgYmUg
YSBET01UcmVlIGxpc3RlbmluZyB0byBET01UcmVlTWFuYWdlciBldmVudHMgaW5pdGlhbGx5LiIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRPTVRyZWUgaW5zdGFuY2UgY291bnQ6
ICIgKyBpbnN0YW5jZXMuc2l6ZSk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0K
KyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNoZWNr
RE9NVHJlZUNvdW50QWZ0ZXJVc2luZ0dldHRlciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hl
Y2sgdGhhdCB0aGUgY291bnQgb2YgY29ubmVjdGVkIERPTVRyZWVzIGlzIGNvcnJlY3QgYWZ0ZXIg
aW5pdGlhbGl6aW5nIHRoZW0uIiwKKyAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICAgICAgbGV0IG1haW5GcmFtZSA9IFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNl
TWFuYWdlci5tYWluRnJhbWU7CisgICAgICAgICAgICBtYWluRnJhbWUuZG9tVHJlZTsgLy8gRm9y
Y2UgY3JlYXRpb24gb2YgdGhlIHJvb3QgRE9NIHRyZWUuCisKKyAgICAgICAgICAgIGxldCBpbnN0
YW5jZXMgPSBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucmV0YWluZWRPYmplY3RzV2l0aFBy
b3RvdHlwZShXZWJJbnNwZWN0b3IuRE9NVHJlZSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoaW5zdGFuY2VzLnNpemUgPT09IDEsICJUaGVyZSBzaG91bGQgYmUgYSBvbmUg
RE9NVHJlZSBsaXN0ZW5pbmcgdG8gRE9NVHJlZU1hbmFnZXIgZXZlbnRzIGFmdGVyIGNyZWF0aW9u
LiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRPTVRyZWUgaW5zdGFuY2UgY291
bnQ6ICIgKyBpbnN0YW5jZXMuc2l6ZSk7CisKKyAgICAgICAgICAgICAvLyBGb3JjZSBjcmVhdGlv
biBvZiBjaGlsZCBET00gdHJlZXMuCisgICAgICAgICAgICBtYWluRnJhbWUuY2hpbGRGcmFtZXNb
MF0uZG9tVHJlZTsKKyAgICAgICAgICAgIG1haW5GcmFtZS5jaGlsZEZyYW1lc1swXS5jaGlsZEZy
YW1lc1swXS5kb21UcmVlOworICAgICAgICAgICAgbWFpbkZyYW1lLmNoaWxkRnJhbWVzWzBdLmNo
aWxkRnJhbWVzWzBdLmNoaWxkRnJhbWVzWzBdLmRvbVRyZWU7CisKKyAgICAgICAgICAgIGluc3Rh
bmNlcyA9IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5yZXRhaW5lZE9iamVjdHNXaXRoUHJv
dG90eXBlKFdlYkluc3BlY3Rvci5ET01UcmVlKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChpbnN0YW5jZXMuc2l6ZSA9PT0gNCwgIlRoZXJlIHNob3VsZCBiZSBmb3VyIERP
TVRyZWVzIGxpc3RlbmluZyB0byBET01UcmVlTWFuYWdlciBldmVudHMgYWZ0ZXIgdG91Y2hpbmcg
ZWFjaCBGcmFtZS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJET01UcmVlIGlu
c3RhbmNlIGNvdW50OiAiICsgaW5zdGFuY2VzLnNpemUpOworCisgICAgICAgICAgICByZXNvbHZl
KCk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkNoZWNrRE9NVHJlZUNvdW50QWZ0ZXJSZWxvYWRpbmciLAorICAgICAgICBkZXNj
cmlwdGlvbjogIkNoZWNrIHRoYXQgdGhlIGNvdW50IG9mIGNvbm5lY3RlZCBET01UcmVlcyBpcyBj
b3JyZWN0IGFmdGVyIGEgcmVsb2FkLiIsCisgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5GcmFtZS5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRnJhbWUuRXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCAoZXZl
bnQpID0+IHsKKyAgICAgICAgICAgICAgICBsZXQgaW5zdGFuY2VzID0gV2ViSW5zcGVjdG9yLmRv
bVRyZWVNYW5hZ2VyLnJldGFpbmVkT2JqZWN0c1dpdGhQcm90b3R5cGUoV2ViSW5zcGVjdG9yLkRP
TVRyZWUpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnN0YW5j
ZXMuc2l6ZSA9PT0gMCwgIlRoZXJlIHNob3VsZCBub3QgYmUgYW55IERPTVRyZWVzIGxpc3Rlbmlu
ZyB0byBET01UcmVlTWFuYWdlciBldmVudHMgYWZ0ZXIgYSBtYWluIGZyYW1lIG5hdmlnYXRpb24u
Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRPTVRyZWUgaW5zdGFuY2Ug
Y291bnQ6ICIgKyBpbnN0YW5jZXMuc2l6ZSk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgp
OworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2go
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAg
IDxwPlRlc3RpbmcgdGhhdCBET01UcmVlcyBhcmUgbm90IHJldGFpbmVkIGJ5IERPTVRyZWVNYW5h
Z2VyIGFjcm9zcyBtYWluIGZyYW1lIG5hdmlnYXRpb25zLjwvcD4KKyAgICA8aWZyYW1lIHNyYz0i
cmVzb3VyY2VzL25lc3RlZC1mcmFtZS0yLWRlZXAuaHRtbCIvPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZG9tL3Jlc291cmNl
cy9uZXN0ZWQtZnJhbWUtMS1kZWVwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9kb20vcmVzb3VyY2VzL25lc3RlZC1mcmFtZS0xLWRlZXAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
ODI4MGVlZTUyYjg3OWRhMzRiZWMyOWE2NjZlMmEwMWRjOGI2NTgyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZG9tL3Jlc291cmNlcy9uZXN0ZWQt
ZnJhbWUtMS1kZWVwLmh0bWwKQEAgLTAsMCArMSw3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8ZGl2IGlkPSJmcmFtZUxhYmVsIj4xLWRlZXAgbmVzdGVkIGZyYW1lcyBwYWdl
LjwvZGl2PgorPGlmcmFtZSBzcmM9Im5lc3RlZC1mcmFtZS1iYXNlLmh0bWwiLz4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Rv
bS9yZXNvdXJjZXMvbmVzdGVkLWZyYW1lLTItZGVlcC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZG9tL3Jlc291cmNlcy9uZXN0ZWQtZnJhbWUtMi1kZWVwLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmNlZTA5ODRmMTQ4NzViNmNkMWYzZTk2MzJlOGM3NWJkNWRmYTA3YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RvbS9yZXNvdXJj
ZXMvbmVzdGVkLWZyYW1lLTItZGVlcC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0iZnJhbWVMYWJlbCI+Mi1kZWVwIG5lc3RlZCBm
cmFtZXMgcGFnZS48L2Rpdj4KKzxpZnJhbWUgc3JjPSJuZXN0ZWQtZnJhbWUtMS1kZWVwLmh0bWwi
Lz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2RvbS9yZXNvdXJjZXMvbmVzdGVkLWZyYW1lLWJhc2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RvbS9yZXNvdXJjZXMvbmVzdGVkLWZyYW1lLWJhc2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZDQxODU3NmNmMDk2ZmIxMjc2OWFlMGFkYmMxNjE0ZDg3MmEyODM4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZG9t
L3Jlc291cmNlcy9uZXN0ZWQtZnJhbWUtYmFzZS5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0iZnJhbWVMYWJlbCI+TmVzdGVkIGZy
YW1lIGJhc2UgcGFnZS48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="284694"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>