<?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>71099</bug_id>
          
          <creation_ts>2011-10-28 02:12:47 -0700</creation_ts>
          <short_desc>Reset line numbers for scripts generated with document.write.</short_desc>
          <delta_ts>2011-10-28 11:30:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>abarth</cc>
    
    <cc>podivilov</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>492325</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-28 02:12:47 -0700</bug_when>
    <thetext>We need to distinguish scripts generated with document.write from the ones generated by the parser of the original resource. Otherwise we bind them to the resource and hence lose them from the debugging UI.

Consider the following example:

1: &lt;html&gt;
2: &lt;script&gt;function aa() {}&lt;/script&gt;
3: &lt;script&gt;function bb() {}&lt;/script&gt;
4: &lt;script&gt;document.write(&quot;&lt;scrip&quot; + &quot;t&gt;\n\n\n\n\nfunction cc() {}&lt;/sc&quot; + &quot;ript&gt;&quot;);&lt;/script&gt;
5: &lt;script&gt;function dd() {}&lt;/script&gt;
6: &lt;/html&gt;

As a result, following scripts are reported to be parsed (all sharing the main resource url):

line 2-2
line 3-3
line 4-10
line 5-5

As a result of this patch, scripts will be annotated:

line 2-2
line 3-3
line 0-6
line 5-5

We will then render scripts starting at 0 as standalone entities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492397</commentid>
    <comment_count>1</comment_count>
      <attachid>112851</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-28 05:31:29 -0700</bug_when>
    <thetext>Created attachment 112851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492401</commentid>
    <comment_count>2</comment_count>
      <attachid>112851</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-28 05:46:49 -0700</bug_when>
    <thetext>Comment on attachment 112851
Patch

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

&gt; LayoutTests/http/tests/inspector-enabled/document-write.html:5
&gt; +&lt;script&gt;console.log(&quot;Line 5&quot;);&lt;/script&gt;

Please test also that JS handlers written in html attributes will have positions different from scripts created with document.write.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492405</commentid>
    <comment_count>3</comment_count>
      <attachid>112852</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-28 06:04:04 -0700</bug_when>
    <thetext>Created attachment 112852
[Patch] With inline handler test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492408</commentid>
    <comment_count>4</comment_count>
      <attachid>112852</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-28 06:17:22 -0700</bug_when>
    <thetext>Comment on attachment 112852
[Patch] With inline handler test case.

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

&gt; LayoutTests/http/tests/inspector-enabled/document-write.html:27
&gt; +Tests that console reports zero line number for scripts generated with document.write.

Please add a link to the bug in this description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492411</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-28 06:27:53 -0700</bug_when>
    <thetext>Committed r98724: &lt;http://trac.webkit.org/changeset/98724&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492542</commentid>
    <comment_count>6</comment_count>
      <attachid>112852</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-28 11:15:05 -0700</bug_when>
    <thetext>Comment on attachment 112852
[Patch] With inline handler test case.

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

&gt; Source/WebCore/dom/ScriptElement.cpp:201
&gt; +    Document* document = m_element-&gt;document();

In general it&apos;s dangerous to store references like this in a raw pointer.  If anything in this script executes script between this program point and any use of this variable, you&apos;re going to have a security vulnerability.  It&apos;s much better to continue to access the document via some protected point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492554</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-28 11:28:34 -0700</bug_when>
    <thetext> &gt; In general it&apos;s dangerous to store references like this in a raw pointer.  If anything in this script executes script between this program point and any use of this variable, you&apos;re going to have a security vulnerability.  It&apos;s much better to continue to access the document via some protected point.

I went through the code originally and have not noticed any uncontrolled lack of control flow / re-enterability. I can roll this refactoring back though in order to maintain the security pattern you suggest in case it is common to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492558</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-28 11:30:00 -0700</bug_when>
    <thetext>I checked them too and I didn&apos;t see any problem.  It&apos;s just a trap waiting to catch someone.  It&apos;s up to you whether you&apos;d like to change it back.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112851</attachid>
            <date>2011-10-28 05:31:29 -0700</date>
            <delta_ts>2011-10-28 06:03:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71099-20111028163127.patch</filename>
            <type>text/plain</type>
            <size>9071</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3MDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJi
YTg3NDg2NjQ3Mzk0MGIzODA5YzRlMTNiYjkzYTRkYTFmZDBhNDQuLjE4Y2MzMGVkNzcwOWQ1YzAw
OTMzMDlkOWU1ZTJjMTU3ZTQxMzY1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTEwLTI4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXNldCBsaW5lIG51bWJlcnMgZm9yIHNjcmlwdHMgZ2VuZXJhdGVkIHdp
dGggZG9jdW1lbnQud3JpdGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL3RleHQvVGV4dFBvc2l0aW9uLmg6CisgICAgICAgIChXVEY6Ok9yZGlu
YWxOdW1iZXI6Ok9yZGluYWxOdW1iZXIpOgorCiAyMDExLTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxk
YmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBDTWFrZTogQWRkIHN1cHBvcnQgdG8gb3B0aW9uYWxs
eSBpbnN0YWxsIHRoZSBidWlsdCBKYXZhU2NyaXB0IHNoZWxsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M1N2Vj
MDJmOWM0MWQ0MzRlYzUxZTM2M2Y4OTllYTlhY2Y2Y2QzZS4uYWQ5ZjFlZmMwMGY0ODUzYzY2MWI3
YmI2Njg1YjM3NGFiODEzZDU3NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTEw
LTI4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXNl
dCBsaW5lIG51bWJlcnMgZm9yIHNjcmlwdHMgZ2VuZXJhdGVkIHdpdGggZG9jdW1lbnQud3JpdGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0
dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9jdW1lbnQtd3JpdGUuaHRtbAorCisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNJbkRvY3Vt
ZW50V3JpdGUpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQpOgorCiAyMDExLTEwLTI4ICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBhbGxvd1Nj
cmlwdEZyb21Tb3VyY2UgY2FsbGJhY2sgdG8gRnJhbWVMb2FkZXJDbGllbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9zaXRpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9zaXRpb24uaAppbmRleCAxZjBlOGU1ODliN2M2
Yzk5NjczZmE2OGIyNjdlZjRmZWY3YmRhNzk3Li5iZTQ5YzE1N2E1MGI3YmEzNTI5N2Y4YjQxYjUy
NTkxYzFiZTQyZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
VGV4dFBvc2l0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1RleHRQ
b3NpdGlvbi5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIE9yZGluYWxOdW1iZXIgewogcHVibGlj
OgogICAgIHN0YXRpYyBPcmRpbmFsTnVtYmVyIGZyb21aZXJvQmFzZWRJbnQoaW50IHplcm9CYXNl
ZEludCkgeyByZXR1cm4gT3JkaW5hbE51bWJlcih6ZXJvQmFzZWRJbnQpOyB9CiAgICAgc3RhdGlj
IE9yZGluYWxOdW1iZXIgZnJvbU9uZUJhc2VkSW50KGludCBvbmVCYXNlZEludCkgeyByZXR1cm4g
T3JkaW5hbE51bWJlcihvbmVCYXNlZEludCAtIDEpOyB9Ci0gICAgT3JkaW5hbE51bWJlcigpIHsg
fQorICAgIE9yZGluYWxOdW1iZXIoKSA6IG1femVyb0Jhc2VkVmFsdWUoMCkgeyB9CiAKICAgICBp
bnQgemVyb0Jhc2VkSW50KCkgY29uc3QgeyByZXR1cm4gbV96ZXJvQmFzZWRWYWx1ZTsgfQogICAg
IGludCBvbmVCYXNlZEludCgpIGNvbnN0IHsgcmV0dXJuIG1femVyb0Jhc2VkVmFsdWUgKyAxOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQxNTNkNDczODVjYzc0NTVhZTcwYjIwOTBjZjgyMDcy
ZGVjNDY5MjcuLjRhNGE5MzM5Yzc3ZTRmODQyNzRkOWRiMTFkOWM0NmM1NWU4OTU5NDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xMTA1LDYgKzExMDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZW1vdmVDYWNoZWRNaWNyb0RhdGFJdGVtTGlzdChNaWNyb0RhdGFJdGVtTGlzdCosIGNvbnN0IFN0
cmluZyYpOwogI2VuZGlmCiAgICAgCisgICAgYm9vbCBpc0luRG9jdW1lbnRXcml0ZSgpIHsgcmV0
dXJuIG1fd3JpdGVSZWN1cnNpb25EZXB0aCA+IDA7IH0KKwogcHJvdGVjdGVkOgogICAgIERvY3Vt
ZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggY2E0N2Q1ZjdjZjFiYjg0YjA5Zjg5
NjA1MDMyMTcxMzIxYmUxOTZlYi4uODM5ZmI2MzU4Zjg5YjQ2NmVmM2FhYzE5MGVkODVlOTRiNWNm
YTkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMTk4LDE0ICsxOTgs
MTUgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlv
biYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBtX2FscmVhZHlTdGFydGVkID0gdHJ1
ZTsKIAogICAgIC8vIEZJWE1FOiBJZiBzY3JpcHQgaXMgcGFyc2VyIGluc2VydGVkLCB2ZXJpZnkg
aXQncyBzdGlsbCBpbiB0aGUgb3JpZ2luYWwgZG9jdW1lbnQuCisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOwogCiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkg
d2UnZCBsaWtlIHRvIGV2YWx1YXRlIHNjcmlwdHMgd2hpY2ggYXJlIGluc2VydGVkIGludG8gYQog
ICAgIC8vIHZpZXdsZXNzIGRvY3VtZW50IGJ1dCB0aGlzJ2xsIGRvIGZvciBub3cuCiAgICAgLy8g
U2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MjcKLSAgICBpZiAo
IW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICBpZiAoIWRvY3VtZW50LT5mcmFt
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIW1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+ZnJhbWUoKS0+c2NyaXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRl
U2NyaXB0KSkKKyAgICBpZiAoIWRvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS0+Y2FuRXhlY3V0
ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1dGVTY3JpcHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBOb2RlKiBhbmNlc3RvciA9IG1fZWxlbWVudC0+cGFyZW50Tm9kZSgpOwpAQCAtMjIzLDcg
KzIyNCw3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9z
aXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgaWYgKCFjaGFyc2V0QXR0cmli
dXRlVmFsdWUoKS5pc0VtcHR5KCkpCiAgICAgICAgIG1fY2hhcmFjdGVyRW5jb2RpbmcgPSBjaGFy
c2V0QXR0cmlidXRlVmFsdWUoKTsKICAgICBlbHNlCi0gICAgICAgIG1fY2hhcmFjdGVyRW5jb2Rp
bmcgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNoYXJzZXQoKTsKKyAgICAgICAgbV9jaGFyYWN0
ZXJFbmNvZGluZyA9IGRvY3VtZW50LT5jaGFyc2V0KCk7CiAKICAgICBpZiAoaGFzU291cmNlQXR0
cmlidXRlKCkpCiAgICAgICAgIGlmICghcmVxdWVzdFNjcmlwdChzb3VyY2VBdHRyaWJ1dGVWYWx1
ZSgpKSkKQEAgLTIzNCwxNyArMjM1LDIwIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNj
cmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAg
ICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAoaGFzU291
cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1
ZSgpKQogICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKLSAgICBlbHNlIGlm
ICghaGFzU291cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhbV9lbGVtZW50
LT5kb2N1bWVudCgpLT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgeworICAgIGVsc2UgaWYgKCFo
YXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFkb2N1bWVudC0+aGF2
ZVN0eWxlc2hlZXRzTG9hZGVkKCkpIHsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9
IHRydWU7CiAgICAgICAgIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwogICAgIH0g
ZWxzZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSAm
JiAhbV9mb3JjZUFzeW5jKSB7CiAgICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVyID0gdHJ1ZTsK
LSAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cXVldWVTY3Jp
cHRGb3JFeGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6SU5fT1JE
RVJfRVhFQ1VUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQtPnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNj
cmlwdEZvckV4ZWN1dGlvbih0aGlzLCBtX2NhY2hlZFNjcmlwdCwgU2NyaXB0UnVubmVyOjpJTl9P
UkRFUl9FWEVDVVRJT04pOwogICAgICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMp
OwogICAgIH0gZWxzZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpCiAgICAgICAgIG1fY2FjaGVk
U2NyaXB0LT5hZGRDbGllbnQodGhpcyk7Ci0gICAgZWxzZQotICAgICAgICBleGVjdXRlU2NyaXB0
KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0Q29udGVudCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PnVybCgpLCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIFJl
c2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgorICAgICAgICBUZXh0UG9zaXRp
b24gcG9zaXRpb24gPSBkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlv
bigpIDogc2NyaXB0U3RhcnRQb3NpdGlvbjsKKyAgICAgICAgZXhlY3V0ZVNjcmlwdChTY3JpcHRT
b3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQtPnVybCgpLCBwb3NpdGlvbikpOwor
ICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE4OTljNGEyNDE1ZWRiMjhkNDNi
NTVjMDE0YTUzM2ZjMzkyNTJhN2IuLjliNzA4NzI0NWY3NGQ2NGFkMGVhNzFiODBkMmI3MjZiNzBl
Mjc3ZWQgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMC0yOCAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVzZXQgbGluZSBudW1iZXJzIGZvciBz
Y3JpcHRzIGdlbmVyYXRlZCB3aXRoIGRvY3VtZW50LndyaXRlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwOTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJs
ZWQvZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci1lbmFibGVkL2RvY3VtZW50LXdyaXRlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2RvbS9uZXN0ZWQtc2NyaXB0LWV4Y2VwdGlv
bnMtZXhwZWN0ZWQudHh0OgorCiAyMDExLTEwLTI4ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBhbGxvd1NjcmlwdEZyb21Tb3VyY2UgY2FsbGJh
Y2sgdG8gRnJhbWVMb2FkZXJDbGllbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9kb2N1bWVudC13cml0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGQ3ZTY1ZjNlZTgzNjliM2Q5ZjM5OTZlOWRkMGQ3N2QyZmQ1MTY3
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVu
YWJsZWQvZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDU6IExpbmUgNQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IExpbmUg
NgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IExpbmUgMSBpbiBkb2N1bWVudC53cml0ZQorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQ6IExpbmUgNCBpbiBkb2N1bWVudC53cml0ZQorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDg6IExpbmUgOAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IHNjcmlwdCBl
bGVtZW50CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogZG9jdW1lbnQud3JpdGUgZnJvbSBvbmxv
YWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxl
ZC9kb2N1bWVudC13cml0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3It
ZW5hYmxlZC9kb2N1bWVudC13cml0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1YmMyY2MwMjY0MWNmM2Rh
YjNlOWRmZWQ2OWZiZDc4ZDAxMTdhMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvY3VtZW50LXdyaXRlLmh0bWwKQEAgLTAsMCAr
MSwzMiBAQAorPGh0bWw+Cis8aGVhZD4KKworCis8c2NyaXB0PmNvbnNvbGUubG9nKCJMaW5lIDUi
KTs8L3NjcmlwdD4KKzxzY3JpcHQ+Y29uc29sZS5sb2coIkxpbmUgNiIpOzwvc2NyaXB0PgorPHNj
cmlwdD5kb2N1bWVudC53cml0ZSgiPHNjcmlwIiArICJ0PmNvbnNvbGUubG9nKFwiTGluZSAxIGlu
IGRvY3VtZW50LndyaXRlXCIpO1xuXG5cbmNvbnNvbGUubG9nKFwiTGluZSA0IGluIGRvY3VtZW50
LndyaXRlXCIpOzwvc2MiICsgInJpcHQ+Iik7PC9zY3JpcHQ+Cis8c2NyaXB0PmNvbnNvbGUubG9n
KCJMaW5lIDgiKTs8L3NjcmlwdD4KKworPHNjcmlwdD4KKworZnVuY3Rpb24gb25sb2FkKCkKK3sK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic2NyaXB0Iik7CisgICAgc2NyaXB0LnRleHRDb250ZW50ID0gImNvbnNvbGUu
bG9nKFwic2NyaXB0IGVsZW1lbnRcIikiOworICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQo
c2NyaXB0KTsKKyAgICBkb2N1bWVudC53cml0ZSgiPHNjcmlwIiArICJ0PmNvbnNvbGUubG9nKFwi
ZG9jdW1lbnQud3JpdGUgZnJvbSBvbmxvYWRcIik7PC9zYyIgKyAicmlwdD4iKTsKK30KKworPC9z
Y3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgorPHA+CitUZXN0cyB0
aGF0IGNvbnNvbGUgcmVwb3J0cyB6ZXJvIGxpbmUgbnVtYmVyIGZvciBzY3JpcHRzIGdlbmVyYXRl
ZCB3aXRoIGRvY3VtZW50LndyaXRlLgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9kb20vbmVzdGVkLXNj
cmlwdC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9mYXN0L2RvbS9uZXN0ZWQtc2NyaXB0LWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDY2ZDk5NDVlNzJiYmNhOTA1MWQwOTA5NjhmNzk4NzMzOWZlMDVhYmUuLjBiMWM5OGQ0MGMx
MzYzOGVhMWRkODNhOTBjODhkNTY5ZGFmNDc4MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2RvbS9uZXN0ZWQtc2NyaXB0LWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2Rv
bS9uZXN0ZWQtc2NyaXB0LWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMiBAQAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBVbmNhdWdodCBCYWRuZXNzIDEwLDAwMAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFVuY2F1Z2h0IEJhZG5lc3MgMTAsMDAwCiBUaGlzIHRlc3QgY2hl
Y2tzIHRoYXQgZXhjZXB0aW9ucyBpbiBuZXN0ZWQgc2NyaXB0cyBhcmUgbG9nZ2VkIHByb3Blcmx5
LiBBbiBleGNlcHRpb24gbmFtZWQgIkJhZG5lc3MgMTAsMDAwIiBzaG91bGQgYmUgbG9nZ2VkIHBy
b3Blcmx5Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112852</attachid>
            <date>2011-10-28 06:04:04 -0700</date>
            <delta_ts>2011-10-28 11:15:05 -0700</delta_ts>
            <desc>[Patch] With inline handler test case.</desc>
            <filename>bug-71099-20111028170402.patch</filename>
            <type>text/plain</type>
            <size>9129</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3MDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJi
YTg3NDg2NjQ3Mzk0MGIzODA5YzRlMTNiYjkzYTRkYTFmZDBhNDQuLjE4Y2MzMGVkNzcwOWQ1YzAw
OTMzMDlkOWU1ZTJjMTU3ZTQxMzY1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTEwLTI4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXNldCBsaW5lIG51bWJlcnMgZm9yIHNjcmlwdHMgZ2VuZXJhdGVkIHdp
dGggZG9jdW1lbnQud3JpdGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTA5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL3RleHQvVGV4dFBvc2l0aW9uLmg6CisgICAgICAgIChXVEY6Ok9yZGlu
YWxOdW1iZXI6Ok9yZGluYWxOdW1iZXIpOgorCiAyMDExLTEwLTI3ICBEYW5pZWwgQmF0ZXMgIDxk
YmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBDTWFrZTogQWRkIHN1cHBvcnQgdG8gb3B0aW9uYWxs
eSBpbnN0YWxsIHRoZSBidWlsdCBKYXZhU2NyaXB0IHNoZWxsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M1N2Vj
MDJmOWM0MWQ0MzRlYzUxZTM2M2Y4OTllYTlhY2Y2Y2QzZS4uYWQ5ZjFlZmMwMGY0ODUzYzY2MWI3
YmI2Njg1YjM3NGFiODEzZDU3NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTEw
LTI4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXNl
dCBsaW5lIG51bWJlcnMgZm9yIHNjcmlwdHMgZ2VuZXJhdGVkIHdpdGggZG9jdW1lbnQud3JpdGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0
dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9jdW1lbnQtd3JpdGUuaHRtbAorCisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aXNJbkRvY3Vt
ZW50V3JpdGUpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQpOgorCiAyMDExLTEwLTI4ICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBhbGxvd1Nj
cmlwdEZyb21Tb3VyY2UgY2FsbGJhY2sgdG8gRnJhbWVMb2FkZXJDbGllbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9zaXRpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9zaXRpb24uaAppbmRleCAxZjBlOGU1ODliN2M2
Yzk5NjczZmE2OGIyNjdlZjRmZWY3YmRhNzk3Li5iZTQ5YzE1N2E1MGI3YmEzNTI5N2Y4YjQxYjUy
NTkxYzFiZTQyZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
VGV4dFBvc2l0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1RleHRQ
b3NpdGlvbi5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIE9yZGluYWxOdW1iZXIgewogcHVibGlj
OgogICAgIHN0YXRpYyBPcmRpbmFsTnVtYmVyIGZyb21aZXJvQmFzZWRJbnQoaW50IHplcm9CYXNl
ZEludCkgeyByZXR1cm4gT3JkaW5hbE51bWJlcih6ZXJvQmFzZWRJbnQpOyB9CiAgICAgc3RhdGlj
IE9yZGluYWxOdW1iZXIgZnJvbU9uZUJhc2VkSW50KGludCBvbmVCYXNlZEludCkgeyByZXR1cm4g
T3JkaW5hbE51bWJlcihvbmVCYXNlZEludCAtIDEpOyB9Ci0gICAgT3JkaW5hbE51bWJlcigpIHsg
fQorICAgIE9yZGluYWxOdW1iZXIoKSA6IG1femVyb0Jhc2VkVmFsdWUoMCkgeyB9CiAKICAgICBp
bnQgemVyb0Jhc2VkSW50KCkgY29uc3QgeyByZXR1cm4gbV96ZXJvQmFzZWRWYWx1ZTsgfQogICAg
IGludCBvbmVCYXNlZEludCgpIGNvbnN0IHsgcmV0dXJuIG1femVyb0Jhc2VkVmFsdWUgKyAxOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQxNTNkNDczODVjYzc0NTVhZTcwYjIwOTBjZjgyMDcy
ZGVjNDY5MjcuLjRhNGE5MzM5Yzc3ZTRmODQyNzRkOWRiMTFkOWM0NmM1NWU4OTU5NDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xMTA1LDYgKzExMDUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZW1vdmVDYWNoZWRNaWNyb0RhdGFJdGVtTGlzdChNaWNyb0RhdGFJdGVtTGlzdCosIGNvbnN0IFN0
cmluZyYpOwogI2VuZGlmCiAgICAgCisgICAgYm9vbCBpc0luRG9jdW1lbnRXcml0ZSgpIHsgcmV0
dXJuIG1fd3JpdGVSZWN1cnNpb25EZXB0aCA+IDA7IH0KKwogcHJvdGVjdGVkOgogICAgIERvY3Vt
ZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggY2E0N2Q1ZjdjZjFiYjg0YjA5Zjg5
NjA1MDMyMTcxMzIxYmUxOTZlYi4uODM5ZmI2MzU4Zjg5YjQ2NmVmM2FhYzE5MGVkODVlOTRiNWNm
YTkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMTk4LDE0ICsxOTgs
MTUgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlv
biYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYWMKICAgICBtX2FscmVhZHlTdGFydGVkID0gdHJ1
ZTsKIAogICAgIC8vIEZJWE1FOiBJZiBzY3JpcHQgaXMgcGFyc2VyIGluc2VydGVkLCB2ZXJpZnkg
aXQncyBzdGlsbCBpbiB0aGUgb3JpZ2luYWwgZG9jdW1lbnQuCisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpOwogCiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkg
d2UnZCBsaWtlIHRvIGV2YWx1YXRlIHNjcmlwdHMgd2hpY2ggYXJlIGluc2VydGVkIGludG8gYQog
ICAgIC8vIHZpZXdsZXNzIGRvY3VtZW50IGJ1dCB0aGlzJ2xsIGRvIGZvciBub3cuCiAgICAgLy8g
U2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MjcKLSAgICBpZiAo
IW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICBpZiAoIWRvY3VtZW50LT5mcmFt
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIW1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+ZnJhbWUoKS0+c2NyaXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRl
U2NyaXB0KSkKKyAgICBpZiAoIWRvY3VtZW50LT5mcmFtZSgpLT5zY3JpcHQoKS0+Y2FuRXhlY3V0
ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1dGVTY3JpcHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBOb2RlKiBhbmNlc3RvciA9IG1fZWxlbWVudC0+cGFyZW50Tm9kZSgpOwpAQCAtMjIzLDcg
KzIyNCw3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9z
aXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAgaWYgKCFjaGFyc2V0QXR0cmli
dXRlVmFsdWUoKS5pc0VtcHR5KCkpCiAgICAgICAgIG1fY2hhcmFjdGVyRW5jb2RpbmcgPSBjaGFy
c2V0QXR0cmlidXRlVmFsdWUoKTsKICAgICBlbHNlCi0gICAgICAgIG1fY2hhcmFjdGVyRW5jb2Rp
bmcgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNoYXJzZXQoKTsKKyAgICAgICAgbV9jaGFyYWN0
ZXJFbmNvZGluZyA9IGRvY3VtZW50LT5jaGFyc2V0KCk7CiAKICAgICBpZiAoaGFzU291cmNlQXR0
cmlidXRlKCkpCiAgICAgICAgIGlmICghcmVxdWVzdFNjcmlwdChzb3VyY2VBdHRyaWJ1dGVWYWx1
ZSgpKSkKQEAgLTIzNCwxNyArMjM1LDIwIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNj
cmlwdChjb25zdCBUZXh0UG9zaXRpb24mIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2FjCiAgICAg
ICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAoaGFzU291
cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNBdHRyaWJ1dGVWYWx1
ZSgpKQogICAgICAgICBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKLSAgICBlbHNlIGlm
ICghaGFzU291cmNlQXR0cmlidXRlKCkgJiYgbV9wYXJzZXJJbnNlcnRlZCAmJiAhbV9lbGVtZW50
LT5kb2N1bWVudCgpLT5oYXZlU3R5bGVzaGVldHNMb2FkZWQoKSkgeworICAgIGVsc2UgaWYgKCFo
YXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFkb2N1bWVudC0+aGF2
ZVN0eWxlc2hlZXRzTG9hZGVkKCkpIHsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9
IHRydWU7CiAgICAgICAgIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwogICAgIH0g
ZWxzZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSAm
JiAhbV9mb3JjZUFzeW5jKSB7CiAgICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVyID0gdHJ1ZTsK
LSAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cXVldWVTY3Jp
cHRGb3JFeGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6SU5fT1JE
RVJfRVhFQ1VUSU9OKTsKKyAgICAgICAgZG9jdW1lbnQtPnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNj
cmlwdEZvckV4ZWN1dGlvbih0aGlzLCBtX2NhY2hlZFNjcmlwdCwgU2NyaXB0UnVubmVyOjpJTl9P
UkRFUl9FWEVDVVRJT04pOwogICAgICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMp
OwogICAgIH0gZWxzZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkpCiAgICAgICAgIG1fY2FjaGVk
U2NyaXB0LT5hZGRDbGllbnQodGhpcyk7Ci0gICAgZWxzZQotICAgICAgICBleGVjdXRlU2NyaXB0
KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0Q29udGVudCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PnVybCgpLCBzY3JpcHRTdGFydFBvc2l0aW9uKSk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIFJl
c2V0IGxpbmUgbnVtYmVyaW5nIGZvciBuZXN0ZWQgd3JpdGVzLgorICAgICAgICBUZXh0UG9zaXRp
b24gcG9zaXRpb24gPSBkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSA/IFRleHRQb3NpdGlv
bigpIDogc2NyaXB0U3RhcnRQb3NpdGlvbjsKKyAgICAgICAgZXhlY3V0ZVNjcmlwdChTY3JpcHRT
b3VyY2VDb2RlKHNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQtPnVybCgpLCBwb3NpdGlvbikpOwor
ICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE4OTljNGEyNDE1ZWRiMjhkNDNi
NTVjMDE0YTUzM2ZjMzkyNTJhN2IuLjliNzA4NzI0NWY3NGQ2NGFkMGVhNzFiODBkMmI3MjZiNzBl
Mjc3ZWQgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMC0yOCAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVzZXQgbGluZSBudW1iZXJzIGZvciBz
Y3JpcHRzIGdlbmVyYXRlZCB3aXRoIGRvY3VtZW50LndyaXRlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwOTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJs
ZWQvZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luc3BlY3Rvci1lbmFibGVkL2RvY3VtZW50LXdyaXRlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2RvbS9uZXN0ZWQtc2NyaXB0LWV4Y2VwdGlv
bnMtZXhwZWN0ZWQudHh0OgorCiAyMDExLTEwLTI4ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBhbGxvd1NjcmlwdEZyb21Tb3VyY2UgY2FsbGJh
Y2sgdG8gRnJhbWVMb2FkZXJDbGllbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9kb2N1bWVudC13cml0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDc3NzRiNjkyZTMxMmU1YmY5OWQ5ZDY1ZjJlMDY2ODY4M2FlN2Jl
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVu
YWJsZWQvZG9jdW1lbnQtd3JpdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDQ6IExpbmUgNAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU6IExpbmUg
NQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IExpbmUgMSBpbiBkb2N1bWVudC53cml0ZQorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQ6IExpbmUgNCBpbiBkb2N1bWVudC53cml0ZQorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDc6IExpbmUgNworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI1OiBMaW5lIDI1
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogc2NyaXB0IGVsZW1lbnQKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBkb2N1bWVudC53cml0ZSBmcm9tIG9ubG9hZAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvY3VtZW50LXdyaXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvY3VtZW50LXdyaXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmQxOTVhNmJjNmM2M2M0NjJmOTA3NmVmNDcwMzAxOWZmN2I4NWU3
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVu
YWJsZWQvZG9jdW1lbnQtd3JpdGUuaHRtbApAQCAtMCwwICsxLDMxIEBACis8aHRtbD4KKzxoZWFk
PgorCis8c2NyaXB0PmNvbnNvbGUubG9nKCJMaW5lIDQiKTs8L3NjcmlwdD4KKzxzY3JpcHQ+Y29u
c29sZS5sb2coIkxpbmUgNSIpOzwvc2NyaXB0PgorPHNjcmlwdD5kb2N1bWVudC53cml0ZSgiPHNj
cmlwIiArICJ0PmNvbnNvbGUubG9nKFwiTGluZSAxIGluIGRvY3VtZW50LndyaXRlXCIpO1xuXG5c
bmNvbnNvbGUubG9nKFwiTGluZSA0IGluIGRvY3VtZW50LndyaXRlXCIpOzwvc2MiICsgInJpcHQ+
Iik7PC9zY3JpcHQ+Cis8c2NyaXB0PmNvbnNvbGUubG9nKCJMaW5lIDciKTs8L3NjcmlwdD4KKwor
PHNjcmlwdD4KKworZnVuY3Rpb24gb25sb2FkKCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisKKyAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7Cisg
ICAgc2NyaXB0LnRleHRDb250ZW50ID0gImNvbnNvbGUubG9nKFwic2NyaXB0IGVsZW1lbnRcIiki
OworICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKKyAgICBkb2N1bWVudC53
cml0ZSgiPHNjcmlwIiArICJ0PmNvbnNvbGUubG9nKFwiZG9jdW1lbnQud3JpdGUgZnJvbSBvbmxv
YWRcIik7PC9zYyIgKyAicmlwdD4iKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5
IG9ubG9hZD0iY29uc29sZS5sb2coJ0xpbmUgMjUnKTsgb25sb2FkKCk7Ij4KKzxwPgorVGVzdHMg
dGhhdCBjb25zb2xlIHJlcG9ydHMgemVybyBsaW5lIG51bWJlciBmb3Igc2NyaXB0cyBnZW5lcmF0
ZWQgd2l0aCBkb2N1bWVudC53cml0ZS4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZG9tL25lc3RlZC1z
Y3JpcHQtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vZmFzdC9kb20vbmVzdGVkLXNjcmlwdC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApp
bmRleCA2NmQ5OTQ1ZTcyYmJjYTkwNTFkMDkwOTY4Zjc5ODczMzlmZTA1YWJlLi4wYjFjOThkNDBj
MTM2MzhlYTFkZDgzYTkwYzg4ZDU2OWRhZjQ3ODI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9kb20vbmVzdGVkLXNjcmlwdC1leGNlcHRpb25zLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9k
b20vbmVzdGVkLXNjcmlwdC1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDIgQEAK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogVW5jYXVnaHQgQmFkbmVzcyAxMCwwMDAKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAxOiBVbmNhdWdodCBCYWRuZXNzIDEwLDAwMAogVGhpcyB0ZXN0IGNo
ZWNrcyB0aGF0IGV4Y2VwdGlvbnMgaW4gbmVzdGVkIHNjcmlwdHMgYXJlIGxvZ2dlZCBwcm9wZXJs
eS4gQW4gZXhjZXB0aW9uIG5hbWVkICJCYWRuZXNzIDEwLDAwMCIgc2hvdWxkIGJlIGxvZ2dlZCBw
cm9wZXJseS4K
</data>
<flag name="review"
          id="111029"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>