<?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>34089</bug_id>
          
          <creation_ts>2010-01-25 08:34:47 -0800</creation_ts>
          <short_desc>Web Inspector overrides methods defined by the inspected application</short_desc>
          <delta_ts>2010-01-25 10:57:51 -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="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>pfeldman</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>184287</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-01-25 08:34:47 -0800</bug_when>
    <thetext>Web Inspector shouldn&apos;t override methods defined by the inspected application. Currently Web Inspector provides its own implementation for 
Object.type
Object.hasProperties
Object.describe
Object.className
String.prototype.escapeCharacters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184288</commentid>
    <comment_count>1</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-01-25 08:36:44 -0800</bug_when>
    <thetext>Just to be clear, we shoulnt use the page&apos;s version if it exists. We need to namespace our own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184289</commentid>
    <comment_count>2</comment_count>
      <attachid>47349</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-01-25 08:43:31 -0800</bug_when>
    <thetext>Created attachment 47349
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184290</commentid>
    <comment_count>3</comment_count>
      <attachid>47349</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-01-25 08:47:08 -0800</bug_when>
    <thetext>Comment on attachment 47349
patch

All the new &quot;InjectedScript.&quot; calls should be &quot;this.&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184291</commentid>
    <comment_count>4</comment_count>
      <attachid>47349</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-01-25 08:59:55 -0800</bug_when>
    <thetext>Comment on attachment 47349
patch

Please remove // throw ... comment.
Also, do not dump dom tree here - your test should be local to the problem.

Wrt InjectedScript. vs this., I am not sure. I&apos;d do that when we migrate to the prototype-based implementation of InjectedScript&apos;s functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184352</commentid>
    <comment_count>5</comment_count>
      <attachid>47356</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-01-25 10:34:49 -0800</bug_when>
    <thetext>Created attachment 47356
patch

- Removed commented code.
- Removed DOM tree dump.
- I&apos;d rather keep the new calls to InjectedScript methods with InjectedScript. prefix because they are &quot;static&quot; routines, i.e. they don&apos;t depend on the state of &quot;this&quot;. Also if we want to use &quot;this&quot; in InjectedScript methods I&apos;d convert it into prototype based implementation to be consistent with the rest if the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184377</commentid>
    <comment_count>6</comment_count>
      <attachid>47356</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-25 10:57:46 -0800</bug_when>
    <thetext>Comment on attachment 47356
patch

Clearing flags on attachment: 47356

Committed r53807: &lt;http://trac.webkit.org/changeset/53807&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184378</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-25 10:57:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47349</attachid>
            <date>2010-01-25 08:43:31 -0800</date>
            <delta_ts>2010-01-25 10:34:49 -0800</delta_ts>
            <desc>patch</desc>
            <filename>no-overrides.patch</filename>
            <type>text/plain</type>
            <size>11653</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZWJlMTM0Li4wNmYyZTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDEt
MjUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IFdlYiBJbnNwZWN0
b3IgZG9lc24ndCBjaGFuZ2UgbWV0aG9kcyBkZWNsYXJlZCBieSB0aGUgaW5zcGVjdGVkCisgICAg
ICAgIHBhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNDA4OQorCisgICAgICAgICogaW5zcGVjdG9yL2luc3BlY3RlZC1vYmplY3RzLW5vdC1vdmVy
cmlkZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvaW5zcGVjdGVk
LW9iamVjdHMtbm90LW92ZXJyaWRlbi5odG1sOiBBZGRlZC4KKwogMjAxMC0wMS0yNSAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1w
ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3RlZC1vYmplY3RzLW5vdC1vdmVycmlkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2luc3BlY3RlZC1vYmplY3RzLW5vdC1vdmVycmlkZW4tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkYmJlOGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaW5zcGVjdGVkLW9iamVjdHMtbm90LW92ZXJyaWRlbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCBvcGVuaW5nIGluc3BlY3Rv
ciBmcm9udC1lbmQgZG9lc24ndCBjaGFuZ2UgbWV0aG9kcyBkZWZpbmVkIGJ5IHRoZSBpbnNwZWN0
ZWQgYXBwbGljYXRpb24uCisKK215SW1wbCgpID0+IG15IHZhbHVlCitPYmplY3QudHlwZSA9PT0g
bXlJbXBsID0+IHRydWUKK09iamVjdC5oYXNQcm9wZXJ0aWVzID09PSBteUltcGwgPT4gdHJ1ZQor
T2JqZWN0LmRlc2NyaWJlID09PSBteUltcGwgPT4gdHJ1ZQorT2JqZWN0LmNsYXNzTmFtZSA9PT0g
bXlJbXBsID0+IHRydWUKK1N0cmluZy5wcm90b3R5cGUuZXNjYXBlQ2hhcmFjdGVycyA9PT0gbXlJ
bXBsID0+IHRydWUKK0pTT04uc3RyaW5naWZ5ID09PSBteUltcGwgPT4gdHJ1ZQorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0
dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+IDxodG1sPiA8aGVhZD4gPGJvZHkg
b25sb2FkPSJvbmxvYWQoKSI+IDxwPiA8cHJlIGlkPSJvdXRwdXRQcmUiPiA8ZGl2IGlkPSJvdXRw
dXQiPiA8L2JvZHk+IDwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2luc3BlY3RlZC1vYmplY3RzLW5vdC1vdmVycmlkZW4uaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0ZWQtb2JqZWN0cy1ub3Qtb3ZlcnJpZGVuLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZjYyYjA2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9pbnNwZWN0ZWQtb2JqZWN0cy1ub3Qtb3ZlcnJpZGVuLmh0bWwKQEAgLTAs
MCArMSw2NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEg
VHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJlbGVtZW50cy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
CitmdW5jdGlvbiBteUltcGwoKSB7CisvLyB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCBub3QgYmUg
Y2FsbGVkJyk7CisgIHJldHVybiAibXkgdmFsdWUiOworfQorCisvLyBQcm92aWRlIHNvbWUgY3Vz
dG9tIG1ldGhvZHMuCitPYmplY3QudHlwZSA9IG15SW1wbDsKK09iamVjdC5oYXNQcm9wZXJ0aWVz
ID0gbXlJbXBsOworT2JqZWN0LmRlc2NyaWJlID0gbXlJbXBsOworT2JqZWN0LmNsYXNzTmFtZSA9
IG15SW1wbDsKK1N0cmluZy5wcm90b3R5cGUuZXNjYXBlQ2hhcmFjdGVycyA9IG15SW1wbDsKK0pT
T04uc3RyaW5naWZ5ID0gbXlJbXBsOworCitmdW5jdGlvbiBkb2l0KCkKK3sKKyAgICBmdW5jdGlv
biBjYWxsYmFjayhyZXN1bHQpCisgICAgeworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBtZXRo
b2RzIGhhdmVuJ3QgY2hhbmdlZC4KKyAgICAgICAgb3V0cHV0KCJteUltcGwoKSA9PiAiICsgbXlJ
bXBsKCkpOworICAgICAgICBvdXRwdXQoIk9iamVjdC50eXBlID09PSBteUltcGwgPT4gIiArIChP
YmplY3QudHlwZSA9PT0gbXlJbXBsKSk7CisgICAgICAgIG91dHB1dCgiT2JqZWN0Lmhhc1Byb3Bl
cnRpZXMgPT09IG15SW1wbCA9PiAiICsgKE9iamVjdC5oYXNQcm9wZXJ0aWVzID09PSBteUltcGwp
KTsKKyAgICAgICAgb3V0cHV0KCJPYmplY3QuZGVzY3JpYmUgPT09IG15SW1wbCA9PiAiICsgKE9i
amVjdC5kZXNjcmliZSA9PT0gbXlJbXBsKSk7CisgICAgICAgIG91dHB1dCgiT2JqZWN0LmNsYXNz
TmFtZSA9PT0gbXlJbXBsID0+ICIgKyAoT2JqZWN0LmNsYXNzTmFtZSA9PT0gbXlJbXBsKSk7Cisg
ICAgICAgIG91dHB1dCgiU3RyaW5nLnByb3RvdHlwZS5lc2NhcGVDaGFyYWN0ZXJzID09PSBteUlt
cGwgPT4gIiArIChTdHJpbmcucHJvdG90eXBlLmVzY2FwZUNoYXJhY3RlcnMgPT09IG15SW1wbCkp
OworICAgICAgICBvdXRwdXQoIkpTT04uc3RyaW5naWZ5ID09PSBteUltcGwgPT4gIiArIChKU09O
LnN0cmluZ2lmeSA9PT0gbXlJbXBsKSk7CisKKyAgICAgICAgb3V0cHV0KHJlc3VsdC5yZXBsYWNl
KC9cdTIwMGIvZywgIiIpLnJlcGxhY2UoL1xuL2csICIiKS5yZXBsYWNlKC88L2csICJcbjwiKSk7
CisgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICB9CisgICAgZXZhbHVhdGVJbldlYkluc3BlY3Rv
cigiZnJvbnRlbmRfZHVtcEFsbEVsZW1lbnRzIiwgY2FsbGJhY2spOworfQorCisvLyBGcm9udGVu
ZCBmdW5jdGlvbnMuCisKK2Z1bmN0aW9uIGZyb250ZW5kX2R1bXBBbGxFbGVtZW50cyh0ZXN0Q29u
dHJvbGxlcikKK3sKKyAgICB0ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgLy8g
TmVlZCB0ZXN0IHRvIGJlIGFzeW5jIHRvIGV4cGFuZCB3aG9sZSB0aGUgdHJlZSBmaXJzdC4KKyAg
ICBmcm9udGVuZF9leHBhbmRET01TdWJ0cmVlKFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVu
dCk7CisgICAgdGVzdENvbnRyb2xsZXIucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhmdW5jdGlv
bigpIHsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZShXZWJJbnNwZWN0b3IucGFu
ZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLmVsZW1lbnQudGV4dENvbnRlbnQpOworICAgIH0pOwor
fQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Cis8cD4K
K1Rlc3RzIHRoYXQgb3BlbmluZyBpbnNwZWN0b3IgZnJvbnQtZW5kIGRvZXNuJ3QgY2hhbmdlIG1l
dGhvZHMgZGVmaW5lZCBieSB0aGUgaW5zcGVjdGVkIGFwcGxpY2F0aW9uLgorPC9wPgorCis8cHJl
IGlkPSJvdXRwdXRQcmUiPgorPC9wcmU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmNmMzYi4uNWY3
YTYyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wMS0yNSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlz
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnN0ZWFkIG9mIGFkZGluZyBpbnNwZWN0b3IgbWV0aG9kcyB0byB0aGUgaW5zcGVj
dGVkIGdsb2JhbCBvYmplY3RzCisgICAgICAgIHVzZSBwcml2YXRlIGltcGxlbWVudGF0aW9uIHZp
c2libGUgZnJvbSBpbnNwZWN0b3IgY29kZSBvbmx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwODkKKworICAgICAgICBUZXN0OiBpbnNwZWN0b3Iv
aW5zcGVjdGVkLW9iamVjdHMtbm90LW92ZXJyaWRlbi5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzOgorICAgICAgICAoaW5qZWN0ZWRTY3JpcHRD
b25zdHJ1Y3Rvcik6CisKIDIwMTAtMDEtMjUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCmluZGV4IGYxZWE1ZWQu
LjBiMzRiOWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3Rl
ZFNjcmlwdC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3Jp
cHQuanMKQEAgLTg1LDcgKzg1LDcgQEAgSW5qZWN0ZWRTY3JpcHQucmVzZXQoKTsKIAogSW5qZWN0
ZWRTY3JpcHQuZGlzcGF0Y2ggPSBmdW5jdGlvbihtZXRob2ROYW1lLCBhcmdzLCBjYWxsSWQpCiB7
Ci0gICAgdmFyIGFyZ3NBcnJheSA9IEpTT04ucGFyc2UoYXJncyk7CisgICAgdmFyIGFyZ3NBcnJh
eSA9IEluamVjdGVkU2NyaXB0LkpTT04ucGFyc2UoYXJncyk7CiAgICAgaWYgKGNhbGxJZCkKICAg
ICAgICAgYXJnc0FycmF5LnNwbGljZSgwLCAwLCBjYWxsSWQpOyAgLy8gTWV0aG9kcyB0aGF0IHJ1
biBhc3luY2hyb25vdXNseSBoYXZlIGEgY2FsbCBiYWNrIGlkIHBhcmFtZXRlci4KICAgICB2YXIg
cmVzdWx0ID0gSW5qZWN0ZWRTY3JpcHRbbWV0aG9kTmFtZV0uYXBwbHkoSW5qZWN0ZWRTY3JpcHQs
IGFyZ3NBcnJheSk7CkBAIC00NzYsNyArNDc2LDcgQEAgSW5qZWN0ZWRTY3JpcHQuZ2V0UHJvdG90
eXBlcyA9IGZ1bmN0aW9uKG5vZGVJZCkKIAogICAgIHZhciByZXN1bHQgPSBbXTsKICAgICBmb3Ig
KHZhciBwcm90b3R5cGUgPSBub2RlOyBwcm90b3R5cGU7IHByb3RvdHlwZSA9IHByb3RvdHlwZS5f
X3Byb3RvX18pIHsKLSAgICAgICAgdmFyIHRpdGxlID0gT2JqZWN0LmRlc2NyaWJlKHByb3RvdHlw
ZSwgdHJ1ZSk7CisgICAgICAgIHZhciB0aXRsZSA9IEluamVjdGVkU2NyaXB0Ll9kZXNjcmliZShw
cm90b3R5cGUsIHRydWUpOwogICAgICAgICBpZiAodGl0bGUubWF0Y2goL1Byb3RvdHlwZSQvKSkg
ewogICAgICAgICAgICAgdGl0bGUgPSB0aXRsZS5yZXBsYWNlKC9Qcm90b3R5cGUkLywgIiIpOwog
ICAgICAgICB9CkBAIC01NDQsNyArNTQ0LDcgQEAgSW5qZWN0ZWRTY3JpcHQuc2V0UHJvcGVydHlW
YWx1ZSA9IGZ1bmN0aW9uKG9iamVjdFByb3h5LCBwcm9wZXJ0eU5hbWUsIGV4cHJlc3Npb24KICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICB2YXIgcmVzdWx0ID0gSW5qZWN0ZWRTY3JpcHQuX3dpbmRvdygpLmV2YWwoIlwiIiAr
IGV4cHJlc3Npb24uZXNjYXBlQ2hhcmFjdGVycygiXCIiKSArICJcIiIpOworICAgICAgICAgICAg
dmFyIHJlc3VsdCA9IEluamVjdGVkU2NyaXB0Ll93aW5kb3coKS5ldmFsKCJcIiIgKyBJbmplY3Rl
ZFNjcmlwdC5fZXNjYXBlQ2hhcmFjdGVycyhleHByZXNzaW9uLCAiXCIiKSArICJcIiIpOwogICAg
ICAgICAgICAgb2JqZWN0W3Byb3BlcnR5TmFtZV0gPSByZXN1bHQ7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfSBjYXRjaChlKSB7CkBAIC02NjAsNyArNjYwLDcgQEAgSW5qZWN0
ZWRTY3JpcHQuX2V2YWx1YXRlT24gPSBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhw
cmVzc2lvbikKICAgICB2YXIgdmFsdWUgPSBldmFsRnVuY3Rpb24uY2FsbChvYmplY3QsIGV4cHJl
c3Npb24pOwogCiAgICAgLy8gV2hlbiBldmFsdWF0aW5nIG9uIGNhbGwgZnJhbWUgZXJyb3IgaXMg
bm90IHRocm93biwgYnV0IHJldHVybmVkIGFzIGEgdmFsdWUuCi0gICAgaWYgKE9iamVjdC50eXBl
KHZhbHVlKSA9PT0gImVycm9yIikKKyAgICBpZiAoSW5qZWN0ZWRTY3JpcHQuX3R5cGUodmFsdWUp
ID09PSAiZXJyb3IiKQogICAgICAgICB0aHJvdyB2YWx1ZS50b1N0cmluZygpOwogCiAgICAgcmV0
dXJuIHZhbHVlOwpAQCAtNzAwLDkgKzcwMCw5IEBAIEluamVjdGVkU2NyaXB0LnBlcmZvcm1TZWFy
Y2ggPSBmdW5jdGlvbih3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5KQogICAgIGlmICghL15bYS16QS1a
MC05XC1fOl0rJC8udGVzdChhdHRyaWJ1dGVOYW1lUXVlcnkpKQogICAgICAgICBhdHRyaWJ1dGVO
YW1lUXVlcnkgPSBudWxsOwogCi0gICAgY29uc3QgZXNjYXBlZFF1ZXJ5ID0gd2hpdGVzcGFjZVRy
aW1tZWRRdWVyeS5lc2NhcGVDaGFyYWN0ZXJzKCInIik7Ci0gICAgY29uc3QgZXNjYXBlZFRhZ05h
bWVRdWVyeSA9ICh0YWdOYW1lUXVlcnkgPyB0YWdOYW1lUXVlcnkuZXNjYXBlQ2hhcmFjdGVycygi
JyIpIDogbnVsbCk7Ci0gICAgY29uc3QgZXNjYXBlZFdoaXRlc3BhY2VUcmltbWVkUXVlcnkgPSB3
aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LmVzY2FwZUNoYXJhY3RlcnMoIiciKTsKKyAgICBjb25zdCBl
c2NhcGVkUXVlcnkgPSBJbmplY3RlZFNjcmlwdC5fZXNjYXBlQ2hhcmFjdGVycyh3aGl0ZXNwYWNl
VHJpbW1lZFF1ZXJ5LCAiJyIpOworICAgIGNvbnN0IGVzY2FwZWRUYWdOYW1lUXVlcnkgPSAodGFn
TmFtZVF1ZXJ5ID8gIEluamVjdGVkU2NyaXB0Ll9lc2NhcGVDaGFyYWN0ZXJzKHRhZ05hbWVRdWVy
eSwgIiciKSA6IG51bGwpOworICAgIGNvbnN0IGVzY2FwZWRXaGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5
ID0gSW5qZWN0ZWRTY3JpcHQuX2VzY2FwZUNoYXJhY3RlcnMod2hpdGVzcGFjZVRyaW1tZWRRdWVy
eSwgIiciKTsKICAgICBjb25zdCBzZWFyY2hSZXN1bHRzUHJvcGVydHkgPSBJbmplY3RlZFNjcmlw
dC5faW5jbHVkZWRJblNlYXJjaFJlc3VsdHNQcm9wZXJ0eU5hbWU7CiAKICAgICBmdW5jdGlvbiBh
ZGROb2Rlc1RvUmVzdWx0cyhub2RlcywgbGVuZ3RoLCBnZXRJdGVtKQpAQCAtOTY2LDEwICs5NjYs
MTAgQEAgSW5qZWN0ZWRTY3JpcHQuX2luc3BlY3RPYmplY3QgPSBmdW5jdGlvbihvKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpbnNwZWN0ZWRXaW5kb3cuY29uc29sZS5sb2cobyk7Ci0gICAgaWYg
KE9iamVjdC50eXBlKG8pID09PSAibm9kZSIpIHsKKyAgICBpZiAoSW5qZWN0ZWRTY3JpcHQuX3R5
cGUobykgPT09ICJub2RlIikgewogICAgICAgICBJbmplY3RlZFNjcmlwdEhvc3QucHVzaE5vZGVQ
YXRoVG9Gcm9udGVuZChvLCBmYWxzZSwgdHJ1ZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgc3dp
dGNoIChPYmplY3QuZGVzY3JpYmUobykpIHsKKyAgICAgICAgc3dpdGNoIChJbmplY3RlZFNjcmlw
dC5fZGVzY3JpYmUobykpIHsKICAgICAgICAgICAgIGNhc2UgIkRhdGFiYXNlIjoKICAgICAgICAg
ICAgICAgICBJbmplY3RlZFNjcmlwdEhvc3Quc2VsZWN0RGF0YWJhc2Uobyk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CkBAIC05ODIsNyArOTgyLDcgQEAgSW5qZWN0ZWRTY3JpcHQuX2luc3BlY3RP
YmplY3QgPSBmdW5jdGlvbihvKQogCiBJbmplY3RlZFNjcmlwdC5fY29weSA9IGZ1bmN0aW9uKG8p
CiB7Ci0gICAgaWYgKE9iamVjdC50eXBlKG8pID09PSAibm9kZSIpIHsKKyAgICBpZiAoSW5qZWN0
ZWRTY3JpcHQuX3R5cGUobykgPT09ICJub2RlIikgewogICAgICAgICB2YXIgbm9kZUlkID0gSW5q
ZWN0ZWRTY3JpcHRIb3N0LnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQobywgZmFsc2UsIGZhbHNlKTsK
ICAgICAgICAgSW5qZWN0ZWRTY3JpcHRIb3N0LmNvcHlOb2RlKG5vZGVJZCk7CiAgICAgfSBlbHNl
IHsKQEAgLTExMjIsNyArMTEyMiw3IEBAIEluamVjdGVkU2NyaXB0Ll9vYmplY3RGb3JJZCA9IGZ1
bmN0aW9uKG9iamVjdElkKQogSW5qZWN0ZWRTY3JpcHQucHVzaE5vZGVUb0Zyb250ZW5kID0gZnVu
Y3Rpb24ob2JqZWN0UHJveHkpCiB7CiAgICAgdmFyIG9iamVjdCA9IEluamVjdGVkU2NyaXB0Ll9y
ZXNvbHZlT2JqZWN0KG9iamVjdFByb3h5KTsKLSAgICBpZiAoIW9iamVjdCB8fCBPYmplY3QudHlw
ZShvYmplY3QpICE9PSAibm9kZSIpCisgICAgaWYgKCFvYmplY3QgfHwgSW5qZWN0ZWRTY3JpcHQu
X3R5cGUob2JqZWN0KSAhPT0gIm5vZGUiKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0
dXJuIEluamVjdGVkU2NyaXB0SG9zdC5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG9iamVjdCwgZmFs
c2UsIGZhbHNlKTsKIH0KQEAgLTExNDAsNyArMTE0MCw3IEBAIEluamVjdGVkU2NyaXB0LmNyZWF0
ZVByb3h5T2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RJZCwgYWJicmV2aWF0ZSkKICAg
ICB2YXIgcmVzdWx0ID0ge307CiAgICAgcmVzdWx0LmluamVjdGVkU2NyaXB0SWQgPSBpbmplY3Rl
ZFNjcmlwdElkOwogICAgIHJlc3VsdC5vYmplY3RJZCA9IG9iamVjdElkOwotICAgIHJlc3VsdC50
eXBlID0gT2JqZWN0LnR5cGUob2JqZWN0KTsKKyAgICByZXN1bHQudHlwZSA9IEluamVjdGVkU2Ny
aXB0Ll90eXBlKG9iamVjdCk7CiAKICAgICB2YXIgdHlwZSA9IHR5cGVvZiBvYmplY3Q7CiAgICAg
aWYgKCh0eXBlID09PSAib2JqZWN0IiAmJiBvYmplY3QgIT09IG51bGwpIHx8IHR5cGUgPT09ICJm
dW5jdGlvbiIpIHsKQEAgLTExNTAsNyArMTE1MCw3IEBAIEluamVjdGVkU2NyaXB0LmNyZWF0ZVBy
b3h5T2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RJZCwgYWJicmV2aWF0ZSkKICAgICAg
ICAgfQogICAgIH0KICAgICB0cnkgewotICAgICAgICByZXN1bHQuZGVzY3JpcHRpb24gPSBPYmpl
Y3QuZGVzY3JpYmUob2JqZWN0LCBhYmJyZXZpYXRlKTsKKyAgICAgICAgcmVzdWx0LmRlc2NyaXB0
aW9uID0gSW5qZWN0ZWRTY3JpcHQuX2Rlc2NyaWJlKG9iamVjdCwgYWJicmV2aWF0ZSk7CiAgICAg
fSBjYXRjaCAoZSkgewogICAgICAgICByZXN1bHQuZXJyb3JUZXh0ID0gZS50b1N0cmluZygpOwog
ICAgIH0KQEAgLTEyNDUsNyArMTI0NSw3IEBAIEluamVjdGVkU2NyaXB0Ll9pc0RlZmluZWQgPSBm
dW5jdGlvbihvYmplY3QpCiAgICAgcmV0dXJuIG9iamVjdCB8fCBvYmplY3QgaW5zdGFuY2VvZiBp
bnNwZWN0ZWRXaW5kb3cuSFRNTEFsbENvbGxlY3Rpb247CiB9CiAKLU9iamVjdC50eXBlID0gZnVu
Y3Rpb24ob2JqKQorSW5qZWN0ZWRTY3JpcHQuX3R5cGUgPSBmdW5jdGlvbihvYmopCiB7CiAgICAg
aWYgKG9iaiA9PT0gbnVsbCkKICAgICAgICAgcmV0dXJuICJudWxsIjsKQEAgLTEyODMsMTkgKzEy
ODMsMTAgQEAgT2JqZWN0LnR5cGUgPSBmdW5jdGlvbihvYmopCiAgICAgcmV0dXJuIHR5cGU7CiB9
CiAKLU9iamVjdC5oYXNQcm9wZXJ0aWVzID0gZnVuY3Rpb24ob2JqKQorSW5qZWN0ZWRTY3JpcHQu
X2Rlc2NyaWJlID0gZnVuY3Rpb24ob2JqLCBhYmJyZXZpYXRlZCkKIHsKLSAgICBpZiAodHlwZW9m
IG9iaiA9PT0gInVuZGVmaW5lZCIgfHwgdHlwZW9mIG9iaiA9PT0gIm51bGwiKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgZm9yICh2YXIgbmFtZSBpbiBvYmopCi0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotT2JqZWN0LmRlc2NyaWJlID0gZnVuY3Rpb24o
b2JqLCBhYmJyZXZpYXRlZCkKLXsKLSAgICB2YXIgdHlwZTEgPSBPYmplY3QudHlwZShvYmopOwot
ICAgIHZhciB0eXBlMiA9IE9iamVjdC5jbGFzc05hbWUob2JqKTsKKyAgICB2YXIgdHlwZTEgPSBJ
bmplY3RlZFNjcmlwdC5fdHlwZShvYmopOworICAgIHZhciB0eXBlMiA9IEluamVjdGVkU2NyaXB0
Ll9jbGFzc05hbWUob2JqKTsKIAogICAgIHN3aXRjaCAodHlwZTEpIHsKICAgICBjYXNlICJvYmpl
Y3QiOgpAQCAtMTMyMCwzOSArMTMxMSwyOSBAQCBPYmplY3QuZGVzY3JpYmUgPSBmdW5jdGlvbihv
YmosIGFiYnJldmlhdGVkKQogICAgIH0KIH0KIAotT2JqZWN0LmNsYXNzTmFtZSA9IGZ1bmN0aW9u
KG9iaikKK0luamVjdGVkU2NyaXB0Ll9jbGFzc05hbWUgPSBmdW5jdGlvbihvYmopCiB7CiAgICAg
cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopLnJlcGxhY2UoL15cW29i
amVjdCAoLiopXF0kL2ksICIkMSIpCiB9CiAKLS8vIEFsdGhvdWdoIEZ1bmN0aW9uLnByb3RvdHlw
ZS5iaW5kIGFuZCBTdHJpbmcucHJvdG90eXBlLmVzY2FwZUNoYXJhY3RlcnMgYXJlIGRlZmluZWQg
aW4gdXRpbGl0aWVzLmpzIHRoZXkgd2lsbCBzb29uIGJlY29tZQotLy8gdW5hdmFpbGFibGUgaW4g
dGhlIEluamVjdGVkU2NyaXB0IGNvbnRleHQuIFNvIHdlIGRlZmluZSB0aGVtIGhlcmUgZm9yIHRo
ZSBsb2NhbCB1c2UuCi0vLyBUT0RPOiByZW1vdmUgdGhpcyBjb21tZW50IG9uY2UgSW5qZWN0ZWRT
Y3JpcHQgcnVucyBpbiBhIHNlcGFyYXRlIGNvbnRleHQuCi1GdW5jdGlvbi5wcm90b3R5cGUuYmlu
ZCA9IGZ1bmN0aW9uKHRoaXNPYmplY3QpCi17Ci0gICAgdmFyIGZ1bmMgPSB0aGlzOwotICAgIHZh
ciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsKLSAgICBy
ZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiBmdW5jLmFwcGx5KHRoaXNPYmplY3QsIGFyZ3MuY29u
Y2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCkpKSB9OwotfQotCi1T
dHJpbmcucHJvdG90eXBlLmVzY2FwZUNoYXJhY3RlcnMgPSBmdW5jdGlvbihjaGFycykKK0luamVj
dGVkU2NyaXB0Ll9lc2NhcGVDaGFyYWN0ZXJzID0gZnVuY3Rpb24oc3RyLCBjaGFycykKIHsKICAg
ICB2YXIgZm91bmRDaGFyID0gZmFsc2U7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFycy5s
ZW5ndGg7ICsraSkgewotICAgICAgICBpZiAodGhpcy5pbmRleE9mKGNoYXJzLmNoYXJBdChpKSkg
IT09IC0xKSB7CisgICAgICAgIGlmIChzdHIuaW5kZXhPZihjaGFycy5jaGFyQXQoaSkpICE9PSAt
MSkgewogICAgICAgICAgICAgZm91bmRDaGFyID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCFmb3VuZENoYXIpCi0gICAgICAgIHJldHVybiB0
aGlzOworICAgICAgICByZXR1cm4gc3RyOwogCiAgICAgdmFyIHJlc3VsdCA9ICIiOwotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoY2hhcnMu
aW5kZXhPZih0aGlzLmNoYXJBdChpKSkgIT09IC0xKQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
c3RyLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmIChjaGFycy5pbmRleE9mKHN0ci5jaGFyQXQo
aSkpICE9PSAtMSkKICAgICAgICAgICAgIHJlc3VsdCArPSAiXFwiOwotICAgICAgICByZXN1bHQg
Kz0gdGhpcy5jaGFyQXQoaSk7CisgICAgICAgIHJlc3VsdCArPSBzdHIuY2hhckF0KGkpOwogICAg
IH0KIAogICAgIHJldHVybiByZXN1bHQ7Cg==
</data>
<flag name="review"
          id="29768"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47356</attachid>
            <date>2010-01-25 10:34:49 -0800</date>
            <delta_ts>2010-01-25 10:57:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>no-overrides2.patch</filename>
            <type>text/plain</type>
            <size>10841</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZWJlMTM0Li4wNmYyZTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDEt
MjUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IFdlYiBJbnNwZWN0
b3IgZG9lc24ndCBjaGFuZ2UgbWV0aG9kcyBkZWNsYXJlZCBieSB0aGUgaW5zcGVjdGVkCisgICAg
ICAgIHBhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNDA4OQorCisgICAgICAgICogaW5zcGVjdG9yL2luc3BlY3RlZC1vYmplY3RzLW5vdC1vdmVy
cmlkZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvaW5zcGVjdGVk
LW9iamVjdHMtbm90LW92ZXJyaWRlbi5odG1sOiBBZGRlZC4KKwogMjAxMC0wMS0yNSAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1w
ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3RlZC1vYmplY3RzLW5vdC1vdmVycmlkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2luc3BlY3RlZC1vYmplY3RzLW5vdC1vdmVycmlkZW4tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhY2VkY2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaW5zcGVjdGVkLW9iamVjdHMtbm90LW92ZXJyaWRlbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBvcGVuaW5nIGluc3BlY3Rv
ciBmcm9udC1lbmQgZG9lc24ndCBjaGFuZ2UgbWV0aG9kcyBkZWZpbmVkIGJ5IHRoZSBpbnNwZWN0
ZWQgYXBwbGljYXRpb24uCisKK215SW1wbCgpID0+IG15IHZhbHVlCitPYmplY3QudHlwZSA9PT0g
bXlJbXBsID0+IHRydWUKK09iamVjdC5oYXNQcm9wZXJ0aWVzID09PSBteUltcGwgPT4gdHJ1ZQor
T2JqZWN0LmRlc2NyaWJlID09PSBteUltcGwgPT4gdHJ1ZQorT2JqZWN0LmNsYXNzTmFtZSA9PT0g
bXlJbXBsID0+IHRydWUKK1N0cmluZy5wcm90b3R5cGUuZXNjYXBlQ2hhcmFjdGVycyA9PT0gbXlJ
bXBsID0+IHRydWUKK0pTT04uc3RyaW5naWZ5ID09PSBteUltcGwgPT4gdHJ1ZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvaW5zcGVjdGVkLW9iamVjdHMtbm90LW92ZXJyaWRl
bi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2luc3BlY3RlZC1vYmplY3RzLW5vdC1vdmVy
cmlkZW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWQxMjk0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2luc3BlY3RlZC1vYmplY3Rz
LW5vdC1vdmVycmlkZW4uaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53
My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gbXlJbXBs
KCkgeworICByZXR1cm4gIm15IHZhbHVlIjsKK30KKworLy8gUHJvdmlkZSBzb21lIGN1c3RvbSBt
ZXRob2RzLgorT2JqZWN0LnR5cGUgPSBteUltcGw7CitPYmplY3QuaGFzUHJvcGVydGllcyA9IG15
SW1wbDsKK09iamVjdC5kZXNjcmliZSA9IG15SW1wbDsKK09iamVjdC5jbGFzc05hbWUgPSBteUlt
cGw7CitTdHJpbmcucHJvdG90eXBlLmVzY2FwZUNoYXJhY3RlcnMgPSBteUltcGw7CitKU09OLnN0
cmluZ2lmeSA9IG15SW1wbDsKKworZnVuY3Rpb24gZG9pdCgpCit7CisgICAgZnVuY3Rpb24gY2Fs
bGJhY2socmVzdWx0KQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgbWV0aG9kcyBo
YXZlbid0IGNoYW5nZWQuCisgICAgICAgIG91dHB1dCgibXlJbXBsKCkgPT4gIiArIG15SW1wbCgp
KTsKKyAgICAgICAgb3V0cHV0KCJPYmplY3QudHlwZSA9PT0gbXlJbXBsID0+ICIgKyAoT2JqZWN0
LnR5cGUgPT09IG15SW1wbCkpOworICAgICAgICBvdXRwdXQoIk9iamVjdC5oYXNQcm9wZXJ0aWVz
ID09PSBteUltcGwgPT4gIiArIChPYmplY3QuaGFzUHJvcGVydGllcyA9PT0gbXlJbXBsKSk7Cisg
ICAgICAgIG91dHB1dCgiT2JqZWN0LmRlc2NyaWJlID09PSBteUltcGwgPT4gIiArIChPYmplY3Qu
ZGVzY3JpYmUgPT09IG15SW1wbCkpOworICAgICAgICBvdXRwdXQoIk9iamVjdC5jbGFzc05hbWUg
PT09IG15SW1wbCA9PiAiICsgKE9iamVjdC5jbGFzc05hbWUgPT09IG15SW1wbCkpOworICAgICAg
ICBvdXRwdXQoIlN0cmluZy5wcm90b3R5cGUuZXNjYXBlQ2hhcmFjdGVycyA9PT0gbXlJbXBsID0+
ICIgKyAoU3RyaW5nLnByb3RvdHlwZS5lc2NhcGVDaGFyYWN0ZXJzID09PSBteUltcGwpKTsKKyAg
ICAgICAgb3V0cHV0KCJKU09OLnN0cmluZ2lmeSA9PT0gbXlJbXBsID0+ICIgKyAoSlNPTi5zdHJp
bmdpZnkgPT09IG15SW1wbCkpOworCisgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICB9CisgICAg
ZXZhbHVhdGVJbldlYkluc3BlY3RvcigidHJ1ZSIsIGNhbGxiYWNrKTsKK30KKworPC9zY3JpcHQ+
Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgorPHA+CitUZXN0cyB0aGF0IG9w
ZW5pbmcgaW5zcGVjdG9yIGZyb250LWVuZCBkb2Vzbid0IGNoYW5nZSBtZXRob2RzIGRlZmluZWQg
YnkgdGhlIGluc3BlY3RlZCBhcHBsaWNhdGlvbi4KKzwvcD4KKworPHByZSBpZD0ib3V0cHV0UHJl
Ij4KKzwvcHJlPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlZjZjM2IuLjVmN2E2MjcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMDEtMjUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVh
ZCBvZiBhZGRpbmcgaW5zcGVjdG9yIG1ldGhvZHMgdG8gdGhlIGluc3BlY3RlZCBnbG9iYWwgb2Jq
ZWN0cworICAgICAgICB1c2UgcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbiB2aXNpYmxlIGZyb20gaW5z
cGVjdG9yIGNvZGUgb25seS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM0MDg5CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2luc3BlY3RlZC1vYmpl
Y3RzLW5vdC1vdmVycmlkZW4uaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9J
bmplY3RlZFNjcmlwdC5qczoKKyAgICAgICAgKGluamVjdGVkU2NyaXB0Q29uc3RydWN0b3IpOgor
CiAyMDEwLTAxLTI1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwppbmRleCBmMWVhNWVkLi4wYjM0YjljIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCkBAIC04NSw3
ICs4NSw3IEBAIEluamVjdGVkU2NyaXB0LnJlc2V0KCk7CiAKIEluamVjdGVkU2NyaXB0LmRpc3Bh
dGNoID0gZnVuY3Rpb24obWV0aG9kTmFtZSwgYXJncywgY2FsbElkKQogewotICAgIHZhciBhcmdz
QXJyYXkgPSBKU09OLnBhcnNlKGFyZ3MpOworICAgIHZhciBhcmdzQXJyYXkgPSBJbmplY3RlZFNj
cmlwdC5KU09OLnBhcnNlKGFyZ3MpOwogICAgIGlmIChjYWxsSWQpCiAgICAgICAgIGFyZ3NBcnJh
eS5zcGxpY2UoMCwgMCwgY2FsbElkKTsgIC8vIE1ldGhvZHMgdGhhdCBydW4gYXN5bmNocm9ub3Vz
bHkgaGF2ZSBhIGNhbGwgYmFjayBpZCBwYXJhbWV0ZXIuCiAgICAgdmFyIHJlc3VsdCA9IEluamVj
dGVkU2NyaXB0W21ldGhvZE5hbWVdLmFwcGx5KEluamVjdGVkU2NyaXB0LCBhcmdzQXJyYXkpOwpA
QCAtNDc2LDcgKzQ3Niw3IEBAIEluamVjdGVkU2NyaXB0LmdldFByb3RvdHlwZXMgPSBmdW5jdGlv
bihub2RlSWQpCiAKICAgICB2YXIgcmVzdWx0ID0gW107CiAgICAgZm9yICh2YXIgcHJvdG90eXBl
ID0gbm9kZTsgcHJvdG90eXBlOyBwcm90b3R5cGUgPSBwcm90b3R5cGUuX19wcm90b19fKSB7Ci0g
ICAgICAgIHZhciB0aXRsZSA9IE9iamVjdC5kZXNjcmliZShwcm90b3R5cGUsIHRydWUpOworICAg
ICAgICB2YXIgdGl0bGUgPSBJbmplY3RlZFNjcmlwdC5fZGVzY3JpYmUocHJvdG90eXBlLCB0cnVl
KTsKICAgICAgICAgaWYgKHRpdGxlLm1hdGNoKC9Qcm90b3R5cGUkLykpIHsKICAgICAgICAgICAg
IHRpdGxlID0gdGl0bGUucmVwbGFjZSgvUHJvdG90eXBlJC8sICIiKTsKICAgICAgICAgfQpAQCAt
NTQ0LDcgKzU0NCw3IEBAIEluamVjdGVkU2NyaXB0LnNldFByb3BlcnR5VmFsdWUgPSBmdW5jdGlv
bihvYmplY3RQcm94eSwgcHJvcGVydHlOYW1lLCBleHByZXNzaW9uCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0gY2F0Y2goZSkgewogICAgICAgICB0cnkgewotICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IEluamVjdGVkU2NyaXB0Ll93aW5kb3coKS5ldmFsKCJcIiIgKyBleHByZXNzaW9uLmVz
Y2FwZUNoYXJhY3RlcnMoIlwiIikgKyAiXCIiKTsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBJ
bmplY3RlZFNjcmlwdC5fd2luZG93KCkuZXZhbCgiXCIiICsgSW5qZWN0ZWRTY3JpcHQuX2VzY2Fw
ZUNoYXJhY3RlcnMoZXhwcmVzc2lvbiwgIlwiIikgKyAiXCIiKTsKICAgICAgICAgICAgIG9iamVj
dFtwcm9wZXJ0eU5hbWVdID0gcmVzdWx0OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0gY2F0Y2goZSkgewpAQCAtNjYwLDcgKzY2MCw3IEBAIEluamVjdGVkU2NyaXB0Ll9ldmFs
dWF0ZU9uID0gZnVuY3Rpb24oZXZhbEZ1bmN0aW9uLCBvYmplY3QsIGV4cHJlc3Npb24pCiAgICAg
dmFyIHZhbHVlID0gZXZhbEZ1bmN0aW9uLmNhbGwob2JqZWN0LCBleHByZXNzaW9uKTsKIAogICAg
IC8vIFdoZW4gZXZhbHVhdGluZyBvbiBjYWxsIGZyYW1lIGVycm9yIGlzIG5vdCB0aHJvd24sIGJ1
dCByZXR1cm5lZCBhcyBhIHZhbHVlLgotICAgIGlmIChPYmplY3QudHlwZSh2YWx1ZSkgPT09ICJl
cnJvciIpCisgICAgaWYgKEluamVjdGVkU2NyaXB0Ll90eXBlKHZhbHVlKSA9PT0gImVycm9yIikK
ICAgICAgICAgdGhyb3cgdmFsdWUudG9TdHJpbmcoKTsKIAogICAgIHJldHVybiB2YWx1ZTsKQEAg
LTcwMCw5ICs3MDAsOSBAQCBJbmplY3RlZFNjcmlwdC5wZXJmb3JtU2VhcmNoID0gZnVuY3Rpb24o
d2hpdGVzcGFjZVRyaW1tZWRRdWVyeSkKICAgICBpZiAoIS9eW2EtekEtWjAtOVwtXzpdKyQvLnRl
c3QoYXR0cmlidXRlTmFtZVF1ZXJ5KSkKICAgICAgICAgYXR0cmlidXRlTmFtZVF1ZXJ5ID0gbnVs
bDsKIAotICAgIGNvbnN0IGVzY2FwZWRRdWVyeSA9IHdoaXRlc3BhY2VUcmltbWVkUXVlcnkuZXNj
YXBlQ2hhcmFjdGVycygiJyIpOwotICAgIGNvbnN0IGVzY2FwZWRUYWdOYW1lUXVlcnkgPSAodGFn
TmFtZVF1ZXJ5ID8gdGFnTmFtZVF1ZXJ5LmVzY2FwZUNoYXJhY3RlcnMoIiciKSA6IG51bGwpOwot
ICAgIGNvbnN0IGVzY2FwZWRXaGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5ID0gd2hpdGVzcGFjZVRyaW1t
ZWRRdWVyeS5lc2NhcGVDaGFyYWN0ZXJzKCInIik7CisgICAgY29uc3QgZXNjYXBlZFF1ZXJ5ID0g
SW5qZWN0ZWRTY3JpcHQuX2VzY2FwZUNoYXJhY3RlcnMod2hpdGVzcGFjZVRyaW1tZWRRdWVyeSwg
IiciKTsKKyAgICBjb25zdCBlc2NhcGVkVGFnTmFtZVF1ZXJ5ID0gKHRhZ05hbWVRdWVyeSA/ICBJ
bmplY3RlZFNjcmlwdC5fZXNjYXBlQ2hhcmFjdGVycyh0YWdOYW1lUXVlcnksICInIikgOiBudWxs
KTsKKyAgICBjb25zdCBlc2NhcGVkV2hpdGVzcGFjZVRyaW1tZWRRdWVyeSA9IEluamVjdGVkU2Ny
aXB0Ll9lc2NhcGVDaGFyYWN0ZXJzKHdoaXRlc3BhY2VUcmltbWVkUXVlcnksICInIik7CiAgICAg
Y29uc3Qgc2VhcmNoUmVzdWx0c1Byb3BlcnR5ID0gSW5qZWN0ZWRTY3JpcHQuX2luY2x1ZGVkSW5T
ZWFyY2hSZXN1bHRzUHJvcGVydHlOYW1lOwogCiAgICAgZnVuY3Rpb24gYWRkTm9kZXNUb1Jlc3Vs
dHMobm9kZXMsIGxlbmd0aCwgZ2V0SXRlbSkKQEAgLTk2NiwxMCArOTY2LDEwIEBAIEluamVjdGVk
U2NyaXB0Ll9pbnNwZWN0T2JqZWN0ID0gZnVuY3Rpb24obykKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaW5zcGVjdGVkV2luZG93LmNvbnNvbGUubG9nKG8pOwotICAgIGlmIChPYmplY3QudHlwZShv
KSA9PT0gIm5vZGUiKSB7CisgICAgaWYgKEluamVjdGVkU2NyaXB0Ll90eXBlKG8pID09PSAibm9k
ZSIpIHsKICAgICAgICAgSW5qZWN0ZWRTY3JpcHRIb3N0LnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQo
bywgZmFsc2UsIHRydWUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHN3aXRjaCAoT2JqZWN0LmRl
c2NyaWJlKG8pKSB7CisgICAgICAgIHN3aXRjaCAoSW5qZWN0ZWRTY3JpcHQuX2Rlc2NyaWJlKG8p
KSB7CiAgICAgICAgICAgICBjYXNlICJEYXRhYmFzZSI6CiAgICAgICAgICAgICAgICAgSW5qZWN0
ZWRTY3JpcHRIb3N0LnNlbGVjdERhdGFiYXNlKG8pOwogICAgICAgICAgICAgICAgIGJyZWFrOwpA
QCAtOTgyLDcgKzk4Miw3IEBAIEluamVjdGVkU2NyaXB0Ll9pbnNwZWN0T2JqZWN0ID0gZnVuY3Rp
b24obykKIAogSW5qZWN0ZWRTY3JpcHQuX2NvcHkgPSBmdW5jdGlvbihvKQogewotICAgIGlmIChP
YmplY3QudHlwZShvKSA9PT0gIm5vZGUiKSB7CisgICAgaWYgKEluamVjdGVkU2NyaXB0Ll90eXBl
KG8pID09PSAibm9kZSIpIHsKICAgICAgICAgdmFyIG5vZGVJZCA9IEluamVjdGVkU2NyaXB0SG9z
dC5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG8sIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIEluamVj
dGVkU2NyaXB0SG9zdC5jb3B5Tm9kZShub2RlSWQpOwogICAgIH0gZWxzZSB7CkBAIC0xMTIyLDcg
KzExMjIsNyBAQCBJbmplY3RlZFNjcmlwdC5fb2JqZWN0Rm9ySWQgPSBmdW5jdGlvbihvYmplY3RJ
ZCkKIEluamVjdGVkU2NyaXB0LnB1c2hOb2RlVG9Gcm9udGVuZCA9IGZ1bmN0aW9uKG9iamVjdFBy
b3h5KQogewogICAgIHZhciBvYmplY3QgPSBJbmplY3RlZFNjcmlwdC5fcmVzb2x2ZU9iamVjdChv
YmplY3RQcm94eSk7Ci0gICAgaWYgKCFvYmplY3QgfHwgT2JqZWN0LnR5cGUob2JqZWN0KSAhPT0g
Im5vZGUiKQorICAgIGlmICghb2JqZWN0IHx8IEluamVjdGVkU2NyaXB0Ll90eXBlKG9iamVjdCkg
IT09ICJub2RlIikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBJbmplY3RlZFNj
cmlwdEhvc3QucHVzaE5vZGVQYXRoVG9Gcm9udGVuZChvYmplY3QsIGZhbHNlLCBmYWxzZSk7CiB9
CkBAIC0xMTQwLDcgKzExNDAsNyBAQCBJbmplY3RlZFNjcmlwdC5jcmVhdGVQcm94eU9iamVjdCA9
IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0SWQsIGFiYnJldmlhdGUpCiAgICAgdmFyIHJlc3VsdCA9
IHt9OwogICAgIHJlc3VsdC5pbmplY3RlZFNjcmlwdElkID0gaW5qZWN0ZWRTY3JpcHRJZDsKICAg
ICByZXN1bHQub2JqZWN0SWQgPSBvYmplY3RJZDsKLSAgICByZXN1bHQudHlwZSA9IE9iamVjdC50
eXBlKG9iamVjdCk7CisgICAgcmVzdWx0LnR5cGUgPSBJbmplY3RlZFNjcmlwdC5fdHlwZShvYmpl
Y3QpOwogCiAgICAgdmFyIHR5cGUgPSB0eXBlb2Ygb2JqZWN0OwogICAgIGlmICgodHlwZSA9PT0g
Im9iamVjdCIgJiYgb2JqZWN0ICE9PSBudWxsKSB8fCB0eXBlID09PSAiZnVuY3Rpb24iKSB7CkBA
IC0xMTUwLDcgKzExNTAsNyBAQCBJbmplY3RlZFNjcmlwdC5jcmVhdGVQcm94eU9iamVjdCA9IGZ1
bmN0aW9uKG9iamVjdCwgb2JqZWN0SWQsIGFiYnJldmlhdGUpCiAgICAgICAgIH0KICAgICB9CiAg
ICAgdHJ5IHsKLSAgICAgICAgcmVzdWx0LmRlc2NyaXB0aW9uID0gT2JqZWN0LmRlc2NyaWJlKG9i
amVjdCwgYWJicmV2aWF0ZSk7CisgICAgICAgIHJlc3VsdC5kZXNjcmlwdGlvbiA9IEluamVjdGVk
U2NyaXB0Ll9kZXNjcmliZShvYmplY3QsIGFiYnJldmlhdGUpOwogICAgIH0gY2F0Y2ggKGUpIHsK
ICAgICAgICAgcmVzdWx0LmVycm9yVGV4dCA9IGUudG9TdHJpbmcoKTsKICAgICB9CkBAIC0xMjQ1
LDcgKzEyNDUsNyBAQCBJbmplY3RlZFNjcmlwdC5faXNEZWZpbmVkID0gZnVuY3Rpb24ob2JqZWN0
KQogICAgIHJldHVybiBvYmplY3QgfHwgb2JqZWN0IGluc3RhbmNlb2YgaW5zcGVjdGVkV2luZG93
LkhUTUxBbGxDb2xsZWN0aW9uOwogfQogCi1PYmplY3QudHlwZSA9IGZ1bmN0aW9uKG9iaikKK0lu
amVjdGVkU2NyaXB0Ll90eXBlID0gZnVuY3Rpb24ob2JqKQogewogICAgIGlmIChvYmogPT09IG51
bGwpCiAgICAgICAgIHJldHVybiAibnVsbCI7CkBAIC0xMjgzLDE5ICsxMjgzLDEwIEBAIE9iamVj
dC50eXBlID0gZnVuY3Rpb24ob2JqKQogICAgIHJldHVybiB0eXBlOwogfQogCi1PYmplY3QuaGFz
UHJvcGVydGllcyA9IGZ1bmN0aW9uKG9iaikKK0luamVjdGVkU2NyaXB0Ll9kZXNjcmliZSA9IGZ1
bmN0aW9uKG9iaiwgYWJicmV2aWF0ZWQpCiB7Ci0gICAgaWYgKHR5cGVvZiBvYmogPT09ICJ1bmRl
ZmluZWQiIHx8IHR5cGVvZiBvYmogPT09ICJudWxsIikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGZvciAodmFyIG5hbWUgaW4gb2JqKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLU9iamVjdC5kZXNjcmliZSA9IGZ1bmN0aW9uKG9iaiwgYWJicmV2aWF0
ZWQpCi17Ci0gICAgdmFyIHR5cGUxID0gT2JqZWN0LnR5cGUob2JqKTsKLSAgICB2YXIgdHlwZTIg
PSBPYmplY3QuY2xhc3NOYW1lKG9iaik7CisgICAgdmFyIHR5cGUxID0gSW5qZWN0ZWRTY3JpcHQu
X3R5cGUob2JqKTsKKyAgICB2YXIgdHlwZTIgPSBJbmplY3RlZFNjcmlwdC5fY2xhc3NOYW1lKG9i
aik7CiAKICAgICBzd2l0Y2ggKHR5cGUxKSB7CiAgICAgY2FzZSAib2JqZWN0IjoKQEAgLTEzMjAs
MzkgKzEzMTEsMjkgQEAgT2JqZWN0LmRlc2NyaWJlID0gZnVuY3Rpb24ob2JqLCBhYmJyZXZpYXRl
ZCkKICAgICB9CiB9CiAKLU9iamVjdC5jbGFzc05hbWUgPSBmdW5jdGlvbihvYmopCitJbmplY3Rl
ZFNjcmlwdC5fY2xhc3NOYW1lID0gZnVuY3Rpb24ob2JqKQogewogICAgIHJldHVybiBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS5yZXBsYWNlKC9eXFtvYmplY3QgKC4qKVxdJC9p
LCAiJDEiKQogfQogCi0vLyBBbHRob3VnaCBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCBhbmQgU3Ry
aW5nLnByb3RvdHlwZS5lc2NhcGVDaGFyYWN0ZXJzIGFyZSBkZWZpbmVkIGluIHV0aWxpdGllcy5q
cyB0aGV5IHdpbGwgc29vbiBiZWNvbWUKLS8vIHVuYXZhaWxhYmxlIGluIHRoZSBJbmplY3RlZFNj
cmlwdCBjb250ZXh0LiBTbyB3ZSBkZWZpbmUgdGhlbSBoZXJlIGZvciB0aGUgbG9jYWwgdXNlLgot
Ly8gVE9ETzogcmVtb3ZlIHRoaXMgY29tbWVudCBvbmNlIEluamVjdGVkU2NyaXB0IHJ1bnMgaW4g
YSBzZXBhcmF0ZSBjb250ZXh0LgotRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgPSBmdW5jdGlvbih0
aGlzT2JqZWN0KQotewotICAgIHZhciBmdW5jID0gdGhpczsKLSAgICB2YXIgYXJncyA9IEFycmF5
LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7Ci0gICAgcmV0dXJuIGZ1bmN0aW9u
KCkgeyByZXR1cm4gZnVuYy5hcHBseSh0aGlzT2JqZWN0LCBhcmdzLmNvbmNhdChBcnJheS5wcm90
b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDApKSkgfTsKLX0KLQotU3RyaW5nLnByb3RvdHlw
ZS5lc2NhcGVDaGFyYWN0ZXJzID0gZnVuY3Rpb24oY2hhcnMpCitJbmplY3RlZFNjcmlwdC5fZXNj
YXBlQ2hhcmFjdGVycyA9IGZ1bmN0aW9uKHN0ciwgY2hhcnMpCiB7CiAgICAgdmFyIGZvdW5kQ2hh
ciA9IGZhbHNlOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgaWYgKHRoaXMuaW5kZXhPZihjaGFycy5jaGFyQXQoaSkpICE9PSAtMSkgeworICAg
ICAgICBpZiAoc3RyLmluZGV4T2YoY2hhcnMuY2hhckF0KGkpKSAhPT0gLTEpIHsKICAgICAgICAg
ICAgIGZvdW5kQ2hhciA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
IH0KIAogICAgIGlmICghZm91bmRDaGFyKQotICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAg
cmV0dXJuIHN0cjsKIAogICAgIHZhciByZXN1bHQgPSAiIjsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHRoaXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYgKGNoYXJzLmluZGV4T2YodGhpcy5j
aGFyQXQoaSkpICE9PSAtMSkKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsr
aSkgeworICAgICAgICBpZiAoY2hhcnMuaW5kZXhPZihzdHIuY2hhckF0KGkpKSAhPT0gLTEpCiAg
ICAgICAgICAgICByZXN1bHQgKz0gIlxcIjsKLSAgICAgICAgcmVzdWx0ICs9IHRoaXMuY2hhckF0
KGkpOworICAgICAgICByZXN1bHQgKz0gc3RyLmNoYXJBdChpKTsKICAgICB9CiAKICAgICByZXR1
cm4gcmVzdWx0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>