<?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>71357</bug_id>
          
          <creation_ts>2011-11-02 04:52:14 -0700</creation_ts>
          <short_desc>Web Inspector: Cannot edit elements commented with &lt;!--</short_desc>
          <delta_ts>2011-11-07 02:51:44 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</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>494554</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-11-02 04:52:14 -0700</bug_when>
    <thetext>What steps will reproduce the problem?
1. Navigate to phrack.com/issues.html
2. Open developer tools 
3. Right click on super secret hidden Kiwicon endorsement


What is the expected result?

4. Get &quot;Edit as HTML&quot; option
5. Uncomment

What happens instead?

4. No option to edit, only Inspect Element and Word Wrap.

Please provide any additional information below. Attach a screenshot if
possible.

If I comment out any element in this fashion I cannot uncomment it via the dev tools, i have to reload the page.

I don&apos;t see why the dev tools can&apos;t edit commented elements. That doesnt make sense.

Upstreaming http://code.google.com/p/chromium/issues/detail?id=92605</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495394</commentid>
    <comment_count>1</comment_count>
      <attachid>113471</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-11-03 06:05:24 -0700</bug_when>
    <thetext>Created attachment 113471
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495430</commentid>
    <comment_count>2</comment_count>
      <attachid>113471</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-03 06:57:49 -0700</bug_when>
    <thetext>Comment on attachment 113471
[PATCH] Suggested solution

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

r- for two branches in setOuterHTML

&gt; LayoutTests/inspector/elements/edit-dom-actions.html:165
&gt; +        if (typeof dataNode === &quot;string&quot;)

You should use different method for comment nodes.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:772
&gt; +        RefPtr&lt;DocumentFragment&gt; fragment = DocumentFragment::create(document);

You should use this branch for both cases.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:776
&gt; +            return;

Assign errorString here.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:781
&gt; +            return;

ditto

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:791
&gt; +        if (ec)

ditto

&gt; Source/WebCore/inspector/front-end/ElementsTreeOutline.js:1061
&gt; +    _populateCommentContextMenu: function(contextMenu, commentNode)

You should call this method from _populateTagContextMenu (and call it _populateNodeContextMenu). Should also work for Text nodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495583</commentid>
    <comment_count>3</comment_count>
      <attachid>113515</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-11-03 10:09:21 -0700</bug_when>
    <thetext>Created attachment 113515
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496666</commentid>
    <comment_count>4</comment_count>
      <attachid>113515</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-05 09:05:47 -0700</bug_when>
    <thetext>Comment on attachment 113515
[PATCH] Comments addressed

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

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:751
&gt;      HTMLElement* element = assertHTMLElement(errorString, nodeId);

If user passes TextNode id into this method, he will get an error message saying that it should always be id of the Element. But we do support nodes (see comment above). You should either support more node types and remove this assertion or not call getOuterHTML for non-Element nodes.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:772
&gt; +    if (document-&gt;isHTMLDocument())

You could put this check earlier. Can this happen at all?

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:787
&gt; +        requiresTotalUpdate = htmlElement-&gt;tagName() == &quot;HTML&quot; || htmlElement-&gt;tagName() == &quot;BODY&quot; || htmlElement-&gt;tagName() == &quot;HEAD&quot;;

no need to cast, tagName() is nodeName() for elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497011</commentid>
    <comment_count>5</comment_count>
      <attachid>113832</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-11-07 00:41:37 -0800</bug_when>
    <thetext>Created attachment 113832
[PATCH] Comments addressed - 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497023</commentid>
    <comment_count>6</comment_count>
      <attachid>113832</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-07 01:59:44 -0800</bug_when>
    <thetext>Comment on attachment 113832
[PATCH] Comments addressed - 2

Clearing flags on attachment: 113832

Committed r99401: &lt;http://trac.webkit.org/changeset/99401&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497025</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-07 01:59:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497041</commentid>
    <comment_count>8</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-11-07 02:51:44 -0800</bug_when>
    <thetext>Committed r99402: &lt;http://trac.webkit.org/changeset/99402&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113471</attachid>
            <date>2011-11-03 06:05:24 -0700</date>
            <delta_ts>2011-11-03 10:09:21 -0700</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>editcomment.patch</filename>
            <type>text/plain</type>
            <size>11313</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDJmMDc5MTFmODg0ZDdiMTBmNzBlYzkwYTY2MDBhYTdhOGM1OGU2MGEKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTm92IDIg
MTY6Mjk6MzYgMjAxMSArMDQwMAoKICAgIFdJUAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZTc0YzM3Li4xODg2ZjI5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTEtMDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2
bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDYW5ub3QgZWRpdCBl
bGVtZW50cyBjb21tZW50ZWQgd2l0aCA8IS0tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MTM1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rp
b25zLmh0bWw6CisKIDIwMTEtMTEtMDMgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtRdF0gWDExIHBsdWdpbnMgbmVlZCB0byBiZSByZXdvcmtlZCBmb3Ig
UXQ1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20t
YWN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRp
dC1kb20tYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggZDVmNzJhNS4uYWE0ZDNlZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1h
Y3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAgVGVzdHMgdGhhdCB1c2VyIGNhbiBt
dXRhdGUgRE9NIGJ5IG1lYW5zIG9mIGVsZW1lbnRzIHBhbmVsLgogIAogRWRpdGVkIFRleHQKIFNw
YW4gY29udGVudHMKK0VsZW1lbnQKIAogUnVubmluZzogdGVzdFNldFVwCiAKQEAgLTc1LDYgKzc2
LDE3IEBAIFJ1bm5pbmc6IHRlc3RBZGRBdHRyaWJ1dGUKICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8t
YWRkLWF0dHJpYnV0ZSIgbmV3YXR0cj0ibmV3LXZhbHVlIj48L2Rpdj4KICAgPC9kaXY+CiAKK1J1
bm5pbmc6IHRlc3RFZGl0Q29tbWVudEFzSFRNTAorPT09PSBiZWZvcmUgPT09PQorLSA8ZGl2IGlk
PSJ0ZXN0RWRpdENvbW1lbnRBc0hUTUwiPgorICAgICAgPCEtLSBDb21tZW50IC0tPgorICA8L2Rp
dj4KKzwhLS0gQ29tbWVudCAtLT4KKz09PT0gYWZ0ZXIgPT09PQorLSA8ZGl2IGlkPSJ0ZXN0RWRp
dENvbW1lbnRBc0hUTUwiPgorICAgICAgPGRpdiBmb289ImJhci1jb21tZW50Ij5FbGVtZW50PC9k
aXY+CisgIDwvZGl2PgorCiBSdW5uaW5nOiB0ZXN0RWRpdEFzSFRNTAogPT09PSBiZWZvcmUgPT09
PQogLSA8ZGl2IGlkPSJ0ZXN0RWRpdEFzSFRNTCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMuaHRtbAppbmRleCA3OTI1MDRkLi4wNjQ3
MmM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20t
YWN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRv
bS1hY3Rpb25zLmh0bWwKQEAgLTk5LDYgKzk5LDQwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgfQogICAgICAgICB9LAogCisgICAgICAgIGZ1bmN0aW9uIHRlc3RFZGl0Q29tbWVudEFz
SFRNTChuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBnZXRDb21tZW50Tm9k
ZSh0ZXN0Tm9kZSwgY2FsbGJhY2spCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFy
IGNoaWxkTm9kZXMgPSB0ZXN0Tm9kZS5jaGlsZHJlbjsKKyAgICAgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGNoaWxkTm9kZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGNoaWxkTm9kZXNbaV0ubm9kZVR5cGUoKSA9PT0gOCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgY2FsbGJhY2soY2hpbGROb2Rlc1tpXSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbW1lbnQgbm9kZSBub3QgZm91
bmQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZG9tQWN0aW9uVGVzdCgidGVzdEVkaXRDb21tZW50QXNI
VE1MIiwgZ2V0Q29tbWVudE5vZGUsIHRlc3RCb2R5LCBuZXh0KTsKKworICAgICAgICAgICAgZnVu
Y3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICB2YXIgdHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRs
aW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKKyAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5f
ZWRpdEFzSFRNTCgpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5k
aW5nRGlzcGF0Y2hlcyhzdGVwMik7CisKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigp
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCh0cmVlRWxlbWVudC5faHRtbEVkaXRFbGVtZW50LnRleHRDb250ZW50KTsKKyAgICAg
ICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuX2h0bWxFZGl0RWxlbWVudC50ZXh0Q29udGVudCA9
ICI8ZGl2IGZvbz1cImJhci1jb21tZW50XCI+RWxlbWVudDwvZGl2PiI7CisgICAgICAgICAgICAg
ICAgICAgIHZhciBldmVudCA9IEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIik7
CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LmlzTWV0YU9yQ3RybEZvclRlc3QgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5faHRtbEVkaXRFbGVtZW50LmRpc3BhdGNo
RXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVy
UGVuZGluZ0Rpc3BhdGNoZXMoZG9uZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICB9LAorCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RFZGl0QXNIVE1MKG5leHQpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGRvbUFjdGlvblRlc3QoInRlc3RFZGl0QXNIVE1MIiwgIm5v
ZGUtdG8tZWRpdC1hcy1odG1sIiwgdGVzdEJvZHksIG5leHQpOwpAQCAtMTE2LDcgKzE1MCw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgICAgICB2YXIgZXZlbnQgPSBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUtleUV2ZW50KCJFbnRlciIpOwogICAgICAgICAgICAgICAgICAgICBldmVu
dC5pc01ldGFPckN0cmxGb3JUZXN0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgdHJlZUVs
ZW1lbnQuX2h0bWxFZGl0RWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKLSAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKGRvbmUpOwor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNo
ZXMoSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUuYmluZChJbnNwZWN0b3JUZXN0LCBk
b25lKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0x
MjgsNyArMTYyLDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiPT09PSBiZWZvcmUgPT09PSIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBF
bGVtZW50c1RyZWUodGVzdE5vZGUpOwogCi0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9k
ZVdpdGhJZChkYXRhTm9kZSwgc3RlcDApOworICAgICAgICBpZiAodHlwZW9mIGRhdGFOb2RlID09
PSAic3RyaW5nIikKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZChk
YXRhTm9kZSwgc3RlcDApOworICAgICAgICBlbHNlIC8vIHR5cGVvZiBkYXRhTm9kZSA9PT0gImZ1
bmN0aW9uIgorICAgICAgICAgICAgZGF0YU5vZGUodGVzdE5vZGUsIHN0ZXAwKTsKIAogICAgICAg
ICBmdW5jdGlvbiBzdGVwMChub2RlKQogICAgICAgICB7CkBAIC0yMDgsNiArMjQ1LDExIEBAIFRl
c3RzIHRoYXQgdXNlciBjYW4gbXV0YXRlIERPTSBieSBtZWFucyBvZiBlbGVtZW50cyBwYW5lbC4K
ICAgICA8ZGl2IGlkPSJ0ZXN0RWRpdEFzSFRNTCI+CiAgICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8t
ZWRpdC1hcy1odG1sIj48c3BhbiBpZD0ic3BhbiI+VGV4dDwvc3Bhbj48L2Rpdj4KICAgICA8L2Rp
dj4KKworICAgIDxkaXYgaWQ9InRlc3RFZGl0Q29tbWVudEFzSFRNTCI+CisgICAgICAgIDwhLS0g
Q29tbWVudCAtLT4KKyAgICA8L2Rpdj4KKwogPC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNjdlMGExMC4uMGJjNzliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE5IEBACiAy
MDExLTExLTAzICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogQ2Fubm90IGVkaXQgZWxlbWVudHMgY29tbWVudGVkIHdpdGgg
PCEtLQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEz
NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JET01BZ2VudDo6Z2V0T3V0ZXJIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpzZXRPdXRlckhUTUwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVP
dXRsaW5lLnByb3RvdHlwZS5wb3B1bGF0ZUNvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fcG9wdWxhdGVDb21tZW50Q29udGV4
dE1lbnUpOgorCisyMDExLTExLTAzICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1
bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1N0eWxlc10gRG8gbm90IGNoZWNrIGlz
RWRpdGluZ0FueUZpZWxkIGluIFN0eWxlc1NpZGViYXJQYW5lLl9jcmVhdGVOZXdSdWxlCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIxNwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAzMDBj
MTdjLi44NzU5NmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJET01Ob2RlSGlnaGxpZ2h0
ZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNp
bmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50Q29udGV4dC5oIgpAQCAtNzM4LDYgKzcz
OSwxNSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXROb2RlTmFtZShFcnJvclN0cmluZyos
IGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgdGFnTgogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpnZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBXVEY6
OlN0cmluZyogb3V0ZXJIVE1MKQogeworICAgIE5vZGUqIG5vZGUgPSBhc3NlcnROb2RlKGVycm9y
U3RyaW5nLCBub2RlSWQpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKG5vZGUtPmlzQ29tbWVudE5vZGUoKSkgeworICAgICAgICAqb3V0ZXJIVE1MID0gIjwhLS0i
ICsgbm9kZS0+bm9kZVZhbHVlKCkgKyAiLS0+IjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gYXNzZXJ0SFRNTEVsZW1lbnQoZXJyb3JTdHJpbmcs
IG5vZGVJZCk7CiAgICAgaWYgKGVsZW1lbnQpCiAgICAgICAgICpvdXRlckhUTUwgPSBlbGVtZW50
LT5vdXRlckhUTUwoKTsKQEAgLTc0NSwyMCArNzU1LDQ0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdl
bnQ6OmdldE91dGVySFRNTChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIFdU
Rjo6CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTChFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgb3V0ZXJIVE1MLCBpbnQqIG5l
d0lkKQogewotICAgIEhUTUxFbGVtZW50KiBodG1sRWxlbWVudCA9IGFzc2VydEhUTUxFbGVtZW50
KGVycm9yU3RyaW5nLCBub2RlSWQpOwotICAgIGlmICghaHRtbEVsZW1lbnQpCisgICAgTm9kZSog
bm9kZSA9IGFzc2VydE5vZGUoZXJyb3JTdHJpbmcsIG5vZGVJZCk7CisgICAgaWYgKCFub2RlKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBib29sIHJlcXVpcmVzVG90YWxVcGRhdGUgPSBodG1sRWxl
bWVudC0+dGFnTmFtZSgpID09ICJIVE1MIiB8fCBodG1sRWxlbWVudC0+dGFnTmFtZSgpID09ICJC
T0RZIiB8fCBodG1sRWxlbWVudC0+dGFnTmFtZSgpID09ICJIRUFEIjsKKyAgICBib29sIHJlcXVp
cmVzVG90YWxVcGRhdGUgPSBmYWxzZTsKKyAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcgPSBub2Rl
LT5wcmV2aW91c1NpYmxpbmcoKTsKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlID0gbm9k
ZS0+cGFyZW50Tm9kZSgpOwogCi0gICAgYm9vbCBjaGlsZHJlblJlcXVlc3RlZCA9IG1fY2hpbGRy
ZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKTsKLSAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcg
PSBodG1sRWxlbWVudC0+cHJldmlvdXNTaWJsaW5nKCk7Ci0gICAgQ29udGFpbmVyTm9kZSogcGFy
ZW50Tm9kZSA9IGh0bWxFbGVtZW50LT5wYXJlbnROb2RlKCk7CisgICAgaWYgKG5vZGUtPmlzQ29t
bWVudE5vZGUoKSkgeworICAgICAgICBFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gbm9kZS0+cGFy
ZW50RWxlbWVudCgpOworICAgICAgICBpZiAoIXBhcmVudEVsZW1lbnQpCisgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBodG1sRWxlbWVudC0+c2V0
T3V0ZXJIVE1MKG91dGVySFRNTCwgZWMpOwotICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuOwor
ICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBub2RlLT5vd25lckRvY3VtZW50KCk7CisgICAg
ICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQo
KSkKKyAgICAgICAgICAgIGZyYWdtZW50LT5wYXJzZUhUTUwob3V0ZXJIVE1MLCBub2RlLT5wYXJl
bnRFbGVtZW50KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAgIHBhcmVudEVsZW1lbnQtPmluc2VydEJl
Zm9yZShmcmFnbWVudC5yZWxlYXNlKCksIG5vZGUsIGVjKTsKKyAgICAgICAgaWYgKGVjKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHBhcmVudEVsZW1lbnQtPnJlbW92ZUNoaWxkKG5v
ZGUsIGVjKTsKKyAgICB9IGVsc2UgeworICAgICAgICBIVE1MRWxlbWVudCogaHRtbEVsZW1lbnQg
PSBhc3NlcnRIVE1MRWxlbWVudChlcnJvclN0cmluZywgbm9kZUlkKTsKKyAgICAgICAgaWYgKCFo
dG1sRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKKyAgICAgICAgaHRtbEVsZW1lbnQtPnNldE91dGVySFRNTChvdXRlckhUTUwsIGVj
KTsKKyAgICAgICAgaWYgKGVjKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHJlcXVp
cmVzVG90YWxVcGRhdGUgPSBodG1sRWxlbWVudC0+dGFnTmFtZSgpID09ICJIVE1MIiB8fCBodG1s
RWxlbWVudC0+dGFnTmFtZSgpID09ICJCT0RZIiB8fCBodG1sRWxlbWVudC0+dGFnTmFtZSgpID09
ICJIRUFEIjsKKyAgICB9CiAKICAgICBpZiAocmVxdWlyZXNUb3RhbFVwZGF0ZSkgewogICAgICAg
ICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gbV9kb2N1bWVudDsKQEAgLTc3Niw2ICs4MTAs
OCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcqIGVy
cm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdAogICAgIH0KIAogICAgICpuZXdJZCA9IHB1c2hO
b2RlUGF0aFRvRnJvbnRlbmQobmV3Tm9kZSk7CisKKyAgICBib29sIGNoaWxkcmVuUmVxdWVzdGVk
ID0gbV9jaGlsZHJlblJlcXVlc3RlZC5jb250YWlucyhub2RlSWQpOwogICAgIGlmIChjaGlsZHJl
blJlcXVlc3RlZCkKICAgICAgICAgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKCpuZXdJZCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
VHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1l
bnRzVHJlZU91dGxpbmUuanMKaW5kZXggNjBkZjk3MS4uZDU1MWNkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGlu
ZS5qcwpAQCAtNDU3LDYgKzQ1Nyw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5l
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgdGFnID0gZXZlbnQudGFyZ2V0LmVuY2xvc2lu
Z05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1odG1sLXRhZyIpOwogICAgICAgICB2YXIgdGV4
dE5vZGUgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0
LWh0bWwtdGV4dC1ub2RlIik7CisgICAgICAgIHZhciBjb21tZW50Tm9kZSA9IGV2ZW50LnRhcmdl
dC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC1jb21tZW50Iik7CiAg
ICAgICAgIHZhciBwb3B1bGF0ZWQgPSBXZWJJbnNwZWN0b3IucG9wdWxhdGVIcmVmQ29udGV4dE1l
bnUoY29udGV4dE1lbnUsIHRoaXMuc2VsZWN0ZWRET01Ob2RlKCksIGV2ZW50KTsKICAgICAgICAg
aWYgKHRhZyAmJiB0cmVlRWxlbWVudC5fcG9wdWxhdGVUYWdDb250ZXh0TWVudSkgewogICAgICAg
ICAgICAgaWYgKHBvcHVsYXRlZCkKQEAgLTQ2OCw2ICs0NjksMTEgQEAgV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGNvbnRleHRN
ZW51LmFwcGVuZFNlcGFyYXRvcigpOwogICAgICAgICAgICAgdHJlZUVsZW1lbnQuX3BvcHVsYXRl
VGV4dENvbnRleHRNZW51KGNvbnRleHRNZW51LCB0ZXh0Tm9kZSk7CiAgICAgICAgICAgICBwb3B1
bGF0ZWQgPSB0cnVlOworICAgICAgICB9IGVsc2UgaWYgKGNvbW1lbnROb2RlICYmIHRyZWVFbGVt
ZW50Ll9wb3B1bGF0ZUNvbW1lbnRDb250ZXh0TWVudSkgeworICAgICAgICAgICAgaWYgKHBvcHVs
YXRlZCkKKyAgICAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKyAg
ICAgICAgICAgIHRyZWVFbGVtZW50Ll9wb3B1bGF0ZUNvbW1lbnRDb250ZXh0TWVudShjb250ZXh0
TWVudSwgdGV4dE5vZGUpOworICAgICAgICAgICAgcG9wdWxhdGVkID0gdHJ1ZTsKICAgICAgICAg
fQogCiAgICAgICAgIHJldHVybiBwb3B1bGF0ZWQ7CkBAIC0xMDUyLDYgKzEwNTgsMTQgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBjb250
ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZyhXZWJJbnNwZWN0b3IudXNl
TG93ZXJDYXNlTWVudVRpdGxlcygpID8gIkVkaXQgdGV4dCIgOiAiRWRpdCBUZXh0IiksIHRoaXMu
X3N0YXJ0RWRpdGluZ1RleHROb2RlLmJpbmQodGhpcywgdGV4dE5vZGUpKTsKICAgICB9LAogCisg
ICAgX3BvcHVsYXRlQ29tbWVudENvbnRleHRNZW51OiBmdW5jdGlvbihjb250ZXh0TWVudSwgY29t
bWVudE5vZGUpCisgICAgeworICAgICAgICAvLyBBZGQgZnJlZS1mb3JtIG5vZGUtcmVsYXRlZCBh
Y3Rpb25zLgorICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRWRpdCBhcyBIVE1MIiksIHRoaXMuX2VkaXRBc0hUTUwuYmluZCh0aGlzKSk7CisgICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb3B5IGFz
IEhUTUwiKSwgdGhpcy5fY29weUhUTUwuYmluZCh0aGlzKSk7CisgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dlckNh
c2VNZW51VGl0bGVzKCkgPyAiRGVsZXRlIG5vZGUiIDogIkRlbGV0ZSBOb2RlIiksIHRoaXMucmVt
b3ZlLmJpbmQodGhpcykpOworICAgIH0sCisKICAgICBfc3RhcnRFZGl0aW5nOiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICBpZiAodGhpcy50cmVlT3V0bGluZS5zZWxlY3RlZERPTU5vZGUoKSAh
PT0gdGhpcy5yZXByZXNlbnRlZE9iamVjdCkK
</data>
<flag name="review"
          id="111853"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113515</attachid>
            <date>2011-11-03 10:09:21 -0700</date>
            <delta_ts>2011-11-07 00:41:37 -0800</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>editcomment.patch</filename>
            <type>text/plain</type>
            <size>15027</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDM0NmFlYjkwZWI3MGQ1MDNmOTdiYWUwNGYyOGM0OTBiNmVmNjBiZmMKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTm92IDIg
MTY6Mjk6MzYgMjAxMSArMDQwMAoKICAgIFdJUAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZTc0YzM3Li4xODg2ZjI5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTEtMDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2
bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDYW5ub3QgZWRpdCBl
bGVtZW50cyBjb21tZW50ZWQgd2l0aCA8IS0tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MTM1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rp
b25zLmh0bWw6CisKIDIwMTEtMTEtMDMgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtRdF0gWDExIHBsdWdpbnMgbmVlZCB0byBiZSByZXdvcmtlZCBmb3Ig
UXQ1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20t
YWN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRp
dC1kb20tYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggZDVmNzJhNS4uYWE0ZDNlZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1h
Y3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAgVGVzdHMgdGhhdCB1c2VyIGNhbiBt
dXRhdGUgRE9NIGJ5IG1lYW5zIG9mIGVsZW1lbnRzIHBhbmVsLgogIAogRWRpdGVkIFRleHQKIFNw
YW4gY29udGVudHMKK0VsZW1lbnQKIAogUnVubmluZzogdGVzdFNldFVwCiAKQEAgLTc1LDYgKzc2
LDE3IEBAIFJ1bm5pbmc6IHRlc3RBZGRBdHRyaWJ1dGUKICAgICAgIDxkaXYgaWQ9Im5vZGUtdG8t
YWRkLWF0dHJpYnV0ZSIgbmV3YXR0cj0ibmV3LXZhbHVlIj48L2Rpdj4KICAgPC9kaXY+CiAKK1J1
bm5pbmc6IHRlc3RFZGl0Q29tbWVudEFzSFRNTAorPT09PSBiZWZvcmUgPT09PQorLSA8ZGl2IGlk
PSJ0ZXN0RWRpdENvbW1lbnRBc0hUTUwiPgorICAgICAgPCEtLSBDb21tZW50IC0tPgorICA8L2Rp
dj4KKzwhLS0gQ29tbWVudCAtLT4KKz09PT0gYWZ0ZXIgPT09PQorLSA8ZGl2IGlkPSJ0ZXN0RWRp
dENvbW1lbnRBc0hUTUwiPgorICAgICAgPGRpdiBmb289ImJhci1jb21tZW50Ij5FbGVtZW50PC9k
aXY+CisgIDwvZGl2PgorCiBSdW5uaW5nOiB0ZXN0RWRpdEFzSFRNTAogPT09PSBiZWZvcmUgPT09
PQogLSA8ZGl2IGlkPSJ0ZXN0RWRpdEFzSFRNTCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMuaHRtbAppbmRleCA3OTI1MDRkLi5lNzNk
YzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20t
YWN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRv
bS1hY3Rpb25zLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAg
ICAgZnVuY3Rpb24gdGVzdFJlbW92ZShuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICBkb21B
Y3Rpb25UZXN0KCJ0ZXN0UmVtb3ZlIiwgIm5vZGUtdG8tcmVtb3ZlIiwgdGVzdEJvZHksIG5leHQp
OworICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdFJlbW92ZSIsICJub2Rl
LXRvLXJlbW92ZSIsIHRlc3RCb2R5LCBuZXh0KTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gdGVz
dEJvZHkobm9kZSwgZG9uZSkKICAgICAgICAgICAgIHsKQEAgLTMwLDcgKzMwLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdFNldE5vZGVOYW1lKG5leHQpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlvblRlc3QoInRlc3RTZXROb2RlTmFtZSIsICJub2Rl
LXRvLXNldC1uYW1lIiwgdGVzdEJvZHksIG5leHQpOworICAgICAgICAgICAgZG9tQWN0aW9uVGVz
dEZvck5vZGVJZCgidGVzdFNldE5vZGVOYW1lIiwgIm5vZGUtdG8tc2V0LW5hbWUiLCB0ZXN0Qm9k
eSwgbmV4dCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5vZGUsIGRvbmUpCiAg
ICAgICAgICAgICB7CkBAIC00MCw3ICs0MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAg
IGZ1bmN0aW9uIHRlc3RTZXROb2RlTmFtZUlucHV0KG5leHQpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIGRvbUFjdGlvblRlc3QoInRlc3RTZXROb2RlTmFtZUlucHV0IiwgIm5vZGUtdG8tc2V0LW5h
bWUtaW5wdXQiLCB0ZXN0Qm9keSwgbmV4dCk7CisgICAgICAgICAgICBkb21BY3Rpb25UZXN0Rm9y
Tm9kZUlkKCJ0ZXN0U2V0Tm9kZU5hbWVJbnB1dCIsICJub2RlLXRvLXNldC1uYW1lLWlucHV0Iiwg
dGVzdEJvZHksIG5leHQpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Qm9keShub2RlLCBk
b25lKQogICAgICAgICAgICAgewpAQCAtNTAsNyArNTAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAog
ICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0Tm9kZVZhbHVlKG5leHQpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGRvbUFjdGlvblRlc3QoInRlc3RTZXROb2RlVmFsdWUiLCAibm9kZS10by1zZXQtdmFs
dWUiLCB0ZXN0Qm9keSwgbmV4dCk7CisgICAgICAgICAgICBkb21BY3Rpb25UZXN0Rm9yTm9kZUlk
KCJ0ZXN0U2V0Tm9kZVZhbHVlIiwgIm5vZGUtdG8tc2V0LXZhbHVlIiwgdGVzdEJvZHksIG5leHQp
OwogCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Qm9keShub2RlLCBkb25lKQogICAgICAgICAg
ICAgewpAQCAtNjAsNyArNjAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlv
biB0ZXN0U2V0QXR0cmlidXRlKG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlv
blRlc3QoInRlc3RTZXRBdHRyaWJ1dGUiLCAibm9kZS10by1zZXQtYXR0cmlidXRlIiwgdGVzdEJv
ZHksIG5leHQpOworICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdFNldEF0
dHJpYnV0ZSIsICJub2RlLXRvLXNldC1hdHRyaWJ1dGUiLCB0ZXN0Qm9keSwgbmV4dCk7CiAgICAg
ICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5vZGUsIGRvbmUpCiAgICAgICAg
ICAgICB7CkBAIC03MCw3ICs3MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgIGZ1bmN0
aW9uIHRlc3RSZW1vdmVBdHRyaWJ1dGUobmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgZG9t
QWN0aW9uVGVzdCgidGVzdFJlbW92ZUF0dHJpYnV0ZSIsICJub2RlLXRvLXJlbW92ZS1hdHRyaWJ1
dGUiLCB0ZXN0Qm9keSwgbmV4dCk7CisgICAgICAgICAgICBkb21BY3Rpb25UZXN0Rm9yTm9kZUlk
KCJ0ZXN0UmVtb3ZlQXR0cmlidXRlIiwgIm5vZGUtdG8tcmVtb3ZlLWF0dHJpYnV0ZSIsIHRlc3RC
b2R5LCBuZXh0KTsKICAgICAgICAgIAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEJvZHkobm9k
ZSwgZG9uZSkKICAgICAgICAgICAgIHsKQEAgLTgwLDcgKzgwLDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEFkZEF0dHJpYnV0ZShuZXh0KQogICAgICAgICB7Ci0g
ICAgICAgICAgICBkb21BY3Rpb25UZXN0KCJ0ZXN0QWRkQXR0cmlidXRlIiwgIm5vZGUtdG8tYWRk
LWF0dHJpYnV0ZSIsIHRlc3RCb2R5LCBuZXh0KTsKKyAgICAgICAgICAgIGRvbUFjdGlvblRlc3RG
b3JOb2RlSWQoInRlc3RBZGRBdHRyaWJ1dGUiLCAibm9kZS10by1hZGQtYXR0cmlidXRlIiwgdGVz
dEJvZHksIG5leHQpOwogICAgICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Qm9keShu
b2RlLCBkb25lKQogICAgICAgICAgICAgewpAQCAtOTksOSArOTksNDQgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAKKyAgICAgICAgZnVuY3Rpb24gdGVzdEVk
aXRDb21tZW50QXNIVE1MKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNv
bW1lbnROb2RlU2VsZWN0aW9uQ2FsbGJhY2sodGVzdE5vZGUsIGNhbGxiYWNrKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHZhciBjaGlsZE5vZGVzID0gdGVzdE5vZGUuY2hpbGRyZW47
CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZE5vZGVzLmxlbmd0aDsg
KytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZE5vZGVzW2ldLm5vZGVUeXBlKCkg
PT09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci51cGRhdGVGb2N1
c2VkTm9kZShjaGlsZE5vZGVzW2ldLmlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxi
YWNrKGNoaWxkTm9kZXNbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDb21tZW50IG5vZGUgbm90IGZvdW5kIik7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGRvbUFjdGlvblRlc3QoInRlc3RFZGl0Q29tbWVudEFzSFRNTCIsIGNvbW1lbnRO
b2RlU2VsZWN0aW9uQ2FsbGJhY2ssIHRlc3RCb2R5LCBuZXh0KTsKKworICAgICAgICAgICAgZnVu
Y3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICB2YXIgdHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRs
aW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKKyAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5f
ZWRpdEFzSFRNTCgpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5k
aW5nRGlzcGF0Y2hlcyhzdGVwMik7CisKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigp
CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCh0cmVlRWxlbWVudC5faHRtbEVkaXRFbGVtZW50LnRleHRDb250ZW50KTsKKyAgICAg
ICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuX2h0bWxFZGl0RWxlbWVudC50ZXh0Q29udGVudCA9
ICI8ZGl2IGZvbz1cImJhci1jb21tZW50XCI+RWxlbWVudDwvZGl2PiI7CisgICAgICAgICAgICAg
ICAgICAgIHZhciBldmVudCA9IEluc3BlY3RvclRlc3QuY3JlYXRlS2V5RXZlbnQoIkVudGVyIik7
CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LmlzTWV0YU9yQ3RybEZvclRlc3QgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5faHRtbEVkaXRFbGVtZW50LmRpc3BhdGNo
RXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVy
UGVuZGluZ0Rpc3BhdGNoZXMoZG9uZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICB9LAorCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RFZGl0QXNIVE1MKG5leHQpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlvblRlc3QoInRlc3RFZGl0QXNIVE1MIiwgIm5v
ZGUtdG8tZWRpdC1hcy1odG1sIiwgdGVzdEJvZHksIG5leHQpOworICAgICAgICAgICAgZG9tQWN0
aW9uVGVzdEZvck5vZGVJZCgidGVzdEVkaXRBc0hUTUwiLCAibm9kZS10by1lZGl0LWFzLWh0bWwi
LCB0ZXN0Qm9keSwgbmV4dCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5KG5vZGUs
IGRvbmUpCiAgICAgICAgICAgICB7CkBAIC0xMTYsMTkgKzE1MSwyOCBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVL
ZXlFdmVudCgiRW50ZXIiKTsKICAgICAgICAgICAgICAgICAgICAgZXZlbnQuaXNNZXRhT3JDdHJs
Rm9yVGVzdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50Ll9odG1sRWRp
dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhkb25lKTsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKEluc3BlY3RvclRl
c3QuZXhwYW5kRWxlbWVudHNUcmVlLmJpbmQoSW5zcGVjdG9yVGVzdCwgZG9uZSkpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIF0pOwogCi0gICAgZnVu
Y3Rpb24gZG9tQWN0aW9uVGVzdCh0ZXN0TmFtZSwgZGF0YU5vZGUsIHRlc3RCb2R5LCBuZXh0KQor
ICAgIGZ1bmN0aW9uIGRvbUFjdGlvblRlc3RGb3JOb2RlSWQodGVzdE5hbWUsIGRhdGFOb2RlSWQs
IHRlc3RCb2R5LCBuZXh0KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sodGVzdE5v
ZGUsIGNvbnRpbnVhdGlvbikKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZWxlY3ROb2RlV2l0aElkKGRhdGFOb2RlSWQsIGNvbnRpbnVhdGlvbik7CisgICAgICAgIH0KKyAg
ICAgICAgZG9tQWN0aW9uVGVzdCh0ZXN0TmFtZSwgY2FsbGJhY2ssIHRlc3RCb2R5LCBuZXh0KTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBkb21BY3Rpb25UZXN0KHRlc3ROYW1lLCBkYXRhTm9kZVNl
bGVjdGlvbkNhbGxiYWNrLCB0ZXN0Qm9keSwgbmV4dCkKICAgICB7CiAgICAgICAgIHZhciB0ZXN0
Tm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0aElkKHRlc3ROYW1lKTsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT0gYmVmb3JlID09PT0iKTsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKHRlc3ROb2RlKTsKIAotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoZGF0YU5vZGUsIHN0ZXAwKTsKKwlkYXRhTm9kZVNl
bGVjdGlvbkNhbGxiYWNrKHRlc3ROb2RlLCBzdGVwMCk7CiAKICAgICAgICAgZnVuY3Rpb24gc3Rl
cDAobm9kZSkKICAgICAgICAgewpAQCAtMjA4LDYgKzI1MiwxMSBAQCBUZXN0cyB0aGF0IHVzZXIg
Y2FuIG11dGF0ZSBET00gYnkgbWVhbnMgb2YgZWxlbWVudHMgcGFuZWwuCiAgICAgPGRpdiBpZD0i
dGVzdEVkaXRBc0hUTUwiPgogICAgICAgICA8ZGl2IGlkPSJub2RlLXRvLWVkaXQtYXMtaHRtbCI+
PHNwYW4gaWQ9InNwYW4iPlRleHQ8L3NwYW4+PC9kaXY+CiAgICAgPC9kaXY+CisKKyAgICA8ZGl2
IGlkPSJ0ZXN0RWRpdENvbW1lbnRBc0hUTUwiPgorICAgICAgICA8IS0tIENvbW1lbnQgLS0+Cisg
ICAgPC9kaXY+CisKIDwvZGl2PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY3ZTBh
MTAuLjRjNjUwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMSBAQAogMjAxMS0xMS0wMyAgQWxl
eGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IENhbm5vdCBlZGl0IGVsZW1lbnRzIGNvbW1lbnRlZCB3aXRoIDwhLS0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Omdl
dE91dGVySFRNTCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0
ZXJIVE1MKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxp
bmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5
cGUucG9wdWxhdGVDb250ZXh0TWVudSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUuX3BvcHVsYXRlVGFnQ29udGV4dE1lbnUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9wb3B1bGF0ZVRleHRD
b250ZXh0TWVudSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5w
cm90b3R5cGUuX3BvcHVsYXRlTm9kZUNvbnRleHRNZW51KToKKworMjAxMS0xMS0wMyAgQWxleGFu
ZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtTdHlsZXNdIERvIG5vdCBjaGVjayBpc0VkaXRpbmdBbnlGaWVsZCBpbiBTdHlsZXNTaWRl
YmFyUGFuZS5fY3JlYXRlTmV3UnVsZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEyMTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMzAwYzE3Yy4uNmVjOTQzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC01MCw2ICs1MCw3IEBA
CiAjaW5jbHVkZSAiRE9NTm9kZUhpZ2hsaWdodGVyLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJF
dmVudENvbnRleHQuaCIKQEAgLTczOCw2ICs3MzksMTUgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2Vu
dDo6c2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHRh
Z04KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgaW50IG5vZGVJZCwgV1RGOjpTdHJpbmcqIG91dGVySFRNTCkKIHsKKyAgICBO
b2RlKiBub2RlID0gYXNzZXJ0Tm9kZShlcnJvclN0cmluZywgbm9kZUlkKTsKKyAgICBpZiAoIW5v
ZGUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChub2RlLT5pc0NvbW1lbnROb2RlKCkpIHsK
KyAgICAgICAgKm91dGVySFRNTCA9ICI8IS0tIiArIG5vZGUtPm5vZGVWYWx1ZSgpICsgIi0tPiI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGFz
c2VydEhUTUxFbGVtZW50KGVycm9yU3RyaW5nLCBub2RlSWQpOwogICAgIGlmIChlbGVtZW50KQog
ICAgICAgICAqb3V0ZXJIVE1MID0gZWxlbWVudC0+b3V0ZXJIVE1MKCk7CkBAIC03NDUsMjAgKzc1
NSwzNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBXVEY6OgogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50
OjpzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25z
dCBTdHJpbmcmIG91dGVySFRNTCwgaW50KiBuZXdJZCkKIHsKLSAgICBIVE1MRWxlbWVudCogaHRt
bEVsZW1lbnQgPSBhc3NlcnRIVE1MRWxlbWVudChlcnJvclN0cmluZywgbm9kZUlkKTsKLSAgICBp
ZiAoIWh0bWxFbGVtZW50KQorICAgIE5vZGUqIG5vZGUgPSBhc3NlcnROb2RlKGVycm9yU3RyaW5n
LCBub2RlSWQpOworICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBy
ZXF1aXJlc1RvdGFsVXBkYXRlID0gaHRtbEVsZW1lbnQtPnRhZ05hbWUoKSA9PSAiSFRNTCIgfHwg
aHRtbEVsZW1lbnQtPnRhZ05hbWUoKSA9PSAiQk9EWSIgfHwgaHRtbEVsZW1lbnQtPnRhZ05hbWUo
KSA9PSAiSEVBRCI7CisgICAgYm9vbCByZXF1aXJlc1RvdGFsVXBkYXRlID0gZmFsc2U7CisgICAg
Tm9kZSogcHJldmlvdXNTaWJsaW5nID0gbm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7CisgICAgQ29u
dGFpbmVyTm9kZSogcGFyZW50Tm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKIAotICAgIGJvb2wg
Y2hpbGRyZW5SZXF1ZXN0ZWQgPSBtX2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKG5vZGVJZCk7
Ci0gICAgTm9kZSogcHJldmlvdXNTaWJsaW5nID0gaHRtbEVsZW1lbnQtPnByZXZpb3VzU2libGlu
ZygpOwotICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGUgPSBodG1sRWxlbWVudC0+cGFyZW50
Tm9kZSgpOworICAgIEVsZW1lbnQqIHBhcmVudEVsZW1lbnQgPSBub2RlLT5wYXJlbnRFbGVtZW50
KCk7CisgICAgaWYgKCFwYXJlbnRFbGVtZW50KQorICAgICAgICByZXR1cm47CiAKKyAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBub2RlLT5vd25lckRvY3VtZW50KCk7CisgICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKKyAgICBpZiAoZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkpCisgICAgICAgIGZyYWdtZW50
LT5wYXJzZUhUTUwob3V0ZXJIVE1MLCBub2RlLT5wYXJlbnRFbGVtZW50KCkpOworICAgIGVsc2Ug
eworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm90IGFuIEhUTUwgZG9jdW1lbnQiOworICAgICAg
ICByZXR1cm47CisgICAgfQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGh0bWxFbGVt
ZW50LT5zZXRPdXRlckhUTUwob3V0ZXJIVE1MLCBlYyk7Ci0gICAgaWYgKGVjKQorICAgIHBhcmVu
dEVsZW1lbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIG5vZGUsIGVjKTsKKyAg
ICBpZiAoZWMpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkZhaWxlZCB0byByZXBsYWNlIE5v
ZGUgd2l0aCBuZXcgY29udGVudHMiOwogICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgeworICAgICAgICBIVE1MRWxlbWVudCogaHRtbEVsZW1l
bnQgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KG5vZGUpOworICAgICAgICByZXF1aXJlc1Rv
dGFsVXBkYXRlID0gaHRtbEVsZW1lbnQtPnRhZ05hbWUoKSA9PSAiSFRNTCIgfHwgaHRtbEVsZW1l
bnQtPnRhZ05hbWUoKSA9PSAiQk9EWSIgfHwgaHRtbEVsZW1lbnQtPnRhZ05hbWUoKSA9PSAiSEVB
RCI7CisgICAgfQogCiAgICAgaWYgKHJlcXVpcmVzVG90YWxVcGRhdGUpIHsKICAgICAgICAgUmVm
UHRyPERvY3VtZW50PiBkb2N1bWVudCA9IG1fZG9jdW1lbnQ7CkBAIC03NzYsNiArODAzLDggQEAg
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICB9CiAKICAgICAqbmV3SWQgPSBwdXNoTm9kZVBh
dGhUb0Zyb250ZW5kKG5ld05vZGUpOworCisgICAgYm9vbCBjaGlsZHJlblJlcXVlc3RlZCA9IG1f
Y2hpbGRyZW5SZXF1ZXN0ZWQuY29udGFpbnMobm9kZUlkKTsKICAgICBpZiAoY2hpbGRyZW5SZXF1
ZXN0ZWQpCiAgICAgICAgIHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZCgqbmV3SWQpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVP
dXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Ry
ZWVPdXRsaW5lLmpzCmluZGV4IDYwZGY5NzEuLjUyNTk1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMK
QEAgLTQ1Nyw2ICs0NTcsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90
b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIHRhZyA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2Rl
T3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC10YWciKTsKICAgICAgICAgdmFyIHRleHROb2Rl
ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1odG1s
LXRleHQtbm9kZSIpOworICAgICAgICB2YXIgY29tbWVudE5vZGUgPSBldmVudC50YXJnZXQuZW5j
bG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWh0bWwtY29tbWVudCIpOwogICAgICAg
ICB2YXIgcG9wdWxhdGVkID0gV2ViSW5zcGVjdG9yLnBvcHVsYXRlSHJlZkNvbnRleHRNZW51KGNv
bnRleHRNZW51LCB0aGlzLnNlbGVjdGVkRE9NTm9kZSgpLCBldmVudCk7CiAgICAgICAgIGlmICh0
YWcgJiYgdHJlZUVsZW1lbnQuX3BvcHVsYXRlVGFnQ29udGV4dE1lbnUpIHsKICAgICAgICAgICAg
IGlmIChwb3B1bGF0ZWQpCkBAIC00NjgsNiArNDY5LDExIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRTZXBhcmF0b3IoKTsKICAgICAgICAgICAgIHRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRleHRD
b250ZXh0TWVudShjb250ZXh0TWVudSwgdGV4dE5vZGUpOwogICAgICAgICAgICAgcG9wdWxhdGVk
ID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIGlmIChjb21tZW50Tm9kZSAmJiB0cmVlRWxlbWVudC5f
cG9wdWxhdGVOb2RlQ29udGV4dE1lbnUpIHsKKyAgICAgICAgICAgIGlmIChwb3B1bGF0ZWQpCisg
ICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CisgICAgICAgICAg
ICB0cmVlRWxlbWVudC5fcG9wdWxhdGVOb2RlQ29udGV4dE1lbnUoY29udGV4dE1lbnUsIHRleHRO
b2RlKTsKKyAgICAgICAgICAgIHBvcHVsYXRlZCA9IHRydWU7CiAgICAgICAgIH0KIAogICAgICAg
ICByZXR1cm4gcG9wdWxhdGVkOwpAQCAtMTAzOSwxNyArMTA0NSwyMiBAQCBXZWJJbnNwZWN0b3Iu
RWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjb250ZXh0TWVu
dS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZyhXZWJJbnNwZWN0b3IudXNlTG93ZXJD
YXNlTWVudVRpdGxlcygpID8gIkVkaXQgYXR0cmlidXRlIiA6ICJFZGl0IEF0dHJpYnV0ZSIpLCB0
aGlzLl9zdGFydEVkaXRpbmdBdHRyaWJ1dGUuYmluZCh0aGlzLCBhdHRyaWJ1dGUsIGV2ZW50LnRh
cmdldCkpOwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKIAotICAgICAg
ICAvLyBBZGQgZnJlZS1mb3JtIG5vZGUtcmVsYXRlZCBhY3Rpb25zLgotICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRWRpdCBhcyBIVE1MIiksIHRo
aXMuX2VkaXRBc0hUTUwuYmluZCh0aGlzKSk7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0
ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb3B5IGFzIEhUTUwiKSwgdGhpcy5fY29weUhUTUwu
YmluZCh0aGlzKSk7Ci0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dlckNhc2VNZW51VGl0bGVzKCkgPyAiRGVsZXRl
IG5vZGUiIDogIkRlbGV0ZSBOb2RlIiksIHRoaXMucmVtb3ZlLmJpbmQodGhpcykpOwotCisgICAg
ICAgIHRoaXMuX3BvcHVsYXRlTm9kZUNvbnRleHRNZW51KGNvbnRleHRNZW51KTsKICAgICAgICAg
dGhpcy50cmVlT3V0bGluZS5fcG9wdWxhdGVDb250ZXh0TWVudShjb250ZXh0TWVudSwgdGhpcy5y
ZXByZXNlbnRlZE9iamVjdCk7CiAgICAgfSwKIAogICAgIF9wb3B1bGF0ZVRleHRDb250ZXh0TWVu
dTogZnVuY3Rpb24oY29udGV4dE1lbnUsIHRleHROb2RlKQogICAgIHsKICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoV2ViSW5zcGVjdG9yLnVzZUxv
d2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJFZGl0IHRleHQiIDogIkVkaXQgVGV4dCIpLCB0aGlzLl9z
dGFydEVkaXRpbmdUZXh0Tm9kZS5iaW5kKHRoaXMsIHRleHROb2RlKSk7CisgICAgICAgIHRoaXMu
X3BvcHVsYXRlTm9kZUNvbnRleHRNZW51KGNvbnRleHRNZW51KTsKKyAgICB9LAorCisgICAgX3Bv
cHVsYXRlTm9kZUNvbnRleHRNZW51OiBmdW5jdGlvbihjb250ZXh0TWVudSkKKyAgICB7CisgICAg
ICAgIC8vIEFkZCBmcmVlLWZvcm0gbm9kZS1yZWxhdGVkIGFjdGlvbnMuCisgICAgICAgIGNvbnRl
eHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFZGl0IGFzIEhUTUwiKSwg
dGhpcy5fZWRpdEFzSFRNTC5iaW5kKHRoaXMpKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
SXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvcHkgYXMgSFRNTCIpLCB0aGlzLl9jb3B5SFRN
TC5iaW5kKHRoaXMpKTsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoV2ViSW5zcGVjdG9yLnVzZUxvd2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJEZWxl
dGUgbm9kZSIgOiAiRGVsZXRlIE5vZGUiKSwgdGhpcy5yZW1vdmUuYmluZCh0aGlzKSk7CiAgICAg
fSwKIAogICAgIF9zdGFydEVkaXRpbmc6IGZ1bmN0aW9uKCkK
</data>
<flag name="review"
          id="111907"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113832</attachid>
            <date>2011-11-07 00:41:37 -0800</date>
            <delta_ts>2011-11-07 01:59:44 -0800</delta_ts>
            <desc>[PATCH] Comments addressed - 2</desc>
            <filename>editcomment.patch</filename>
            <type>text/plain</type>
            <size>15454</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGExYjgxN2JhN2EwYWRkZTg0YWNkMGZjNGVmZmY3NDI5NmUyODE3MzIKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTm92IDIg
MTY6Mjk6MzYgMjAxMSArMDQwMAoKICAgIFdJUAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNjA5MjJiLi43NDIzMmJhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTEtMDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2
bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDYW5ub3QgZWRpdCBl
bGVtZW50cyBjb21tZW50ZWQgd2l0aCA8IS0tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MTM1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rp
b25zLmh0bWw6CisKIDIwMTEtMTEtMDcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgZmFzdC9ldmVudHMvcGxhdGZvcm0t
d2hlZWxldmVudC1wYWdpbmcgb24gR1RLCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggZDVm
NzJhNS4uYWE0ZDNlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2VkaXQtZG9tLWFjdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rpb25zLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAg
VGVzdHMgdGhhdCB1c2VyIGNhbiBtdXRhdGUgRE9NIGJ5IG1lYW5zIG9mIGVsZW1lbnRzIHBhbmVs
LgogIAogRWRpdGVkIFRleHQKIFNwYW4gY29udGVudHMKK0VsZW1lbnQKIAogUnVubmluZzogdGVz
dFNldFVwCiAKQEAgLTc1LDYgKzc2LDE3IEBAIFJ1bm5pbmc6IHRlc3RBZGRBdHRyaWJ1dGUKICAg
ICAgIDxkaXYgaWQ9Im5vZGUtdG8tYWRkLWF0dHJpYnV0ZSIgbmV3YXR0cj0ibmV3LXZhbHVlIj48
L2Rpdj4KICAgPC9kaXY+CiAKK1J1bm5pbmc6IHRlc3RFZGl0Q29tbWVudEFzSFRNTAorPT09PSBi
ZWZvcmUgPT09PQorLSA8ZGl2IGlkPSJ0ZXN0RWRpdENvbW1lbnRBc0hUTUwiPgorICAgICAgPCEt
LSBDb21tZW50IC0tPgorICA8L2Rpdj4KKzwhLS0gQ29tbWVudCAtLT4KKz09PT0gYWZ0ZXIgPT09
PQorLSA8ZGl2IGlkPSJ0ZXN0RWRpdENvbW1lbnRBc0hUTUwiPgorICAgICAgPGRpdiBmb289ImJh
ci1jb21tZW50Ij5FbGVtZW50PC9kaXY+CisgIDwvZGl2PgorCiBSdW5uaW5nOiB0ZXN0RWRpdEFz
SFRNTAogPT09PSBiZWZvcmUgPT09PQogLSA8ZGl2IGlkPSJ0ZXN0RWRpdEFzSFRNTCI+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VkaXQtZG9tLWFjdGlvbnMuaHRt
bAppbmRleCA3OTI1MDRkLi44MThjNmIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMvZWRpdC1kb20tYWN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy9lZGl0LWRvbS1hY3Rpb25zLmh0bWwKQEAgLTE4LDcgKzE4LDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdFJlbW92ZShuZXh0KQogICAgICAg
ICB7Ci0gICAgICAgICAgICBkb21BY3Rpb25UZXN0KCJ0ZXN0UmVtb3ZlIiwgIm5vZGUtdG8tcmVt
b3ZlIiwgdGVzdEJvZHksIG5leHQpOworICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJ
ZCgidGVzdFJlbW92ZSIsICJub2RlLXRvLXJlbW92ZSIsIHRlc3RCb2R5LCBuZXh0KTsKIAogICAg
ICAgICAgICAgZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKICAgICAgICAgICAgIHsKQEAg
LTMwLDcgKzMwLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdFNl
dE5vZGVOYW1lKG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlvblRlc3QoInRl
c3RTZXROb2RlTmFtZSIsICJub2RlLXRvLXNldC1uYW1lIiwgdGVzdEJvZHksIG5leHQpOworICAg
ICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdFNldE5vZGVOYW1lIiwgIm5vZGUt
dG8tc2V0LW5hbWUiLCB0ZXN0Qm9keSwgbmV4dCk7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRl
c3RCb2R5KG5vZGUsIGRvbmUpCiAgICAgICAgICAgICB7CkBAIC00MCw3ICs0MCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RTZXROb2RlTmFtZUlucHV0KG5leHQp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlvblRlc3QoInRlc3RTZXROb2RlTmFtZUlu
cHV0IiwgIm5vZGUtdG8tc2V0LW5hbWUtaW5wdXQiLCB0ZXN0Qm9keSwgbmV4dCk7CisgICAgICAg
ICAgICBkb21BY3Rpb25UZXN0Rm9yTm9kZUlkKCJ0ZXN0U2V0Tm9kZU5hbWVJbnB1dCIsICJub2Rl
LXRvLXNldC1uYW1lLWlucHV0IiwgdGVzdEJvZHksIG5leHQpOwogCiAgICAgICAgICAgICBmdW5j
dGlvbiB0ZXN0Qm9keShub2RlLCBkb25lKQogICAgICAgICAgICAgewpAQCAtNTAsNyArNTAsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0Tm9kZVZhbHVlKG5l
eHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlvblRlc3QoInRlc3RTZXROb2RlVmFs
dWUiLCAibm9kZS10by1zZXQtdmFsdWUiLCB0ZXN0Qm9keSwgbmV4dCk7CisgICAgICAgICAgICBk
b21BY3Rpb25UZXN0Rm9yTm9kZUlkKCJ0ZXN0U2V0Tm9kZVZhbHVlIiwgIm5vZGUtdG8tc2V0LXZh
bHVlIiwgdGVzdEJvZHksIG5leHQpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Qm9keShu
b2RlLCBkb25lKQogICAgICAgICAgICAgewpAQCAtNjAsNyArNjAsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0QXR0cmlidXRlKG5leHQpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGRvbUFjdGlvblRlc3QoInRlc3RTZXRBdHRyaWJ1dGUiLCAibm9kZS10by1z
ZXQtYXR0cmlidXRlIiwgdGVzdEJvZHksIG5leHQpOworICAgICAgICAgICAgZG9tQWN0aW9uVGVz
dEZvck5vZGVJZCgidGVzdFNldEF0dHJpYnV0ZSIsICJub2RlLXRvLXNldC1hdHRyaWJ1dGUiLCB0
ZXN0Qm9keSwgbmV4dCk7CiAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RCb2R5
KG5vZGUsIGRvbmUpCiAgICAgICAgICAgICB7CkBAIC03MCw3ICs3MCw3IEBAIGZ1bmN0aW9uIHRl
c3QoKQogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVBdHRyaWJ1dGUobmV4dCkKICAgICAg
ICAgewotICAgICAgICAgICAgZG9tQWN0aW9uVGVzdCgidGVzdFJlbW92ZUF0dHJpYnV0ZSIsICJu
b2RlLXRvLXJlbW92ZS1hdHRyaWJ1dGUiLCB0ZXN0Qm9keSwgbmV4dCk7CisgICAgICAgICAgICBk
b21BY3Rpb25UZXN0Rm9yTm9kZUlkKCJ0ZXN0UmVtb3ZlQXR0cmlidXRlIiwgIm5vZGUtdG8tcmVt
b3ZlLWF0dHJpYnV0ZSIsIHRlc3RCb2R5LCBuZXh0KTsKICAgICAgICAgIAogICAgICAgICAgICAg
ZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKICAgICAgICAgICAgIHsKQEAgLTgwLDcgKzgw
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEFkZEF0dHJpYnV0
ZShuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICBkb21BY3Rpb25UZXN0KCJ0ZXN0QWRkQXR0
cmlidXRlIiwgIm5vZGUtdG8tYWRkLWF0dHJpYnV0ZSIsIHRlc3RCb2R5LCBuZXh0KTsKKyAgICAg
ICAgICAgIGRvbUFjdGlvblRlc3RGb3JOb2RlSWQoInRlc3RBZGRBdHRyaWJ1dGUiLCAibm9kZS10
by1hZGQtYXR0cmlidXRlIiwgdGVzdEJvZHksIG5leHQpOwogICAgICAgICAgCiAgICAgICAgICAg
ICBmdW5jdGlvbiB0ZXN0Qm9keShub2RlLCBkb25lKQogICAgICAgICAgICAgewpAQCAtOTksOSAr
OTksNDQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAKKyAg
ICAgICAgZnVuY3Rpb24gdGVzdEVkaXRDb21tZW50QXNIVE1MKG5leHQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIGNvbW1lbnROb2RlU2VsZWN0aW9uQ2FsbGJhY2sodGVzdE5vZGUs
IGNhbGxiYWNrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBjaGlsZE5vZGVz
ID0gdGVzdE5vZGUuY2hpbGRyZW47CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBjaGlsZE5vZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGls
ZE5vZGVzW2ldLm5vZGVUeXBlKCkgPT09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci51cGRhdGVGb2N1c2VkTm9kZShjaGlsZE5vZGVzW2ldLmlkKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKGNoaWxkTm9kZXNbaV0pOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDb21tZW50IG5vZGUg
bm90IGZvdW5kIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvbUFjdGlvblRlc3QoInRlc3RFZGl0Q29t
bWVudEFzSFRNTCIsIGNvbW1lbnROb2RlU2VsZWN0aW9uQ2FsbGJhY2ssIHRlc3RCb2R5LCBuZXh0
KTsKKworICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEJvZHkobm9kZSwgZG9uZSkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFu
ZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKKyAgICAgICAg
ICAgICAgICB0cmVlRWxlbWVudC5fZWRpdEFzSFRNTCgpOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhzdGVwMik7CisKKyAgICAgICAgICAg
ICAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCh0cmVlRWxlbWVudC5faHRtbEVkaXRFbGVtZW50
LnRleHRDb250ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuX2h0bWxFZGl0
RWxlbWVudC50ZXh0Q29udGVudCA9ICI8ZGl2IGZvbz1cImJhci1jb21tZW50XCI+RWxlbWVudDwv
ZGl2PiI7CisgICAgICAgICAgICAgICAgICAgIHZhciBldmVudCA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlS2V5RXZlbnQoIkVudGVyIik7CisgICAgICAgICAgICAgICAgICAgIGV2ZW50LmlzTWV0YU9y
Q3RybEZvclRlc3QgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5faHRt
bEVkaXRFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZG9uZSk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9LAorCiAgICAgICAgIGZ1bmN0aW9uIHRl
c3RFZGl0QXNIVE1MKG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRvbUFjdGlvblRlc3Qo
InRlc3RFZGl0QXNIVE1MIiwgIm5vZGUtdG8tZWRpdC1hcy1odG1sIiwgdGVzdEJvZHksIG5leHQp
OworICAgICAgICAgICAgZG9tQWN0aW9uVGVzdEZvck5vZGVJZCgidGVzdEVkaXRBc0hUTUwiLCAi
bm9kZS10by1lZGl0LWFzLWh0bWwiLCB0ZXN0Qm9keSwgbmV4dCk7CiAKICAgICAgICAgICAgIGZ1
bmN0aW9uIHRlc3RCb2R5KG5vZGUsIGRvbmUpCiAgICAgICAgICAgICB7CkBAIC0xMTYsMTkgKzE1
MSwyOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0g
SW5zcGVjdG9yVGVzdC5jcmVhdGVLZXlFdmVudCgiRW50ZXIiKTsKICAgICAgICAgICAgICAgICAg
ICAgZXZlbnQuaXNNZXRhT3JDdHJsRm9yVGVzdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAg
IHRyZWVFbGVtZW50Ll9odG1sRWRpdEVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7Ci0gICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhk
b25lKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdE
aXNwYXRjaGVzKEluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlLmJpbmQoSW5zcGVjdG9y
VGVzdCwgZG9uZSkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIF0pOwogCi0gICAgZnVuY3Rpb24gZG9tQWN0aW9uVGVzdCh0ZXN0TmFtZSwgZGF0YU5v
ZGUsIHRlc3RCb2R5LCBuZXh0KQorICAgIGZ1bmN0aW9uIGRvbUFjdGlvblRlc3RGb3JOb2RlSWQo
dGVzdE5hbWUsIGRhdGFOb2RlSWQsIHRlc3RCb2R5LCBuZXh0KQorICAgIHsKKyAgICAgICAgZnVu
Y3Rpb24gY2FsbGJhY2sodGVzdE5vZGUsIGNvbnRpbnVhdGlvbikKKyAgICAgICAgeworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkKGRhdGFOb2RlSWQsIGNvbnRpbnVh
dGlvbik7CisgICAgICAgIH0KKyAgICAgICAgZG9tQWN0aW9uVGVzdCh0ZXN0TmFtZSwgY2FsbGJh
Y2ssIHRlc3RCb2R5LCBuZXh0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkb21BY3Rpb25UZXN0
KHRlc3ROYW1lLCBkYXRhTm9kZVNlbGVjdGlvbkNhbGxiYWNrLCB0ZXN0Qm9keSwgbmV4dCkKICAg
ICB7CiAgICAgICAgIHZhciB0ZXN0Tm9kZSA9IEluc3BlY3RvclRlc3QuZXhwYW5kZWROb2RlV2l0
aElkKHRlc3ROYW1lKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PT0gYmVm
b3JlID09PT0iKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWxlbWVudHNUcmVlKHRlc3RO
b2RlKTsKIAotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQoZGF0YU5vZGUs
IHN0ZXAwKTsKKyAgICAgICAgZGF0YU5vZGVTZWxlY3Rpb25DYWxsYmFjayh0ZXN0Tm9kZSwgc3Rl
cDApOwogCiAgICAgICAgIGZ1bmN0aW9uIHN0ZXAwKG5vZGUpCiAgICAgICAgIHsKQEAgLTIwOCw2
ICsyNTIsMTEgQEAgVGVzdHMgdGhhdCB1c2VyIGNhbiBtdXRhdGUgRE9NIGJ5IG1lYW5zIG9mIGVs
ZW1lbnRzIHBhbmVsLgogICAgIDxkaXYgaWQ9InRlc3RFZGl0QXNIVE1MIj4KICAgICAgICAgPGRp
diBpZD0ibm9kZS10by1lZGl0LWFzLWh0bWwiPjxzcGFuIGlkPSJzcGFuIj5UZXh0PC9zcGFuPjwv
ZGl2PgogICAgIDwvZGl2PgorCisgICAgPGRpdiBpZD0idGVzdEVkaXRDb21tZW50QXNIVE1MIj4K
KyAgICAgICAgPCEtLSBDb21tZW50IC0tPgorICAgIDwvZGl2PgorCiA8L2Rpdj4KIDwvYm9keT4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZDEyMTUyLi5mNTIzYmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTEtMTEtMDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBDYW5ub3QgZWRpdCBlbGVtZW50cyBj
b21tZW50ZWQgd2l0aCA8IS0tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTM1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpnZXRPdXRlckhUTUwpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91dGVySFRNTCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLnBvcHVsYXRlQ29udGV4dE1lbnUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9wb3B1bGF0
ZVRhZ0NvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVt
ZW50LnByb3RvdHlwZS5fcG9wdWxhdGVUZXh0Q29udGV4dE1lbnUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9wb3B1bGF0ZU5vZGVDb250ZXh0
TWVudSk6CisKIDIwMTEtMTEtMDYgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29t
PgogCiAgICAgICAgIEZpeCBzb21lIHN0eWxlIGlzc3VlcyBpbiBJbWFnZUJ1ZmZlci5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAzMDBj
MTdjLi43ZDY0NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJET01Ob2RlSGlnaGxpZ2h0
ZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNp
bmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50Q29udGV4dC5oIgpAQCAtNzM4LDI3ICs3
MzksNTkgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZU5hbWUoRXJyb3JTdHJpbmcq
LCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHRhZ04KIAogdm9pZCBJbnNwZWN0b3JET01BZ2Vu
dDo6Z2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgV1RG
OjpTdHJpbmcqIG91dGVySFRNTCkKIHsKLSAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGFzc2Vy
dEhUTUxFbGVtZW50KGVycm9yU3RyaW5nLCBub2RlSWQpOwotICAgIGlmIChlbGVtZW50KQotICAg
ICAgICAqb3V0ZXJIVE1MID0gZWxlbWVudC0+b3V0ZXJIVE1MKCk7CisgICAgTm9kZSogbm9kZSA9
IGFzc2VydE5vZGUoZXJyb3JTdHJpbmcsIG5vZGVJZCk7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7CisgICAgICAgICpv
dXRlckhUTUwgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KG5vZGUpLT5vdXRlckhUTUwoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChub2RlLT5pc0NvbW1lbnROb2RlKCkp
IHsKKyAgICAgICAgKm91dGVySFRNTCA9ICI8IS0tIiArIG5vZGUtPm5vZGVWYWx1ZSgpICsgIi0t
PiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobm9kZS0+aXNUZXh0Tm9kZSgp
KSB7CisgICAgICAgICpvdXRlckhUTUwgPSBub2RlLT5ub2RlVmFsdWUoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgICplcnJvclN0cmluZyA9ICJPbmx5IEhUTUxFbGVtZW50cywgQ29t
bWVudHMsIGFuZCBUZXh0IG5vZGVzIGFyZSBzdXBwb3J0ZWQiOwogfQogCiB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbm9k
ZUlkLCBjb25zdCBTdHJpbmcmIG91dGVySFRNTCwgaW50KiBuZXdJZCkKIHsKLSAgICBIVE1MRWxl
bWVudCogaHRtbEVsZW1lbnQgPSBhc3NlcnRIVE1MRWxlbWVudChlcnJvclN0cmluZywgbm9kZUlk
KTsKLSAgICBpZiAoIWh0bWxFbGVtZW50KQorICAgIE5vZGUqIG5vZGUgPSBhc3NlcnROb2RlKGVy
cm9yU3RyaW5nLCBub2RlSWQpOworICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgYm9vbCByZXF1aXJlc1RvdGFsVXBkYXRlID0gaHRtbEVsZW1lbnQtPnRhZ05hbWUoKSA9PSAi
SFRNTCIgfHwgaHRtbEVsZW1lbnQtPnRhZ05hbWUoKSA9PSAiQk9EWSIgfHwgaHRtbEVsZW1lbnQt
PnRhZ05hbWUoKSA9PSAiSEVBRCI7CisgICAgRWxlbWVudCogcGFyZW50RWxlbWVudCA9IG5vZGUt
PnBhcmVudEVsZW1lbnQoKTsKKyAgICBpZiAoIXBhcmVudEVsZW1lbnQpCisgICAgICAgIHJldHVy
bjsKIAotICAgIGJvb2wgY2hpbGRyZW5SZXF1ZXN0ZWQgPSBtX2NoaWxkcmVuUmVxdWVzdGVkLmNv
bnRhaW5zKG5vZGVJZCk7Ci0gICAgTm9kZSogcHJldmlvdXNTaWJsaW5nID0gaHRtbEVsZW1lbnQt
PnByZXZpb3VzU2libGluZygpOwotICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGUgPSBodG1s
RWxlbWVudC0+cGFyZW50Tm9kZSgpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG5vZGUtPm93
bmVyRG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50LT5pc0hUTUxEb2N1bWVudCgpKSB7Cisg
ICAgICAgICplcnJvclN0cmluZyA9ICJOb3QgYW4gSFRNTCBkb2N1bWVudCI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBOb2RlKiBwcmV2aW91c1NpYmxpbmcgPSBub2RlLT5wcmV2aW91
c1NpYmxpbmcoKTsgLy8gUmVtZW1iZXIgcHJldmlvdXMgc2libGluZyBiZWZvcmUgcmVwbGFjaW5n
IG5vZGUuCisKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBEb2N1bWVu
dEZyYWdtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGZyYWdtZW50LT5wYXJzZUhUTUwob3V0
ZXJIVE1MLCBwYXJlbnRFbGVtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
IGh0bWxFbGVtZW50LT5zZXRPdXRlckhUTUwob3V0ZXJIVE1MLCBlYyk7Ci0gICAgaWYgKGVjKQor
ICAgIHBhcmVudEVsZW1lbnQtPnJlcGxhY2VDaGlsZChmcmFnbWVudC5yZWxlYXNlKCksIG5vZGUs
IGVjKTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIkZhaWxlZCB0byBy
ZXBsYWNlIE5vZGUgd2l0aCBuZXcgY29udGVudHMiOwogICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYm9vbCByZXF1aXJlc1RvdGFsVXBkYXRlID0gZmFsc2U7CisgICAgaWYgKG5vZGUtPmlz
SFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmVxdWlyZXNUb3RhbFVwZGF0ZSA9IG5vZGUtPm5vZGVO
YW1lKCkgPT0gIkhUTUwiIHx8IG5vZGUtPm5vZGVOYW1lKCkgPT0gIkJPRFkiIHx8IG5vZGUtPm5v
ZGVOYW1lKCkgPT0gIkhFQUQiOwogCiAgICAgaWYgKHJlcXVpcmVzVG90YWxVcGRhdGUpIHsKICAg
ICAgICAgUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IG1fZG9jdW1lbnQ7CkBAIC03NjgsNyAr
ODAxLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIE5vZGUqIG5ld05vZGUgPSBwcmV2aW91c1NpYmxpbmcgPyBwcmV2aW91c1NpYmxpbmct
Pm5leHRTaWJsaW5nKCkgOiBwYXJlbnROb2RlLT5maXJzdENoaWxkKCk7CisgICAgTm9kZSogbmV3
Tm9kZSA9IHByZXZpb3VzU2libGluZyA/IHByZXZpb3VzU2libGluZy0+bmV4dFNpYmxpbmcoKSA6
IHBhcmVudEVsZW1lbnQtPmZpcnN0Q2hpbGQoKTsKICAgICBpZiAoIW5ld05vZGUpIHsKICAgICAg
ICAgLy8gVGhlIG9ubHkgY2hpbGQgbm9kZSBoYXMgYmVlbiBkZWxldGVkLgogICAgICAgICAqbmV3
SWQgPSAwOwpAQCAtNzc2LDYgKzgwOSw4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE91
dGVySFRNTChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0CiAgICAg
fQogCiAgICAgKm5ld0lkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChuZXdOb2RlKTsKKworICAg
IGJvb2wgY2hpbGRyZW5SZXF1ZXN0ZWQgPSBtX2NoaWxkcmVuUmVxdWVzdGVkLmNvbnRhaW5zKG5v
ZGVJZCk7CiAgICAgaWYgKGNoaWxkcmVuUmVxdWVzdGVkKQogICAgICAgICBwdXNoQ2hpbGROb2Rl
c1RvRnJvbnRlbmQoKm5ld0lkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwppbmRleCA2MGRmOTcxLi41
MjU5NTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Vs
ZW1lbnRzVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCkBAIC00NTcsNiArNDU3LDcgQEAgV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciB0YWcg
PSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWh0bWwt
dGFnIik7CiAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2Rl
T3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC10ZXh0LW5vZGUiKTsKKyAgICAgICAgdmFyIGNv
bW1lbnROb2RlID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndl
YmtpdC1odG1sLWNvbW1lbnQiKTsKICAgICAgICAgdmFyIHBvcHVsYXRlZCA9IFdlYkluc3BlY3Rv
ci5wb3B1bGF0ZUhyZWZDb250ZXh0TWVudShjb250ZXh0TWVudSwgdGhpcy5zZWxlY3RlZERPTU5v
ZGUoKSwgZXZlbnQpOwogICAgICAgICBpZiAodGFnICYmIHRyZWVFbGVtZW50Ll9wb3B1bGF0ZVRh
Z0NvbnRleHRNZW51KSB7CiAgICAgICAgICAgICBpZiAocG9wdWxhdGVkKQpAQCAtNDY4LDYgKzQ2
OSwxMSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CiAgICAgICAgICAg
ICB0cmVlRWxlbWVudC5fcG9wdWxhdGVUZXh0Q29udGV4dE1lbnUoY29udGV4dE1lbnUsIHRleHRO
b2RlKTsKICAgICAgICAgICAgIHBvcHVsYXRlZCA9IHRydWU7CisgICAgICAgIH0gZWxzZSBpZiAo
Y29tbWVudE5vZGUgJiYgdHJlZUVsZW1lbnQuX3BvcHVsYXRlTm9kZUNvbnRleHRNZW51KSB7Cisg
ICAgICAgICAgICBpZiAocG9wdWxhdGVkKQorICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZFNlcGFyYXRvcigpOworICAgICAgICAgICAgdHJlZUVsZW1lbnQuX3BvcHVsYXRlTm9kZUNv
bnRleHRNZW51KGNvbnRleHRNZW51LCB0ZXh0Tm9kZSk7CisgICAgICAgICAgICBwb3B1bGF0ZWQg
PSB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIHBvcHVsYXRlZDsKQEAgLTEwMzks
MTcgKzEwNDUsMjIgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoV2ViSW5zcGVjdG9yLnVzZUxvd2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJFZGl0IGF0dHJp
YnV0ZSIgOiAiRWRpdCBBdHRyaWJ1dGUiKSwgdGhpcy5fc3RhcnRFZGl0aW5nQXR0cmlidXRlLmJp
bmQodGhpcywgYXR0cmlidXRlLCBldmVudC50YXJnZXQpKTsKICAgICAgICAgY29udGV4dE1lbnUu
YXBwZW5kU2VwYXJhdG9yKCk7CiAKLSAgICAgICAgLy8gQWRkIGZyZWUtZm9ybSBub2RlLXJlbGF0
ZWQgYWN0aW9ucy4KLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkVkaXQgYXMgSFRNTCIpLCB0aGlzLl9lZGl0QXNIVE1MLmJpbmQodGhpcykpOwot
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29w
eSBhcyBIVE1MIiksIHRoaXMuX2NvcHlIVE1MLmJpbmQodGhpcykpOwotICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZyhXZWJJbnNwZWN0b3IudXNlTG93
ZXJDYXNlTWVudVRpdGxlcygpID8gIkRlbGV0ZSBub2RlIiA6ICJEZWxldGUgTm9kZSIpLCB0aGlz
LnJlbW92ZS5iaW5kKHRoaXMpKTsKLQorICAgICAgICB0aGlzLl9wb3B1bGF0ZU5vZGVDb250ZXh0
TWVudShjb250ZXh0TWVudSk7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUuX3BvcHVsYXRlQ29u
dGV4dE1lbnUoY29udGV4dE1lbnUsIHRoaXMucmVwcmVzZW50ZWRPYmplY3QpOwogICAgIH0sCiAK
ICAgICBfcG9wdWxhdGVUZXh0Q29udGV4dE1lbnU6IGZ1bmN0aW9uKGNvbnRleHRNZW51LCB0ZXh0
Tm9kZSkKICAgICB7CiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dlckNhc2VNZW51VGl0bGVzKCkgPyAiRWRpdCB0
ZXh0IiA6ICJFZGl0IFRleHQiKSwgdGhpcy5fc3RhcnRFZGl0aW5nVGV4dE5vZGUuYmluZCh0aGlz
LCB0ZXh0Tm9kZSkpOworICAgICAgICB0aGlzLl9wb3B1bGF0ZU5vZGVDb250ZXh0TWVudShjb250
ZXh0TWVudSk7CisgICAgfSwKKworICAgIF9wb3B1bGF0ZU5vZGVDb250ZXh0TWVudTogZnVuY3Rp
b24oY29udGV4dE1lbnUpCisgICAgeworICAgICAgICAvLyBBZGQgZnJlZS1mb3JtIG5vZGUtcmVs
YXRlZCBhY3Rpb25zLgorICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiRWRpdCBhcyBIVE1MIiksIHRoaXMuX2VkaXRBc0hUTUwuYmluZCh0aGlzKSk7
CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJD
b3B5IGFzIEhUTUwiKSwgdGhpcy5fY29weUhUTUwuYmluZCh0aGlzKSk7CisgICAgICAgIGNvbnRl
eHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VM
b3dlckNhc2VNZW51VGl0bGVzKCkgPyAiRGVsZXRlIG5vZGUiIDogIkRlbGV0ZSBOb2RlIiksIHRo
aXMucmVtb3ZlLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBfc3RhcnRFZGl0aW5nOiBmdW5j
dGlvbigpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>