<?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>119541</bug_id>
          
          <creation_ts>2013-08-07 03:53:16 -0700</creation_ts>
          <short_desc>Web Inspector: Use granular DOMStorage modification events to avoid complete DataGrid update.</short_desc>
          <delta_ts>2013-08-08 00:56:54 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vivek Galatage">vivekg</reporter>
          <assigned_to name="Vivek Galatage">vivekg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>915082</commentid>
    <comment_count>0</comment_count>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2013-08-07 03:53:16 -0700</bug_when>
    <thetext>InspectorDOMStorageAgent sends more granular events about the storage modifications. Using these would avoid the complete rebuilding of the DataGrid.

Fixes &lt;rdar://problem/13223981&gt;

Patch follows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915083</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-08-07 03:53:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/14671060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915086</commentid>
    <comment_count>2</comment_count>
      <attachid>208248</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2013-08-07 04:03:37 -0700</bug_when>
    <thetext>Created attachment 208248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915090</commentid>
    <comment_count>3</comment_count>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2013-08-07 04:15:32 -0700</bug_when>
    <thetext>Probably fixes https://bugs.webkit.org/show_bug.cgi?id=116241 

Although not sure if the case is being flaky!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915117</commentid>
    <comment_count>4</comment_count>
      <attachid>208261</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2013-08-07 05:55:55 -0700</bug_when>
    <thetext>Created attachment 208261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915118</commentid>
    <comment_count>5</comment_count>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2013-08-07 06:00:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Probably fixes https://bugs.webkit.org/show_bug.cgi?id=116241 
&gt; 
&gt; Although not sure if the case is being flaky!

Still the test case is flaky on WK2. Reverting back the TestExpectation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915227</commentid>
    <comment_count>6</comment_count>
      <attachid>208261</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-08-07 11:31:32 -0700</bug_when>
    <thetext>Comment on attachment 208261
Patch

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

Looks good overall, just needs a bit of polish. I also have a bunch of minor comments and questions I&apos;d like to see answered.

&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:67
&gt; +        for (var i = 0; i &lt; this._dataGrid.children.length; ++i)

Style: This for loop should have braces about its body.

&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:78
&gt; +        this._dataGrid.insertChild(childNode, this._dataGrid.children.length - 1);
&gt; +        childNode.revealAndSelect();

What if the dataGrid is sorted, this just inserts the child at the end?

Maybe that makes sense because you&apos;re only adding items at the bottom. But then, when does the sort eventually happen?

&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:92
&gt; +                if (childNode.data[1] === oldValue) {

This check doesn&apos;t seem necessary. You&apos;re going to replace the data value anyways, and remove any other nodes with the same key (which shouldn&apos;t happen either). I think you should remove this if check, unless you have a reason it needs to be here.

&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:95
&gt; +                    childNode.revealAndSelect();

I&apos;m a little worried about these revealAndSelect calls.

If you&apos;re adding a localStorage value, and the page itself triggers an update (localStorage.x = localStorage.x + 1), will this event cause you to lose your place editing and reveal &amp; select the updated value? If localStorage is changing frequently that would make it hard to modify. Though, I think we probably already have these issues, so they should be addressed in a follow-up.

&gt; Source/WebInspectorUI/UserInterface/DOMStorageObserver.js:59
&gt; +        var eventData = { key: key };

Style: WebInspector style for object literals is: {key: value, key: value}. So this should be:

    var eventData = {key: key};

&gt; Source/WebInspectorUI/UserInterface/DOMStorageObserver.js:66
&gt; +        var eventData = { key: key, value: value };

Style: here too.

&gt; Source/WebInspectorUI/UserInterface/DOMStorageObserver.js:73
&gt; +        var eventData = { key: key, oldValue: oldValue, value: value };

Style: here too.

&gt; Source/WebInspectorUI/UserInterface/StorageManager.js:52
&gt; +    DOMStorageItemsCleared: &quot;storage-manager-dom-storage-items-cleared&quot;,
&gt; +    DOMStorageItemRemoved: &quot;storage-manager-dom-storage-item-removed&quot;,
&gt; +    DOMStorageItemAdded: &quot;storage-manager-dom-storage-item-added&quot;,
&gt; +    DOMStorageItemUpdated: &quot;storage-manager-dom-storage-item-updated&quot;,

Declaring Events like this and not dispatching an event is a little misleading. Someone might come along, see these events listed, register for one, and be surprised when their handler is not called.

You could make a separate enum, or just make 4 functions for the observer to call, and share the logic to get the domStorageView for a storage id. I think 4 functions would be fine.

&gt; Source/WebInspectorUI/UserInterface/StorageManager.js:107
&gt; +        var domStorage = this._domStorageForId(id);
&gt; +        if (!domStorage)
&gt; +            return;
&gt; +        var domStorageView = WebInspector.contentBrowser.contentViewContainer.contentViewForRepresentedObject(domStorage, true);
&gt; +        if (!domStorageView)
&gt; +            return;

Style: Place newlines after early returns. See domStorageWasUpdated above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915313</commentid>
    <comment_count>7</comment_count>
      <attachid>208311</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2013-08-07 20:07:55 -0700</bug_when>
    <thetext>Created attachment 208311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915314</commentid>
    <comment_count>8</comment_count>
      <attachid>208261</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2013-08-07 20:10:06 -0700</bug_when>
    <thetext>Comment on attachment 208261
Patch

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

Thank you for the review.

&gt;&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:67
&gt;&gt; +        for (var i = 0; i &lt; this._dataGrid.children.length; ++i)
&gt; 
&gt; Style: This for loop should have braces about its body.

Done.

&gt;&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:78
&gt;&gt; +        childNode.revealAndSelect();
&gt; 
&gt; What if the dataGrid is sorted, this just inserts the child at the end?
&gt; 
&gt; Maybe that makes sense because you&apos;re only adding items at the bottom. But then, when does the sort eventually happen?

Done.

&gt;&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:92
&gt;&gt; +                if (childNode.data[1] === oldValue) {
&gt; 
&gt; This check doesn&apos;t seem necessary. You&apos;re going to replace the data value anyways, and remove any other nodes with the same key (which shouldn&apos;t happen either). I think you should remove this if check, unless you have a reason it needs to be here.

Removed.

&gt;&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:95
&gt;&gt; +                    childNode.revealAndSelect();
&gt; 
&gt; I&apos;m a little worried about these revealAndSelect calls.
&gt; 
&gt; If you&apos;re adding a localStorage value, and the page itself triggers an update (localStorage.x = localStorage.x + 1), will this event cause you to lose your place editing and reveal &amp; select the updated value? If localStorage is changing frequently that would make it hard to modify. Though, I think we probably already have these issues, so they should be addressed in a follow-up.

Done.

&gt;&gt; Source/WebInspectorUI/UserInterface/DOMStorageObserver.js:59
&gt;&gt; +        var eventData = { key: key };
&gt; 
&gt; Style: WebInspector style for object literals is: {key: value, key: value}. So this should be:
&gt; 
&gt;     var eventData = {key: key};

Modified.

&gt;&gt; Source/WebInspectorUI/UserInterface/DOMStorageObserver.js:66
&gt;&gt; +        var eventData = { key: key, value: value };
&gt; 
&gt; Style: here too.

Modified.

&gt;&gt; Source/WebInspectorUI/UserInterface/DOMStorageObserver.js:73
&gt;&gt; +        var eventData = { key: key, oldValue: oldValue, value: value };
&gt; 
&gt; Style: here too.

Modified.

&gt;&gt; Source/WebInspectorUI/UserInterface/StorageManager.js:52
&gt;&gt; +    DOMStorageItemUpdated: &quot;storage-manager-dom-storage-item-updated&quot;,
&gt; 
&gt; Declaring Events like this and not dispatching an event is a little misleading. Someone might come along, see these events listed, register for one, and be surprised when their handler is not called.
&gt; 
&gt; You could make a separate enum, or just make 4 functions for the observer to call, and share the logic to get the domStorageView for a storage id. I think 4 functions would be fine.

Modified to have separate functions.

&gt;&gt; Source/WebInspectorUI/UserInterface/StorageManager.js:107
&gt;&gt; +            return;
&gt; 
&gt; Style: Place newlines after early returns. See domStorageWasUpdated above.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915316</commentid>
    <comment_count>9</comment_count>
      <attachid>208311</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-08-07 21:35:41 -0700</bug_when>
    <thetext>Comment on attachment 208311
Patch

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

Much nicer! This look great. You may want to remove that one extra line before landing.

&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:80
&gt; +        this._dataGrid.insertChild(childNode, this._dataGrid.children.length - 1);
&gt; +        if (this._dataGrid.sortOrder)
&gt; +            this._sortDataGrid();

In the future this could insert at sorted index, and be a binary search + insertion O(log n) instead of a sort O(n * log n). But this is probably good enough for now. I don&apos;t think there are too many sites with many localStorage values.

&gt; Source/WebInspectorUI/UserInterface/DOMStorageContentView.js:168
&gt; +        this._dataGridSorted = true;

This new property seems unnecessary. Nothing checks it and it didn&apos;t exist before. Looks like you can remove this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915327</commentid>
    <comment_count>10</comment_count>
      <attachid>208313</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2013-08-08 00:02:09 -0700</bug_when>
    <thetext>Created attachment 208313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915342</commentid>
    <comment_count>11</comment_count>
      <attachid>208313</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-08 00:56:52 -0700</bug_when>
    <thetext>Comment on attachment 208313
Patch

Clearing flags on attachment: 208313

Committed r153817: &lt;http://trac.webkit.org/changeset/153817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915343</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-08 00:56:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208248</attachid>
            <date>2013-08-07 04:03:37 -0700</date>
            <delta_ts>2013-08-07 05:55:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119541-20130807163724.patch</filename>
            <type>text/plain</type>
            <size>10794</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBl
MWYwOWM1NzBmYTFiMDQ2Njk5M2VkOWIzZDdiM2VlNGM5MjNiNjgwLi41ODM4MmY0MjI2ZTU1YjM4
YWIwNzc5NTQzNTQzMzE1Y2RlMmM5Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxMy0wOC0wNyAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBVc2UgZ3JhbnVsYXIgRE9NU3RvcmFnZSBt
b2RpZmljYXRpb24gZXZlbnRzIHRvIGF2b2lkIGNvbXBsZXRlIERhdGFHcmlkIHVwZGF0ZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTU0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudCBzZW5kcyBtb3JlIGdyYW51bGFyIGV2ZW50cyBhYm91dCB0aGUgc3RvcmFn
ZSBtb2RpZmljYXRpb25zLgorICAgICAgICBVc2luZyB0aGVzZSB3b3VsZCBhdm9pZCB0aGUgY29t
cGxldGUgcmVidWlsZGluZyBvZiB0aGUgRGF0YUdyaWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlLml0ZW1zQ2xlYXJlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5pdGVtUmVtb3ZlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5pdGVt
QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldy5wcm90
b3R5cGUuaXRlbVVwZGF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZU9i
c2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90
b3R5cGUuZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZU9ic2VydmVyLnByb3RvdHlwZS5kb21TdG9yYWdlSXRlbVJlbW92ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90b3R5cGUuZG9tU3RvcmFnZUl0
ZW1BZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU9ic2VydmVyLnByb3Rv
dHlwZS5kb21TdG9yYWdlSXRlbVVwZGF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvU3Rv
cmFnZU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZU1hbmFnZXIucHJv
dG90eXBlLmRvbVN0b3JhZ2VNb2RpZmllZCk6CisKIDIwMTMtMDgtMDYgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUg
c3RhbGUgY29kZSBpbiBSZXNvdXJjZUNvbnRlbnRWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9ET01TdG9yYWdlQ29udGVudFZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9ET01TdG9yYWdlQ29udGVudFZpZXcuanMK
aW5kZXggMGY0ZTY3MTY2YjJmNDY5NmJiNmZkZjRhZjRhMTRjOTBiMWMzZjYxMy4uODJlZTA4MTMy
N2ZjZTU3MzQwZmMyYWM2MDBlNGE2MmUyODc0NWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5q
cwpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTQ0LDYgKzQ1LDU5IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmdldEVudHJpZXMo
dGhpcy5fc2hvd0RPTVN0b3JhZ2VFbnRyaWVzLmJpbmQodGhpcykpOwogICAgIH0sCiAKKyAgICBp
dGVtc0NsZWFyZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLnJl
bW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZENyZWF0aW9uTm9kZShm
YWxzZSk7CisgICAgfSwKKworICAgIGl0ZW1SZW1vdmVkOiBmdW5jdGlvbihrZXkpCisgICAgewor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuLmxlbmd0
aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY2hpbGROb2RlID0gdGhpcy5fZGF0YUdyaWQuY2hp
bGRyZW5baV07CisgICAgICAgICAgICBpZiAoY2hpbGROb2RlLmRhdGFbMF0gPT09IGtleSkgewor
ICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnJlbW92ZUNoaWxkKGNoaWxkTm9kZSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwK
KworICAgIGl0ZW1BZGRlZDogZnVuY3Rpb24oa2V5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICBpZiAodGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5baV1bMF0gPT09IGtleSkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGRhdGEgPSB7fTsKKyAgICAgICAg
ZGF0YVswXSA9IGtleTsKKyAgICAgICAgZGF0YVsxXSA9IHZhbHVlOworCisgICAgICAgIHZhciBj
aGlsZE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhLCBmYWxzZSk7CisK
KyAgICAgICAgdGhpcy5fZGF0YUdyaWQuaW5zZXJ0Q2hpbGQoY2hpbGROb2RlLCB0aGlzLl9kYXRh
R3JpZC5jaGlsZHJlbi5sZW5ndGggLSAxKTsKKyAgICAgICAgY2hpbGROb2RlLnJldmVhbEFuZFNl
bGVjdCgpOworICAgIH0sCisKKyAgICBpdGVtVXBkYXRlZDogZnVuY3Rpb24oa2V5LCBvbGRWYWx1
ZSwgdmFsdWUpCisgICAgeworICAgICAgICB2YXIga2V5Rm91bmQgPSBmYWxzZTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9kYXRhR3JpZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgdmFyIGNoaWxkTm9kZSA9IHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuW2ld
OworICAgICAgICAgICAgaWYgKGNoaWxkTm9kZS5kYXRhWzBdID09PSBrZXkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoa2V5Rm91bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUdy
aWQucmVtb3ZlQ2hpbGQoY2hpbGROb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBrZXlGb3VuZCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgaWYgKGNoaWxkTm9kZS5kYXRhWzFdID09PSBvbGRWYWx1ZSkgeworICAgICAg
ICAgICAgICAgICAgICBjaGlsZE5vZGUuZGF0YVsxXSA9IHZhbHVlOworICAgICAgICAgICAgICAg
ICAgICBjaGlsZE5vZGUucmVmcmVzaCgpOworICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGUu
cmV2ZWFsQW5kU2VsZWN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfSwKKwogICAgIHVwZGF0ZUxheW91dDogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgaWYgKHRoaXMuX2RhdGFHcmlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZU9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZU9ic2VydmVyLmpzCmluZGV4IDc4NzEzN2Ex
MDkxYzk0YjhmNTc2OWZmNjExYjEyNGRjNjY2MjM2MGIuLjg2MDUzZDVkMzI5ZDk0ZTRiNzFmYmU2
OGUwMWRhNmI5ZDIyOWFkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0RPTVN0b3JhZ2VPYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9ET01TdG9yYWdlT2JzZXJ2ZXIuanMKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NywyNiArNDgsMzAg
QEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90b3R5cGUgPSB7CiAKICAgICBk
b21TdG9yYWdlSXRlbXNDbGVhcmVkOiBmdW5jdGlvbihzdG9yYWdlSWQpCiAgICAgewotICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIHRoaXMgZ3JhbnVsYXIgZXZlbnQgYmV0dGVyIGJ5IG9ubHkgdXBk
YXRpbmcgd2hhdCBjaGFuZ2VkLiA8cmRhcjovL3Byb2JsZW0vMTMyMjM5ODE+Ci0gICAgICAgIHRo
aXMudXBkYXRlRE9NU3RvcmFnZShzdG9yYWdlSWQpOworICAgICAgICB2YXIgZXZlbnRUeXBlID0g
V2ViSW5zcGVjdG9yLlN0b3JhZ2VNYW5hZ2VyLkV2ZW50LkRPTVN0b3JhZ2VJdGVtc0NsZWFyZWQ7
CisgICAgICAgIHZhciBldmVudERhdGEgPSB7fTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnN0b3Jh
Z2VNYW5hZ2VyLmRvbVN0b3JhZ2VNb2RpZmllZChzdG9yYWdlSWQsIGV2ZW50VHlwZSwgZXZlbnRE
YXRhKTsKICAgICB9LAogCiAgICAgZG9tU3RvcmFnZUl0ZW1SZW1vdmVkOiBmdW5jdGlvbihzdG9y
YWdlSWQsIGtleSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhpcyBncmFudWxh
ciBldmVudCBiZXR0ZXIgYnkgb25seSB1cGRhdGluZyB3aGF0IGNoYW5nZWQuIDxyZGFyOi8vcHJv
YmxlbS8xMzIyMzk4MT4KLSAgICAgICAgdGhpcy51cGRhdGVET01TdG9yYWdlKHN0b3JhZ2VJZCk7
CisgICAgICAgIHZhciBldmVudFR5cGUgPSBXZWJJbnNwZWN0b3IuU3RvcmFnZU1hbmFnZXIuRXZl
bnQuRE9NU3RvcmFnZUl0ZW1SZW1vdmVkOworICAgICAgICB2YXIgZXZlbnREYXRhID0geyBrZXk6
IGtleSB9OworICAgICAgICBXZWJJbnNwZWN0b3Iuc3RvcmFnZU1hbmFnZXIuZG9tU3RvcmFnZU1v
ZGlmaWVkKHN0b3JhZ2VJZCwgZXZlbnRUeXBlLCBldmVudERhdGEpOwogICAgIH0sCiAKLSAgICBk
b21TdG9yYWdlSXRlbUFkZGVkOiBmdW5jdGlvbihzdG9yYWdlSWQsIGtleSwgbmV3VmFsdWUpCisg
ICAgZG9tU3RvcmFnZUl0ZW1BZGRlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXksIHZhbHVlKQog
ICAgIHsKLSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSB0aGlzIGdyYW51bGFyIGV2ZW50IGJldHRl
ciBieSBvbmx5IHVwZGF0aW5nIHdoYXQgY2hhbmdlZC4gPHJkYXI6Ly9wcm9ibGVtLzEzMjIzOTgx
PgotICAgICAgICB0aGlzLnVwZGF0ZURPTVN0b3JhZ2Uoc3RvcmFnZUlkKTsKKyAgICAgICAgdmFy
IGV2ZW50VHlwZSA9IFdlYkluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5FdmVudC5ET01TdG9yYWdl
SXRlbUFkZGVkOworICAgICAgICB2YXIgZXZlbnREYXRhID0geyBrZXk6IGtleSwgdmFsdWU6IHZh
bHVlIH07CisgICAgICAgIFdlYkluc3BlY3Rvci5zdG9yYWdlTWFuYWdlci5kb21TdG9yYWdlTW9k
aWZpZWQoc3RvcmFnZUlkLCBldmVudFR5cGUsIGV2ZW50RGF0YSk7CiAgICAgfSwKIAotICAgIGRv
bVN0b3JhZ2VJdGVtVXBkYXRlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXksIG9sZFZhbHVlLCBu
ZXdWYWx1ZSkKKyAgICBkb21TdG9yYWdlSXRlbVVwZGF0ZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwg
a2V5LCBvbGRWYWx1ZSwgdmFsdWUpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRo
aXMgZ3JhbnVsYXIgZXZlbnQgYmV0dGVyIGJ5IG9ubHkgdXBkYXRpbmcgd2hhdCBjaGFuZ2VkLiA8
cmRhcjovL3Byb2JsZW0vMTMyMjM5ODE+Ci0gICAgICAgIHRoaXMudXBkYXRlRE9NU3RvcmFnZShz
dG9yYWdlSWQpOworICAgICAgICB2YXIgZXZlbnRUeXBlID0gV2ViSW5zcGVjdG9yLlN0b3JhZ2VN
YW5hZ2VyLkV2ZW50LkRPTVN0b3JhZ2VJdGVtVXBkYXRlZDsKKyAgICAgICAgdmFyIGV2ZW50RGF0
YSA9IHsga2V5OiBrZXksIG9sZFZhbHVlOiBvbGRWYWx1ZSwgdmFsdWU6IHZhbHVlIH07CisgICAg
ICAgIFdlYkluc3BlY3Rvci5zdG9yYWdlTWFuYWdlci5kb21TdG9yYWdlTW9kaWZpZWQoc3RvcmFn
ZUlkLCBldmVudFR5cGUsIGV2ZW50RGF0YSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU3RvcmFnZU1hbmFnZXIuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TdG9yYWdlTWFuYWdlci5qcwppbmRleCA3
MzdmZjcxYjhlNjIzZDczNWU4N2U1NzI5M2IyNGM1ZjgxNWE2NGNiLi5mNjZkYWNjOWZiMjc1ZjZh
NDkwMjY1N2VmYTE2NjY5YjRkNzdiM2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9TdG9yYWdlTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9TdG9yYWdlTWFuYWdlci5qcwpAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDYgKzQ2LDEwIEBA
IFdlYkluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5FdmVudCA9IHsKICAgICBDb29raWVTdG9yYWdl
T2JqZWN0V2FzQWRkZWQ6ICJzdG9yYWdlLW1hbmFnZXItY29va2llLXN0b3JhZ2Utb2JqZWN0LXdh
cy1hZGRlZCIsCiAgICAgRE9NU3RvcmFnZU9iamVjdFdhc0FkZGVkOiAic3RvcmFnZS1tYW5hZ2Vy
LWRvbS1zdG9yYWdlLW9iamVjdC13YXMtYWRkZWQiLAogICAgIERPTVN0b3JhZ2VPYmplY3RXYXNJ
bnNwZWN0ZWQ6ICJzdG9yYWdlLWRvbS1vYmplY3Qtd2FzLWluc3BlY3RlZCIsCisgICAgRE9NU3Rv
cmFnZUl0ZW1zQ2xlYXJlZDogInN0b3JhZ2UtbWFuYWdlci1kb20tc3RvcmFnZS1pdGVtcy1jbGVh
cmVkIiwKKyAgICBET01TdG9yYWdlSXRlbVJlbW92ZWQ6ICJzdG9yYWdlLW1hbmFnZXItZG9tLXN0
b3JhZ2UtaXRlbS1yZW1vdmVkIiwKKyAgICBET01TdG9yYWdlSXRlbUFkZGVkOiAic3RvcmFnZS1t
YW5hZ2VyLWRvbS1zdG9yYWdlLWl0ZW0tYWRkZWQiLAorICAgIERPTVN0b3JhZ2VJdGVtVXBkYXRl
ZDogInN0b3JhZ2UtbWFuYWdlci1kb20tc3RvcmFnZS1pdGVtLXVwZGF0ZWQiLAogICAgIERhdGFi
YXNlV2FzQWRkZWQ6ICJzdG9yYWdlLW1hbmFnZXItZGF0YWJhc2Utd2FzLWFkZGVkIiwKICAgICBE
YXRhYmFzZVdhc0luc3BlY3RlZDogInN0b3JhZ2Utb2JqZWN0LXdhcy1pbnNwZWN0ZWQiLAogICAg
IENsZWFyZWQ6ICJzdG9yYWdlLW1hbmFnZXItY2xlYXJlZCIKQEAgLTkyLDYgKzk3LDMyIEBAIFdl
Ykluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRvbVN0b3Jh
Z2VWaWV3LnVwZGF0ZSgpOwogICAgIH0sCiAKKyAgICBkb21TdG9yYWdlTW9kaWZpZWQ6IGZ1bmN0
aW9uKGlkLCBldmVudFR5cGUsIGV2ZW50RGF0YSkKKyAgICB7CisgICAgICAgIHZhciBkb21TdG9y
YWdlID0gdGhpcy5fZG9tU3RvcmFnZUZvcklkKGlkKTsKKyAgICAgICAgaWYgKCFkb21TdG9yYWdl
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgZG9tU3RvcmFnZVZpZXcgPSBXZWJJ
bnNwZWN0b3IuY29udGVudEJyb3dzZXIuY29udGVudFZpZXdDb250YWluZXIuY29udGVudFZpZXdG
b3JSZXByZXNlbnRlZE9iamVjdChkb21TdG9yYWdlLCB0cnVlKTsKKyAgICAgICAgaWYgKCFkb21T
dG9yYWdlVmlldykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
ZG9tU3RvcmFnZVZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRW
aWV3KTsKKworICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkgeworICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5TdG9yYWdlTWFuYWdlci5FdmVudC5ET01TdG9yYWdlSXRlbXNDbGVhcmVkOgorICAg
ICAgICAgICAgZG9tU3RvcmFnZVZpZXcuaXRlbXNDbGVhcmVkKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU3RvcmFnZU1hbmFnZXIuRXZlbnQuRE9NU3Rv
cmFnZUl0ZW1SZW1vdmVkOgorICAgICAgICAgICAgZG9tU3RvcmFnZVZpZXcuaXRlbVJlbW92ZWQo
ZXZlbnREYXRhLmtleSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuU3RvcmFnZU1hbmFnZXIuRXZlbnQuRE9NU3RvcmFnZUl0ZW1BZGRlZDoKKyAgICAgICAg
ICAgIGRvbVN0b3JhZ2VWaWV3Lml0ZW1BZGRlZChldmVudERhdGEua2V5LCBldmVudERhdGEudmFs
dWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlN0b3Jh
Z2VNYW5hZ2VyLkV2ZW50LkRPTVN0b3JhZ2VJdGVtVXBkYXRlZDoKKyAgICAgICAgICAgIGRvbVN0
b3JhZ2VWaWV3Lml0ZW1VcGRhdGVkKGV2ZW50RGF0YS5rZXksIGV2ZW50RGF0YS5vbGRWYWx1ZSwg
ZXZlbnREYXRhLnZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfSwK
KwogICAgIGluc3BlY3REYXRhYmFzZTogZnVuY3Rpb24oaWQpCiAgICAgewogICAgICAgICB2YXIg
ZGF0YWJhc2UgPSB0aGlzLl9kYXRhYmFzZUZvcklkKGlkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YjU1MWVlMjcwOWVh
NWJhMDEzNTlkM2FjMDc4YmVkNTNlZTcxMmU2Li5kYzBjNDVlYTJjYWE1NDEzZGQ0YjA1Y2Q0MWZm
YjRlMDYwMDJjNjA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDgtMDcgIFZpdmVrIEdh
bGF0YWdlICA8dml2ZWsudmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
VXNlIGdyYW51bGFyIERPTVN0b3JhZ2UgbW9kaWZpY2F0aW9uIGV2ZW50cyB0byBhdm9pZCBjb21w
bGV0ZSBEYXRhR3JpZCB1cGRhdGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTk1NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTA4
LTA0ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBv
cnQgZm9yIEhUTUw1IE1pY3JvRGF0YQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA4MTAxMDU5YzgyY2EwN2YyMzQxMmY3ZTY0NWUzNmFmNDFkZDVkNTM2Li4w
MTdmNDllZThlZDM1OWFjZWVkNTdjYjIyMTM2MDExOThiZGE4NTM5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI5Miw4ICsxMjkyLDYgQEAgZWRpdGlu
Zy9zZWN1cmUtaW5wdXQvcmVzZXQtc3RhdGUtb24tbmF2aWdhdGlvbi5odG1sIFsgRmFpbHVyZSBd
CiAKIHdlYmtpdC5vcmcvYi8xMTYyMzggY3NzMy9maWx0ZXJzL2N1c3RvbS9maWx0ZXItZmFsbGJh
Y2stdG8tc29mdHdhcmUuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5v
cmcvYi8xMTYyNDEgaW5zcGVjdG9yL3N0b3JhZ2UtcGFuZWwtZG9tLXN0b3JhZ2UtdXBkYXRlLmh0
bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzExNjI0NCBmYXN0L2V2ZW50cy9tb3VzZS1j
dXJzb3ItaW1hZ2Utc2V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMTE2
MjQ1IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LmZvbnRmYWNlLm5vdGlucGFnZS5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208261</attachid>
            <date>2013-08-07 05:55:55 -0700</date>
            <delta_ts>2013-08-07 20:10:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119541-20130807182943.patch</filename>
            <type>text/plain</type>
            <size>9441</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBl
MWYwOWM1NzBmYTFiMDQ2Njk5M2VkOWIzZDdiM2VlNGM5MjNiNjgwLi41ODM4MmY0MjI2ZTU1YjM4
YWIwNzc5NTQzNTQzMzE1Y2RlMmM5Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxMy0wOC0wNyAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBVc2UgZ3JhbnVsYXIgRE9NU3RvcmFnZSBt
b2RpZmljYXRpb24gZXZlbnRzIHRvIGF2b2lkIGNvbXBsZXRlIERhdGFHcmlkIHVwZGF0ZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTU0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudCBzZW5kcyBtb3JlIGdyYW51bGFyIGV2ZW50cyBhYm91dCB0aGUgc3RvcmFn
ZSBtb2RpZmljYXRpb25zLgorICAgICAgICBVc2luZyB0aGVzZSB3b3VsZCBhdm9pZCB0aGUgY29t
cGxldGUgcmVidWlsZGluZyBvZiB0aGUgRGF0YUdyaWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlLml0ZW1zQ2xlYXJlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5pdGVtUmVtb3ZlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5pdGVt
QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldy5wcm90
b3R5cGUuaXRlbVVwZGF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZU9i
c2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90
b3R5cGUuZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZU9ic2VydmVyLnByb3RvdHlwZS5kb21TdG9yYWdlSXRlbVJlbW92ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90b3R5cGUuZG9tU3RvcmFnZUl0
ZW1BZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU9ic2VydmVyLnByb3Rv
dHlwZS5kb21TdG9yYWdlSXRlbVVwZGF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvU3Rv
cmFnZU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZU1hbmFnZXIucHJv
dG90eXBlLmRvbVN0b3JhZ2VNb2RpZmllZCk6CisKIDIwMTMtMDgtMDYgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUg
c3RhbGUgY29kZSBpbiBSZXNvdXJjZUNvbnRlbnRWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9ET01TdG9yYWdlQ29udGVudFZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9ET01TdG9yYWdlQ29udGVudFZpZXcuanMK
aW5kZXggMGY0ZTY3MTY2YjJmNDY5NmJiNmZkZjRhZjRhMTRjOTBiMWMzZjYxMy4uODJlZTA4MTMy
N2ZjZTU3MzQwZmMyYWM2MDBlNGE2MmUyODc0NWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5q
cwpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTQ0LDYgKzQ1LDU5IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmdldEVudHJpZXMo
dGhpcy5fc2hvd0RPTVN0b3JhZ2VFbnRyaWVzLmJpbmQodGhpcykpOwogICAgIH0sCiAKKyAgICBp
dGVtc0NsZWFyZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLnJl
bW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZENyZWF0aW9uTm9kZShm
YWxzZSk7CisgICAgfSwKKworICAgIGl0ZW1SZW1vdmVkOiBmdW5jdGlvbihrZXkpCisgICAgewor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuLmxlbmd0
aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY2hpbGROb2RlID0gdGhpcy5fZGF0YUdyaWQuY2hp
bGRyZW5baV07CisgICAgICAgICAgICBpZiAoY2hpbGROb2RlLmRhdGFbMF0gPT09IGtleSkgewor
ICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnJlbW92ZUNoaWxkKGNoaWxkTm9kZSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwK
KworICAgIGl0ZW1BZGRlZDogZnVuY3Rpb24oa2V5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICBpZiAodGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5baV1bMF0gPT09IGtleSkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGRhdGEgPSB7fTsKKyAgICAgICAg
ZGF0YVswXSA9IGtleTsKKyAgICAgICAgZGF0YVsxXSA9IHZhbHVlOworCisgICAgICAgIHZhciBj
aGlsZE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhLCBmYWxzZSk7CisK
KyAgICAgICAgdGhpcy5fZGF0YUdyaWQuaW5zZXJ0Q2hpbGQoY2hpbGROb2RlLCB0aGlzLl9kYXRh
R3JpZC5jaGlsZHJlbi5sZW5ndGggLSAxKTsKKyAgICAgICAgY2hpbGROb2RlLnJldmVhbEFuZFNl
bGVjdCgpOworICAgIH0sCisKKyAgICBpdGVtVXBkYXRlZDogZnVuY3Rpb24oa2V5LCBvbGRWYWx1
ZSwgdmFsdWUpCisgICAgeworICAgICAgICB2YXIga2V5Rm91bmQgPSBmYWxzZTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9kYXRhR3JpZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgdmFyIGNoaWxkTm9kZSA9IHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuW2ld
OworICAgICAgICAgICAgaWYgKGNoaWxkTm9kZS5kYXRhWzBdID09PSBrZXkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoa2V5Rm91bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUdy
aWQucmVtb3ZlQ2hpbGQoY2hpbGROb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBrZXlGb3VuZCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgaWYgKGNoaWxkTm9kZS5kYXRhWzFdID09PSBvbGRWYWx1ZSkgeworICAgICAg
ICAgICAgICAgICAgICBjaGlsZE5vZGUuZGF0YVsxXSA9IHZhbHVlOworICAgICAgICAgICAgICAg
ICAgICBjaGlsZE5vZGUucmVmcmVzaCgpOworICAgICAgICAgICAgICAgICAgICBjaGlsZE5vZGUu
cmV2ZWFsQW5kU2VsZWN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfSwKKwogICAgIHVwZGF0ZUxheW91dDogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgaWYgKHRoaXMuX2RhdGFHcmlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZU9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZU9ic2VydmVyLmpzCmluZGV4IDc4NzEzN2Ex
MDkxYzk0YjhmNTc2OWZmNjExYjEyNGRjNjY2MjM2MGIuLjg2MDUzZDVkMzI5ZDk0ZTRiNzFmYmU2
OGUwMWRhNmI5ZDIyOWFkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0RPTVN0b3JhZ2VPYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9ET01TdG9yYWdlT2JzZXJ2ZXIuanMKQEAgLTEsNSArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NywyNiArNDgsMzAg
QEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90b3R5cGUgPSB7CiAKICAgICBk
b21TdG9yYWdlSXRlbXNDbGVhcmVkOiBmdW5jdGlvbihzdG9yYWdlSWQpCiAgICAgewotICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIHRoaXMgZ3JhbnVsYXIgZXZlbnQgYmV0dGVyIGJ5IG9ubHkgdXBk
YXRpbmcgd2hhdCBjaGFuZ2VkLiA8cmRhcjovL3Byb2JsZW0vMTMyMjM5ODE+Ci0gICAgICAgIHRo
aXMudXBkYXRlRE9NU3RvcmFnZShzdG9yYWdlSWQpOworICAgICAgICB2YXIgZXZlbnRUeXBlID0g
V2ViSW5zcGVjdG9yLlN0b3JhZ2VNYW5hZ2VyLkV2ZW50LkRPTVN0b3JhZ2VJdGVtc0NsZWFyZWQ7
CisgICAgICAgIHZhciBldmVudERhdGEgPSB7fTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnN0b3Jh
Z2VNYW5hZ2VyLmRvbVN0b3JhZ2VNb2RpZmllZChzdG9yYWdlSWQsIGV2ZW50VHlwZSwgZXZlbnRE
YXRhKTsKICAgICB9LAogCiAgICAgZG9tU3RvcmFnZUl0ZW1SZW1vdmVkOiBmdW5jdGlvbihzdG9y
YWdlSWQsIGtleSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhpcyBncmFudWxh
ciBldmVudCBiZXR0ZXIgYnkgb25seSB1cGRhdGluZyB3aGF0IGNoYW5nZWQuIDxyZGFyOi8vcHJv
YmxlbS8xMzIyMzk4MT4KLSAgICAgICAgdGhpcy51cGRhdGVET01TdG9yYWdlKHN0b3JhZ2VJZCk7
CisgICAgICAgIHZhciBldmVudFR5cGUgPSBXZWJJbnNwZWN0b3IuU3RvcmFnZU1hbmFnZXIuRXZl
bnQuRE9NU3RvcmFnZUl0ZW1SZW1vdmVkOworICAgICAgICB2YXIgZXZlbnREYXRhID0geyBrZXk6
IGtleSB9OworICAgICAgICBXZWJJbnNwZWN0b3Iuc3RvcmFnZU1hbmFnZXIuZG9tU3RvcmFnZU1v
ZGlmaWVkKHN0b3JhZ2VJZCwgZXZlbnRUeXBlLCBldmVudERhdGEpOwogICAgIH0sCiAKLSAgICBk
b21TdG9yYWdlSXRlbUFkZGVkOiBmdW5jdGlvbihzdG9yYWdlSWQsIGtleSwgbmV3VmFsdWUpCisg
ICAgZG9tU3RvcmFnZUl0ZW1BZGRlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXksIHZhbHVlKQog
ICAgIHsKLSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSB0aGlzIGdyYW51bGFyIGV2ZW50IGJldHRl
ciBieSBvbmx5IHVwZGF0aW5nIHdoYXQgY2hhbmdlZC4gPHJkYXI6Ly9wcm9ibGVtLzEzMjIzOTgx
PgotICAgICAgICB0aGlzLnVwZGF0ZURPTVN0b3JhZ2Uoc3RvcmFnZUlkKTsKKyAgICAgICAgdmFy
IGV2ZW50VHlwZSA9IFdlYkluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5FdmVudC5ET01TdG9yYWdl
SXRlbUFkZGVkOworICAgICAgICB2YXIgZXZlbnREYXRhID0geyBrZXk6IGtleSwgdmFsdWU6IHZh
bHVlIH07CisgICAgICAgIFdlYkluc3BlY3Rvci5zdG9yYWdlTWFuYWdlci5kb21TdG9yYWdlTW9k
aWZpZWQoc3RvcmFnZUlkLCBldmVudFR5cGUsIGV2ZW50RGF0YSk7CiAgICAgfSwKIAotICAgIGRv
bVN0b3JhZ2VJdGVtVXBkYXRlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXksIG9sZFZhbHVlLCBu
ZXdWYWx1ZSkKKyAgICBkb21TdG9yYWdlSXRlbVVwZGF0ZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwg
a2V5LCBvbGRWYWx1ZSwgdmFsdWUpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRo
aXMgZ3JhbnVsYXIgZXZlbnQgYmV0dGVyIGJ5IG9ubHkgdXBkYXRpbmcgd2hhdCBjaGFuZ2VkLiA8
cmRhcjovL3Byb2JsZW0vMTMyMjM5ODE+Ci0gICAgICAgIHRoaXMudXBkYXRlRE9NU3RvcmFnZShz
dG9yYWdlSWQpOworICAgICAgICB2YXIgZXZlbnRUeXBlID0gV2ViSW5zcGVjdG9yLlN0b3JhZ2VN
YW5hZ2VyLkV2ZW50LkRPTVN0b3JhZ2VJdGVtVXBkYXRlZDsKKyAgICAgICAgdmFyIGV2ZW50RGF0
YSA9IHsga2V5OiBrZXksIG9sZFZhbHVlOiBvbGRWYWx1ZSwgdmFsdWU6IHZhbHVlIH07CisgICAg
ICAgIFdlYkluc3BlY3Rvci5zdG9yYWdlTWFuYWdlci5kb21TdG9yYWdlTW9kaWZpZWQoc3RvcmFn
ZUlkLCBldmVudFR5cGUsIGV2ZW50RGF0YSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU3RvcmFnZU1hbmFnZXIuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TdG9yYWdlTWFuYWdlci5qcwppbmRleCA3
MzdmZjcxYjhlNjIzZDczNWU4N2U1NzI5M2IyNGM1ZjgxNWE2NGNiLi5mNjZkYWNjOWZiMjc1ZjZh
NDkwMjY1N2VmYTE2NjY5YjRkNzdiM2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9TdG9yYWdlTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9TdG9yYWdlTWFuYWdlci5qcwpAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDYgKzQ2LDEwIEBA
IFdlYkluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5FdmVudCA9IHsKICAgICBDb29raWVTdG9yYWdl
T2JqZWN0V2FzQWRkZWQ6ICJzdG9yYWdlLW1hbmFnZXItY29va2llLXN0b3JhZ2Utb2JqZWN0LXdh
cy1hZGRlZCIsCiAgICAgRE9NU3RvcmFnZU9iamVjdFdhc0FkZGVkOiAic3RvcmFnZS1tYW5hZ2Vy
LWRvbS1zdG9yYWdlLW9iamVjdC13YXMtYWRkZWQiLAogICAgIERPTVN0b3JhZ2VPYmplY3RXYXNJ
bnNwZWN0ZWQ6ICJzdG9yYWdlLWRvbS1vYmplY3Qtd2FzLWluc3BlY3RlZCIsCisgICAgRE9NU3Rv
cmFnZUl0ZW1zQ2xlYXJlZDogInN0b3JhZ2UtbWFuYWdlci1kb20tc3RvcmFnZS1pdGVtcy1jbGVh
cmVkIiwKKyAgICBET01TdG9yYWdlSXRlbVJlbW92ZWQ6ICJzdG9yYWdlLW1hbmFnZXItZG9tLXN0
b3JhZ2UtaXRlbS1yZW1vdmVkIiwKKyAgICBET01TdG9yYWdlSXRlbUFkZGVkOiAic3RvcmFnZS1t
YW5hZ2VyLWRvbS1zdG9yYWdlLWl0ZW0tYWRkZWQiLAorICAgIERPTVN0b3JhZ2VJdGVtVXBkYXRl
ZDogInN0b3JhZ2UtbWFuYWdlci1kb20tc3RvcmFnZS1pdGVtLXVwZGF0ZWQiLAogICAgIERhdGFi
YXNlV2FzQWRkZWQ6ICJzdG9yYWdlLW1hbmFnZXItZGF0YWJhc2Utd2FzLWFkZGVkIiwKICAgICBE
YXRhYmFzZVdhc0luc3BlY3RlZDogInN0b3JhZ2Utb2JqZWN0LXdhcy1pbnNwZWN0ZWQiLAogICAg
IENsZWFyZWQ6ICJzdG9yYWdlLW1hbmFnZXItY2xlYXJlZCIKQEAgLTkyLDYgKzk3LDMyIEBAIFdl
Ykluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRvbVN0b3Jh
Z2VWaWV3LnVwZGF0ZSgpOwogICAgIH0sCiAKKyAgICBkb21TdG9yYWdlTW9kaWZpZWQ6IGZ1bmN0
aW9uKGlkLCBldmVudFR5cGUsIGV2ZW50RGF0YSkKKyAgICB7CisgICAgICAgIHZhciBkb21TdG9y
YWdlID0gdGhpcy5fZG9tU3RvcmFnZUZvcklkKGlkKTsKKyAgICAgICAgaWYgKCFkb21TdG9yYWdl
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgZG9tU3RvcmFnZVZpZXcgPSBXZWJJ
bnNwZWN0b3IuY29udGVudEJyb3dzZXIuY29udGVudFZpZXdDb250YWluZXIuY29udGVudFZpZXdG
b3JSZXByZXNlbnRlZE9iamVjdChkb21TdG9yYWdlLCB0cnVlKTsKKyAgICAgICAgaWYgKCFkb21T
dG9yYWdlVmlldykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
ZG9tU3RvcmFnZVZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRW
aWV3KTsKKworICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkgeworICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5TdG9yYWdlTWFuYWdlci5FdmVudC5ET01TdG9yYWdlSXRlbXNDbGVhcmVkOgorICAg
ICAgICAgICAgZG9tU3RvcmFnZVZpZXcuaXRlbXNDbGVhcmVkKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuU3RvcmFnZU1hbmFnZXIuRXZlbnQuRE9NU3Rv
cmFnZUl0ZW1SZW1vdmVkOgorICAgICAgICAgICAgZG9tU3RvcmFnZVZpZXcuaXRlbVJlbW92ZWQo
ZXZlbnREYXRhLmtleSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuU3RvcmFnZU1hbmFnZXIuRXZlbnQuRE9NU3RvcmFnZUl0ZW1BZGRlZDoKKyAgICAgICAg
ICAgIGRvbVN0b3JhZ2VWaWV3Lml0ZW1BZGRlZChldmVudERhdGEua2V5LCBldmVudERhdGEudmFs
dWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlN0b3Jh
Z2VNYW5hZ2VyLkV2ZW50LkRPTVN0b3JhZ2VJdGVtVXBkYXRlZDoKKyAgICAgICAgICAgIGRvbVN0
b3JhZ2VWaWV3Lml0ZW1VcGRhdGVkKGV2ZW50RGF0YS5rZXksIGV2ZW50RGF0YS5vbGRWYWx1ZSwg
ZXZlbnREYXRhLnZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfSwK
KwogICAgIGluc3BlY3REYXRhYmFzZTogZnVuY3Rpb24oaWQpCiAgICAgewogICAgICAgICB2YXIg
ZGF0YWJhc2UgPSB0aGlzLl9kYXRhYmFzZUZvcklkKGlkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208311</attachid>
            <date>2013-08-07 20:07:55 -0700</date>
            <delta_ts>2013-08-08 00:02:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119541-20130808084143.patch</filename>
            <type>text/plain</type>
            <size>11338</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBl
MWYwOWM1NzBmYTFiMDQ2Njk5M2VkOWIzZDdiM2VlNGM5MjNiNjgwLi44ZDMyNDQ1MDhlOWJlYzI5
MWUwOGJiNDIwYjdlN2M0YmZjZGY1OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxMy0wOC0wOCAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBVc2UgZ3JhbnVsYXIgRE9NU3RvcmFnZSBt
b2RpZmljYXRpb24gZXZlbnRzIHRvIGF2b2lkIGNvbXBsZXRlIERhdGFHcmlkIHVwZGF0ZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTU0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudCBzZW5kcyBtb3JlIGdyYW51bGFyIGV2ZW50cyBhYm91dCB0aGUgc3RvcmFn
ZSBtb2RpZmljYXRpb25zLgorICAgICAgICBVc2luZyB0aGVzZSB3b3VsZCBhdm9pZCB0aGUgY29t
cGxldGUgcmVidWlsZGluZyBvZiB0aGUgRGF0YUdyaWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlLml0ZW1zQ2xlYXJlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5pdGVtUmVtb3ZlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5pdGVt
QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldy5wcm90
b3R5cGUuaXRlbVVwZGF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZU9i
c2VydmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90
b3R5cGUuZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZU9ic2VydmVyLnByb3RvdHlwZS5kb21TdG9yYWdlSXRlbVJlbW92ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90b3R5cGUuZG9tU3RvcmFnZUl0
ZW1BZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU9ic2VydmVyLnByb3Rv
dHlwZS5kb21TdG9yYWdlSXRlbVVwZGF0ZWQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvU3Rv
cmFnZU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZU1hbmFnZXIucHJv
dG90eXBlLmRvbVN0b3JhZ2VJdGVtc0NsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0
b3JhZ2VNYW5hZ2VyLnByb3RvdHlwZS5kb21TdG9yYWdlSXRlbVJlbW92ZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlN0b3JhZ2VNYW5hZ2VyLnByb3RvdHlwZS5kb21TdG9yYWdlSXRlbUFkZGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5wcm90b3R5cGUuZG9tU3Rv
cmFnZUl0ZW1VcGRhdGVkKToKKwogMjAxMy0wOC0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBzdGFsZSBjb2Rl
IGluIFJlc291cmNlQ29udGVudFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qcwppbmRleCAwZjRl
NjcxNjZiMmY0Njk2YmI2ZmRmNGFmNGExNGM5MGIxYzNmNjEzLi4xMjFjYjdlNmI0NWQ3N2QwYmQy
Zjc1NWFiODEzZGRiMTdkMGE2NzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9ET01TdG9yYWdlQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzCkBAIC0xLDUg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYs
NyArMjcsNyBAQAogV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50VmlldyA9IGZ1bmN0aW9u
KHJlcHJlc2VudGVkT2JqZWN0KQogewogICAgIFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5jYWxs
KHRoaXMsIHJlcHJlc2VudGVkT2JqZWN0KTsKLSAgICAKKwogICAgIHRoaXMuZWxlbWVudC5jbGFz
c0xpc3QuYWRkKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcuU3R5bGVDbGFzc05h
bWUpOwogCiAgICAgdGhpcy51cGRhdGUoKTsKQEAgLTM2LDE0ICszNyw2NyBAQCBXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LlN0eWxlQ2xhc3NOYW1lID0gImRvbS1zdG9yYWdlIjsK
IAogV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAgICAg
Y29uc3RydWN0b3I6IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcsCi0gICAgCisK
ICAgICAvLyBQdWJsaWMKLSAgICAKKwogICAgIHVwZGF0ZTogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5nZXRFbnRyaWVzKHRoaXMuX3Nob3dET01TdG9y
YWdlRW50cmllcy5iaW5kKHRoaXMpKTsKICAgICB9LAogCisgICAgaXRlbXNDbGVhcmVkOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9kYXRhR3JpZC5yZW1vdmVDaGlsZHJlbigpOwor
ICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRDcmVhdGlvbk5vZGUoZmFsc2UpOworICAgIH0sCisK
KyAgICBpdGVtUmVtb3ZlZDogZnVuY3Rpb24oa2V5KQorICAgIHsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB0aGlzLl9kYXRhR3JpZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkgeworICAgICAg
ICAgICAgdmFyIGNoaWxkTm9kZSA9IHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuW2ldOworICAgICAg
ICAgICAgaWYgKGNoaWxkTm9kZS5kYXRhWzBdID09PSBrZXkpIHsKKyAgICAgICAgICAgICAgICB0
aGlzLl9kYXRhR3JpZC5yZW1vdmVDaGlsZChjaGlsZE5vZGUpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKKyAgICBpdGVtQWRkZWQ6
IGZ1bmN0aW9uKGtleSwgdmFsdWUpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAo
dGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5baV1bMF0gPT09IGtleSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2YXIgZGF0YSA9IHt9OworICAgICAgICBkYXRh
WzBdID0ga2V5OworICAgICAgICBkYXRhWzFdID0gdmFsdWU7CisKKyAgICAgICAgdmFyIGNoaWxk
Tm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlKGRhdGEsIGZhbHNlKTsKKworICAg
ICAgICB0aGlzLl9kYXRhR3JpZC5pbnNlcnRDaGlsZChjaGlsZE5vZGUsIHRoaXMuX2RhdGFHcmlk
LmNoaWxkcmVuLmxlbmd0aCAtIDEpOworICAgICAgICBpZiAodGhpcy5fZGF0YUdyaWQuc29ydE9y
ZGVyKQorICAgICAgICAgICAgdGhpcy5fc29ydERhdGFHcmlkKCk7CisgICAgfSwKKworICAgIGl0
ZW1VcGRhdGVkOiBmdW5jdGlvbihrZXksIG9sZFZhbHVlLCB2YWx1ZSkKKyAgICB7CisgICAgICAg
IHZhciBrZXlGb3VuZCA9IGZhbHNlOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
X2RhdGFHcmlkLmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY2hpbGRO
b2RlID0gdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW5baV07CisgICAgICAgICAgICBpZiAoY2hpbGRO
b2RlLmRhdGFbMF0gPT09IGtleSkgeworICAgICAgICAgICAgICAgIGlmIChrZXlGb3VuZCkgewor
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5yZW1vdmVDaGlsZChjaGlsZE5vZGUp
OworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAga2V5Rm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgIGNoaWxkTm9kZS5k
YXRhWzFdID0gdmFsdWU7CisgICAgICAgICAgICAgICAgY2hpbGROb2RlLnJlZnJlc2goKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKICAgICB1cGRhdGVMYXlvdXQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9kYXRhR3JpZCkKQEAgLTY1LDcgKzExOSw3
IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX3VwZGF0ZURhdGFHcmlkRm9yRE9NU3Rv
cmFnZUVudHJpZXMoZW50cmllcyk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX2RhdGFHcmlk
LnVwZGF0ZUxheW91dCgpOwogICAgIH0sCiAKQEAgLTc0LDcgKzEyOCw3IEBAIFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMu
X2RhdGFHcmlkKSB7CiAgICAgICAgICAgICB2YXIgY29sdW1ucyA9IHt9OwogICAgICAgICAgICAg
Y29sdW1uc1swXSA9IHt0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJLZXkiKSwgc29ydGFi
bGU6IHRydWV9OwotICAgICAgICAgICAgY29sdW1uc1sxXSA9IHt0aXRsZTogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJWYWx1ZSIpLCBzb3J0YWJsZTogdHJ1ZX07ICAgICAgICAgICAgCisgICAgICAg
ICAgICBjb2x1bW5zWzFdID0ge3RpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlZhbHVlIiks
IHNvcnRhYmxlOiB0cnVlfTsKIAogICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRhdGFHcmlkKGNvbHVtbnMsIHRoaXMuX2VkaXRpbmdDYWxsYmFjay5iaW5kKHRo
aXMpLCB0aGlzLl9kZWxldGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgIHRoaXMu
X2RhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LlNv
cnRDaGFuZ2VkLCB0aGlzLl9zb3J0RGF0YUdyaWQsIHRoaXMpOwpAQCAtMTExLDYgKzE2NSw3IEBA
IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlID0gewogCiAgICAg
X3NvcnREYXRhR3JpZDogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgdGhpcy5fZGF0YUdyaWRT
b3J0ZWQgPSB0cnVlOwogICAgICAgICBpZiAodGhpcy5fZGF0YUdyaWQuY3JlYXRpb25Ob2RlKQog
ICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQucmVtb3ZlQ2hpbGQodGhpcy5fZGF0YUdyaWQuY3Jl
YXRpb25Ob2RlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvRE9NU3RvcmFnZU9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvRE9NU3RvcmFnZU9ic2VydmVyLmpzCmluZGV4IDc4NzEzN2ExMDkxYzk0YjhmNTc2
OWZmNjExYjEyNGRjNjY2MjM2MGIuLjNlZmViNzcyY2I1Y2EwODUwNjYyMmY1OWZmNTBmMmFlYTAy
ZTY2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RP
TVN0b3JhZ2VPYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9ET01TdG9yYWdlT2JzZXJ2ZXIuanMKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NywyNiArNDgsMjIgQEAgV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90b3R5cGUgPSB7CiAKICAgICBkb21TdG9yYWdlSXRl
bXNDbGVhcmVkOiBmdW5jdGlvbihzdG9yYWdlSWQpCiAgICAgewotICAgICAgICAvLyBGSVhNRTog
SGFuZGxlIHRoaXMgZ3JhbnVsYXIgZXZlbnQgYmV0dGVyIGJ5IG9ubHkgdXBkYXRpbmcgd2hhdCBj
aGFuZ2VkLiA8cmRhcjovL3Byb2JsZW0vMTMyMjM5ODE+Ci0gICAgICAgIHRoaXMudXBkYXRlRE9N
U3RvcmFnZShzdG9yYWdlSWQpOworICAgICAgICBXZWJJbnNwZWN0b3Iuc3RvcmFnZU1hbmFnZXIu
ZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZChzdG9yYWdlSWQpOwogICAgIH0sCiAKICAgICBkb21TdG9y
YWdlSXRlbVJlbW92ZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwga2V5KQogICAgIHsKLSAgICAgICAg
Ly8gRklYTUU6IEhhbmRsZSB0aGlzIGdyYW51bGFyIGV2ZW50IGJldHRlciBieSBvbmx5IHVwZGF0
aW5nIHdoYXQgY2hhbmdlZC4gPHJkYXI6Ly9wcm9ibGVtLzEzMjIzOTgxPgotICAgICAgICB0aGlz
LnVwZGF0ZURPTVN0b3JhZ2Uoc3RvcmFnZUlkKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnN0b3Jh
Z2VNYW5hZ2VyLmRvbVN0b3JhZ2VJdGVtUmVtb3ZlZChzdG9yYWdlSWQsIGtleSk7CiAgICAgfSwK
IAotICAgIGRvbVN0b3JhZ2VJdGVtQWRkZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwga2V5LCBuZXdW
YWx1ZSkKKyAgICBkb21TdG9yYWdlSXRlbUFkZGVkOiBmdW5jdGlvbihzdG9yYWdlSWQsIGtleSwg
dmFsdWUpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoaXMgZ3JhbnVsYXIgZXZl
bnQgYmV0dGVyIGJ5IG9ubHkgdXBkYXRpbmcgd2hhdCBjaGFuZ2VkLiA8cmRhcjovL3Byb2JsZW0v
MTMyMjM5ODE+Ci0gICAgICAgIHRoaXMudXBkYXRlRE9NU3RvcmFnZShzdG9yYWdlSWQpOworICAg
ICAgICBXZWJJbnNwZWN0b3Iuc3RvcmFnZU1hbmFnZXIuZG9tU3RvcmFnZUl0ZW1BZGRlZChzdG9y
YWdlSWQsIGtleSwgdmFsdWUpOwogICAgIH0sCiAKLSAgICBkb21TdG9yYWdlSXRlbVVwZGF0ZWQ6
IGZ1bmN0aW9uKHN0b3JhZ2VJZCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUpCisgICAgZG9tU3Rv
cmFnZUl0ZW1VcGRhdGVkOiBmdW5jdGlvbihzdG9yYWdlSWQsIGtleSwgb2xkVmFsdWUsIHZhbHVl
KQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSB0aGlzIGdyYW51bGFyIGV2ZW50IGJl
dHRlciBieSBvbmx5IHVwZGF0aW5nIHdoYXQgY2hhbmdlZC4gPHJkYXI6Ly9wcm9ibGVtLzEzMjIz
OTgxPgotICAgICAgICB0aGlzLnVwZGF0ZURPTVN0b3JhZ2Uoc3RvcmFnZUlkKTsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLnN0b3JhZ2VNYW5hZ2VyLmRvbVN0b3JhZ2VJdGVtVXBkYXRlZChzdG9yYWdl
SWQsIGtleSwgb2xkVmFsdWUsIHZhbHVlKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TdG9yYWdlTWFuYWdlci5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1N0b3JhZ2VNYW5hZ2VyLmpzCmluZGV4IDcz
N2ZmNzFiOGU2MjNkNzM1ZTg3ZTU3MjkzYjI0YzVmODE1YTY0Y2IuLmRiODNjZTJmNDg0MTczZDcz
OTUxNjYzNzRmM2ZhYjk5MzYzODBiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1N0b3JhZ2VNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1N0b3JhZ2VNYW5hZ2VyLmpzCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjksMjcgKzcwLDYzIEBA
IFdlYkluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
X2RvbVN0b3JhZ2VPYmplY3RzLnB1c2goZG9tU3RvcmFnZSk7CiAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5FdmVudC5ET01T
dG9yYWdlT2JqZWN0V2FzQWRkZWQsIHtkb21TdG9yYWdlOiBkb21TdG9yYWdlfSk7CiAgICAgfSwK
LSAgICAKKwogICAgIGRhdGFiYXNlV2FzQWRkZWQ6IGZ1bmN0aW9uKGlkLCBob3N0LCBuYW1lLCB2
ZXJzaW9uKQogICAgIHsKICAgICAgICAgdmFyIGRhdGFiYXNlID0gbmV3IFdlYkluc3BlY3Rvci5E
YXRhYmFzZU9iamVjdChpZCwgaG9zdCwgbmFtZSwgdmVyc2lvbik7Ci0gICAgICAgIAorCiAgICAg
ICAgIHRoaXMuX2RhdGFiYXNlT2JqZWN0cy5wdXNoKGRhdGFiYXNlKTsKICAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlN0b3JhZ2VNYW5hZ2VyLkV2ZW50
LkRhdGFiYXNlV2FzQWRkZWQsIHtkYXRhYmFzZTogZGF0YWJhc2V9KTsKICAgICB9LAogCiAgICAg
ZG9tU3RvcmFnZVdhc1VwZGF0ZWQ6IGZ1bmN0aW9uKGlkKQogICAgIHsKLSAgICAgICAgdmFyIGRv
bVN0b3JhZ2UgPSB0aGlzLl9kb21TdG9yYWdlRm9ySWQoaWQpOwotICAgICAgICBpZiAoIWRvbVN0
b3JhZ2UpCisgICAgICAgIHZhciBkb21TdG9yYWdlVmlldyA9IHRoaXMuX2RvbVN0b3JhZ2VWaWV3
Rm9ySWQoaWQpOworICAgICAgICBpZiAoIWRvbVN0b3JhZ2VWaWV3KQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIHZhciBkb21TdG9yYWdlVmlldyA9IFdlYkluc3BlY3Rvci5jb250ZW50
QnJvd3Nlci5jb250ZW50Vmlld0NvbnRhaW5lci5jb250ZW50Vmlld0ZvclJlcHJlc2VudGVkT2Jq
ZWN0KGRvbVN0b3JhZ2UsIHRydWUpOworICAgICAgICBjb25zb2xlLmFzc2VydChkb21TdG9yYWdl
VmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcpOworICAg
ICAgICBkb21TdG9yYWdlVmlldy51cGRhdGUoKTsKKyAgICB9LAorCisgICAgZG9tU3RvcmFnZUl0
ZW1zQ2xlYXJlZDogZnVuY3Rpb24oaWQpCisgICAgeworICAgICAgICB2YXIgZG9tU3RvcmFnZVZp
ZXcgPSB0aGlzLl9kb21TdG9yYWdlVmlld0ZvcklkKGlkKTsKICAgICAgICAgaWYgKCFkb21TdG9y
YWdlVmlldykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBjb25zb2xlLmFzc2VydChk
b21TdG9yYWdlVmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZp
ZXcpOwotICAgICAgICBkb21TdG9yYWdlVmlldy51cGRhdGUoKTsKKyAgICAgICAgZG9tU3RvcmFn
ZVZpZXcuaXRlbXNDbGVhcmVkKCk7CisgICAgfSwKKworICAgIGRvbVN0b3JhZ2VJdGVtUmVtb3Zl
ZDogZnVuY3Rpb24oaWQsIGtleSkKKyAgICB7CisgICAgICAgIHZhciBkb21TdG9yYWdlVmlldyA9
IHRoaXMuX2RvbVN0b3JhZ2VWaWV3Rm9ySWQoaWQpOworICAgICAgICBpZiAoIWRvbVN0b3JhZ2VW
aWV3KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbVN0
b3JhZ2VWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldyk7
CisgICAgICAgIGRvbVN0b3JhZ2VWaWV3Lml0ZW1SZW1vdmVkKGtleSk7CisgICAgfSwKKworICAg
IGRvbVN0b3JhZ2VJdGVtQWRkZWQ6IGZ1bmN0aW9uKGlkLCBrZXksIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgdmFyIGRvbVN0b3JhZ2VWaWV3ID0gdGhpcy5fZG9tU3RvcmFnZVZpZXdGb3JJZChpZCk7
CisgICAgICAgIGlmICghZG9tU3RvcmFnZVZpZXcpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoZG9tU3RvcmFnZVZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3KTsKKyAgICAgICAgZG9tU3RvcmFnZVZpZXcuaXRlbUFk
ZGVkKGtleSwgdmFsdWUpOworICAgIH0sCisKKyAgICBkb21TdG9yYWdlSXRlbVVwZGF0ZWQ6IGZ1
bmN0aW9uKGlkLCBrZXksIG9sZFZhbHVlLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHZhciBkb21T
dG9yYWdlVmlldyA9IHRoaXMuX2RvbVN0b3JhZ2VWaWV3Rm9ySWQoaWQpOworICAgICAgICBpZiAo
IWRvbVN0b3JhZ2VWaWV3KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGRvbVN0b3JhZ2VWaWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VD
b250ZW50Vmlldyk7CisgICAgICAgIGRvbVN0b3JhZ2VWaWV3Lml0ZW1VcGRhdGVkKGtleSwgb2xk
VmFsdWUsIHZhbHVlKTsKICAgICB9LAogCiAgICAgaW5zcGVjdERhdGFiYXNlOiBmdW5jdGlvbihp
ZCkKQEAgLTE4MCw2ICsyMTcsMTUgQEAgV2ViSW5zcGVjdG9yLlN0b3JhZ2VNYW5hZ2VyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBudWxsOworICAgIH0sCisKKyAg
ICBfZG9tU3RvcmFnZVZpZXdGb3JJZDogZnVuY3Rpb24oaWQpCisgICAgeworICAgICAgICB2YXIg
ZG9tU3RvcmFnZSA9IHRoaXMuX2RvbVN0b3JhZ2VGb3JJZChpZCk7CisgICAgICAgIGlmICghZG9t
U3RvcmFnZSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuY29udGVudEJyb3dzZXIuY29udGVudFZpZXdDb250YWluZXIuY29udGVudFZpZXdG
b3JSZXByZXNlbnRlZE9iamVjdChkb21TdG9yYWdlLCB0cnVlKTsKICAgICB9CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208313</attachid>
            <date>2013-08-08 00:02:09 -0700</date>
            <delta_ts>2013-08-08 00:56:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119541-20130808123557.patch</filename>
            <type>text/plain</type>
            <size>11078</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBl
MWYwOWM1NzBmYTFiMDQ2Njk5M2VkOWIzZDdiM2VlNGM5MjNiNjgwLi44MDg2NzNmNGJiMDUzNTBh
Y2UzZjBkOTM0MTc4Mjc0NjhlMTk4Y2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxMy0wOC0wOCAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5n
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBVc2UgZ3JhbnVsYXIgRE9NU3RvcmFnZSBt
b2RpZmljYXRpb24gZXZlbnRzIHRvIGF2b2lkIGNvbXBsZXRlIERhdGFHcmlkIHVwZGF0ZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTU0MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQgc2VuZHMgbW9yZSBncmFudWxhciBldmVudHMgYWJvdXQgdGhlIHN0b3Jh
Z2UgbW9kaWZpY2F0aW9ucy4KKyAgICAgICAgVXNpbmcgdGhlc2Ugd291bGQgYXZvaWQgdGhlIGNv
bXBsZXRlIHJlYnVpbGRpbmcgb2YgdGhlIERhdGFHcmlkLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9ET01TdG9yYWdlQ29udGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5pdGVtc0NsZWFyZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldy5wcm90b3R5cGUuaXRlbVJlbW92ZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldy5wcm90b3R5cGUuaXRl
bUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcucHJv
dG90eXBlLml0ZW1VcGRhdGVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0RPTVN0b3JhZ2VP
YnNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlT2JzZXJ2ZXIucHJv
dG90eXBlLmRvbVN0b3JhZ2VJdGVtc0NsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRP
TVN0b3JhZ2VPYnNlcnZlci5wcm90b3R5cGUuZG9tU3RvcmFnZUl0ZW1SZW1vdmVkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlT2JzZXJ2ZXIucHJvdG90eXBlLmRvbVN0b3JhZ2VJ
dGVtQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VPYnNlcnZlci5wcm90
b3R5cGUuZG9tU3RvcmFnZUl0ZW1VcGRhdGVkKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1N0
b3JhZ2VNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0b3JhZ2VNYW5hZ2VyLnBy
b3RvdHlwZS5kb21TdG9yYWdlSXRlbXNDbGVhcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
dG9yYWdlTWFuYWdlci5wcm90b3R5cGUuZG9tU3RvcmFnZUl0ZW1SZW1vdmVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TdG9yYWdlTWFuYWdlci5wcm90b3R5cGUuZG9tU3RvcmFnZUl0ZW1BZGRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZU1hbmFnZXIucHJvdG90eXBlLmRvbVN0
b3JhZ2VJdGVtVXBkYXRlZCk6CisKIDIwMTMtMDgtMDYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgc3RhbGUgY29k
ZSBpbiBSZXNvdXJjZUNvbnRlbnRWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9ET01TdG9yYWdlQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9ET01TdG9yYWdlQ29udGVudFZpZXcuanMKaW5kZXggMGY0
ZTY3MTY2YjJmNDY5NmJiNmZkZjRhZjRhMTRjOTBiMWMzZjYxMy4uNzVmNTRhOWUyNDgxY2M1NGE5
MTZhOTk2MjQzMTc2ZTBlNzA5NGZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZUNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RPTVN0b3JhZ2VDb250ZW50Vmlldy5qcwpAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2
LDcgKzI3LDcgQEAKIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcgPSBmdW5jdGlv
bihyZXByZXNlbnRlZE9iamVjdCkKIHsKICAgICBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuY2Fs
bCh0aGlzLCByZXByZXNlbnRlZE9iamVjdCk7Ci0gICAgCisKICAgICB0aGlzLmVsZW1lbnQuY2xh
c3NMaXN0LmFkZChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LlN0eWxlQ2xhc3NO
YW1lKTsKIAogICAgIHRoaXMudXBkYXRlKCk7CkBAIC0zNiwxNCArMzcsNjcgQEAgV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldy5TdHlsZUNsYXNzTmFtZSA9ICJkb20tc3RvcmFnZSI7
CiAKIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlID0gewogICAg
IGNvbnN0cnVjdG9yOiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LAotICAgIAor
CiAgICAgLy8gUHVibGljCi0gICAgCisKICAgICB1cGRhdGU6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZ2V0RW50cmllcyh0aGlzLl9zaG93RE9NU3Rv
cmFnZUVudHJpZXMuYmluZCh0aGlzKSk7CiAgICAgfSwKIAorICAgIGl0ZW1zQ2xlYXJlZDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGF0YUdyaWQucmVtb3ZlQ2hpbGRyZW4oKTsK
KyAgICAgICAgdGhpcy5fZGF0YUdyaWQuYWRkQ3JlYXRpb25Ob2RlKGZhbHNlKTsKKyAgICB9LAor
CisgICAgaXRlbVJlbW92ZWQ6IGZ1bmN0aW9uKGtleSkKKyAgICB7CisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGhpcy5fZGF0YUdyaWQuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIHZhciBjaGlsZE5vZGUgPSB0aGlzLl9kYXRhR3JpZC5jaGlsZHJlbltpXTsKKyAgICAg
ICAgICAgIGlmIChjaGlsZE5vZGUuZGF0YVswXSA9PT0ga2V5KSB7CisgICAgICAgICAgICAgICAg
dGhpcy5fZGF0YUdyaWQucmVtb3ZlQ2hpbGQoY2hpbGROb2RlKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAgaXRlbUFkZGVk
OiBmdW5jdGlvbihrZXksIHZhbHVlKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB0aGlzLl9kYXRhR3JpZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYg
KHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuW2ldWzBdID09PSBrZXkpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGRhdGEgPSB7fTsKKyAgICAgICAgZGF0
YVswXSA9IGtleTsKKyAgICAgICAgZGF0YVsxXSA9IHZhbHVlOworCisgICAgICAgIHZhciBjaGls
ZE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZShkYXRhLCBmYWxzZSk7CisKKyAg
ICAgICAgdGhpcy5fZGF0YUdyaWQuaW5zZXJ0Q2hpbGQoY2hpbGROb2RlLCB0aGlzLl9kYXRhR3Jp
ZC5jaGlsZHJlbi5sZW5ndGggLSAxKTsKKyAgICAgICAgaWYgKHRoaXMuX2RhdGFHcmlkLnNvcnRP
cmRlcikKKyAgICAgICAgICAgIHRoaXMuX3NvcnREYXRhR3JpZCgpOworICAgIH0sCisKKyAgICBp
dGVtVXBkYXRlZDogZnVuY3Rpb24oa2V5LCBvbGRWYWx1ZSwgdmFsdWUpCisgICAgeworICAgICAg
ICB2YXIga2V5Rm91bmQgPSBmYWxzZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlz
Ll9kYXRhR3JpZC5jaGlsZHJlbi5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGNoaWxk
Tm9kZSA9IHRoaXMuX2RhdGFHcmlkLmNoaWxkcmVuW2ldOworICAgICAgICAgICAgaWYgKGNoaWxk
Tm9kZS5kYXRhWzBdID09PSBrZXkpIHsKKyAgICAgICAgICAgICAgICBpZiAoa2V5Rm91bmQpIHsK
KyAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQucmVtb3ZlQ2hpbGQoY2hpbGROb2Rl
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIGtleUZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBjaGlsZE5vZGUu
ZGF0YVsxXSA9IHZhbHVlOworICAgICAgICAgICAgICAgIGNoaWxkTm9kZS5yZWZyZXNoKCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCiAgICAgdXBkYXRlTGF5b3V0OiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fZGF0YUdyaWQpCkBAIC02NSw3ICsxMTks
NyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLl91cGRhdGVEYXRhR3JpZEZvckRPTVN0
b3JhZ2VFbnRyaWVzKGVudHJpZXMpOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9kYXRhR3Jp
ZC51cGRhdGVMYXlvdXQoKTsKICAgICB9LAogCkBAIC03NCw3ICsxMjgsNyBAQCBXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlz
Ll9kYXRhR3JpZCkgewogICAgICAgICAgICAgdmFyIGNvbHVtbnMgPSB7fTsKICAgICAgICAgICAg
IGNvbHVtbnNbMF0gPSB7dGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiS2V5IiksIHNvcnRh
YmxlOiB0cnVlfTsKLSAgICAgICAgICAgIGNvbHVtbnNbMV0gPSB7dGl0bGU6IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiVmFsdWUiKSwgc29ydGFibGU6IHRydWV9OyAgICAgICAgICAgIAorICAgICAg
ICAgICAgY29sdW1uc1sxXSA9IHt0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJWYWx1ZSIp
LCBzb3J0YWJsZTogdHJ1ZX07CiAKICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gbmV3IFdl
Ykluc3BlY3Rvci5EYXRhR3JpZChjb2x1bW5zLCB0aGlzLl9lZGl0aW5nQ2FsbGJhY2suYmluZCh0
aGlzKSwgdGhpcy5fZGVsZXRlQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgICAgICAgICB0aGlz
Ll9kYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5T
b3J0Q2hhbmdlZCwgdGhpcy5fc29ydERhdGFHcmlkLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RPTVN0b3JhZ2VPYnNlcnZlci5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RPTVN0b3JhZ2VPYnNlcnZlci5qcwpp
bmRleCA3ODcxMzdhMTA5MWM5NGI4ZjU3NjlmZjYxMWIxMjRkYzY2NjIzNjBiLi4zZWZlYjc3MmNi
NWNhMDg1MDY2MjJmNTlmZjUwZjJhZWEwMmU2NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9ET01TdG9yYWdlT2JzZXJ2ZXIuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRE9NU3RvcmFnZU9ic2VydmVyLmpzCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NDcsMjYgKzQ4LDIyIEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlT2JzZXJ2ZXIucHJvdG90eXBl
ID0gewogCiAgICAgZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZDogZnVuY3Rpb24oc3RvcmFnZUlkKQog
ICAgIHsKLSAgICAgICAgLy8gRklYTUU6IEhhbmRsZSB0aGlzIGdyYW51bGFyIGV2ZW50IGJldHRl
ciBieSBvbmx5IHVwZGF0aW5nIHdoYXQgY2hhbmdlZC4gPHJkYXI6Ly9wcm9ibGVtLzEzMjIzOTgx
PgotICAgICAgICB0aGlzLnVwZGF0ZURPTVN0b3JhZ2Uoc3RvcmFnZUlkKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLnN0b3JhZ2VNYW5hZ2VyLmRvbVN0b3JhZ2VJdGVtc0NsZWFyZWQoc3RvcmFnZUlk
KTsKICAgICB9LAogCiAgICAgZG9tU3RvcmFnZUl0ZW1SZW1vdmVkOiBmdW5jdGlvbihzdG9yYWdl
SWQsIGtleSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhpcyBncmFudWxhciBl
dmVudCBiZXR0ZXIgYnkgb25seSB1cGRhdGluZyB3aGF0IGNoYW5nZWQuIDxyZGFyOi8vcHJvYmxl
bS8xMzIyMzk4MT4KLSAgICAgICAgdGhpcy51cGRhdGVET01TdG9yYWdlKHN0b3JhZ2VJZCk7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5zdG9yYWdlTWFuYWdlci5kb21TdG9yYWdlSXRlbVJlbW92ZWQo
c3RvcmFnZUlkLCBrZXkpOwogICAgIH0sCiAKLSAgICBkb21TdG9yYWdlSXRlbUFkZGVkOiBmdW5j
dGlvbihzdG9yYWdlSWQsIGtleSwgbmV3VmFsdWUpCisgICAgZG9tU3RvcmFnZUl0ZW1BZGRlZDog
ZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXksIHZhbHVlKQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6
IEhhbmRsZSB0aGlzIGdyYW51bGFyIGV2ZW50IGJldHRlciBieSBvbmx5IHVwZGF0aW5nIHdoYXQg
Y2hhbmdlZC4gPHJkYXI6Ly9wcm9ibGVtLzEzMjIzOTgxPgotICAgICAgICB0aGlzLnVwZGF0ZURP
TVN0b3JhZ2Uoc3RvcmFnZUlkKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnN0b3JhZ2VNYW5hZ2Vy
LmRvbVN0b3JhZ2VJdGVtQWRkZWQoc3RvcmFnZUlkLCBrZXksIHZhbHVlKTsKICAgICB9LAogCi0g
ICAgZG9tU3RvcmFnZUl0ZW1VcGRhdGVkOiBmdW5jdGlvbihzdG9yYWdlSWQsIGtleSwgb2xkVmFs
dWUsIG5ld1ZhbHVlKQorICAgIGRvbVN0b3JhZ2VJdGVtVXBkYXRlZDogZnVuY3Rpb24oc3RvcmFn
ZUlkLCBrZXksIG9sZFZhbHVlLCB2YWx1ZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBIYW5k
bGUgdGhpcyBncmFudWxhciBldmVudCBiZXR0ZXIgYnkgb25seSB1cGRhdGluZyB3aGF0IGNoYW5n
ZWQuIDxyZGFyOi8vcHJvYmxlbS8xMzIyMzk4MT4KLSAgICAgICAgdGhpcy51cGRhdGVET01TdG9y
YWdlKHN0b3JhZ2VJZCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5zdG9yYWdlTWFuYWdlci5kb21T
dG9yYWdlSXRlbVVwZGF0ZWQoc3RvcmFnZUlkLCBrZXksIG9sZFZhbHVlLCB2YWx1ZSk7CiAgICAg
fQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
U3RvcmFnZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9T
dG9yYWdlTWFuYWdlci5qcwppbmRleCA3MzdmZjcxYjhlNjIzZDczNWU4N2U1NzI5M2IyNGM1Zjgx
NWE2NGNiLi5kYjgzY2UyZjQ4NDE3M2Q3Mzk1MTY2Mzc0ZjNmYWI5OTM2MzgwYmY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TdG9yYWdlTWFuYWdlci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9TdG9yYWdlTWFuYWdl
ci5qcwpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTY5LDI3ICs3MCw2MyBAQCBXZWJJbnNwZWN0b3IuU3RvcmFnZU1hbmFnZXIucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLl9kb21TdG9yYWdlT2JqZWN0cy5wdXNoKGRvbVN0b3Jh
Z2UpOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
U3RvcmFnZU1hbmFnZXIuRXZlbnQuRE9NU3RvcmFnZU9iamVjdFdhc0FkZGVkLCB7ZG9tU3RvcmFn
ZTogZG9tU3RvcmFnZX0pOwogICAgIH0sCi0gICAgCisKICAgICBkYXRhYmFzZVdhc0FkZGVkOiBm
dW5jdGlvbihpZCwgaG9zdCwgbmFtZSwgdmVyc2lvbikKICAgICB7CiAgICAgICAgIHZhciBkYXRh
YmFzZSA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0YWJhc2VPYmplY3QoaWQsIGhvc3QsIG5hbWUsIHZl
cnNpb24pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9kYXRhYmFzZU9iamVjdHMucHVzaChk
YXRhYmFzZSk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5TdG9yYWdlTWFuYWdlci5FdmVudC5EYXRhYmFzZVdhc0FkZGVkLCB7ZGF0YWJhc2U6IGRh
dGFiYXNlfSk7CiAgICAgfSwKIAogICAgIGRvbVN0b3JhZ2VXYXNVcGRhdGVkOiBmdW5jdGlvbihp
ZCkKICAgICB7Ci0gICAgICAgIHZhciBkb21TdG9yYWdlID0gdGhpcy5fZG9tU3RvcmFnZUZvcklk
KGlkKTsKLSAgICAgICAgaWYgKCFkb21TdG9yYWdlKQorICAgICAgICB2YXIgZG9tU3RvcmFnZVZp
ZXcgPSB0aGlzLl9kb21TdG9yYWdlVmlld0ZvcklkKGlkKTsKKyAgICAgICAgaWYgKCFkb21TdG9y
YWdlVmlldykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB2YXIgZG9tU3RvcmFnZVZp
ZXcgPSBXZWJJbnNwZWN0b3IuY29udGVudEJyb3dzZXIuY29udGVudFZpZXdDb250YWluZXIuY29u
dGVudFZpZXdGb3JSZXByZXNlbnRlZE9iamVjdChkb21TdG9yYWdlLCB0cnVlKTsKKyAgICAgICAg
Y29uc29sZS5hc3NlcnQoZG9tU3RvcmFnZVZpZXcgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZUNvbnRlbnRWaWV3KTsKKyAgICAgICAgZG9tU3RvcmFnZVZpZXcudXBkYXRlKCk7Cisg
ICAgfSwKKworICAgIGRvbVN0b3JhZ2VJdGVtc0NsZWFyZWQ6IGZ1bmN0aW9uKGlkKQorICAgIHsK
KyAgICAgICAgdmFyIGRvbVN0b3JhZ2VWaWV3ID0gdGhpcy5fZG9tU3RvcmFnZVZpZXdGb3JJZChp
ZCk7CiAgICAgICAgIGlmICghZG9tU3RvcmFnZVZpZXcpCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoZG9tU3RvcmFnZVZpZXcgaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZUNvbnRlbnRWaWV3KTsKLSAgICAgICAgZG9tU3RvcmFnZVZpZXcudXBk
YXRlKCk7CisgICAgICAgIGRvbVN0b3JhZ2VWaWV3Lml0ZW1zQ2xlYXJlZCgpOworICAgIH0sCisK
KyAgICBkb21TdG9yYWdlSXRlbVJlbW92ZWQ6IGZ1bmN0aW9uKGlkLCBrZXkpCisgICAgeworICAg
ICAgICB2YXIgZG9tU3RvcmFnZVZpZXcgPSB0aGlzLl9kb21TdG9yYWdlVmlld0ZvcklkKGlkKTsK
KyAgICAgICAgaWYgKCFkb21TdG9yYWdlVmlldykKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBjb25zb2xlLmFzc2VydChkb21TdG9yYWdlVmlldyBpbnN0YW5jZW9mIFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlQ29udGVudFZpZXcpOworICAgICAgICBkb21TdG9yYWdlVmlldy5pdGVtUmVt
b3ZlZChrZXkpOworICAgIH0sCisKKyAgICBkb21TdG9yYWdlSXRlbUFkZGVkOiBmdW5jdGlvbihp
ZCwga2V5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHZhciBkb21TdG9yYWdlVmlldyA9IHRoaXMu
X2RvbVN0b3JhZ2VWaWV3Rm9ySWQoaWQpOworICAgICAgICBpZiAoIWRvbVN0b3JhZ2VWaWV3KQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGRvbVN0b3JhZ2VW
aWV3IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VDb250ZW50Vmlldyk7CisgICAg
ICAgIGRvbVN0b3JhZ2VWaWV3Lml0ZW1BZGRlZChrZXksIHZhbHVlKTsKKyAgICB9LAorCisgICAg
ZG9tU3RvcmFnZUl0ZW1VcGRhdGVkOiBmdW5jdGlvbihpZCwga2V5LCBvbGRWYWx1ZSwgdmFsdWUp
CisgICAgeworICAgICAgICB2YXIgZG9tU3RvcmFnZVZpZXcgPSB0aGlzLl9kb21TdG9yYWdlVmll
d0ZvcklkKGlkKTsKKyAgICAgICAgaWYgKCFkb21TdG9yYWdlVmlldykKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBjb25zb2xlLmFzc2VydChkb21TdG9yYWdlVmlldyBpbnN0YW5jZW9m
IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlQ29udGVudFZpZXcpOworICAgICAgICBkb21TdG9yYWdl
Vmlldy5pdGVtVXBkYXRlZChrZXksIG9sZFZhbHVlLCB2YWx1ZSk7CiAgICAgfSwKIAogICAgIGlu
c3BlY3REYXRhYmFzZTogZnVuY3Rpb24oaWQpCkBAIC0xODAsNiArMjE3LDE1IEBAIFdlYkluc3Bl
Y3Rvci5TdG9yYWdlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICBy
ZXR1cm4gbnVsbDsKKyAgICB9LAorCisgICAgX2RvbVN0b3JhZ2VWaWV3Rm9ySWQ6IGZ1bmN0aW9u
KGlkKQorICAgIHsKKyAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlzLl9kb21TdG9yYWdlRm9y
SWQoaWQpOworICAgICAgICBpZiAoIWRvbVN0b3JhZ2UpCisgICAgICAgICAgICByZXR1cm4gbnVs
bDsKKworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmNvbnRlbnRCcm93c2VyLmNvbnRlbnRW
aWV3Q29udGFpbmVyLmNvbnRlbnRWaWV3Rm9yUmVwcmVzZW50ZWRPYmplY3QoZG9tU3RvcmFnZSwg
dHJ1ZSk7CiAgICAgfQogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>