<?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>80024</bug_id>
          
          <creation_ts>2012-03-01 06:38:59 -0800</creation_ts>
          <short_desc>Web Inspector: [Styles] [CRASH] Handle rule addition and inline style editing failure due to Content-Security-Policy in the page</short_desc>
          <delta_ts>2012-03-05 02:45:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>568629</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-01 06:38:59 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568634</commentid>
    <comment_count>1</comment_count>
      <attachid>129699</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-01 06:56:50 -0800</bug_when>
    <thetext>Created attachment 129699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568642</commentid>
    <comment_count>2</comment_count>
      <attachid>129699</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-01 07:07:45 -0800</bug_when>
    <thetext>Comment on attachment 129699
Patch

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

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:905
&gt; +    // BUG80024: We may have failed to add an actual StyleSheet into the document due to CSP getting in our way.

CSP should not block native code from adding rule. Or you should build a way to override CSP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568676</commentid>
    <comment_count>3</comment_count>
      <attachid>129707</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-01 08:23:12 -0800</bug_when>
    <thetext>Created attachment 129707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568815</commentid>
    <comment_count>4</comment_count>
      <attachid>129707</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-01 12:21:30 -0800</bug_when>
    <thetext>Comment on attachment 129707
Patch

Attachment 129707 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11770571

New failing tests:
http/tests/security/contentSecurityPolicy/inline-style-blocked.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569418</commentid>
    <comment_count>5</comment_count>
      <attachid>129707</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-02 01:29:55 -0800</bug_when>
    <thetext>Comment on attachment 129707
Patch

r- for regressing CSP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569618</commentid>
    <comment_count>6</comment_count>
      <attachid>129893</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-02 06:28:07 -0800</bug_when>
    <thetext>Created attachment 129893
[PATCH] Fixed CSP violation reporting for inline styles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569655</commentid>
    <comment_count>7</comment_count>
      <attachid>129893</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-02 07:55:56 -0800</bug_when>
    <thetext>Comment on attachment 129893
[PATCH] Fixed CSP violation reporting for inline styles

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

&gt; Source/WebCore/dom/Document.cpp:2579
&gt; +void Document::setAllowInlineStyle(bool value)

You should override content security policy in ContentSecurityPolicy.cpp.

&gt; Source/WebCore/dom/StyledElement.cpp:-101
&gt; -        else if (document()-&gt;contentSecurityPolicy()-&gt;allowInlineStyle())

Please do not change call sites.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:900
&gt; +        bool inlineStyleEnabled = document-&gt;allowInlineStyle(false);

Should be:
ContentSecurityPolicy* policy = document-&gt;contentSecurityPolicy();
policy-&gt;setOverrideAllowInlineStyle(true);
targetNode-&gt;...
policy-&gt;setOverrideAllowInlineStyle(false);

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:525
&gt; +    CSPDirective* styleSrcDirective = operativeDirective(m_styleSrc.get());

drop this

&gt; LayoutTests/inspector/styles/add-new-rule-inline-style-csp.html:13
&gt; +    InspectorTest.selectNodeAndWaitForStyles(&quot;inspected&quot;, step1);

These are not 3 steps, these are 3 tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569668</commentid>
    <comment_count>8</comment_count>
      <attachid>129903</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-02 08:33:41 -0800</bug_when>
    <thetext>Created attachment 129903
[PATCH] Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569692</commentid>
    <comment_count>9</comment_count>
      <attachid>129903</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-02 09:10:07 -0800</bug_when>
    <thetext>Comment on attachment 129903
[PATCH] Comments addressed

The changes to ContentSecurityPolicy.cpp/h look fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569694</commentid>
    <comment_count>10</comment_count>
      <attachid>129903</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-02 09:11:03 -0800</bug_when>
    <thetext>Comment on attachment 129903
[PATCH] Comments addressed

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

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:745
&gt; +        *errorString = &quot;Failed to find or create inspector stylesheet, probably due to Content-Security-Policy&quot;;

This is no longer the case.

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:1324
&gt; +    ContentSecurityPolicy* policy = m_element-&gt;ownerDocument() ? m_element-&gt;ownerDocument()-&gt;contentSecurityPolicy() : 0;

ownerDocument never returns NULL for an element. Also, I would recommend using raii idiom for this case.

&gt; Source/WebCore/page/ContentSecurityPolicy.h:73
&gt; +    void setOverrideAllowInlineStyle(bool);

Do we need a better name for this method? setOverrideAllowInlineStyleForInspector ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569702</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-02 09:21:31 -0800</bug_when>
    <thetext>&gt; Do we need a better name for this method? setOverrideAllowInlineStyleForInspector ?

setOverrideAllowInlineStyle ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569706</commentid>
    <comment_count>12</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-02 09:27:40 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; Do we need a better name for this method? setOverrideAllowInlineStyleForInspector ?
&gt; 
&gt; setOverrideAllowInlineStyle ?

Will revert to this name when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570542</commentid>
    <comment_count>13</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-05 02:45:12 -0800</bug_when>
    <thetext>Committed r109730: &lt;http://trac.webkit.org/changeset/109730&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129699</attachid>
            <date>2012-03-01 06:56:50 -0800</date>
            <delta_ts>2012-03-01 08:23:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80024-20120301185648.patch</filename>
            <type>text/plain</type>
            <size>4996</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdjOTUwMTZiZGEwN2Vh
ZTE3MWEzYTJmMWFmYjUwYjYxZmRiZjkxOC4uZjM1MTM0ODBlZmIyYzVlN2IwZTY0NTE0ZmJjNDlj
YTE0YzE2NmI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTAxICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW1N0eWxlc10gW0NSQVNIXSBHcmFjZWZ1bGx5IGhhbmRsZSBydWxlIGFkZGl0aW9uIGZh
aWx1cmUgZHVlIHRvIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGluIHRoZSBwYWdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDAyNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9z
dHlsZXMvYWRkLW5ldy1ydWxlLWNzcC1jcmFzaC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdl
bnQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OnZpYUlu
c3BlY3RvclN0eWxlU2hlZXQpOgorCiAyMDEyLTAyLTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVy
eXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgRE9NIGNvdW50
ZXIgZ3JhcGhzIG91dCBvZiBleHBlcmltZW50YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDBiZTcyNDk2NzgzMDQ0Y2YwNDM5ZDcxMzQ1
ODc3MzJiYzc0ZWFjYmIuLmY4YzVhZTA0OTc1N2M4OTg3ZWE1ZTI1NDFkNmRlNGZhZTc0YjczMzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApA
QCAtNzQxLDcgKzc0MSw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmFkZFJ1bGUoRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBpbnQgY29udGV4dE5vZGVJCiAKICAgICBJbnNwZWN0
b3JTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHlsZVNoZWV0ID0gdmlhSW5zcGVjdG9yU3R5bGVTaGVl
dChub2RlLT5kb2N1bWVudCgpLCB0cnVlKTsKICAgICBpZiAoIWluc3BlY3RvclN0eWxlU2hlZXQp
IHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIHRhcmdldCBzdHlsZXNoZWV0IGZvdW5kIjsK
KyAgICAgICAgKmVycm9yU3RyaW5nID0gIkZhaWxlZCB0byBmaW5kIG9yIGNyZWF0ZSBpbnNwZWN0
b3Igc3R5bGVzaGVldCwgcHJvYmFibHkgZHVlIHRvIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtOTAyLDcgKzkwMiw4IEBAIEluc3BlY3RvclN0
eWxlU2hlZXQqIEluc3BlY3RvckNTU0FnZW50Ojp2aWFJbnNwZWN0b3JTdHlsZVNoZWV0KERvY3Vt
ZW50KiBkb2N1bWVuCiAgICAgICAgIHJldHVybiAwOwogICAgIFN0eWxlU2hlZXRMaXN0KiBzdHls
ZVNoZWV0cyA9IGRvY3VtZW50LT5zdHlsZVNoZWV0cygpOwogICAgIFN0eWxlU2hlZXQqIHN0eWxl
U2hlZXQgPSBzdHlsZVNoZWV0cy0+aXRlbShzdHlsZVNoZWV0cy0+bGVuZ3RoKCkgLSAxKTsKLSAg
ICBpZiAoIXN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAgIC8vIEJVRzgwMDI0OiBX
ZSBtYXkgaGF2ZSBmYWlsZWQgdG8gYWRkIGFuIGFjdHVhbCBTdHlsZVNoZWV0IGludG8gdGhlIGRv
Y3VtZW50IGR1ZSB0byBDU1AgZ2V0dGluZyBpbiBvdXIgd2F5LgorICAgIGlmICghc3R5bGVTaGVl
dCB8fCAhc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCiAgICAgICAgIHJldHVybiAwOwog
ICAgIENTU1N0eWxlU2hlZXQqIGNzc1N0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNo
ZWV0Kj4oc3R5bGVTaGVldCk7CiAgICAgU3RyaW5nIGlkID0gU3RyaW5nOjpudW1iZXIobV9sYXN0
U3R5bGVTaGVldElkKyspOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIyNDk3N2M5M2NmMDU1N2NlZDYxMWViMDgzZWIwN2U3
ODA5MjhmYWEuLmY1ODAxY2ZjM2VmZjU3NzdkM2Q4MmQ5NGYzOTAwNTg3YmQ5ZjI0NDAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtTdHlsZXNdIFtDUkFTSF0g
R3JhY2VmdWxseSBoYW5kbGUgcnVsZSBhZGRpdGlvbiBmYWlsdXJlIGR1ZSB0byBDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSBpbiB0aGUgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWNzcC1jcmFz
aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvYWRkLW5l
dy1ydWxlLWNzcC1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0yOSAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuIE5l
eHQgY2h1bmsgb2YgU0wgcGl4ZWwgdGVzdCB1cGRhdGVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtY3NwLWNyYXNoLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWNzcC1jcmFzaC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNmZjk5ZDlmMmJiNDdjNGM2MzllNWNhMzczNmExZGNjNTg3
N2ZmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvYWRk
LW5ldy1ydWxlLWNzcC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitDT05TT0xF
IE1FU1NBR0U6IFJlZnVzZWQgdG8gYXBwbHkgaW5saW5lIHN0eWxlIGJlY2F1c2Ugb2YgQ29udGVu
dC1TZWN1cml0eS1Qb2xpY3kuCisKK1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IHJ1bGUgZG9lcyBu
b3QgY3Jhc2ggdGhlIHJlbmRlcmVyIHdoZW4gZm9yYmlkZGVuIGJ5IENvbnRlbnQtU2VjdXJpdHkt
UG9saWN5LgorCitUZXh0CitQQVNTRUQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtY3NwLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1jc3AtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODE3
NTFjMjVhOWZkYTU1YjBhYTg2MmM0ZDQ2NzFmNDVjYjMzZTlhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtY3NwLWNyYXNoLmh0bWwK
QEAgLTAsMCArMSw0MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9Ingtd2Vi
a2l0LWNzcCIgY29udGVudD0ic3R5bGUtc3JjIGh0dHBzOi8vKjo0NDMiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFdlYkluc3Bl
Y3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7CisgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2Rl
QW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDEpOworCisgICAgdmFyIHRyZWVFbGVt
ZW50OworCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgICAgLy8gQ2xpY2sgIkFk
ZCBuZXcgcnVsZSIuCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhZGQtc3R5bGUt
YnV0dG9uLXRlc3QtaWQiKS5jbGljaygpOworICAgICAgICB2YXIgc2VjdGlvbiA9IFdlYkluc3Bl
Y3Rvci5wYW5lbHMuZWxlbWVudHMuc2lkZWJhclBhbmVzLnN0eWxlcy5zZWN0aW9uc1swXVsyXTsK
KyAgICAgICAgc2VjdGlvbi5fc2VsZWN0b3JFbGVtZW50LmRpc3BhdGNoRXZlbnQoSW5zcGVjdG9y
VGVzdC5jcmVhdGVLZXlFdmVudCgiRW50ZXIiKSk7CisgICAgICAgIEluc3BlY3RvclRlc3QucnVu
QWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhzdGVwMik7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3Rl
cDIoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlBBU1NFRCIpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKworPC9zY3Jp
cHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhh
dCBhZGRpbmcgYSBuZXcgcnVsZSBkb2VzIG5vdCBjcmFzaCB0aGUgcmVuZGVyZXIgd2hlbiBmb3Ji
aWRkZW4gYnkgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kuCis8L3A+CisKKzxkaXYgaWQ9Imluc3Bl
Y3RlZCI+VGV4dDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129707</attachid>
            <date>2012-03-01 08:23:12 -0800</date>
            <delta_ts>2012-03-02 06:27:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80024-20120301202311.patch</filename>
            <type>text/plain</type>
            <size>11349</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdjOTUwMTZiZGEwN2Vh
ZTE3MWEzYTJmMWFmYjUwYjYxZmRiZjkxOC4uMGQ0Mjg3N2QwYTJhZDMzYTcyZjNhYTA2OTQ2ODVj
NzAwZWFiZWQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAzLTAxICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW1N0eWxlc10gW0NSQVNIXSBHcmFjZWZ1bGx5IGhhbmRsZSBydWxlIGFkZGl0aW9uIGZh
aWx1cmUgZHVlIHRvIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGluIHRoZSBwYWdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDAyNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9z
dHlsZXMvYWRkLW5ldy1ydWxlLWNzcC1jcmFzaC5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpzZXRJbmxpbmVTdHlsZUVuYWJsZWQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW5saW5lU3R5bGVFbmFibGVkKToK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCk6CisgICAgICAgICogZG9tL1N0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZUVsZW1lbnQ6OmNyZWF0ZVNoZWV0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6
OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OnZpYUluc3Bl
Y3RvclN0eWxlU2hlZXQpOgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhl
YWRlcik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckNvbnRleHQ6OnNldElubGluZVN0eWxlRW5hYmxlZCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuaDoKKyAgICAgICAgKFdv
cmtlckNvbnRleHQpOgorCiAyMDEyLTAyLTI4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgRE9NIGNvdW50ZXIgZ3Jh
cGhzIG91dCBvZiBleHBlcmltZW50YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDY5ZTUy
MDY5ZWFhNmVkNGUyYTBlMjFlNzMzYzAzNzdmMGZiY2I5OWIuLmZjMDNmZDg2MjAxMzU2YjM5MTky
MjZjZTFjNzYzYTNkNDBkNGQwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDM5LDYg
KzQzOSw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVy
bCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAsIG1fd2hlZWxFdmVudEhhbmRsZXJD
b3VudCgwKQogICAgICwgbV90b3VjaEV2ZW50SGFuZGxlckNvdW50KDApCiAgICAgLCBtX3BlbmRp
bmdUYXNrc1RpbWVyKHRoaXMsICZEb2N1bWVudDo6cGVuZGluZ1Rhc2tzVGltZXJGaXJlZCkKKyAg
ICAsIG1faW5saW5lU3R5bGVFbmFibGVkKHRydWUpCiB7CiAgICAgbV9kb2N1bWVudCA9IHRoaXM7
CiAKQEAgLTI1NzUsNiArMjU3NiwxNiBAQCB2b2lkIERvY3VtZW50OjpkaXNhYmxlRXZhbCgpCiAg
ICAgZnJhbWUoKS0+c2NyaXB0KCktPmRpc2FibGVFdmFsKCk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6
OnNldElubGluZVN0eWxlRW5hYmxlZChib29sIHZhbHVlKQoreworICAgIG1faW5saW5lU3R5bGVF
bmFibGVkID0gdmFsdWU7Cit9CisKK2Jvb2wgRG9jdW1lbnQ6OmlubGluZVN0eWxlRW5hYmxlZCgp
Cit7CisgICAgcmV0dXJuIG1faW5saW5lU3R5bGVFbmFibGVkOworfQorCiBDU1NTdHlsZVNoZWV0
KiBEb2N1bWVudDo6cGFnZVVzZXJTaGVldCgpCiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNzcyZTRjZDZiYTEzYjViMWUxMjhmZTUyZjg5YmY5NjJh
N2IxNzMxYi4uYTFlMzVjYTQxZWZhZGVmZTZhN2RjMjllYmJiMWNmNmNmNmFkMzUxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTYxOCw2ICs2MTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBT
dHJpbmcgdXNlckFnZW50KGNvbnN0IEtVUkwmKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aXNhYmxlRXZhbCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRJbmxpbmVTdHlsZUVuYWJsZWQoYm9v
bCk7CisgICAgYm9vbCBpbmxpbmVTdHlsZUVuYWJsZWQoKTsKIAogICAgIENTU1N0eWxlU2hlZXQq
IHBhZ2VVc2VyU2hlZXQoKTsKICAgICB2b2lkIGNsZWFyUGFnZVVzZXJTaGVldCgpOwpAQCAtMTQ2
Myw3ICsxNDY1LDkgQEAgcHJpdmF0ZToKIAogICAgIFRpbWVyPERvY3VtZW50PiBtX3BlbmRpbmdU
YXNrc1RpbWVyOwogICAgIFZlY3RvcjxPd25QdHI8VGFzaz4gPiBtX3BlbmRpbmdUYXNrczsKLSAg
ICAKKworICAgIGJvb2wgbV9pbmxpbmVTdHlsZUVuYWJsZWQ7CisKICNpZm5kZWYgTkRFQlVHCiAg
ICAgYm9vbCBtX3VwZGF0aW5nU3R5bGVTZWxlY3RvcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMTVjZWI0MmVlZDI2Njg3NmM5NTFk
NmYyOTk3ZTA5YjQ3OWZhMTZjYi4uZTdlOTU1ODNmOTlhZTJjZTQ5YThiYjA3MmM3YTUxMzcwYzhk
MzI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBA
IC05Miw2ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29u
c3QgS1VSTCYpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbCgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5saW5lU3R5bGVFbmFibGVkKGJvb2wpID0gMDsKIAog
ICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBs
aW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdm9pZCByZXBvcnRFeGNlcHRpb24o
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0
eWxlRWxlbWVudC5jcHAKaW5kZXggNzY1NzQ5NGFiMTVhZTllN2I3NWYxMmFkZmU1M2JjODU2MWFm
M2MxZS4uNmRmNzc2MjEyNDBhZTFhYmQ5NTFiOWU4OTE5ZTI1MzA5NTY4MGI1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCB2b2lkIFN0eWxlRWxl
bWVudDo6Y3JlYXRlU2hlZXQoRWxlbWVudCogZSwgaW50IHN0YXJ0TGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiB0ZQogCiAgICAgLy8gSWYgdHlwZSBpcyBlbXB0eSBvciBDU1MsIHRoaXMgaXMgYSBD
U1Mgc3R5bGUgc2hlZXQuCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlID0gdGhpcy0+dHlw
ZSgpOwotICAgIGlmIChkb2N1bWVudC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5s
aW5lU3R5bGUoKSAmJiBpc0NTUyhlLCB0eXBlKSkgeworICAgIGlmIChkb2N1bWVudC0+aW5saW5l
U3R5bGVFbmFibGVkKCkgJiYgaXNDU1MoZSwgdHlwZSkpIHsKICAgICAgICAgUmVmUHRyPE1lZGlh
TGlzdD4gbWVkaWFMaXN0ID0gTWVkaWFMaXN0OjpjcmVhdGUobWVkaWEoKSwgZS0+aXNIVE1MRWxl
bWVudCgpKTsKICAgICAgICAgTWVkaWFRdWVyeUV2YWx1YXRvciBzY3JlZW5FdmFsKCJzY3JlZW4i
LCB0cnVlKTsKICAgICAgICAgTWVkaWFRdWVyeUV2YWx1YXRvciBwcmludEV2YWwoInByaW50Iiwg
dHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNw
cAppbmRleCAwYmU3MjQ5Njc4MzA0NGNmMDQzOWQ3MTM0NTg3NzMyYmM3NGVhY2JiLi5kZjM3YTRh
OGY4YTcwYjA3ODYzNzEzZTYyYWVlOGQ1MjQxM2I4YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTc0MSw3ICs3NDEsNyBAQCB2b2lk
IEluc3BlY3RvckNTU0FnZW50OjphZGRSdWxlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29u
c3QgaW50IGNvbnRleHROb2RlSQogCiAgICAgSW5zcGVjdG9yU3R5bGVTaGVldCogaW5zcGVjdG9y
U3R5bGVTaGVldCA9IHZpYUluc3BlY3RvclN0eWxlU2hlZXQobm9kZS0+ZG9jdW1lbnQoKSwgdHJ1
ZSk7CiAgICAgaWYgKCFpbnNwZWN0b3JTdHlsZVNoZWV0KSB7Ci0gICAgICAgICplcnJvclN0cmlu
ZyA9ICJObyB0YXJnZXQgc3R5bGVzaGVldCBmb3VuZCI7CisgICAgICAgICplcnJvclN0cmluZyA9
ICJGYWlsZWQgdG8gZmluZCBvciBjcmVhdGUgaW5zcGVjdG9yIHN0eWxlc2hlZXQsIHByb2JhYmx5
IGR1ZSB0byBDb250ZW50LVNlY3VyaXR5LVBvbGljeSI7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTg5NiwxMyArODk2LDE5IEBAIEluc3BlY3RvclN0eWxlU2hlZXQqIEluc3BlY3RvckNT
U0FnZW50Ojp2aWFJbnNwZWN0b3JTdHlsZVNoZWV0KERvY3VtZW50KiBkb2N1bWVuCiAgICAgICAg
ICAgICB0YXJnZXROb2RlID0gZG9jdW1lbnQtPmJvZHkoKTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgYm9vbCBpbmxpbmVTdHlsZUVuYWJsZWQgPSBkb2N1
bWVudC0+aW5saW5lU3R5bGVFbmFibGVkKCk7CisgICAgICAgIGlmICghaW5saW5lU3R5bGVFbmFi
bGVkKQorICAgICAgICAgICAgZG9jdW1lbnQtPnNldElubGluZVN0eWxlRW5hYmxlZCh0cnVlKTsK
ICAgICAgICAgdGFyZ2V0Tm9kZS0+YXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50LCBlYyk7CisgICAg
ICAgIGlmICghaW5saW5lU3R5bGVFbmFibGVkKQorICAgICAgICAgICAgZG9jdW1lbnQtPnNldElu
bGluZVN0eWxlRW5hYmxlZChmYWxzZSk7CiAgICAgfQogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgU3R5bGVTaGVldExpc3QqIHN0eWxlU2hlZXRzID0gZG9jdW1lbnQtPnN0eWxl
U2hlZXRzKCk7CiAgICAgU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IHN0eWxlU2hlZXRzLT5pdGVt
KHN0eWxlU2hlZXRzLT5sZW5ndGgoKSAtIDEpOwotICAgIGlmICghc3R5bGVTaGVldC0+aXNDU1NT
dHlsZVNoZWV0KCkpCisgICAgaWYgKCFzdHlsZVNoZWV0IHx8ICFzdHlsZVNoZWV0LT5pc0NTU1N0
eWxlU2hlZXQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgQ1NTU3R5bGVTaGVldCogY3NzU3R5
bGVTaGVldCA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KTsKICAgICBT
dHJpbmcgaWQgPSBTdHJpbmc6Om51bWJlcihtX2xhc3RTdHlsZVNoZWV0SWQrKyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggOTYwMmNmNzU5
OWFkOGJiZTc4ODgwN2QyYjBmZWRhM2YxNDNiMjg5My4uYmY0Mzk5NmFmN2QzYjJhN2VlOWZlNTVj
ZjRiYzhkMjg5ZDVjOTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50
U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmNwcApAQCAtNTIxLDYgKzUyMSwxMCBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlciwgSGVhZGVyVHlwZSB0
eQogCiAgICAgaWYgKCFjaGVja0V2YWwob3BlcmF0aXZlRGlyZWN0aXZlKG1fc2NyaXB0U3JjLmdl
dCgpKSkpCiAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlzYWJsZUV2YWwoKTsK
KworICAgIENTUERpcmVjdGl2ZSogc3R5bGVTcmNEaXJlY3RpdmUgPSBvcGVyYXRpdmVEaXJlY3Rp
dmUobV9zdHlsZVNyYy5nZXQoKSk7CisgICAgaWYgKHN0eWxlU3JjRGlyZWN0aXZlICYmICFzdHls
ZVNyY0RpcmVjdGl2ZS0+YWxsb3dJbmxpbmUoKSkKKyAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5zZXRJbmxpbmVTdHlsZUVuYWJsZWQoZmFsc2UpOwogfQogCiB2b2lkIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4
dCwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IDFjMDQzYjllY2IzY2Q5NGQwYThiZDc3NjRiZDEw
Y2E3MzMzODFiOGMuLmI0MGVhOWRkN2U2YzUwNTE2NTA0YjQ1NWU2ZTQwYzEwN2RhZDllZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtMTU2LDYgKzE1Niwx
MSBAQCB2b2lkIFdvcmtlckNvbnRleHQ6OmRpc2FibGVFdmFsKCkKICAgICBtX3NjcmlwdC0+ZGlz
YWJsZUV2YWwoKTsKIH0KIAordm9pZCBXb3JrZXJDb250ZXh0OjpzZXRJbmxpbmVTdHlsZUVuYWJs
ZWQoYm9vbCkKK3sKKyAgICAvLyBXb3JrZXJzIGRvIG5vdCBoYW5kbGUgc3R5bGVzLgorfQorCiBX
b3JrZXJMb2NhdGlvbiogV29ya2VyQ29udGV4dDo6bG9jYXRpb24oKSBjb25zdAogewogICAgIGlm
ICghbV9sb2NhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKaW5kZXgg
NmIyNmMzNTFiYjFlODU0Y2ZiOTQ5YTkzNjViODA4N2RlOTFjNjk3Zi4uZDRhYzA4MmM4M2IzY2Ux
YmZlZDIwYzIzYmI2Yzg2MzA4ZWMzMjZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJD
b250ZXh0LmgKQEAgLTc2LDYgKzc2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0OwogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5saW5l
U3R5bGVFbmFibGVkKGJvb2wpOwogCiAgICAgICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNj
cmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAgICAgIHZvaWQgY2xlYXJTY3Jp
cHQoKSB7IG1fc2NyaXB0LmNsZWFyKCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMjQ5NzdjOTNjZjA1NTdjZWQ2MTFl
YjA4M2ViMDdlNzgwOTI4ZmFhLi5mNTgwMWNmYzNlZmY1Nzc3ZDNkODJkOTRmMzkwMDU4N2JkOWYy
NDQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMDEgIEFsZXhhbmRlciBQYXZsb3Yg
IDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbU3R5bGVz
XSBbQ1JBU0hdIEdyYWNlZnVsbHkgaGFuZGxlIHJ1bGUgYWRkaXRpb24gZmFpbHVyZSBkdWUgdG8g
Q29udGVudC1TZWN1cml0eS1Qb2xpY3kgaW4gdGhlIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVs
ZS1jc3AtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzL2FkZC1uZXctcnVsZS1jc3AtY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMTItMDItMjkgIE5p
a29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgTm90IHJl
dmlld2VkLiBOZXh0IGNodW5rIG9mIFNMIHBpeGVsIHRlc3QgdXBkYXRlcy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWNzcC1jcmFzaC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1jc3At
Y3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NzJiNjBlNzM1MGRlNTRlMzIzZTFjMTBj
Y2NiOTZlMTlkMDMyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL2FkZC1uZXctcnVsZS1jc3AtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgcnVsZSBkb2VzIG5vdCBjcmFzaCB0aGUgcmVuZGVy
ZXIgd2hlbiBmb3JiaWRkZW4gYnkgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kuCisKK1RleHQKK2Jv
ZHkge30KK0FmZmVjdHMgc2VsZWN0ZWQgKEJPRFkpIG5vZGU6IHRydWUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtY3NwLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1jc3AtY3Jhc2guaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMTVlZDA5ZTYxOWI0NTY0YTAwNWZjYzhjOWYwNzRlMjE1MzIyMzBlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1
bGUtY3NwLWNyYXNoLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGh0dHAtZXF1aXY9Ingtd2Via2l0LWNzcCIgY29udGVudD0ic3R5bGUtc3JjIGh0dHBzOi8vKjo0
NDMiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoImVsZW1lbnRzIik7CisgICAgSW5zcGVj
dG9yVGVzdC5zZWxlY3ROb2RlQW5kV2FpdEZvclN0eWxlcygiaW5zcGVjdGVkIiwgc3RlcDEpOwor
CisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgICAgdmFyIGlkVG9ET01Ob2RlID0g
V2ViSW5zcGVjdG9yLmRvbUFnZW50Ll9pZFRvRE9NTm9kZTsKKyAgICAgICAgZm9yICh2YXIgaWQg
aW4gaWRUb0RPTU5vZGUpIHsKKyAgICAgICAgICAgIHZhciBub2RlID0gaWRUb0RPTU5vZGVbaWRd
OworICAgICAgICAgICAgaWYgKG5vZGUubG9jYWxOYW1lKCkgPT09ICJib2R5IikgeworICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5hZGRSdWxlKHBhcnNlSW50KGlkLCAxMCks
ICJib2R5Iiwgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2spOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
c3VjY2Vzc0NhbGxiYWNrKHJ1bGUsIGRvZXNBZmZlY3RTZWxlY3RlZE5vZGUpCisgICAgICAgIHsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJ1bGUuc2VsZWN0b3JUZXh0ICsg
IiB7IiArIHJ1bGUuc3R5bGUuY3NzVGV4dCArICJ9Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiQWZmZWN0cyBzZWxlY3RlZCAoQk9EWSkgbm9kZTogIiArIGRvZXNBZmZl
Y3RTZWxlY3RlZE5vZGUpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGZhaWx1cmVDYWxsYmFjaygpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGYWlsZWQgdG8gYWRk
IHJ1bGUuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
ICAgICB9CisgICAgfQorfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPHA+CitUZXN0cyB0aGF0IGFkZGluZyBhIG5ldyBydWxlIGRvZXMgbm90IGNy
YXNoIHRoZSByZW5kZXJlciB3aGVuIGZvcmJpZGRlbiBieSBDb250ZW50LVNlY3VyaXR5LVBvbGlj
eS4KKzwvcD4KKworPGRpdiBpZD0iaW5zcGVjdGVkIj5UZXh0PC9kaXY+CisKKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129893</attachid>
            <date>2012-03-02 06:28:07 -0800</date>
            <delta_ts>2012-03-02 08:33:34 -0800</delta_ts>
            <desc>[PATCH] Fixed CSP violation reporting for inline styles</desc>
            <filename>bug-80024-20120302182805.patch</filename>
            <type>text/plain</type>
            <size>14092</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ5OGIxYWFiNmRiZGU4
YTllMzdhZTdmMTNlOTMyNGZiNDg3YzQ3Ny4uNzBlNGQ3OWZiZWJiNTQzZTJkYWIwYzUxNzRhZGZi
YjMyM2U1ZTc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTAyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW1N0eWxlc10gW0NSQVNIXSBHcmFjZWZ1bGx5IGhhbmRsZSBydWxlIGFkZGl0aW9uIGZh
aWx1cmUgZHVlIHRvIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IGluIHRoZSBwYWdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDAyNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9z
dHlsZXMvYWRkLW5ldy1ydWxlLWlubGluZS1zdHlsZS1jc3AuaHRtbAorCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0QWxsb3dJbmxpbmVTdHlsZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphbGxvd0lubGluZVN0eWxl
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAg
ICAgKiBkb20vU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlRWxlbWVu
dDo6Y3JlYXRlU2hlZXQpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ1NTQWdlbnQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdl
bnQ6OnZpYUluc3BlY3RvclN0eWxlU2hlZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXRG
b3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVUZXh0KToKKyAgICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmRpZFJlY2VpdmVIZWFkZXIpOgorCiAyMDEyLTAzLTAxICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IHN1
Z2dlc3Rpb25zIGluIFdhdGNoIEV4cHJlc3Npb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBhMzNkMzY5YjExMTQ1YzMwZWE5ZDllY2IwNWU2NjIzMjE5ZGIzMmQxLi5jNWVjMGFiNzBhZmRh
MjMxNTFlYTRlMTRiOGNiOTFiMjVjZmQ3ZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTQzOSw2ICs0MzksNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBL
VVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX3doZWVsRXZlbnRI
YW5kbGVyQ291bnQoMCkKICAgICAsIG1fdG91Y2hFdmVudEhhbmRsZXJDb3VudCgwKQogICAgICwg
bV9wZW5kaW5nVGFza3NUaW1lcih0aGlzLCAmRG9jdW1lbnQ6OnBlbmRpbmdUYXNrc1RpbWVyRmly
ZWQpCisgICAgLCBtX2lubGluZVN0eWxlQWxsb3dlZCh0cnVlKQogewogICAgIG1fZG9jdW1lbnQg
PSB0aGlzOwogCkBAIC0yNTc1LDYgKzI1NzYsMjAgQEAgdm9pZCBEb2N1bWVudDo6ZGlzYWJsZUV2
YWwoKQogICAgIGZyYW1lKCktPnNjcmlwdCgpLT5kaXNhYmxlRXZhbCgpOwogfQogCit2b2lkIERv
Y3VtZW50OjpzZXRBbGxvd0lubGluZVN0eWxlKGJvb2wgdmFsdWUpCit7CisgICAgbV9pbmxpbmVT
dHlsZUFsbG93ZWQgPSB2YWx1ZTsKK30KKworYm9vbCBEb2N1bWVudDo6YWxsb3dJbmxpbmVTdHls
ZShib29sIHJlcG9ydCkKK3sKKyAgICBpZiAobV9pbmxpbmVTdHlsZUFsbG93ZWQpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgLy8gY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5s
aW5lU3R5bGUoKSByZXBvcnRzIHRoZSB2aW9sYXRpb24gYXMgYSBzaWRlIGVmZmVjdC4KKyAgICBy
ZXR1cm4gcmVwb3J0ID8gY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93SW5saW5lU3R5bGUo
KSA6IGZhbHNlOworfQorCiBDU1NTdHlsZVNoZWV0KiBEb2N1bWVudDo6cGFnZVVzZXJTaGVldCgp
CiB7CiAgICAgaWYgKG1fcGFnZVVzZXJTaGVldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNzcy
ZTRjZDZiYTEzYjViMWUxMjhmZTUyZjg5YmY5NjJhN2IxNzMxYi4uYjNkODU3OGFlMDBlNDlhNDU3
ZDRlNWI5YWIzZWQ4ZGE3NzFhYmUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTYxOCw2ICs2
MTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IEtVUkwm
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgIHZvaWQgc2V0
QWxsb3dJbmxpbmVTdHlsZShib29sKTsKKyAgICBib29sIGFsbG93SW5saW5lU3R5bGUoYm9vbCk7
CiAKICAgICBDU1NTdHlsZVNoZWV0KiBwYWdlVXNlclNoZWV0KCk7CiAgICAgdm9pZCBjbGVhclBh
Z2VVc2VyU2hlZXQoKTsKQEAgLTE0NjMsNyArMTQ2NSw5IEBAIHByaXZhdGU6CiAKICAgICBUaW1l
cjxEb2N1bWVudD4gbV9wZW5kaW5nVGFza3NUaW1lcjsKICAgICBWZWN0b3I8T3duUHRyPFRhc2s+
ID4gbV9wZW5kaW5nVGFza3M7Ci0gICAgCisKKyAgICBib29sIG1faW5saW5lU3R5bGVBbGxvd2Vk
OworCiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV91cGRhdGluZ1N0eWxlU2VsZWN0b3I7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKaW5kZXggNzY1NzQ5NGFiMTVhZTll
N2I3NWYxMmFkZmU1M2JjODU2MWFmM2MxZS4uN2FmMmQ1MWQ2YmQwMDNjMTI3NDBhMjZkNDY2ZDEz
ODk5YWQ0ZWNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKQEAgLTE1Miw3ICsx
NTIsNyBAQCB2b2lkIFN0eWxlRWxlbWVudDo6Y3JlYXRlU2hlZXQoRWxlbWVudCogZSwgaW50IHN0
YXJ0TGluZU51bWJlciwgY29uc3QgU3RyaW5nJiB0ZQogCiAgICAgLy8gSWYgdHlwZSBpcyBlbXB0
eSBvciBDU1MsIHRoaXMgaXMgYSBDU1Mgc3R5bGUgc2hlZXQuCiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlID0gdGhpcy0+dHlwZSgpOwotICAgIGlmIChkb2N1bWVudC0+Y29udGVudFNlY3Vy
aXR5UG9saWN5KCktPmFsbG93SW5saW5lU3R5bGUoKSAmJiBpc0NTUyhlLCB0eXBlKSkgeworICAg
IGlmIChkb2N1bWVudC0+YWxsb3dJbmxpbmVTdHlsZSh0cnVlKSAmJiBpc0NTUyhlLCB0eXBlKSkg
ewogICAgICAgICBSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYUxpc3QgPSBNZWRpYUxpc3Q6OmNyZWF0
ZShtZWRpYSgpLCBlLT5pc0hUTUxFbGVtZW50KCkpOwogICAgICAgICBNZWRpYVF1ZXJ5RXZhbHVh
dG9yIHNjcmVlbkV2YWwoInNjcmVlbiIsIHRydWUpOwogICAgICAgICBNZWRpYVF1ZXJ5RXZhbHVh
dG9yIHByaW50RXZhbCgicHJpbnQiLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50
LmNwcAppbmRleCAxMDZjMjI4ZDZkMmZkMjQ4MGQwZTRjNTE2Y2RhZGIyZDI1ODg3NWZlLi42MTQx
ZDFmYWQ4YmRkYzU4YjQyYWY0Y2YxZDNmYjA2OGI0YjEyMDcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0
eWxlZEVsZW1lbnQuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBzdHlsZUF0dHIpIHsKICAgICAgICAgaWYgKGF0dHItPmlzTnVsbCgpKQogICAgICAgICAgICAg
ZGVzdHJveUlubGluZVN0eWxlRGVjbCgpOwotICAgICAgICBlbHNlIGlmIChkb2N1bWVudCgpLT5j
b250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dJbmxpbmVTdHlsZSgpKQorICAgICAgICBlbHNl
IGlmIChkb2N1bWVudCgpLT5hbGxvd0lubGluZVN0eWxlKHRydWUpKQogICAgICAgICAgICAgZW5z
dXJlSW5saW5lU3R5bGVEZWNsKCktPnBhcnNlRGVjbGFyYXRpb24oYXR0ci0+dmFsdWUoKSwgZG9j
dW1lbnQoKS0+ZWxlbWVudFNoZWV0KCkpOwogICAgICAgICBzZXRJc1N0eWxlQXR0cmlidXRlVmFs
aWQoKTsKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggMGJlNzI0OTY3ODMwNDRjZjA0
MzlkNzEzNDU4NzczMmJjNzRlYWNiYi4uNjA3MzViYzYwMWM0ZDg5ODUyNjljMTkwNzk4ZTU4M2U2
YTFiMGM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdl
bnQuY3BwCkBAIC03NDEsNyArNzQxLDcgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6YWRkUnVs
ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IGludCBjb250ZXh0Tm9kZUkKIAogICAg
IEluc3BlY3RvclN0eWxlU2hlZXQqIGluc3BlY3RvclN0eWxlU2hlZXQgPSB2aWFJbnNwZWN0b3JT
dHlsZVNoZWV0KG5vZGUtPmRvY3VtZW50KCksIHRydWUpOwogICAgIGlmICghaW5zcGVjdG9yU3R5
bGVTaGVldCkgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gdGFyZ2V0IHN0eWxlc2hlZXQg
Zm91bmQiOworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRmFpbGVkIHRvIGZpbmQgb3IgY3JlYXRl
IGluc3BlY3RvciBzdHlsZXNoZWV0LCBwcm9iYWJseSBkdWUgdG8gQ29udGVudC1TZWN1cml0eS1Q
b2xpY3kiOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC04OTYsMTMgKzg5NiwxOSBAQCBJ
bnNwZWN0b3JTdHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NBZ2VudDo6dmlhSW5zcGVjdG9yU3R5bGVT
aGVldChEb2N1bWVudCogZG9jdW1lbgogICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IGRvY3VtZW50
LT5ib2R5KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAg
IGJvb2wgaW5saW5lU3R5bGVFbmFibGVkID0gZG9jdW1lbnQtPmFsbG93SW5saW5lU3R5bGUoZmFs
c2UpOworICAgICAgICBpZiAoIWlubGluZVN0eWxlRW5hYmxlZCkKKyAgICAgICAgICAgIGRvY3Vt
ZW50LT5zZXRBbGxvd0lubGluZVN0eWxlKHRydWUpOwogICAgICAgICB0YXJnZXROb2RlLT5hcHBl
bmRDaGlsZChzdHlsZUVsZW1lbnQsIGVjKTsKKyAgICAgICAgaWYgKCFpbmxpbmVTdHlsZUVuYWJs
ZWQpCisgICAgICAgICAgICBkb2N1bWVudC0+c2V0QWxsb3dJbmxpbmVTdHlsZShmYWxzZSk7CiAg
ICAgfQogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgU3R5bGVTaGVldExpc3Qq
IHN0eWxlU2hlZXRzID0gZG9jdW1lbnQtPnN0eWxlU2hlZXRzKCk7CiAgICAgU3R5bGVTaGVldCog
c3R5bGVTaGVldCA9IHN0eWxlU2hlZXRzLT5pdGVtKHN0eWxlU2hlZXRzLT5sZW5ndGgoKSAtIDEp
OwotICAgIGlmICghc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgaWYgKCFzdHls
ZVNoZWV0IHx8ICFzdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgQ1NTU3R5bGVTaGVldCogY3NzU3R5bGVTaGVldCA9IHN0YXRpY19jYXN0PENTU1N0
eWxlU2hlZXQqPihzdHlsZVNoZWV0KTsKICAgICBTdHJpbmcgaWQgPSBTdHJpbmc6Om51bWJlciht
X2xhc3RTdHlsZVNoZWV0SWQrKyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggZTU1MjdkMDkzYzY3MTRjYjU5YTFkZmNiMjcxMzYw
M2FlZjdhMTc2Zi4uZGYxNmM5YTYwYmMzMmE4NTIxNjE1ZmE1NDFjZTI5ZjdjNTM5NDg4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApA
QCAtMTMxOSw3ICsxMzE5LDE1IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0
eWxlOjpzZXRTdHlsZVRleHQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsCiB7CiAgICAgQVNT
RVJUX1VOVVNFRChzdHlsZSwgc3R5bGUgPT0gaW5saW5lU3R5bGUoKSk7CiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CisKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2VsZW1lbnQtPm93bmVy
RG9jdW1lbnQoKTsKKyAgICBib29sIGlubGluZVN0eWxlRW5hYmxlZCA9ICFkb2N1bWVudCB8fCBk
b2N1bWVudC0+YWxsb3dJbmxpbmVTdHlsZShmYWxzZSk7CisgICAgaWYgKCFpbmxpbmVTdHlsZUVu
YWJsZWQpCisgICAgICAgIGRvY3VtZW50LT5zZXRBbGxvd0lubGluZVN0eWxlKHRydWUpOwogICAg
IG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKCJzdHlsZSIsIHRleHQsIGVjKTsKKyAgICBpZiAoIWlu
bGluZVN0eWxlRW5hYmxlZCkKKyAgICAgICAgZG9jdW1lbnQtPnNldEFsbG93SW5saW5lU3R5bGUo
ZmFsc2UpOworCiAgICAgbV9zdHlsZVRleHQgPSB0ZXh0OwogICAgIG1faXNTdHlsZVRleHRWYWxp
ZCA9IHRydWU7CiAgICAgbV9ydWxlU291cmNlRGF0YS5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDk2MDJjZjc1OTlhZDhiYmU3
ODg4MDdkMmIwZmVkYTNmMTQzYjI4OTMuLmRjNWY1MDM2YmU2ZTI4NDZjMDlmNjUwYThlNTU4ZDUz
MmYxMzYwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKQEAgLTUyMSw2ICs1MjEsMTAgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmRp
ZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIsIEhlYWRlclR5cGUgdHkKIAogICAg
IGlmICghY2hlY2tFdmFsKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3NjcmlwdFNyYy5nZXQoKSkpKQog
ICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRpc2FibGVFdmFsKCk7CisKKyAgICBD
U1BEaXJlY3RpdmUqIHN0eWxlU3JjRGlyZWN0aXZlID0gb3BlcmF0aXZlRGlyZWN0aXZlKG1fc3R5
bGVTcmMuZ2V0KCkpOworICAgIGlmIChzdHlsZVNyY0RpcmVjdGl2ZSAmJiAhc3R5bGVTcmNEaXJl
Y3RpdmUtPmFsbG93SW5saW5lKCkgJiYgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0RvY3Vt
ZW50KCkpCisgICAgICAgIHN0YXRpY19jYXN0PERvY3VtZW50Kj4obV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KS0+c2V0QWxsb3dJbmxpbmVTdHlsZShmYWxzZSk7CiB9CiAKIHZvaWQgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0
LCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlKSBjb25zdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNmMzA0MDRjMzFi
NzAxY2U1NTRlNzBkMmQyM2ViZTVhMmQ0ZTI5OTMuLmY5Y2RjYTM4ZjE1MGYzZDVkMDEwMDM2YThh
MDg4ZDZmZWMxMWVhMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wMiAgQWxleGFu
ZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtTdHlsZXNdIFtDUkFTSF0gR3JhY2VmdWxseSBoYW5kbGUgcnVsZSBhZGRpdGlvbiBmYWls
dXJlIGR1ZSB0byBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBpbiB0aGUgcGFnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMv
YWRkLW5ldy1ydWxlLWlubGluZS1zdHlsZS1jc3AtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1pbmxpbmUtc3R5bGUtY3NwLmh0bWw6
IEFkZGVkLgorCiAyMDEyLTAzLTAxICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW1wbGVtZW50IHN1Z2dlc3Rpb25zIGlu
IFdhdGNoIEV4cHJlc3Npb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL2FkZC1uZXctcnVsZS1pbmxpbmUtc3R5bGUtY3NwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWlubGluZS1zdHlsZS1jc3AtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRlOTA4ZTljNDFiNmU0YTUwZjRlMjU4MTk1NGZlM2RkODRhZGEx
YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2FkZC1u
ZXctcnVsZS1pbmxpbmUtc3R5bGUtY3NwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitU
ZXN0cyB0aGF0IGFkZGluZyBhIG5ldyBydWxlIGRvZXMgbm90IGNyYXNoIHRoZSByZW5kZXJlciBh
bmQgbW9kaWZ5aW5nIGFuIGlubGluZSBzdHlsZSBkb2VzIG5vdCByZXBvcnQgZXJyb3JzIHdoZW4g
Zm9yYmlkZGVuIGJ5IENvbnRlbnQtU2VjdXJpdHktUG9saWN5LgorCitUZXh0Cis9PT0gUnVsZSBh
ZGRlZCA9PT0KKyNpbnNwZWN0ZWQge30KK0FmZmVjdHMgc2VsZWN0ZWQgKCNpbnNwZWN0ZWQpIG5v
ZGU6IHRydWUKKz09PSBBZGRlZCBydWxlIG1vZGlmaWVkID09PQord2lkdGg6IDEwMCU7Cis9PT0g
U2VsZWN0b3IgY2hhbmdlZCA9PT0KK2JvZHkgeworICAgIHdpZHRoOiAxMDAlOworfQorQWZmZWN0
cyBzZWxlY3RlZCAoI2luc3BlY3RlZCkgbm9kZTogZmFsc2UKKz09PSBJbmxpbmUgc3R5bGUgbW9k
aWZpZWQgPT09Citmb250LXNpemU6IDE0cHg7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWlubGluZS1zdHlsZS1jc3AuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWlubGluZS1zdHlsZS1jc3AuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iZWZkMmFkNWJjMGI4NDE0NzY3M2VjNTM4NDkxZTI3NzM2NGVlZTdmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1
bGUtaW5saW5lLXN0eWxlLWNzcC5odG1sCkBAIC0wLDAgKzEsMTIzIEBACis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgaHR0cC1lcXVpdj0ieC13ZWJraXQtY3NwIiBjb250ZW50PSJzdHlsZS1zcmMgaHR0
cHM6Ly8qOjQ0MyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rp
b24gdGVzdCgpCit7CisgICAgdmFyIG5vZGU7CisgICAgdmFyIG5vZGVJZDsKKyAgICBXZWJJbnNw
ZWN0b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOworICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9k
ZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHN0ZXAxKTsKKworICAgIGZ1bmN0aW9uIHN0
ZXAxKCkKKyAgICB7CisgICAgICAgIHZhciBpZFRvRE9NTm9kZSA9IFdlYkluc3BlY3Rvci5kb21B
Z2VudC5faWRUb0RPTU5vZGU7CisgICAgICAgIGZvciAodmFyIGlkIGluIGlkVG9ET01Ob2RlKSB7
CisgICAgICAgICAgICBub2RlID0gaWRUb0RPTU5vZGVbaWRdOworICAgICAgICAgICAgaWYgKG5v
ZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJpZCIpID09PSAiaW5zcGVjdGVk
IikgeworICAgICAgICAgICAgICAgIG5vZGVJZCA9IHBhcnNlSW50KGlkLCAxMCk7CisgICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZFJ1bGUobm9kZUlkLCAiI2luc3BlY3Rl
ZCIsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHN1Y2Nl
c3NDYWxsYmFjayhydWxlLCBkb2VzQWZmZWN0U2VsZWN0ZWROb2RlKQorICAgICAgICB7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IFJ1bGUgYWRkZWQgPT09Iik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChydWxlLnNlbGVjdG9yVGV4dCArICIg
eyIgKyBydWxlLnN0eWxlLmNzc1RleHQgKyAifSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkFmZmVjdHMgc2VsZWN0ZWQgKCNpbnNwZWN0ZWQpIG5vZGU6ICIgKyBkb2Vz
QWZmZWN0U2VsZWN0ZWROb2RlKTsKKyAgICAgICAgICAgIHN0ZXAyKHJ1bGUpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gZmFpbHVyZUNhbGxiYWNrKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gYWRkIHJ1bGUuIik7
CisgICAgICAgICAgICBzdGVwMygpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDIocnVsZSkKKyAgICB7CisgICAgICAgIHJ1bGUuc3R5bGUuYXBwZW5kUHJvcGVydHkoIndp
ZHRoIiwgIjEwMCUiLCBjYWxsYmFjayk7CisKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sobmV3
U3R5bGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9
PT0gQWRkZWQgcnVsZSBtb2RpZmllZCA9PT0iKTsKKyAgICAgICAgICAgIGlmICghbmV3U3R5bGUp
IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFdIE5vIHZhbGlk
IHJ1bGUgc3R5bGUgcmVjZWl2ZWQiKTsKKyAgICAgICAgICAgICAgICBzdGVwMygpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkdW1wUHJvcGVydGllcyhuZXdTdHlsZSk7
CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLnNldFJ1bGVTZWxlY3Rvcihy
dWxlLmlkLCBub2RlSWQsICJib2R5Iiwgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2sp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc3VjY2Vzc0Nh
bGxiYWNrKHJ1bGUsIGRvZXNBZmZlY3RTZWxlY3RlZE5vZGUpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gU2VsZWN0b3IgY2hhbmdlZCA9PT0iKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KHJ1bGUuc2VsZWN0b3JUZXh0ICsg
IiB7IiArIHJ1bGUuc3R5bGUuY3NzVGV4dCArICJ9Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiQWZmZWN0cyBzZWxlY3RlZCAoI2luc3BlY3RlZCkgbm9kZTogIiArIGRv
ZXNBZmZlY3RTZWxlY3RlZE5vZGUpOworCisgICAgICAgICAgICBzdGVwMygpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gZmFpbHVyZUNhbGxiYWNrKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gY2hhbmdlIHNlbGVj
dG9yIik7CisgICAgICAgICAgICBzdGVwMygpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVu
Y3Rpb24gc3RlcDMoKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldElu
bGluZVN0eWxlc0FzeW5jKG5vZGVJZCwgc3R5bGVzQ2FsbGJhY2spOworCisgICAgICAgIGZ1bmN0
aW9uIHN0eWxlc0NhbGxiYWNrKGlubGluZVN0eWxlKQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAoIWlubGluZVN0eWxlKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpbmxpbmVTdHlsZS5hcHBlbmRQcm9wZXJ0eSgiZm9udC1zaXplIiwgIjE0cHgiLCBhcHBl
bmRDYWxsYmFjayk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhcHBlbmRDYWxsYmFj
ayhuZXdTdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIj09PSBJbmxpbmUgc3R5bGUgbW9kaWZpZWQgPT09Iik7CisgICAgICAgICAgICBpZiAoIW5l
d1N0eWxlKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5vIHZh
bGlkIGlubGluZSBzdHlsZSByZWNlaXZlZCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBkdW1wUHJvcGVydGllcyhuZXdTdHlsZSk7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVu
Y3Rpb24gZHVtcFByb3BlcnRpZXMoc3R5bGUpCisgICAgeworICAgICAgICBpZiAoIXN0eWxlKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgYWxsUHJvcGVydGllcyA9IHN0eWxlLmFs
bFByb3BlcnRpZXM7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVydGllcy5s
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGFsbFByb3Bl
cnRpZXNbaV0udGV4dCk7CisKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IHJ1bGUg
ZG9lcyBub3QgY3Jhc2ggdGhlIHJlbmRlcmVyIGFuZCBtb2RpZnlpbmcgYW4gaW5saW5lIHN0eWxl
IGRvZXMgbm90IHJlcG9ydCBlcnJvcnMgd2hlbiBmb3JiaWRkZW4gYnkgQ29udGVudC1TZWN1cml0
eS1Qb2xpY3kuCis8L3A+CisKKzxkaXYgaWQ9Imluc3BlY3RlZCI+VGV4dDwvZGl2PgorCis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129903</attachid>
            <date>2012-03-02 08:33:41 -0800</date>
            <delta_ts>2012-03-02 09:11:03 -0800</delta_ts>
            <desc>[PATCH] Comments addressed</desc>
            <filename>bug-80024-20120302203340.patch</filename>
            <type>text/plain</type>
            <size>12932</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ5OGIxYWFiNmRiZGU4
YTllMzdhZTdmMTNlOTMyNGZiNDg3YzQ3Ny4uODI2MWMzMjgyMDM1M2MyZGJlYmNlY2ZlZWJlMTM1
YWM1MTA0ZjdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTAyICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW1N0eWxlc10gW0NSQVNIXSBIYW5kbGUgcnVsZSBhZGRpdGlvbiBhbmQgaW5saW5lIHN0
eWxlIGVkaXRpbmcgZmFpbHVyZSBkdWUgdG8gQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgaW4gdGhl
IHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgw
MDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtaW5saW5lLXN0eWxlLWNzcC5odG1sCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ1NTQWdlbnQ6OnZpYUluc3BlY3RvclN0eWxlU2hlZXQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZTo6c2V0U3R5bGVUZXh0KToKKyAgICAgICAgKiBwYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpzZXRPdmVycmlkZUFsbG93SW5saW5lU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
aDoKKyAgICAgICAgKENvbnRlbnRTZWN1cml0eVBvbGljeSk6CisKIDIwMTItMDMtMDEgIEFsZXhh
bmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBJbXBsZW1lbnQgc3VnZ2VzdGlvbnMgaW4gV2F0Y2ggRXhwcmVzc2lvbnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDBiZTcyNDk2
NzgzMDQ0Y2YwNDM5ZDcxMzQ1ODc3MzJiYzc0ZWFjYmIuLmQ4YjJiOWY5NTE1YzU5OGY2ZGExMmFl
NTI0M2ZlYTk3Njg1YTgwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU0FnZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlUnVs
ZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNo
ZWV0LmgiCisjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9N
V2luZG93LmgiCiAjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRE9NQWdlbnQuaCIKQEAgLTc0MSw3ICs3NDIsNyBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50
OjphZGRSdWxlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgaW50IGNvbnRleHROb2Rl
SQogCiAgICAgSW5zcGVjdG9yU3R5bGVTaGVldCogaW5zcGVjdG9yU3R5bGVTaGVldCA9IHZpYUlu
c3BlY3RvclN0eWxlU2hlZXQobm9kZS0+ZG9jdW1lbnQoKSwgdHJ1ZSk7CiAgICAgaWYgKCFpbnNw
ZWN0b3JTdHlsZVNoZWV0KSB7Ci0gICAgICAgICplcnJvclN0cmluZyA9ICJObyB0YXJnZXQgc3R5
bGVzaGVldCBmb3VuZCI7CisgICAgICAgICplcnJvclN0cmluZyA9ICJGYWlsZWQgdG8gZmluZCBv
ciBjcmVhdGUgaW5zcGVjdG9yIHN0eWxlc2hlZXQsIHByb2JhYmx5IGR1ZSB0byBDb250ZW50LVNl
Y3VyaXR5LVBvbGljeSI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTg5NiwxMyArODk3
LDE3IEBAIEluc3BlY3RvclN0eWxlU2hlZXQqIEluc3BlY3RvckNTU0FnZW50Ojp2aWFJbnNwZWN0
b3JTdHlsZVNoZWV0KERvY3VtZW50KiBkb2N1bWVuCiAgICAgICAgICAgICB0YXJnZXROb2RlID0g
ZG9jdW1lbnQtPmJvZHkoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIDA7CisK
KyAgICAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBwb2xpY3kgPSBkb2N1bWVudC0+Y29udGVu
dFNlY3VyaXR5UG9saWN5KCk7CisgICAgICAgIHBvbGljeS0+c2V0T3ZlcnJpZGVBbGxvd0lubGlu
ZVN0eWxlKHRydWUpOwogICAgICAgICB0YXJnZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1l
bnQsIGVjKTsKKyAgICAgICAgcG9saWN5LT5zZXRPdmVycmlkZUFsbG93SW5saW5lU3R5bGUoZmFs
c2UpOwogICAgIH0KICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogICAgIFN0eWxlU2hl
ZXRMaXN0KiBzdHlsZVNoZWV0cyA9IGRvY3VtZW50LT5zdHlsZVNoZWV0cygpOwogICAgIFN0eWxl
U2hlZXQqIHN0eWxlU2hlZXQgPSBzdHlsZVNoZWV0cy0+aXRlbShzdHlsZVNoZWV0cy0+bGVuZ3Ro
KCkgLSAxKTsKLSAgICBpZiAoIXN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAgIGlm
ICghc3R5bGVTaGVldCB8fCAhc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCiAgICAgICAg
IHJldHVybiAwOwogICAgIENTU1N0eWxlU2hlZXQqIGNzc1N0eWxlU2hlZXQgPSBzdGF0aWNfY2Fz
dDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCk7CiAgICAgU3RyaW5nIGlkID0gU3RyaW5nOjpu
dW1iZXIobV9sYXN0U3R5bGVTaGVldElkKyspOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IGU1NTI3ZDA5M2M2NzE0Y2I1OWExZGZj
YjI3MTM2MDNhZWY3YTE3NmYuLjFkNjE1ZTUzZjBlOThiNTQ0NDg3Y2QwOTZkZmE2MTkzODZiNzM3
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVl
dC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNs
dWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2lu
Y2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgpAQCAtMTMx
OSw3ICsxMzIwLDE0IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpz
ZXRTdHlsZVRleHQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChzdHlsZSwgc3R5bGUgPT0gaW5saW5lU3R5bGUoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CisKKyAgICBDb250ZW50U2VjdXJpdHlQb2xpY3kqIHBvbGljeSA9IG1fZWxlbWVudC0+
b3duZXJEb2N1bWVudCgpID8gbV9lbGVtZW50LT5vd25lckRvY3VtZW50KCktPmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpIDogMDsKKyAgICBpZiAocG9saWN5KQorICAgICAgICBwb2xpY3ktPnNldE92
ZXJyaWRlQWxsb3dJbmxpbmVTdHlsZSh0cnVlKTsKICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0
ZSgic3R5bGUiLCB0ZXh0LCBlYyk7CisgICAgaWYgKHBvbGljeSkKKyAgICAgICAgcG9saWN5LT5z
ZXRPdmVycmlkZUFsbG93SW5saW5lU3R5bGUoZmFsc2UpOworCiAgICAgbV9zdHlsZVRleHQgPSB0
ZXh0OwogICAgIG1faXNTdHlsZVRleHRWYWxpZCA9IHRydWU7CiAgICAgbV9ydWxlU291cmNlRGF0
YS5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
Y3BwCmluZGV4IDk2MDJjZjc1OTlhZDhiYmU3ODg4MDdkMmIwZmVkYTNmMTQzYjI4OTMuLjgzYjYy
NDY1YmU3OGFhOWRjZjYyODhkNzVjMTUwYmZiMmNlMTU5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTQ4Nyw2ICs0ODcsNyBAQCBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdQogICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQpCiAgICAgLCBtX3JlcG9ydE9ubHkoZmFsc2UpCiAgICAgLCBtX2hh
dmVTYW5kYm94UG9saWN5KGZhbHNlKQorICAgICwgbV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dl
ZChmYWxzZSkKIHsKIH0KIApAQCAtNjIyLDcgKzYyMyw3IEBAIGJvb2wgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd0lubGluZVNjcmlwdCgpIGNvbnN0CiBib29sIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6YWxsb3dJbmxpbmVTdHlsZSgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoIlJlZnVzZWQgdG8gYXBwbHkgaW5saW5lIHN0eWxl
IGJlY2F1c2Ugb2YgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kuXG4iKSk7Ci0gICAgcmV0dXJuIGNo
ZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVjdGl2ZShtX3N0eWxlU3Jj
LmdldCgpKSwgY29uc29sZU1lc3NhZ2UpOworICAgIHJldHVybiBtX292ZXJyaWRlSW5saW5lU3R5
bGVBbGxvd2VkIHx8IGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKG9wZXJhdGl2ZURpcmVj
dGl2ZShtX3N0eWxlU3JjLmdldCgpKSwgY29uc29sZU1lc3NhZ2UpOwogfQogCiBib29sIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dFdmFsKCkgY29uc3QKQEAgLTY3OSw2ICs2ODAsMTEgQEAg
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Q29ubmVjdEZyb21Tb3VyY2UoY29uc3Qg
S1VSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiBjaGVja1NvdXJjZUFuZFJlcG9ydFZpb2xhdGlv
bihvcGVyYXRpdmVEaXJlY3RpdmUobV9jb25uZWN0U3JjLmdldCgpKSwgdXJsLCB0eXBlKTsKIH0K
IAordm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNldE92ZXJyaWRlQWxsb3dJbmxpbmVTdHls
ZShib29sIHZhbHVlKQoreworICAgIG1fb3ZlcnJpZGVJbmxpbmVTdHlsZUFsbG93ZWQgPSB2YWx1
ZTsKK30KKwogLy8gcG9saWN5ICAgICAgICAgICAgPSBkaXJlY3RpdmUtbGlzdAogLy8gZGlyZWN0
aXZlLWxpc3QgICAgPSBbIGRpcmVjdGl2ZSAqKCAiOyIgWyBkaXJlY3RpdmUgXSApIF0KIC8vCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAppbmRleCBmYTc2MzI0
NjVhNTA5N2U4MDg1ZDMxNDA3ZjIzZTlkYjk5NTczNDYzLi41Y2VlYjY4NWU2YWJkZTk3MGJjMTk0
Y2Y0NmU4MDUwYjBlNzQyNWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmgKQEAgLTcwLDYgKzcwLDggQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dNZWRp
YUZyb21Tb3VyY2UoY29uc3QgS1VSTCYpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dDb25uZWN0RnJv
bVNvdXJjZShjb25zdCBLVVJMJikgY29uc3Q7CiAKKyAgICB2b2lkIHNldE92ZXJyaWRlQWxsb3dJ
bmxpbmVTdHlsZShib29sKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDb250ZW50U2VjdXJp
dHlQb2xpY3koU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCkBAIC0xMDcsNiArMTA5LDcgQEAg
cHJpdmF0ZToKICAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX21lZGlhU3JjOwogICAgIE93blB0
cjxDU1BEaXJlY3RpdmU+IG1fY29ubmVjdFNyYzsKICAgICBib29sIG1faGF2ZVNhbmRib3hQb2xp
Y3k7CisgICAgYm9vbCBtX292ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2VkOwogICAgIFZlY3RvcjxL
VVJMPiBtX3JlcG9ydFVSTHM7CiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2YzMDQwNGMzMWI3MDFjZTU1NGU3MGQy
ZDIzZWJlNWEyZDRlMjk5My4uN2E1OWRiZjRiYTE4NWM1MzRhM2QwODVkN2ViZGM0OGQ1ZWQyZmRi
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAzLTAyICBBbGV4YW5kZXIgUGF2bG92ICA8
YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW1N0eWxlc10g
W0NSQVNIXSBIYW5kbGUgcnVsZSBhZGRpdGlvbiBhbmQgaW5saW5lIHN0eWxlIGVkaXRpbmcgZmFp
bHVyZSBkdWUgdG8gQ29udGVudC1TZWN1cml0eS1Qb2xpY3kgaW4gdGhlIHBhZ2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMDI0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVz
L2FkZC1uZXctcnVsZS1pbmxpbmUtc3R5bGUtY3NwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL3N0eWxlcy9hZGQtbmV3LXJ1bGUtaW5saW5lLXN0eWxlLWNzcC5odG1s
OiBBZGRlZC4KKwogMjAxMi0wMy0wMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCBzdWdnZXN0aW9ucyBp
biBXYXRjaCBFeHByZXNzaW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9hZGQtbmV3LXJ1bGUtaW5saW5lLXN0eWxlLWNzcC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1pbmxpbmUtc3R5bGUtY3NwLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MDk1MDZjMjQ3MDA0ODljOTRiM2U0YWVkNzMxNTIyMGY1N2Jm
OGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9hZGQt
bmV3LXJ1bGUtaW5saW5lLXN0eWxlLWNzcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAor
VGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgcnVsZSBkb2VzIG5vdCBjcmFzaCB0aGUgcmVuZGVyZXIg
YW5kIG1vZGlmeWluZyBhbiBpbmxpbmUgc3R5bGUgZG9lcyBub3QgcmVwb3J0IGVycm9ycyB3aGVu
IGZvcmJpZGRlbiBieSBDb250ZW50LVNlY3VyaXR5LVBvbGljeS4KKworVGV4dAorCitSdW5uaW5n
OiB0ZXN0U2V0VXAKKworUnVubmluZzogdGVzdEFkZFJ1bGUKKz09PSBSdWxlIGFkZGVkID09PQor
I2luc3BlY3RlZCB7fQorQWZmZWN0cyBzZWxlY3RlZCAoI2luc3BlY3RlZCkgbm9kZTogdHJ1ZQor
CitSdW5uaW5nOiB0ZXN0QWRkUHJvcGVydHkKKz09PSBBZGRlZCBydWxlIG1vZGlmaWVkID09PQor
d2lkdGg6IDEwMCU7Cis9PT0gU2VsZWN0b3IgY2hhbmdlZCA9PT0KK2JvZHkgeworICAgIHdpZHRo
OiAxMDAlOworfQorQWZmZWN0cyBzZWxlY3RlZCAoI2luc3BlY3RlZCkgbm9kZTogZmFsc2UKKwor
UnVubmluZzogdGVzdE1vZGlmeUlubGluZVN0eWxlCis9PT0gSW5saW5lIHN0eWxlIG1vZGlmaWVk
ID09PQorZm9udC1zaXplOiAxNHB4OworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1pbmxpbmUtc3R5bGUtY3NwLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL2FkZC1uZXctcnVsZS1pbmxpbmUtc3R5bGUtY3NwLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzY3NjU4NWU4N2ZhYjA1OTU2ZTUwOWM2ZTRkZDI3ZjVhYTdiZDFmMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvYWRkLW5ldy1ydWxlLWlu
bGluZS1zdHlsZS1jc3AuaHRtbApAQCAtMCwwICsxLDEyNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGh0dHAtZXF1aXY9Ingtd2Via2l0LWNzcCIgY29udGVudD0ic3R5bGUtc3JjIGh0dHBzOi8v
Kjo0NDMiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIHZhciBub2RlSWQ7CisgICAgdmFyIHJ1bGU7CisKKyAgICBXZWJJbnNwZWN0
b3Iuc2hvd1BhbmVsKCJlbGVtZW50cyIpOworICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRl
KFsKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNldFVwKG5leHQpIHsKKyAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBuZXh0KTsKKyAg
ICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0QWRkUnVsZShuZXh0KQorICAgICAgICB7
CisgICAgICAgICAgICB2YXIgaWRUb0RPTU5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuX2lk
VG9ET01Ob2RlOworICAgICAgICAgICAgZm9yICh2YXIgaWQgaW4gaWRUb0RPTU5vZGUpIHsKKyAg
ICAgICAgICAgICAgICBub2RlID0gaWRUb0RPTU5vZGVbaWRdOworICAgICAgICAgICAgICAgIGlm
IChub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiaWQiKSA9PT0gImluc3Bl
Y3RlZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZUlkID0gcGFyc2VJbnQoaWQsIDEwKTsK
KyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmFkZFJ1bGUobm9kZUlk
LCAiI2luc3BlY3RlZCIsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2sobmV3UnVsZSwgZG9lc0FmZmVj
dFNlbGVjdGVkTm9kZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBydWxlID0gbmV3
UnVsZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IFJ1bGUg
YWRkZWQgPT09Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQocnVs
ZS5zZWxlY3RvclRleHQgKyAiIHsiICsgcnVsZS5zdHlsZS5jc3NUZXh0ICsgIn0iKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWZmZWN0cyBzZWxlY3RlZCAoI2lu
c3BlY3RlZCkgbm9kZTogIiArIGRvZXNBZmZlY3RTZWxlY3RlZE5vZGUpOworICAgICAgICAgICAg
ICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZmFpbHVy
ZUNhbGxiYWNrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiWyFdIEZhaWxlZCB0byBhZGQgcnVsZS4iKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAor
CisgICAgICAgIGZ1bmN0aW9uIHRlc3RBZGRQcm9wZXJ0eShuZXh0KQorICAgICAgICB7CisgICAg
ICAgICAgICBydWxlLnN0eWxlLmFwcGVuZFByb3BlcnR5KCJ3aWR0aCIsICIxMDAlIiwgY2FsbGJh
Y2spOworCisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhuZXdTdHlsZSkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFkZGVk
IHJ1bGUgbW9kaWZpZWQgPT09Iik7CisgICAgICAgICAgICAgICAgaWYgKCFuZXdTdHlsZSkgewor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiWyFdIE5vIHZhbGlk
IHJ1bGUgc3R5bGUgcmVjZWl2ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICBkdW1wUHJvcGVydGllcyhuZXdTdHlsZSk7CisgICAgICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5jc3NNb2RlbC5zZXRSdWxlU2VsZWN0b3IocnVsZS5pZCwgbm9kZUlkLCAiYm9k
eSIsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjayhy
dWxlLCBkb2VzQWZmZWN0U2VsZWN0ZWROb2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gU2VsZWN0b3IgY2hhbmdlZCA9PT0iKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChydWxlLnNlbGVjdG9yVGV4
dCArICIgeyIgKyBydWxlLnN0eWxlLmNzc1RleHQgKyAifSIpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZmZlY3RzIHNlbGVjdGVkICgjaW5zcGVjdGVkKSBub2Rl
OiAiICsgZG9lc0FmZmVjdFNlbGVjdGVkTm9kZSk7CisKKyAgICAgICAgICAgICAgICBuZXh0KCk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGZhaWx1cmVDYWxsYmFjaygp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlshXSBGYWlsZWQgdG8gY2hhbmdlIHNlbGVjdG9yIik7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAg
ICAgICBmdW5jdGlvbiB0ZXN0TW9kaWZ5SW5saW5lU3R5bGUobmV4dCkKKyAgICAgICAgeworICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldElubGluZVN0eWxlc0FzeW5jKG5vZGVJ
ZCwgc3R5bGVzQ2FsbGJhY2spOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdHlsZXNDYWxsYmFj
ayhpbmxpbmVTdHlsZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlubGlu
ZVN0eWxlKSB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgaW5saW5lU3R5bGUuYXBwZW5kUHJvcGVydHkoImZvbnQtc2l6ZSIsICIxNHB4
IiwgYXBwZW5kQ2FsbGJhY2spOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBhcHBlbmRDYWxsYmFjayhuZXdTdHlsZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IElubGluZSBzdHlsZSBtb2RpZmllZCA9PT0i
KTsKKyAgICAgICAgICAgICAgICBpZiAoIW5ld1N0eWxlKSB7CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJObyB2YWxpZCBpbmxpbmUgc3R5bGUgcmVjZWl2ZWQi
KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGR1bXBQcm9wZXJ0aWVzKG5ld1N0eWxlKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBdKTsKKworICAgIGZ1bmN0aW9uIGR1bXBQ
cm9wZXJ0aWVzKHN0eWxlKQorICAgIHsKKyAgICAgICBpZiAoIXN0eWxlKQorICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgdmFyIGFsbFByb3BlcnRpZXMgPSBzdHlsZS5hbGxQcm9wZXJ0aWVzOwor
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsUHJvcGVydGllcy5sZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoYWxsUHJvcGVydGllc1tpXS50ZXh0KTsK
KyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPHA+CitUZXN0cyB0aGF0IGFkZGluZyBhIG5ldyBydWxlIGRvZXMgbm90IGNyYXNoIHRoZSBy
ZW5kZXJlciBhbmQgbW9kaWZ5aW5nIGFuIGlubGluZSBzdHlsZSBkb2VzIG5vdCByZXBvcnQgZXJy
b3JzIHdoZW4gZm9yYmlkZGVuIGJ5IENvbnRlbnQtU2VjdXJpdHktUG9saWN5LgorPC9wPgorCis8
ZGl2IGlkPSJpbnNwZWN0ZWQiPlRleHQ8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="132718"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>