<?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>68526</bug_id>
          
          <creation_ts>2011-09-21 06:31:36 -0700</creation_ts>
          <short_desc>Web Inspector: RawSourceCode could be mapped to several UISourceCodes.</short_desc>
          <delta_ts>2011-10-10 09:08:46 -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>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</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>470746</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-09-21 06:31:36 -0700</bug_when>
    <thetext>Web Inspector: RawSourceCode could be mapped to several UISourceCodes.

Replace SourceMapping.uiSourceCode with SourceMapping.uiSourceCodeList as there could be more then one UISourceCode associated with a RawSourceCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470750</commentid>
    <comment_count>1</comment_count>
      <attachid>108143</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-09-21 06:35:40 -0700</bug_when>
    <thetext>Created attachment 108143
Patch.

Based on patch attached to https://bugs.webkit.org/show_bug.cgi?id=68524.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472150</commentid>
    <comment_count>2</comment_count>
      <attachid>108143</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-09-23 03:50:59 -0700</bug_when>
    <thetext>Comment on attachment 108143
Patch.

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

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:134
&gt; +            // FIXME: uiSourceCodeList may contain more then one entry.

What prevents you from iterating though all uiSourceCodeList elements in this change?

&gt; Source/WebCore/inspector/front-end/SourceFile.js:205
&gt; +        return [this._uiSourceCode];

Why not keep this list in a field to avoid creating it on each call?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474747</commentid>
    <comment_count>3</comment_count>
      <attachid>109025</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-09-28 08:51:13 -0700</bug_when>
    <thetext>Created attachment 109025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474750</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-09-28 08:53:33 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 108143 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108143&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:134
&gt; &gt; +            // FIXME: uiSourceCodeList may contain more then one entry.
&gt; 
&gt; What prevents you from iterating though all uiSourceCodeList elements in this change?

Removed those fixmes, but added one in ScriptsPanel._uiSourceCodeReplaced to keep patch size small.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/SourceFile.js:205
&gt; &gt; +        return [this._uiSourceCode];
&gt; 
&gt; Why not keep this list in a field to avoid creating it on each call?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474753</commentid>
    <comment_count>5</comment_count>
      <attachid>109027</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-09-28 08:58:24 -0700</bug_when>
    <thetext>Created attachment 109027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475236</commentid>
    <comment_count>6</comment_count>
      <attachid>109027</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-28 22:46:14 -0700</bug_when>
    <thetext>Comment on attachment 109027
Patch

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

&gt; LayoutTests/inspector/debugger/raw-source-code.html:106
&gt;              var rawSourceCode = createRawSourceCode(script, null);

You probably need a new test for this functionality.

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:462
&gt; +        var uiLocation = this._rawSourceCode.sourceMapping.rawLocationToUILocation(this._callFrame.location);

Again, use rawLocationToUILocation. I don&apos;t get your FIXME in the RawSourceCode suggesting the opposite. Are you expecting RawSourceCode to lose this._sourceMapping member?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475327</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-09-29 02:16:39 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 109027 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109027&amp;action=review
&gt; 
&gt; &gt; LayoutTests/inspector/debugger/raw-source-code.html:106
&gt; &gt;              var rawSourceCode = createRawSourceCode(script, null);
&gt; 
&gt; You probably need a new test for this functionality.

There is no new functionality it this change, it&apos;s just a refactoring. Let me put all the pieces together and add integration tests for compiler source maps.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:462
&gt; &gt; +        var uiLocation = this._rawSourceCode.sourceMapping.rawLocationToUILocation(this._callFrame.location);
&gt; 
&gt; Again, use rawLocationToUILocation. I don&apos;t get your FIXME in the RawSourceCode suggesting the opposite. Are you expecting RawSourceCode to lose this._sourceMapping member?

FIXME in the RawSourceCode suggests that conversion methods should be a part of SourceMapping interface because sometimes RawSourceCode don&apos;t have source mapping right after creation (e.g. formatting is in progress).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476029</commentid>
    <comment_count>8</comment_count>
      <attachid>109027</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-30 04:47:43 -0700</bug_when>
    <thetext>Comment on attachment 109027
Patch

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

&gt;&gt;&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:462
&gt;&gt;&gt; +        var uiLocation = this._rawSourceCode.sourceMapping.rawLocationToUILocation(this._callFrame.location);
&gt;&gt; 
&gt;&gt; Again, use rawLocationToUILocation. I don&apos;t get your FIXME in the RawSourceCode suggesting the opposite. Are you expecting RawSourceCode to lose this._sourceMapping member?
&gt; 
&gt; FIXME in the RawSourceCode suggests that conversion methods should be a part of SourceMapping interface because sometimes RawSourceCode don&apos;t have source mapping right after creation (e.g. formatting is in progress).

Please add FIXME suggesting doing rawSourceCode.toUILocation()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480974</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-10-10 09:08:46 -0700</bug_when>
    <thetext>Committed r97063: &lt;http://trac.webkit.org/changeset/97063&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108143</attachid>
            <date>2011-09-21 06:35:40 -0700</date>
            <delta_ts>2011-09-28 08:51:04 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16068</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZjYzMWE5Li4xMTcyOWEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTEtMDkt
MjEgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogUmF3U291cmNlQ29kZSBjb3VsZCBiZSBtYXBwZWQgdG8gc2V2ZXJhbCBV
SVNvdXJjZUNvZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njg1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291cmNlLWNvZGUuaHRtbDoKKworMjAxMS0w
OS0yMSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKwogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBtaWdyYXRlIFJhd1NvdXJjZUNvZGUgY2xpZW50cyB0byBTb3VyY2VN
YXBwaW5nIGNsYXNzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njg1MjQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3Jhdy1zb3VyY2UtY29kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jh
dy1zb3VyY2UtY29kZS5odG1sCmluZGV4IDU2OTk5ZGUuLjFmOTllZWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291cmNlLWNvZGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmF3LXNvdXJjZS1jb2RlLmh0bWwKQEAgLTEw
Niw3ICsxMDYsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciByYXdTb3VyY2VD
b2RlID0gY3JlYXRlUmF3U291cmNlQ29kZShzY3JpcHQsIG51bGwpOwogCiAgICAgICAgICAgICB2
YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKLSAgICAgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBpbmcudWlTb3Vy
Y2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291
cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscygiZm9vLmpzIiwgdWlTb3VyY2VDb2RlLnVybCk7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCB1aVNvdXJjZUNvZGUuaXNDb250ZW50
U2NyaXB0KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHJhd1NvdXJj
ZUNvZGUsIHVpU291cmNlQ29kZS5yYXdTb3VyY2VDb2RlKTsKQEAgLTEzNiw3ICsxMzcsOSBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIGZ1bmN0aW9uIG1hcHBpbmdSZWFkeShldmVudCkK
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUo
IWV2ZW50LmRhdGEub2xkU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgdmFyIHVpU291cmNl
Q29kZSA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGU7CisgICAgICAg
ICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmc7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291cmNlTWFw
cGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoImluZGV4Lmh0bWwiLCB1aVNvdXJj
ZUNvZGUudXJsKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhm
YWxzZSwgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCk7CiAgICAgICAgICAgICAgICAgdWlT
b3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50KTsKQEAgLTE2MSw3ICsx
NjQsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0g
Y3JlYXRlUmF3U291cmNlQ29kZShzY3JpcHQxLCByZXNvdXJjZSk7CiAKICAgICAgICAgICAgIHZh
ciBzb3VyY2VNYXBwaW5nID0gcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nOwotICAgICAgICAg
ICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291cmNlTWFwcGluZy51aVNvdXJj
ZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3Vy
Y2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKCJpbmRleC5odG1sIiwgdWlTb3VyY2VDb2RlLnVybCk7CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgdWlTb3VyY2VDb2RlLmlzQ29u
dGVudFNjcmlwdCk7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlk
UmVxdWVzdENvbnRlbnQpOwpAQCAtMTg4LDcgKzE5Miw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
ICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSBjcmVhdGVSYXdTb3VyY2VDb2RlKHNjcmlwdCwg
cmVzb3VyY2UpOwogCiAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNv
ZGUuc291cmNlTWFwcGluZzsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VN
YXBwaW5nLnVpU291cmNlQ29kZTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKDEsIHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClb
MF07CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENv
bnRlbnQpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudChtaW1lVHlw
ZSwgY29udGVudCkKQEAgLTIwMyw3ICsyMDgsMTAgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIG1hcHBpbmdSZWFkeUFmdGVyRWRpdCgpCiAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZS5y
ZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudEFmdGVyRWRpdCk7CisgICAgICAgICAgICAg
ICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmc7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291cmNlTWFwcGluZy51
aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07CisgICAgICAgICAgICAg
ICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50QWZ0ZXJFZGl0
KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRl
bnRBZnRlckVkaXQobWltZVR5cGUsIGNvbnRlbnQpCkBAIC0yMjgsNyArMjM2LDEwIEBAIGZ1bmN0
aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiByZXF1ZXN0Q29udGVudCgpCiAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVp
U291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudE9uZVNjcmlwdCk7Cisg
ICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1h
cHBpbmc7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291
cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07Cisg
ICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250
ZW50T25lU2NyaXB0KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlk
UmVxdWVzdENvbnRlbnRPbmVTY3JpcHQobWltZVR5cGUsIGNvbnRlbnQpCkBAIC0yNDQsNyArMjU1
LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiByZXF1ZXN0Q29u
dGVudFR3b1NjcmlwdHMoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJhd1NvdXJj
ZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVz
dENvbnRlbnRUd29TY3JpcHRzKTsKKyAgICAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9
IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscygxLCBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKS5sZW5n
dGgpOworICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVp
U291cmNlQ29kZUxpc3QoKVswXTsKKyAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVz
dENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnRUd29TY3JpcHRzKTsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnRUd29TY3JpcHRzKG1pbWVUeXBl
LCBjb250ZW50KQpAQCAtMjU5LDcgKzI3MywxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAg
ICAgICAgZnVuY3Rpb24gcmVxdWVzdENvbnRlbnRSZXNvdXJjZSgpCiAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZS5y
ZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudFJlc291cmNlKTsKKyAgICAgICAgICAgICAg
ICB2YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCBzb3VyY2VNYXBwaW5nLnVp
U291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKKyAgICAgICAgICAgICAg
ICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnRSZXNvdXJjZSk7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50
UmVzb3VyY2UobWltZVR5cGUsIGNvbnRlbnQpCkBAIC0yODEsNyArMjk4LDggQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IGNyZWF0ZVJhd1NvdXJjZUNv
ZGUoc2NyaXB0LCByZXNvdXJjZSwgZmFsc2UpOwogCiAgICAgICAgICAgICB2YXIgc291cmNlTWFw
cGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKLSAgICAgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgp
Lmxlbmd0aCk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51
aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAgICAgICBjaGVja1VJTG9jYXRpb24odWlTb3Vy
Y2VDb2RlLCAxLCAyLCBzb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGNyZWF0
ZVJhd0xvY2F0aW9uKDEsIDIpKSk7CiAgICAgICAgICAgICBjaGVja1Jhd0xvY2F0aW9uKHNjcmlw
dCwgMSwgMiwgc291cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxLCAyKSk7CiAg
ICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQp
OwpAQCAtMjk5LDcgKzMxNyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgZnVuY3Rp
b24gcmVxdWVzdEZvcm1hdHRlZENvbnRlbnQoKQogICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgIHZhciBzb3VyY2VNYXBwaW5nID0gcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nOwotICAg
ICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29k
ZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCBzb3VyY2VN
YXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKICAgICAg
ICAgICAgICAgICBjaGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlLCAyLCA0LCBzb3VyY2VNYXBw
aW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGNyZWF0ZVJhd0xvY2F0aW9uKDEsIDIpKSk7CiAg
ICAgICAgICAgICAgICAgY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDEsIDIsIHNvdXJjZU1hcHBp
bmcudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMiwgNCkpOwogICAgICAgICAgICAgICAgIHVpU291
cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Rm9ybWF0dGVkQ29udGVudCk7CkBAIC0z
MTcsNyArMzM2LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBmdW5jdGlvbiByZXF1
ZXN0Tm90Rm9ybWF0dGVkQ29udGVudCgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
dmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmc7Ci0gICAgICAg
ICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBp
bmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmFyIHVpU291
cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBdOwogICAgICAgICAg
ICAgICAgIGNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDEsIDIsIHNvdXJjZU1hcHBpbmcu
cmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMSwgMikpKTsKICAgICAg
ICAgICAgICAgICBjaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMSwgMiwgc291cmNlTWFwcGluZy51
aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxLCAyKSk7CiAgICAgICAgICAgICAgICAgdWlTb3VyY2VD
b2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3ROb3RGb3JtYXR0ZWRDb250ZW50KTsKQEAgLTM0
Niw3ICszNjYsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNr
TWFwcGluZygpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBp
bmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmc7Ci0gICAgICAgICAgICAgICAgdmFyIHVp
U291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2Rl
TGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJj
ZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBdOwogICAgICAgICAgICAgICAgIGNoZWNrVUlM
b2NhdGlvbih1aVNvdXJjZUNvZGUsIDIsIDQsIHNvdXJjZU1hcHBpbmcucmF3TG9jYXRpb25Ub1VJ
TG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMSwgMikpKTsKICAgICAgICAgICAgICAgICBjaGVj
a1Jhd0xvY2F0aW9uKHNjcmlwdCwgMSwgMiwgc291cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdM
b2NhdGlvbigyLCA0KSk7CiAgICAgICAgICAgICAgICAgbmV4dCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI5
NTdhMjYuLmM4MzkxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMS0wOS0yMSAg
UGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSYXdTb3VyY2VDb2RlIGNvdWxkIGJlIG1hcHBlZCB0byBzZXZlcmFsIFVJU291
cmNlQ29kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02ODUyNgorCisgICAgICAgIFJlcGxhY2UgU291cmNlTWFwcGluZy51aVNvdXJjZUNvZGUgd2l0
aCBTb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QgYXMgdGhlcmUgY291bGQgYmUgbW9yZQor
ICAgICAgICB0aGVuIG9uZSBVSVNvdXJjZUNvZGUgYXNzb2NpYXRlZCB3aXRoIGEgUmF3U291cmNl
Q29kZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fc291
cmNlTWFwcGluZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLl91cGRhdGVTb3VyY2VNYXBwaW5nKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fcmVzdG9yZUJy
ZWFrcG9pbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJhbWUu
cHJvdG90eXBlLmdldCB1cmwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90eXBlLmNhblNldENvbnRlbnQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxSZXNvdXJjZUJpbmRp
bmcucHJvdG90eXBlLnNldENvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
U291cmNlRmlsZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3Rv
dHlwZS5fc2F2ZVNvdXJjZU1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJhd1NvdXJj
ZUNvZGUuUGxhaW5Tb3VyY2VNYXBwaW5nLnByb3RvdHlwZS51aVNvdXJjZUNvZGVMaXN0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcu
cHJvdG90eXBlLnVpU291cmNlQ29kZUxpc3QpOgorCisyMDExLTA5LTIxICBQYXZlbCBQb2Rpdmls
b3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1p
Z3JhdGUgUmF3U291cmNlQ29kZSBjbGllbnRzIHRvIFNvdXJjZU1hcHBpbmcgY2xhc3MuCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODUyNAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggZGE1ZTU0OS4uNDZlNDEwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtMTI0LDE0ICsxMjQsMTUgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgIF9zb3VyY2VNYXBw
aW5nVXBkYXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgcmF3U291cmNl
Q29kZSA9IGV2ZW50LnRhcmdldDsKLSAgICAgICAgdmFyIG9sZFVJU291cmNlQ29kZSA9IGV2ZW50
LmRhdGEub2xkVUlTb3VyY2VDb2RlOwotICAgICAgICB0aGlzLl91cGRhdGVTb3VyY2VNYXBwaW5n
KHJhd1NvdXJjZUNvZGUsIG9sZFVJU291cmNlQ29kZSk7CisgICAgICAgIHZhciBvbGRTb3VyY2VN
YXBwaW5nID0gZXZlbnQuZGF0YS5vbGRTb3VyY2VNYXBwaW5nOworICAgICAgICB0aGlzLl91cGRh
dGVTb3VyY2VNYXBwaW5nKHJhd1NvdXJjZUNvZGUsIG9sZFNvdXJjZU1hcHBpbmcpOwogICAgIH0s
CiAKLSAgICBfdXBkYXRlU291cmNlTWFwcGluZzogZnVuY3Rpb24ocmF3U291cmNlQ29kZSwgb2xk
VUlTb3VyY2VDb2RlKQorICAgIF91cGRhdGVTb3VyY2VNYXBwaW5nOiBmdW5jdGlvbihyYXdTb3Vy
Y2VDb2RlLCBvbGRTb3VyY2VNYXBwaW5nKQogICAgIHsKLSAgICAgICAgaWYgKG9sZFVJU291cmNl
Q29kZSkgewotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludE1h
bmFnZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUob2xkVUlTb3VyY2VDb2RlKTsKKyAgICAg
ICAgaWYgKG9sZFNvdXJjZU1hcHBpbmcpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiB1aVNvdXJj
ZUNvZGVMaXN0IG1heSBjb250YWluIG1vcmUgdGhlbiBvbmUgZW50cnkuCisgICAgICAgICAgICB2
YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50TWFuYWdlci5icmVha3BvaW50c0ZvclVJ
U291cmNlQ29kZShvbGRTb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXSk7CiAgICAg
ICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKSB7CiAgICAgICAgICAg
ICAgICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50c1tsaW5lTnVtYmVyXTsKICAgICAgICAg
ICAgICAgICB0aGlzLl9icmVha3BvaW50UmVtb3ZlZChicmVha3BvaW50KTsKQEAgLTE0MiwxOCAr
MTQzLDIxIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9pbnRzKHJhd1NvdXJjZUNvZGUpOwog
ICAgICAgICB0aGlzLl9yZXN0b3JlQ29uc29sZU1lc3NhZ2VzKHJhd1NvdXJjZUNvZGUpOwogCi0g
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcudWlT
b3VyY2VDb2RlOwotICAgICAgICBpZiAoIW9sZFVJU291cmNlQ29kZSkKLSAgICAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlKTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICB2YXIgZXZlbnREYXRhID0geyB1aVNvdXJjZUNvZGU6IHVp
U291cmNlQ29kZSwgb2xkVUlTb3VyY2VDb2RlOiBvbGRVSVNvdXJjZUNvZGUgfTsKKyAgICAgICAg
aWYgKCFvbGRTb3VyY2VNYXBwaW5nKSB7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlTGlz
dCA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCk7CisgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZUxpc3QubGVuZ3RoOyArK2kp
CisgICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1
aVNvdXJjZUNvZGVMaXN0W2ldKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiB1aVNvdXJjZUNvZGVMaXN0IG1heSBjb250YWluIG1vcmUgdGhlbiBvbmUgZW50cnkuCisg
ICAgICAgICAgICB2YXIgZXZlbnREYXRhID0geyB1aVNvdXJjZUNvZGU6IHJhd1NvdXJjZUNvZGUu
c291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF0sIG9sZFVJU291cmNlQ29kZTogb2xk
U291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF0gfTsKICAgICAgICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgZXZlbnREYXRhKTsKICAgICAgICAg
fQogICAgIH0sCiAKICAgICBfcmVzdG9yZUJyZWFrcG9pbnRzOiBmdW5jdGlvbihyYXdTb3VyY2VD
b2RlKQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHJhd1NvdXJjZUNvZGUuc291
cmNlTWFwcGluZy51aVNvdXJjZUNvZGU7CisgICAgICAgIC8vIEZJWE1FOiB1aVNvdXJjZUNvZGVM
aXN0IG1heSBjb250YWluIG1vcmUgdGhlbiBvbmUgZW50cnkuCisgICAgICAgIHZhciB1aVNvdXJj
ZUNvZGUgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBd
OwogICAgICAgICB0aGlzLl9icmVha3BvaW50TWFuYWdlci51aVNvdXJjZUNvZGVBZGRlZCh1aVNv
dXJjZUNvZGUpOwogICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50TWFu
YWdlci5icmVha3BvaW50c0ZvclVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICBm
b3IgKHZhciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKQpAQCAtNDQ5LDggKzQ1MywxMCBAQCBX
ZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgIGdl
dCB1cmwoKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Jhd1NvdXJjZUNvZGUgJiYgdGhpcy5f
cmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jh
d1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGUudXJsOworICAgICAgICBpZiAo
IXRoaXMuX3Jhd1NvdXJjZUNvZGUgfHwgIXRoaXMuX3Jhd1NvdXJjZUNvZGUuc291cmNlTWFwcGlu
ZykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIHVpTG9jYXRpb24gPSB0aGlzLl9y
YXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24odGhpcy5f
Y2FsbEZyYW1lLmxvY2F0aW9uKTsKKyAgICAgICAgcmV0dXJuIHVpTG9jYXRpb24udWlTb3VyY2VD
b2RlLnVybDsKICAgICB9LAogCiAgICAgZ2V0IHNjb3BlQ2hhaW4oKQpAQCAtNTMyLDcgKzUzOCw3
IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsUmVzb3VyY2VCaW5kaW5n
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlzLl9wcmVzZW50
YXRpb25Nb2RlbC5fcmF3U291cmNlQ29kZUZvclNjcmlwdChyZXNvdXJjZS51cmwpCiAgICAgICAg
IGlmICghcmF3U291cmNlQ29kZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmNhbkVkaXRTY3JpcHRTb3VyY2UocmF3U291
cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZSk7CisgICAgICAgIHJldHVybiB0aGlz
Ll9wcmVzZW50YXRpb25Nb2RlbC5jYW5FZGl0U2NyaXB0U291cmNlKHJhd1NvdXJjZUNvZGUuc291
cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF0pOwogICAgIH0sCiAKICAgICBzZXRDb250
ZW50OiBmdW5jdGlvbihyZXNvdXJjZSwgY29udGVudCwgbWFqb3JDaGFuZ2UsIHVzZXJDYWxsYmFj
aykKQEAgLTU0Niw3ICs1NTIsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAotICAgICAgICByZXNvdXJjZS5yZXF1ZXN0Q29udGVudCh0aGlzLl9zZXRDb250
ZW50V2l0aEluaXRpYWxDb250ZW50LmJpbmQodGhpcywgcmF3U291cmNlQ29kZS5zb3VyY2VNYXBw
aW5nLnVpU291cmNlQ29kZSwgY29udGVudCwgdXNlckNhbGxiYWNrKSk7CisgICAgICAgIHJlc291
cmNlLnJlcXVlc3RDb250ZW50KHRoaXMuX3NldENvbnRlbnRXaXRoSW5pdGlhbENvbnRlbnQuYmlu
ZCh0aGlzLCByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBd
LCBjb250ZW50LCB1c2VyQ2FsbGJhY2spKTsKICAgICB9LAogCiAgICAgX3NldENvbnRlbnRXaXRo
SW5pdGlhbENvbnRlbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgY29udGVudCwgdXNlckNhbGxi
YWNrLCBvbGRDb250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGaWxlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VGaWxlLmpzCmluZGV4IDBmNDc2MTUuLjMwYTljNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKQEAgLTE2NywxMSArMTY3
LDExIEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKIAogICAgIF9z
YXZlU291cmNlTWFwcGluZzogZnVuY3Rpb24oc291cmNlTWFwcGluZykKICAgICB7Ci0gICAgICAg
IHZhciBvbGRVSVNvdXJjZUNvZGU7CisgICAgICAgIHZhciBvbGRTb3VyY2VNYXBwaW5nOwogICAg
ICAgICBpZiAodGhpcy5fc291cmNlTWFwcGluZykKLSAgICAgICAgICAgIG9sZFVJU291cmNlQ29k
ZSA9IHRoaXMuX3NvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlOworICAgICAgICAgICAgb2xkU291
cmNlTWFwcGluZyA9IHRoaXMuX3NvdXJjZU1hcHBpbmc7CiAgICAgICAgIHRoaXMuX3NvdXJjZU1h
cHBpbmcgPSBzb3VyY2VNYXBwaW5nOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuU291cmNlTWFwcGluZ1VwZGF0
ZWQsIHsgb2xkVUlTb3VyY2VDb2RlOiBvbGRVSVNvdXJjZUNvZGUgfSk7CisgICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50
cy5Tb3VyY2VNYXBwaW5nVXBkYXRlZCwgeyBvbGRTb3VyY2VNYXBwaW5nOiBvbGRTb3VyY2VNYXBw
aW5nIH0pOwogICAgIH0KIH0KIApAQCAtMjAwLDkgKzIwMCw5IEBAIFdlYkluc3BlY3Rvci5SYXdT
b3VyY2VDb2RlLlBsYWluU291cmNlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biByYXdMb2NhdGlvbjsKICAgICB9LAogCi0gICAgZ2V0IHVpU291cmNlQ29kZSgpCisgICAgdWlT
b3VyY2VDb2RlTGlzdDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Vp
U291cmNlQ29kZTsKKyAgICAgICAgcmV0dXJuIFt0aGlzLl91aVNvdXJjZUNvZGVdOwogICAgIH0K
IH0KIApAQCAtMjMwLDkgKzIzMCw5IEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkZvcm1h
dHRlZFNvdXJjZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gcmF3TG9jYXRp
b247CiAgICAgfSwKIAotICAgIGdldCB1aVNvdXJjZUNvZGUoKQorICAgIHVpU291cmNlQ29kZUxp
c3Q6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl91aVNvdXJjZUNvZGU7
CisgICAgICAgIHJldHVybiBbdGhpcy5fdWlTb3VyY2VDb2RlXTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109025</attachid>
            <date>2011-09-28 08:51:13 -0700</date>
            <delta_ts>2011-09-28 08:58:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68526-20110928195111.patch</filename>
            <type>text/plain</type>
            <size>23120</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYyMTgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOWI3MDI1ZjY1ODY4YTViMTRkYzQ0
ZWM4YTczYWU2NTBmMDE0MWIwLi4yODUwYjhjODc4NzdhZDI3ZWVjZGU0OGY2YTVhNTMwOTU1YzM4
MGNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDktMjggIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmF3U291
cmNlQ29kZSBjb3VsZCBiZSBtYXBwZWQgdG8gc2V2ZXJhbCBVSVNvdXJjZUNvZGVzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg1MjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9yYXctc291cmNlLWNvZGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0cy1wYW5lbC5odG1sOgorCisyMDExLTA5LTIxICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rp
dmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1pZ3JhdGUgUmF3
U291cmNlQ29kZSBjbGllbnRzIHRvIFNvdXJjZU1hcHBpbmcgY2xhc3MuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODUyNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnQtbWFuYWdlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yYXct
c291cmNlLWNvZGUuaHRtbDoKKwogMjAxMS0wOS0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCAyIDY0LWJpdHMgRGVi
dWcgY3Jhc2hlcnMgb24gR1RLLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Jhdy1zb3VyY2UtY29kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jhdy1zb3VyY2UtY29kZS5odG1sCmluZGV4IDU2OTk5ZGU2YzI2NzBmNDY5YWFhNDIzNTA2
MDgxZDA1NmI5MTQ5YTAuLjFmOTllZWQ3MmExODUwYTJhNjA2ZjQzZWQwN2EyZTQ2ZWNhNGE5OGUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291cmNlLWNv
ZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmF3LXNvdXJjZS1j
b2RlLmh0bWwKQEAgLTEwNiw3ICsxMDYsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
IHZhciByYXdTb3VyY2VDb2RlID0gY3JlYXRlUmF3U291cmNlQ29kZShzY3JpcHQsIG51bGwpOwog
CiAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFw
cGluZzsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291
cmNlQ29kZTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJj
ZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiZm9vLmpzIiwgdWlTb3VyY2VDb2RlLnVy
bCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCB1aVNvdXJj
ZUNvZGUuaXNDb250ZW50U2NyaXB0KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZS5yYXdTb3VyY2VDb2RlKTsKQEAgLTEz
Niw3ICsxMzcsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIGZ1bmN0aW9uIG1hcHBp
bmdSZWFkeShldmVudCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydFRydWUoIWV2ZW50LmRhdGEub2xkU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAg
ICAgdmFyIHVpU291cmNlQ29kZSA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJj
ZUNvZGU7CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2Rl
LnNvdXJjZU1hcHBpbmc7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHMoMSwgc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAg
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0
KClbMF07CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoImluZGV4
Lmh0bWwiLCB1aVNvdXJjZUNvZGUudXJsKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyhmYWxzZSwgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCk7CiAgICAg
ICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50
KTsKQEAgLTE2MSw3ICsxNjQsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciBy
YXdTb3VyY2VDb2RlID0gY3JlYXRlUmF3U291cmNlQ29kZShzY3JpcHQxLCByZXNvdXJjZSk7CiAK
ICAgICAgICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gcmF3U291cmNlQ29kZS5zb3VyY2VNYXBw
aW5nOwotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3Vy
Y2VDb2RlOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291cmNl
TWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJpbmRleC5odG1sIiwgdWlTb3VyY2VDb2Rl
LnVybCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgdWlT
b3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCk7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVx
dWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQpOwpAQCAtMTg4LDcgKzE5Miw4IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSBjcmVhdGVSYXdTb3Vy
Y2VDb2RlKHNjcmlwdCwgcmVzb3VyY2UpOwogCiAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGlu
ZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKLSAgICAgICAgICAgIHZhciB1aVNvdXJj
ZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLmxl
bmd0aCk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNv
dXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRl
bnQoZGlkUmVxdWVzdENvbnRlbnQpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0
Q29udGVudChtaW1lVHlwZSwgY29udGVudCkKQEAgLTIwMyw3ICsyMDgsMTAgQEAgZnVuY3Rpb24g
dGVzdCgpCiAKICAgICAgICAgICAgIGZ1bmN0aW9uIG1hcHBpbmdSZWFkeUFmdGVyRWRpdCgpCiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5n
LnVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudEFmdGVyRWRpdCk7
CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJj
ZU1hcHBpbmc7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwg
c291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07
CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RD
b250ZW50QWZ0ZXJFZGl0KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkUmVxdWVzdENvbnRlbnRBZnRlckVkaXQobWltZVR5cGUsIGNvbnRlbnQpCkBAIC0yMjgsNyAr
MjM2LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiByZXF1ZXN0
Q29udGVudCgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5z
b3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVu
dE9uZVNjcmlwdCk7CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3Vy
Y2VDb2RlLnNvdXJjZU1hcHBpbmc7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHMoMSwgc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAg
ICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNv
ZGVMaXN0KClbMF07CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50
KGRpZFJlcXVlc3RDb250ZW50T25lU2NyaXB0KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnRPbmVTY3JpcHQobWltZVR5cGUsIGNvbnRlbnQp
CkBAIC0yNDQsNyArMjU1LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5j
dGlvbiByZXF1ZXN0Q29udGVudFR3b1NjcmlwdHMoKQogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGUucmVxdWVzdENv
bnRlbnQoZGlkUmVxdWVzdENvbnRlbnRUd29TY3JpcHRzKTsKKyAgICAgICAgICAgICAgICB2YXIg
c291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCBzb3VyY2VNYXBwaW5nLnVpU291cmNl
Q29kZUxpc3QoKS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBz
b3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKKyAgICAgICAgICAgICAgICB1aVNv
dXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnRUd29TY3JpcHRzKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnRUd29T
Y3JpcHRzKG1pbWVUeXBlLCBjb250ZW50KQpAQCAtMjU5LDcgKzI3MywxMCBAQCBmdW5jdGlvbiB0
ZXN0KCkKIAogICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdENvbnRlbnRSZXNvdXJjZSgpCiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5n
LnVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudFJlc291cmNlKTsK
KyAgICAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNl
TWFwcGluZzsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCBz
b3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOworICAgICAgICAgICAgICAg
IHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsK
KyAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENv
bnRlbnRSZXNvdXJjZSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGRp
ZFJlcXVlc3RDb250ZW50UmVzb3VyY2UobWltZVR5cGUsIGNvbnRlbnQpCkBAIC0yODEsNyArMjk4
LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IGNy
ZWF0ZVJhd1NvdXJjZUNvZGUoc2NyaXB0LCByZXNvdXJjZSwgZmFsc2UpOwogCiAgICAgICAgICAg
ICB2YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKLSAgICAg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBpbmcudWlT
b3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0g
c291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAgICAgICBjaGVja1VJ
TG9jYXRpb24odWlTb3VyY2VDb2RlLCAxLCAyLCBzb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9V
SUxvY2F0aW9uKGNyZWF0ZVJhd0xvY2F0aW9uKDEsIDIpKSk7CiAgICAgICAgICAgICBjaGVja1Jh
d0xvY2F0aW9uKHNjcmlwdCwgMSwgMiwgc291cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdMb2Nh
dGlvbigxLCAyKSk7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlk
UmVxdWVzdENvbnRlbnQpOwpAQCAtMjk5LDcgKzMxNyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
ICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdEZvcm1hdHRlZENvbnRlbnQoKQogICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gcmF3U291cmNlQ29kZS5zb3Vy
Y2VNYXBwaW5nOwotICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBw
aW5nLnVpU291cmNlQ29kZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygxLCBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOworICAgICAg
ICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxp
c3QoKVswXTsKICAgICAgICAgICAgICAgICBjaGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlLCAy
LCA0LCBzb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGNyZWF0ZVJhd0xvY2F0
aW9uKDEsIDIpKSk7CiAgICAgICAgICAgICAgICAgY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDEs
IDIsIHNvdXJjZU1hcHBpbmcudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMiwgNCkpOwogICAgICAg
ICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Rm9ybWF0dGVk
Q29udGVudCk7CkBAIC0zMTcsNyArMzM2LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAg
ICBmdW5jdGlvbiByZXF1ZXN0Tm90Rm9ybWF0dGVkQ29udGVudCgpCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1h
cHBpbmc7Ci0gICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcu
dWlTb3VyY2VDb2RlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxz
KDEsIHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAg
ICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgp
WzBdOwogICAgICAgICAgICAgICAgIGNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDEsIDIs
IHNvdXJjZU1hcHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24o
MSwgMikpKTsKICAgICAgICAgICAgICAgICBjaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMSwgMiwg
c291cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxLCAyKSk7CiAgICAgICAgICAg
ICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3ROb3RGb3JtYXR0ZWRD
b250ZW50KTsKQEAgLTM0Niw3ICszNjYsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
IGZ1bmN0aW9uIGNoZWNrTWFwcGluZygpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
dmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmc7Ci0gICAgICAg
ICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBp
bmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmFyIHVpU291
cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBdOwogICAgICAgICAg
ICAgICAgIGNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDIsIDQsIHNvdXJjZU1hcHBpbmcu
cmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMSwgMikpKTsKICAgICAg
ICAgICAgICAgICBjaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMSwgMiwgc291cmNlTWFwcGluZy51
aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigyLCA0KSk7CiAgICAgICAgICAgICAgICAgbmV4dCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwK
aW5kZXggNjM5NzAyNzM0OTM4ZTk2NmIwZDZiZGJkMmU3Y2NmN2Q1ZDY1MjczMS4uMzY2NjdlNTJh
MjFhYmJhMTQ0YTZhMTljYWZiMDI3ZGE5NDc3MDJiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCkBAIC0xNjMsNyArMTYzLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgICAgIGFkZFVJU291Y2VDb2RlKG1vZGVsLCAiZm9v
LmpzIik7CiAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gYWRkVUlTb3VjZUNvZGUobW9k
ZWwsICJiYXIuanMiKTsKLSAgICAgICAgICAgIHBhbmVsLl91aVNvdXJjZUNvZGVSZXBsYWNlZCh7
IGRhdGE6IHsgb2xkVUlTb3VyY2VDb2RlOiB1aVNvdXJjZUNvZGUsIHVpU291cmNlQ29kZTogdWlT
b3VyY2VDb2RlIH19KTsKKyAgICAgICAgICAgIHBhbmVsLl91aVNvdXJjZUNvZGVSZXBsYWNlZCh7
IGRhdGE6IHsgb2xkVUlTb3VyY2VDb2RlTGlzdDogW3VpU291cmNlQ29kZV0sIHVpU291cmNlQ29k
ZUxpc3Q6IFt1aVNvdXJjZUNvZGVdIH19KTsKICAgICAgICAgICAgIHNob3dTb3VyY2VGcmFtZShw
YW5lbCwgImJhci5qcyIpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNjEzYjQwODRlMWExMmZjN2E5Mzc1YjFlZjJlNzgxMWQ5M2Q0ODA3Yi4uNGM0MjAzNGUy
ZDlmMGJjYzA5MGZjMjYwZjgyZGJlMTA1MmRhZDM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYy
IEBACisyMDExLTA5LTI4ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJhd1NvdXJjZUNvZGUgY291bGQgYmUgbWFwcGVk
IHRvIHNldmVyYWwgVUlTb3VyY2VDb2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY4NTI2CisKKyAgICAgICAgUmVwbGFjZSBTb3VyY2VNYXBwaW5n
LnVpU291cmNlQ29kZSB3aXRoIFNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCBhcyB0aGVy
ZSBjb3VsZCBiZSBtb3JlCisgICAgICAgIHRoZW4gb25lIFVJU291cmNlQ29kZSBhc3NvY2lhdGVk
IHdpdGggYSBSYXdTb3VyY2VDb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwucHJvdG90eXBlLl9zb3VyY2VNYXBwaW5nVXBkYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3VwZGF0ZVNvdXJjZU1hcHBp
bmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJv
dG90eXBlLl9yZXN0b3JlQnJlYWtwb2ludHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByZXNl
bnRhdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUuZ2V0IHVybCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUuY2Fu
U2V0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUuc2V0Q29udGVudCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlUmVwbGFjZWQpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fc2F2ZVNvdXJjZU1hcHBpbmcpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuUGxhaW5Tb3VyY2VNYXBwaW5nKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLlBsYWluU291cmNlTWFwcGluZy5wcm90b3R5cGUu
cmF3TG9jYXRpb25Ub1VJTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJhd1NvdXJj
ZUNvZGUuUGxhaW5Tb3VyY2VNYXBwaW5nLnByb3RvdHlwZS51aVNvdXJjZUNvZGVMaXN0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRm9ybWF0dGVkU291cmNlTWFw
cGluZy5wcm90b3R5cGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJhd1NvdXJjZUNvZGUuRm9ybWF0dGVkU291cmNlTWFwcGluZy5wcm90b3R5cGUudWlT
b3VyY2VDb2RlTGlzdCk6CisKKzIwMTEtMDktMjEgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxv
dkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbWlncmF0ZSBSYXdTb3Vy
Y2VDb2RlIGNsaWVudHMgdG8gU291cmNlTWFwcGluZyBjbGFzcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTI0CisKKyAgICAgICAgQ2xpZW50cyBz
aG91bGQgdXNlIHVpU291cmNlQ29kZSgpLCByYXdMb2NhdGlvblRvVUlMb2NhdGlvbigpLCB1aUxv
Y2F0aW9uVG9SYXdMb2NhdGlvbigpIG1ldGhvZHMgb2YgU291cmNlTWFwcGluZyBjbGFzcy4KKyAg
ICAgICAgSW5pdGlhbGx5LCBSYXdTb3VyY2VDb2RlIG1heSBub3QgaGF2ZSBhc3NvY2lhdGVkIFNv
dXJjZU1hcHBpbmcsIHNvIGl0IGlzIG5hdHVyYWwgdG8gZXh0cmFjdCB0aGlzIG1ldGhvZHMgYW5k
IGFzc29jaWF0ZWQgc3RhdGUgdG8gYSBzZXBhcmF0ZSBjbGFzcy4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJl
YWtwb2ludE1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFn
ZXIucHJvdG90eXBlLl9tYXRlcmlhbGl6ZUJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5fYnJlYWtwb2ludERlYnVnZ2VyTG9jYXRp
b25DaGFuZ2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hvcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lm
eUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZS5fYWRkU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fdXBkYXRlU291cmNlTWFwcGluZyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3Jl
c3RvcmVCcmVha3BvaW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUuX3Jlc3RvcmVDb25zb2xlTWVzc2FnZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9jb25zb2xl
TWVzc2FnZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5fY3JlYXRlUHJlc2VudGF0aW9uTWVzc2FnZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuY29udGludWVU
b0xpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlvbkNhbGxGcmFtZS5wcm90
b3R5cGUuZ2V0IHVybCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZy
YW1lLnByb3RvdHlwZS5zb3VyY2VMaW5lLnNvdXJjZU1hcHBpbmdVcGRhdGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJhbWUucHJvdG90eXBlLnNvdXJjZUxpbmUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxSZXNvdXJj
ZUJpbmRpbmcucHJvdG90eXBlLmNhblNldENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90eXBlLnNldENv
bnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5nZXQgc291cmNlTWFw
cGluZyk6CisKIDIwMTEtMDktMjggIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVmYWN0b3Igc2VhcmNoaW5nIGluIGluc3Bl
Y3RvciwgYWRkIHRlc3QgKGZpeGVkIG5vbiByZWdleCBzZWFyY2gpLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLmpzCmluZGV4IDNiMmY4ODQ5ODY5Y2RiZDdiYzU5NWE3ZDc4OTI3YTZkZWM4YmJk
N2QuLjE3ZmIxZjNjZmUxZjNmYWQ3YjI2OTg5ZWE2ZTZlNTI3M2EyNGY0ZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTEyNCw0MCArMTI0LDQ4IEBAIFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBfc291cmNlTWFwcGlu
Z1VwZGF0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIHJhd1NvdXJjZUNv
ZGUgPSBldmVudC50YXJnZXQ7Ci0gICAgICAgIHZhciBvbGRVSVNvdXJjZUNvZGUgPSBldmVudC5k
YXRhLm9sZFVJU291cmNlQ29kZTsKLSAgICAgICAgdGhpcy5fdXBkYXRlU291cmNlTWFwcGluZyhy
YXdTb3VyY2VDb2RlLCBvbGRVSVNvdXJjZUNvZGUpOworICAgICAgICB2YXIgb2xkU291cmNlTWFw
cGluZyA9IGV2ZW50LmRhdGEub2xkU291cmNlTWFwcGluZzsKKyAgICAgICAgdGhpcy5fdXBkYXRl
U291cmNlTWFwcGluZyhyYXdTb3VyY2VDb2RlLCBvbGRTb3VyY2VNYXBwaW5nKTsKICAgICB9LAog
Ci0gICAgX3VwZGF0ZVNvdXJjZU1hcHBpbmc6IGZ1bmN0aW9uKHJhd1NvdXJjZUNvZGUsIG9sZFVJ
U291cmNlQ29kZSkKKyAgICBfdXBkYXRlU291cmNlTWFwcGluZzogZnVuY3Rpb24ocmF3U291cmNl
Q29kZSwgb2xkU291cmNlTWFwcGluZykKICAgICB7Ci0gICAgICAgIGlmIChvbGRVSVNvdXJjZUNv
ZGUpIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5h
Z2VyLmJyZWFrcG9pbnRzRm9yVUlTb3VyY2VDb2RlKG9sZFVJU291cmNlQ29kZSk7Ci0gICAgICAg
ICAgICBmb3IgKHZhciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKSB7Ci0gICAgICAgICAgICAg
ICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50c1tsaW5lTnVtYmVyXTsKLSAgICAgICAgICAg
ICAgICB0aGlzLl9icmVha3BvaW50UmVtb3ZlZChicmVha3BvaW50KTsKLSAgICAgICAgICAgICAg
ICBkZWxldGUgYnJlYWtwb2ludC51aVNvdXJjZUNvZGU7CisgICAgICAgIGlmIChvbGRTb3VyY2VN
YXBwaW5nKSB7CisgICAgICAgICAgICB2YXIgb2xkVUlTb3VyY2VDb2RlTGlzdCA9IG9sZFNvdXJj
ZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBvbGRVSVNvdXJjZUNvZGVMaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAg
dmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludHNGb3JV
SVNvdXJjZUNvZGUob2xkVUlTb3VyY2VDb2RlTGlzdFtpXSk7CisgICAgICAgICAgICAgICAgZm9y
ICh2YXIgbGluZU51bWJlciBpbiBicmVha3BvaW50cykgeworICAgICAgICAgICAgICAgICAgICB2
YXIgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRzW2xpbmVOdW1iZXJdOworICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9icmVha3BvaW50UmVtb3ZlZChicmVha3BvaW50KTsKKyAgICAgICAgICAgICAg
ICAgICAgZGVsZXRlIGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlOworICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3Bv
aW50cyhyYXdTb3VyY2VDb2RlKTsKICAgICAgICAgdGhpcy5fcmVzdG9yZUNvbnNvbGVNZXNzYWdl
cyhyYXdTb3VyY2VDb2RlKTsKIAotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gcmF3U291cmNl
Q29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZTsKLSAgICAgICAgaWYgKCFvbGRVSVNvdXJj
ZUNvZGUpCi0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQs
IHVpU291cmNlQ29kZSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgdmFyIGV2ZW50RGF0
YSA9IHsgdWlTb3VyY2VDb2RlOiB1aVNvdXJjZUNvZGUsIG9sZFVJU291cmNlQ29kZTogb2xkVUlT
b3VyY2VDb2RlIH07CisgICAgICAgIGlmICghb2xkU291cmNlTWFwcGluZykgeworICAgICAgICAg
ICAgdmFyIHVpU291cmNlQ29kZUxpc3QgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcudWlT
b3VyY2VDb2RlTGlzdCgpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJj
ZUNvZGVMaXN0Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50
cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlTGlzdFtpXSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICB2YXIgZXZlbnREYXRhID0geyB1aVNvdXJjZUNvZGVMaXN0OiByYXdT
b3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLCBvbGRVSVNvdXJjZUNv
ZGVMaXN0OiBvbGRTb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKSB9OwogICAgICAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCBldmVudERhdGEpOwog
ICAgICAgICB9CiAgICAgfSwKIAogICAgIF9yZXN0b3JlQnJlYWtwb2ludHM6IGZ1bmN0aW9uKHJh
d1NvdXJjZUNvZGUpCiAgICAgewotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gcmF3U291cmNl
Q29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZTsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2lu
dE1hbmFnZXIudWlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdmFyIGJy
ZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJj
ZUNvZGUodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBpbiBicmVh
a3BvaW50cykKLSAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRBZGRlZChicmVha3BvaW50c1ts
aW5lTnVtYmVyXSk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGVMaXN0ID0gcmF3U291cmNlQ29k
ZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB1aVNvdXJjZUNvZGVMaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlTGlzdFtpXTsKKyAgICAgICAgICAgIHRoaXMuX2Jy
ZWFrcG9pbnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSk7CisgICAgICAg
ICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50TWFuYWdlci5icmVha3BvaW50
c0ZvclVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgZm9yICh2YXIgbGlu
ZU51bWJlciBpbiBicmVha3BvaW50cykKKyAgICAgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50
QWRkZWQoYnJlYWtwb2ludHNbbGluZU51bWJlcl0pOworICAgICAgICB9CisKICAgICB9LAogCiAg
ICAgX3Jlc3RvcmVDb25zb2xlTWVzc2FnZXM6IGZ1bmN0aW9uKHJhd1NvdXJjZUNvZGUpCkBAIC00
NDksOCArNDU3LDEwIEBAIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJhbWUucHJvdG90
eXBlID0gewogCiAgICAgZ2V0IHVybCgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fcmF3U291
cmNlQ29kZSAmJiB0aGlzLl9yYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcpCi0gICAgICAgICAg
ICByZXR1cm4gdGhpcy5fcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZS51
cmw7CisgICAgICAgIGlmICghdGhpcy5fcmF3U291cmNlQ29kZSB8fCAhdGhpcy5fcmF3U291cmNl
Q29kZS5zb3VyY2VNYXBwaW5nKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgdWlM
b2NhdGlvbiA9IHRoaXMuX3Jhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy5yYXdMb2NhdGlvblRv
VUlMb2NhdGlvbih0aGlzLl9jYWxsRnJhbWUubG9jYXRpb24pOworICAgICAgICByZXR1cm4gdWlM
b2NhdGlvbi51aVNvdXJjZUNvZGUudXJsOwogICAgIH0sCiAKICAgICBnZXQgc2NvcGVDaGFpbigp
CkBAIC01MzIsNyArNTQyLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgcmF3U291cmNlQ29k
ZSA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0KHJlc291
cmNlLnVybCkKICAgICAgICAgaWYgKCFyYXdTb3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICByZXR1cm4gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuY2FuRWRpdFNj
cmlwdFNvdXJjZShyYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlKTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmNhbkVkaXRTY3JpcHRTb3VyY2Uo
cmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXSk7CiAgICAg
fSwKIAogICAgIHNldENvbnRlbnQ6IGZ1bmN0aW9uKHJlc291cmNlLCBjb250ZW50LCBtYWpvckNo
YW5nZSwgdXNlckNhbGxiYWNrKQpAQCAtNTQ2LDcgKzU1Niw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHJlc291cmNlLnJlcXVlc3RDb250
ZW50KHRoaXMuX3NldENvbnRlbnRXaXRoSW5pdGlhbENvbnRlbnQuYmluZCh0aGlzLCByYXdTb3Vy
Y2VDb2RlLnNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlLCBjb250ZW50LCB1c2VyQ2FsbGJhY2sp
KTsKKyAgICAgICAgcmVzb3VyY2UucmVxdWVzdENvbnRlbnQodGhpcy5fc2V0Q29udGVudFdpdGhJ
bml0aWFsQ29udGVudC5iaW5kKHRoaXMsIHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNv
dXJjZUNvZGVMaXN0KClbMF0sIGNvbnRlbnQsIHVzZXJDYWxsYmFjaykpOwogICAgIH0sCiAKICAg
ICBfc2V0Q29udGVudFdpdGhJbml0aWFsQ29udGVudDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBj
b250ZW50LCB1c2VyQ2FsbGJhY2ssIG9sZENvbnRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGMzMTA5NDgxZWViNmMz
NWFhMWU5OGRlOWE4YTg2MzUyYzMyOWJiMjguLjJjZmRlN2JiMjY1NDg3ZWVjMjE2ZTJkNzk2MmNi
MTNiYTI0NTUwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCkBAIC02NzMsOCArNjczLDkgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfdWlTb3VyY2VDb2RlUmVwbGFjZWQ6IGZ1bmN0
aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIG9sZFVJU291cmNlQ29kZSA9IGV2ZW50LmRh
dGEub2xkVUlTb3VyY2VDb2RlOwotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gZXZlbnQuZGF0
YS51aVNvdXJjZUNvZGU7CisgICAgICAgIC8vIEZJWE1FOiBzdXBwb3J0IG11bHRpcGxlIGVudHJp
ZXMuCisgICAgICAgIHZhciBvbGRVSVNvdXJjZUNvZGUgPSBldmVudC5kYXRhLm9sZFVJU291cmNl
Q29kZUxpc3RbMF07CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBldmVudC5kYXRhLnVpU291
cmNlQ29kZUxpc3RbMF07CiAKICAgICAgICAgLy8gUmUtYmluZCBmaWxlIHNlbGVjdCBvcHRpb24g
ZnJvbSBvbGQgc291cmNlIGZpbGUgdG8gbmV3IG9uZS4KICAgICAgICAgdmFyIG9wdGlvbiA9IG9s
ZFVJU291cmNlQ29kZS5fb3B0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGaWxlLmpzCmluZGV4IDE2ODc4OWQ3MmU4ZWQ5MzQ4ZTY1NDNkNmVhNzVh
ODRjYTE2MzFlNGQuLjBlYWEwYzAxMGNhMDQzNDZjOTc2ZGM3MWJhM2E2ZGUzYmNlYTBlNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMK
QEAgLTE2NywxMSArMTY3LDExIEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlw
ZSA9IHsKIAogICAgIF9zYXZlU291cmNlTWFwcGluZzogZnVuY3Rpb24oc291cmNlTWFwcGluZykK
ICAgICB7Ci0gICAgICAgIHZhciBvbGRVSVNvdXJjZUNvZGU7CisgICAgICAgIHZhciBvbGRTb3Vy
Y2VNYXBwaW5nOwogICAgICAgICBpZiAodGhpcy5fc291cmNlTWFwcGluZykKLSAgICAgICAgICAg
IG9sZFVJU291cmNlQ29kZSA9IHRoaXMuX3NvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlOworICAg
ICAgICAgICAgb2xkU291cmNlTWFwcGluZyA9IHRoaXMuX3NvdXJjZU1hcHBpbmc7CiAgICAgICAg
IHRoaXMuX3NvdXJjZU1hcHBpbmcgPSBzb3VyY2VNYXBwaW5nOwotICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuU291
cmNlTWFwcGluZ1VwZGF0ZWQsIHsgb2xkVUlTb3VyY2VDb2RlOiBvbGRVSVNvdXJjZUNvZGUgfSk7
CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SYXdT
b3VyY2VDb2RlLkV2ZW50cy5Tb3VyY2VNYXBwaW5nVXBkYXRlZCwgeyBvbGRTb3VyY2VNYXBwaW5n
OiBvbGRTb3VyY2VNYXBwaW5nIH0pOwogICAgIH0KIH0KIApAQCAtMTg0LDEzICsxODQsMTMgQEAg
V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3Bl
Y3Rvci5PYmplY3QucHJvdG90eXBlOwogV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuUGxhaW5T
b3VyY2VNYXBwaW5nID0gZnVuY3Rpb24ocmF3U291cmNlQ29kZSwgdWlTb3VyY2VDb2RlKQogewog
ICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2RlOwotICAgIHRoaXMuX3VpU291
cmNlQ29kZSA9IHVpU291cmNlQ29kZTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGVMaXN0ID0gW3Vp
U291cmNlQ29kZV07CiB9CiAKIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLlBsYWluU291cmNl
TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IGZ1bmN0
aW9uKHJhd0xvY2F0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3Iu
VUlMb2NhdGlvbih0aGlzLl91aVNvdXJjZUNvZGUsIHJhd0xvY2F0aW9uLmxpbmVOdW1iZXIsIHJh
d0xvY2F0aW9uLmNvbHVtbk51bWJlcik7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9y
LlVJTG9jYXRpb24odGhpcy5fdWlTb3VyY2VDb2RlTGlzdFswXSwgcmF3TG9jYXRpb24ubGluZU51
bWJlciwgcmF3TG9jYXRpb24uY29sdW1uTnVtYmVyKTsKICAgICB9LAogCiAgICAgdWlMb2NhdGlv
blRvUmF3TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKQEAgLTIw
MCw5ICsyMDAsOSBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5QbGFpblNvdXJjZU1hcHBp
bmcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gcmF3TG9jYXRpb247CiAgICAgfSwKIAot
ICAgIGdldCB1aVNvdXJjZUNvZGUoKQorICAgIHVpU291cmNlQ29kZUxpc3Q6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl91aVNvdXJjZUNvZGU7CisgICAgICAgIHJldHVy
biB0aGlzLl91aVNvdXJjZUNvZGVMaXN0OwogICAgIH0KIH0KIApAQCAtMjEyLDcgKzIxMiw3IEBA
IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLlBsYWluU291cmNlTWFwcGluZy5wcm90b3R5cGUg
PSB7CiBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5Gb3JtYXR0ZWRTb3VyY2VNYXBwaW5nID0g
ZnVuY3Rpb24ocmF3U291cmNlQ29kZSwgdWlTb3VyY2VDb2RlLCBtYXBwaW5nKQogewogICAgIHRo
aXMuX3Jhd1NvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2RlOwotICAgIHRoaXMuX3VpU291cmNlQ29k
ZSA9IHVpU291cmNlQ29kZTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGVMaXN0ID0gW3VpU291cmNl
Q29kZV07CiAgICAgdGhpcy5fbWFwcGluZyA9IG1hcHBpbmc7CiB9CiAKQEAgLTIyMCw3ICsyMjAs
NyBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5Gb3JtYXR0ZWRTb3VyY2VNYXBwaW5nLnBy
b3RvdHlwZSA9IHsKICAgICByYXdMb2NhdGlvblRvVUlMb2NhdGlvbjogZnVuY3Rpb24ocmF3TG9j
YXRpb24pCiAgICAgewogICAgICAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9tYXBwaW5nLm9yaWdp
bmFsVG9Gb3JtYXR0ZWQocmF3TG9jYXRpb24pOwotICAgICAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5VSUxvY2F0aW9uKHRoaXMuX3VpU291cmNlQ29kZSwgbG9jYXRpb24ubGluZU51bWJlciwg
bG9jYXRpb24uY29sdW1uTnVtYmVyKTsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3Iu
VUlMb2NhdGlvbih0aGlzLl91aVNvdXJjZUNvZGVMaXN0WzBdLCBsb2NhdGlvbi5saW5lTnVtYmVy
LCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIpOwogICAgIH0sCiAKICAgICB1aUxvY2F0aW9uVG9SYXdM
b2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1uTnVtYmVyKQpAQCAtMjMwLDkgKzIz
MCw5IEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gcmF3TG9jYXRpb247CiAgICAgfSwKIAotICAg
IGdldCB1aVNvdXJjZUNvZGUoKQorICAgIHVpU291cmNlQ29kZUxpc3Q6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl91aVNvdXJjZUNvZGU7CisgICAgICAgIHJldHVybiB0
aGlzLl91aVNvdXJjZUNvZGVMaXN0OwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109027</attachid>
            <date>2011-09-28 08:58:24 -0700</date>
            <delta_ts>2011-09-30 04:47:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68526-20110928195821.patch</filename>
            <type>text/plain</type>
            <size>20727</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYyMTgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOWI3MDI1ZjY1ODY4YTViMTRkYzQ0
ZWM4YTczYWU2NTBmMDE0MWIwLi4zMjVmNzVhZDFiZWQyNWU1ZGNmNzk1YzYyOTFlZDEyMjRiYTc4
MmQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMjggIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmF3U291
cmNlQ29kZSBjb3VsZCBiZSBtYXBwZWQgdG8gbXVsdGlwbGUgc291cmNlcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTI2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
cmF3LXNvdXJjZS1jb2RlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtcGFuZWwuaHRtbDoKKwogMjAxMS0wOS0yOCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCAyIDY0LWJpdHMgRGVidWcg
Y3Jhc2hlcnMgb24gR1RLLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Jhdy1zb3VyY2UtY29kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3Jhdy1zb3VyY2UtY29kZS5odG1sCmluZGV4IDU2OTk5ZGU2YzI2NzBmNDY5YWFhNDIzNTA2MDgx
ZDA1NmI5MTQ5YTAuLjFmOTllZWQ3MmExODUwYTJhNjA2ZjQzZWQwN2EyZTQ2ZWNhNGE5OGUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291cmNlLWNvZGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmF3LXNvdXJjZS1jb2Rl
Lmh0bWwKQEAgLTEwNiw3ICsxMDYsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZh
ciByYXdTb3VyY2VDb2RlID0gY3JlYXRlUmF3U291cmNlQ29kZShzY3JpcHQsIG51bGwpOwogCiAg
ICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGlu
ZzsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNl
Q29kZTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1h
cHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiZm9vLmpzIiwgdWlTb3VyY2VDb2RlLnVybCk7
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCB1aVNvdXJjZUNv
ZGUuaXNDb250ZW50U2NyaXB0KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1
YWxzKHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZS5yYXdTb3VyY2VDb2RlKTsKQEAgLTEzNiw3
ICsxMzcsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIGZ1bmN0aW9uIG1hcHBpbmdS
ZWFkeShldmVudCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydFRydWUoIWV2ZW50LmRhdGEub2xkU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAg
dmFyIHVpU291cmNlQ29kZSA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNv
ZGU7CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNv
dXJjZU1hcHBpbmc7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
MSwgc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClb
MF07CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoImluZGV4Lmh0
bWwiLCB1aVNvdXJjZUNvZGUudXJsKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscyhmYWxzZSwgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCk7CiAgICAgICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50KTsK
QEAgLTE2MSw3ICsxNjQsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciByYXdT
b3VyY2VDb2RlID0gY3JlYXRlUmF3U291cmNlQ29kZShzY3JpcHQxLCByZXNvdXJjZSk7CiAKICAg
ICAgICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5n
OwotICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VD
b2RlOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291cmNlTWFw
cGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJj
ZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJpbmRleC5odG1sIiwgdWlTb3VyY2VDb2RlLnVy
bCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhmYWxzZSwgdWlTb3Vy
Y2VDb2RlLmlzQ29udGVudFNjcmlwdCk7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVz
dENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQpOwpAQCAtMTg4LDcgKzE5Miw4IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSBjcmVhdGVSYXdTb3VyY2VD
b2RlKHNjcmlwdCwgcmVzb3VyY2UpOwogCiAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9
IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0
aCk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJj
ZUNvZGVMaXN0KClbMF07CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQo
ZGlkUmVxdWVzdENvbnRlbnQpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29u
dGVudChtaW1lVHlwZSwgY29udGVudCkKQEAgLTIwMyw3ICsyMDgsMTAgQEAgZnVuY3Rpb24gdGVz
dCgpCiAKICAgICAgICAgICAgIGZ1bmN0aW9uIG1hcHBpbmdSZWFkeUFmdGVyRWRpdCgpCiAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVp
U291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudEFmdGVyRWRpdCk7Cisg
ICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1h
cHBpbmc7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291
cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07Cisg
ICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250
ZW50QWZ0ZXJFZGl0KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlk
UmVxdWVzdENvbnRlbnRBZnRlckVkaXQobWltZVR5cGUsIGNvbnRlbnQpCkBAIC0yMjgsNyArMjM2
LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlvbiByZXF1ZXN0Q29u
dGVudCgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5zb3Vy
Y2VNYXBwaW5nLnVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudE9u
ZVNjcmlwdCk7CisgICAgICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VD
b2RlLnNvdXJjZU1hcHBpbmc7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHMoMSwgc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAg
ICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVM
aXN0KClbMF07CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRp
ZFJlcXVlc3RDb250ZW50T25lU2NyaXB0KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnRPbmVTY3JpcHQobWltZVR5cGUsIGNvbnRlbnQpCkBA
IC0yNDQsNyArMjU1LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICBmdW5jdGlv
biByZXF1ZXN0Q29udGVudFR3b1NjcmlwdHMoKQogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGUucmVxdWVzdENvbnRl
bnQoZGlkUmVxdWVzdENvbnRlbnRUd29TY3JpcHRzKTsKKyAgICAgICAgICAgICAgICB2YXIgc291
cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29k
ZUxpc3QoKS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3Vy
Y2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKKyAgICAgICAgICAgICAgICB1aVNvdXJj
ZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnRUd29TY3JpcHRzKTsKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnRUd29TY3Jp
cHRzKG1pbWVUeXBlLCBjb250ZW50KQpAQCAtMjU5LDcgKzI3MywxMCBAQCBmdW5jdGlvbiB0ZXN0
KCkKIAogICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdENvbnRlbnRSZXNvdXJjZSgpCiAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVp
U291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudFJlc291cmNlKTsKKyAg
ICAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFw
cGluZzsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCBzb3Vy
Y2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKKyAg
ICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRl
bnRSZXNvdXJjZSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJl
cXVlc3RDb250ZW50UmVzb3VyY2UobWltZVR5cGUsIGNvbnRlbnQpCkBAIC0yODEsNyArMjk4LDgg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IGNyZWF0
ZVJhd1NvdXJjZUNvZGUoc2NyaXB0LCByZXNvdXJjZSwgZmFsc2UpOwogCiAgICAgICAgICAgICB2
YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKLSAgICAgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBpbmcudWlTb3Vy
Y2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291
cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAgICAgICBjaGVja1VJTG9j
YXRpb24odWlTb3VyY2VDb2RlLCAxLCAyLCBzb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxv
Y2F0aW9uKGNyZWF0ZVJhd0xvY2F0aW9uKDEsIDIpKSk7CiAgICAgICAgICAgICBjaGVja1Jhd0xv
Y2F0aW9uKHNjcmlwdCwgMSwgMiwgc291cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdMb2NhdGlv
bigxLCAyKSk7CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVx
dWVzdENvbnRlbnQpOwpAQCAtMjk5LDcgKzMxNyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgZnVuY3Rpb24gcmVxdWVzdEZvcm1hdHRlZENvbnRlbnQoKQogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gcmF3U291cmNlQ29kZS5zb3VyY2VN
YXBwaW5nOwotICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5n
LnVpU291cmNlQ29kZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cygxLCBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOworICAgICAgICAg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3Qo
KVswXTsKICAgICAgICAgICAgICAgICBjaGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlLCAyLCA0
LCBzb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGNyZWF0ZVJhd0xvY2F0aW9u
KDEsIDIpKSk7CiAgICAgICAgICAgICAgICAgY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDEsIDIs
IHNvdXJjZU1hcHBpbmcudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMiwgNCkpOwogICAgICAgICAg
ICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Rm9ybWF0dGVkQ29u
dGVudCk7CkBAIC0zMTcsNyArMzM2LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBm
dW5jdGlvbiByZXF1ZXN0Tm90Rm9ybWF0dGVkQ29udGVudCgpCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBp
bmc7Ci0gICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlT
b3VyY2VDb2RlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEs
IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICAg
ICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBd
OwogICAgICAgICAgICAgICAgIGNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDEsIDIsIHNv
dXJjZU1hcHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMSwg
MikpKTsKICAgICAgICAgICAgICAgICBjaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMSwgMiwgc291
cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxLCAyKSk7CiAgICAgICAgICAgICAg
ICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3ROb3RGb3JtYXR0ZWRDb250
ZW50KTsKQEAgLTM0Niw3ICszNjYsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIGZ1
bmN0aW9uIGNoZWNrTWFwcGluZygpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmFy
IHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmc7Ci0gICAgICAgICAg
ICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJjZU1hcHBpbmcu
dWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmFyIHVpU291cmNl
Q29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBdOwogICAgICAgICAgICAg
ICAgIGNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDIsIDQsIHNvdXJjZU1hcHBpbmcucmF3
TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMSwgMikpKTsKICAgICAgICAg
ICAgICAgICBjaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMSwgMiwgc291cmNlTWFwcGluZy51aUxv
Y2F0aW9uVG9SYXdMb2NhdGlvbigyLCA0KSk7CiAgICAgICAgICAgICAgICAgbmV4dCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKaW5k
ZXggNjM5NzAyNzM0OTM4ZTk2NmIwZDZiZGJkMmU3Y2NmN2Q1ZDY1MjczMS4uMzY2NjdlNTJhMjFh
YmJhMTQ0YTZhMTljYWZiMDI3ZGE5NDc3MDJiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCkBAIC0xNjMsNyArMTYzLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAKICAgICAgICAgICAgIGFkZFVJU291Y2VDb2RlKG1vZGVsLCAiZm9vLmpz
Iik7CiAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gYWRkVUlTb3VjZUNvZGUobW9kZWws
ICJiYXIuanMiKTsKLSAgICAgICAgICAgIHBhbmVsLl91aVNvdXJjZUNvZGVSZXBsYWNlZCh7IGRh
dGE6IHsgb2xkVUlTb3VyY2VDb2RlOiB1aVNvdXJjZUNvZGUsIHVpU291cmNlQ29kZTogdWlTb3Vy
Y2VDb2RlIH19KTsKKyAgICAgICAgICAgIHBhbmVsLl91aVNvdXJjZUNvZGVSZXBsYWNlZCh7IGRh
dGE6IHsgb2xkVUlTb3VyY2VDb2RlTGlzdDogW3VpU291cmNlQ29kZV0sIHVpU291cmNlQ29kZUxp
c3Q6IFt1aVNvdXJjZUNvZGVdIH19KTsKICAgICAgICAgICAgIHNob3dTb3VyY2VGcmFtZShwYW5l
bCwgImJhci5qcyIpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNjEzYjQwODRlMWExMmZjN2E5Mzc1YjFlZjJlNzgxMWQ5M2Q0ODA3Yi4uNGM3ZjQ0ZTRlMmE5
MjI4ZGUwYmQ3NWVmM2ZjZmMwZjNmZTBiM2M5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBA
CisyMDExLTA5LTI4ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJhd1NvdXJjZUNvZGUgY291bGQgYmUgbWFwcGVkIHRv
IG11bHRpcGxlIHNvdXJjZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02ODUyNgorCisgICAgICAgIFJlcGxhY2UgU291cmNlTWFwcGluZy51aVNvdXJj
ZUNvZGUgd2l0aCBTb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QgYXMgdGhlcmUgY291bGQg
YmUgbW9yZQorICAgICAgICB0aGVuIG9uZSBVSVNvdXJjZUNvZGUgYXNzb2NpYXRlZCB3aXRoIGEg
UmF3U291cmNlQ29kZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3Rv
dHlwZS5fc291cmNlTWFwcGluZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl91cGRhdGVTb3VyY2VNYXBwaW5nKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
cmVzdG9yZUJyZWFrcG9pbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25D
YWxsRnJhbWUucHJvdG90eXBlLmdldCB1cmwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90eXBlLmNhblNldENvbnRl
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxSZXNv
dXJjZUJpbmRpbmcucHJvdG90eXBlLnNldENvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUuX3VpU291cmNlQ29kZVJlcGxhY2VkKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmF3U291
cmNlQ29kZS5wcm90b3R5cGUuX3NhdmVTb3VyY2VNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SYXdTb3VyY2VDb2RlLlBsYWluU291cmNlTWFwcGluZyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmF3U291cmNlQ29kZS5QbGFpblNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnJhd0xvY2F0
aW9uVG9VSUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLlBs
YWluU291cmNlTWFwcGluZy5wcm90b3R5cGUudWlTb3VyY2VDb2RlTGlzdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5Gb3JtYXR0ZWRTb3VyY2VNYXBwaW5nKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcucHJv
dG90eXBlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
YXdTb3VyY2VDb2RlLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnVpU291cmNlQ29k
ZUxpc3QpOgorCiAyMDExLTA5LTI4ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlZmFjdG9yIHNlYXJjaGluZyBpbiBpbnNw
ZWN0b3IsIGFkZCB0ZXN0IChmaXhlZCBub24gcmVnZXggc2VhcmNoKS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5qcwppbmRleCAzYjJmODg0OTg2OWNkYmQ3YmM1OTVhN2Q3ODkyN2E2ZGVjOGJi
ZDdkLi4xN2ZiMWYzY2ZlMWYzZmFkN2IyNjk4OWVhNmU2ZTUyNzNhMjRmNGU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC0xMjQsNDAgKzEyNCw0OCBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgX3NvdXJjZU1hcHBp
bmdVcGRhdGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZhciByYXdTb3VyY2VD
b2RlID0gZXZlbnQudGFyZ2V0OwotICAgICAgICB2YXIgb2xkVUlTb3VyY2VDb2RlID0gZXZlbnQu
ZGF0YS5vbGRVSVNvdXJjZUNvZGU7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNvdXJjZU1hcHBpbmco
cmF3U291cmNlQ29kZSwgb2xkVUlTb3VyY2VDb2RlKTsKKyAgICAgICAgdmFyIG9sZFNvdXJjZU1h
cHBpbmcgPSBldmVudC5kYXRhLm9sZFNvdXJjZU1hcHBpbmc7CisgICAgICAgIHRoaXMuX3VwZGF0
ZVNvdXJjZU1hcHBpbmcocmF3U291cmNlQ29kZSwgb2xkU291cmNlTWFwcGluZyk7CiAgICAgfSwK
IAotICAgIF91cGRhdGVTb3VyY2VNYXBwaW5nOiBmdW5jdGlvbihyYXdTb3VyY2VDb2RlLCBvbGRV
SVNvdXJjZUNvZGUpCisgICAgX3VwZGF0ZVNvdXJjZU1hcHBpbmc6IGZ1bmN0aW9uKHJhd1NvdXJj
ZUNvZGUsIG9sZFNvdXJjZU1hcHBpbmcpCiAgICAgewotICAgICAgICBpZiAob2xkVUlTb3VyY2VD
b2RlKSB7Ci0gICAgICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50TWFu
YWdlci5icmVha3BvaW50c0ZvclVJU291cmNlQ29kZShvbGRVSVNvdXJjZUNvZGUpOwotICAgICAg
ICAgICAgZm9yICh2YXIgbGluZU51bWJlciBpbiBicmVha3BvaW50cykgewotICAgICAgICAgICAg
ICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNbbGluZU51bWJlcl07Ci0gICAgICAgICAg
ICAgICAgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQoYnJlYWtwb2ludCk7Ci0gICAgICAgICAgICAg
ICAgZGVsZXRlIGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlOworICAgICAgICBpZiAob2xkU291cmNl
TWFwcGluZykgeworICAgICAgICAgICAgdmFyIG9sZFVJU291cmNlQ29kZUxpc3QgPSBvbGRTb3Vy
Y2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgb2xkVUlTb3VyY2VDb2RlTGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAg
IHZhciBicmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRzRm9y
VUlTb3VyY2VDb2RlKG9sZFVJU291cmNlQ29kZUxpc3RbaV0pOworICAgICAgICAgICAgICAgIGZv
ciAodmFyIGxpbmVOdW1iZXIgaW4gYnJlYWtwb2ludHMpIHsKKyAgICAgICAgICAgICAgICAgICAg
dmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50c1tsaW5lTnVtYmVyXTsKKyAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQoYnJlYWtwb2ludCk7CisgICAgICAgICAgICAg
ICAgICAgIGRlbGV0ZSBicmVha3BvaW50LnVpU291cmNlQ29kZTsKKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9yZXN0b3JlQnJlYWtw
b2ludHMocmF3U291cmNlQ29kZSk7CiAgICAgICAgIHRoaXMuX3Jlc3RvcmVDb25zb2xlTWVzc2Fn
ZXMocmF3U291cmNlQ29kZSk7CiAKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHJhd1NvdXJj
ZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGU7Ci0gICAgICAgIGlmICghb2xkVUlTb3Vy
Y2VDb2RlKQotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVk
LCB1aVNvdXJjZUNvZGUpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHZhciBldmVudERh
dGEgPSB7IHVpU291cmNlQ29kZTogdWlTb3VyY2VDb2RlLCBvbGRVSVNvdXJjZUNvZGU6IG9sZFVJ
U291cmNlQ29kZSB9OworICAgICAgICBpZiAoIW9sZFNvdXJjZU1hcHBpbmcpIHsKKyAgICAgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGVMaXN0ID0gcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVp
U291cmNlQ29kZUxpc3QoKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdWlTb3Vy
Y2VDb2RlTGlzdC5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVu
dHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUxpc3RbaV0pOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdmFyIGV2ZW50RGF0YSA9IHsgdWlTb3VyY2VDb2RlTGlzdDogcmF3
U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKSwgb2xkVUlTb3VyY2VD
b2RlTGlzdDogb2xkU291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkgfTsKICAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgZXZlbnREYXRhKTsK
ICAgICAgICAgfQogICAgIH0sCiAKICAgICBfcmVzdG9yZUJyZWFrcG9pbnRzOiBmdW5jdGlvbihy
YXdTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHJhd1NvdXJj
ZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGU7Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9p
bnRNYW5hZ2VyLnVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSk7Ci0gICAgICAgIHZhciBi
cmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRzRm9yVUlTb3Vy
Y2VDb2RlKHVpU291cmNlQ29kZSk7Ci0gICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4gYnJl
YWtwb2ludHMpCi0gICAgICAgICAgICB0aGlzLl9icmVha3BvaW50QWRkZWQoYnJlYWtwb2ludHNb
bGluZU51bWJlcl0pOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlTGlzdCA9IHJhd1NvdXJjZUNv
ZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCk7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdWlTb3VyY2VDb2RlTGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFy
IHVpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZUxpc3RbaV07CisgICAgICAgICAgICB0aGlzLl9i
cmVha3BvaW50TWFuYWdlci51aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpOworICAgICAg
ICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2lu
dHNGb3JVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIGZvciAodmFyIGxp
bmVOdW1iZXIgaW4gYnJlYWtwb2ludHMpCisgICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2lu
dEFkZGVkKGJyZWFrcG9pbnRzW2xpbmVOdW1iZXJdKTsKKyAgICAgICAgfQorCiAgICAgfSwKIAog
ICAgIF9yZXN0b3JlQ29uc29sZU1lc3NhZ2VzOiBmdW5jdGlvbihyYXdTb3VyY2VDb2RlKQpAQCAt
NDQ5LDggKzQ1NywxMCBAQCBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZyYW1lLnByb3Rv
dHlwZSA9IHsKIAogICAgIGdldCB1cmwoKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Jhd1Nv
dXJjZUNvZGUgJiYgdGhpcy5fcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nKQotICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX3Jhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGUu
dXJsOworICAgICAgICBpZiAoIXRoaXMuX3Jhd1NvdXJjZUNvZGUgfHwgIXRoaXMuX3Jhd1NvdXJj
ZUNvZGUuc291cmNlTWFwcGluZykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIHVp
TG9jYXRpb24gPSB0aGlzLl9yYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcucmF3TG9jYXRpb25U
b1VJTG9jYXRpb24odGhpcy5fY2FsbEZyYW1lLmxvY2F0aW9uKTsKKyAgICAgICAgcmV0dXJuIHVp
TG9jYXRpb24udWlTb3VyY2VDb2RlLnVybDsKICAgICB9LAogCiAgICAgZ2V0IHNjb3BlQ2hhaW4o
KQpAQCAtNTMyLDcgKzU0Miw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHJhd1NvdXJjZUNv
ZGUgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5fcmF3U291cmNlQ29kZUZvclNjcmlwdChyZXNv
dXJjZS51cmwpCiAgICAgICAgIGlmICghcmF3U291cmNlQ29kZSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmNhbkVkaXRT
Y3JpcHRTb3VyY2UocmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZSk7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5jYW5FZGl0U2NyaXB0U291cmNl
KHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF0pOwogICAg
IH0sCiAKICAgICBzZXRDb250ZW50OiBmdW5jdGlvbihyZXNvdXJjZSwgY29udGVudCwgbWFqb3JD
aGFuZ2UsIHVzZXJDYWxsYmFjaykKQEAgLTU0Niw3ICs1NTYsNyBAQCBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICByZXNvdXJjZS5yZXF1ZXN0Q29u
dGVudCh0aGlzLl9zZXRDb250ZW50V2l0aEluaXRpYWxDb250ZW50LmJpbmQodGhpcywgcmF3U291
cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZSwgY29udGVudCwgdXNlckNhbGxiYWNr
KSk7CisgICAgICAgIHJlc291cmNlLnJlcXVlc3RDb250ZW50KHRoaXMuX3NldENvbnRlbnRXaXRo
SW5pdGlhbENvbnRlbnQuYmluZCh0aGlzLCByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcudWlT
b3VyY2VDb2RlTGlzdCgpWzBdLCBjb250ZW50LCB1c2VyQ2FsbGJhY2spKTsKICAgICB9LAogCiAg
ICAgX3NldENvbnRlbnRXaXRoSW5pdGlhbENvbnRlbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwg
Y29udGVudCwgdXNlckNhbGxiYWNrLCBvbGRDb250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCBjMzEwOTQ4MWVlYjZj
MzVhYTFlOThkZTlhOGE4NjM1MmMzMjliYjI4Li4yY2ZkZTdiYjI2NTQ4N2VlYzIxNmUyZDc5NjJj
YjEzYmEyNDU1MDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtNjczLDggKzY3Myw5IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX3VpU291cmNlQ29kZVJlcGxhY2VkOiBmdW5j
dGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBvbGRVSVNvdXJjZUNvZGUgPSBldmVudC5k
YXRhLm9sZFVJU291cmNlQ29kZTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IGV2ZW50LmRh
dGEudWlTb3VyY2VDb2RlOworICAgICAgICAvLyBGSVhNRTogc3VwcG9ydCBtdWx0aXBsZSBlbnRy
aWVzLgorICAgICAgICB2YXIgb2xkVUlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YS5vbGRVSVNvdXJj
ZUNvZGVMaXN0WzBdOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YS51aVNv
dXJjZUNvZGVMaXN0WzBdOwogCiAgICAgICAgIC8vIFJlLWJpbmQgZmlsZSBzZWxlY3Qgb3B0aW9u
IGZyb20gb2xkIHNvdXJjZSBmaWxlIHRvIG5ldyBvbmUuCiAgICAgICAgIHZhciBvcHRpb24gPSBv
bGRVSVNvdXJjZUNvZGUuX29wdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlRmlsZS5qcwppbmRleCAxNjg3ODlkNzJlOGVkOTM0OGU2NTQzZDZlYTc1
YTg0Y2ExNjMxZTRkLi4wZWFhMGMwMTBjYTA0MzQ2Yzk3NmRjNzFiYTNhNmRlM2JjZWEwZTZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpz
CkBAIC0xNjcsMTEgKzE2NywxMSBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5
cGUgPSB7CiAKICAgICBfc2F2ZVNvdXJjZU1hcHBpbmc6IGZ1bmN0aW9uKHNvdXJjZU1hcHBpbmcp
CiAgICAgewotICAgICAgICB2YXIgb2xkVUlTb3VyY2VDb2RlOworICAgICAgICB2YXIgb2xkU291
cmNlTWFwcGluZzsKICAgICAgICAgaWYgKHRoaXMuX3NvdXJjZU1hcHBpbmcpCi0gICAgICAgICAg
ICBvbGRVSVNvdXJjZUNvZGUgPSB0aGlzLl9zb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZTsKKyAg
ICAgICAgICAgIG9sZFNvdXJjZU1hcHBpbmcgPSB0aGlzLl9zb3VyY2VNYXBwaW5nOwogICAgICAg
ICB0aGlzLl9zb3VyY2VNYXBwaW5nID0gc291cmNlTWFwcGluZzsKLSAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlNv
dXJjZU1hcHBpbmdVcGRhdGVkLCB7IG9sZFVJU291cmNlQ29kZTogb2xkVUlTb3VyY2VDb2RlIH0p
OworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmF3
U291cmNlQ29kZS5FdmVudHMuU291cmNlTWFwcGluZ1VwZGF0ZWQsIHsgb2xkU291cmNlTWFwcGlu
Zzogb2xkU291cmNlTWFwcGluZyB9KTsKICAgICB9CiB9CiAKQEAgLTE4NCwxMyArMTg0LDEzIEBA
IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLlBsYWlu
U291cmNlTWFwcGluZyA9IGZ1bmN0aW9uKHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZSkKIHsK
ICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlID0gcmF3U291cmNlQ29kZTsKLSAgICB0aGlzLl91aVNv
dXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7CisgICAgdGhpcy5fdWlTb3VyY2VDb2RlTGlzdCA9IFt1
aVNvdXJjZUNvZGVdOwogfQogCiBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5QbGFpblNvdXJj
ZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgIHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uOiBmdW5j
dGlvbihyYXdMb2NhdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9y
LlVJTG9jYXRpb24odGhpcy5fdWlTb3VyY2VDb2RlLCByYXdMb2NhdGlvbi5saW5lTnVtYmVyLCBy
YXdMb2NhdGlvbi5jb2x1bW5OdW1iZXIpOworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rv
ci5VSUxvY2F0aW9uKHRoaXMuX3VpU291cmNlQ29kZUxpc3RbMF0sIHJhd0xvY2F0aW9uLmxpbmVO
dW1iZXIsIHJhd0xvY2F0aW9uLmNvbHVtbk51bWJlcik7CiAgICAgfSwKIAogICAgIHVpTG9jYXRp
b25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCkBAIC0y
MDAsOSArMjAwLDkgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuUGxhaW5Tb3VyY2VNYXBw
aW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHJhd0xvY2F0aW9uOwogICAgIH0sCiAK
LSAgICBnZXQgdWlTb3VyY2VDb2RlKCkKKyAgICB1aVNvdXJjZUNvZGVMaXN0OiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdWlTb3VyY2VDb2RlOworICAgICAgICByZXR1
cm4gdGhpcy5fdWlTb3VyY2VDb2RlTGlzdDsKICAgICB9CiB9CiAKQEAgLTIxMiw3ICsyMTIsNyBA
QCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5QbGFpblNvdXJjZU1hcHBpbmcucHJvdG90eXBl
ID0gewogV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRm9ybWF0dGVkU291cmNlTWFwcGluZyA9
IGZ1bmN0aW9uKHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZSwgbWFwcGluZykKIHsKICAgICB0
aGlzLl9yYXdTb3VyY2VDb2RlID0gcmF3U291cmNlQ29kZTsKLSAgICB0aGlzLl91aVNvdXJjZUNv
ZGUgPSB1aVNvdXJjZUNvZGU7CisgICAgdGhpcy5fdWlTb3VyY2VDb2RlTGlzdCA9IFt1aVNvdXJj
ZUNvZGVdOwogICAgIHRoaXMuX21hcHBpbmcgPSBtYXBwaW5nOwogfQogCkBAIC0yMjAsNyArMjIw
LDcgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRm9ybWF0dGVkU291cmNlTWFwcGluZy5w
cm90b3R5cGUgPSB7CiAgICAgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IGZ1bmN0aW9uKHJhd0xv
Y2F0aW9uKQogICAgIHsKICAgICAgICAgdmFyIGxvY2F0aW9uID0gdGhpcy5fbWFwcGluZy5vcmln
aW5hbFRvRm9ybWF0dGVkKHJhd0xvY2F0aW9uKTsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNw
ZWN0b3IuVUlMb2NhdGlvbih0aGlzLl91aVNvdXJjZUNvZGUsIGxvY2F0aW9uLmxpbmVOdW1iZXIs
IGxvY2F0aW9uLmNvbHVtbk51bWJlcik7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9y
LlVJTG9jYXRpb24odGhpcy5fdWlTb3VyY2VDb2RlTGlzdFswXSwgbG9jYXRpb24ubGluZU51bWJl
ciwgbG9jYXRpb24uY29sdW1uTnVtYmVyKTsKICAgICB9LAogCiAgICAgdWlMb2NhdGlvblRvUmF3
TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKQEAgLTIzMCw5ICsy
MzAsOSBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5Gb3JtYXR0ZWRTb3VyY2VNYXBwaW5n
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHJhd0xvY2F0aW9uOwogICAgIH0sCiAKLSAg
ICBnZXQgdWlTb3VyY2VDb2RlKCkKKyAgICB1aVNvdXJjZUNvZGVMaXN0OiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdWlTb3VyY2VDb2RlOworICAgICAgICByZXR1cm4g
dGhpcy5fdWlTb3VyY2VDb2RlTGlzdDsKICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="106147"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>