<?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>39224</bug_id>
          
          <creation_ts>2010-05-17 09:43:42 -0700</creation_ts>
          <short_desc>Web Inspector: There should be a way to clean up profiles</short_desc>
          <delta_ts>2010-05-30 06:19:14 -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 (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Jessie Berlin">jberlin</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>jberlin</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>226789</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2010-05-17 09:43:42 -0700</bug_when>
    <thetext>Currently there is no way to clean up profiles except for re-opening the inspected page. I think it would be more convenient for long profiling session to be able to clean up existing profiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232049</commentid>
    <comment_count>1</comment_count>
      <attachid>57402</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-05-28 19:06:18 -0700</bug_when>
    <thetext>Created attachment 57402
Adds the ability to clear the profiles in the Web Inspector.

Makes it possible to clear all at once as well as delete each profile individually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232088</commentid>
    <comment_count>2</comment_count>
      <attachid>57402</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-05-29 03:04:17 -0700</bug_when>
    <thetext>Comment on attachment 57402
Adds the ability to clear the profiles in the Web Inspector.

Reopening the inspector will re-create all the profiles unless they are removed from the backend. ProfilesPanel.prototype._populateProfiles will fetch them from the backend using InspectorController::getProfileHeaders.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232110</commentid>
    <comment_count>3</comment_count>
      <attachid>57411</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-05-29 08:40:12 -0700</bug_when>
    <thetext>Created attachment 57411
Remove the profiles from the backend as well.

Sorry for missing that ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232120</commentid>
    <comment_count>4</comment_count>
      <attachid>57411</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-05-29 09:59:28 -0700</bug_when>
    <thetext>Comment on attachment 57411
Remove the profiles from the backend as well.

Looks great! (see some nits below).

Please make sure to restore buttons order in the timeline panel prior to landing this. And one more thing: could you please add an installInspectorControllerDelegate_ calls for new InspectorBackend functions in the WebKit/chromium/src/js/InspectorControllerImpl.js? Otherwise chromium tests might fail downstream. This is a temporary measure while we are working on remote debugging and are aligning chromium with new WebKit code.

WebCore/inspector/front-end/treeoutline.js:392
 +      } else if (event.keyIdentifier === &quot;U+0008&quot; || event.keyIdentifier === &quot;U+007F&quot;) {
event.keyCode === WebInspector.KeyboardShortcut.Keys.Backspace.code || event.keyCode === WebInspector.KeyboardShortcut.Keys.Delete.code


WebCore/inspector/front-end/treeoutline.js:395
 +              this.selectedTreeElement.ondelete();
Nit: Now that you introduced this, you might want to migrate elements panel&apos;s delete handler to this new schema (see WebInspector.ElementsTreeOutline.prototype._keyDown). You don&apos;t have to do this, but if you&apos;d like that&apos;d be cool.

WebCore/inspector/front-end/ProfilesPanel.js:567
 +          WebInspector.panels.profiles.removeProfileHeader(this.profile);
Nit: It would be better to pass the reference to panel into the sidebar instead of using the global accessor. I do realize that the method above was using it, but it was just wrong. Same as above, you don&apos;t need to fix, but would be a good drive-by improvement.

WebCore/inspector/front-end/TimelinePanel.js:151
 +          return [this.toggleFilterButton.element, this.clearButton.element, this.toggleTimelineButton.element, this._overviewPane.statusBarFilters];
Why this change? I think clear should be the rightmost button.

WebCore/ChangeLog:8
 +          Adds a button to clear the profiles from the profiles panel like that used for the console, the audits panel, and the timeline panel. Consolidates the css rules, since they all use the same image. Also allows for individual profiles to be deleted via the keyboard (U+0008 or U+007F).
Please format this message so that it was ~80 chars per line. Also, you can remove trivial changes with the dittos in the log below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232151</commentid>
    <comment_count>5</comment_count>
      <attachid>57416</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-05-29 15:34:43 -0700</bug_when>
    <thetext>Created attachment 57416
Finalized (hopefully) patch to add the ability to clean up the profiles.

(In reply to comment #4)
&gt; (From update of attachment 57411 [details])
&gt; Looks great! (see some nits below).

Thanks for the review :) Just posting the finalized patch here before I commit it in a little while to give the try-bots another chance at it (this time remembered to use --binary on account of localizedStrings.js).

&gt; 
&gt; Please make sure to restore buttons order in the timeline panel prior to landing this.

Done.

&gt; And one more thing: could you please add an installInspectorControllerDelegate_ calls for new InspectorBackend functions in the WebKit/chromium/src/js/InspectorControllerImpl.js? Otherwise chromium tests might fail downstream. This is a temporary measure while we are working on remote debugging and are aligning chromium with new WebKit code.

Done.

&gt; 
&gt; WebCore/inspector/front-end/treeoutline.js:392
&gt;  +      } else if (event.keyIdentifier === &quot;U+0008&quot; || event.keyIdentifier === &quot;U+007F&quot;) {
&gt; event.keyCode === WebInspector.KeyboardShortcut.Keys.Backspace.code || event.keyCode === WebInspector.KeyboardShortcut.Keys.Delete.code
&gt; 

Done.

&gt; 
&gt; WebCore/inspector/front-end/treeoutline.js:395
&gt;  +              this.selectedTreeElement.ondelete();
&gt; Nit: Now that you introduced this, you might want to migrate elements panel&apos;s delete handler to this new schema (see WebInspector.ElementsTreeOutline.prototype._keyDown). You don&apos;t have to do this, but if you&apos;d like that&apos;d be cool.

Done. I created a similar &quot;onenter&quot; to handle the enter key for the ElementsTreeOutline.

&gt; 
&gt; WebCore/inspector/front-end/ProfilesPanel.js:567
&gt;  +          WebInspector.panels.profiles.removeProfileHeader(this.profile);
&gt; Nit: It would be better to pass the reference to panel into the sidebar instead of using the global accessor. I do realize that the method above was using it, but it was just wrong. Same as above, you don&apos;t need to fix, but would be a good drive-by improvement.

Done. Since there is no separate SidebarTreeOutline class, I added a reference to the enclosing Panel in the createSidebar() method of the Panel class where the TreeOutline is created.

&gt; 
&gt; WebCore/inspector/front-end/TimelinePanel.js:151
&gt;  +          return [this.toggleFilterButton.element, this.clearButton.element, this.toggleTimelineButton.element, this._overviewPane.statusBarFilters];
&gt; Why this change? I think clear should be the rightmost button.

I thought it might make more sense for the toggle button to be the button that the user has the most space to click without by accident clicking on another button instead of the clear element, since there isn&apos;t a way to undo a clear. However, I have changed it back, and changed the order in the Profiles panel to be the same (toggle button to the left of the clear button).

&gt; 
&gt; WebCore/ChangeLog:8
&gt;  +          Adds a button to clear the profiles from the profiles panel like that used for the console, the audits panel, and the timeline panel. Consolidates the css rules, since they all use the same image. Also allows for individual profiles to be deleted via the keyboard (U+0008 or U+007F).
&gt; Please format this message so that it was ~80 chars per line. Also, you can remove trivial changes with the dittos in the log below.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232179</commentid>
    <comment_count>6</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2010-05-30 06:19:14 -0700</bug_when>
    <thetext>Committed in r60414:
http://trac.webkit.org/changeset/60414</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57402</attachid>
            <date>2010-05-28 19:06:18 -0700</date>
            <delta_ts>2010-05-29 08:40:12 -0700</delta_ts>
            <desc>Adds the ability to clear the profiles in the Web Inspector.</desc>
            <filename>addAbilityToClearProfiles.patch</filename>
            <type>text/plain</type>
            <size>12290</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDQyNDcxYy4uN2ViODE4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MCBAQAorMjAxMC0wNS0yOCAgSmVzc2llIEJlcmxp
biAgPGpiZXJsaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzkyMjQKKyAgICAgICAgQnVnIDM5MjI0IC0gV2ViIEluc3BlY3RvcjogVGhlcmUgc2hvdWxkIGJl
IGEgd2F5IHRvIGNsZWFuIHVwIHByb2ZpbGVzCisKKyAgICAgICAgQWRkcyBhIGJ1dHRvbiB0byBj
bGVhciB0aGUgcHJvZmlsZXMgZnJvbSB0aGUgcHJvZmlsZXMgcGFuZWwgbGlrZSB0aGF0IHVzZWQg
Zm9yIHRoZSBjb25zb2xlLCB0aGUgYXVkaXRzIHBhbmVsLCBhbmQgdGhlIHRpbWVsaW5lIHBhbmVs
LiBDb25zb2xpZGF0ZXMgdGhlIGNzcyBydWxlcywgc2luY2UgdGhleSBhbGwgdXNlIHRoZSBzYW1l
IGltYWdlLiBBbHNvIGFsbG93cyBmb3IgaW5kaXZpZHVhbCBwcm9maWxlcyB0byBiZSBkZWxldGVk
IHZpYSB0aGUga2V5Ym9hcmQgKFUrMDAwOCBvciBVKzAwN0YpLgorCisgICAgICAgICogRW5nbGlz
aC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICBBZGQgdG9vbHRpcCB0ZXh0IGZv
ciB0aGUgYnV0dG9uIHRvIGNsZWFyIHRoZSBwcm9maWxlcyBwYW5lLgorCisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5B
dWRpdHNQYW5lbCk6CisgICAgICAgIFVzZSB0aGUgJ2NsZWFyLXN0YXR1cy1iYXItaXRlbScgY2xh
c3MuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DaGFuZ2VzVmlldy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DaGFuZ2VzVmlldyk6CisgICAgICAgIGRpdHRvLgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvYXVkaXRzLmNzczoKKyAgICAgICAgZGl0dG8uCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLmNsZWFyLXN0
YXR1cy1iYXItaXRlbSAuZ2x5cGgpOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZVN0YXR1c2JhckJ1dHRvbnMpOgorICAg
ICAgICBkaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlw
ZS5nZXQgc3RhdHVzQmFySXRlbXMpOgorICAgICAgICBNb3ZlIHRoZSBjbGVhciBidXR0b24gYmVm
b3JlIHRoZSByZWNvcmQgYnV0dG9uIHNvIHRoYXQgdGhlIHJlY29yZCBidXR0b24gaXMgdGhlIHJp
Z2h0bW9zdCBpdGVtIChlYXNpZXIgdG8gY2xpY2sgdGhhbiB0aGUgY2xlYXIpIGFuZCBzbyB0aGF0
IGl0IG1hdGNoZXMgd2l0aCB0aGUgb3JkZXIgaW4gdGhlIHByb2ZpbGVzIHBhbmVsLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwpOgorICAgICAgICBBZGQgdGhlIGNsZWFyIGJ1dHRvbi4K
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5nZXQgc3RhdHVz
QmFySXRlbXMpOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsLnByb3RvdHlwZS5yZW1vdmVQcm9maWxlSGVhZGVyKToKKyAgICAgICAgQ2xlYXIgdGhl
IHZpZXcgd2hlbiB0aGUgbGFzdCBwcm9maWxlIGlzIHJlbW92ZWQuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZUludGVyZmFjZSk6CisgICAgICAg
IEhpZGUgdGhlIGNsZWFyIGJ1dHRvbiB3aGVuIHByb2ZpbGluZyBpcyBkaXNhYmxlZC4KKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmRl
bGV0ZSk6CisgICAgICAgIFJlbW92ZSB0aGUgcHJvZmlsZSBjb3JyZXNwb25kaW5nIHRoZSB0cmVl
IGVsZW1lbnQgd2hlbiB0aGUgdXNlciBkZWxldGVzIHRoYXQgdHJlZSBlbGVtZW50LgorCisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qczoKKyAgICAgICAgKFRyZWVP
dXRsaW5lLnByb3RvdHlwZS5fdHJlZUtleURvd24pOgorICAgICAgICBBbGxvdyB0aGUgc2VsZWN0
ZWQgdHJlZSBlbGVtZW50IHRvIGhhbmRsZSB0aGUgdXNlciBwcmVzc2luZyBhIGRlbGV0ZSBrZXku
CisKIDIwMTAtMDUtMjcgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvV2ViQ29yZS9FbmdsaXNoLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggMDJhZGUwMS4uZTU5YjY2ZCAxMDA2NDQKQmlu
YXJ5IGZpbGVzIGEvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYW5k
IGIvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgZGlmZmVyCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKaW5kZXggYzMzMThjZS4uNDgx
ZGY4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVs
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcwpAQCAt
NDksNyArNDksNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwgPSBmdW5jdGlvbigpCiAKICAg
ICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYXVkaXRzIik7CiAKLSAgICB0aGlzLmNsZWFy
UmVzdWx0c0J1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiQ2xlYXIgYXVkaXQgcmVzdWx0cy4iKSwgImNsZWFyLWF1ZGl0LXJlc3Vs
dHMtc3RhdHVzLWJhci1pdGVtIik7CisgICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24gPSBuZXcg
V2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFy
IGF1ZGl0IHJlc3VsdHMuIiksICJjbGVhci1zdGF0dXMtYmFyLWl0ZW0iKTsKICAgICB0aGlzLmNs
ZWFyUmVzdWx0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2NsZWFyQnV0
dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICB0aGlzLnZpZXdzQ29udGFpbmVy
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NoYW5nZXNWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NoYW5nZXNWaWV3LmpzCmluZGV4IDgwMmZkYmEuLjVhYjY5NDIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DaGFuZ2VzVmlldy5qcworKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2hhbmdlc1ZpZXcuanMKQEAgLTM3LDcgKzM3LDcg
QEAgV2ViSW5zcGVjdG9yLkNoYW5nZXNWaWV3ID0gZnVuY3Rpb24oZHJhd2VyKQogICAgIHRoaXMu
Y2xlYXJCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKICAgICB0aGlz
LmNsZWFyQnV0dG9uLmlkID0gImNsZWFyLWNoYW5nZXMtc3RhdHVzLWJhci1pdGVtIjsKICAgICB0
aGlzLmNsZWFyQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBjaGFu
Z2VzIGxvZy4iKTsKLSAgICB0aGlzLmNsZWFyQnV0dG9uLmNsYXNzTmFtZSA9ICJzdGF0dXMtYmFy
LWl0ZW0iOworICAgIHRoaXMuY2xlYXJCdXR0b24uY2xhc3NOYW1lID0gInN0YXR1cy1iYXItaXRl
bSBjbGVhci1zdGF0dXMtYmFyLWl0ZW0iOwogICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzLl9jbGVhckJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFs
c2UpOwogCiAgICAgdGhpcy50b2dnbGVDaGFuZ2VzQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNoYW5nZXMtc3RhdHVzLWJhci1pdGVtIik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGNjYTllMzMuLjA1ODA5MGUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC0xMTMsNiArMTEz
LDkgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5l
bmFibGVUb2dnbGVCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwg
ImVuYWJsZS10b2dnbGUtc3RhdHVzLWJhci1pdGVtIik7CiAgICAgdGhpcy5lbmFibGVUb2dnbGVC
dXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVQcm9maWxpbmcuYmlu
ZCh0aGlzKSwgZmFsc2UpOwogCisgICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24gPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIENQ
VSBwcm9maWxlcy4iKSwgImNsZWFyLXN0YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuY2xlYXJS
ZXN1bHRzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5yZXNldC5iaW5kKHRo
aXMpLCBmYWxzZSk7CisKICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWlu
ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLnByb2ZpbGVWaWV3
U3RhdHVzQmFySXRlbXNDb250YWluZXIuaWQgPSAicHJvZmlsZS12aWV3LXN0YXR1cy1iYXItaXRl
bXMiOwogCkBAIC0xNDAsNyArMTQzLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9maWxlVHlwZUJ1dHRvbnMoKTsK
ICAgICAgICAgfQogCi0gICAgICAgIHZhciBpdGVtcyA9IFt0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRv
bi5lbGVtZW50XTsKKyAgICAgICAgdmFyIGl0ZW1zID0gW3RoaXMuZW5hYmxlVG9nZ2xlQnV0dG9u
LmVsZW1lbnQsIHRoaXMuY2xlYXJSZXN1bHRzQnV0dG9uLmVsZW1lbnRdOwogICAgICAgICAvLyBG
SVhNRTogR2VuZXJhdGUgYSBzaW5nbGUgImNvbWJvLWJ1dHRvbiIuCiAgICAgICAgIGZvciAodmFy
IHR5cGVJZCBpbiB0aGlzLl9wcm9maWxlVHlwZXNCeUlkTWFwKSB7CiAgICAgICAgICAgICB2YXIg
cHJvZmlsZVR5cGUgPSB0aGlzLmdldFByb2ZpbGVUeXBlKHR5cGVJZCk7CkBAIC0zMzcsNiArMzQw
LDExIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ZGVsZXRlIHRoaXMuX3Byb2ZpbGVHcm91cHNbcHJvZmlsZVRpdGxlS2V5XTsKIAogICAgICAgICBz
aWRlYmFyUGFyZW50LnJlbW92ZUNoaWxkKHByb2ZpbGUuX3Byb2ZpbGVzVHJlZUVsZW1lbnQpOwor
CisgICAgICAgIC8vIE5vIG90aGVyIGl0ZW0gd2lsbCBiZSBzZWxlY3RlZCBpZiB0aGVyZSBhcmVu
J3QgYW55IG90aGVyIHByb2ZpbGVzLCBzbworICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCB2aWV3
IGdldHMgY2xlYXJlZCB3aGVuIHRoZSBsYXN0IHByb2ZpbGUgaXMgcmVtb3ZlZC4KKyAgICAgICAg
aWYgKCF0aGlzLl9wcm9maWxlcy5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLmNsb3NlVmlzaWJs
ZVZpZXcoKTsKICAgICB9LAogCiAgICAgc2hvd1Byb2ZpbGU6IGZ1bmN0aW9uKHByb2ZpbGUpCkBA
IC00NjYsNiArNDc0LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgZm9yICh2YXIgdHlwZUlkIGluIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9u
c0J5SWRNYXApCiAgICAgICAgICAgICAgICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1h
cFt0eXBlSWRdLnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5w
cm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRl
biIpOworICAgICAgICAgICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24uZWxlbWVudC5yZW1vdmVT
dHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy52
aXNpYmxlID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlzLmVuYWJs
ZVRvZ2dsZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZmlsaW5nIGRp
c2FibGVkLiBDbGljayB0byBlbmFibGUuIik7CkBAIC00NzMsNiArNDgyLDcgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgZm9yICh2YXIgdHlw
ZUlkIGluIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXApCiAgICAgICAgICAgICAgICAg
dGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcFt0eXBlSWRdLmFkZFN0eWxlQ2xhc3MoImhp
ZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFp
bmVyLmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICAgICAgdGhpcy5jbGVhclJlc3Vs
dHNCdXR0b24uZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAgIHRo
aXMucGFuZWxFbmFibGVyVmlldy52aXNpYmxlID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0sCkBA
IC01NDMsNiArNTUzLDExIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlU2lkZWJhclRyZWVFbGVtZW50
LnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5zaG93
UHJvZmlsZSh0aGlzLnByb2ZpbGUpOwogICAgIH0sCiAKKyAgICBvbmRlbGV0ZTogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5yZW1vdmVQcm9m
aWxlSGVhZGVyKHRoaXMucHJvZmlsZSk7CisgICAgfSwKKwogICAgIGdldCBtYWluVGl0bGUoKQog
ICAgIHsKICAgICAgICAgaWYgKHRoaXMuX21haW5UaXRsZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggYmIxOWIzNi4uMTI0NGNjNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTE0OCw3ICsx
NDgsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBn
ZXQgc3RhdHVzQmFySXRlbXMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFt0aGlzLnRvZ2dsZUZp
bHRlckJ1dHRvbi5lbGVtZW50LCB0aGlzLnRvZ2dsZVRpbWVsaW5lQnV0dG9uLmVsZW1lbnQsIHRo
aXMuY2xlYXJCdXR0b24uZWxlbWVudCwgdGhpcy5fb3ZlcnZpZXdQYW5lLnN0YXR1c0JhckZpbHRl
cnNdOworICAgICAgICByZXR1cm4gW3RoaXMudG9nZ2xlRmlsdGVyQnV0dG9uLmVsZW1lbnQsIHRo
aXMuY2xlYXJCdXR0b24uZWxlbWVudCwgdGhpcy50b2dnbGVUaW1lbGluZUJ1dHRvbi5lbGVtZW50
LCB0aGlzLl9vdmVydmlld1BhbmUuc3RhdHVzQmFyRmlsdGVyc107CiAgICAgfSwKIAogICAgIGdl
dCBjYXRlZ29yaWVzKCkKQEAgLTIwNCw3ICsyMDQsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0b24gPSBu
ZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJl
Y29yZCIpLCAicmVjb3JkLXByb2ZpbGUtc3RhdHVzLWJhci1pdGVtIik7CiAgICAgICAgIHRoaXMu
dG9nZ2xlVGltZWxpbmVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dn
bGVUaW1lbGluZUJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogCi0gICAgICAgIHRo
aXMuY2xlYXJCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkNsZWFyIiksICJ0aW1lbGluZS1jbGVhci1zdGF0dXMtYmFyLWl0ZW0i
KTsKKyAgICAgICAgdGhpcy5jbGVhckJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFy
QnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xlYXIiKSwgImNsZWFyLXN0YXR1cy1iYXIt
aXRlbSIpOwogICAgICAgICB0aGlzLmNsZWFyQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5fY2xlYXJQYW5lbC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICAgICAgdGhpcy50
b2dnbGVGaWx0ZXJCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbih0aGlz
Ll9oaWRlU2hvcnRSZWNvcmRzVGl0bGVUZXh0LCAidGltZWxpbmUtZmlsdGVyLXN0YXR1cy1iYXIt
aXRlbSIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0cy5j
c3MgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvYXVkaXRzLmNzcwppbmRleCBhZDEyZGIz
Li5kMzZlZmM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvYXVkaXRz
LmNzcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvYXVkaXRzLmNzcwpAQCAtNDYs
MTAgKzQ2LDYgQEAKICAgICBvdmVyZmxvdzogYXV0bzsKIH0KIAotYnV0dG9uLmNsZWFyLWF1ZGl0
LXJlc3VsdHMtc3RhdHVzLWJhci1pdGVtIC5nbHlwaCB7Ci0gICAgLXdlYmtpdC1tYXNrLWltYWdl
OiB1cmwoSW1hZ2VzL2NsZWFyQ29uc29sZUJ1dHRvbkdseXBoLnBuZyk7Ci19Ci0KIC5hdWRpdC1s
YXVuY2hlci12aWV3IHsKICAgICB6LWluZGV4OiAxMDAwOwogICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3Nz
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggMjc2OTJh
Zi4uZWYzNGYyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5jc3MKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MK
QEAgLTQyMCw3ICs0MjAsNyBAQCBib2R5LnBvcnQtcXQgI2RvY2stc3RhdHVzLWJhci1pdGVtIHsK
ICAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChJbWFnZXMvY29uc29sZUJ1dHRvbkdseXBoLnBu
Zyk7CiB9CiAKLSNjbGVhci1jb25zb2xlLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGggeworLmNsZWFy
LXN0YXR1cy1iYXItaXRlbSAuZ2x5cGggewogICAgIC13ZWJraXQtbWFzay1pbWFnZTogdXJsKElt
YWdlcy9jbGVhckNvbnNvbGVCdXR0b25HbHlwaC5wbmcpOwogfQogCkBAIC00MjgsMTAgKzQyOCw2
IEBAIGJvZHkucG9ydC1xdCAjZG9jay1zdGF0dXMtYmFyLWl0ZW0gewogICAgIC13ZWJraXQtbWFz
ay1pbWFnZTogdXJsKEltYWdlcy9jb25zb2xlQnV0dG9uR2x5cGgucG5nKTsgLyogVE9ETzogTmVl
ZHMgSW1hZ2UgZm9yIENoYW5nZXMgVG9nZ2xlIEJ1dHRvbiAqLwogfQogCi0jY2xlYXItY2hhbmdl
cy1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoIHsKLSAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChJ
bWFnZXMvY2xlYXJDb25zb2xlQnV0dG9uR2x5cGgucG5nKTsKLX0KLQogI2NvdW50ZXJzIHsKICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgcmlnaHQ6IDE2cHg7CkBAIC0zNDMxLDEwICszNDI3
LDYgQEAgYm9keS5pbmFjdGl2ZSAuc2lkZWJhci10cmVlLWl0ZW0uc2VsZWN0ZWQgLmJ1YmJsZS5z
ZWFyY2gtbWF0Y2hlcyB7CiAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogfQogCi0udGltZWxpbmUt
Y2xlYXItc3RhdHVzLWJhci1pdGVtIC5nbHlwaCB7Ci0gICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1
cmwoSW1hZ2VzL2NsZWFyQ29uc29sZUJ1dHRvbkdseXBoLnBuZyk7Ci19Ci0KIC50aW1lbGluZS1j
YXRlZ29yeS1zdGF0dXNiYXItaXRlbSB7CiAgICAgaGVpZ2h0OiAyNHB4OwogICAgIGxpbmUtaGVp
Z2h0OiAyNHB4OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5odG1sIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCmlu
ZGV4IDQ2MTBjYTUuLjE0MDM2NjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmh0bWwKQEAgLTE0MSw3ICsxNDEsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDwvZGl2PgogICAg
IDxkaXYgaWQ9ImRyYXdlciI+CiAgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUtdmlldyI+PGRpdiBp
ZD0iY29uc29sZS1tZXNzYWdlcyIgY2xhc3M9Im1vbm9zcGFjZSI+PGRpdiBpZD0iY29uc29sZS1w
cm9tcHQiIHNwZWxsY2hlY2s9ImZhbHNlIj48YnI+PC9kaXY+PC9kaXY+PC9kaXY+Ci0gICAgICAg
IDxkaXYgaWQ9ImRyYXdlci1zdGF0dXMtYmFyIiBjbGFzcz0ic3RhdHVzLWJhciI+PGRpdiBpZD0i
b3RoZXItZHJhd2VyLXN0YXR1cy1iYXItaXRlbXMiPjxidXR0b24gaWQ9ImNsZWFyLWNvbnNvbGUt
c3RhdHVzLWJhci1pdGVtIiBjbGFzcz0ic3RhdHVzLWJhci1pdGVtIj48ZGl2IGNsYXNzPSJnbHlw
aCI+PC9kaXY+PGRpdiBjbGFzcz0iZ2x5cGggc2hhZG93Ij48L2Rpdj48L2J1dHRvbj48ZGl2IGlk
PSJjb25zb2xlLWZpbHRlciIgY2xhc3M9InNjb3BlLWJhciBzdGF0dXMtYmFyLWl0ZW0iPjwvZGl2
PjwvZGl2PjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJkcmF3ZXItc3RhdHVzLWJhciIgY2xhc3M9
InN0YXR1cy1iYXIiPjxkaXYgaWQ9Im90aGVyLWRyYXdlci1zdGF0dXMtYmFyLWl0ZW1zIj48YnV0
dG9uIGlkPSJjbGVhci1jb25zb2xlLXN0YXR1cy1iYXItaXRlbSIgY2xhc3M9InN0YXR1cy1iYXIt
aXRlbSBjbGVhci1zdGF0dXMtYmFyLWl0ZW0iPjxkaXYgY2xhc3M9ImdseXBoIj48L2Rpdj48ZGl2
IGNsYXNzPSJnbHlwaCBzaGFkb3ciPjwvZGl2PjwvYnV0dG9uPjxkaXYgaWQ9ImNvbnNvbGUtZmls
dGVyIiBjbGFzcz0ic2NvcGUtYmFyIHN0YXR1cy1iYXItaXRlbSI+PC9kaXY+PC9kaXY+PC9kaXY+
CiAgICAgPC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvdHJlZW91dGxpbmUuanMKaW5kZXggN2Q1ODk1NC4uZDJiZGY3YSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcwpAQCAtMzg5LDYgKzM4OSwxMCBAQCBUcmVl
T3V0bGluZS5wcm90b3R5cGUuX3RyZWVLZXlEb3duID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUcmVlRWxlbWVudC5leHBhbmQoKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0g
IlUrMDAwOCIgfHwgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlUrMDA3RiIpIHsKKyAgICAgICAg
Ly8gRGVsZXRlCisgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQub25kZWxldGUp
CisgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQub25kZWxldGUoKTsKICAgICB9
CiAKICAgICBpZiAobmV4dFNlbGVjdGVkRWxlbWVudCkgewo=
</data>
<flag name="review"
          id="41973"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57411</attachid>
            <date>2010-05-29 08:40:12 -0700</date>
            <delta_ts>2010-05-30 06:18:30 -0700</delta_ts>
            <desc>Remove the profiles from the backend as well.</desc>
            <filename>addAbilityToClearProfiles.patch</filename>
            <type>text/plain</type>
            <size>17054</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDQyNDcxYy4uMDcwYmQyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAxMC0wNS0yOSAgSmVzc2llIEJlcmxp
biAgPGpiZXJsaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzkyMjQKKyAgICAgICAgQnVnIDM5MjI0IC0gV2ViIEluc3BlY3RvcjogVGhlcmUgc2hvdWxkIGJl
IGEgd2F5IHRvIGNsZWFuIHVwIHByb2ZpbGVzCisKKyAgICAgICAgQWRkcyBhIGJ1dHRvbiB0byBj
bGVhciB0aGUgcHJvZmlsZXMgZnJvbSB0aGUgcHJvZmlsZXMgcGFuZWwgbGlrZSB0aGF0IHVzZWQg
Zm9yIHRoZSBjb25zb2xlLCB0aGUgYXVkaXRzIHBhbmVsLCBhbmQgdGhlIHRpbWVsaW5lIHBhbmVs
LiBDb25zb2xpZGF0ZXMgdGhlIGNzcyBydWxlcywgc2luY2UgdGhleSBhbGwgdXNlIHRoZSBzYW1l
IGltYWdlLiBBbHNvIGFsbG93cyBmb3IgaW5kaXZpZHVhbCBwcm9maWxlcyB0byBiZSBkZWxldGVk
IHZpYSB0aGUga2V5Ym9hcmQgKFUrMDAwOCBvciBVKzAwN0YpLgorCisgICAgICAgICogRW5nbGlz
aC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICBBZGQgdG9vbHRpcCB0ZXh0IGZv
ciB0aGUgYnV0dG9uIHRvIGNsZWFyIHRoZSBwcm9maWxlcyBwYW5lLgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsOgorICAgICAgICBBZGQgYWJpbGl0eSB0byByZW1v
dmUgdGhlIHByb2ZpbGVzIGZyb20gdGhlIGJhY2tlbmQgd2hlbiB0aGV5IGFyZSBkZWxldGVkIG9y
IGNsZWFyZWQgaW4gdGhlIGZyb250ZW5kLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JC
YWNrZW5kLmg6CisgICAgICAgIGRpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JC
YWNrZW5kLmNwcDoKKyAgICAgICAgZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JC
YWNrZW5kOjpyZW1vdmVQcm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckJhY2tl
bmQ6OmNsZWFyUHJvZmlsZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmg6CisgICAgICAgIGRpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
b250cm9sbGVyOjpyZW1vdmVQcm9maWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNv
bnRyb2xsZXI6OmNsZWFyUHJvZmlsZXMpOgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9BdWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdHNQYW5lbCk6Cisg
ICAgICAgIFVzZSB0aGUgJ2NsZWFyLXN0YXR1cy1iYXItaXRlbScgY2xhc3MuCisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9DaGFuZ2VzVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5DaGFuZ2VzVmlldyk6CisgICAgICAgIGRpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvYXVkaXRzLmNzczoKKyAgICAgICAgZGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLmNsZWFyLXN0YXR1cy1iYXItaXRlbSAu
Z2x5cGgpOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5wcm90b3R5cGUuX2NyZWF0ZVN0YXR1c2JhckJ1dHRvbnMpOgorICAgICAgICBkaXR0by4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQgc3RhdHVzQmFy
SXRlbXMpOgorICAgICAgICBNb3ZlIHRoZSBjbGVhciBidXR0b24gYmVmb3JlIHRoZSByZWNvcmQg
YnV0dG9uIHNvIHRoYXQgdGhlIHJlY29yZCBidXR0b24gaXMgdGhlIHJpZ2h0bW9zdCBpdGVtIChl
YXNpZXIgdG8gY2xpY2sgdGhhbiB0aGUgY2xlYXIpIGFuZCBzbyB0aGF0IGl0IG1hdGNoZXMgd2l0
aCB0aGUgb3JkZXIgaW4gdGhlIHByb2ZpbGVzIHBhbmVsLgorCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwpOgorICAgICAgICBBZGQgdGhlIGNsZWFyIGJ1dHRvbi4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgorICAg
ICAgICBkaXR0by4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5fY2xlYXJQcm9maWxlcyk6CisgICAgICAgIFJlbW92ZSB0aGUgcHJvZmlsZXMgZnJvbSB0aGUg
YmFja2VuZCwgdGhlIHJlc2V0IHRoZSBmcm9udGVuZCBpbnRlcmZhY2UuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUucmVtb3ZlUHJvZmlsZUhlYWRlcik6Cisg
ICAgICAgIFJlbW92ZSB0aGUgcHJvZmlsZSBmcm9tIGJvdGggdGhlIGZyb250ZW5kIGFuZCB0aGUg
YmFja2VuZCwgYW5kIGNsZWFyIHRoZSB2aWV3IHdoZW4gdGhlIGxhc3QgcHJvZmlsZSBpcyByZW1v
dmVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlLl91cGRh
dGVJbnRlcmZhY2UpOgorICAgICAgICBIaWRlIHRoZSBjbGVhciBidXR0b24gd2hlbiBwcm9maWxp
bmcgaXMgZGlzYWJsZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVl
RWxlbWVudC5wcm90b3R5cGUub25kZWxldGUpOgorICAgICAgICBSZW1vdmUgdGhlIHByb2ZpbGUg
Y29ycmVzcG9uZGluZyB0aGUgdHJlZSBlbGVtZW50IHdoZW4gdGhlIHVzZXIgZGVsZXRlcyB0aGF0
IHRyZWUgZWxlbWVudC4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxp
bmUuanM6CisgICAgICAgIChUcmVlT3V0bGluZS5wcm90b3R5cGUuX3RyZWVLZXlEb3duKToKKyAg
ICAgICAgQWxsb3cgdGhlIHNlbGVjdGVkIHRyZWUgZWxlbWVudCB0byBoYW5kbGUgdGhlIHVzZXIg
cHJlc3NpbmcgYSBkZWxldGUga2V5LgorCiAyMDEwLTA1LTI3ICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRz
a3kuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDAyYWRl
MDEuLmU1OWI2NmQgMTAwNjQ0CkJpbmFyeSBmaWxlcyBhL1dlYkNvcmUvRW5nbGlzaC5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzIGFuZCBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcAppbmRl
eCBhZWQ4ZjJiLi4wMTk2NDM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNw
cApAQCAtMjU0LDYgKzI1NCwxOCBAQCB2b2lkIEluc3BlY3RvckJhY2tlbmQ6OmdldFByb2ZpbGUo
bG9uZyBjYWxsSWQsIHVuc2lnbmVkIHVpZCkKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVy
KQogICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPmdldFByb2ZpbGUoY2FsbElkLCB1aWQp
OwogfQorCit2b2lkIEluc3BlY3RvckJhY2tlbmQ6OnJlbW92ZVByb2ZpbGUodW5zaWduZWQgdWlk
KQoreworICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCisgICAgICAgIG1faW5zcGVjdG9y
Q29udHJvbGxlci0+cmVtb3ZlUHJvZmlsZSh1aWQpOworfQorCit2b2lkIEluc3BlY3RvckJhY2tl
bmQ6OmNsZWFyUHJvZmlsZXMoKQoreworICAgIGlmIChtX2luc3BlY3RvckNvbnRyb2xsZXIpCisg
ICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+Y2xlYXJQcm9maWxlcygpOworfQogI2VuZGlm
CiAKIHZvaWQgSW5zcGVjdG9yQmFja2VuZDo6c2V0SW5qZWN0ZWRTY3JpcHRTb3VyY2UoY29uc3Qg
U3RyaW5nJiBzb3VyY2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JC
YWNrZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKaW5kZXggNzMz
MTg0My4uODdiZjJlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaApAQCAtOTgs
NiArOTgsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldFByb2ZpbGVIZWFkZXJzKGxvbmcgY2Fs
bElkKTsKICAgICB2b2lkIGdldFByb2ZpbGUobG9uZyBjYWxsSWQsIHVuc2lnbmVkIHVpZCk7CisK
KyAgICB2b2lkIHJlbW92ZVByb2ZpbGUodW5zaWduZWQgdWlkKTsKKyAgICB2b2lkIGNsZWFyUHJv
ZmlsZXMoKTsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRJbmplY3RlZFNjcmlwdFNvdXJjZShjb25z
dCBTdHJpbmcmIHNvdXJjZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsCmlu
ZGV4IGNmMGZlMDEuLjQ4ZTY2M2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckJhY2tlbmQuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQu
aWRsCkBAIC03Myw2ICs3Myw5IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICB2b2lkIGdldFBy
b2ZpbGVIZWFkZXJzKGluIGxvbmcgY2FsbElkKTsKICAgICAgICAgdm9pZCBnZXRQcm9maWxlKGlu
IGxvbmcgY2FsbElkLCBpbiB1bnNpZ25lZCBsb25nIHVpZCk7CisKKyAgICAgICAgdm9pZCByZW1v
dmVQcm9maWxlKGluIHVuc2lnbmVkIGxvbmcgdWlkKTsKKyAgICAgICAgdm9pZCBjbGVhclByb2Zp
bGVzKCk7CiAjZW5kaWYKICAgICAgICAgdm9pZCBzZXRJbmplY3RlZFNjcmlwdFNvdXJjZShpbiBE
T01TdHJpbmcgc2NyaXB0U291cmNlKTsKICAgICAgICAgdm9pZCBkaXNwYXRjaE9uSW5qZWN0ZWRT
Y3JpcHQoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwgaW4gRE9NU3Ry
aW5nIG1ldGhvZE5hbWUsIGluIERPTVN0cmluZyBhcmd1bWVudHMsIGluIGJvb2xlYW4gYXN5bmMp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA5OGZhNTU3
Li5kNTEzMmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApA
QCAtMTM4NSw2ICsxMzg1LDI1IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6YWRkU3RhcnRQ
cm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgdGl0bGUsCiAgICAgYWRkTWVz
c2FnZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBMb2dNZXNzYWdl
TGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZVVSTCk7CiB9CiAKK3ZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6cmVtb3ZlUHJvZmlsZSh1bnNpZ25lZCB1aWQpCit7CisgICAgaWYgKCFl
bmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3Byb2ZpbGVzLmNvbnRhaW5z
KHVpZCkpCisgICAgICAgIG1fcHJvZmlsZXMucmVtb3ZlKHVpZCk7Cit9CisKK3ZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6Y2xlYXJQcm9maWxlcygpCit7CisgICAgaWYgKCFlbmFibGVkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcHJvZmlsZXMuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRV
c2VySW5pdGlhdGVkUHJvZmlsZU51bWJlciA9IDE7CisgICAgbV9uZXh0VXNlckluaXRpYXRlZFBy
b2ZpbGVOdW1iZXIgPSAxOworfQorCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmdldFByb2Zp
bGVIZWFkZXJzKGxvbmcgY2FsbElkKQogewogICAgIGlmICghbV9mcm9udGVuZCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBkZTdmN2E1Li5hMmM4YTc3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0yMjIsNiArMjIyLDggQEAg
cHVibGljOgogICAgIHZvaWQgYWRkUHJvZmlsZShQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+LCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdm9pZCBh
ZGRQcm9maWxlRmluaXNoZWRNZXNzYWdlVG9Db25zb2xlKFBhc3NSZWZQdHI8U2NyaXB0UHJvZmls
ZT4sIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2
b2lkIGFkZFN0YXJ0UHJvZmlsaW5nTWVzc2FnZVRvQ29uc29sZShjb25zdCBTdHJpbmcmIHRpdGxl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CisgICAgdm9p
ZCByZW1vdmVQcm9maWxlKHVuc2lnbmVkKTsKKyAgICB2b2lkIGNsZWFyUHJvZmlsZXMoKTsKIAog
ICAgIGJvb2wgaXNSZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFByb2ZpbGU7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpzCmluZGV4IGMzMzE4Y2UuLjQ4MWRmODAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcworKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKQEAgLTQ5LDcgKzQ5LDcgQEAg
V2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5lbGVtZW50
LmFkZFN0eWxlQ2xhc3MoImF1ZGl0cyIpOwogCi0gICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24g
PSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkNsZWFyIGF1ZGl0IHJlc3VsdHMuIiksICJjbGVhci1hdWRpdC1yZXN1bHRzLXN0YXR1cy1iYXIt
aXRlbSIpOworICAgIHRoaXMuY2xlYXJSZXN1bHRzQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5T
dGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBhdWRpdCByZXN1bHRz
LiIpLCAiY2xlYXItc3RhdHVzLWJhci1pdGVtIik7CiAgICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0
b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9jbGVhckJ1dHRvbkNsaWNrZWQuYmlu
ZCh0aGlzKSwgZmFsc2UpOwogCiAgICAgdGhpcy52aWV3c0NvbnRhaW5lckVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9DaGFuZ2VzVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
aGFuZ2VzVmlldy5qcwppbmRleCA4MDJmZGJhLi41YWI2OTQyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ2hhbmdlc1ZpZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NoYW5nZXNWaWV3LmpzCkBAIC0zNyw3ICszNyw3IEBAIFdlYkluc3BlY3Rv
ci5DaGFuZ2VzVmlldyA9IGZ1bmN0aW9uKGRyYXdlcikKICAgICB0aGlzLmNsZWFyQnV0dG9uID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CiAgICAgdGhpcy5jbGVhckJ1dHRvbi5p
ZCA9ICJjbGVhci1jaGFuZ2VzLXN0YXR1cy1iYXItaXRlbSI7CiAgICAgdGhpcy5jbGVhckJ1dHRv
bi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xlYXIgY2hhbmdlcyBsb2cuIik7Ci0g
ICAgdGhpcy5jbGVhckJ1dHRvbi5jbGFzc05hbWUgPSAic3RhdHVzLWJhci1pdGVtIjsKKyAgICB0
aGlzLmNsZWFyQnV0dG9uLmNsYXNzTmFtZSA9ICJzdGF0dXMtYmFyLWl0ZW0gY2xlYXItc3RhdHVz
LWJhci1pdGVtIjsKICAgICB0aGlzLmNsZWFyQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5fY2xlYXJCdXR0b25DbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKIAogICAgIHRo
aXMudG9nZ2xlQ2hhbmdlc0J1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFuZ2Vz
LXN0YXR1cy1iYXItaXRlbSIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmls
ZXNQYW5lbC5qcwppbmRleCBjY2E5ZTMzLi5hNDZmOWI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtMTEzLDYgKzExMyw5IEBAIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0
dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oIiIsICJlbmFibGUtdG9nZ2xl
LXN0YXR1cy1iYXItaXRlbSIpOwogICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUHJvZmlsaW5nLmJpbmQodGhpcyksIGZhbHNl
KTsKIAorICAgIHRoaXMuY2xlYXJSZXN1bHRzQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0
dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBDUFUgcHJvZmlsZXMuIiks
ICJjbGVhci1zdGF0dXMtYmFyLWl0ZW0iKTsKKyAgICB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2NsZWFyUHJvZmlsZXMuYmluZCh0aGlzKSwg
ZmFsc2UpOworCiAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1
c0Jhckl0ZW1zQ29udGFpbmVyLmlkID0gInByb2ZpbGUtdmlldy1zdGF0dXMtYmFyLWl0ZW1zIjsK
IApAQCAtMTQwLDcgKzE0Myw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHRoaXMudXBkYXRlUHJvZmlsZVR5cGVCdXR0b25zKCk7CiAgICAg
ICAgIH0KIAotICAgICAgICB2YXIgaXRlbXMgPSBbdGhpcy5lbmFibGVUb2dnbGVCdXR0b24uZWxl
bWVudF07CisgICAgICAgIHZhciBpdGVtcyA9IFt0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi5lbGVt
ZW50LCB0aGlzLmNsZWFyUmVzdWx0c0J1dHRvbi5lbGVtZW50XTsKICAgICAgICAgLy8gRklYTUU6
IEdlbmVyYXRlIGEgc2luZ2xlICJjb21iby1idXR0b24iLgogICAgICAgICBmb3IgKHZhciB0eXBl
SWQgaW4gdGhpcy5fcHJvZmlsZVR5cGVzQnlJZE1hcCkgewogICAgICAgICAgICAgdmFyIHByb2Zp
bGVUeXBlID0gdGhpcy5nZXRQcm9maWxlVHlwZSh0eXBlSWQpOwpAQCAtMjE2LDYgKzIxOSwxMiBA
QCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
d2VsY29tZVZpZXcuc2hvdygpOwogICAgIH0sCiAKKyAgICBfY2xlYXJQcm9maWxlczogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5jbGVhclByb2ZpbGVzKCk7Cisg
ICAgICAgIHRoaXMucmVzZXQoKTsKKyAgICB9LAorCiAgICAgcmVnaXN0ZXJQcm9maWxlVHlwZTog
ZnVuY3Rpb24ocHJvZmlsZVR5cGUpCiAgICAgewogICAgICAgICB0aGlzLl9wcm9maWxlVHlwZXNC
eUlkTWFwW3Byb2ZpbGVUeXBlLmlkXSA9IHByb2ZpbGVUeXBlOwpAQCAtMzM3LDYgKzM0NiwxNCBA
QCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRlbGV0
ZSB0aGlzLl9wcm9maWxlR3JvdXBzW3Byb2ZpbGVUaXRsZUtleV07CiAKICAgICAgICAgc2lkZWJh
clBhcmVudC5yZW1vdmVDaGlsZChwcm9maWxlLl9wcm9maWxlc1RyZWVFbGVtZW50KTsKKworICAg
ICAgICBpZiAoIXByb2ZpbGUuaXNUZW1wb3JhcnkpCisgICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnJlbW92ZVByb2ZpbGUocHJvZmlsZS51aWQpOworCisgICAgICAgIC8vIE5vIG90aGVyIGl0
ZW0gd2lsbCBiZSBzZWxlY3RlZCBpZiB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHByb2ZpbGVzLCBz
bworICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCB2aWV3IGdldHMgY2xlYXJlZCB3aGVuIHRoZSBs
YXN0IHByb2ZpbGUgaXMgcmVtb3ZlZC4KKyAgICAgICAgaWYgKCF0aGlzLl9wcm9maWxlcy5sZW5n
dGgpCisgICAgICAgICAgICB0aGlzLmNsb3NlVmlzaWJsZVZpZXcoKTsKICAgICB9LAogCiAgICAg
c2hvd1Byb2ZpbGU6IGZ1bmN0aW9uKHByb2ZpbGUpCkBAIC00NjYsNiArNDgzLDcgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgZm9yICh2YXIg
dHlwZUlkIGluIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXApCiAgICAgICAgICAgICAg
ICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcFt0eXBlSWRdLnJlbW92ZVN0eWxlQ2xh
c3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1z
Q29udGFpbmVyLnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICAgICAgdGhpcy5j
bGVhclJlc3VsdHNCdXR0b24uZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKICAg
ICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy52aXNpYmxlID0gZmFsc2U7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi50aXRsZSA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiUHJvZmlsaW5nIGRpc2FibGVkLiBDbGljayB0byBlbmFibGUu
Iik7CkBAIC00NzMsNiArNDkxLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90
eXBlID0gewogICAgICAgICAgICAgZm9yICh2YXIgdHlwZUlkIGluIHRoaXMuX3Byb2ZpbGVUeXBl
QnV0dG9uc0J5SWRNYXApCiAgICAgICAgICAgICAgICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25z
QnlJZE1hcFt0eXBlSWRdLmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhp
cy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLmFkZFN0eWxlQ2xhc3MoImhpZGRl
biIpOworICAgICAgICAgICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24uZWxlbWVudC5hZGRTdHls
ZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy52aXNp
YmxlID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0sCkBAIC01NDMsNiArNTYyLDExIEBAIFdlYklu
c3BlY3Rvci5Qcm9maWxlU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5zaG93UHJvZmlsZSh0aGlzLnByb2ZpbGUpOwog
ICAgIH0sCiAKKyAgICBvbmRlbGV0ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5wcm9maWxlcy5yZW1vdmVQcm9maWxlSGVhZGVyKHRoaXMucHJvZmlsZSk7
CisgICAgfSwKKwogICAgIGdldCBtYWluVGl0bGUoKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
X21haW5UaXRsZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZVBhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwu
anMKaW5kZXggYmIxOWIzNi4uMTI0NGNjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTE0OCw3ICsxNDgsNyBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBnZXQgc3RhdHVzQmFySXRlbXMoKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIFt0aGlzLnRvZ2dsZUZpbHRlckJ1dHRvbi5lbGVtZW50LCB0aGlz
LnRvZ2dsZVRpbWVsaW5lQnV0dG9uLmVsZW1lbnQsIHRoaXMuY2xlYXJCdXR0b24uZWxlbWVudCwg
dGhpcy5fb3ZlcnZpZXdQYW5lLnN0YXR1c0JhckZpbHRlcnNdOworICAgICAgICByZXR1cm4gW3Ro
aXMudG9nZ2xlRmlsdGVyQnV0dG9uLmVsZW1lbnQsIHRoaXMuY2xlYXJCdXR0b24uZWxlbWVudCwg
dGhpcy50b2dnbGVUaW1lbGluZUJ1dHRvbi5lbGVtZW50LCB0aGlzLl9vdmVydmlld1BhbmUuc3Rh
dHVzQmFyRmlsdGVyc107CiAgICAgfSwKIAogICAgIGdldCBjYXRlZ29yaWVzKCkKQEAgLTIwNCw3
ICsyMDQsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0Jh
ckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY29yZCIpLCAicmVjb3JkLXByb2ZpbGUt
c3RhdHVzLWJhci1pdGVtIik7CiAgICAgICAgIHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0b24uYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVUaW1lbGluZUJ1dHRvbkNsaWNrZWQu
YmluZCh0aGlzKSwgZmFsc2UpOwogCi0gICAgICAgIHRoaXMuY2xlYXJCdXR0b24gPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIiks
ICJ0aW1lbGluZS1jbGVhci1zdGF0dXMtYmFyLWl0ZW0iKTsKKyAgICAgICAgdGhpcy5jbGVhckJ1
dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQ2xlYXIiKSwgImNsZWFyLXN0YXR1cy1iYXItaXRlbSIpOwogICAgICAgICB0aGlzLmNs
ZWFyQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fY2xlYXJQYW5lbC5iaW5k
KHRoaXMpLCBmYWxzZSk7CiAKICAgICAgICAgdGhpcy50b2dnbGVGaWx0ZXJCdXR0b24gPSBuZXcg
V2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbih0aGlzLl9oaWRlU2hvcnRSZWNvcmRzVGl0bGVU
ZXh0LCAidGltZWxpbmUtZmlsdGVyLXN0YXR1cy1iYXItaXRlbSIpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0cy5jc3MgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvYXVkaXRzLmNzcwppbmRleCBhZDEyZGIzLi5kMzZlZmM2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvYXVkaXRzLmNzcworKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvYXVkaXRzLmNzcwpAQCAtNDYsMTAgKzQ2LDYgQEAKICAgICBvdmVyZmxv
dzogYXV0bzsKIH0KIAotYnV0dG9uLmNsZWFyLWF1ZGl0LXJlc3VsdHMtc3RhdHVzLWJhci1pdGVt
IC5nbHlwaCB7Ci0gICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoSW1hZ2VzL2NsZWFyQ29uc29s
ZUJ1dHRvbkdseXBoLnBuZyk7Ci19Ci0KIC5hdWRpdC1sYXVuY2hlci12aWV3IHsKICAgICB6LWlu
ZGV4OiAxMDAwOwogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5jc3MKaW5kZXggMjc2OTJhZi4uZWYzNGYyYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKQEAgLTQyMCw3ICs0MjAsNyBAQCBib2R5
LnBvcnQtcXQgI2RvY2stc3RhdHVzLWJhci1pdGVtIHsKICAgICAtd2Via2l0LW1hc2staW1hZ2U6
IHVybChJbWFnZXMvY29uc29sZUJ1dHRvbkdseXBoLnBuZyk7CiB9CiAKLSNjbGVhci1jb25zb2xl
LXN0YXR1cy1iYXItaXRlbSAuZ2x5cGggeworLmNsZWFyLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGgg
ewogICAgIC13ZWJraXQtbWFzay1pbWFnZTogdXJsKEltYWdlcy9jbGVhckNvbnNvbGVCdXR0b25H
bHlwaC5wbmcpOwogfQogCkBAIC00MjgsMTAgKzQyOCw2IEBAIGJvZHkucG9ydC1xdCAjZG9jay1z
dGF0dXMtYmFyLWl0ZW0gewogICAgIC13ZWJraXQtbWFzay1pbWFnZTogdXJsKEltYWdlcy9jb25z
b2xlQnV0dG9uR2x5cGgucG5nKTsgLyogVE9ETzogTmVlZHMgSW1hZ2UgZm9yIENoYW5nZXMgVG9n
Z2xlIEJ1dHRvbiAqLwogfQogCi0jY2xlYXItY2hhbmdlcy1zdGF0dXMtYmFyLWl0ZW0gLmdseXBo
IHsKLSAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChJbWFnZXMvY2xlYXJDb25zb2xlQnV0dG9u
R2x5cGgucG5nKTsKLX0KLQogI2NvdW50ZXJzIHsKICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAg
ICAgcmlnaHQ6IDE2cHg7CkBAIC0zNDMxLDEwICszNDI3LDYgQEAgYm9keS5pbmFjdGl2ZSAuc2lk
ZWJhci10cmVlLWl0ZW0uc2VsZWN0ZWQgLmJ1YmJsZS5zZWFyY2gtbWF0Y2hlcyB7CiAgICAgb3Zl
cmZsb3cteDogaGlkZGVuOwogfQogCi0udGltZWxpbmUtY2xlYXItc3RhdHVzLWJhci1pdGVtIC5n
bHlwaCB7Ci0gICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoSW1hZ2VzL2NsZWFyQ29uc29sZUJ1
dHRvbkdseXBoLnBuZyk7Ci19Ci0KIC50aW1lbGluZS1jYXRlZ29yeS1zdGF0dXNiYXItaXRlbSB7
CiAgICAgaGVpZ2h0OiAyNHB4OwogICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCmluZGV4IDQ2MTBjYTUuLjE0MDM2NjUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAgLTE0MSw3ICsx
NDEsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICAgIDwvZGl2PgogICAgIDxkaXYgaWQ9ImRyYXdlciI+CiAgICAg
ICAgIDxkaXYgaWQ9ImNvbnNvbGUtdmlldyI+PGRpdiBpZD0iY29uc29sZS1tZXNzYWdlcyIgY2xh
c3M9Im1vbm9zcGFjZSI+PGRpdiBpZD0iY29uc29sZS1wcm9tcHQiIHNwZWxsY2hlY2s9ImZhbHNl
Ij48YnI+PC9kaXY+PC9kaXY+PC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImRyYXdlci1zdGF0dXMt
YmFyIiBjbGFzcz0ic3RhdHVzLWJhciI+PGRpdiBpZD0ib3RoZXItZHJhd2VyLXN0YXR1cy1iYXIt
aXRlbXMiPjxidXR0b24gaWQ9ImNsZWFyLWNvbnNvbGUtc3RhdHVzLWJhci1pdGVtIiBjbGFzcz0i
c3RhdHVzLWJhci1pdGVtIj48ZGl2IGNsYXNzPSJnbHlwaCI+PC9kaXY+PGRpdiBjbGFzcz0iZ2x5
cGggc2hhZG93Ij48L2Rpdj48L2J1dHRvbj48ZGl2IGlkPSJjb25zb2xlLWZpbHRlciIgY2xhc3M9
InNjb3BlLWJhciBzdGF0dXMtYmFyLWl0ZW0iPjwvZGl2PjwvZGl2PjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJkcmF3ZXItc3RhdHVzLWJhciIgY2xhc3M9InN0YXR1cy1iYXIiPjxkaXYgaWQ9Im90
aGVyLWRyYXdlci1zdGF0dXMtYmFyLWl0ZW1zIj48YnV0dG9uIGlkPSJjbGVhci1jb25zb2xlLXN0
YXR1cy1iYXItaXRlbSIgY2xhc3M9InN0YXR1cy1iYXItaXRlbSBjbGVhci1zdGF0dXMtYmFyLWl0
ZW0iPjxkaXYgY2xhc3M9ImdseXBoIj48L2Rpdj48ZGl2IGNsYXNzPSJnbHlwaCBzaGFkb3ciPjwv
ZGl2PjwvYnV0dG9uPjxkaXYgaWQ9ImNvbnNvbGUtZmlsdGVyIiBjbGFzcz0ic2NvcGUtYmFyIHN0
YXR1cy1iYXItaXRlbSI+PC9kaXY+PC9kaXY+PC9kaXY+CiAgICAgPC9kaXY+CiA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxp
bmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMKaW5kZXgg
N2Q1ODk1NC4uZDJiZGY3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L3RyZWVvdXRsaW5lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0
bGluZS5qcwpAQCAtMzg5LDYgKzM4OSwxMCBAQCBUcmVlT3V0bGluZS5wcm90b3R5cGUuX3RyZWVL
ZXlEb3duID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0
ZWRUcmVlRWxlbWVudC5leHBhbmQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgIH0g
ZWxzZSBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlUrMDAwOCIgfHwgZXZlbnQua2V5SWRl
bnRpZmllciA9PT0gIlUrMDA3RiIpIHsKKyAgICAgICAgLy8gRGVsZXRlCisgICAgICAgIGlmICh0
aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQub25kZWxldGUpCisgICAgICAgICAgICB0aGlzLnNlbGVj
dGVkVHJlZUVsZW1lbnQub25kZWxldGUoKTsKICAgICB9CiAKICAgICBpZiAobmV4dFNlbGVjdGVk
RWxlbWVudCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57416</attachid>
            <date>2010-05-29 15:34:43 -0700</date>
            <delta_ts>2010-05-29 15:34:43 -0700</delta_ts>
            <desc>Finalized (hopefully) patch to add the ability to clean up the profiles.</desc>
            <filename>addAbilityToClearProfiles2.patch</filename>
            <type>text/plain</type>
            <size>22601</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDQyNDcxYy4uYjlkMTY1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAxMC0wNS0yOSAgSmVzc2llIEJlcmxp
biAgPGpiZXJsaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
OTIyNAorICAgICAgICBCdWcgMzkyMjQgLSBXZWIgSW5zcGVjdG9yOiBUaGVyZSBzaG91bGQgYmUg
YSB3YXkgdG8gY2xlYW4gdXAgcHJvZmlsZXMKKworICAgICAgICBBZGRzIGEgYnV0dG9uIHRvIGNs
ZWFyIHRoZSBwcm9maWxlcyBmcm9tIHRoZSBwcm9maWxlcyBwYW5lbCBsaWtlIHRoYXQKKyAgICAg
ICAgdXNlZCBmb3IgdGhlIGNvbnNvbGUsIHRoZSBhdWRpdHMgcGFuZWwsIGFuZCB0aGUgdGltZWxp
bmUgcGFuZWwuCisgICAgICAgIENvbnNvbGlkYXRlcyB0aGUgY3NzIHJ1bGVzLCBzaW5jZSB0aGV5
IGFsbCB1c2UgdGhlIHNhbWUgaW1hZ2UuCisgICAgICAgIEFsc28gYWxsb3dzIGZvciBpbmRpdmlk
dWFsIHByb2ZpbGVzIHRvIGJlIGRlbGV0ZWQgdmlhIHRoZSBrZXlib2FyZAorICAgICAgICAoVSsw
MDA4IG9yIFUrMDA3RikgYW5kIHVzZXMgdGhpcyBuZXcgc2NoZW1hIGZvciB0aGUgRWxlbWVudHMg
VHJlZS4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKyAg
ICAgICAgQWRkIHRvb2x0aXAgdGV4dCBmb3IgdGhlIGJ1dHRvbiB0byBjbGVhciB0aGUgcHJvZmls
ZXMgcGFuZS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbDoKKyAg
ICAgICAgQWRkIGFiaWxpdHkgdG8gcmVtb3ZlIHRoZSBwcm9maWxlcyBmcm9tIHRoZSBiYWNrZW5k
IHdoZW4gdGhleSBhcmUKKyAgICAgICAgZGVsZXRlZCBvciBjbGVhcmVkIGluIHRoZSBmcm9udGVu
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kOjpyZW1vdmVQcm9maWxlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckJhY2tlbmQ6OmNsZWFyUHJvZmlsZXMpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JCYWNrZW5kLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVtb3Zl
UHJvZmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjbGVhclBy
b2ZpbGVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5BdWRpdHNQYW5lbCk6CisgICAgICAgIFVzZSB0aGUgJ2NsZWFyLXN0YXR1cy1i
YXItaXRlbScgY2xhc3MuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DaGFuZ2VzVmll
dy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DaGFuZ2VzVmlldyk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTdGF0dXNiYXJCdXR0b25zKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2F1ZGl0cy5jc3M6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgorICAgICAgICAoLmNsZWFyLXN0YXR1cy1iYXItaXRl
bSAuZ2x5cGgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6
CisgICAgICAgIFJlcGxhY2UgdGhlIGtleURvd24gaGFuZGxlciBvbiB0aGUgT3V0bGluZSB3aXRo
IHNwZWNpZmljIG1ldGhvZHMgdG8KKyAgICAgICAgaGFuZGxlIGRlbGV0ZSBhbmQgZW50ZXIgb24g
dGhlIFRyZWVFbGVtZW50cy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRs
aW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlw
ZS5nZXQgZWRpdGluZyk6CisgICAgICAgIFJldHVybiB3aGV0aGVyIG9yIG5vdCBhbiBlbGVtZW50
IGluIHRoZSB0cmVlIGlzIGN1cnJlbnRseSBiZWluZyBlZGl0ZWQuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUub25kZWxldGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uZW50ZXIpOgorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5QYW5lbC5wcm90b3R5cGUuY3JlYXRlU2lkZWJhcik6CisgICAgICAgIE1ha2UgdGhlIFRy
ZWVPdXRsaW5lIGZvciBhIFBhbmVsJ3Mgc2lkZWJhciBhd2FyZSBvZiBpdHMgZW5jbG9zaW5nIFBh
bmVsLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwpOgorICAgICAgICBBZGQgdGhlIGNs
ZWFyIGJ1dHRvbi4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZS5nZXQgc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwucHJvdG90eXBlLl9jbGVhclByb2ZpbGVzKToKKyAgICAgICAgUmVtb3ZlIHRoZSBwcm9maWxl
cyBmcm9tIHRoZSBiYWNrZW5kLCB0aGUgcmVzZXQgdGhlIGZyb250ZW5kIGludGVyZmFjZS4KKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5yZW1vdmVQcm9maWxl
SGVhZGVyKToKKyAgICAgICAgUmVtb3ZlIHRoZSBwcm9maWxlIGZyb20gYm90aCB0aGUgZnJvbnRl
bmQgYW5kIHRoZSBiYWNrZW5kLCBhbmQgY2xlYXIgdGhlCisgICAgICAgIHZpZXcgd2hlbiB0aGUg
bGFzdCBwcm9maWxlIGlzIHJlbW92ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQ
YW5lbC5wcm90b3R5cGUuX3VwZGF0ZUludGVyZmFjZSk6CisgICAgICAgIEhpZGUgdGhlIGNsZWFy
IGJ1dHRvbiB3aGVuIHByb2ZpbGluZyBpcyBkaXNhYmxlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Qcm9maWxlU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisgICAgICAg
IFJlcGxhY2UgYWNjZXNzIHRvIGdsb2JhbCB2YXJpYWJsZSB3aXRoIHJlZmVyZW5jZSB0byB0aGUg
UGFuZWwgaGVsZCBieSB0aGUKKyAgICAgICAgVHJlZU91dGxpbmUuCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGUub25kZWxldGUpOgorICAg
ICAgICBSZW1vdmUgdGhlIHByb2ZpbGUgY29ycmVzcG9uZGluZyB0aGUgdHJlZSBlbGVtZW50IHdo
ZW4gdGhlIHVzZXIgZGVsZXRlcworICAgICAgICB0aGF0IHRyZWUgZWxlbWVudC4KKworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanM6CisgICAgICAgIChUcmVlT3V0
bGluZS5wcm90b3R5cGUuX3RyZWVLZXlEb3duKToKKyAgICAgICAgQWxsb3cgdGhlIHNlbGVjdGVk
IHRyZWUgZWxlbWVudCB0byBoYW5kbGUgdGhlIHVzZXIgcHJlc3NpbmcgYSBkZWxldGUKKyAgICAg
ICAga2V5IG9yIGVudGVyIGtleS4KKwogMjAxMC0wNS0yNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxk
bWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMg
Yi9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCAwMmFkZTAx
MDMyNjkwNWExNDQyOWZjYmJhZWYyY2EzZGU4NzQxNmMyLi5lNTliNjZkNTA4MGRmNTdhMTFmOTYx
ZjYwYzMyMmM2MTExYzljYzlmIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDc2CnpjbWFG
MGl8Tmc3clZYcjA7c0ZleTM8P1lkM2BHcTIzfjNDUjNeQCNgNDg7dDNsTGVIZDF1XjYlYCZBb0dV
YVFEOApSU3pTcUphKDVUa1c/M2NRWTUpS2A2ZSQxegoKZGVsdGEgMjIKZWNtYUV9bzlXZHFyVlhy
MGxoLVFvUDNHPDkrQnsjJHc7QkwpS000b2AKCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JCYWNrZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmQuY3BwCmluZGV4IGFlZDhmMmIuLjAxOTY0MzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckJhY2tlbmQuY3BwCkBAIC0yNTQsNiArMjU0LDE4IEBAIHZvaWQgSW5zcGVjdG9yQmFja2VuZDo6
Z2V0UHJvZmlsZShsb25nIGNhbGxJZCwgdW5zaWduZWQgdWlkKQogICAgIGlmIChtX2luc3BlY3Rv
ckNvbnRyb2xsZXIpCiAgICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+Z2V0UHJvZmlsZShj
YWxsSWQsIHVpZCk7CiB9CisKK3ZvaWQgSW5zcGVjdG9yQmFja2VuZDo6cmVtb3ZlUHJvZmlsZSh1
bnNpZ25lZCB1aWQpCit7CisgICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKKyAgICAgICAg
bV9pbnNwZWN0b3JDb250cm9sbGVyLT5yZW1vdmVQcm9maWxlKHVpZCk7Cit9CisKK3ZvaWQgSW5z
cGVjdG9yQmFja2VuZDo6Y2xlYXJQcm9maWxlcygpCit7CisgICAgaWYgKG1faW5zcGVjdG9yQ29u
dHJvbGxlcikKKyAgICAgICAgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5jbGVhclByb2ZpbGVzKCk7
Cit9CiAjZW5kaWYKIAogdm9pZCBJbnNwZWN0b3JCYWNrZW5kOjpzZXRJbmplY3RlZFNjcmlwdFNv
dXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckJhY2tlbmQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQu
aAppbmRleCA3MzMxODQzLi44N2JmMmUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JCYWNrZW5kLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZC5oCkBAIC05OCw2ICs5OCw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0UHJvZmlsZUhlYWRl
cnMobG9uZyBjYWxsSWQpOwogICAgIHZvaWQgZ2V0UHJvZmlsZShsb25nIGNhbGxJZCwgdW5zaWdu
ZWQgdWlkKTsKKworICAgIHZvaWQgcmVtb3ZlUHJvZmlsZSh1bnNpZ25lZCB1aWQpOworICAgIHZv
aWQgY2xlYXJQcm9maWxlcygpOwogI2VuZGlmCiAKICAgICB2b2lkIHNldEluamVjdGVkU2NyaXB0
U291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckJhY2tlbmQuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZC5pZGwKaW5kZXggY2YwZmUwMS4uNDhlNjYzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQmFja2VuZC5pZGwKQEAgLTczLDYgKzczLDkgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAg
IHZvaWQgZ2V0UHJvZmlsZUhlYWRlcnMoaW4gbG9uZyBjYWxsSWQpOwogICAgICAgICB2b2lkIGdl
dFByb2ZpbGUoaW4gbG9uZyBjYWxsSWQsIGluIHVuc2lnbmVkIGxvbmcgdWlkKTsKKworICAgICAg
ICB2b2lkIHJlbW92ZVByb2ZpbGUoaW4gdW5zaWduZWQgbG9uZyB1aWQpOworICAgICAgICB2b2lk
IGNsZWFyUHJvZmlsZXMoKTsKICNlbmRpZgogICAgICAgICB2b2lkIHNldEluamVjdGVkU2NyaXB0
U291cmNlKGluIERPTVN0cmluZyBzY3JpcHRTb3VyY2UpOwogICAgICAgICB2b2lkIGRpc3BhdGNo
T25JbmplY3RlZFNjcmlwdChpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBpbmplY3RlZFNjcmlwdElk
LCBpbiBET01TdHJpbmcgbWV0aG9kTmFtZSwgaW4gRE9NU3RyaW5nIGFyZ3VtZW50cywgaW4gYm9v
bGVhbiBhc3luYyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDk4ZmE1NTcuLmQ1MTMyYmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCkBAIC0xMzg1LDYgKzEzODUsMjUgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjphZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUoY29uc3QgU3RyaW5nJiB0aXRsZSwK
ICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0KIAor
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZW1vdmVQcm9maWxlKHVuc2lnbmVkIHVpZCkKK3sK
KyAgICBpZiAoIWVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcHJvZmls
ZXMuY29udGFpbnModWlkKSkKKyAgICAgICAgbV9wcm9maWxlcy5yZW1vdmUodWlkKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjbGVhclByb2ZpbGVzKCkKK3sKKyAgICBpZiAoIWVu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9maWxlcy5jbGVhcigpOworICAg
IG1fY3VycmVudFVzZXJJbml0aWF0ZWRQcm9maWxlTnVtYmVyID0gMTsKKyAgICBtX25leHRVc2Vy
SW5pdGlhdGVkUHJvZmlsZU51bWJlciA9IDE7Cit9CisKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6Z2V0UHJvZmlsZUhlYWRlcnMobG9uZyBjYWxsSWQpCiB7CiAgICAgaWYgKCFtX2Zyb250ZW5k
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGRlN2Y3YTUuLmEy
YzhhNzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTIyMiw2
ICsyMjIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQcm9maWxlKFBhc3NSZWZQdHI8U2NyaXB0
UHJvZmlsZT4sIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsK
ICAgICB2b2lkIGFkZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUoUGFzc1JlZlB0cjxT
Y3JpcHRQcm9maWxlPiwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwpOwogICAgIHZvaWQgYWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0
cmluZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
KTsKKyAgICB2b2lkIHJlbW92ZVByb2ZpbGUodW5zaWduZWQpOworICAgIHZvaWQgY2xlYXJQcm9m
aWxlcygpOwogCiAgICAgYm9vbCBpc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKCkgY29u
c3QgeyByZXR1cm4gbV9yZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZTsgfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRzUGFuZWwuanMKaW5kZXggYzMzMThjZS4uNDgxZGY4
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0c1BhbmVsLmpz
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5lbC5qcwpAQCAtNDks
NyArNDksNyBAQCBXZWJJbnNwZWN0b3IuQXVkaXRzUGFuZWwgPSBmdW5jdGlvbigpCiAKICAgICB0
aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiYXVkaXRzIik7CiAKLSAgICB0aGlzLmNsZWFyUmVz
dWx0c0J1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQ2xlYXIgYXVkaXQgcmVzdWx0cy4iKSwgImNsZWFyLWF1ZGl0LXJlc3VsdHMt
c3RhdHVzLWJhci1pdGVtIik7CisgICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24gPSBuZXcgV2Vi
SW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIGF1
ZGl0IHJlc3VsdHMuIiksICJjbGVhci1zdGF0dXMtYmFyLWl0ZW0iKTsKICAgICB0aGlzLmNsZWFy
UmVzdWx0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2NsZWFyQnV0dG9u
Q2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKICAgICB0aGlzLnZpZXdzQ29udGFpbmVyRWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NoYW5nZXNWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NoYW5nZXNWaWV3LmpzCmluZGV4IDgwMmZkYmEuLjVhYjY5NDIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DaGFuZ2VzVmlldy5qcworKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2hhbmdlc1ZpZXcuanMKQEAgLTM3LDcgKzM3LDcgQEAg
V2ViSW5zcGVjdG9yLkNoYW5nZXNWaWV3ID0gZnVuY3Rpb24oZHJhd2VyKQogICAgIHRoaXMuY2xl
YXJCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKICAgICB0aGlzLmNs
ZWFyQnV0dG9uLmlkID0gImNsZWFyLWNoYW5nZXMtc3RhdHVzLWJhci1pdGVtIjsKICAgICB0aGlz
LmNsZWFyQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBjaGFuZ2Vz
IGxvZy4iKTsKLSAgICB0aGlzLmNsZWFyQnV0dG9uLmNsYXNzTmFtZSA9ICJzdGF0dXMtYmFyLWl0
ZW0iOworICAgIHRoaXMuY2xlYXJCdXR0b24uY2xhc3NOYW1lID0gInN0YXR1cy1iYXItaXRlbSBj
bGVhci1zdGF0dXMtYmFyLWl0ZW0iOwogICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl9jbGVhckJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2Up
OwogCiAgICAgdGhpcy50b2dnbGVDaGFuZ2VzQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNoYW5nZXMtc3RhdHVzLWJhci1pdGVtIik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IDBlOTQzYzAuLmU4ZmVjYjAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRs
aW5lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRs
aW5lLmpzCkBAIC00Myw3ICs0Myw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5l
ID0gZnVuY3Rpb24oKSB7CiAgICAgdGhpcy5mb2N1c2VkRE9NTm9kZSA9IG51bGw7CiAKICAgICB0
aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9jb250ZXh0
TWVudUV2ZW50RmlyZWQuYmluZCh0aGlzKSwgdHJ1ZSk7Ci0gICAgdGhpcy5lbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9rZXlEb3duLmJpbmQodGhpcyksIHRydWUpOwog
fQogCiBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CkBAIC0x
MTcsNiArMTE2LDExIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICBnZXQgZWRpdGluZygpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fZWRpdGluZzsKKyAgICB9LAorCiAgICAgdXBkYXRlOiBmdW5jdGlv
bigpCiAgICAgewogICAgICAgICB2YXIgc2VsZWN0ZWROb2RlID0gdGhpcy5zZWxlY3RlZFRyZWVF
bGVtZW50ID8gdGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0IDogbnVs
bDsKQEAgLTIyNiw0MSArMjMwLDYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgICB9LAogCi0gICAgX2tl
eURvd246IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LnRhcmdldCAh
PT0gdGhpcy50cmVlT3V0bGluZS5lbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIHZhciBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQ7Ci0gICAg
ICAgIGlmICghc2VsZWN0ZWRFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IGlmIChldmVudC5rZXlDb2RlID09PSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlz
LkJhY2tzcGFjZS5jb2RlIHx8Ci0gICAgICAgICAgICAgICAgZXZlbnQua2V5Q29kZSA9PT0gV2Vi
SW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5EZWxldGUuY29kZSkgewotICAgICAgICAg
ICAgdmFyIHN0YXJ0VGFnVHJlZUVsZW1lbnQgPSB0aGlzLmZpbmRUcmVlRWxlbWVudChzZWxlY3Rl
ZEVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QpOwotICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxl
bWVudCAhPT0gc3RhcnRUYWdUcmVlRWxlbWVudCkKLSAgICAgICAgICAgICAgICBzZWxlY3RlZEVs
ZW1lbnQgPSBzdGFydFRhZ1RyZWVFbGVtZW50OwotICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50
LnJlbW92ZSgpOwotICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAg
ICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KLSAgICAgICAgLy8gT24gRW50ZXIgb3IgUmV0dXJuIHN0YXJ0IGVkaXRpbmcgdGhlIGZp
cnN0IGF0dHJpYnV0ZQotICAgICAgICAvLyBvciBjcmVhdGUgYSBuZXcgYXR0cmlidXRlIG9uIHRo
ZSBzZWxlY3RlZCBlbGVtZW50LgotICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkpIHsKLSAg
ICAgICAgICAgIGlmICh0aGlzLl9lZGl0aW5nKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50Ll9zdGFydEVkaXRpbmcoKTsKLQotICAgICAgICAg
ICAgLy8gcHJldmVudCBhIG5ld2xpbmUgZnJvbSBiZWluZyBpbW1lZGlhdGVseSBpbnNlcnRlZAot
ICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgIGV2ZW50LnN0
b3BQcm9wYWdhdGlvbigpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfSwK
LQogICAgIF9vbm1vdXNlZG93bjogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIg
ZWxlbWVudCA9IHRoaXMuX3RyZWVFbGVtZW50RnJvbUV2ZW50KGV2ZW50KTsKQEAgLTY4Niw2ICs2
NTUsMjYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnN1cHByZXNzUmV2ZWFsQW5kU2VsZWN0ID0gZmFsc2U7
CiAgICAgfSwKIAorICAgIG9uZGVsZXRlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIg
c3RhcnRUYWdUcmVlRWxlbWVudCA9IHRoaXMudHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KHRo
aXMucmVwcmVzZW50ZWRPYmplY3QpOworICAgICAgICBzdGFydFRhZ1RyZWVFbGVtZW50ID8gc3Rh
cnRUYWdUcmVlRWxlbWVudC5yZW1vdmUoKSA6IHRoaXMucmVtb3ZlKCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0sCisKKyAgICBvbmVudGVyOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICAvLyBPbiBFbnRlciBvciBSZXR1cm4gc3RhcnQgZWRpdGluZyB0aGUgZmlyc3QgYXR0cmlidXRl
CisgICAgICAgIC8vIG9yIGNyZWF0ZSBhIG5ldyBhdHRyaWJ1dGUgb24gdGhlIHNlbGVjdGVkIGVs
ZW1lbnQuCisgICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lLmVkaXRpbmcpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgdGhpcy5fc3RhcnRFZGl0aW5nKCk7CisKKyAgICAg
ICAgLy8gcHJldmVudCBhIG5ld2xpbmUgZnJvbSBiZWluZyBpbW1lZGlhdGVseSBpbnNlcnRlZAor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCiAgICAgc2VsZWN0T25Nb3VzZURvd246IGZ1
bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgVHJlZUVsZW1lbnQucHJvdG90eXBlLnNlbGVj
dE9uTW91c2VEb3duLmNhbGwodGhpcywgZXZlbnQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Bh
bmVsLmpzCmluZGV4IDY3NWU5NWYuLjlmZDBhNjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9QYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UGFuZWwuanMKQEAgLTMxNiw2ICszMTYsNyBAQCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLnNpZGViYXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2lkZWJh
clRyZWVFbGVtZW50KTsKIAogICAgICAgICB0aGlzLnNpZGViYXJUcmVlID0gbmV3IFRyZWVPdXRs
aW5lKHRoaXMuc2lkZWJhclRyZWVFbGVtZW50KTsKKyAgICAgICAgdGhpcy5zaWRlYmFyVHJlZS5w
YW5lbCA9IHRoaXM7CiAgICAgfSwKIAogICAgIF9zdGFydFNpZGViYXJEcmFnZ2luZzogZnVuY3Rp
b24oZXZlbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmls
ZXNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
CmluZGV4IGNjYTllMzMuLjE5ODBmYTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC0xMTMsNiArMTEzLDkgQEAgV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5lbmFibGVUb2dnbGVCdXR0b24gPSBuZXcg
V2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgImVuYWJsZS10b2dnbGUtc3RhdHVzLWJh
ci1pdGVtIik7CiAgICAgdGhpcy5lbmFibGVUb2dnbGVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl90b2dnbGVQcm9maWxpbmcuYmluZCh0aGlzKSwgZmFsc2UpOwogCisgICAg
dGhpcy5jbGVhclJlc3VsdHNCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRv
bihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIENQVSBwcm9maWxlcy4iKSwgImNsZWFyLXN0
YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuY2xlYXJSZXN1bHRzQnV0dG9uLmFkZEV2ZW50TGlz
dGVuZXIoImNsaWNrIiwgdGhpcy5fY2xlYXJQcm9maWxlcy5iaW5kKHRoaXMpLCBmYWxzZSk7CisK
ICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXND
b250YWluZXIuaWQgPSAicHJvZmlsZS12aWV3LXN0YXR1cy1iYXItaXRlbXMiOwogCkBAIC0xNTEs
NyArMTU0LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgICAgIGl0ZW1zLnB1c2goYnV0dG9uLmVsZW1lbnQpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9Ci0gICAgICAgIGl0ZW1zLnB1c2godGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0
ZW1zQ29udGFpbmVyKTsKKyAgICAgICAgaXRlbXMucHVzaCh0aGlzLmNsZWFyUmVzdWx0c0J1dHRv
bi5lbGVtZW50LCB0aGlzLnByb2ZpbGVWaWV3U3RhdHVzQmFySXRlbXNDb250YWluZXIpOwogICAg
ICAgICByZXR1cm4gaXRlbXM7CiAgICAgfSwKIApAQCAtMjE2LDYgKzIxOSwxMiBAQCBXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMud2VsY29tZVZp
ZXcuc2hvdygpOwogICAgIH0sCiAKKyAgICBfY2xlYXJQcm9maWxlczogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5jbGVhclByb2ZpbGVzKCk7CisgICAgICAgIHRo
aXMucmVzZXQoKTsKKyAgICB9LAorCiAgICAgcmVnaXN0ZXJQcm9maWxlVHlwZTogZnVuY3Rpb24o
cHJvZmlsZVR5cGUpCiAgICAgewogICAgICAgICB0aGlzLl9wcm9maWxlVHlwZXNCeUlkTWFwW3By
b2ZpbGVUeXBlLmlkXSA9IHByb2ZpbGVUeXBlOwpAQCAtMzM3LDYgKzM0NiwxNCBAQCBXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9w
cm9maWxlR3JvdXBzW3Byb2ZpbGVUaXRsZUtleV07CiAKICAgICAgICAgc2lkZWJhclBhcmVudC5y
ZW1vdmVDaGlsZChwcm9maWxlLl9wcm9maWxlc1RyZWVFbGVtZW50KTsKKworICAgICAgICBpZiAo
IXByb2ZpbGUuaXNUZW1wb3JhcnkpCisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbW92
ZVByb2ZpbGUocHJvZmlsZS51aWQpOworCisgICAgICAgIC8vIE5vIG90aGVyIGl0ZW0gd2lsbCBi
ZSBzZWxlY3RlZCBpZiB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHByb2ZpbGVzLCBzbworICAgICAg
ICAvLyBtYWtlIHN1cmUgdGhhdCB2aWV3IGdldHMgY2xlYXJlZCB3aGVuIHRoZSBsYXN0IHByb2Zp
bGUgaXMgcmVtb3ZlZC4KKyAgICAgICAgaWYgKCF0aGlzLl9wcm9maWxlcy5sZW5ndGgpCisgICAg
ICAgICAgICB0aGlzLmNsb3NlVmlzaWJsZVZpZXcoKTsKICAgICB9LAogCiAgICAgc2hvd1Byb2Zp
bGU6IGZ1bmN0aW9uKHByb2ZpbGUpCkBAIC00NjYsNiArNDgzLDcgQEAgV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgZm9yICh2YXIgdHlwZUlkIGlu
IHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5SWRNYXApCiAgICAgICAgICAgICAgICAgdGhpcy5f
cHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcFt0eXBlSWRdLnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRl
biIpOwogICAgICAgICAgICAgdGhpcy5wcm9maWxlVmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVy
LnJlbW92ZVN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAgICAgICAgICAgdGhpcy5jbGVhclJlc3Vs
dHNCdXR0b24uZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAg
IHRoaXMucGFuZWxFbmFibGVyVmlldy52aXNpYmxlID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUHJvZmlsaW5nIGRpc2FibGVkLiBDbGljayB0byBlbmFibGUuIik7CkBAIC00
NzMsNiArNDkxLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgZm9yICh2YXIgdHlwZUlkIGluIHRoaXMuX3Byb2ZpbGVUeXBlQnV0dG9uc0J5
SWRNYXApCiAgICAgICAgICAgICAgICAgdGhpcy5fcHJvZmlsZVR5cGVCdXR0b25zQnlJZE1hcFt0
eXBlSWRdLmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAgICAgdGhpcy5wcm9maWxl
Vmlld1N0YXR1c0Jhckl0ZW1zQ29udGFpbmVyLmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOworICAg
ICAgICAgICAgdGhpcy5jbGVhclJlc3VsdHNCdXR0b24uZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJo
aWRkZW4iKTsKICAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmlldy52aXNpYmxlID0gdHJ1
ZTsKICAgICAgICAgfQogICAgIH0sCkBAIC01NDAsNyArNTU5LDEzIEBAIFdlYkluc3BlY3Rvci5Q
cm9maWxlU2lkZWJhclRyZWVFbGVtZW50ID0gZnVuY3Rpb24ocHJvZmlsZSkKIFdlYkluc3BlY3Rv
ci5Qcm9maWxlU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICBvbnNlbGVjdDog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5wcm9maWxlcy5z
aG93UHJvZmlsZSh0aGlzLnByb2ZpbGUpOworICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnBhbmVs
LnNob3dQcm9maWxlKHRoaXMucHJvZmlsZSk7CisgICAgfSwKKworICAgIG9uZGVsZXRlOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnBhbmVsLnJlbW92ZVByb2Zp
bGVIZWFkZXIodGhpcy5wcm9maWxlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAog
ICAgIGdldCBtYWluVGl0bGUoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qcwppbmRleCBiYjE5YjM2Li4yZGRjNjE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMjA0LDcgKzIwNCw3IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy50b2dnbGVUaW1l
bGluZUJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUmVjb3JkIiksICJyZWNvcmQtcHJvZmlsZS1zdGF0dXMtYmFyLWl0ZW0iKTsK
ICAgICAgICAgdGhpcy50b2dnbGVUaW1lbGluZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuX3RvZ2dsZVRpbWVsaW5lQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7
CiAKLSAgICAgICAgdGhpcy5jbGVhckJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFy
QnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xlYXIiKSwgInRpbWVsaW5lLWNsZWFyLXN0
YXR1cy1iYXItaXRlbSIpOworICAgICAgICB0aGlzLmNsZWFyQnV0dG9uID0gbmV3IFdlYkluc3Bl
Y3Rvci5TdGF0dXNCYXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciIpLCAiY2xl
YXItc3RhdHVzLWJhci1pdGVtIik7CiAgICAgICAgIHRoaXMuY2xlYXJCdXR0b24uYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzLl9jbGVhclBhbmVsLmJpbmQodGhpcyksIGZhbHNlKTsKIAog
ICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlckJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVz
QmFyQnV0dG9uKHRoaXMuX2hpZGVTaG9ydFJlY29yZHNUaXRsZVRleHQsICJ0aW1lbGluZS1maWx0
ZXItc3RhdHVzLWJhci1pdGVtIik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvYXVkaXRzLmNzcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9hdWRpdHMuY3Nz
CmluZGV4IGFkMTJkYjMuLmQzNmVmYzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9hdWRpdHMuY3NzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9hdWRp
dHMuY3NzCkBAIC00NiwxMCArNDYsNiBAQAogICAgIG92ZXJmbG93OiBhdXRvOwogfQogCi1idXR0
b24uY2xlYXItYXVkaXQtcmVzdWx0cy1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoIHsKLSAgICAtd2Vi
a2l0LW1hc2staW1hZ2U6IHVybChJbWFnZXMvY2xlYXJDb25zb2xlQnV0dG9uR2x5cGgucG5nKTsK
LX0KLQogLmF1ZGl0LWxhdW5jaGVyLXZpZXcgewogICAgIHotaW5kZXg6IDEwMDA7CiAgICAgcG9z
aXRpb246IGFic29sdXRlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5jc3MgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNz
cwppbmRleCAyNzY5MmFmLi5lZjM0ZjJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmNzcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmNzcwpAQCAtNDIwLDcgKzQyMCw3IEBAIGJvZHkucG9ydC1xdCAjZG9jay1zdGF0
dXMtYmFyLWl0ZW0gewogICAgIC13ZWJraXQtbWFzay1pbWFnZTogdXJsKEltYWdlcy9jb25zb2xl
QnV0dG9uR2x5cGgucG5nKTsKIH0KIAotI2NsZWFyLWNvbnNvbGUtc3RhdHVzLWJhci1pdGVtIC5n
bHlwaCB7CisuY2xlYXItc3RhdHVzLWJhci1pdGVtIC5nbHlwaCB7CiAgICAgLXdlYmtpdC1tYXNr
LWltYWdlOiB1cmwoSW1hZ2VzL2NsZWFyQ29uc29sZUJ1dHRvbkdseXBoLnBuZyk7CiB9CiAKQEAg
LTQyOCwxMCArNDI4LDYgQEAgYm9keS5wb3J0LXF0ICNkb2NrLXN0YXR1cy1iYXItaXRlbSB7CiAg
ICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoSW1hZ2VzL2NvbnNvbGVCdXR0b25HbHlwaC5wbmcp
OyAvKiBUT0RPOiBOZWVkcyBJbWFnZSBmb3IgQ2hhbmdlcyBUb2dnbGUgQnV0dG9uICovCiB9CiAK
LSNjbGVhci1jaGFuZ2VzLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGggewotICAgIC13ZWJraXQtbWFz
ay1pbWFnZTogdXJsKEltYWdlcy9jbGVhckNvbnNvbGVCdXR0b25HbHlwaC5wbmcpOwotfQotCiAj
Y291bnRlcnMgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICByaWdodDogMTZweDsKQEAg
LTM0MzEsMTAgKzM0MjcsNiBAQCBib2R5LmluYWN0aXZlIC5zaWRlYmFyLXRyZWUtaXRlbS5zZWxl
Y3RlZCAuYnViYmxlLnNlYXJjaC1tYXRjaGVzIHsKICAgICBvdmVyZmxvdy14OiBoaWRkZW47CiB9
CiAKLS50aW1lbGluZS1jbGVhci1zdGF0dXMtYmFyLWl0ZW0gLmdseXBoIHsKLSAgICAtd2Via2l0
LW1hc2staW1hZ2U6IHVybChJbWFnZXMvY2xlYXJDb25zb2xlQnV0dG9uR2x5cGgucG5nKTsKLX0K
LQogLnRpbWVsaW5lLWNhdGVnb3J5LXN0YXR1c2Jhci1pdGVtIHsKICAgICBoZWlnaHQ6IDI0cHg7
CiAgICAgbGluZS1oZWlnaHQ6IDI0cHg7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmh0bWwKaW5kZXggNDYxMGNhNS4uMTQwMzY2NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMTQxLDcgKzE0MSw3IEBAIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
ICAgPC9kaXY+CiAgICAgPGRpdiBpZD0iZHJhd2VyIj4KICAgICAgICAgPGRpdiBpZD0iY29uc29s
ZS12aWV3Ij48ZGl2IGlkPSJjb25zb2xlLW1lc3NhZ2VzIiBjbGFzcz0ibW9ub3NwYWNlIj48ZGl2
IGlkPSJjb25zb2xlLXByb21wdCIgc3BlbGxjaGVjaz0iZmFsc2UiPjxicj48L2Rpdj48L2Rpdj48
L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0iZHJhd2VyLXN0YXR1cy1iYXIiIGNsYXNzPSJzdGF0dXMt
YmFyIj48ZGl2IGlkPSJvdGhlci1kcmF3ZXItc3RhdHVzLWJhci1pdGVtcyI+PGJ1dHRvbiBpZD0i
Y2xlYXItY29uc29sZS1zdGF0dXMtYmFyLWl0ZW0iIGNsYXNzPSJzdGF0dXMtYmFyLWl0ZW0iPjxk
aXYgY2xhc3M9ImdseXBoIj48L2Rpdj48ZGl2IGNsYXNzPSJnbHlwaCBzaGFkb3ciPjwvZGl2Pjwv
YnV0dG9uPjxkaXYgaWQ9ImNvbnNvbGUtZmlsdGVyIiBjbGFzcz0ic2NvcGUtYmFyIHN0YXR1cy1i
YXItaXRlbSI+PC9kaXY+PC9kaXY+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImRyYXdlci1zdGF0
dXMtYmFyIiBjbGFzcz0ic3RhdHVzLWJhciI+PGRpdiBpZD0ib3RoZXItZHJhd2VyLXN0YXR1cy1i
YXItaXRlbXMiPjxidXR0b24gaWQ9ImNsZWFyLWNvbnNvbGUtc3RhdHVzLWJhci1pdGVtIiBjbGFz
cz0ic3RhdHVzLWJhci1pdGVtIGNsZWFyLXN0YXR1cy1iYXItaXRlbSI+PGRpdiBjbGFzcz0iZ2x5
cGgiPjwvZGl2PjxkaXYgY2xhc3M9ImdseXBoIHNoYWRvdyI+PC9kaXY+PC9idXR0b24+PGRpdiBp
ZD0iY29uc29sZS1maWx0ZXIiIGNsYXNzPSJzY29wZS1iYXIgc3RhdHVzLWJhci1pdGVtIj48L2Rp
dj48L2Rpdj48L2Rpdj4KICAgICA8L2Rpdj4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcwppbmRleCA3ZDU4OTU0Li4yOTdiYmFiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzCkBAIC0zODksNiAr
Mzg5LDEyIEBAIFRyZWVPdXRsaW5lLnByb3RvdHlwZS5fdHJlZUtleURvd24gPSBmdW5jdGlvbihl
dmVudCkKICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50LmV4cGFu
ZCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CisgICAgfSBlbHNlIGlmIChldmVudC5rZXlD
b2RlID09PSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLkJhY2tzcGFjZS5jb2Rl
IHx8IGV2ZW50LmtleUNvZGUgPT09IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMu
RGVsZXRlLmNvZGUpIHsKKyAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUcmVlRWxlbWVudC5vbmRl
bGV0ZSkKKyAgICAgICAgICAgIGhhbmRsZWQgPSB0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQub25k
ZWxldGUoKTsKKyAgICB9IGVsc2UgaWYgKGlzRW50ZXJLZXkoZXZlbnQpKSB7CisgICAgICAgIGlm
ICh0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQub25lbnRlcikKKyAgICAgICAgICAgIGhhbmRsZWQg
PSB0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQub25lbnRlcigpOwogICAgIH0KIAogICAgIGlmIChu
ZXh0U2VsZWN0ZWRFbGVtZW50KSB7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyMGRkNDcxLi42MTgyYjcwIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wNS0yOSAgSmVzc2llIEJlcmxpbiAg
PGpiZXJsaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFu
LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTIy
NAorICAgICAgICBCdWcgMzkyMjQgLSBXZWIgSW5zcGVjdG9yOiBUaGVyZSBzaG91bGQgYmUgYSB3
YXkgdG8gY2xlYW4gdXAgcHJvZmlsZXMKKworICAgICAgICAqIHNyYy9qcy9JbnNwZWN0b3JDb250
cm9sbGVySW1wbC5qczoKKyAgICAgICAgKGRldnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsKToK
KwogMjAxMC0wNS0yNyAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pz
L0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzCmluZGV4IDU4YzZkMGMuLjRmMmJhZTMgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5qcwpA
QCAtNTYsNiArNTYsOCBAQCBkZXZ0b29scy5JbnNwZWN0b3JCYWNrZW5kSW1wbCA9IGZ1bmN0aW9u
KCkKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJnZXRFdmVu
dExpc3RlbmVyc0Zvck5vZGUiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVy
RGVsZWdhdGVfKCJnZXRQcm9maWxlIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJv
bGxlckRlbGVnYXRlXygiZ2V0UHJvZmlsZUhlYWRlcnMiKTsKKyAgICB0aGlzLmluc3RhbGxJbnNw
ZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJyZW1vdmVQcm9maWxlIik7CisgICAgdGhpcy5pbnN0
YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiY2xlYXJQcm9maWxlcyIpOwogICAgIHRo
aXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldFJlc291cmNlQ29udGVu
dCIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImhpZ2hs
aWdodERPTU5vZGUiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdh
dGVfKCJoaWRlRE9NTm9kZUhpZ2hsaWdodCIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>