<?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>76912</bug_id>
          
          <creation_ts>2012-01-24 07:12:09 -0800</creation_ts>
          <short_desc>Web Inspector: TabbedEditorContainer should save open tabs.</short_desc>
          <delta_ts>2012-01-30 05:10:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>77098</dependson>
          <blocked>75093</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</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>541308</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-24 07:12:09 -0800</bug_when>
    <thetext>TabbedEditorContainer should save open tabs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541312</commentid>
    <comment_count>1</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-24 07:19:25 -0800</bug_when>
    <thetext>I suggest following approach:

 - We store (in settings)
   - last opened script url
   - the list of urls that were shown recently
 - All these settings are updated after each user initiated action that affects editor container.
 - when the list of recent urls is updated we save all currently open tabs sorted by the time they were last shown. Then we make sure the list length does not exceed some fixed size (30).
 - When scripts are loaded in the scripts panel we show tabs for all recent urls unless user already performed some action.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541345</commentid>
    <comment_count>2</comment_count>
      <attachid>123739</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-24 08:22:55 -0800</bug_when>
    <thetext>Created attachment 123739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542079</commentid>
    <comment_count>3</comment_count>
      <attachid>123739</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-25 01:41:25 -0800</bug_when>
    <thetext>Comment on attachment 123739
Patch

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

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:36
&gt; +    this._lastViewedFileSetting = WebInspector.settings.createSetting(&quot;lastViewedFile&quot;, &quot;&quot;);

Please use the old setting name here for the smooth transition.

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:269
&gt; +        var previouslyViewedFiles = this._previouslyViewedFilesSetting.get();

Please cover this code with tests

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:1201
&gt; +    addFirstSourceFrame: function(title, sourceFrame, tooltip) { },

This editor container API seems too verbose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544056</commentid>
    <comment_count>4</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-27 07:19:38 -0800</bug_when>
    <thetext>&gt; Please use the old setting name here for the smooth transition.
Left old setting untouched, just moved its handling to SingleFileEditorContainer

&gt; &gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:269
&gt; &gt; +        var previouslyViewedFiles = this._previouslyViewedFilesSetting.get();
&gt; 
&gt; Please cover this code with tests
Extracted History object and covered with tests.

&gt; &gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:1201
&gt; &gt; +    addFirstSourceFrame: function(title, sourceFrame, tooltip) { },
&gt; 
&gt; This editor container API seems too verbose.
Only uiSourceCodeAdded() method is now used on EditorContainer for history handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544058</commentid>
    <comment_count>5</comment_count>
      <attachid>124313</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-27 07:22:07 -0800</bug_when>
    <thetext>Created attachment 124313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545029</commentid>
    <comment_count>6</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-01-30 05:10:49 -0800</bug_when>
    <thetext>Committed r106238: &lt;http://trac.webkit.org/changeset/106238&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123739</attachid>
            <date>2012-01-24 08:22:55 -0800</date>
            <delta_ts>2012-01-27 07:21:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76912-20120124202253.patch</filename>
            <type>text/plain</type>
            <size>26377</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJmZTVmMTc1ZTcwMDBh
MGE5N2YyM2I4NGYyYTgwYWQxMmJlZjUyNS4uM2M4OWUyMTAzM2EwN2JhMzQzYjEyZTUyNWNkNjdi
MzM2NTI4NGU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAxLTI0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFRhYmJlZEVkaXRvckNvbnRhaW5lciBzaG91bGQgc2F2ZSBvcGVuIHRhYnMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjkxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlQWRkZWQuZ2V0IGlmKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl91aVNvdXJjZUNvZGVBZGRlZC5nZXQgdmFyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl91aVNvdXJjZUNv
ZGVBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5f
cmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3No
b3dTb3VyY2VMaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlLl9zaG93RmlsZUFmdGVyRXh0ZXJuYWxBY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3VpU291cmNlQ29kZVJlcGxhY2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl91cGRhdGVFeGVjdXRpb25MaW5l
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9lZGl0b3JD
bG9zZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2Vk
aXRvclNlbGVjdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlLl9maWxlU2VsZWN0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX3VwZGF0ZVByZXZpb3VzbHlWaWV3ZWRGaWxlcy5nZXQgdmFyKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl91cGRhdGVQcmV2aW91c2x5Vmll
d2VkRmlsZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5GaWxlU2VsZWN0
b3IucHJvdG90eXBlLnJldmVhbFVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLkVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUuYWRkRmlyc3RTb3VyY2VGcmFt
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkVkaXRvckNvbnRhaW5lci5w
cm90b3R5cGUuYWRkUHJldmlvdXNseVNob3duU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5FZGl0b3JDb250YWluZXIucHJvdG90eXBlLmFkZExhc3RTaG93
blNvdXJjZUZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuRWRpdG9y
Q29udGFpbmVyLnByb3RvdHlwZS5wcmV2aW91c2x5Vmlld2VkU291cmNlRnJhbWVzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5p
c1NvdXJjZUZyYW1lT3Blbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkNv
bWJvQm94RmlsZVNlbGVjdG9yLnByb3RvdHlwZS5fYWRkT3B0aW9uVG9GaWxlc1NlbGVjdC5pbnNl
cnRPcmRlcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuQ29tYm9Cb3hG
aWxlU2VsZWN0b3IucHJvdG90eXBlLl9hZGRPcHRpb25Ub0ZpbGVzU2VsZWN0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuU2luZ2xlRmlsZUVkaXRvckNvbnRhaW5lci5wcm90
b3R5cGUuYWRkRmlyc3RTb3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLlNpbmdsZUZpbGVFZGl0b3JDb250YWluZXIucHJvdG90eXBlLmFkZFByZXZpb3VzbHlT
aG93blNvdXJjZUZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuU2lu
Z2xlRmlsZUVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUuYWRkTGFzdFNob3duU291cmNlRnJhbWUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5TaW5nbGVGaWxlRWRpdG9yQ29u
dGFpbmVyLnByb3RvdHlwZS5wcmV2aW91c2x5Vmlld2VkU291cmNlRnJhbWVzKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNldHRpbmdzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNv
bnRhaW5lci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIu
cHJvdG90eXBlLmFkZEZpcnN0U291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRh
YmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUucHJldmlvdXNseVZpZXdlZFNvdXJjZUZyYW1l
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlw
ZS5fdGFiQ2xvc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWlu
ZXIucHJvdG90eXBlLl90YWJTZWxlY3RlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9UYWJiZWRQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90
eXBlLmFwcGVuZFRhYik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5
cGUuY2xvc2VUYWIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBl
LmNsb3NlQWxsVGFicyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5
cGUubGFzdE9wZW5lZFZpZXdzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnBy
b3RvdHlwZS5fdGFic1NlbGVjdENoYW5nZWQpOgorCiAyMDEyLTAxLTI0ICBNYXJpbyBTYW5jaGV6
IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxk
IGZpeCBmb3IgR1RLIGFmdGVyIHIxMDU2OTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGI0YTRmM2U5MzM5NDM0YmZmM2Q2
YjE4NDM5MTg5MTQ0OGU1MTE5ZGMuLmU1NGUyNWQ0ZWNkNGU1Mjc3Njg3N2M1ZmEyYzhlZjQ1OGNj
MDRlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCkBAIC0zMyw2ICszMyw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwg
PSBmdW5jdGlvbihwcmVzZW50YXRpb25Nb2RlbCkKICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2Fs
bCh0aGlzLCAic2NyaXB0cyIpOwogICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENTUygic2NyaXB0
c1BhbmVsLmNzcyIpOwogCisgICAgdGhpcy5fbGFzdFZpZXdlZEZpbGVTZXR0aW5nID0gV2ViSW5z
cGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmcoImxhc3RWaWV3ZWRGaWxlIiwgIiIpOworICAg
IHRoaXMuX3ByZXZpb3VzbHlWaWV3ZWRGaWxlc1NldHRpbmcgPSBXZWJJbnNwZWN0b3Iuc2V0dGlu
Z3MuY3JlYXRlU2V0dGluZygicHJldmlvdXNseVZpZXdlZEZpbGVzIiwgW10pOwogICAgIFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5wYXVzZU9uRXhjZXB0aW9uU3RhdGVTdHJpbmcgPSBXZWJJbnNwZWN0
b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZygicGF1c2VPbkV4Y2VwdGlvblN0YXRlU3RyaW5nIiwg
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLkRvbnRQYXVz
ZU9uRXhjZXB0aW9ucyk7CiAKICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbCA9IHByZXNlbnRh
dGlvbk1vZGVsOwpAQCAtOTAsNiArOTIsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0g
ZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCiAgICAgdGhpcy5fZmlsZVNlbGVjdG9yLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5GaWxlU2VsZWN0b3IuRXZlbnRz
LkZpbGVTZWxlY3RlZCwgdGhpcy5fZmlsZVNlbGVjdGVkLCB0aGlzKTsKICAgICB0aGlzLl9maWxl
U2VsZWN0b3IuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkZpbGVT
ZWxlY3Rvci5FdmVudHMuUmVsZWFzZWRGb2N1c0FmdGVyU2VsZWN0aW9uLCB0aGlzLl9maWxlU2Vs
ZWN0b3JSZWxlYXNlZEZvY3VzLCB0aGlzKTsKICAgICB0aGlzLl9lZGl0b3JDb250YWluZXIuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkVkaXRvckNvbnRhaW5lci5F
dmVudHMuRWRpdG9yU2VsZWN0ZWQsIHRoaXMuX2VkaXRvclNlbGVjdGVkLCB0aGlzKTsKKyAgICB0
aGlzLl9lZGl0b3JDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLkVkaXRvckNvbnRhaW5lci5FdmVudHMuRWRpdG9yQ2xvc2VkLCB0aGlzLl9lZGl0b3JD
bG9zZWQsIHRoaXMpOworICAgIHRoaXMuX2xvYWRlZFVSTHMgPSB7fTsKIAogICAgIHRoaXMuc3Bs
aXRWaWV3Lm1haW5FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZGVidWdTaWRlYmFyUmVzaXplV2lk
Z2V0RWxlbWVudCk7CiAKQEAgLTE5Myw2ICsxOTcsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUgPSB7CiAgICAgUGF1c2VPblVuY2F1Z2h0RXhjZXB0
aW9uczogInVuY2F1Z2h0IgogfTsKIAorV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5tYXhpbWFs
UHJldmlvdXNseVZpZXdlZEZpbGVzQ291bnQgPSAzMDsKKwogV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IHRvb2xiYXJJdGVtTGFiZWwoKQogICAgIHsKQEAg
LTI1MiwyMCArMjU4LDMwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgLy8gQW5vbnltb3VzIHNvdXJjZXMgYXJlIHNob3duIG9ubHkgd2hlbiBz
dGVwcGluZy4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICAKKwogICAg
ICAgICB0aGlzLl9maWxlU2VsZWN0b3IuYWRkVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CiAK
LSAgICAgICAgdmFyIGxhc3RWaWV3ZWRVUkwgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGFzdFZp
ZXdlZFNjcmlwdEZpbGUuZ2V0KCk7Ci0gICAgICAgIGlmICghdGhpcy5faW5pdGlhbFZpZXdTZWxl
Y3Rpb25Qcm9jZXNzZWQpIHsKKyAgICAgICAgaWYgKHRoaXMuX3VzZXJTZWxlY3RlZEZpbGVzIHx8
IHRoaXMuX2xvYWRlZFVSTHNbdWlTb3VyY2VDb2RlLnVybF0pCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIHRoaXMuX2xvYWRlZFVSTHNbdWlTb3VyY2VDb2RlLnVybF0gPSB0cnVlOworCisg
ICAgICAgIHZhciBsYXN0Vmlld2VkVVJMID0gdGhpcy5fbGFzdFZpZXdlZEZpbGVTZXR0aW5nLmdl
dCgpOworICAgICAgICB2YXIgcHJldmlvdXNseVZpZXdlZEZpbGVzID0gdGhpcy5fcHJldmlvdXNs
eVZpZXdlZEZpbGVzU2V0dGluZy5nZXQoKTsKKyAgICAgICAgaWYgKHVpU291cmNlQ29kZS51cmwg
PT09IGxhc3RWaWV3ZWRVUkwpIHsKKyAgICAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMu
X2dldE9yQ3JlYXRlU291cmNlRnJhbWUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIHRoaXMu
X2VkaXRvckNvbnRhaW5lci5hZGRMYXN0U2hvd25Tb3VyY2VGcmFtZSh1aVNvdXJjZUNvZGUuZGlz
cGxheU5hbWUsIHNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAgICAgIHRo
aXMuX2luaXRpYWxWaWV3U2VsZWN0aW9uUHJvY2Vzc2VkID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNl
IGlmIChwcmV2aW91c2x5Vmlld2VkRmlsZXMuaW5kZXhPZih1aVNvdXJjZUNvZGUudXJsKSAhPSAt
MSkgeworICAgICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fZ2V0T3JDcmVhdGVTb3Vy
Y2VGcmFtZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVy
LmFkZFByZXZpb3VzbHlTaG93blNvdXJjZUZyYW1lKHVpU291cmNlQ29kZS5kaXNwbGF5TmFtZSwg
c291cmNlRnJhbWUsIHVpU291cmNlQ29kZS51cmwpOwogICAgICAgICAgICAgdGhpcy5faW5pdGlh
bFZpZXdTZWxlY3Rpb25Qcm9jZXNzZWQgPSB0cnVlOworICAgICAgICB9IGVsc2UgaWYgKCF0aGlz
Ll9pbml0aWFsVmlld1NlbGVjdGlvblByb2Nlc3NlZCkgewogICAgICAgICAgICAgLy8gT3B0aW9u
IHdlIGp1c3QgYWRkZWQgaXMgdGhlIG9ubHkgb3B0aW9uIGluIGZpbGVzIHNlbGVjdC4KLSAgICAg
ICAgICAgIC8vIFdlIGhhdmUgdG8gc2hvdyBjb3JyZXNwb25kaW5nIHNvdXJjZSBmcmFtZSBpbW1l
ZGlhdGVseS4KLSAgICAgICAgICAgIHRoaXMuX3Nob3dBbmRSZXZlYWxJbkZpbGVTZWxlY3Rvcih1
aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCB2YWx1ZSBvZiBs
YXN0Vmlld2VkU2NyaXB0RmlsZSBiZWNhdXNlCi0gICAgICAgICAgICAvLyBzb3VyY2UgZnJhbWUg
d2FzIHNob3duIGFzIGEgcmVzdWx0IG9mIGluaXRpYWwgbG9hZC4KLSAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5sYXN0Vmlld2VkU2NyaXB0RmlsZS5zZXQobGFzdFZpZXdlZFVSTCk7
Ci0gICAgICAgIH0gZWxzZSBpZiAodWlTb3VyY2VDb2RlLnVybCA9PT0gbGFzdFZpZXdlZFVSTCkK
LSAgICAgICAgICAgIHRoaXMuX3Nob3dBbmRSZXZlYWxJbkZpbGVTZWxlY3Rvcih1aVNvdXJjZUNv
ZGUpOworICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBwYXNzIGl0IHRvIHRoZSBlZGl0b3IgY29u
dGFpbmVyLgorICAgICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fZ2V0T3JDcmVhdGVT
b3VyY2VGcmFtZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFp
bmVyLmFkZEZpcnN0U291cmNlRnJhbWUodWlTb3VyY2VDb2RlLmRpc3BsYXlOYW1lLCBzb3VyY2VG
cmFtZSwgdWlTb3VyY2VDb2RlLnVybCk7CisgICAgICAgICAgICB0aGlzLl9pbml0aWFsVmlld1Nl
bGVjdGlvblByb2Nlc3NlZCA9IHRydWU7CisgICAgICAgIH0KICAgICB9LAogCiAgICAgX3VpU291
cmNlQ29kZVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtNDE2LDYgKzQzMiw4IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9kZWJ1Z2dl
clJlc3VtZWQoKTsKIAogICAgICAgICBkZWxldGUgdGhpcy5faW5pdGlhbFZpZXdTZWxlY3Rpb25Q
cm9jZXNzZWQ7CisgICAgICAgIGRlbGV0ZSB0aGlzLl91c2VyU2VsZWN0ZWRGaWxlczsKKyAgICAg
ICAgdGhpcy5fbG9hZGVkVVJMcyA9IHt9OwogCiAgICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5l
ci5yZXNldCgpOwogICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHRWaWV3U3RhdHVzQmFySXRlbXMo
KTsKQEAgLTQ3MSw3ICs0ODksNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgKi8KICAgICBfc2hvd1NvdXJjZUxpbmU6IGZ1bmN0aW9uKHVpU291cmNlQ29k
ZSwgbGluZU51bWJlcikKICAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3No
b3dBbmRSZXZlYWxJbkZpbGVTZWxlY3Rvcih1aVNvdXJjZUNvZGUpOworICAgICAgICB2YXIgc291
cmNlRnJhbWUgPSB0aGlzLl9zaG93RmlsZUFmdGVyRXh0ZXJuYWxBY3Rpb24odWlTb3VyY2VDb2Rl
KTsKICAgICAgICAgaWYgKHR5cGVvZiBsaW5lTnVtYmVyID09PSAibnVtYmVyIikKICAgICAgICAg
ICAgIHNvdXJjZUZyYW1lLmhpZ2hsaWdodExpbmUobGluZU51bWJlcik7CiAgICAgICAgIHNvdXJj
ZUZyYW1lLmZvY3VzKCk7CkBAIC00ODEsMzAgKzQ5OSwxOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZX0KICAgICAgKi8KLSAgICBfc2hvd0ZpbGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKLSAg
ICB7Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3NvdXJjZUZyYW1lc0J5VUlTb3Vy
Y2VDb2RlLmdldCh1aVNvdXJjZUNvZGUpIHx8IHRoaXMuX2NyZWF0ZVNvdXJjZUZyYW1lKHVpU291
cmNlQ29kZSk7Ci0KLSAgICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLnNob3dTb3VyY2VGcmFt
ZSh1aVNvdXJjZUNvZGUuZGlzcGxheU5hbWUsIHNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUudXJs
KTsKLSAgICAgICAgdGhpcy5fdXBkYXRlU2NyaXB0Vmlld1N0YXR1c0Jhckl0ZW1zKCk7Ci0KLSAg
ICAgICAgaWYgKHVpU291cmNlQ29kZS51cmwpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MubGFzdFZpZXdlZFNjcmlwdEZpbGUuc2V0KHVpU291cmNlQ29kZS51cmwpOwotCi0gICAg
ICAgIHJldHVybiBzb3VyY2VGcmFtZTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKLSAgICAgKiBAcmV0dXJu
IHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9Ci0gICAgICovCi0gICAgX3Nob3dBbmRSZXZlYWxJ
bkZpbGVTZWxlY3RvcjogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAgIF9zaG93RmlsZUFmdGVy
RXh0ZXJuYWxBY3Rpb246IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7CiAgICAgICAgIGlm
ICghdGhpcy5fZmlsZVNlbGVjdG9yLmlzU2NyaXB0U291cmNlQWRkZWQodWlTb3VyY2VDb2RlKSkK
ICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlz
Ll9nZXRPckNyZWF0ZVNvdXJjZUZyYW1lKHVpU291cmNlQ29kZSk7CiAgICAgICAgIAogICAgICAg
ICB0aGlzLl9maWxlU2VsZWN0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9zaG93RmlsZSh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlz
Ll9lZGl0b3JDb250YWluZXIuc2hvd1NvdXJjZUZyYW1lKHVpU291cmNlQ29kZS5kaXNwbGF5TmFt
ZSwgc291cmNlRnJhbWUsIHVpU291cmNlQ29kZS51cmwpOworICAgICAgICB0aGlzLl91cGRhdGVT
Y3JpcHRWaWV3U3RhdHVzQmFySXRlbXMoKTsKKyAgICAgICAgdGhpcy5fc2VsZWN0ZWRFZGl0b3JD
aGFuZ2VkQnlVc2VyQWN0aW9uKHVpU291cmNlQ29kZSk7CisgICAgICAgIAorICAgICAgICByZXR1
cm4gc291cmNlRnJhbWU7CiAgICAgfSwKIAogICAgIHJlcXVlc3RWaXNpYmxlU2NyaXB0T3V0bGlu
ZTogZnVuY3Rpb24oKQpAQCAtNTI1LDYgKzUzMSwxNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lfQorICAgICAqLworICAgIF9nZXRPckNyZWF0ZVNvdXJjZUZyYW1lOiBmdW5j
dGlvbih1aVNvdXJjZUNvZGUpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlRnJh
bWVzQnlVSVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSkgfHwgdGhpcy5fY3JlYXRlU291cmNl
RnJhbWUodWlTb3VyY2VDb2RlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKKyAgICAgKiBAcmV0dXJuIHtX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9CiAgICAgICovCiAgICAgX2NyZWF0ZVNvdXJjZUZyYW1l
OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewpAQCAtNTg1LDcgKzYwMSw3IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICBpZiAoc2hv
dWxkUmVwbGFjZSkgewogICAgICAgICAgICAgICAgIHZhciBuZXdVSVNvdXJjZUNvZGUgPSB1aVNv
dXJjZUNvZGVMaXN0WzBdOwotICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMu
X3NvdXJjZUZyYW1lc0J5VUlTb3VyY2VDb2RlLmdldChuZXdVSVNvdXJjZUNvZGUpIHx8IHRoaXMu
X2NyZWF0ZVNvdXJjZUZyYW1lKG5ld1VJU291cmNlQ29kZSk7CisgICAgICAgICAgICAgICAgdmFy
IHNvdXJjZUZyYW1lID0gdGhpcy5fZ2V0T3JDcmVhdGVTb3VyY2VGcmFtZShuZXdVSVNvdXJjZUNv
ZGUpOwogICAgICAgICAgICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5lci5yZXBsYWNlU291cmNl
RnJhbWVzKHNvdXJjZUZyYW1lcywgbmV3VUlTb3VyY2VDb2RlLmRpc3BsYXlOYW1lLCBzb3VyY2VG
cmFtZSwgbmV3VUlTb3VyY2VDb2RlLnVybCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAg
LTYzMiw3ICs2NDgsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgLy8gQW5vbnltb3VzIHNjcmlwdHMgYXJlIG5vdCBhZGRlZCB0byBmaWxlcyBzZWxl
Y3QgYnkgZGVmYXVsdC4KICAgICAgICAgdGhpcy5fZmlsZVNlbGVjdG9yLmFkZFVJU291cmNlQ29k
ZSh1aUxvY2F0aW9uLnVpU291cmNlQ29kZSk7CiAgICAgICAgIAotICAgICAgICB2YXIgc291cmNl
RnJhbWUgPSB0aGlzLl9zaG93QW5kUmV2ZWFsSW5GaWxlU2VsZWN0b3IodWlMb2NhdGlvbi51aVNv
dXJjZUNvZGUpOworICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlzLl9zaG93RmlsZUFmdGVy
RXh0ZXJuYWxBY3Rpb24odWlMb2NhdGlvbi51aVNvdXJjZUNvZGUpOwogICAgICAgICBzb3VyY2VG
cmFtZS5zZXRFeGVjdXRpb25MaW5lKHVpTG9jYXRpb24ubGluZU51bWJlcik7CiAgICAgICAgIHRo
aXMuX2V4ZWN1dGlvblNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7CiAgICAgfSwKQEAgLTY1NSwx
NiArNjcxLDQzIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLl91cGRhdGVFeGVjdXRpb25MaW5lKHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmV4
ZWN1dGlvbkxpbmVMb2NhdGlvbik7CiAgICAgfSwKIAorICAgIF9lZGl0b3JDbG9zZWQ6IGZ1bmN0
aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gLyoqIEB0eXBlIHtX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9ICovIGV2ZW50LmRhdGEuc291cmNlRnJhbWU7CisgICAg
ICAgIHZhciB1c2VyR2VzdHVyZSA9IC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi8gZXZlbnQuZGF0YS5p
c1VzZXJHZXN0dXJlOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3Vp
U291cmNlQ29kZTsKKyAgICAgICAgCisgICAgICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gdXBkYXRl
IGZpbGUgc2VsZWN0b3IgaGVyZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdXNlU2NyaXB0c05hdmln
YXRvciBpcyBzZXQgb3Igbm90OgorICAgICAgICAvLyBTaW5nbGVGaWxlRWRpdG9yQ29udGFpbmVy
IG5ldmVyIGRpc3BhdGNoZXMgRWRpdG9yQ2xvc2VkLCBzbyBubyBuZWVkIHRvIHVwZGF0ZSBDb21i
b0JveEZpbGVTZWxlY3RvcjsgCisgICAgICAgIC8vIFNjcmlwdHNOYXZpZ2F0b3IgZG9lcyBub3Qg
bmVlZCB1cGRhdGUgb24gRWRpdG9yQ2xvc2VkLgorCisgICAgICAgIHRoaXMuX3VwZGF0ZVNjcmlw
dFZpZXdTdGF0dXNCYXJJdGVtcygpOworCisgICAgICAgIGlmICh1c2VyR2VzdHVyZSkgeworICAg
ICAgICAgICAgdGhpcy5fZWRpdG9yQ2xvc2VkQnlVc2VyQWN0aW9uKHVpU291cmNlQ29kZSk7Cisg
ICAgICAgIH0KKyAgICB9LAorCiAgICAgX2VkaXRvclNlbGVjdGVkOiBmdW5jdGlvbihldmVudCkK
ICAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lfSAqLyBldmVudC5kYXRhOwotICAgICAgICB0aGlzLl9maWxlU2VsZWN0b3Iu
cmV2ZWFsVUlTb3VyY2VDb2RlKHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGUpOworICAgICAgICB2
YXIgc291cmNlRnJhbWUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0gKi8g
ZXZlbnQuZGF0YS5zb3VyY2VGcmFtZTsKKyAgICAgICAgdmFyIHVzZXJHZXN0dXJlID0gLyoqIEB0
eXBlIHtib29sZWFufSAqLyBldmVudC5kYXRhLmlzVXNlckdlc3R1cmU7CisgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlOworICAgICAgICAKKyAgICAg
ICAgdGhpcy5fZmlsZVNlbGVjdG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwor
ICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHRWaWV3U3RhdHVzQmFySXRlbXMoKTsKKyAgICAgICAg
aWYgKHVzZXJHZXN0dXJlKQorICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRFZGl0b3JDaGFuZ2Vk
QnlVc2VyQWN0aW9uKHVpU291cmNlQ29kZSk7CiAgICAgfSwKIAogICAgIF9maWxlU2VsZWN0ZWQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IC8qKiBA
dHlwZSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gKi8gZXZlbnQuZGF0YTsKLSAgICAgICAg
dGhpcy5fc2hvd0ZpbGUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0g
dGhpcy5fZ2V0T3JDcmVhdGVTb3VyY2VGcmFtZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAKKyAg
ICAgICAgdGhpcy5fZWRpdG9yQ29udGFpbmVyLnNob3dTb3VyY2VGcmFtZSh1aVNvdXJjZUNvZGUu
ZGlzcGxheU5hbWUsIHNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAgdGhp
cy5fdXBkYXRlU2NyaXB0Vmlld1N0YXR1c0Jhckl0ZW1zKCk7CisgICAgICAgIHRoaXMuX3NlbGVj
dGVkRWRpdG9yQ2hhbmdlZEJ5VXNlckFjdGlvbih1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAg
ICBfZmlsZVNlbGVjdG9yUmVsZWFzZWRGb2N1czogZnVuY3Rpb24oZXZlbnQpCkBAIC02NzUsNiAr
NzE4LDQ2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgc291cmNlRnJhbWUuZm9jdXMoKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKKyAgICAgKi8KKyAg
ICBfZWRpdG9yQ2xvc2VkQnlVc2VyQWN0aW9uOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCisgICAg
eworICAgICAgICB2YXIgcHJldmlvdXNseVZpZXdlZEZpbGVzID0gdGhpcy5fcHJldmlvdXNseVZp
ZXdlZEZpbGVzU2V0dGluZy5nZXQoKTsKKyAgICAgICAgdmFyIGluZGV4ID0gcHJldmlvdXNseVZp
ZXdlZEZpbGVzLmluZGV4T2YodWlTb3VyY2VDb2RlLnVybCk7CisgICAgICAgIGlmIChpbmRleCAh
PT0gLTEpCisgICAgICAgICAgICBwcmV2aW91c2x5Vmlld2VkRmlsZXMuc3BsaWNlKGluZGV4LCAx
KTsKKyAgICAgICAgdGhpcy5fcHJldmlvdXNseVZpZXdlZEZpbGVzU2V0dGluZy5zZXQocHJldmlv
dXNseVZpZXdlZEZpbGVzKTsKKyAgICAgICAgCisgICAgICAgIHRoaXMuX3VzZXJTZWxlY3RlZEZp
bGVzID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5fdXBkYXRlUHJldmlvdXNseVZpZXdlZEZpbGVzKCk7
CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZX0gdWlTb3VyY2VDb2RlCisgICAgICovCisgICAgX3NlbGVjdGVkRWRpdG9yQ2hhbmdlZEJ5
VXNlckFjdGlvbjogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAgIHsKKyAgICAgICAgaWYgKHVp
U291cmNlQ29kZS51cmwpCisgICAgICAgICAgICB0aGlzLl9sYXN0Vmlld2VkRmlsZVNldHRpbmcu
c2V0KHVpU291cmNlQ29kZS51cmwpOworICAgICAgICB0aGlzLl91c2VyU2VsZWN0ZWRGaWxlcyA9
IHRydWU7CisgICAgICAgIHRoaXMuX3VwZGF0ZVByZXZpb3VzbHlWaWV3ZWRGaWxlcygpOworICAg
IH0sCisKKyAgICBfdXBkYXRlUHJldmlvdXNseVZpZXdlZEZpbGVzOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICB2YXIgcHJldmlvdXNseVZpZXdlZEZpbGVzID0gdGhpcy5fcHJldmlvdXNseVZp
ZXdlZEZpbGVzU2V0dGluZy5nZXQoKTsKKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lcyA9IHRoaXMu
X2VkaXRvckNvbnRhaW5lci5wcmV2aW91c2x5Vmlld2VkU291cmNlRnJhbWVzKFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwubWF4aW1hbFByZXZpb3VzbHlWaWV3ZWRGaWxlc0NvdW50KTsKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3VyY2VGcmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VGcmFtZXNbaV0uX3VpU291cmNlQ29kZTsK
KyAgICAgICAgICAgIHZhciBpbmRleCA9IHByZXZpb3VzbHlWaWV3ZWRGaWxlcy5pbmRleE9mKHVp
U291cmNlQ29kZS51cmwpOworICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkKKyAgICAgICAg
ICAgICAgICBwcmV2aW91c2x5Vmlld2VkRmlsZXMuc3BsaWNlKGluZGV4LCAxKTsKKyAgICAgICAg
ICAgIHByZXZpb3VzbHlWaWV3ZWRGaWxlcy51bnNoaWZ0KHVpU291cmNlQ29kZS51cmwpOworICAg
ICAgICB9CisgICAgICAgIHRoaXMuX3ByZXZpb3VzbHlWaWV3ZWRGaWxlc1NldHRpbmcuc2V0KHBy
ZXZpb3VzbHlWaWV3ZWRGaWxlcy5zbGljZSgwLCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLm1h
eGltYWxQcmV2aW91c2x5Vmlld2VkRmlsZXNDb3VudCkpOworICAgIH0sCisKICAgICBfc2V0UGF1
c2VPbkV4Y2VwdGlvbnM6IGZ1bmN0aW9uKHBhdXNlT25FeGNlcHRpb25zU3RhdGUpCiAgICAgewog
ICAgICAgICBwYXVzZU9uRXhjZXB0aW9uc1N0YXRlID0gcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSB8
fCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuRG9udFBh
dXNlT25FeGNlcHRpb25zOwpAQCAtMTA2Nyw3ICsxMTUwLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5GaWxlU2VsZWN0b3IucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICovCi0gICAg
cmV2ZWFsVUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpIHsgcmV0dXJuIGZhbHNl
OyB9LAorICAgIHJldmVhbFVJU291cmNlQ29kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKSB7IH0s
CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVp
U291cmNlQ29kZQpAQCAtMTA4OCw3ICsxMTcxLDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5GaWxlU2VsZWN0b3IucHJvdG90eXBlID0gewogV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5F
ZGl0b3JDb250YWluZXIgPSBmdW5jdGlvbigpIHsgfQogCiBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLkVkaXRvckNvbnRhaW5lci5FdmVudHMgPSB7Ci0gICAgRWRpdG9yU2VsZWN0ZWQ6ICJFZGl0
b3JTZWxlY3RlZCIKKyAgICBFZGl0b3JTZWxlY3RlZDogIkVkaXRvclNlbGVjdGVkIiwKKyAgICBF
ZGl0b3JDbG9zZWQ6ICJFZGl0b3JDbG9zZWQiCiB9CiAKIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwuRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKQEAgLTExMTAsMTAgKzExOTQsMzcgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5FZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewog
ICAgIHNob3dTb3VyY2VGcmFtZTogZnVuY3Rpb24odGl0bGUsIHNvdXJjZUZyYW1lLCB0b29sdGlw
KSB7IH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUKKyAgICAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0gc291cmNlRnJhbWUKKyAgICAgKiBAcGFy
YW0ge3N0cmluZ30gdG9vbHRpcAorICAgICAqLworICAgIGFkZEZpcnN0U291cmNlRnJhbWU6IGZ1
bmN0aW9uKHRpdGxlLCBzb3VyY2VGcmFtZSwgdG9vbHRpcCkgeyB9LAorCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWV9IHNvdXJjZUZyYW1lCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHRvb2x0aXAKKyAg
ICAgKi8KKyAgICBhZGRQcmV2aW91c2x5U2hvd25Tb3VyY2VGcmFtZTogZnVuY3Rpb24odGl0bGUs
IHNvdXJjZUZyYW1lLCB0b29sdGlwKSB7IH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0
cmluZ30gdGl0bGUKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0gc291
cmNlRnJhbWUKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdG9vbHRpcAorICAgICAqLworICAgIGFk
ZExhc3RTaG93blNvdXJjZUZyYW1lOiBmdW5jdGlvbih0aXRsZSwgc291cmNlRnJhbWUsIHRvb2x0
aXApIHsgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudAorICAgICAq
IEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuU291cmNlRnJhbWU+fQorICAgICAqLworICAg
IHByZXZpb3VzbHlWaWV3ZWRTb3VyY2VGcmFtZXM6IGZ1bmN0aW9uKGNvdW50KSB7IH0sCisKKyAg
ICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZX0gc291cmNlRnJh
bWUKICAgICAgKiBAcmV0dXJuIHtib29sZWFufQogICAgICAqLwotICAgIGlzU291cmNlRnJhbWVP
cGVuOiBmdW5jdGlvbihzb3VyY2VGcmFtZSkgeyByZXR1cm4gZmFsc2U7IH0sCisgICAgaXNTb3Vy
Y2VGcmFtZU9wZW46IGZ1bmN0aW9uKHNvdXJjZUZyYW1lKSB7IH0sCiAKICAgICAvKioKICAgICAg
KiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuU291cmNlRnJhbWU+fSBvbGRTb3VyY2VGcmFt
ZXMKQEAgLTEzODgsNyArMTQ5OSwxMCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkNvbWJv
Qm94RmlsZVNlbGVjdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm4gYS5u
YW1lRm9yU29ydGluZy5sb2NhbGVDb21wYXJlKGIubmFtZUZvclNvcnRpbmcpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgdmFyIGluc2VydGlvbkluZGV4ID0gaW5zZXJ0aW9uSW5kZXhGb3JP
YmplY3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKG9wdGlvbiwgc2VsZWN0LmNoaWxkTm9kZXMsIG9w
dGlvbkNvbXBhcmUpOworICAgICAgICAgICAgdmFyIHNob3dzTm90aGluZyA9IHNlbGVjdC5zZWxl
Y3RlZEluZGV4ID09PSAtMTsKICAgICAgICAgICAgIHNlbGVjdC5pbnNlcnRCZWZvcmUob3B0aW9u
LCBpbnNlcnRpb25JbmRleCA8IDAgPyBudWxsIDogc2VsZWN0LmNoaWxkTm9kZXMuaXRlbShpbnNl
cnRpb25JbmRleCkpOworICAgICAgICAgICAgaWYgKHNob3dzTm90aGluZykKKyAgICAgICAgICAg
ICAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IC0xOwogICAgICAgICB9CiAKICAgICAgICAgaW5z
ZXJ0T3JkZXJlZChvcHRpb24pOwpAQCAtMTUyOCw2ICsxNjQyLDQ5IEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwuU2luZ2xlRmlsZUVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUgPSB7CiAgICAg
fSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQorICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSBzb3VyY2VGcmFtZQorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSB0b29sdGlwCisgICAgICovCisgICAgYWRkRmlyc3RTb3VyY2VGcmFtZTogZnVuY3Rp
b24odGl0bGUsIHNvdXJjZUZyYW1lLCB0b29sdGlwKQorICAgIHsKKyAgICAgICAgdGhpcy5zaG93
U291cmNlRnJhbWUodGl0bGUsIHNvdXJjZUZyYW1lLCB0b29sdGlwKTsKKyAgICAgICAgdmFyIGRh
dGEgPSB7IHNvdXJjZUZyYW1lOiBzb3VyY2VGcmFtZSwgdXNlckdlc3R1cmU6IGZhbHNlIH07Cisg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwuRWRpdG9yQ29udGFpbmVyLkV2ZW50cy5FZGl0b3JTZWxlY3RlZCwgZGF0YSk7CisgICAg
fSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQorICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSBzb3VyY2VGcmFtZQorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSB0b29sdGlwCisgICAgICovCisgICAgYWRkUHJldmlvdXNseVNob3duU291cmNlRnJh
bWU6IGZ1bmN0aW9uKHRpdGxlLCBzb3VyY2VGcmFtZSwgdG9vbHRpcCkKKyAgICB7CisgICAgICAg
IC8vIERvIG5vdGhpbmcsIHdlIG9ubHkgc2hvdyBsYXN0IHZpZXdlZCB1cmwgaW4gc2luZ2xlIGZp
bGUgZWRpdG9yIGNvbnRhaW5lci4KKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtz
dHJpbmd9IHRpdGxlCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9IHNv
dXJjZUZyYW1lCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHRvb2x0aXAKKyAgICAgKi8KKyAgICBh
ZGRMYXN0U2hvd25Tb3VyY2VGcmFtZTogZnVuY3Rpb24odGl0bGUsIHNvdXJjZUZyYW1lLCB0b29s
dGlwKQorICAgIHsKKyAgICAgICAgdGhpcy5zaG93U291cmNlRnJhbWUodGl0bGUsIHNvdXJjZUZy
YW1lLCB0b29sdGlwKTsKKyAgICAgICAgdmFyIGRhdGEgPSB7IHNvdXJjZUZyYW1lOiBzb3VyY2VG
cmFtZSwgdXNlckdlc3R1cmU6IGZhbHNlIH07CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuRWRpdG9yQ29udGFpbmVyLkV2ZW50
cy5FZGl0b3JTZWxlY3RlZCwgZGF0YSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBjb3VudAorICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWU+fQorICAgICAqLworICAgIHByZXZpb3VzbHlWaWV3ZWRTb3VyY2VGcmFtZXM6IGZ1
bmN0aW9uKGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFtdOworICAgIH0sCisgICAgCisg
ICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9IHNvdXJjZUZy
YW1lCiAgICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAgKi8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGJjNDI1ZWNjZmJiMzY5MjE3
MWQ2NzQ1M2E1NzU3OWNhNTJiNmYwOTUuLmEzMjg3NWI3NzBjNmJmMTZmMWE3NGViNzMyNTkyYzll
NWU4NjkwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2V0dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0
aW5ncy5qcwpAQCAtNjksNyArNjksNiBAQCBXZWJJbnNwZWN0b3IuU2V0dGluZ3MgPSBmdW5jdGlv
bigpCiAgICAgdGhpcy5wcm9maWxlckVuYWJsZWQgPSB0aGlzLmNyZWF0ZVNldHRpbmcoInByb2Zp
bGVyRW5hYmxlZCIsIGZhbHNlKTsKICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzRmlsdGVyID0gdGhp
cy5jcmVhdGVTZXR0aW5nKCJldmVudExpc3RlbmVyc0ZpbHRlciIsICJhbGwiKTsKICAgICB0aGlz
Lmxhc3RBY3RpdmVQYW5lbCA9IHRoaXMuY3JlYXRlU2V0dGluZygibGFzdEFjdGl2ZVBhbmVsIiwg
ImVsZW1lbnRzIik7Ci0gICAgdGhpcy5sYXN0Vmlld2VkU2NyaXB0RmlsZSA9IHRoaXMuY3JlYXRl
U2V0dGluZygibGFzdFZpZXdlZFNjcmlwdEZpbGUiLCAiYXBwbGljYXRpb24iKTsKICAgICB0aGlz
Lm1vbml0b3JpbmdYSFJFbmFibGVkID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJtb25pdG9yaW5nWEhS
RW5hYmxlZCIsIGZhbHNlKTsKICAgICB0aGlzLnByZXNlcnZlQ29uc29sZUxvZyA9IHRoaXMuY3Jl
YXRlU2V0dGluZygicHJlc2VydmVDb25zb2xlTG9nIiwgZmFsc2UpOwogICAgIHRoaXMucmVzb3Vy
Y2VzTGFyZ2VSb3dzID0gdGhpcy5jcmVhdGVTZXR0aW5nKCJyZXNvdXJjZXNMYXJnZVJvd3MiLCB0
cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFi
YmVkRWRpdG9yQ29udGFpbmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMKaW5kZXggZGJjZjc3Mzg1OTM3MmM4OTU2ZDg2Y2M0
YWU0Y2Q4NTE1OWUxM2ExMS4uNDUyMWYwZTZjOTJlMWU4OGI1YjEyYTc2N2Q4OTNiNzIwMzg4NTJk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRF
ZGl0b3JDb250YWluZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMKQEAgLTgwLDYgKzgwLDUwIEBAIFdlYkluc3BlY3Rv
ci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lfSBzb3VyY2VGcmFtZQogICAgICAqIEBwYXJhbSB7c3RyaW5n
fSB0b29sdGlwCiAgICAgICovCisgICAgYWRkRmlyc3RTb3VyY2VGcmFtZTogZnVuY3Rpb24odGl0
bGUsIHNvdXJjZUZyYW1lLCB0b29sdGlwKQorICAgIHsKKyAgICAgICAgLy8gRG8gbm90aGluZywg
d2UgcHJlZmVyIGVtcHR5IHRhYmJlZCBwYW5lIHRvIHNvbWUgcmFuZG9tIHNjcmlwdC4KKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCisgICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCisgICAgICogQHBhcmFtIHtz
dHJpbmd9IHRvb2x0aXAKKyAgICAgKi8KKyAgICBhZGRQcmV2aW91c2x5U2hvd25Tb3VyY2VGcmFt
ZTogZnVuY3Rpb24odGl0bGUsIHNvdXJjZUZyYW1lLCB0b29sdGlwKQorICAgIHsKKyAgICAgICAg
aWYgKCF0aGlzLl90YWJJZHMuZ2V0KHNvdXJjZUZyYW1lKSkKKyAgICAgICAgICAgIHRoaXMuX2Fw
cGVuZFNvdXJjZUZyYW1lVGFiKHRpdGxlLCBzb3VyY2VGcmFtZSwgdG9vbHRpcCk7CisgICAgfSwK
KworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQorICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfSBzb3VyY2VGcmFtZQorICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSB0b29sdGlwCisgICAgICovCisgICAgYWRkTGFzdFNob3duU291cmNlRnJhbWU6IGZ1bmN0
aW9uKHRpdGxlLCBzb3VyY2VGcmFtZSwgdG9vbHRpcCkKKyAgICB7CisgICAgICAgIHZhciB0YWJJ
ZCA9IHRoaXMuX3RhYklkcy5nZXQoc291cmNlRnJhbWUpOworICAgICAgICBpZiAoIXRhYklkKQor
ICAgICAgICAgICAgdGFiSWQgPSB0aGlzLl9hcHBlbmRTb3VyY2VGcmFtZVRhYih0aXRsZSwgc291
cmNlRnJhbWUsIHRvb2x0aXApOworICAgICAgICB0aGlzLl90YWJiZWRQYW5lLnNlbGVjdFRhYih0
YWJJZCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudAor
ICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuU291cmNlRnJhbWU+fQorICAgICAq
LworICAgIHByZXZpb3VzbHlWaWV3ZWRTb3VyY2VGcmFtZXM6IGZ1bmN0aW9uKGNvdW50KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIC8qKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZT59ICovIHRoaXMuX3RhYmJlZFBhbmUubGFzdE9wZW5lZFZpZXdzKGNvdW50KTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCisgICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuU291cmNlRnJhbWV9IHNvdXJjZUZyYW1lCisgICAgICogQHBhcmFtIHtz
dHJpbmd9IHRvb2x0aXAKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCiAgICAgX2Fw
cGVuZFNvdXJjZUZyYW1lVGFiOiBmdW5jdGlvbih0aXRsZSwgc291cmNlRnJhbWUsIHRvb2x0aXAp
CiAgICAgewogICAgICAgICB2YXIgdGFiSWQgPSB0aGlzLl9nZW5lcmF0ZVRhYklkKCk7CkBAIC0x
MDgsOSArMTUyLDE0IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90
eXBlID0gewogICAgIF90YWJDbG9zZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAg
dmFyIHNvdXJjZUZyYW1lID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAq
LyBldmVudC5kYXRhLnZpZXc7CisgICAgICAgIHZhciB1c2VyR2VzdHVyZSA9IC8qKiBAdHlwZSB7
Ym9vbGVhbn0gKi8gZXZlbnQuZGF0YS5pc1VzZXJHZXN0dXJlOworICAgICAgICAKICAgICAgICAg
dGhpcy5fdGFiSWRzLnJlbW92ZShzb3VyY2VGcmFtZSk7CiAgICAgICAgIHRoaXMuX3RpdGxlcy5y
ZW1vdmUoc291cmNlRnJhbWUpOwogICAgICAgICB0aGlzLl90b29sdGlwcy5yZW1vdmUoc291cmNl
RnJhbWUpOworICAgICAgICAKKyAgICAgICAgdmFyIGV2ZW50RGF0YSA9IHsgc291cmNlRnJhbWU6
IHNvdXJjZUZyYW1lLCBpc1VzZXJHZXN0dXJlOiB1c2VyR2VzdHVyZSB9OworICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkVkaXRv
ckNvbnRhaW5lci5FdmVudHMuRWRpdG9yQ2xvc2VkLCBldmVudERhdGEpOwogICAgIH0sCiAKICAg
ICAvKioKQEAgLTExOSw3ICsxNjgsOSBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFp
bmVyLnByb3RvdHlwZSA9IHsKICAgICBfdGFiU2VsZWN0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlfSAqLyBldmVudC5kYXRhLnZpZXc7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuRWRpdG9yQ29udGFpbmVyLkV2
ZW50cy5FZGl0b3JTZWxlY3RlZCwgc291cmNlRnJhbWUpOworICAgICAgICB2YXIgdXNlckdlc3R1
cmUgPSAvKiogQHR5cGUge2Jvb2xlYW59ICovIGV2ZW50LmRhdGEuaXNVc2VyR2VzdHVyZTsKKyAg
ICAgICAgdmFyIGV2ZW50RGF0YSA9IHsgc291cmNlRnJhbWU6IHNvdXJjZUZyYW1lLCBpc1VzZXJH
ZXN0dXJlOiB1c2VyR2VzdHVyZSB9OworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLkVkaXRvckNvbnRhaW5lci5FdmVudHMuRWRp
dG9yU2VsZWN0ZWQsIGV2ZW50RGF0YSk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzCmluZGV4IDI4NmYxMzVj
ZjUzYzExZWVmNTQ4ODc4MTcyYzk3OTE5NjE0NWZjMmIuLmNjZmJlMmZlODRlNmNhYWJiNjIxMTkx
NTk2MzRkNGRiNjlhNGE4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGFiYmVkUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RhYmJlZFBhbmUuanMKQEAgLTkxLDE0ICs5MSwxOSBAQCBXZWJJbnNwZWN0b3IuVGFi
YmVkUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYlRpdGxlCiAg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVmlld30gdmlldwogICAgICAqIEBwYXJhbSB7c3Ry
aW5nPX0gdGFiVG9vbHRpcAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IHVzZXJHZXN0dXJlCiAg
ICAgICovCi0gICAgYXBwZW5kVGFiOiBmdW5jdGlvbihpZCwgdGFiVGl0bGUsIHZpZXcsIHRhYlRv
b2x0aXApCisgICAgYXBwZW5kVGFiOiBmdW5jdGlvbihpZCwgdGFiVGl0bGUsIHZpZXcsIHRhYlRv
b2x0aXAsIHVzZXJHZXN0dXJlKQogICAgIHsKICAgICAgICAgdmFyIHRhYiA9IG5ldyBXZWJJbnNw
ZWN0b3IuVGFiYmVkUGFuZVRhYih0aGlzLCB0aGlzLl90YWJzRWxlbWVudCwgaWQsIHRhYlRpdGxl
LCB0aGlzLl9jbG9zZWFibGVUYWJzLCB2aWV3LCB0YWJUb29sdGlwKTsKKyAgICAgICAgdGhpcy5f
dGFic0J5SWRbaWRdID0gdGFiOwogCiAgICAgICAgIHRoaXMuX3RhYnMucHVzaCh0YWIpOwotICAg
ICAgICB0aGlzLl90YWJzQnlJZFtpZF0gPSB0YWI7CiAgICAgICAgIHRoaXMuX3RhYnNIaXN0b3J5
LnB1c2godGFiKTsKKworICAgICAgICBpZiAodGhpcy5fdGFic0hpc3RvcnlbMF0gPT09IHRhYikK
KyAgICAgICAgICAgIHRoaXMuc2VsZWN0VGFiKHRhYi5pZCwgdXNlckdlc3R1cmUpOworCiAgICAg
ICAgIHRoaXMuX3VwZGF0ZVRhYkVsZW1lbnRzKCk7CiAgICAgfSwKIApAQCAtMTIwLDcgKzEyNSw3
IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRo
aXMuX2hpZGVUYWJFbGVtZW50KHRhYik7CiAKICAgICAgICAgaWYgKHRoaXMuX3RhYnNIaXN0b3J5
Lmxlbmd0aCkKLSAgICAgICAgICAgIHRoaXMuc2VsZWN0VGFiKHRoaXMuX3RhYnNIaXN0b3J5WzBd
LmlkKTsKKyAgICAgICAgICAgIHRoaXMuc2VsZWN0VGFiKHRoaXMuX3RhYnNIaXN0b3J5WzBdLmlk
LCB1c2VyR2VzdHVyZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVRh
YkVsZW1lbnRzKCk7CiAKQEAgLTEyOSwxMSArMTM0LDE0IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRQ
YW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIGNs
b3NlQWxsVGFiczogZnVuY3Rpb24oKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19
IHVzZXJHZXN0dXJlCisgICAgICovCisgICAgY2xvc2VBbGxUYWJzOiBmdW5jdGlvbih1c2VyR2Vz
dHVyZSkKICAgICB7CiAgICAgICAgIHZhciB0YWJzID0gdGhpcy5fdGFicy5zbGljZSgpOwogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYnMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0
aGlzLmNsb3NlVGFiKHRhYnNbaV0uaWQsIGZhbHNlKTsKKyAgICAgICAgICAgIHRoaXMuY2xvc2VU
YWIodGFic1tpXS5pZCwgdXNlckdlc3R1cmUpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE2Myw2
ICsxNzEsMTkgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlID0gewogICAgIH0s
CiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gdGFic0NvdW50CisgICAgICogQHJl
dHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5WaWV3Pn0KKyAgICAgKi8KKyAgICBsYXN0T3BlbmVk
Vmlld3M6IGZ1bmN0aW9uKHRhYnNDb3VudCkKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIHRhYlRv
VGFiVmlldyh0YWIpIHsKKyAgICAgICAgICAgIHJldHVybiB0YWIudmlldzsKKyAgICAgICAgfQor
CisgICAgICAgIHJldHVybiB0aGlzLl90YWJzSGlzdG9yeS5zbGljZSgwLCB0YWJzQ291bnQpLm1h
cCh0YWJUb1RhYlZpZXcpOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gaWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFiVGl0bGUKICAgICAgKi8KQEAgLTI5MSw3
ICszMTIsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgewog
ICAgICAgICB2YXIgb3B0aW9ucyA9IHRoaXMuX3RhYnNTZWxlY3Qub3B0aW9uczsKICAgICAgICAg
dmFyIHNlbGVjdGVkT3B0aW9uID0gb3B0aW9uc1t0aGlzLl90YWJzU2VsZWN0LnNlbGVjdGVkSW5k
ZXhdOwotICAgICAgICB0aGlzLnNlbGVjdFRhYihzZWxlY3RlZE9wdGlvbi50YWIuaWQpOworICAg
ICAgICB0aGlzLnNlbGVjdFRhYihzZWxlY3RlZE9wdGlvbi50YWIuaWQsIHRydWUpOwogICAgIH0s
CiAKICAgICBfbWVhc3VyZURyb3BEb3duQnV0dG9uOiBmdW5jdGlvbigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124313</attachid>
            <date>2012-01-27 07:22:07 -0800</date>
            <delta_ts>2012-01-30 04:46:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76912-20120127192205.patch</filename>
            <type>text/plain</type>
            <size>23057</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRiYWYxOWRkZGQzOTgx
NjQ3ZjA2ZDYzMGVkNmU2NjE4Yzc0ZGEwYS4uYWUwYzgzZjlmOGY1YTZmZThlZTVlNGFiMGI4Zjdj
MTgzYmUxZjRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTAxLTI3ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFRhYmJlZEVkaXRvckNvbnRhaW5lciBzaG91bGQgc2F2ZSBvcGVuIHRhYnMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjkxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci90
YWJiZWQtZWRpdG9ycy1oaXN0b3J5Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX3VpU291cmNlQ29kZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZS5fc2hvd0ZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZUV4ZWN1dGlvbkxpbmUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2VkaXRvclNlbGVjdGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FZGl0b3JDb250YWluZXIucHJvdG90eXBlLnVpU291cmNlQ29kZUFkZGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuU2luZ2xlRmlsZUVkaXRvckNv
bnRhaW5lci5wcm90b3R5cGUuc2hvd0ZpbGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5TaW5nbGVGaWxlRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5yZXNldCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLnNob3dGaWxlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl9lZGl0b3JD
bG9zZWRCeVVzZXJBY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNv
bnRhaW5lci5wcm90b3R5cGUuX2VkaXRvclNlbGVjdGVkQnlVc2VyQWN0aW9uKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl91cGRhdGVIaXN0
b3J5LnRhYklkVG9VUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRh
aW5lci5wcm90b3R5cGUuX3VwZGF0ZUhpc3RvcnkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRh
YmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUuX2FwcGVuZEZpbGVUYWIpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUuX3RhYkNsb3NlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5f
dGFiU2VsZWN0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5l
ci5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNv
bnRhaW5lci5IaXN0b3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250
YWluZXIuSGlzdG9yeS5wcm90b3R5cGUuaW5kZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRh
YmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZS5yZW1v
dmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5
LnByb3RvdHlwZS5zYXZlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBh
bmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUuYXBwZW5k
VGFiKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZS5jbG9zZVRh
Yik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUuX2lubmVyQ2xv
c2VUYWIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUucHJvdG90eXBlLmNsb3Nl
QWxsVGFicyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUubGFz
dE9wZW5lZFRhYklkcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5
cGUuX3RhYnNTZWxlY3RDaGFuZ2VkKToKKwogMjAxMi0wMS0yNiAgVnNldm9sb2QgVmxhc292ICA8
dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTY3JpcHRzIHBh
bmVsOiBmaXggZXZlbnQgZGlzcGF0Y2hpbmcgYmV0d2VlbiBGaWxlU2VsZWN0b3IgYW5kIEVkaXRv
ckNvbnRhaW5lci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRzUGFuZWwuanMKaW5kZXggYTQyOWY1NjE0YzJiN2FkMmMxNzRhMWYzNmQ2OTQxOWU4Y2M3
NzJhNC4uNDM1YjNiMGE3NjVmMmI4YTAwYTFjNzAzYzBlNzM5YzY5YjI0MDU4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAg
LTI1NiwxOCArMjU2LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fZmlsZVNlbGVj
dG9yLmFkZFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwotCi0gICAgICAgIHZhciBsYXN0Vmll
d2VkVVJMID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxhc3RWaWV3ZWRTY3JpcHRGaWxlLmdldCgp
OwotICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxWaWV3U2VsZWN0aW9uUHJvY2Vzc2VkKSB7Ci0g
ICAgICAgICAgICB0aGlzLl9pbml0aWFsVmlld1NlbGVjdGlvblByb2Nlc3NlZCA9IHRydWU7Ci0g
ICAgICAgICAgICAvLyBPcHRpb24gd2UganVzdCBhZGRlZCBpcyB0aGUgb25seSBvcHRpb24gaW4g
ZmlsZXMgc2VsZWN0LgotICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBzaG93IGNvcnJlc3BvbmRp
bmcgc291cmNlIGZyYW1lIGltbWVkaWF0ZWx5LgotICAgICAgICAgICAgdGhpcy5fc2hvd0ZpbGUo
dWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgIC8vIFJlc3RvcmUgb3JpZ2luYWwgdmFsdWUgb2Yg
bGFzdFZpZXdlZFNjcmlwdEZpbGUgYmVjYXVzZQotICAgICAgICAgICAgLy8gc291cmNlIGZyYW1l
IHdhcyBzaG93biBhcyBhIHJlc3VsdCBvZiBpbml0aWFsIGxvYWQuCi0gICAgICAgICAgICBXZWJJ
bnNwZWN0b3Iuc2V0dGluZ3MubGFzdFZpZXdlZFNjcmlwdEZpbGUuc2V0KGxhc3RWaWV3ZWRVUkwp
OwotICAgICAgICB9IGVsc2UgaWYgKHVpU291cmNlQ29kZS51cmwgPT09IGxhc3RWaWV3ZWRVUkwp
Ci0gICAgICAgICAgICB0aGlzLl9zaG93RmlsZSh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlz
Ll9lZGl0b3JDb250YWluZXIudWlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKTsKICAgICB9
LAogCiAgICAgX3VpU291cmNlQ29kZVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtNDE1LDkg
KzQwNCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAg
ICAgIHRoaXMuX2RlYnVnZ2VyUmVzdW1lZCgpOwogCi0gICAgICAgIGRlbGV0ZSB0aGlzLl9pbml0
aWFsVmlld1NlbGVjdGlvblByb2Nlc3NlZDsKICAgICAgICAgZGVsZXRlIHRoaXMuX2N1cmVudFVJ
U291cmNlQ29kZTsKLSAgICAgICAgCiAgICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5lci5yZXNl
dCgpOwogICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHRWaWV3U3RhdHVzQmFySXRlbXMoKTsKIApA
QCAtNDg2LDcgKzQ3Myw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9maWxlU2VsZWN0b3IuaXNTY3JpcHRTb3VyY2VB
ZGRlZCh1aVNvdXJjZUNvZGUpKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIAor
CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX2dldE9yQ3JlYXRlU291cmNlRnJhbWUo
dWlTb3VyY2VDb2RlKTsKICAgICAgICAgaWYgKHRoaXMuX2N1cmVudFVJU291cmNlQ29kZSA9PT0g
dWlTb3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0dXJuIHNvdXJjZUZyYW1lOwpAQCAtNDk2LDkg
KzQ4Myw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLl9lZGl0b3JDb250YWluZXIuc2hvd0ZpbGUodWlTb3VyY2VDb2RlKTsKICAgICAgICAg
dGhpcy5fdXBkYXRlU2NyaXB0Vmlld1N0YXR1c0Jhckl0ZW1zKCk7CiAKLSAgICAgICAgaWYgKHVp
U291cmNlQ29kZS51cmwpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGFzdFZp
ZXdlZFNjcmlwdEZpbGUuc2V0KHVpU291cmNlQ29kZS51cmwpOwotCiAgICAgICAgIHJldHVybiBz
b3VyY2VGcmFtZTsKICAgICB9LAogCkBAIC02MTcsNyArNjAxLDcgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgLy8gQW5vbnltb3VzIHNjcmlwdHMg
YXJlIG5vdCBhZGRlZCB0byBmaWxlcyBzZWxlY3QgYnkgZGVmYXVsdC4KICAgICAgICAgdGhpcy5f
ZmlsZVNlbGVjdG9yLmFkZFVJU291cmNlQ29kZSh1aUxvY2F0aW9uLnVpU291cmNlQ29kZSk7Ci0g
ICAgICAgIAorCiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3Nob3dGaWxlKHVpTG9j
YXRpb24udWlTb3VyY2VDb2RlKTsKICAgICAgICAgc291cmNlRnJhbWUuc2V0RXhlY3V0aW9uTGlu
ZSh1aUxvY2F0aW9uLmxpbmVOdW1iZXIpOwogICAgICAgICB0aGlzLl9leGVjdXRpb25Tb3VyY2VG
cmFtZSA9IHNvdXJjZUZyYW1lOwpAQCAtMTExMiw2ICsxMDk2LDExIEBAIFdlYkluc3BlY3Rvci5F
ZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgIHNldEZpbGVJc0RpcnR5OiBmdW5jdGlv
bih1aVNvdXJjZUNvZGUsIGlzRGlydHkpIHsgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCisgICAgICovCisgICAgdWlT
b3VyY2VDb2RlQWRkZWQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkgeyB9LAorCisgICAgLyoqCiAg
ICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59IG9sZFVJU291
cmNlQ29kZUxpc3QKICAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlPn0gdWlTb3VyY2VDb2RlTGlzdAogICAgICAqLwpAQCAtMTUyOSwxNCArMTUxOCw0NSBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlNpbmdsZUZpbGVFZGl0b3JDb250YWluZXIucHJvdG90
eXBlID0gewogICAgICAgICBpZiAodGhpcy5fY3VycmVudFNvdXJjZUZyYW1lID09PSBzb3VyY2VG
cmFtZSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICB0aGlzLl9pbm5lclNob3dGaWxl
KHVpU291cmNlQ29kZSwgdHJ1ZSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCisgICAgICogQHBhcmFtIHti
b29sZWFufSB1c2VyR2VzdHVyZQorICAgICAqLworICAgIF9pbm5lclNob3dGaWxlOiBmdW5jdGlv
bih1aVNvdXJjZUNvZGUsIHVzZXJHZXN0dXJlKQorICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2N1
cnJlbnRTb3VyY2VGcmFtZSkKICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRTb3VyY2VGcmFtZS5k
ZXRhY2goKTsKIAorICAgICAgICB0aGlzLl9pbml0aWFsVmlld1NlbGVjdGlvblByb2Nlc3NlZCA9
IHRydWU7CisgICAgICAgIAorICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlzLl9kZWxlZ2F0
ZS52aWV3Rm9yRmlsZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICB0aGlzLl9jdXJyZW50U291cmNl
RnJhbWUgPSBzb3VyY2VGcmFtZTsKICAgICAgICAgdGhpcy5fY3VycmVudEZpbGUgPSB1aVNvdXJj
ZUNvZGU7CisgICAgICAgIAorICAgICAgICBpZiAodXNlckdlc3R1cmUpIHsKKyAgICAgICAgICAg
IHRoaXMuX3VzZXJTZWxlY3RlZEZpbGVzID0gdHJ1ZTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5zZXR0aW5ncy5sYXN0Vmlld2VkU2NyaXB0RmlsZS5zZXQodWlTb3VyY2VDb2RlLnVybCk7Cisg
ICAgICAgIH0KIAogICAgICAgICBpZiAoc291cmNlRnJhbWUpCiAgICAgICAgICAgICBzb3VyY2VG
cmFtZS5zaG93KHRoaXMuZWxlbWVudCk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5FZGl0b3JDb250YWluZXIuRXZlbnRzLkVkaXRvclNlbGVjdGVk
LCB1aVNvdXJjZUNvZGUpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQorICAgICAqLworICAgIHVpU291cmNl
Q29kZUFkZGVkOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCisgICAgeworICAgICAgICB2YXIgbGFz
dFZpZXdlZFVSTCA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5sYXN0Vmlld2VkU2NyaXB0RmlsZS5n
ZXQoKTsKKyAgICAgICAgLy8gU2hvdyBmaXJzdCBmaWxlIHRoYXQgd2FzIGFkZGVkIG9yIGZpbGUg
d2l0aCB0aGUgbGFzdCB2aWV3ZWQgdXJsLgorICAgICAgICBpZiAodGhpcy5fdXNlclNlbGVjdGVk
RmlsZXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUudXJs
ID09PSBsYXN0Vmlld2VkVVJMIHx8ICF0aGlzLl9pbml0aWFsVmlld1NlbGVjdGlvblByb2Nlc3Nl
ZCkKKyAgICAgICAgICAgIHRoaXMuX2lubmVyU2hvd0ZpbGUodWlTb3VyY2VDb2RlLCBmYWxzZSk7
CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTU2NCw2ICsxNTg0LDggQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5TaW5nbGVGaWxlRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHRoaXMuX2N1cnJlbnRTb3VyY2VGcmFtZS5kZXRhY2goKTsKICAgICAgICAgdGhpcy5f
Y3VycmVudFNvdXJjZUZyYW1lID0gbnVsbDsKICAgICAgICAgdGhpcy5fY3VycmVudEZpbGUgPSBu
dWxsOworICAgICAgICBkZWxldGUgdGhpcy5faW5pdGlhbFZpZXdTZWxlY3Rpb25Qcm9jZXNzZWQ7
CisgICAgICAgIGRlbGV0ZSB0aGlzLl91c2VyU2VsZWN0ZWRGaWxlczsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkRWRpdG9y
Q29udGFpbmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRF
ZGl0b3JDb250YWluZXIuanMKaW5kZXggOTI0YTlhZWVhZDY2YWNiNjFkNDlhZWRhM2Y3NWFmYmVl
M2ZjNGZmZi4uMTRlZDQ1ODJiNmU5MWJiZTNmZDFkZGQxNTVjMjA3YjE5YTA2MmIyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250
YWluZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRF
ZGl0b3JDb250YWluZXIuanMKQEAgLTQzLDEyICs0MywxOCBAQCBXZWJJbnNwZWN0b3IuVGFiYmVk
RWRpdG9yQ29udGFpbmVyID0gZnVuY3Rpb24oZGVsZWdhdGUpCiAgICAgdGhpcy5fdGFiYmVkUGFu
ZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLkV2ZW50VHlwZXMuVGFi
Q2xvc2VkLCB0aGlzLl90YWJDbG9zZWQsIHRoaXMpOwogICAgIHRoaXMuX3RhYmJlZFBhbmUuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5FdmVudFR5cGVzLlRhYlNlbGVj
dGVkLCB0aGlzLl90YWJTZWxlY3RlZCwgdGhpcyk7CiAKLSAgICB0aGlzLl90YWJJZHMgPSBuZXcg
TWFwKCk7ICAKKyAgICB0aGlzLl90YWJJZHMgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5fZmlsZXMg
PSB7fTsKKyAgICB0aGlzLl9sb2FkZWRVUkxzID0ge307CisKKyAgICB0aGlzLl9wcmV2aW91c2x5
Vmlld2VkRmlsZXNTZXR0aW5nID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmco
InByZXZpb3VzbHlWaWV3ZWRGaWxlcyIsIFtdKTsKKyAgICB0aGlzLl9oaXN0b3J5ID0gbmV3IFdl
Ykluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeSh0aGlzLl9wcmV2aW91c2x5
Vmlld2VkRmlsZXNTZXR0aW5nLmdldCgpKTsKIH0KIAogV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRv
ckNvbnRhaW5lci5fdGFiSWQgPSAwOwogCitXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFp
bmVyLm1heGltYWxQcmV2aW91c2x5Vmlld2VkRmlsZXNDb3VudCA9IDMwOworCiBXZWJJbnNwZWN0
b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBA
dHlwZSB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfQpAQCAtNzEsMTIgKzc3LDI2IEBAIFdlYklu
c3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAqLwogICAg
IHNob3dGaWxlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgeworICAgICAgICB0aGlzLl9p
bm5lclNob3dGaWxlKHVpU291cmNlQ29kZSwgdHJ1ZSk7CisgICAgfSwKKworICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCisgICAg
ICogQHBhcmFtIHtib29sZWFuPX0gdXNlckdlc3R1cmUKKyAgICAgKi8KKyAgICBfaW5uZXJTaG93
RmlsZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCB1c2VyR2VzdHVyZSkKKyAgICB7CiAgICAgICAg
IGlmICh0aGlzLl9jdXJyZW50RmlsZSA9PT0gdWlTb3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAKICAgICAgICAgdGhpcy5fY3VycmVudEZpbGUgPSB1aVNvdXJjZUNvZGU7
Ci0gICAgICAgIHZhciB0YWJJZCA9IHRoaXMuX3RhYklkcy5nZXQodWlTb3VyY2VDb2RlKSB8fCB0
aGlzLl9hcHBlbmRGaWxlVGFiKHVpU291cmNlQ29kZSk7Ci0gICAgICAgIHRoaXMuX3RhYmJlZFBh
bmUuc2VsZWN0VGFiKHRhYklkKTsKKyAgICAgICAgCisgICAgICAgIHZhciB0YWJJZCA9IHRoaXMu
X3RhYklkcy5nZXQodWlTb3VyY2VDb2RlKSB8fCB0aGlzLl9hcHBlbmRGaWxlVGFiKHVpU291cmNl
Q29kZSwgdXNlckdlc3R1cmUpOworICAgICAgICAKKyAgICAgICAgdGhpcy5fdGFiYmVkUGFuZS5z
ZWxlY3RUYWIodGFiSWQsIHVzZXJHZXN0dXJlKTsKKyAgICAgICAgaWYgKHVzZXJHZXN0dXJlKQor
ICAgICAgICAgICAgdGhpcy5fZWRpdG9yU2VsZWN0ZWRCeVVzZXJBY3Rpb24oKTsKKyAgICAgICAg
CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5FZGl0
b3JDb250YWluZXIuRXZlbnRzLkVkaXRvclNlbGVjdGVkLCB0aGlzLl9jdXJyZW50RmlsZSk7CiAg
ICAgfSwKIAogICAgIC8qKgpAQCAtOTAsNiArMTEwLDU1IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRF
ZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKKyAgICAgKi8KKyAgICB1aVNv
dXJjZUNvZGVBZGRlZDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuX3VzZXJTZWxlY3RlZEZpbGVzIHx8IHRoaXMuX2xvYWRlZFVSTHNbdWlTb3VyY2VDb2Rl
LnVybF0pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX2xvYWRlZFVSTHNbdWlT
b3VyY2VDb2RlLnVybF0gPSB0cnVlOworCisgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX2hpc3Rv
cnkuaW5kZXgodWlTb3VyY2VDb2RlLnVybCkKKyAgICAgICAgaWYgKGluZGV4ID09PSAtMSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgdGFiSWQgPSB0aGlzLl90YWJJZHMuZ2V0
KHVpU291cmNlQ29kZSkgfHwgdGhpcy5fYXBwZW5kRmlsZVRhYih1aVNvdXJjZUNvZGUsIGZhbHNl
KTsKKworICAgICAgICAvLyBTZWxlY3QgdGFiIGlmIHRoaXMgZmlsZSB3YXMgdGhlIGxhc3QgdG8g
YmUgc2hvd24uCisgICAgICAgIGlmIChpbmRleCA9PT0gMCkKKyAgICAgICAgICAgIHRoaXMuX2lu
bmVyU2hvd0ZpbGUodWlTb3VyY2VDb2RlLCBmYWxzZSk7CisgICAgfSwKKyAgICAKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQor
ICAgICAqLworICAgIF9lZGl0b3JDbG9zZWRCeVVzZXJBY3Rpb246IGZ1bmN0aW9uKHVpU291cmNl
Q29kZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3VzZXJTZWxlY3RlZEZpbGVzID0gdHJ1ZTsKKyAg
ICAgICAgdGhpcy5faGlzdG9yeS5yZW1vdmUodWlTb3VyY2VDb2RlLnVybCk7CisgICAgICAgIHRo
aXMuX3VwZGF0ZUhpc3RvcnkoKTsKKyAgICB9LAorCisgICAgX2VkaXRvclNlbGVjdGVkQnlVc2Vy
QWN0aW9uOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl91c2VyU2VsZWN0ZWRGaWxl
cyA9IHRydWU7CisgICAgICAgIHRoaXMuX3VwZGF0ZUhpc3RvcnkoKTsKKyAgICB9LAorCisgICAg
X3VwZGF0ZUhpc3Rvcnk6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciB0YWJJZHMgPSB0
aGlzLl90YWJiZWRQYW5lLmxhc3RPcGVuZWRUYWJJZHMoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRv
ckNvbnRhaW5lci5tYXhpbWFsUHJldmlvdXNseVZpZXdlZEZpbGVzQ291bnQpOworICAgICAgICAK
KyAgICAgICAgZnVuY3Rpb24gdGFiSWRUb1VSTCh0YWJJZCkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX2ZpbGVzW3RhYklkXS51cmw7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIHRoaXMuX2hpc3RvcnkudXBkYXRlKHRhYklkcy5tYXAodGFiSWRUb1VSTC5iaW5kKHRo
aXMpKSk7CisgICAgICAgIHRoaXMuX2hpc3Rvcnkuc2F2ZSh0aGlzLl9wcmV2aW91c2x5Vmlld2Vk
RmlsZXNTZXR0aW5nKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9
CiAgICAgICovCiAgICAgX3Rvb2x0aXBGb3JGaWxlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCkBA
IC05OSw4ICsxNjgsOSBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3Rv
dHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZX0gdWlTb3VyY2VDb2RlCisgICAgICogQHBhcmFtIHtib29sZWFuPX0gdXNlckdlc3R1cmUK
ICAgICAgKi8KLSAgICBfYXBwZW5kRmlsZVRhYjogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAg
IF9hcHBlbmRGaWxlVGFiOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIHVzZXJHZXN0dXJlKQogICAg
IHsKICAgICAgICAgdmFyIHZpZXcgPSB0aGlzLl9kZWxlZ2F0ZS52aWV3Rm9yRmlsZSh1aVNvdXJj
ZUNvZGUpOwogICAgICAgICB2YXIgdGl0bGUgPSB0aGlzLl90aXRsZUZvckZpbGUodWlTb3VyY2VD
b2RlKTsKQEAgLTExMCw3ICsxODAsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFp
bmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdGFiSWRzLnB1dCh1aVNvdXJjZUNvZGUs
IHRhYklkKTsKICAgICAgICAgdGhpcy5fZmlsZXNbdGFiSWRdID0gdWlTb3VyY2VDb2RlOwogICAg
ICAgICAKLSAgICAgICAgdGhpcy5fdGFiYmVkUGFuZS5hcHBlbmRUYWIodGFiSWQsIHRpdGxlLCB2
aWV3LCB0b29sdGlwKTsKKyAgICAgICAgdGhpcy5fdGFiYmVkUGFuZS5hcHBlbmRUYWIodGFiSWQs
IHRpdGxlLCB2aWV3LCB0b29sdGlwLCB1c2VyR2VzdHVyZSk7CiAgICAgICAgIHJldHVybiB0YWJJ
ZDsKICAgICB9LAogCkBAIC0xMzEsMTIgKzIwMSwxNiBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRp
dG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICBfdGFiQ2xvc2VkOiBmdW5jdGlvbihldmVu
dCkKICAgICB7CiAgICAgICAgIHZhciB0YWJJZCA9IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyBldmVu
dC5kYXRhLnRhYklkOworICAgICAgICB2YXIgdXNlckdlc3R1cmUgPSAvKiogQHR5cGUge2Jvb2xl
YW59ICovIGV2ZW50LmRhdGEuaXNVc2VyR2VzdHVyZTsKIAogICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlID0gdGhpcy5fZmlsZXNbdGFiSWRdOwogICAgICAgICB0aGlzLl90YWJJZHMucmVtb3ZlKHVp
U291cmNlQ29kZSk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9maWxlc1t0YWJJZF07CiAKLSAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5FZGl0b3JDb250YWluZXIuRXZlbnRzLkVkaXRvckNsb3NlZCwgdWlTb3VyY2VDb2RlKTsKKyAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkVkaXRvckNv
bnRhaW5lci5FdmVudHMuRWRpdG9yQ2xvc2VkLCB1aVNvdXJjZUNvZGUpOworCisgICAgICAgIGlm
ICh1c2VyR2VzdHVyZSkKKyAgICAgICAgICAgIHRoaXMuX2VkaXRvckNsb3NlZEJ5VXNlckFjdGlv
bih1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE0NSwxMSArMjE5LDEwIEBA
IFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgIF90
YWJTZWxlY3RlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgdGFiSWQgPSAv
KiogQHR5cGUge3N0cmluZ30gKi8gZXZlbnQuZGF0YS50YWJJZDsKKyAgICAgICAgdmFyIHVzZXJH
ZXN0dXJlID0gLyoqIEB0eXBlIHtib29sZWFufSAqLyBldmVudC5kYXRhLmlzVXNlckdlc3R1cmU7
CisKICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX2ZpbGVzW3RhYklkXTsKLSAgICAg
ICAgCi0gICAgICAgIGlmICh0aGlzLl9jdXJyZW50RmlsZSA9PT0gdWlTb3VyY2VDb2RlKQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuRWRpdG9yQ29udGFpbmVyLkV2ZW50cy5FZGl0b3JTZWxlY3RlZCwgdWlTb3Vy
Y2VDb2RlKTsKKyAgICAgICAgdGhpcy5faW5uZXJTaG93RmlsZSh1aVNvdXJjZUNvZGUsIHVzZXJH
ZXN0dXJlKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0yMTcsNiArMjkwLDggQEAgV2ViSW5zcGVj
dG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Rh
YklkcyA9IG5ldyBNYXAoKTsKICAgICAgICAgdGhpcy5fZmlsZXMgPSB7fTsKICAgICAgICAgZGVs
ZXRlIHRoaXMuX2N1cnJlbnRGaWxlOworICAgICAgICBkZWxldGUgdGhpcy5fdXNlclNlbGVjdGVk
RmlsZXM7CisgICAgICAgIHRoaXMuX2xvYWRlZFVSTHMgPSB7fTsKICAgICB9LAogCiAgICAgLyoq
CkBAIC0yMjksMyArMzA0LDU0IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIu
cHJvdG90eXBlID0gewogfQogCiBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKKworLyoq
CisgKiBAY29uc3RydWN0b3IKKyAqLworV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5l
ci5IaXN0b3J5ID0gZnVuY3Rpb24odXJscykKK3sKKyAgICB0aGlzLl91cmxzID0gdXJsczsKK30K
KworV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZSA9
IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCisgICAgICovCisgICAgaW5k
ZXg6IGZ1bmN0aW9uKHVybCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl91cmxzLmluZGV4
T2YodXJsKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtBcnJheS48c3RyaW5n
Pn0gdXJscworICAgICAqLworICAgIHVwZGF0ZTogZnVuY3Rpb24odXJscykKKyAgICB7CisgICAg
ICAgIGZvciAodmFyIGkgPSB1cmxzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAg
ICAgICB2YXIgaW5kZXggPSB0aGlzLl91cmxzLmluZGV4T2YodXJsc1tpXSk7CisgICAgICAgICAg
ICBpZiAoaW5kZXggIT09IC0xKQorICAgICAgICAgICAgICAgIHRoaXMuX3VybHMuc3BsaWNlKGlu
ZGV4LCAxKTsKKyAgICAgICAgICAgIHRoaXMuX3VybHMudW5zaGlmdCh1cmxzW2ldKTsKKyAgICAg
ICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCisgICAg
ICovCisgICAgcmVtb3ZlOiBmdW5jdGlvbih1cmwpCisgICAgeworICAgICAgICB2YXIgaW5kZXgg
PSB0aGlzLl91cmxzLmluZGV4T2YodXJsKTsKKyAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkKKyAg
ICAgICAgICAgIHRoaXMuX3VybHMuc3BsaWNlKGluZGV4LCAxKTsKKyAgICB9LAorICAgIAorICAg
IC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNldHRpbmd9IHNldHRpbmcKKyAgICAg
Ki8KKyAgICBzYXZlOiBmdW5jdGlvbihzZXR0aW5nKQorICAgIHsKKyAgICAgICAgc2V0dGluZy5z
ZXQodGhpcy5fdXJscyk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29u
dGFpbmVyLkhpc3RvcnkucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3Qu
cHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UYWJiZWRQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJi
ZWRQYW5lLmpzCmluZGV4IDYyZTE4YTA4MTE3YTVmYTFjYmZjNzI0ZjNjYTkxMGJkOGYxNjdiZjEu
LjRiMjRlODgwZDRiMGE3MGU5YTNhNTRmMWY2ZWRiMTI1NDQ2NzgwNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMKQEAgLTkxLDE0ICs5
MSwxOSBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICogQHBh
cmFtIHtzdHJpbmd9IHRhYlRpdGxlCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVmlld30g
dmlldwogICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gdGFiVG9vbHRpcAorICAgICAqIEBwYXJhbSB7
Ym9vbGVhbj19IHVzZXJHZXN0dXJlCiAgICAgICovCi0gICAgYXBwZW5kVGFiOiBmdW5jdGlvbihp
ZCwgdGFiVGl0bGUsIHZpZXcsIHRhYlRvb2x0aXApCisgICAgYXBwZW5kVGFiOiBmdW5jdGlvbihp
ZCwgdGFiVGl0bGUsIHZpZXcsIHRhYlRvb2x0aXAsIHVzZXJHZXN0dXJlKQogICAgIHsKICAgICAg
ICAgdmFyIHRhYiA9IG5ldyBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZVRhYih0aGlzLCB0aGlzLl90
YWJzRWxlbWVudCwgaWQsIHRhYlRpdGxlLCB0aGlzLl9jbG9zZWFibGVUYWJzLCB2aWV3LCB0YWJU
b29sdGlwKTsKKyAgICAgICAgdGhpcy5fdGFic0J5SWRbaWRdID0gdGFiOwogCiAgICAgICAgIHRo
aXMuX3RhYnMucHVzaCh0YWIpOwotICAgICAgICB0aGlzLl90YWJzQnlJZFtpZF0gPSB0YWI7CiAg
ICAgICAgIHRoaXMuX3RhYnNIaXN0b3J5LnB1c2godGFiKTsKKworICAgICAgICBpZiAodGhpcy5f
dGFic0hpc3RvcnlbMF0gPT09IHRhYikKKyAgICAgICAgICAgIHRoaXMuc2VsZWN0VGFiKHRhYi5p
ZCwgdXNlckdlc3R1cmUpOworCiAgICAgICAgIHRoaXMuX3VwZGF0ZVRhYkVsZW1lbnRzKCk7CiAg
ICAgfSwKIApAQCAtMTA4LDYgKzExMywyMCBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgICovCiAgICAgY2xvc2VUYWI6IGZ1bmN0aW9uKGlkLCB1c2VyR2VzdHVy
ZSkKICAgICB7CisgICAgICAgIHRoaXMuX2lubmVyQ2xvc2VUYWIoaWQsIHVzZXJHZXN0dXJlKTsK
KworICAgICAgICBpZiAodGhpcy5fdGFic0hpc3RvcnkubGVuZ3RoKQorICAgICAgICAgICAgdGhp
cy5zZWxlY3RUYWIodGhpcy5fdGFic0hpc3RvcnlbMF0uaWQsIHVzZXJHZXN0dXJlKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fdXBkYXRlVGFiRWxlbWVudHMoKTsKKyAgICB9LAor
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGlkCisgICAgICogQHBhcmFtIHtib29s
ZWFuPX0gdXNlckdlc3R1cmUKKyAgICAgKi8KKyAgICBfaW5uZXJDbG9zZVRhYjogZnVuY3Rpb24o
aWQsIHVzZXJHZXN0dXJlKQorICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRUYWIgJiYg
dGhpcy5fY3VycmVudFRhYi5pZCA9PT0gaWQpCiAgICAgICAgICAgICB0aGlzLl9oaWRlQ3VycmVu
dFRhYigpOwogCkBAIC0xMTksMjEgKzEzOCwyMCBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0YWIuc2hvd24pCiAgICAgICAgICAgICB0aGlzLl9o
aWRlVGFiRWxlbWVudCh0YWIpOwogCi0gICAgICAgIGlmICh0aGlzLl90YWJzSGlzdG9yeS5sZW5n
dGgpCi0gICAgICAgICAgICB0aGlzLnNlbGVjdFRhYih0aGlzLl90YWJzSGlzdG9yeVswXS5pZCk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVRhYkVsZW1lbnRzKCk7Ci0K
ICAgICAgICAgdmFyIGV2ZW50RGF0YSA9IHsgdGFiSWQ6IGlkLCB2aWV3OiB0YWIudmlldywgaXNV
c2VyR2VzdHVyZTogdXNlckdlc3R1cmUgfTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUuRXZlbnRUeXBlcy5UYWJDbG9zZWQsIGV2
ZW50RGF0YSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICBjbG9zZUFsbFRh
YnM6IGZ1bmN0aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSB1c2VyR2Vz
dHVyZQorICAgICAqLworICAgIGNsb3NlQWxsVGFiczogZnVuY3Rpb24odXNlckdlc3R1cmUpCiAg
ICAgewogICAgICAgICB2YXIgdGFicyA9IHRoaXMuX3RhYnMuc2xpY2UoKTsKICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhpcy5jbG9z
ZVRhYih0YWJzW2ldLmlkLCBmYWxzZSk7CisgICAgICAgICAgICB0aGlzLl9pbm5lckNsb3NlVGFi
KHRhYnNbaV0uaWQsIHVzZXJHZXN0dXJlKTsKKyAgICAgICAgdGhpcy5fdXBkYXRlVGFiRWxlbWVu
dHMoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNjMsNiArMTgxLDE5IEBAIFdlYkluc3BlY3Rv
ci5UYWJiZWRQYW5lLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBh
cmFtIHtudW1iZXJ9IHRhYnNDb3VudAorICAgICAqIEByZXR1cm4ge0FycmF5LjxzdHJpbmc+fQor
ICAgICAqLworICAgIGxhc3RPcGVuZWRUYWJJZHM6IGZ1bmN0aW9uKHRhYnNDb3VudCkKKyAgICB7
CisgICAgICAgIGZ1bmN0aW9uIHRhYlRvVGFiSWQodGFiKSB7CisgICAgICAgICAgICByZXR1cm4g
dGFiLmlkOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX3RhYnNIaXN0b3J5LnNs
aWNlKDAsIHRhYnNDb3VudCkubWFwKHRhYlRvVGFiSWQpOworICAgIH0sCisKKyAgICAvKioKICAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gaWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFiVGl0bGUK
ICAgICAgKi8KQEAgLTI5Niw3ICszMjcsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgb3B0aW9ucyA9IHRoaXMuX3RhYnNTZWxlY3Qu
b3B0aW9uczsKICAgICAgICAgdmFyIHNlbGVjdGVkT3B0aW9uID0gb3B0aW9uc1t0aGlzLl90YWJz
U2VsZWN0LnNlbGVjdGVkSW5kZXhdOwotICAgICAgICB0aGlzLnNlbGVjdFRhYihzZWxlY3RlZE9w
dGlvbi50YWIuaWQpOworICAgICAgICB0aGlzLnNlbGVjdFRhYihzZWxlY3RlZE9wdGlvbi50YWIu
aWQsIHRydWUpOwogICAgIH0sCiAKICAgICBfbWVhc3VyZURyb3BEb3duQnV0dG9uOiBmdW5jdGlv
bigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZTU4ODA5MmZhNzAwMTI1ZDA4OTE5MzU0MjMwMzczZTg0ZTdjMDFlYi4uZGUy
YzBlNzkxMDBiMjEyMDQ0Y2U1MTkxMGI1MjdlNDNhYTUzMjBmNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEyLTAxLTI3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRhYmJlZEVkaXRvckNvbnRhaW5lciBzaG91bGQgc2F2
ZSBvcGVuIHRhYnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NjkxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhpc3RvcnktZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS5odG1sOiBBZGRl
ZC4KKwogMjAxMi0wMS0yNyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNv
bT4KIAogICAgICAgICA8ZmVJbWFnZT4gRE9NIG11dGF0aW9uIHByb2JsZW1zCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2Y4YmVlZTgwY2JhMWJiYjMyNmExZDEwZTczYjlmZGM1ODM1MDc4
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9y
cy1oaXN0b3J5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitUZXN0cyBoaXN0b3J5IHNh
dmluZyBsb2dpYyBpbiBUYWJiZWRFZGl0b3JDb250YWluZXIuCisKK0J1ZyA3NjkxMgorICBoaXN0
b3J5ID0gW10KKyAgaGlzdG9yeSA9IFt1cmxfMV0KKyAgaGlzdG9yeSA9IFt1cmxfMix1cmxfMV0K
KyAgaGlzdG9yeSA9IFt1cmxfMyx1cmxfMix1cmxfMV0KKyAgaGlzdG9yeSA9IFt1cmxfMix1cmxf
Myx1cmxfMV0KKyAgaGlzdG9yeSA9IFt1cmxfMSx1cmxfMix1cmxfM10KKyAgaGlzdG9yeSA9IFt1
cmxfMTEsdXJsXzEsdXJsXzIsdXJsXzNdCisgIGhpc3RvcnkgPSBbdXJsXzEyLHVybF8xMSx1cmxf
MSx1cmxfMix1cmxfM10KKyAgaGlzdG9yeSA9IFt1cmxfMTMsdXJsXzEyLHVybF8xMSx1cmxfMSx1
cmxfMix1cmxfM10KKyAgaGlzdG9yeSA9IFt1cmxfMTIsdXJsXzEzLHVybF8xMSx1cmxfMSx1cmxf
Mix1cmxfM10KKyAgaGlzdG9yeSA9IFt1cmxfMTEsdXJsXzEyLHVybF8xMyx1cmxfMSx1cmxfMix1
cmxfM10KKyAgaGlzdG9yeSA9IFt1cmxfMTIsdXJsXzEzLHVybF8xLHVybF8yLHVybF8zXQorICBo
aXN0b3J5ID0gW3VybF8xMix1cmxfMSx1cmxfMix1cmxfM10KKyAgaGlzdG9yeSA9IFt1cmxfMTQs
dXJsXzEyLHVybF8xLHVybF8yLHVybF8zXQorICBoaXN0b3J5ID0gW3VybF8xNSx1cmxfMTQsdXJs
XzEyLHVybF8xLHVybF8yLHVybF8zXQorICBoaXN0b3J5ID0gW3VybF8xNix1cmxfMTUsdXJsXzE0
LHVybF8xMix1cmxfMSx1cmxfMix1cmxfM10KKyAgaGlzdG9yeSA9IFt1cmxfMTUsdXJsXzE0LHVy
bF8xMix1cmxfMSx1cmxfMix1cmxfM10KKyAgaGlzdG9yeSA9IFt1cmxfMTQsdXJsXzEyLHVybF8x
LHVybF8yLHVybF8zXQorICBoaXN0b3J5ID0gW3VybF8xMix1cmxfMSx1cmxfMix1cmxfM10KKyAg
aGlzdG9yeSA9IFt1cmxfMSx1cmxfMix1cmxfM10KKyAgaGlzdG9yeSA9IFt1cmxfMix1cmxfM10K
KyAgaGlzdG9yeSA9IFt1cmxfM10KKyAgaGlzdG9yeSA9IFtdCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9ycy1oaXN0b3J5Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyYzQy
MWUxMTUzZjAyYTRmM2Q5ZjVjYzZkMzFhYjhhNmFkMjVlMGYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS5odG1sCkBAIC0wLDAg
KzEsNzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgordmFyIHRlc3QgPSBmdW5jdGlvbigpCit7CisgICAgZnVuY3Rpb24gZHVtcEhp
c3RvcnkoaGlzdG9yeSkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIg
IGhpc3RvcnkgPSBbIiArIFN0cmluZyhoaXN0b3J5Ll91cmxzKSArICJdIik7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gdXBkYXRlQW5kRHVtcChoaXN0b3J5LCB1cmxzKQorICAgIHsKKyAgICAgICAg
aGlzdG9yeS51cGRhdGUodXJscyk7CisgICAgICAgIGR1bXBIaXN0b3J5KGhpc3RvcnkpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJlbW92ZUFuZER1bXAoaGlzdG9yeSwgdXJsKQorICAgIHsKKyAg
ICAgICAgaGlzdG9yeS5yZW1vdmUodXJsKTsKKyAgICAgICAgZHVtcEhpc3RvcnkoaGlzdG9yeSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gdXJsKGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJu
ICJ1cmxfIiArIGluZGV4OworICAgIH0KKworICAgIHZhciBoaXN0b3J5ID0gbmV3IFdlYkluc3Bl
Y3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeShbXSk7CisKKyAgICBkdW1wSGlzdG9y
eShoaXN0b3J5KTsKKyAgICAvLyBFbXVsYXRlIG9wZW5pbmcgb2Ygc2V2ZXJhbCB0YWJzLgorICAg
IHVwZGF0ZUFuZER1bXAoaGlzdG9yeSwgW3VybCgxKV0pOworICAgIHVwZGF0ZUFuZER1bXAoaGlz
dG9yeSwgW3VybCgyKSwgdXJsKDEpXSk7CisgICAgdXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJs
KDMpLCB1cmwoMiksIHVybCgxKV0pOworICAgIC8vIEVtdWxhdGUgc3dpdGNoaW5nIGJldHdlZW4g
dGFicy4KKyAgICB1cGRhdGVBbmREdW1wKGhpc3RvcnksIFt1cmwoMiksIHVybCgzKSwgdXJsKDEp
XSk7CisgICAgdXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJsKDEpLCB1cmwoMiksIHVybCgzKV0p
OworICAgIC8vIEVtdWxhdGUgb3BlbmluZyBvZiBzZXZlcmFsIHRhYnMgZnJvbSBhbm90aGVyIHBh
Z2UuCisgICAgdXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJsKDExKV0pOworICAgIHVwZGF0ZUFu
ZER1bXAoaGlzdG9yeSwgW3VybCgxMiksIHVybCgxMSldKTsKKyAgICB1cGRhdGVBbmREdW1wKGhp
c3RvcnksIFt1cmwoMTMpLCB1cmwoMTIpLCB1cmwoMTEpXSk7CisgICAgLy8gLi4uIGFuZCBzd2l0
Y2hpbmcgYmV0d2VlbiB0aGVtLgorICAgIHVwZGF0ZUFuZER1bXAoaGlzdG9yeSwgW3VybCgxMiks
IHVybCgxMyksIHVybCgxMSldKTsKKyAgICB1cGRhdGVBbmREdW1wKGhpc3RvcnksIFt1cmwoMTEp
LCB1cmwoMTIpLCB1cmwoMTMpXSk7CisgICAgLy8gTm93IGNsb3NlIHNvbWUgdGFicy4KKyAgICBy
ZW1vdmVBbmREdW1wKGhpc3RvcnksIHVybCgxMSkpOworICAgIHJlbW92ZUFuZER1bXAoaGlzdG9y
eSwgdXJsKDEzKSk7CisgICAgLy8gTm93IG9wZW4gc29tZSBvdGhlciBpbnN0ZWFkIG9mIHRoZW0u
CisgICAgdXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJsKDE0KSwgdXJsKDEyKV0pOworICAgIHVw
ZGF0ZUFuZER1bXAoaGlzdG9yeSwgW3VybCgxNSksIHVybCgxNCksIHVybCgxMildKTsKKyAgICB1
cGRhdGVBbmREdW1wKGhpc3RvcnksIFt1cmwoMTYpLCB1cmwoMTUpLCB1cmwoMTQpLCB1cmwoMTIp
XSk7CisgICAgLy8gQ2xvc2UgYWxsIG9mIHRoZW0gb25lIGJ5IG9uZS4KKyAgICByZW1vdmVBbmRE
dW1wKGhpc3RvcnksIHVybCgxNikpOworICAgIHJlbW92ZUFuZER1bXAoaGlzdG9yeSwgdXJsKDE1
KSk7CisgICAgcmVtb3ZlQW5kRHVtcChoaXN0b3J5LCB1cmwoMTQpKTsKKyAgICByZW1vdmVBbmRE
dW1wKGhpc3RvcnksIHVybCgxMikpOworICAgIHJlbW92ZUFuZER1bXAoaGlzdG9yeSwgdXJsKDEp
KTsKKyAgICByZW1vdmVBbmREdW1wKGhpc3RvcnksIHVybCgyKSk7CisgICAgcmVtb3ZlQW5kRHVt
cChoaXN0b3J5LCB1cmwoMykpOworCisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVz
dHMgaGlzdG9yeSBzYXZpbmcgbG9naWMgaW4gVGFiYmVkRWRpdG9yQ29udGFpbmVyLjwvcD4KKzxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjkxMiI+QnVn
IDc2OTEyPC9hPgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="125538"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>