<?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>54876</bug_id>
          
          <creation_ts>2011-02-21 06:05:38 -0800</creation_ts>
          <short_desc>Web Inspector: [Text editor] Bug in the highlighter</short_desc>
          <delta_ts>2011-02-24 08:05:26 -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>0</everconfirmed>
          <reporter name="Andrey Adaikin">aandrey</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>podivilov</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>354547</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-02-21 06:05:38 -0800</bug_when>
    <thetext>There is a bug in highlighter. Here is an example:
=====
1 /*
2 
3 1
4 2
5 3
6 4
7 5
8 
9 */
=====
Copy paste lines #3-#7 inclusive onto the line #8 =&gt; the highlights will be broken after the line #8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354549</commentid>
    <comment_count>1</comment_count>
      <attachid>83155</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-02-21 06:08:08 -0800</bug_when>
    <thetext>Created attachment 83155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354575</commentid>
    <comment_count>2</comment_count>
      <attachid>83155</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-21 06:46:52 -0800</bug_when>
    <thetext>Comment on attachment 83155
Patch

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

&gt; LayoutTests/inspector/editor/highlighter-bugs-test-expected.txt:3
&gt; +doTestForBug1()

Bug1?

&gt; LayoutTests/inspector/editor/highlighter-bugs-test-expected.txt:7
&gt; +    0 : {

Could you use a more dense format? (Look at syntax-highlight-* tests for inspiration).

&gt; LayoutTests/inspector/editor/highlighter-bugs-test.html:14
&gt; +    window.setTimeout = function(func) {

Bad things may happen. You should either use sniffers (InspectorTest.addSniffer) or extend highlighter API (add &quot;immediately&quot; optional parameter) to workaround asynchronous operations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355192</commentid>
    <comment_count>3</comment_count>
      <attachid>83302</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-02-22 05:11:57 -0800</bug_when>
    <thetext>Created attachment 83302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355196</commentid>
    <comment_count>4</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-02-22 05:23:39 -0800</bug_when>
    <thetext>There is also a regression bug in the highlighter for long lines. I fixed it also in this CL, and added another test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356797</commentid>
    <comment_count>5</comment_count>
      <attachid>83302</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-24 02:38:17 -0800</bug_when>
    <thetext>Comment on attachment 83302
Patch

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

This looks good. r- for timeout, as we agreed.

&gt; LayoutTests/inspector/editor/highlighter-long-line.html:30
&gt; +        function() {

&quot;{&quot; on the next line.

function()
{
}

&gt; LayoutTests/inspector/editor/highlighter-long-line.html:47
&gt; +        function() {

ditto

&gt; LayoutTests/inspector/editor/highlighter-paste-in-comment.html:24
&gt; +        function() {

ditto (and below)

&gt; LayoutTests/inspector/editor/highlighter-test.js:22
&gt; +InspectorTest.waitForAllTimeouts = function(runnable, callback)

As we agreed, let&apos;s change the source code API for better testability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356871</commentid>
    <comment_count>6</comment_count>
      <attachid>83632</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-02-24 04:36:59 -0800</bug_when>
    <thetext>Created attachment 83632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356911</commentid>
    <comment_count>7</comment_count>
      <attachid>83632</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-24 05:30:15 -0800</bug_when>
    <thetext>Comment on attachment 83632
Patch

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

Otherwise looks good.

&gt; LayoutTests/ChangeLog:5
&gt; +        Web Inspector: [Text editor] Bug in the highlighter

Need more details on the issue in the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356919</commentid>
    <comment_count>8</comment_count>
      <attachid>83644</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-02-24 05:50:19 -0800</bug_when>
    <thetext>Created attachment 83644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356997</commentid>
    <comment_count>9</comment_count>
      <attachid>83644</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-02-24 08:05:16 -0800</bug_when>
    <thetext>Comment on attachment 83644
Patch

Clearing flags on attachment: 83644

Committed r79566: &lt;http://trac.webkit.org/changeset/79566&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356998</commentid>
    <comment_count>10</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-02-24 08:05:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83155</attachid>
            <date>2011-02-21 06:08:08 -0800</date>
            <delta_ts>2011-02-22 05:11:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54876-20110221170806.patch</filename>
            <type>text/plain</type>
            <size>17527</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYjcwZjU0MzNiZjAwM2FmM2EzYTA2N2YzMmRjMDI5ZTg2Y2ExNGQ0Li5iODViMjUz
N2ZkYjQ4OWY2ZGVhZGM5YjQwYTZiN2ViMjY2NGRlNzJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDItMjEgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFtUZXh0IGVkaXRvcl0gQnVnIGluIHRoZSBoaWdobGlnaHRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ4NzYKKworICAgICAgICAqIGluc3BlY3Rv
ci9lZGl0b3IvaGlnaGxpZ2h0ZXItYnVncy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1idWdzLXRlc3QuaHRtbDogQWRkZWQu
CisKIDIwMTEtMDItMTggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgYSBHVEsgbWVkaWEgdGVzdCBhZmZlY3RlZCBieSBw
aXhlbCBkaWZlcnJlbmNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9y
L2hpZ2hsaWdodGVyLWJ1Z3MtdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWJ1Z3MtdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDAzMjkzOTBjZDg1MWM1OWE3ZWVhNGJiZjkxZDU5MzA5ZTMzMzI0ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItYnVncy10ZXN0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQxMSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBhZ2FpbnN0IGZv
dW5kIGJ1Z3MgaW4gdGhlIGhpZ2hsaWdodGVyLgorCitkb1Rlc3RGb3JCdWcxKCkKKworPj4+IEFm
dGVyIGhpZ2hsaWdodGluZyBhbGwgbGluZXMKK3sKKyAgICAwIDogeworICAgICAgICAwIDogIi8q
IgorICAgICAgICAxIDogIiIKKyAgICAgICAgMiA6ICIxIgorICAgICAgICAzIDogIjIiCisgICAg
ICAgIDQgOiAiMyIKKyAgICAgICAgNSA6ICI0IgorICAgICAgICA2IDogIjUiCisgICAgICAgIDcg
OiAiIgorICAgICAgICA4IDogIiovIgorICAgIH0KKyAgICAxIDogeworICAgICAgICAwIDogewor
ICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAgICAgIDAgOiB7CisgICAgICAg
ICAgICAgICAgICAgIGxlbmd0aCA6IDMKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5UeXBlIDog
ImphdmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
cHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjF9IgorICAgICAgICAg
ICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgMSA6IHsKKyAgICAgICAgICAgIGhpZ2hs
aWdodCA6IHsKKyAgICAgICAgICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7Imxl
eENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0cmluZ2lmaWVk
IDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICAyIDogeworICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAgICAgIDAgOiB7
CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA6IDEKKyAgICAgICAgICAgICAgICAgICAgdG9r
ZW5UeXBlIDogImphdmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgcHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9Igor
ICAgICAgICAgICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlv
biI6Mn0iCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgMyA6IHsKKyAgICAgICAg
ICAgIGhpZ2hsaWdodCA6IHsKKyAgICAgICAgICAgICAgICAwIDogeworICAgICAgICAgICAgICAg
ICAgICBsZW5ndGggOiAxCisgICAgICAgICAgICAgICAgICAgIHRva2VuVHlwZSA6ICJqYXZhc2Ny
aXB0LWNvbW1lbnQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZUNvbmRp
dGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgICAgICBw
b3N0Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIDQgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQgOiB7
CisgICAgICAgICAgICAgICAgMCA6IHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDogMQor
ICAgICAgICAgICAgICAgICAgICB0b2tlblR5cGUgOiAiamF2YXNjcmlwdC1jb21tZW50IgorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmllZCA6
ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0cmlu
Z2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICA1IDogeworICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAgICAg
IDAgOiB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA6IDEKKyAgICAgICAgICAgICAgICAg
ICAgdG9rZW5UeXBlIDogImphdmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgcHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24i
OjJ9IgorICAgICAgICAgICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENv
bmRpdGlvbiI6Mn0iCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgNiA6IHsKKyAg
ICAgICAgICAgIGhpZ2hsaWdodCA6IHsKKyAgICAgICAgICAgICAgICAwIDogeworICAgICAgICAg
ICAgICAgICAgICBsZW5ndGggOiAxCisgICAgICAgICAgICAgICAgICAgIHRva2VuVHlwZSA6ICJq
YXZhc2NyaXB0LWNvbW1lbnQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBy
ZUNvbmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAg
ICAgICBwb3N0Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDcgOiB7CisgICAgICAgICAgICBoaWdobGln
aHQgOiB7CisgICAgICAgICAgICAgICAgcHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhD
b25kaXRpb24iOjJ9IgorICAgICAgICAgICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6
ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
OCA6IHsKKyAgICAgICAgICAgIGhpZ2hsaWdodCA6IHsKKyAgICAgICAgICAgICAgICAwIDogewor
ICAgICAgICAgICAgICAgICAgICBsZW5ndGggOiAyCisgICAgICAgICAgICAgICAgICAgIHRva2Vu
VHlwZSA6ICJqYXZhc2NyaXB0LWNvbW1lbnQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHByZUNvbmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAg
ICAgICAgICAgICAgICBwb3N0Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24i
OjF9IgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCis+Pj4gQWZ0ZXIgdXBk
YXRlIGhpZ2hsaWdodHMKK3sKKyAgICAwIDogeworICAgICAgICAwIDogIi8qIgorICAgICAgICAx
IDogIiIKKyAgICAgICAgMiA6ICIxIgorICAgICAgICAzIDogIjIiCisgICAgICAgIDQgOiAiMyIK
KyAgICAgICAgNSA6ICI0IgorICAgICAgICA2IDogIjUiCisgICAgICAgIDcgOiAiMSIKKyAgICAg
ICAgOCA6ICIyIgorICAgICAgICA5IDogIjMiCisgICAgICAgIDEwIDogIjQiCisgICAgICAgIDEx
IDogIjUiCisgICAgICAgIDEyIDogIiIKKyAgICAgICAgMTMgOiAiKi8iCisgICAgfQorICAgIDEg
OiB7CisgICAgICAgIDAgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQgOiB7CisgICAgICAgICAg
ICAgICAgMCA6IHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDogMworICAgICAgICAgICAg
ICAgICAgICB0b2tlblR5cGUgOiAiamF2YXNjcmlwdC1jb21tZW50IgorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRp
dGlvbiI6MX0iCisgICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0cmluZ2lmaWVkIDogInsi
bGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAxIDog
eworICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAgICAgIHByZUNvbmRpdGlv
blN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgICAgICBwb3N0
Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIDIgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQgOiB7Cisg
ICAgICAgICAgICAgICAgMCA6IHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDogMQorICAg
ICAgICAgICAgICAgICAgICB0b2tlblR5cGUgOiAiamF2YXNjcmlwdC1jb21tZW50IgorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7
ImxleENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0cmluZ2lm
aWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICAzIDogeworICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAgICAgIDAg
OiB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA6IDEKKyAgICAgICAgICAgICAgICAgICAg
dG9rZW5UeXBlIDogImphdmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgcHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9
IgorICAgICAgICAgICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRp
dGlvbiI6Mn0iCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgNCA6IHsKKyAgICAg
ICAgICAgIGhpZ2hsaWdodCA6IHsKKyAgICAgICAgICAgICAgICAwIDogeworICAgICAgICAgICAg
ICAgICAgICBsZW5ndGggOiAxCisgICAgICAgICAgICAgICAgICAgIHRva2VuVHlwZSA6ICJqYXZh
c2NyaXB0LWNvbW1lbnQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZUNv
bmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgICAg
ICBwb3N0Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIDUgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQg
OiB7CisgICAgICAgICAgICAgICAgMCA6IHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDog
MQorICAgICAgICAgICAgICAgICAgICB0b2tlblR5cGUgOiAiamF2YXNjcmlwdC1jb21tZW50Igor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmll
ZCA6ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0
cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICA2IDogeworICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAg
ICAgIDAgOiB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA6IDEKKyAgICAgICAgICAgICAg
ICAgICAgdG9rZW5UeXBlIDogImphdmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgcHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRp
b24iOjJ9IgorICAgICAgICAgICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7Imxl
eENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgNyA6IHsK
KyAgICAgICAgICAgIGhpZ2hsaWdodCA6IHsKKyAgICAgICAgICAgICAgICAwIDogeworICAgICAg
ICAgICAgICAgICAgICBsZW5ndGggOiAxCisgICAgICAgICAgICAgICAgICAgIHRva2VuVHlwZSA6
ICJqYXZhc2NyaXB0LWNvbW1lbnQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHByZUNvbmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAg
ICAgICAgICBwb3N0Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9Igor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDggOiB7CisgICAgICAgICAgICBoaWdo
bGlnaHQgOiB7CisgICAgICAgICAgICAgICAgMCA6IHsKKyAgICAgICAgICAgICAgICAgICAgbGVu
Z3RoIDogMQorICAgICAgICAgICAgICAgICAgICB0b2tlblR5cGUgOiAiamF2YXNjcmlwdC1jb21t
ZW50IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmVDb25kaXRpb25TdHJp
bmdpZmllZCA6ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICAgICAgcG9zdENvbmRp
dGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICA5IDogeworICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAg
ICAgICAgICAgIDAgOiB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA6IDEKKyAgICAgICAg
ICAgICAgICAgICAgdG9rZW5UeXBlIDogImphdmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgcHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhD
b25kaXRpb24iOjJ9IgorICAgICAgICAgICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6
ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
MTAgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQgOiB7CisgICAgICAgICAgICAgICAgMCA6IHsK
KyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDogMQorICAgICAgICAgICAgICAgICAgICB0b2tl
blR5cGUgOiAiamF2YXNjcmlwdC1jb21tZW50IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisg
ICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9u
IjoyfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAxMSA6IHsKKyAgICAgICAg
ICAgIGhpZ2hsaWdodCA6IHsKKyAgICAgICAgICAgICAgICAwIDogeworICAgICAgICAgICAgICAg
ICAgICBsZW5ndGggOiAxCisgICAgICAgICAgICAgICAgICAgIHRva2VuVHlwZSA6ICJqYXZhc2Ny
aXB0LWNvbW1lbnQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZUNvbmRp
dGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgICAgICBw
b3N0Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIDEyIDogeworICAgICAgICAgICAgaGlnaGxpZ2h0IDog
eworICAgICAgICAgICAgICAgIHByZUNvbmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0
aW9uIjoyfSIKKyAgICAgICAgICAgICAgICBwb3N0Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJs
ZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDEzIDog
eworICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAgICAgIDAgOiB7CisgICAg
ICAgICAgICAgICAgICAgIGxlbmd0aCA6IDIKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5UeXBl
IDogImphdmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgcHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAg
ICAgICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlvbiI6MX0i
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKz4+PiBBZnRlciBoaWdobGln
aHRpbmcgdXAgdG8gdGhlIGVuZAoreworICAgIDAgOiB7CisgICAgICAgIDAgOiAiLyoiCisgICAg
ICAgIDEgOiAiIgorICAgICAgICAyIDogIjEiCisgICAgICAgIDMgOiAiMiIKKyAgICAgICAgNCA6
ICIzIgorICAgICAgICA1IDogIjQiCisgICAgICAgIDYgOiAiNSIKKyAgICAgICAgNyA6ICIxIgor
ICAgICAgICA4IDogIjIiCisgICAgICAgIDkgOiAiMyIKKyAgICAgICAgMTAgOiAiNCIKKyAgICAg
ICAgMTEgOiAiNSIKKyAgICAgICAgMTIgOiAiIgorICAgICAgICAxMyA6ICIqLyIKKyAgICB9Cisg
ICAgMSA6IHsKKyAgICAgICAgMCA6IHsKKyAgICAgICAgICAgIGhpZ2hsaWdodCA6IHsKKyAgICAg
ICAgICAgICAgICAwIDogeworICAgICAgICAgICAgICAgICAgICBsZW5ndGggOiAzCisgICAgICAg
ICAgICAgICAgICAgIHRva2VuVHlwZSA6ICJqYXZhc2NyaXB0LWNvbW1lbnQiCisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHByZUNvbmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4
Q29uZGl0aW9uIjoxfSIKKyAgICAgICAgICAgICAgICBwb3N0Q29uZGl0aW9uU3RyaW5naWZpZWQg
OiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IDEgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQgOiB7CisgICAgICAgICAgICAgICAgcHJlQ29u
ZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAgICAgICAg
IHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgMiA6IHsKKyAgICAgICAgICAgIGhpZ2hsaWdodCA6
IHsKKyAgICAgICAgICAgICAgICAwIDogeworICAgICAgICAgICAgICAgICAgICBsZW5ndGggOiAx
CisgICAgICAgICAgICAgICAgICAgIHRva2VuVHlwZSA6ICJqYXZhc2NyaXB0LWNvbW1lbnQiCisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZUNvbmRpdGlvblN0cmluZ2lmaWVk
IDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgICAgICBwb3N0Q29uZGl0aW9uU3Ry
aW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIDMgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQgOiB7CisgICAgICAgICAgICAg
ICAgMCA6IHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDogMQorICAgICAgICAgICAgICAg
ICAgICB0b2tlblR5cGUgOiAiamF2YXNjcmlwdC1jb21tZW50IgorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlv
biI6Mn0iCisgICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4
Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA0IDogewor
ICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAgICAgIDAgOiB7CisgICAgICAg
ICAgICAgICAgICAgIGxlbmd0aCA6IDEKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5UeXBlIDog
ImphdmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
cHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAg
ICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgNSA6IHsKKyAgICAgICAgICAgIGhpZ2hs
aWdodCA6IHsKKyAgICAgICAgICAgICAgICAwIDogeworICAgICAgICAgICAgICAgICAgICBsZW5n
dGggOiAxCisgICAgICAgICAgICAgICAgICAgIHRva2VuVHlwZSA6ICJqYXZhc2NyaXB0LWNvbW1l
bnQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZUNvbmRpdGlvblN0cmlu
Z2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgICAgICBwb3N0Q29uZGl0
aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIDYgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQgOiB7CisgICAgICAg
ICAgICAgICAgMCA6IHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDogMQorICAgICAgICAg
ICAgICAgICAgICB0b2tlblR5cGUgOiAiamF2YXNjcmlwdC1jb21tZW50IgorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENv
bmRpdGlvbiI6Mn0iCisgICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0cmluZ2lmaWVkIDog
InsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA3
IDogeworICAgICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAgICAgIDAgOiB7Cisg
ICAgICAgICAgICAgICAgICAgIGxlbmd0aCA6IDEKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5U
eXBlIDogImphdmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgcHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAg
ICAgICAgICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlvbiI6
Mn0iCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgOCA6IHsKKyAgICAgICAgICAg
IGhpZ2hsaWdodCA6IHsKKyAgICAgICAgICAgICAgICAwIDogeworICAgICAgICAgICAgICAgICAg
ICBsZW5ndGggOiAxCisgICAgICAgICAgICAgICAgICAgIHRva2VuVHlwZSA6ICJqYXZhc2NyaXB0
LWNvbW1lbnQiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZUNvbmRpdGlv
blN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgICAgICBwb3N0
Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIDkgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQgOiB7Cisg
ICAgICAgICAgICAgICAgMCA6IHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDogMQorICAg
ICAgICAgICAgICAgICAgICB0b2tlblR5cGUgOiAiamF2YXNjcmlwdC1jb21tZW50IgorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7
ImxleENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0cmluZ2lm
aWVkIDogInsibGV4Q29uZGl0aW9uIjoyfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICAxMCA6IHsKKyAgICAgICAgICAgIGhpZ2hsaWdodCA6IHsKKyAgICAgICAgICAgICAgICAw
IDogeworICAgICAgICAgICAgICAgICAgICBsZW5ndGggOiAxCisgICAgICAgICAgICAgICAgICAg
IHRva2VuVHlwZSA6ICJqYXZhc2NyaXB0LWNvbW1lbnQiCisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIHByZUNvbmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9uIjoy
fSIKKyAgICAgICAgICAgICAgICBwb3N0Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25k
aXRpb24iOjJ9IgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDExIDogeworICAg
ICAgICAgICAgaGlnaGxpZ2h0IDogeworICAgICAgICAgICAgICAgIDAgOiB7CisgICAgICAgICAg
ICAgICAgICAgIGxlbmd0aCA6IDEKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5UeXBlIDogImph
dmFzY3JpcHQtY29tbWVudCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJl
Q29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhDb25kaXRpb24iOjJ9IgorICAgICAgICAgICAg
ICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgMTIgOiB7CisgICAgICAgICAgICBoaWdobGln
aHQgOiB7CisgICAgICAgICAgICAgICAgcHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgOiAieyJsZXhD
b25kaXRpb24iOjJ9IgorICAgICAgICAgICAgICAgIHBvc3RDb25kaXRpb25TdHJpbmdpZmllZCA6
ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
MTMgOiB7CisgICAgICAgICAgICBoaWdobGlnaHQgOiB7CisgICAgICAgICAgICAgICAgMCA6IHsK
KyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDogMgorICAgICAgICAgICAgICAgICAgICB0b2tl
blR5cGUgOiAiamF2YXNjcmlwdC1jb21tZW50IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBwcmVDb25kaXRpb25TdHJpbmdpZmllZCA6ICJ7ImxleENvbmRpdGlvbiI6Mn0iCisg
ICAgICAgICAgICAgICAgcG9zdENvbmRpdGlvblN0cmluZ2lmaWVkIDogInsibGV4Q29uZGl0aW9u
IjoxfSIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1idWdzLXRlc3QuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItYnVncy10ZXN0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWY4NmZkMzAxMjQ4OThmZjE1YjM4N2VjOTk5NGFmNjQ4NjU5NGY2YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXIt
YnVncy10ZXN0Lmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgdGV4dE1vZGVsID0g
bmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKKworICAgIHZhciBoaWdobGlnaHRl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyKHRleHRNb2RlbCwgZnVu
Y3Rpb24oKSB7fSk7CisgICAgaGlnaGxpZ2h0ZXIubWltZVR5cGUgPSAidGV4dC9qYXZhc2NyaXB0
IjsKKworICAgIHZhciBvbGRTZXRUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQ7CisgICAgd2lu
ZG93LnNldFRpbWVvdXQgPSBmdW5jdGlvbihmdW5jKSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9
OworCisgICAgZnVuY3Rpb24gZHVtcFRleHRNb2RlbChtc2cpIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlxuPj4+ICIgKyBtc2cpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZE9iamVjdChbdGV4dE1vZGVsLl9saW5lcywgdGV4dE1vZGVsLl9hdHRyaWJ1dGVzXSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gZG9UZXN0Rm9yQnVnMSgpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoImRvVGVzdEZvckJ1ZzEoKSIpOworICAgICAgICBzcmMgPSAiLypcblxuMVxu
MlxuM1xuNFxuNVxuXG4qLyI7CisgICAgICAgIHRleHRNb2RlbC5zZXRUZXh0KG51bGwsIHNyYyk7
CisKKyAgICAgICAgaGlnaGxpZ2h0ZXIuaGlnaGxpZ2h0KHRleHRNb2RlbC5saW5lc0NvdW50KTsK
KyAgICAgICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaGlnaGxpZ2h0aW5nIGFsbCBsaW5lcyIpOwor
CisgICAgICAgIHZhciByYW5nZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDcsIDAsIDcs
IDApOworICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0ZXh0TW9kZWwuc2V0VGV4dChyYW5nZSwgIjFc
bjJcbjNcbjRcbjVcbiIpOworICAgICAgICBoaWdobGlnaHRlci51cGRhdGVIaWdobGlnaHQoNywg
dGV4dE1vZGVsLmxpbmVzQ291bnQpOworICAgICAgICBkdW1wVGV4dE1vZGVsKCJBZnRlciB1cGRh
dGUgaGlnaGxpZ2h0cyIpOworCisgICAgICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0ZXh0TW9k
ZWwubGluZXNDb3VudCk7CisgICAgICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVyIGhpZ2hsaWdodGlu
ZyB1cCB0byB0aGUgZW5kIik7CisgICAgfQorCisgICAgZG9UZXN0Rm9yQnVnMSgpOworCisgICAg
d2luZG93LnNldFRpbWVvdXQgPSBvbGRTZXRUaW1lb3V0OworICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8cD4KK1RoaXMgdGVzdCBjaGVja3MgYWdhaW5zdCBmb3VuZCBidWdzIGluIHRo
ZSBoaWdobGlnaHRlci4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU1
NDkyOTFkZWRiYjg2YmZiNzFiNGVkOWZlZTFkNDNkODZhNTU5ZjguLjNjNTk0NDMyY2ExZGQyNmE3
OTZiYmMwMGQxODgzNDA3M2NhYzg5YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MS0wMi0yMSAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW1Rl
eHQgZWRpdG9yXSBCdWcgaW4gdGhlIGhpZ2hsaWdodGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDg3NgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rv
ci9lZGl0b3IvaGlnaGxpZ2h0ZXItYnVncy10ZXN0Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvVGV4dEVkaXRvckhpZ2hsaWdodGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JIaWdobGlnaHRlci5wcm90b3R5cGUudXBkYXRlSGlnaGxpZ2h0KToKKwog
MjAxMS0wMi0xOCAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGdvb2dsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvckhpZ2hsaWdodGVyLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMKaW5kZXgg
OTFhZTQ3MTg2ZGJkNzJmNzAxZTc0MzdmMDNhMGQ2YTNhMmQ1MTlkMy4uYmU1NTc0Mzc5NTI3OWZh
MDYyNzMxZWQ2Zjg4NmM5NjJiODkzNmYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMKQEAgLTEw
NCwxMCArMTA0LDEyIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90
eXBlID0gewogICAgICAgICB2YXIgYXR0cmlidXRlczEgPSB0aGlzLl90ZXh0TW9kZWwuZ2V0QXR0
cmlidXRlKHRoaXMuX2xhc3RIaWdobGlnaHRlZExpbmUgLSAxLCAiaGlnaGxpZ2h0IikgfHwge307
CiAgICAgICAgIHZhciBhdHRyaWJ1dGVzMiA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUo
dGhpcy5fbGFzdEhpZ2hsaWdodGVkTGluZSwgImhpZ2hsaWdodCIpIHx8IHt9OwogICAgICAgICBp
ZiAodGhpcy5fbGFzdEhpZ2hsaWdodGVkQ29sdW1uID09PSAwICYmIGF0dHJpYnV0ZXMyLnByZUNv
bmRpdGlvblN0cmluZ2lmaWVkICYmIGF0dHJpYnV0ZXMxLnBvc3RDb25kaXRpb25TdHJpbmdpZmll
ZCA9PT0gYXR0cmlidXRlczIucHJlQ29uZGl0aW9uU3RyaW5naWZpZWQpIHsKLSAgICAgICAgICAg
IC8vIEhpZ2hsaWdodGluZyBlbmRlZCBhaGVhZCBvZiB0aW1lLiBSZXN0b3JlIHByZXZpb3VzbHkg
c2F2ZWQgc3RhdGUuCi0gICAgICAgICAgICB0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRMaW5lID0gc2F2
ZWRMYXN0SGlnaGxpZ2h0ZWRMaW5lOwotICAgICAgICAgICAgdGhpcy5fbGFzdEhpZ2hsaWdodGVk
Q29sdW1uID0gc2F2ZWRMYXN0SGlnaGxpZ2h0ZWRDb2x1bW47Ci0gICAgICAgICAgICB0aGlzLl90
b2tlbml6ZXJDb25kaXRpb25TdHJpbmdpZmllZCA9IHNhdmVkVG9rZW5pemVyQ29uZGl0aW9uOwor
ICAgICAgICAgICAgLy8gSGlnaGxpZ2h0aW5nIGVuZGVkIGFoZWFkIG9mIHRpbWUuIFJlc3RvcmUg
cHJldmlvdXNseSBzYXZlZCBzdGF0ZSwgdW5sZXNzIHdlIGhhdmUgZG9uZSBtb3JlIHRoYW4gaXQg
d2FzIGJlZm9yZS4KKyAgICAgICAgICAgIGlmIChzYXZlZExhc3RIaWdobGlnaHRlZExpbmUgPj0g
dGhpcy5fbGFzdEhpZ2hsaWdodGVkTGluZSkgeworICAgICAgICAgICAgICAgIHRoaXMuX2xhc3RI
aWdobGlnaHRlZExpbmUgPSBzYXZlZExhc3RIaWdobGlnaHRlZExpbmU7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbGFzdEhpZ2hsaWdodGVkQ29sdW1uID0gc2F2ZWRMYXN0SGlnaGxpZ2h0ZWRDb2x1
bW47CisgICAgICAgICAgICAgICAgdGhpcy5fdG9rZW5pemVyQ29uZGl0aW9uU3RyaW5naWZpZWQg
PSBzYXZlZFRva2VuaXplckNvbmRpdGlvbjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gSWYgZmFpbGVkIHRv
IHVwZGF0ZSBoaWdobGlnaHQgc3luY2hyb25vdXNseSwgaW52YWxpZGF0ZSBoaWdobGlnaHQgZGF0
YSBmb3IgdGhlIHN1YnNlcXVlbnQgbGluZXMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83302</attachid>
            <date>2011-02-22 05:11:57 -0800</date>
            <delta_ts>2011-02-24 04:36:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54876-20110222161154.patch</filename>
            <type>text/plain</type>
            <size>13225</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYjcwZjU0MzNiZjAwM2FmM2EzYTA2N2YzMmRjMDI5ZTg2Y2ExNGQ0Li5iNGI3YzY5
YWZhZTE5YWI4YzAzOTQ4YjcwZGNhMDgzNDhlYzViYTFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTEtMDItMjIgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFtUZXh0IGVkaXRvcl0gQnVnIGluIHRoZSBoaWdobGlnaHRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ4NzYKKworICAgICAgICAqIGluc3BlY3Rv
ci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxpbmUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1pbi1jb21tZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGln
aHRlci1wYXN0ZS1pbi1jb21tZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9l
ZGl0b3IvaGlnaGxpZ2h0ZXItdGVzdC5qczogQWRkZWQuCisgICAgICAgIChpbml0aWFsaXplX0hp
Z2hsaWdodGVyVGVzdHMuSW5zcGVjdG9yVGVzdC5kdW1wVGV4dE1vZGVsKToKKyAgICAgICAgKGlu
aXRpYWxpemVfSGlnaGxpZ2h0ZXJUZXN0cy5JbnNwZWN0b3JUZXN0LndhaXRGb3JBbGxUaW1lb3V0
cy53aW5kb3cuc2V0VGltZW91dC5vdmVycmlkZGVuQ2FsbGJhY2spOgorICAgICAgICAoaW5pdGlh
bGl6ZV9IaWdobGlnaHRlclRlc3RzLkluc3BlY3RvclRlc3Qud2FpdEZvckFsbFRpbWVvdXRzLndp
bmRvdy5zZXRUaW1lb3V0KToKKyAgICAgICAgKGluaXRpYWxpemVfSGlnaGxpZ2h0ZXJUZXN0cy5J
bnNwZWN0b3JUZXN0LndhaXRGb3JBbGxUaW1lb3V0cyk6CisgICAgICAgIChpbml0aWFsaXplX0hp
Z2hsaWdodGVyVGVzdHMuSW5zcGVjdG9yVGVzdC5zeW5jaHJvbml6ZUV4ZWN1dGlvbik6CisgICAg
ICAgIChpbml0aWFsaXplX0hpZ2hsaWdodGVyVGVzdHMpOgorCiAyMDExLTAyLTE4ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBz
a2lwIGEgR1RLIG1lZGlhIHRlc3QgYWZmZWN0ZWQgYnkgcGl4ZWwgZGlmZXJyZW5jZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxpbmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1s
b25nLWxpbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ODFhZWY5ZGUwZDQ3Y2E1NmFkOGFm
ZmQ0NGQ1MTMxN2NhMzczMWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWxvbmctbGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
IEBACitUaGlzIHRlc3QgY2hlY2tzIGhpZ2hsaWdodGVyIG9uIGEgbG9uZyBsaW5lLgorCitMaW5l
IGxlbmd0aDogMTEyNjQsIG51bWJlciBvZiBjb21tZW50czogMTAyNAorQWxsIGNoZWNrcyBjb21w
bGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxp
Z2h0ZXItbG9uZy1saW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hs
aWdodGVyLWxvbmctbGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5YmYyYTVhYzdjMTc5MjA4YjRmOTYy
YzIwNzZiYzYwMDdlMjk1NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWxvbmctbGluZS5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImhpZ2hsaWdodGVyLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIHRl
eHRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsKCk7CisKKyAgICB2YXIg
aGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlcih0ZXh0
TW9kZWwsIGZ1bmN0aW9uKCkge30pOworICAgIGhpZ2hsaWdodGVyLm1pbWVUeXBlID0gInRleHQv
amF2YXNjcmlwdCI7CisKKyAgICB2YXIgc3JjID0gIi8qIGFzZGYgKi8gIjsKKyAgICB2YXIgY29t
bWVudHMgPSAxOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgICAgICBz
cmMgKz0gc3JjOworICAgICAgICBjb21tZW50cyAqPSAyOworICAgIH0KKyAgICB0ZXh0TW9kZWwu
c2V0VGV4dChudWxsLCBzcmMpOworICAgIGhpZ2hsaWdodGVyLnJlc2V0KCk7CisKKyAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiTGluZSBsZW5ndGg6ICIgKyBzcmMubGVuZ3RoICsgIiwgbnVt
YmVyIG9mIGNvbW1lbnRzOiAiICsgY29tbWVudHMpOworCisgICAgdmFyIHN0ZXBzID0gWworICAg
ICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0ZXh0
TW9kZWwubGluZXNDb3VudCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB2YXIgaGlnaGxpZ2h0ID0gdGV4dE1vZGVsLmdldEF0dHJpYnV0ZSgwLCAiaGln
aGxpZ2h0Iik7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNyYy5sZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgICAgIGlmIChoaWdobGlnaHRbaV0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGhpZ2hsaWdodFtpXS5sZW5ndGggIT09IDEwIHx8IChpICUgMTEpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRVJST1I6IHVuZXhw
ZWN0ZWQgaGlnaGxpZ2h0IHJlc3VsdDogaT0iICsgaSArICIsIGxlbmd0aD0iICsgaGlnaGxpZ2h0
W2ldLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAtLWNvbW1lbnRzOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjb21tZW50cykKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRVJST1I6IHNvbWUgb2YgdGhlIGNvbW1l
bnRzIHdlcmUgbm90IGhpZ2hsaWdodGVkOiAiICsgY29tbWVudHMpOworCisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWxsIGNoZWNrcyBjb21wbGV0ZWQuIik7CisgICAgICAg
IH0sCisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOworICAgICAgICB9CisgICAgXTsKKyAgICBJbnNwZWN0b3JUZXN0LnN5bmNo
cm9uaXplRXhlY3V0aW9uKHN0ZXBzKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGhpcyB0ZXN0IGNoZWNrcyBoaWdobGlnaHRlciBv
biBhIGxvbmcgbGluZS4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1pbi1jb21tZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItcGFz
dGUtaW4tY29tbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU4MWY1NzczMzZkNGUyNDhh
YzFiMjYxYjRkNmVmODUzNGFjNDNhMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItcGFzdGUtaW4tY29tbWVudC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0NiBAQAorVGhpcyB0ZXN0IGNoZWNrcyBhZ2FpbnN0IGEgYnVnIGluIHRoZSBo
aWdobGlnaHRlciB3aGVuIHBhc3RpbmcgdGV4dCBpbnNpZGUgYSBjb21tZW50LgorCisKK0FmdGVy
IGhpZ2hsaWdodGluZyBhbGwgbGluZXMKKzEgOiAvKiA6IGphdmFzY3JpcHQtY29tbWVudFswLTNd
CisyIDogIDoKKzMgOiAxIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzQgOiAyIDogamF2YXNj
cmlwdC1jb21tZW50WzAtMV0KKzUgOiAzIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzYgOiA0
IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzcgOiA1IDogamF2YXNjcmlwdC1jb21tZW50WzAt
MV0KKzggOiAgOgorOSA6ICovIDogamF2YXNjcmlwdC1jb21tZW50WzAtMl0KKworQWZ0ZXIgdXBk
YXRlIGhpZ2hsaWdodHMKKzEgOiAvKiA6IGphdmFzY3JpcHQtY29tbWVudFswLTNdCisyIDogIDoK
KzMgOiAxIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzQgOiAyIDogamF2YXNjcmlwdC1jb21t
ZW50WzAtMV0KKzUgOiAzIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzYgOiA0IDogamF2YXNj
cmlwdC1jb21tZW50WzAtMV0KKzcgOiA1IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzggOiAx
IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzkgOiAyIDogamF2YXNjcmlwdC1jb21tZW50WzAt
MV0KKzEwIDogMyA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCisxMSA6IDQgOiBqYXZhc2NyaXB0
LWNvbW1lbnRbMC0xXQorMTIgOiA1IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzEzIDogIDoK
KzE0IDogKi8gOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0yXQorCitBZnRlciBoaWdobGlnaHRpbmcg
dXAgdG8gdGhlIGVuZAorMSA6IC8qIDogamF2YXNjcmlwdC1jb21tZW50WzAtM10KKzIgOiAgOgor
MyA6IDEgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQorNCA6IDIgOiBqYXZhc2NyaXB0LWNvbW1l
bnRbMC0xXQorNSA6IDMgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQorNiA6IDQgOiBqYXZhc2Ny
aXB0LWNvbW1lbnRbMC0xXQorNyA6IDUgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQorOCA6IDEg
OiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQorOSA6IDIgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0x
XQorMTAgOiAzIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzExIDogNCA6IGphdmFzY3JpcHQt
Y29tbWVudFswLTFdCisxMiA6IDUgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQorMTMgOiAgOgor
MTQgOiAqLyA6IGphdmFzY3JpcHQtY29tbWVudFswLTJdCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItcGFzdGUtaW4tY29tbWVudC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1pbi1jb21tZW50
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTJkM2Y4MDIyZTY1ZTA1OTc3ZGU0NGE0MDVmMTU4ZDQ2OGJmYTk4
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxp
Z2h0ZXItcGFzdGUtaW4tY29tbWVudC5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImhpZ2hsaWdodGVyLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIHRleHRNb2RlbCA9
IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsKCk7CisKKyAgICB2YXIgaGlnaGxpZ2h0
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlcih0ZXh0TW9kZWwsIGZ1
bmN0aW9uKCkge30pOworICAgIGhpZ2hsaWdodGVyLm1pbWVUeXBlID0gInRleHQvamF2YXNjcmlw
dCI7CisKKyAgICBmdW5jdGlvbiBkdW1wVGV4dE1vZGVsKG1zZykgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiXG4iICsgbXNnKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1w
VGV4dE1vZGVsKHRleHRNb2RlbCk7CisgICAgfQorCisgICAgdmFyIHNyYyA9ICIvKlxuXG4xXG4y
XG4zXG40XG41XG5cbiovIjsKKyAgICB0ZXh0TW9kZWwuc2V0VGV4dChudWxsLCBzcmMpOworICAg
IGhpZ2hsaWdodGVyLnJlc2V0KCk7CisKKyAgICB2YXIgc3RlcHMgPSBbCisgICAgICAgIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgaGlnaGxpZ2h0ZXIuaGlnaGxpZ2h0KHRleHRNb2RlbC5saW5l
c0NvdW50KTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGR1bXBUZXh0TW9kZWwoIkFmdGVyIGhpZ2hsaWdodGluZyBhbGwgbGluZXMiKTsKKyAgICAgICAg
fSwKKworICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciByYW5nZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDcsIDAsIDcsIDApOworICAgICAgICAgICAgdmFyIG5ld1Jh
bmdlID0gdGV4dE1vZGVsLnNldFRleHQocmFuZ2UsICIxXG4yXG4zXG40XG41XG4iKTsKKyAgICAg
ICAgICAgIGhpZ2hsaWdodGVyLnVwZGF0ZUhpZ2hsaWdodCg3LCB0ZXh0TW9kZWwubGluZXNDb3Vu
dCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkdW1w
VGV4dE1vZGVsKCJBZnRlciB1cGRhdGUgaGlnaGxpZ2h0cyIpOworICAgICAgICB9LAorCisgICAg
ICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaGlnaGxpZ2h0ZXIuaGlnaGxpZ2h0KHRleHRN
b2RlbC5saW5lc0NvdW50KTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVyIGhpZ2hsaWdodGluZyB1cCB0byB0aGUgZW5k
Iik7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICB9CisgICAgXTsKKyAgICBJbnNwZWN0
b3JUZXN0LnN5bmNocm9uaXplRXhlY3V0aW9uKHN0ZXBzKTsKK30KKworPC9zY3JpcHQ+Cis8L2hl
YWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGhpcyB0ZXN0IGNoZWNrcyBh
Z2FpbnN0IDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NDg3NiI+YSBidWc8L2E+IGluIHRoZSBoaWdobGlnaHRlciB3aGVuIHBhc3RpbmcgdGV4dCBpbnNp
ZGUgYSBjb21tZW50LgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXRlc3QuanMgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXRlc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk4OGZl
ODIwZjA3ZjFmYzdjMTA2NmZiMzk5OGE5NDcyZTc1NjQ1YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItdGVzdC5qcwpAQCAtMCwwICsx
LDY3IEBACitmdW5jdGlvbiBpbml0aWFsaXplX0hpZ2hsaWdodGVyVGVzdHMoKQoreworCitJbnNw
ZWN0b3JUZXN0LmR1bXBUZXh0TW9kZWwgPSBmdW5jdGlvbih0ZXh0TW9kZWwpCit7CisgICAgdmFy
IGxpbmVzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0TW9kZWwubGluZXNDb3Vu
dDsgKytpKSB7CisgICAgICAgIHZhciBsaW5lID0gdGV4dE1vZGVsLmxpbmUoaSk7CisgICAgICAg
IHZhciBoaWdobGlnaHQgPSB0ZXh0TW9kZWwuZ2V0QXR0cmlidXRlKGksICJoaWdobGlnaHQiKTsK
KyAgICAgICAgdmFyIHJlc3VsdCA9IChpICsgMSkgKyAiIDogIiArIGxpbmUgKyAiIDoiOworICAg
ICAgICBpZiAoaGlnaGxpZ2h0KSB7CisgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxp
bmUubGVuZ3RoOyArK2opCisgICAgICAgICAgICAgICAgaWYgKGhpZ2hsaWdodFtqXSkKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgIiArIGhpZ2hsaWdodFtqXS50b2tlblR5cGUgKyAi
WyIgKyBqICsgIi0iICsgKGogKyBoaWdobGlnaHRbal0ubGVuZ3RoKSArICJdIjsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICByZXN1bHQgKz0gIiBudWxsIjsKKyAgICAgICAgbGluZXMucHVz
aChyZXN1bHQpOworICAgIH0KKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChsaW5lcy5qb2lu
KCJcbiIpKTsKK307CisKK0luc3BlY3RvclRlc3Qud2FpdEZvckFsbFRpbWVvdXRzID0gZnVuY3Rp
b24ocnVubmFibGUsIGNhbGxiYWNrKQoreworICAgIHZhciBvcmlnaW5hbFNldFRpbWVvdXQgPSB3
aW5kb3cuc2V0VGltZW91dDsKKyAgICB2YXIgYWN0aXZlVGltZXJzID0gMDsKKworICAgIHdpbmRv
dy5zZXRUaW1lb3V0ID0gZnVuY3Rpb24oY29kZSkgeworICAgICAgICB2YXIgb3ZlcnJpZGRlbkNh
bGxiYWNrID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAg
IGlmICh0eXBlb2YgY29kZSA9PT0gInN0cmluZyIpCisgICAgICAgICAgICAgICAgICAgIGV2YWwo
Y29kZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb2RlKCk7
CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIC0tYWN0aXZlVGltZXJz
OworICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUaW1lcnMgPT09IDApIHsKKyAgICAgICAgICAg
ICAgICAgICAgd2luZG93LnNldFRpbWVvdXQgPSBvcmlnaW5hbFNldFRpbWVvdXQ7CisgICAgICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICB9OworCisgICAgICAgICsrYWN0aXZlVGltZXJzOworICAgICAgICB2YXIgYXJn
cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7CisgICAgICAgIGFyZ3Nb
MF0gPSBvdmVycmlkZGVuQ2FsbGJhY2s7CisgICAgICAgIHJldHVybiBvcmlnaW5hbFNldFRpbWVv
dXQuYXBwbHkod2luZG93LCBhcmdzKTsKKyAgICB9OworCisgICAgdHJ5IHsKKyAgICAgICAgcnVu
bmFibGUoKTsKKyAgICB9IGZpbmFsbHkgeworICAgICAgICBpZiAoYWN0aXZlVGltZXJzID09PSAw
KSB7CisgICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCA9IG9yaWdpbmFsU2V0VGltZW91dDsK
KyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0KKyAgICB9Cit9OworCitJbnNwZWN0
b3JUZXN0LnN5bmNocm9uaXplRXhlY3V0aW9uID0gZnVuY3Rpb24ocnVubmFibGVzKQoreworICAg
IEluc3BlY3RvclRlc3Qud2FpdEZvckFsbFRpbWVvdXRzKHJ1bm5hYmxlcy5zaGlmdCgpLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgaWYgKHJ1bm5hYmxlcy5sZW5ndGggIT09IDApCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnN5bmNocm9uaXplRXhlY3V0aW9uKHJ1bm5hYmxlcyk7CisgICAgfSk7
Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU0OTI5MWRlZGJiODZiZmI3MWI0ZWQ5ZmVlMWQ0M2Q4
NmE1NTlmOC4uYmZmYWMxMmViMDgxYmE3ZTU4YmMwZGU4NDBhZDZlYTk4NTMzYzkwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTAyLTIyICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRy
ZXlAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbVGV4dCBlZGl0b3JdIEJ1ZyBpbiB0aGUgaGlnaGxpZ2h0
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0ODc2
CisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5l
Lmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItcGFzdGUt
aW4tY29tbWVudC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0
b3JIaWdobGlnaHRlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxp
Z2h0ZXIucHJvdG90eXBlLnVwZGF0ZUhpZ2hsaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZS5faGlnaGxpZ2h0TGluZXMpOgorCiAyMDEx
LTAyLTE4ICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qcwppbmRleCA5MWFl
NDcxODZkYmQ3MmY3MDFlNzQzN2YwM2EwZDZhM2EyZDUxOWQzLi4wMGMyMzg2NThkOWRjY2IxY2Jj
M2Q4NWFhNjFlY2U3Y2YwMjRlMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qcwpAQCAtMTA0LDEw
ICsxMDQsMTIgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlci5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBhdHRyaWJ1dGVzMSA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1
dGUodGhpcy5fbGFzdEhpZ2hsaWdodGVkTGluZSAtIDEsICJoaWdobGlnaHQiKSB8fCB7fTsKICAg
ICAgICAgdmFyIGF0dHJpYnV0ZXMyID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0dHJpYnV0ZSh0aGlz
Ll9sYXN0SGlnaGxpZ2h0ZWRMaW5lLCAiaGlnaGxpZ2h0IikgfHwge307CiAgICAgICAgIGlmICh0
aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW4gPT09IDAgJiYgYXR0cmlidXRlczIucHJlQ29uZGl0
aW9uU3RyaW5naWZpZWQgJiYgYXR0cmlidXRlczEucG9zdENvbmRpdGlvblN0cmluZ2lmaWVkID09
PSBhdHRyaWJ1dGVzMi5wcmVDb25kaXRpb25TdHJpbmdpZmllZCkgewotICAgICAgICAgICAgLy8g
SGlnaGxpZ2h0aW5nIGVuZGVkIGFoZWFkIG9mIHRpbWUuIFJlc3RvcmUgcHJldmlvdXNseSBzYXZl
ZCBzdGF0ZS4KLSAgICAgICAgICAgIHRoaXMuX2xhc3RIaWdobGlnaHRlZExpbmUgPSBzYXZlZExh
c3RIaWdobGlnaHRlZExpbmU7Ci0gICAgICAgICAgICB0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1
bW4gPSBzYXZlZExhc3RIaWdobGlnaHRlZENvbHVtbjsKLSAgICAgICAgICAgIHRoaXMuX3Rva2Vu
aXplckNvbmRpdGlvblN0cmluZ2lmaWVkID0gc2F2ZWRUb2tlbml6ZXJDb25kaXRpb247CisgICAg
ICAgICAgICAvLyBIaWdobGlnaHRpbmcgZW5kZWQgYWhlYWQgb2YgdGltZS4gUmVzdG9yZSBwcmV2
aW91c2x5IHNhdmVkIHN0YXRlLCB1bmxlc3Mgd2UgaGF2ZSBkb25lIG1vcmUgdGhhbiBpdCB3YXMg
YmVmb3JlLgorICAgICAgICAgICAgaWYgKHNhdmVkTGFzdEhpZ2hsaWdodGVkTGluZSA+PSB0aGlz
Ll9sYXN0SGlnaGxpZ2h0ZWRMaW5lKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fbGFzdEhpZ2hs
aWdodGVkTGluZSA9IHNhdmVkTGFzdEhpZ2hsaWdodGVkTGluZTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW4gPSBzYXZlZExhc3RIaWdobGlnaHRlZENvbHVtbjsK
KyAgICAgICAgICAgICAgICB0aGlzLl90b2tlbml6ZXJDb25kaXRpb25TdHJpbmdpZmllZCA9IHNh
dmVkVG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBJZiBmYWlsZWQgdG8gdXBk
YXRlIGhpZ2hsaWdodCBzeW5jaHJvbm91c2x5LCBpbnZhbGlkYXRlIGhpZ2hsaWdodCBkYXRhIGZv
ciB0aGUgc3Vic2VxdWVudCBsaW5lcy4KQEAgLTE1OSwxMSArMTYxLDEyIEBAIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGxp
bmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKICAgICAgICAgICAgIHRoaXMu
X3Rva2VuaXplci5saW5lID0gbGluZTsKIAotICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZXMgPSB7
fTsKLSAgICAgICAgICAgIHRoaXMuX3RleHRNb2RlbC5zZXRBdHRyaWJ1dGUobGluZU51bWJlciwg
ImhpZ2hsaWdodCIsIGF0dHJpYnV0ZXMpOwotCi0gICAgICAgICAgICBpZiAodGhpcy5fbGFzdEhp
Z2hsaWdodGVkQ29sdW1uID09PSAwKQorICAgICAgICAgICAgaWYgKHRoaXMuX2xhc3RIaWdobGln
aHRlZENvbHVtbiA9PT0gMCkgeworICAgICAgICAgICAgICAgIHZhciBhdHRyaWJ1dGVzID0ge307
CiAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy5wcmVDb25kaXRpb25TdHJpbmdpZmllZCA9IEpT
T04uc3RyaW5naWZ5KHRoaXMuX3Rva2VuaXplci5jb25kaXRpb24pOworICAgICAgICAgICAgICAg
IHRoaXMuX3RleHRNb2RlbC5zZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImhpZ2hsaWdodCIsIGF0
dHJpYnV0ZXMpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdmFyIGF0dHJp
YnV0ZXMgPSB0aGlzLl90ZXh0TW9kZWwuZ2V0QXR0cmlidXRlKGxpbmVOdW1iZXIsICJoaWdobGln
aHQiKTsKIAogICAgICAgICAgICAgLy8gSGlnaGxpZ2h0IGxpbmUuCiAgICAgICAgICAgICBkbyB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83632</attachid>
            <date>2011-02-24 04:36:59 -0800</date>
            <delta_ts>2011-02-24 05:50:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54876-20110224153652.patch</filename>
            <type>text/plain</type>
            <size>12309</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0Mzg5N2FjNzA2NGVmYjQ5MTk5OGU4NjkyZjdlYTljYTE3MjViZjhmLi41YTcwMzQw
ZmNjMGYzMGJhYjRjY2EzZmZhMWVhNDdhNDg5NGNhYjg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTEtMDItMjQgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFtUZXh0IGVkaXRvcl0gQnVnIGluIHRoZSBoaWdobGlnaHRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ4NzYKKworICAgICAgICAqIGluc3BlY3Rv
ci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxpbmUuaHRtbDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1pbi1jb21tZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGln
aHRlci1wYXN0ZS1pbi1jb21tZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9l
ZGl0b3IvaGlnaGxpZ2h0ZXItdGVzdC5qczogQWRkZWQuCisgICAgICAgIChpbml0aWFsaXplX0hp
Z2hsaWdodGVyVGVzdHMuSW5zcGVjdG9yVGVzdC5kdW1wVGV4dE1vZGVsKToKKyAgICAgICAgKGlu
aXRpYWxpemVfSGlnaGxpZ2h0ZXJUZXN0cyk6CisKIDIwMTEtMDItMjIgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KICAgICAgICAgCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdF9l
eHBlY3RhdGlvbi50eHQgdXBkYXRlLiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xODgxYWVmOWRlMGQ0N2NhNTZhZDhhZmZkNDRkNTEzMTdjYTM3MzFlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25n
LWxpbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBoaWdo
bGlnaHRlciBvbiBhIGxvbmcgbGluZS4KKworTGluZSBsZW5ndGg6IDExMjY0LCBudW1iZXIgb2Yg
Y29tbWVudHM6IDEwMjQKK0FsbCBjaGVja3MgY29tcGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWxvbmctbGluZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxpbmUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNTkwZDVmNjg3NDY3NTMxZWRiOGFjZGNkY2VhM2IyMTExOTAyNzBlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25n
LWxpbmUuaHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJoaWdobGlnaHRlci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNb2RlbCgpOworCisgICAgdmFyIGhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIodGV4dE1vZGVsLCBmdW5jdGlvbigpIHt9KTsKKyAg
ICBoaWdobGlnaHRlci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOworICAgIGhpZ2hsaWdo
dGVyLmhpZ2hsaWdodENodW5rTGltaXQgPSBOdW1iZXIuTUFYX1ZBTFVFOyAvLyBTeW5jaHJvbm91
cy4KKworICAgIHZhciBzcmMgPSAiLyogYXNkZiAqLyAiOworICAgIHZhciBjb21tZW50cyA9IDE7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgIHNyYyArPSBzcmM7
CisgICAgICAgIGNvbW1lbnRzICo9IDI7CisgICAgfQorICAgIHRleHRNb2RlbC5zZXRUZXh0KG51
bGwsIHNyYyk7CisgICAgaGlnaGxpZ2h0ZXIucmVzZXQoKTsKKworICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJMaW5lIGxlbmd0aDogIiArIHNyYy5sZW5ndGggKyAiLCBudW1iZXIgb2YgY29t
bWVudHM6ICIgKyBjb21tZW50cyk7CisKKyAgICBoaWdobGlnaHRlci5oaWdobGlnaHQodGV4dE1v
ZGVsLmxpbmVzQ291bnQpOworCisgICAgdmFyIGhpZ2hsaWdodCA9IHRleHRNb2RlbC5nZXRBdHRy
aWJ1dGUoMCwgImhpZ2hsaWdodCIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3JjLmxlbmd0
aDsgKytpKSB7CisgICAgICAgIGlmIChoaWdobGlnaHRbaV0pIHsKKyAgICAgICAgICAgIGlmICho
aWdobGlnaHRbaV0ubGVuZ3RoICE9PSAxMCB8fCAoaSAlIDExKSkgeworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFUlJPUjogdW5leHBlY3RlZCBoaWdobGlnaHQgcmVz
dWx0OiBpPSIgKyBpICsgIiwgbGVuZ3RoPSIgKyBoaWdobGlnaHRbaV0ubGVuZ3RoKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tY29tbWVudHM7
CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNvbW1lbnRzKQorICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiRVJST1I6IHNvbWUgb2YgdGhlIGNvbW1lbnRzIHdlcmUgbm90IGhpZ2hs
aWdodGVkOiAiICsgY29tbWVudHMpOworCisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFs
bCBjaGVja3MgY29tcGxldGVkLiIpOworICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
cD4KK1RoaXMgdGVzdCBjaGVja3MgaGlnaGxpZ2h0ZXIgb24gYSBsb25nIGxpbmUuCis8L3A+CisK
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0
b3IvaGlnaGxpZ2h0ZXItcGFzdGUtaW4tY29tbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA1ODFmNTc3MzM2ZDRlMjQ4YWMxYjI2MWI0ZDZlZjg1MzRhYzQzYTIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdo
dGVyLXBhc3RlLWluLWNvbW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKK1RoaXMg
dGVzdCBjaGVja3MgYWdhaW5zdCBhIGJ1ZyBpbiB0aGUgaGlnaGxpZ2h0ZXIgd2hlbiBwYXN0aW5n
IHRleHQgaW5zaWRlIGEgY29tbWVudC4KKworCitBZnRlciBoaWdobGlnaHRpbmcgYWxsIGxpbmVz
CisxIDogLyogOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0zXQorMiA6ICA6CiszIDogMSA6IGphdmFz
Y3JpcHQtY29tbWVudFswLTFdCis0IDogMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis1IDog
MyA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis2IDogNCA6IGphdmFzY3JpcHQtY29tbWVudFsw
LTFdCis3IDogNSA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis4IDogIDoKKzkgOiAqLyA6IGph
dmFzY3JpcHQtY29tbWVudFswLTJdCisKK0FmdGVyIHVwZGF0ZSBoaWdobGlnaHRzCisxIDogLyog
OiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0zXQorMiA6ICA6CiszIDogMSA6IGphdmFzY3JpcHQtY29t
bWVudFswLTFdCis0IDogMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis1IDogMyA6IGphdmFz
Y3JpcHQtY29tbWVudFswLTFdCis2IDogNCA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis3IDog
NSA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis4IDogMSA6IGphdmFzY3JpcHQtY29tbWVudFsw
LTFdCis5IDogMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCisxMCA6IDMgOiBqYXZhc2NyaXB0
LWNvbW1lbnRbMC0xXQorMTEgOiA0IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzEyIDogNSA6
IGphdmFzY3JpcHQtY29tbWVudFswLTFdCisxMyA6ICA6CisxNCA6ICovIDogamF2YXNjcmlwdC1j
b21tZW50WzAtMl0KKworQWZ0ZXIgaGlnaGxpZ2h0aW5nIHVwIHRvIHRoZSBlbmQKKzEgOiAvKiA6
IGphdmFzY3JpcHQtY29tbWVudFswLTNdCisyIDogIDoKKzMgOiAxIDogamF2YXNjcmlwdC1jb21t
ZW50WzAtMV0KKzQgOiAyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzUgOiAzIDogamF2YXNj
cmlwdC1jb21tZW50WzAtMV0KKzYgOiA0IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzcgOiA1
IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzggOiAxIDogamF2YXNjcmlwdC1jb21tZW50WzAt
MV0KKzkgOiAyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzEwIDogMyA6IGphdmFzY3JpcHQt
Y29tbWVudFswLTFdCisxMSA6IDQgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQorMTIgOiA1IDog
amF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzEzIDogIDoKKzE0IDogKi8gOiBqYXZhc2NyaXB0LWNv
bW1lbnRbMC0yXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hp
Z2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvaGlnaGxpZ2h0ZXItcGFzdGUtaW4tY29tbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0Mzlm
ODZkNTAzODQxZjMxMjJiNDlmZTA2YzZiOGRkNDEwMTgyM2QKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQu
aHRtbApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJoaWdobGlnaHRlci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3JNb2RlbCgpOworCisgICAgdmFyIGhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9ySGlnaGxpZ2h0ZXIodGV4dE1vZGVsLCBmdW5jdGlvbigpIHt9KTsKKyAgICBoaWdo
bGlnaHRlci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOworICAgIGhpZ2hsaWdodGVyLmhp
Z2hsaWdodENodW5rTGltaXQgPSBOdW1iZXIuTUFYX1ZBTFVFOyAvLyBTeW5jaHJvbm91cy4KKwor
ICAgIGZ1bmN0aW9uIGR1bXBUZXh0TW9kZWwobXNnKSB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJcbiIgKyBtc2cpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBUZXh0TW9k
ZWwodGV4dE1vZGVsKTsKKyAgICB9CisKKyAgICB2YXIgc3JjID0gIi8qXG5cbjFcbjJcbjNcbjRc
bjVcblxuKi8iOworICAgIHRleHRNb2RlbC5zZXRUZXh0KG51bGwsIHNyYyk7CisgICAgaGlnaGxp
Z2h0ZXIucmVzZXQoKTsKKworICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0ZXh0TW9kZWwubGlu
ZXNDb3VudCk7CisgICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaGlnaGxpZ2h0aW5nIGFsbCBsaW5l
cyIpOworCisgICAgdmFyIHJhbmdlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoNywgMCwg
NywgMCk7CisgICAgdmFyIG5ld1JhbmdlID0gdGV4dE1vZGVsLnNldFRleHQocmFuZ2UsICIxXG4y
XG4zXG40XG41XG4iKTsKKyAgICBoaWdobGlnaHRlci51cGRhdGVIaWdobGlnaHQoNywgdGV4dE1v
ZGVsLmxpbmVzQ291bnQpOworICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVyIHVwZGF0ZSBoaWdobGln
aHRzIik7CisKKyAgICBoaWdobGlnaHRlci5oaWdobGlnaHQodGV4dE1vZGVsLmxpbmVzQ291bnQp
OworICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVyIGhpZ2hsaWdodGluZyB1cCB0byB0aGUgZW5kIik7
CisKKyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzwv
aGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUaGlzIHRlc3QgY2hlY2tz
IGFnYWluc3QgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU0ODc2Ij5hIGJ1ZzwvYT4gaW4gdGhlIGhpZ2hsaWdodGVyIHdoZW4gcGFzdGluZyB0ZXh0IGlu
c2lkZSBhIGNvbW1lbnQuCis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItdGVzdC5qcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDBk
MWYxMTAxNmQ0MjhhNGRkNDAxOGUzMjk3MWVhM2Q0Y2RlZWYzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci10ZXN0LmpzCkBAIC0wLDAg
KzEsMjIgQEAKK2Z1bmN0aW9uIGluaXRpYWxpemVfSGlnaGxpZ2h0ZXJUZXN0cygpCit7CisKK0lu
c3BlY3RvclRlc3QuZHVtcFRleHRNb2RlbCA9IGZ1bmN0aW9uKHRleHRNb2RlbCkKK3sKKyAgICB2
YXIgbGluZXMgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRNb2RlbC5saW5lc0Nv
dW50OyArK2kpIHsKKyAgICAgICAgdmFyIGxpbmUgPSB0ZXh0TW9kZWwubGluZShpKTsKKyAgICAg
ICAgdmFyIGhpZ2hsaWdodCA9IHRleHRNb2RlbC5nZXRBdHRyaWJ1dGUoaSwgImhpZ2hsaWdodCIp
OworICAgICAgICB2YXIgcmVzdWx0ID0gKGkgKyAxKSArICIgOiAiICsgbGluZSArICIgOiI7Cisg
ICAgICAgIGlmIChoaWdobGlnaHQpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwg
bGluZS5sZW5ndGg7ICsraikKKyAgICAgICAgICAgICAgICBpZiAoaGlnaGxpZ2h0W2pdKQorICAg
ICAgICAgICAgICAgICAgICByZXN1bHQgKz0gIiAiICsgaGlnaGxpZ2h0W2pdLnRva2VuVHlwZSAr
ICJbIiArIGogKyAiLSIgKyAoaiArIGhpZ2hsaWdodFtqXS5sZW5ndGgpICsgIl0iOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCArPSAiIG51bGwiOworICAgICAgICBsaW5lcy5w
dXNoKHJlc3VsdCk7CisgICAgfQorICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGxpbmVzLmpv
aW4oIlxuIikpOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQzMTg0Y2U1ZDgzZmRlMDlhNTFjYzM3
OWEwZmM3NDgyMWFjN2I3ZWQuLjgzN2I4MDliMDQ1ZjdhN2FlY2VjYzQyYWUzOGVjZmUzMThlOTQ0
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0wMi0yNCAgQW5kcmV5IEFkYWlr
aW4gIDxhYW5kcmV5QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW1RleHQgZWRpdG9yXSBCdWcgaW4gdGhl
IGhpZ2hsaWdodGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NDg3NgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVy
LWxvbmctbGluZS5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdo
dGVyLXBhc3RlLWluLWNvbW1lbnQuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvckhpZ2hsaWdodGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxp
Z2h0ZXIucHJvdG90eXBlLnNldCBoaWdobGlnaHRDaHVua0xpbWl0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90eXBlLnVwZGF0ZUhpZ2hsaWdodCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZS5f
aGlnaGxpZ2h0TGluZXMpOgorCiAyMDExLTAyLTIyICBTdGV2ZSBMYWNleSAgPHNqbEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGln
aHRlci5qcwppbmRleCA5MWFlNDcxODZkYmQ3MmY3MDFlNzQzN2YwM2EwZDZhM2EyZDUxOWQzLi5l
NDI5YTU0ZDk1MDhiZTk2MGZmOGQyZGVjZjY3NDBiMWVlMmIyOGZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGln
aHRlci5qcwpAQCAtMzQsNiArMzQsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdo
dGVyID0gZnVuY3Rpb24odGV4dE1vZGVsLCBkYW1hZ2VDYWxsYmFjaykKICAgICB0aGlzLl90ZXh0
TW9kZWwgPSB0ZXh0TW9kZWw7CiAgICAgdGhpcy5fdG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNv
dXJjZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9o
dG1sIik7CiAgICAgdGhpcy5fZGFtYWdlQ2FsbGJhY2sgPSBkYW1hZ2VDYWxsYmFjazsKKyAgICB0
aGlzLl9oaWdobGlnaHRDaHVua0xpbWl0ID0gMTAwMDsKICAgICB0aGlzLnJlc2V0KCk7CiB9CiAK
QEAgLTQ3LDYgKzQ4LDExIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJv
dG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAgIHNldCBoaWdobGlnaHRDaHVua0xp
bWl0KGhpZ2hsaWdodENodW5rTGltaXQpCisgICAgeworICAgICAgICB0aGlzLl9oaWdobGlnaHRD
aHVua0xpbWl0ID0gaGlnaGxpZ2h0Q2h1bmtMaW1pdDsKKyAgICB9LAorCiAgICAgcmVzZXQ6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2xhc3RIaWdobGlnaHRlZExpbmUgPSAwOwpA
QCAtMTA0LDEwICsxMTAsMTIgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBhdHRyaWJ1dGVzMSA9IHRoaXMuX3RleHRNb2RlbC5n
ZXRBdHRyaWJ1dGUodGhpcy5fbGFzdEhpZ2hsaWdodGVkTGluZSAtIDEsICJoaWdobGlnaHQiKSB8
fCB7fTsKICAgICAgICAgdmFyIGF0dHJpYnV0ZXMyID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0dHJp
YnV0ZSh0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRMaW5lLCAiaGlnaGxpZ2h0IikgfHwge307CiAgICAg
ICAgIGlmICh0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW4gPT09IDAgJiYgYXR0cmlidXRlczIu
cHJlQ29uZGl0aW9uU3RyaW5naWZpZWQgJiYgYXR0cmlidXRlczEucG9zdENvbmRpdGlvblN0cmlu
Z2lmaWVkID09PSBhdHRyaWJ1dGVzMi5wcmVDb25kaXRpb25TdHJpbmdpZmllZCkgewotICAgICAg
ICAgICAgLy8gSGlnaGxpZ2h0aW5nIGVuZGVkIGFoZWFkIG9mIHRpbWUuIFJlc3RvcmUgcHJldmlv
dXNseSBzYXZlZCBzdGF0ZS4KLSAgICAgICAgICAgIHRoaXMuX2xhc3RIaWdobGlnaHRlZExpbmUg
PSBzYXZlZExhc3RIaWdobGlnaHRlZExpbmU7Ci0gICAgICAgICAgICB0aGlzLl9sYXN0SGlnaGxp
Z2h0ZWRDb2x1bW4gPSBzYXZlZExhc3RIaWdobGlnaHRlZENvbHVtbjsKLSAgICAgICAgICAgIHRo
aXMuX3Rva2VuaXplckNvbmRpdGlvblN0cmluZ2lmaWVkID0gc2F2ZWRUb2tlbml6ZXJDb25kaXRp
b247CisgICAgICAgICAgICAvLyBIaWdobGlnaHRpbmcgZW5kZWQgYWhlYWQgb2YgdGltZS4gUmVz
dG9yZSBwcmV2aW91c2x5IHNhdmVkIHN0YXRlLCB1bmxlc3Mgd2UgaGF2ZSBkb25lIG1vcmUgdGhh
biBpdCB3YXMgYmVmb3JlLgorICAgICAgICAgICAgaWYgKHNhdmVkTGFzdEhpZ2hsaWdodGVkTGlu
ZSA+PSB0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRMaW5lKSB7CisgICAgICAgICAgICAgICAgdGhpcy5f
bGFzdEhpZ2hsaWdodGVkTGluZSA9IHNhdmVkTGFzdEhpZ2hsaWdodGVkTGluZTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW4gPSBzYXZlZExhc3RIaWdobGlnaHRl
ZENvbHVtbjsKKyAgICAgICAgICAgICAgICB0aGlzLl90b2tlbml6ZXJDb25kaXRpb25TdHJpbmdp
ZmllZCA9IHNhdmVkVG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICAgICAgfQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBJZiBmYWls
ZWQgdG8gdXBkYXRlIGhpZ2hsaWdodCBzeW5jaHJvbm91c2x5LCBpbnZhbGlkYXRlIGhpZ2hsaWdo
dCBkYXRhIGZvciB0aGUgc3Vic2VxdWVudCBsaW5lcy4KQEAgLTE1OSwxMSArMTY3LDEyIEBAIFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgdmFyIGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKICAgICAgICAg
ICAgIHRoaXMuX3Rva2VuaXplci5saW5lID0gbGluZTsKIAotICAgICAgICAgICAgdmFyIGF0dHJp
YnV0ZXMgPSB7fTsKLSAgICAgICAgICAgIHRoaXMuX3RleHRNb2RlbC5zZXRBdHRyaWJ1dGUobGlu
ZU51bWJlciwgImhpZ2hsaWdodCIsIGF0dHJpYnV0ZXMpOwotCi0gICAgICAgICAgICBpZiAodGhp
cy5fbGFzdEhpZ2hsaWdodGVkQ29sdW1uID09PSAwKQorICAgICAgICAgICAgaWYgKHRoaXMuX2xh
c3RIaWdobGlnaHRlZENvbHVtbiA9PT0gMCkgeworICAgICAgICAgICAgICAgIHZhciBhdHRyaWJ1
dGVzID0ge307CiAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy5wcmVDb25kaXRpb25TdHJpbmdp
ZmllZCA9IEpTT04uc3RyaW5naWZ5KHRoaXMuX3Rva2VuaXplci5jb25kaXRpb24pOworICAgICAg
ICAgICAgICAgIHRoaXMuX3RleHRNb2RlbC5zZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImhpZ2hs
aWdodCIsIGF0dHJpYnV0ZXMpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
dmFyIGF0dHJpYnV0ZXMgPSB0aGlzLl90ZXh0TW9kZWwuZ2V0QXR0cmlidXRlKGxpbmVOdW1iZXIs
ICJoaWdobGlnaHQiKTsKIAogICAgICAgICAgICAgLy8gSGlnaGxpZ2h0IGxpbmUuCiAgICAgICAg
ICAgICBkbyB7CkBAIC0xNzIsNyArMTgxLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdo
bGlnaHRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgaWYgKHRva2VuVHlwZSkKICAg
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlc1t0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW5d
ID0geyBsZW5ndGg6IG5ld0NvbHVtbiAtIHRoaXMuX2xhc3RIaWdobGlnaHRlZENvbHVtbiwgdG9r
ZW5UeXBlOiB0b2tlblR5cGUgfTsKICAgICAgICAgICAgICAgICB0aGlzLl9sYXN0SGlnaGxpZ2h0
ZWRDb2x1bW4gPSBuZXdDb2x1bW47Ci0gICAgICAgICAgICAgICAgaWYgKCsrdG9rZW5zQ291bnQg
PiAxMDAwKQorICAgICAgICAgICAgICAgIGlmICgrK3Rva2Vuc0NvdW50ID4gdGhpcy5faGlnaGxp
Z2h0Q2h1bmtMaW1pdCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
IHdoaWxlICh0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW4gPCBsaW5lLmxlbmd0aCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83644</attachid>
            <date>2011-02-24 05:50:19 -0800</date>
            <delta_ts>2011-02-24 08:05:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54876-20110224165017.patch</filename>
            <type>text/plain</type>
            <size>12705</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0Mzg5N2FjNzA2NGVmYjQ5MTk5OGU4NjkyZjdlYTljYTE3MjViZjhmLi5kZGM1OGM3
MGNmNjkwYzI2YzM1Nzg4MDlmOGE0YWZiNmNhYzY0ZGVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTEtMDItMjQgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFtUZXh0IGVkaXRvcl0gQnVnIGluIHRoZSBoaWdobGlnaHRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ4NzYKKworICAgICAgICBGaXhpbmcgdHdv
IGJ1Z3M6IDEpIFdoZW4gcmVzdG9yaW5nIHRoZSBzdGF0ZSBmcm9tIGEgc3VjY2Vzc2Z1bCB1cGRh
dGVIaWdobGlnaHQoKSBjYWxsLCB3ZSBzaG91bGQgcmVzdG9yZSB0aGUgb2xkIHN0YXRlIG9ubHkg
aWYgaXQgaXMgZ3JlYXRlciAoY2xvc2VyIHRvIHRoZSBlbmQpIHRoYW4gdGhlIGN1cnJlbnQgb25l
LgorICAgICAgICAyKSBXaGVuIGEgbG9uZyBsaW5lIGlzIGJlaW5nIGhpZ2hsaWdodGVkIGluIG1v
cmUgdGhhbiBvbmUgY2h1bmsgKHRpbWVyIHRpY2spLCB3ZSB3cm9uZ2x5IGRlbGV0ZWQgdGhlIHJl
c3VsdCBvZiB0aGUgd29yayBkb25lIGluIHRoZSBwcmV2aW91cyB0aWNrLCByYXRoZXIgdGhhbiB1
cGRhdGluZyBpdCB3aXRoIHRoZSBuZXcgcmVzdWx0cy4KKworICAgICAgICAqIGluc3BlY3Rvci9l
ZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxpbmUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1wYXN0ZS1pbi1jb21tZW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRl
ci1wYXN0ZS1pbi1jb21tZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9lZGl0
b3IvaGlnaGxpZ2h0ZXItdGVzdC5qczogQWRkZWQuCisgICAgICAgIChpbml0aWFsaXplX0hpZ2hs
aWdodGVyVGVzdHMuSW5zcGVjdG9yVGVzdC5kdW1wVGV4dE1vZGVsKToKKyAgICAgICAgKGluaXRp
YWxpemVfSGlnaGxpZ2h0ZXJUZXN0cyk6CisKIDIwMTEtMDItMjIgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KICAgICAgICAgCiAgICAgICAgIFVucmV2aWV3ZWQgdGVzdF9leHBl
Y3RhdGlvbi50eHQgdXBkYXRlLiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
ZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItbG9uZy1saW5lLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xODgxYWVmOWRlMGQ0N2NhNTZhZDhhZmZkNDRkNTEzMTdjYTM3MzFlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxp
bmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyBoaWdobGln
aHRlciBvbiBhIGxvbmcgbGluZS4KKworTGluZSBsZW5ndGg6IDExMjY0LCBudW1iZXIgb2YgY29t
bWVudHM6IDEwMjQKK0FsbCBjaGVja3MgY29tcGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWxvbmctbGluZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxpbmUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNTkwZDVmNjg3NDY3NTMxZWRiOGFjZGNkY2VhM2IyMTExOTAyNzBlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci1sb25nLWxp
bmUuaHRtbApAQCAtMCwwICsxLDU0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJoaWdobGlnaHRlci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNb2RlbCgpOworCisgICAgdmFyIGhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIodGV4dE1vZGVsLCBmdW5jdGlvbigpIHt9KTsKKyAgICBo
aWdobGlnaHRlci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOworICAgIGhpZ2hsaWdodGVy
LmhpZ2hsaWdodENodW5rTGltaXQgPSBOdW1iZXIuTUFYX1ZBTFVFOyAvLyBTeW5jaHJvbm91cy4K
KworICAgIHZhciBzcmMgPSAiLyogYXNkZiAqLyAiOworICAgIHZhciBjb21tZW50cyA9IDE7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgIHNyYyArPSBzcmM7Cisg
ICAgICAgIGNvbW1lbnRzICo9IDI7CisgICAgfQorICAgIHRleHRNb2RlbC5zZXRUZXh0KG51bGws
IHNyYyk7CisgICAgaGlnaGxpZ2h0ZXIucmVzZXQoKTsKKworICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJMaW5lIGxlbmd0aDogIiArIHNyYy5sZW5ndGggKyAiLCBudW1iZXIgb2YgY29tbWVu
dHM6ICIgKyBjb21tZW50cyk7CisKKyAgICBoaWdobGlnaHRlci5oaWdobGlnaHQodGV4dE1vZGVs
LmxpbmVzQ291bnQpOworCisgICAgdmFyIGhpZ2hsaWdodCA9IHRleHRNb2RlbC5nZXRBdHRyaWJ1
dGUoMCwgImhpZ2hsaWdodCIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3JjLmxlbmd0aDsg
KytpKSB7CisgICAgICAgIGlmIChoaWdobGlnaHRbaV0pIHsKKyAgICAgICAgICAgIGlmIChoaWdo
bGlnaHRbaV0ubGVuZ3RoICE9PSAxMCB8fCAoaSAlIDExKSkgeworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFUlJPUjogdW5leHBlY3RlZCBoaWdobGlnaHQgcmVzdWx0
OiBpPSIgKyBpICsgIiwgbGVuZ3RoPSIgKyBoaWdobGlnaHRbaV0ubGVuZ3RoKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tY29tbWVudHM7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNvbW1lbnRzKQorICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiRVJST1I6IHNvbWUgb2YgdGhlIGNvbW1lbnRzIHdlcmUgbm90IGhpZ2hsaWdo
dGVkOiAiICsgY29tbWVudHMpOworCisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFsbCBj
aGVja3MgY29tcGxldGVkLiIpOworICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Cit9
CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4K
K1RoaXMgdGVzdCBjaGVja3MgaGlnaGxpZ2h0ZXIgb24gYSBsb25nIGxpbmUuCis8L3A+CisKKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3Iv
aGlnaGxpZ2h0ZXItcGFzdGUtaW4tY29tbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA1ODFmNTc3MzM2ZDRlMjQ4YWMxYjI2MWI0ZDZlZjg1MzRhYzQzYTIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVy
LXBhc3RlLWluLWNvbW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKK1RoaXMgdGVz
dCBjaGVja3MgYWdhaW5zdCBhIGJ1ZyBpbiB0aGUgaGlnaGxpZ2h0ZXIgd2hlbiBwYXN0aW5nIHRl
eHQgaW5zaWRlIGEgY29tbWVudC4KKworCitBZnRlciBoaWdobGlnaHRpbmcgYWxsIGxpbmVzCisx
IDogLyogOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0zXQorMiA6ICA6CiszIDogMSA6IGphdmFzY3Jp
cHQtY29tbWVudFswLTFdCis0IDogMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis1IDogMyA6
IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis2IDogNCA6IGphdmFzY3JpcHQtY29tbWVudFswLTFd
Cis3IDogNSA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis4IDogIDoKKzkgOiAqLyA6IGphdmFz
Y3JpcHQtY29tbWVudFswLTJdCisKK0FmdGVyIHVwZGF0ZSBoaWdobGlnaHRzCisxIDogLyogOiBq
YXZhc2NyaXB0LWNvbW1lbnRbMC0zXQorMiA6ICA6CiszIDogMSA6IGphdmFzY3JpcHQtY29tbWVu
dFswLTFdCis0IDogMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis1IDogMyA6IGphdmFzY3Jp
cHQtY29tbWVudFswLTFdCis2IDogNCA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis3IDogNSA6
IGphdmFzY3JpcHQtY29tbWVudFswLTFdCis4IDogMSA6IGphdmFzY3JpcHQtY29tbWVudFswLTFd
Cis5IDogMiA6IGphdmFzY3JpcHQtY29tbWVudFswLTFdCisxMCA6IDMgOiBqYXZhc2NyaXB0LWNv
bW1lbnRbMC0xXQorMTEgOiA0IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzEyIDogNSA6IGph
dmFzY3JpcHQtY29tbWVudFswLTFdCisxMyA6ICA6CisxNCA6ICovIDogamF2YXNjcmlwdC1jb21t
ZW50WzAtMl0KKworQWZ0ZXIgaGlnaGxpZ2h0aW5nIHVwIHRvIHRoZSBlbmQKKzEgOiAvKiA6IGph
dmFzY3JpcHQtY29tbWVudFswLTNdCisyIDogIDoKKzMgOiAxIDogamF2YXNjcmlwdC1jb21tZW50
WzAtMV0KKzQgOiAyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzUgOiAzIDogamF2YXNjcmlw
dC1jb21tZW50WzAtMV0KKzYgOiA0IDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzcgOiA1IDog
amF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzggOiAxIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0K
KzkgOiAyIDogamF2YXNjcmlwdC1jb21tZW50WzAtMV0KKzEwIDogMyA6IGphdmFzY3JpcHQtY29t
bWVudFswLTFdCisxMSA6IDQgOiBqYXZhc2NyaXB0LWNvbW1lbnRbMC0xXQorMTIgOiA1IDogamF2
YXNjcmlwdC1jb21tZW50WzAtMV0KKzEzIDogIDoKKzE0IDogKi8gOiBqYXZhc2NyaXB0LWNvbW1l
bnRbMC0yXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hs
aWdodGVyLXBhc3RlLWluLWNvbW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0
b3IvaGlnaGxpZ2h0ZXItcGFzdGUtaW4tY29tbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0MzlmODZk
NTAzODQxZjMxMjJiNDlmZTA2YzZiOGRkNDEwMTgyM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLXBhc3RlLWluLWNvbW1lbnQuaHRt
bApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJoaWdobGlnaHRlci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIHZhciB0ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNb2RlbCgpOworCisgICAgdmFyIGhpZ2hsaWdodGVyID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9ySGlnaGxpZ2h0ZXIodGV4dE1vZGVsLCBmdW5jdGlvbigpIHt9KTsKKyAgICBoaWdobGln
aHRlci5taW1lVHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOworICAgIGhpZ2hsaWdodGVyLmhpZ2hs
aWdodENodW5rTGltaXQgPSBOdW1iZXIuTUFYX1ZBTFVFOyAvLyBTeW5jaHJvbm91cy4KKworICAg
IGZ1bmN0aW9uIGR1bXBUZXh0TW9kZWwobXNnKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJcbiIgKyBtc2cpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBUZXh0TW9kZWwo
dGV4dE1vZGVsKTsKKyAgICB9CisKKyAgICB2YXIgc3JjID0gIi8qXG5cbjFcbjJcbjNcbjRcbjVc
blxuKi8iOworICAgIHRleHRNb2RlbC5zZXRUZXh0KG51bGwsIHNyYyk7CisgICAgaGlnaGxpZ2h0
ZXIucmVzZXQoKTsKKworICAgIGhpZ2hsaWdodGVyLmhpZ2hsaWdodCh0ZXh0TW9kZWwubGluZXND
b3VudCk7CisgICAgZHVtcFRleHRNb2RlbCgiQWZ0ZXIgaGlnaGxpZ2h0aW5nIGFsbCBsaW5lcyIp
OworCisgICAgdmFyIHJhbmdlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoNywgMCwgNywg
MCk7CisgICAgdmFyIG5ld1JhbmdlID0gdGV4dE1vZGVsLnNldFRleHQocmFuZ2UsICIxXG4yXG4z
XG40XG41XG4iKTsKKyAgICBoaWdobGlnaHRlci51cGRhdGVIaWdobGlnaHQoNywgdGV4dE1vZGVs
LmxpbmVzQ291bnQpOworICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVyIHVwZGF0ZSBoaWdobGlnaHRz
Iik7CisKKyAgICBoaWdobGlnaHRlci5oaWdobGlnaHQodGV4dE1vZGVsLmxpbmVzQ291bnQpOwor
ICAgIGR1bXBUZXh0TW9kZWwoIkFmdGVyIGhpZ2hsaWdodGluZyB1cCB0byB0aGUgZW5kIik7CisK
KyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzwvaGVh
ZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUaGlzIHRlc3QgY2hlY2tzIGFn
YWluc3QgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
ODc2Ij5hIGJ1ZzwvYT4gaW4gdGhlIGhpZ2hsaWdodGVyIHdoZW4gcGFzdGluZyB0ZXh0IGluc2lk
ZSBhIGNvbW1lbnQuCis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItdGVzdC5qcyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lZGl0b3IvaGlnaGxpZ2h0ZXItdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDBkMWYx
MTAxNmQ0MjhhNGRkNDAxOGUzMjk3MWVhM2Q0Y2RlZWYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci9oaWdobGlnaHRlci10ZXN0LmpzCkBAIC0wLDAgKzEs
MjIgQEAKK2Z1bmN0aW9uIGluaXRpYWxpemVfSGlnaGxpZ2h0ZXJUZXN0cygpCit7CisKK0luc3Bl
Y3RvclRlc3QuZHVtcFRleHRNb2RlbCA9IGZ1bmN0aW9uKHRleHRNb2RlbCkKK3sKKyAgICB2YXIg
bGluZXMgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRNb2RlbC5saW5lc0NvdW50
OyArK2kpIHsKKyAgICAgICAgdmFyIGxpbmUgPSB0ZXh0TW9kZWwubGluZShpKTsKKyAgICAgICAg
dmFyIGhpZ2hsaWdodCA9IHRleHRNb2RlbC5nZXRBdHRyaWJ1dGUoaSwgImhpZ2hsaWdodCIpOwor
ICAgICAgICB2YXIgcmVzdWx0ID0gKGkgKyAxKSArICIgOiAiICsgbGluZSArICIgOiI7CisgICAg
ICAgIGlmIChoaWdobGlnaHQpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGlu
ZS5sZW5ndGg7ICsraikKKyAgICAgICAgICAgICAgICBpZiAoaGlnaGxpZ2h0W2pdKQorICAgICAg
ICAgICAgICAgICAgICByZXN1bHQgKz0gIiAiICsgaGlnaGxpZ2h0W2pdLnRva2VuVHlwZSArICJb
IiArIGogKyAiLSIgKyAoaiArIGhpZ2hsaWdodFtqXS5sZW5ndGgpICsgIl0iOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCArPSAiIG51bGwiOworICAgICAgICBsaW5lcy5wdXNo
KHJlc3VsdCk7CisgICAgfQorICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGxpbmVzLmpvaW4o
IlxuIikpOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQzMTg0Y2U1ZDgzZmRlMDlhNTFjYzM3OWEw
ZmM3NDgyMWFjN2I3ZWQuLjgzN2I4MDliMDQ1ZjdhN2FlY2VjYzQyYWUzOGVjZmUzMThlOTQ0YmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0wMi0yNCAgQW5kcmV5IEFkYWlraW4g
IDxhYW5kcmV5QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW1RleHQgZWRpdG9yXSBCdWcgaW4gdGhlIGhp
Z2hsaWdodGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NDg3NgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVyLWxv
bmctbGluZS5odG1sCisgICAgICAgICAgICAgICBpbnNwZWN0b3IvZWRpdG9yL2hpZ2hsaWdodGVy
LXBhc3RlLWluLWNvbW1lbnQuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9U
ZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ckhpZ2hsaWdodGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0
ZXIucHJvdG90eXBlLnNldCBoaWdobGlnaHRDaHVua0xpbWl0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90eXBlLnVwZGF0ZUhpZ2hsaWdodCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZS5faGln
aGxpZ2h0TGluZXMpOgorCiAyMDExLTAyLTIyICBTdGV2ZSBMYWNleSAgPHNqbEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRl
ci5qcwppbmRleCA5MWFlNDcxODZkYmQ3MmY3MDFlNzQzN2YwM2EwZDZhM2EyZDUxOWQzLi5lNDI5
YTU0ZDk1MDhiZTk2MGZmOGQyZGVjZjY3NDBiMWVlMmIyOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRl
ci5qcwpAQCAtMzQsNiArMzQsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVy
ID0gZnVuY3Rpb24odGV4dE1vZGVsLCBkYW1hZ2VDYWxsYmFjaykKICAgICB0aGlzLl90ZXh0TW9k
ZWwgPSB0ZXh0TW9kZWw7CiAgICAgdGhpcy5fdG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJj
ZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9odG1s
Iik7CiAgICAgdGhpcy5fZGFtYWdlQ2FsbGJhY2sgPSBkYW1hZ2VDYWxsYmFjazsKKyAgICB0aGlz
Ll9oaWdobGlnaHRDaHVua0xpbWl0ID0gMTAwMDsKICAgICB0aGlzLnJlc2V0KCk7CiB9CiAKQEAg
LTQ3LDYgKzQ4LDExIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90
eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAgIHNldCBoaWdobGlnaHRDaHVua0xpbWl0
KGhpZ2hsaWdodENodW5rTGltaXQpCisgICAgeworICAgICAgICB0aGlzLl9oaWdobGlnaHRDaHVu
a0xpbWl0ID0gaGlnaGxpZ2h0Q2h1bmtMaW1pdDsKKyAgICB9LAorCiAgICAgcmVzZXQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2xhc3RIaWdobGlnaHRlZExpbmUgPSAwOwpAQCAt
MTA0LDEwICsxMTAsMTIgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciBhdHRyaWJ1dGVzMSA9IHRoaXMuX3RleHRNb2RlbC5nZXRB
dHRyaWJ1dGUodGhpcy5fbGFzdEhpZ2hsaWdodGVkTGluZSAtIDEsICJoaWdobGlnaHQiKSB8fCB7
fTsKICAgICAgICAgdmFyIGF0dHJpYnV0ZXMyID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0dHJpYnV0
ZSh0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRMaW5lLCAiaGlnaGxpZ2h0IikgfHwge307CiAgICAgICAg
IGlmICh0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW4gPT09IDAgJiYgYXR0cmlidXRlczIucHJl
Q29uZGl0aW9uU3RyaW5naWZpZWQgJiYgYXR0cmlidXRlczEucG9zdENvbmRpdGlvblN0cmluZ2lm
aWVkID09PSBhdHRyaWJ1dGVzMi5wcmVDb25kaXRpb25TdHJpbmdpZmllZCkgewotICAgICAgICAg
ICAgLy8gSGlnaGxpZ2h0aW5nIGVuZGVkIGFoZWFkIG9mIHRpbWUuIFJlc3RvcmUgcHJldmlvdXNs
eSBzYXZlZCBzdGF0ZS4KLSAgICAgICAgICAgIHRoaXMuX2xhc3RIaWdobGlnaHRlZExpbmUgPSBz
YXZlZExhc3RIaWdobGlnaHRlZExpbmU7Ci0gICAgICAgICAgICB0aGlzLl9sYXN0SGlnaGxpZ2h0
ZWRDb2x1bW4gPSBzYXZlZExhc3RIaWdobGlnaHRlZENvbHVtbjsKLSAgICAgICAgICAgIHRoaXMu
X3Rva2VuaXplckNvbmRpdGlvblN0cmluZ2lmaWVkID0gc2F2ZWRUb2tlbml6ZXJDb25kaXRpb247
CisgICAgICAgICAgICAvLyBIaWdobGlnaHRpbmcgZW5kZWQgYWhlYWQgb2YgdGltZS4gUmVzdG9y
ZSBwcmV2aW91c2x5IHNhdmVkIHN0YXRlLCB1bmxlc3Mgd2UgaGF2ZSBkb25lIG1vcmUgdGhhbiBp
dCB3YXMgYmVmb3JlLgorICAgICAgICAgICAgaWYgKHNhdmVkTGFzdEhpZ2hsaWdodGVkTGluZSA+
PSB0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRMaW5lKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fbGFz
dEhpZ2hsaWdodGVkTGluZSA9IHNhdmVkTGFzdEhpZ2hsaWdodGVkTGluZTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW4gPSBzYXZlZExhc3RIaWdobGlnaHRlZENv
bHVtbjsKKyAgICAgICAgICAgICAgICB0aGlzLl90b2tlbml6ZXJDb25kaXRpb25TdHJpbmdpZmll
ZCA9IHNhdmVkVG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBJZiBmYWlsZWQg
dG8gdXBkYXRlIGhpZ2hsaWdodCBzeW5jaHJvbm91c2x5LCBpbnZhbGlkYXRlIGhpZ2hsaWdodCBk
YXRhIGZvciB0aGUgc3Vic2VxdWVudCBsaW5lcy4KQEAgLTE1OSwxMSArMTY3LDEyIEBAIFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAg
dmFyIGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKICAgICAgICAgICAg
IHRoaXMuX3Rva2VuaXplci5saW5lID0gbGluZTsKIAotICAgICAgICAgICAgdmFyIGF0dHJpYnV0
ZXMgPSB7fTsKLSAgICAgICAgICAgIHRoaXMuX3RleHRNb2RlbC5zZXRBdHRyaWJ1dGUobGluZU51
bWJlciwgImhpZ2hsaWdodCIsIGF0dHJpYnV0ZXMpOwotCi0gICAgICAgICAgICBpZiAodGhpcy5f
bGFzdEhpZ2hsaWdodGVkQ29sdW1uID09PSAwKQorICAgICAgICAgICAgaWYgKHRoaXMuX2xhc3RI
aWdobGlnaHRlZENvbHVtbiA9PT0gMCkgeworICAgICAgICAgICAgICAgIHZhciBhdHRyaWJ1dGVz
ID0ge307CiAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy5wcmVDb25kaXRpb25TdHJpbmdpZmll
ZCA9IEpTT04uc3RyaW5naWZ5KHRoaXMuX3Rva2VuaXplci5jb25kaXRpb24pOworICAgICAgICAg
ICAgICAgIHRoaXMuX3RleHRNb2RlbC5zZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImhpZ2hsaWdo
dCIsIGF0dHJpYnV0ZXMpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdmFy
IGF0dHJpYnV0ZXMgPSB0aGlzLl90ZXh0TW9kZWwuZ2V0QXR0cmlidXRlKGxpbmVOdW1iZXIsICJo
aWdobGlnaHQiKTsKIAogICAgICAgICAgICAgLy8gSGlnaGxpZ2h0IGxpbmUuCiAgICAgICAgICAg
ICBkbyB7CkBAIC0xNzIsNyArMTgxLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGln
aHRlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgaWYgKHRva2VuVHlwZSkKICAgICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlc1t0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW5dID0g
eyBsZW5ndGg6IG5ld0NvbHVtbiAtIHRoaXMuX2xhc3RIaWdobGlnaHRlZENvbHVtbiwgdG9rZW5U
eXBlOiB0b2tlblR5cGUgfTsKICAgICAgICAgICAgICAgICB0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRD
b2x1bW4gPSBuZXdDb2x1bW47Ci0gICAgICAgICAgICAgICAgaWYgKCsrdG9rZW5zQ291bnQgPiAx
MDAwKQorICAgICAgICAgICAgICAgIGlmICgrK3Rva2Vuc0NvdW50ID4gdGhpcy5faGlnaGxpZ2h0
Q2h1bmtMaW1pdCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9IHdo
aWxlICh0aGlzLl9sYXN0SGlnaGxpZ2h0ZWRDb2x1bW4gPCBsaW5lLmxlbmd0aCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>