<?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>74088</bug_id>
          
          <creation_ts>2011-12-08 07:35:47 -0800</creation_ts>
          <short_desc>Web Inspector: auto detect source map url.</short_desc>
          <delta_ts>2012-01-04 06:22:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>me</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>517407</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-12-08 07:35:47 -0800</bug_when>
    <thetext>Check to see if &quot;X-SourceMap&quot; HTTP response header was sent with script resource. Header value will be used as auto suggestion for source map url in UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517448</commentid>
    <comment_count>1</comment_count>
      <attachid>118399</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-12-08 08:51:23 -0800</bug_when>
    <thetext>Created attachment 118399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517467</commentid>
    <comment_count>2</comment_count>
      <attachid>118399</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 09:20:14 -0800</bug_when>
    <thetext>Comment on attachment 118399
Patch

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

New failing tests:
inspector/debugger/raw-source-code.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518239</commentid>
    <comment_count>3</comment_count>
      <attachid>118571</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-12-09 06:52:01 -0800</bug_when>
    <thetext>Created attachment 118571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518245</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-12-09 07:03:10 -0800</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=74181 for how it is going to be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518246</commentid>
    <comment_count>5</comment_count>
      <attachid>118571</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-09 07:06:26 -0800</bug_when>
    <thetext>Comment on attachment 118571
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Check to see if &quot;X-SourceMap&quot; HTTP response header was sent with script resource.

Is there a discussion on the X-SourceMap name?

&gt; Source/WebCore/inspector/Inspector.json:1994
&gt; +                    { &quot;name&quot;: &quot;sourceMapURL&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;URL of source map associated with script (if any).&quot; },

We should not process sourceMapURL on the backend (node.js won&apos;t have it). User should listen to the network and get it from there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518257</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-12-09 07:30:21 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 118571 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118571&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Check to see if &quot;X-SourceMap&quot; HTTP response header was sent with script resource.
&gt; 
&gt; Is there a discussion on the X-SourceMap name?
&gt; 
&gt; &gt; Source/WebCore/inspector/Inspector.json:1994
&gt; &gt; +                    { &quot;name&quot;: &quot;sourceMapURL&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;URL of source map associated with script (if any).&quot; },
&gt; 
&gt; We should not process sourceMapURL on the backend (node.js won&apos;t have it). User should listen to the network and get it from there.

We will need to process sourceMapURL on the backend to support //@sourceMapURL comment to avoid loading all the script sources to frontend.

X-SourceMap header is sent to frontend only for the very first time. After resource is cached, it would not be sent again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524490</commentid>
    <comment_count>7</comment_count>
      <attachid>118571</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-12-20 01:58:05 -0800</bug_when>
    <thetext>Comment on attachment 118571
Patch

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

&gt;&gt; Source/WebCore/inspector/Inspector.json:1994
&gt;&gt; +                    { &quot;name&quot;: &quot;sourceMapURL&quot;, &quot;type&quot;: &quot;string&quot;, &quot;description&quot;: &quot;URL of source map associated with script (if any).&quot; },
&gt; 
&gt; We should not process sourceMapURL on the backend (node.js won&apos;t have it). User should listen to the network and get it from there.

You should at least make this optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525236</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-12-21 06:08:26 -0800</bug_when>
    <thetext>Committed r103405: &lt;http://trac.webkit.org/changeset/103405&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526083</commentid>
    <comment_count>9</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-12-22 00:45:07 -0800</bug_when>
    <thetext>Reverted r103405 for reason:

it broke WorkerDevToolsSanityTest.InspectSharedWorker

Committed r103500: &lt;http://trac.webkit.org/changeset/103500&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>526197</commentid>
    <comment_count>10</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-12-22 05:09:10 -0800</bug_when>
    <thetext>Committed r103532: &lt;http://trac.webkit.org/changeset/103532&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528788</commentid>
    <comment_count>11</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-01-03 08:24:56 -0800</bug_when>
    <thetext>Is there an example of source map file? Say, for CoffeeScript.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529436</commentid>
    <comment_count>12</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-04 03:11:49 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Is there an example of source map file? Say, for CoffeeScript.

There is nothing for CoffeeScript as far as I know, but podivilov@ was going to help with generating one. Here is the source map v3 proposal: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?hl=en_US&amp;pli=1&amp;pli=1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529470</commentid>
    <comment_count>13</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-01-04 05:21:01 -0800</bug_when>
    <thetext>Who does need/use source maps currently?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529482</commentid>
    <comment_count>14</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-01-04 05:54:46 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Who does need/use source maps currently?

SourceMaps are used by:
1) web developers that use compiled languages such as CoffeeScript, Closure Compiler, GWT, etc for their day to day development. The tool is converting sources from compiled JavaScript back to the original source code and allow debugging in term of the original source.

2) web developers for debugging production (minified) code. Developers load private mapping and see the original source code while debugging.

Web Inspector is the first source map implementation I know of that is in production. We still need to work on particular use cases with the compiled framework owners. Mozilla is on board with the standard and I think I&apos;ve seen their working prototype with CoffeeScript SourceMaps somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529485</commentid>
    <comment_count>15</comment_count>
    <who name="Nikita Vasilyev">me</who>
    <bug_when>2012-01-04 06:01:32 -0800</bug_when>
    <thetext>Thanks Pavel. Would be nice to have at least one example for minified javascript. I haven&apos;t found one in the tests.

Mozilla&apos;s work on it:
https://wiki.mozilla.org/DevTools/Features/SourceMap
https://github.com/mozilla/source-map Source map generator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529494</commentid>
    <comment_count>16</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2012-01-04 06:22:43 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; Who does need/use source maps currently?
&gt; 
&gt; SourceMaps are used by:
&gt; 1) web developers that use compiled languages such as CoffeeScript, Closure Compiler, GWT, etc for their day to day development. The tool is converting sources from compiled JavaScript back to the original source code and allow debugging in term of the original source.
&gt; 
&gt; 2) web developers for debugging production (minified) code. Developers load private mapping and see the original source code while debugging.

Just a note that these are &quot;needs&quot; and not &quot;uses&quot;, since I&apos;m not aware of anyone using SourceMaps in the field today. 

&gt; ... I think I&apos;ve seen their working prototype with CoffeeScript SourceMaps somewhere.

I don&apos;t believe there exists a version of CoffeeScript that generates SourceMaps, but there&apos;s a bug open for it:

    https://github.com/jashkenas/coffee-script/issues/558

(In reply to comment #15)
&gt; Would be nice to have at least one example for minified javascript.

Yes.  I&apos;d like to see something that works in a browser available today.  Perhaps someone can post a blog entry describing how us mortals can use it?  I think the closure compiler generates sourcemaps, so an example minizing a couple of js files together, but debugging them as separate files, would be good enough.

In fact, I&apos;ve been cautioning folks that I don&apos;t believe SourceMaps are real until I see them working.  Not quite true - I&apos;m sure it&apos;ll work in theory, but theory !=practice.  Like, do we need an .html wrapper so you can JSONP the sourcemap data (per a previous discussion in a Web Inspector bug)?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118399</attachid>
            <date>2011-12-08 08:51:23 -0800</date>
            <delta_ts>2011-12-09 06:51:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74088-20111208205120.patch</filename>
            <type>text/plain</type>
            <size>8419</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlhZWFmNDA3ZDNiOGUz
MDBmMThiNjE1ZmY2NmNmM2E5Njg5MWQzOC4uMWFmMjBhOGYzODlkNWQ3MzNlMjUyNmE0NzkwMTBj
YmVhNWE1NGFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTEyLTA4ICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGF1dG8gZGV0ZWN0IHNvdXJjZSBtYXAgdXJsLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVjayB0byBzZWUgaWYgIlgtU291cmNlTWFwIiBI
VFRQIHJlc3BvbnNlIGhlYWRlciB3YXMgc2VudCB3aXRoIHNjcmlwdCByZXNvdXJjZS4KKyAgICAg
ICAgSGVhZGVyIHZhbHVlIHdpbGwgYmUgdXNlZCBhcyBhdXRvIHN1Z2dlc3Rpb24gZm9yIHNvdXJj
ZSBtYXAgdXJsIGluIFVJLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNvdXJjZU1hcFVSTEZvclNjcmlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXJzZVNvdXJj
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuX3BhcnNlZFNjcmlwdFNvdXJjZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJEaXNwYXRjaGVyLnByb3RvdHlwZS5zY3JpcHRQ
YXJzZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQpOgor
CiAyMDExLTEyLTA4ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAgICAg
ICAgIFtDU1NSZWdpb25zXVtDU1NPTV0gSW1wbGVtZW50IE5hbWVkRmxvdyBpbnRlcmZhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA1OTFiMmE1ZjJhOWU1YmM3
MmU0MjYyYTBiMWE0MWFlOWUyM2IyZTlmLi4yOGI4MTU0NzU4ZTliOGE0MDI1MjJhNDE2YmI1ODEx
NGMxZWQ0ZTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0x
OTkxLDYgKzE5OTEsNyBAQAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQiLCAi
ZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgc2NyaXB0IHBhcnNlZC4iIH0sCiAgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIlVSTCBvciBuYW1lIG9mIHRoZSBzY3JpcHQgcGFyc2VkIChpZiBhbnkpLiIgfSwK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VNYXBVUkwiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVVJMIG9mIHNvdXJjZSBtYXAgYXNzb2NpYXRlZCB3aXRo
IHNjcmlwdCAoaWYgYW55KS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3Rh
cnRMaW5lIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG9mZnNldCBv
ZiB0aGUgc2NyaXB0IHdpdGhpbiB0aGUgcmVzb3VyY2Ugd2l0aCBnaXZlbiBVUkwgKGZvciBzY3Jp
cHQgdGFncykuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0Q29sdW1u
IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJDb2x1bW4gb2Zmc2V0IG9mIHRo
ZSBzY3JpcHQgd2l0aGluIHRoZSByZXNvdXJjZSB3aXRoIGdpdmVuIFVSTC4iIH0sCiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kTGluZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVz
Y3JpcHRpb24iOiAiTGFzdCBsaW5lIG9mIHRoZSBzY3JpcHQuIiB9LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDIyMjFl
YzI1MjlkMTA2NDlkY2JkMDIyZTU3NTVjZjk1MmZiMWEwNDEuLmEzODNjMjcwMzc3Mjc0MTZlZTM5
Zjg4MzZlMzgxZWJmNzA0YjdkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJJbmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFn
ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JW
YWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCkBAIC00NzMsMTIgKzQ3
NCwyOCBAQCBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpjdXJyZW50Q2FsbEZyYW1lcygpCiAgICAgcmV0dXJuIGluamVjdGVkU2NyaXB0LndyYXBDYWxs
RnJhbWVzKG1fY3VycmVudENhbGxTdGFjayk7CiB9CiAKK1N0cmluZyBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3JpcHQoY29uc3QgU2NyaXB0JiBzY3JpcHQpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNvdXJjZU1hcEh0dHBIZWFkZXIsICgiWC1T
b3VyY2VNYXAiKSk7CisKKyAgICBpZiAoc2NyaXB0LnVybC5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiAiIjsKKworICAgIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKTsKKyAgICBDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UgPSBwYWdlQWdlbnQtPmNhY2hlZFJlc291cmNlKHBhZ2VBZ2VudC0+bWFpbkZyYW1l
KCksIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBzY3JpcHQudXJsKSk7CisgICAgaWYgKHJlc291cmNl
KQorICAgICAgICByZXR1cm4gcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKHNv
dXJjZU1hcEh0dHBIZWFkZXIpOworICAgIHJldHVybiAiIjsKK30KKwogLy8gSmF2YVNjcmlwdERl
YnVnTGlzdGVuZXIgZnVuY3Rpb25zCiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlk
UGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU2NyaXB0JiBzY3JpcHQp
CiB7CisgICAgU3RyaW5nIHNvdXJjZU1hcFVSTCA9IHNvdXJjZU1hcFVSTEZvclNjcmlwdChzY3Jp
cHQpOworCiAgICAgLy8gRG9uJ3Qgc2VuZCBzY3JpcHQgY29udGVudCB0byB0aGUgZnJvbnQgZW5k
IHVudGlsIGl0J3MgcmVhbGx5IG5lZWRlZC4KLSAgICBtX2Zyb250ZW5kLT5zY3JpcHRQYXJzZWQo
c2NyaXB0SWQsIHNjcmlwdC51cmwsIHNjcmlwdC5zdGFydExpbmUsIHNjcmlwdC5zdGFydENvbHVt
biwgc2NyaXB0LmVuZExpbmUsIHNjcmlwdC5lbmRDb2x1bW4sIHNjcmlwdC5pc0NvbnRlbnRTY3Jp
cHQgPyAmc2NyaXB0LmlzQ29udGVudFNjcmlwdCA6IDApOworICAgIG1fZnJvbnRlbmQtPnNjcmlw
dFBhcnNlZChzY3JpcHRJZCwgc2NyaXB0LnVybCwgc291cmNlTWFwVVJMLCBzY3JpcHQuc3RhcnRM
aW5lLCBzY3JpcHQuc3RhcnRDb2x1bW4sIHNjcmlwdC5lbmRMaW5lLCBzY3JpcHQuZW5kQ29sdW1u
LCBzY3JpcHQuaXNDb250ZW50U2NyaXB0ID8gJnNjcmlwdC5pc0NvbnRlbnRTY3JpcHQgOiAwKTsK
IAogICAgIG1fc2NyaXB0cy5zZXQoc2NyaXB0SWQsIHNjcmlwdCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmluZGV4IGJhMjQyZGM3
YzViMmQ2NzIzY2NjZmM5YmU2MzI3YTFlOWIzNzdkNTAuLjNiODhjNmEwNTYwZjk5YjhhYzQ1OWUx
MDdmYTQxZjJhYzEwMTc3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtMTQxLDYgKzE0MSw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBhc3NlcnRQYXVzZWQoRXJyb3JTdHJpbmcqKTsKICAgICB2b2lkIGNsZWFyQnJlYWtEZXRh
aWxzKCk7CiAKKyAgICBTdHJpbmcgc291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0IFNjcmlwdCYp
OworCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU2NyaXB0PiBTY3JpcHRzTWFwOwogICAg
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+ID4gQnJlYWtwb2ludElkVG9E
ZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHNNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCBhMGQwMGM0MGI3ZjEyNWFh
M2I0OThiOTMyYmQ4M2Q0NWUzYTFkYWQxLi5lZWQ5NGJmZWU1OGQyNDE5OGM2MjFiYzc5OTg2Nzgx
ZjI5YjI4ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZWJ1Z2dlck1vZGVsLmpzCkBAIC0zMjUsOSArMzI1LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmRDb2x1bW4K
ICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzQ29udGVudFNjcmlwdAogICAgICAqLwotICAgIF9w
YXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0TGlu
ZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQorICAg
IF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHNvdXJj
ZU1hcFVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBpc0Nv
bnRlbnRTY3JpcHQpCiAgICAgewotICAgICAgICB2YXIgc2NyaXB0ID0gbmV3IFdlYkluc3BlY3Rv
ci5TY3JpcHQoc2NyaXB0SWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5k
TGluZSwgZW5kQ29sdW1uLCBpc0NvbnRlbnRTY3JpcHQpOworICAgICAgICB2YXIgc2NyaXB0ID0g
bmV3IFdlYkluc3BlY3Rvci5TY3JpcHQoc2NyaXB0SWQsIHNvdXJjZVVSTCwgc291cmNlTWFwVVJM
LCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29udGVudFNj
cmlwdCk7CiAgICAgICAgIHRoaXMuX3NjcmlwdHNbc2NyaXB0SWRdID0gc2NyaXB0OwogICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMuUGFyc2VkU2NyaXB0U291cmNlLCBzY3JpcHQpOwogICAgIH0sCkBAIC0zOTQsOSAr
Mzk0LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAg
ICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZENvbHVtbgogICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19
IGlzQ29udGVudFNjcmlwdAogICAgICAqLwotICAgIHNjcmlwdFBhcnNlZDogZnVuY3Rpb24oc2Ny
aXB0SWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29s
dW1uLCBpc0NvbnRlbnRTY3JpcHQpCisgICAgc2NyaXB0UGFyc2VkOiBmdW5jdGlvbihzY3JpcHRJ
ZCwgc291cmNlVVJMLCBzb3VyY2VNYXBVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExp
bmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQogICAgIHsKLSAgICAgICAgdGhpcy5fZGVi
dWdnZXJNb2RlbC5fcGFyc2VkU2NyaXB0U291cmNlKHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0
TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgISFpc0NvbnRlbnRTY3JpcHQp
OworICAgICAgICB0aGlzLl9kZWJ1Z2dlck1vZGVsLl9wYXJzZWRTY3JpcHRTb3VyY2Uoc2NyaXB0
SWQsIHNvdXJjZVVSTCwgc291cmNlTWFwVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRM
aW5lLCBlbmRDb2x1bW4sICEhaXNDb250ZW50U2NyaXB0KTsKICAgICB9LAogCiAgICAgLyoqCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJjZUNv
ZGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJjZUNvZGUu
anMKaW5kZXggMWEwNmFlNzVkN2UzMWFjNmU1ZTQxYjk4ZWExMjdmN2M4NDY5YTIwMC4uMzc1NmE0
YmZjNWU1Zjk3ZjRiNzkzMzQ2MjM0NmFlMTEwZTNkMWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SYXdTb3VyY2VDb2RlLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qcwpAQCAtNDUsNiArNDUs
NyBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZSA9IGZ1bmN0aW9uKGlkLCBzY3JpcHQsIHJl
c291cmNlLCBmb3JtYXR0ZXIsIGZvcm1hdHRlZAogICAgIHRoaXMuaWQgPSBpZDsKICAgICB0aGlz
LnVybCA9IHNjcmlwdC5zb3VyY2VVUkw7CiAgICAgdGhpcy5pc0NvbnRlbnRTY3JpcHQgPSBzY3Jp
cHQuaXNDb250ZW50U2NyaXB0OworICAgIHRoaXMuc291cmNlTWFwVVJMID0gc2NyaXB0LnNvdXJj
ZU1hcFVSTDsKICAgICB0aGlzLl9zY3JpcHRzID0gW3NjcmlwdF07CiAgICAgdGhpcy5fZm9ybWF0
dGVyID0gZm9ybWF0dGVyOwogICAgIHRoaXMuX2Zvcm1hdHRlZCA9IGZvcm1hdHRlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKaW5kZXggYmQyYTc3YjMz
NzY4NmE3NWFjZDRkY2E5ZGM5ZjA1YzhhMzAxNjhmOC4uNjhiMjIxMzY2ODM1ZTE4ZTVmNzVlNjc4
NWVlYTkzYzViMWU2NTkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHQuanMKQEAgLTMzLDEwICszMywxMSBAQAogICogQHBhcmFtIHtudW1iZXJ9IGVuZENv
bHVtbgogICogQHBhcmFtIHtib29sZWFufSBpc0NvbnRlbnRTY3JpcHQKICAqLwotV2ViSW5zcGVj
dG9yLlNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3Rh
cnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQorV2ViSW5zcGVj
dG9yLlNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHNvdXJjZU1hcFVSTCwg
c3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBpc0NvbnRlbnRTY3Jp
cHQpCiB7CiAgICAgdGhpcy5zY3JpcHRJZCA9IHNjcmlwdElkOwogICAgIHRoaXMuc291cmNlVVJM
ID0gc291cmNlVVJMOworICAgIHRoaXMuc291cmNlTWFwVVJMID0gc291cmNlTWFwVVJMOwogICAg
IHRoaXMubGluZU9mZnNldCA9IHN0YXJ0TGluZTsKICAgICB0aGlzLmNvbHVtbk9mZnNldCA9IHN0
YXJ0Q29sdW1uOwogICAgIHRoaXMuZW5kTGluZSA9IGVuZExpbmU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118571</attachid>
            <date>2011-12-09 06:52:01 -0800</date>
            <delta_ts>2011-12-20 01:58:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74088-20111209185158.patch</filename>
            <type>text/plain</type>
            <size>9960</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlhZWFmNDA3ZDNiOGUz
MDBmMThiNjE1ZmY2NmNmM2E5Njg5MWQzOC4uMGNlNjdkYTMyZmZhODZiNmYyYjE3ZDAwZDFhMTYz
MDViMDA2MTkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTEyLTA5ICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGF1dG8gZGV0ZWN0IHNvdXJjZSBtYXAgdXJsLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVjayB0byBzZWUgaWYgIlgtU291cmNlTWFwIiBI
VFRQIHJlc3BvbnNlIGhlYWRlciB3YXMgc2VudCB3aXRoIHNjcmlwdCByZXNvdXJjZS4KKyAgICAg
ICAgSGVhZGVyIHZhbHVlIHdpbGwgYmUgdXNlZCBhcyBhdXRvIHN1Z2dlc3Rpb24gZm9yIHNvdXJj
ZSBtYXAgdXJsIGluIFVJLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNvdXJjZU1hcFVSTEZvclNjcmlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXJzZVNvdXJj
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuX3BhcnNlZFNjcmlwdFNvdXJjZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJEaXNwYXRjaGVyLnByb3RvdHlwZS5zY3JpcHRQ
YXJzZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQpOgor
CiAyMDExLTEyLTA4ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAgICAg
ICAgIFtDU1NSZWdpb25zXVtDU1NPTV0gSW1wbGVtZW50IE5hbWVkRmxvdyBpbnRlcmZhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA1OTFiMmE1ZjJhOWU1YmM3
MmU0MjYyYTBiMWE0MWFlOWUyM2IyZTlmLi4yOGI4MTU0NzU4ZTliOGE0MDI1MjJhNDE2YmI1ODEx
NGMxZWQ0ZTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0x
OTkxLDYgKzE5OTEsNyBAQAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQiLCAi
ZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0aGUgc2NyaXB0IHBhcnNlZC4iIH0sCiAgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIlVSTCBvciBuYW1lIG9mIHRoZSBzY3JpcHQgcGFyc2VkIChpZiBhbnkpLiIgfSwK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VNYXBVUkwiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVVJMIG9mIHNvdXJjZSBtYXAgYXNzb2NpYXRlZCB3aXRo
IHNjcmlwdCAoaWYgYW55KS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3Rh
cnRMaW5lIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG9mZnNldCBv
ZiB0aGUgc2NyaXB0IHdpdGhpbiB0aGUgcmVzb3VyY2Ugd2l0aCBnaXZlbiBVUkwgKGZvciBzY3Jp
cHQgdGFncykuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0Q29sdW1u
IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJDb2x1bW4gb2Zmc2V0IG9mIHRo
ZSBzY3JpcHQgd2l0aGluIHRoZSByZXNvdXJjZSB3aXRoIGdpdmVuIFVSTC4iIH0sCiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kTGluZSIsICJ0eXBlIjogImludGVnZXIiLCAiZGVz
Y3JpcHRpb24iOiAiTGFzdCBsaW5lIG9mIHRoZSBzY3JpcHQuIiB9LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDIyMjFl
YzI1MjlkMTA2NDlkY2JkMDIyZTU3NTVjZjk1MmZiMWEwNDEuLmEzODNjMjcwMzc3Mjc0MTZlZTM5
Zjg4MzZlMzgxZWJmNzA0YjdkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJJbmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFn
ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JW
YWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCkBAIC00NzMsMTIgKzQ3
NCwyOCBAQCBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpjdXJyZW50Q2FsbEZyYW1lcygpCiAgICAgcmV0dXJuIGluamVjdGVkU2NyaXB0LndyYXBDYWxs
RnJhbWVzKG1fY3VycmVudENhbGxTdGFjayk7CiB9CiAKK1N0cmluZyBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3JpcHQoY29uc3QgU2NyaXB0JiBzY3JpcHQpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNvdXJjZU1hcEh0dHBIZWFkZXIsICgiWC1T
b3VyY2VNYXAiKSk7CisKKyAgICBpZiAoc2NyaXB0LnVybC5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiAiIjsKKworICAgIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKTsKKyAgICBDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UgPSBwYWdlQWdlbnQtPmNhY2hlZFJlc291cmNlKHBhZ2VBZ2VudC0+bWFpbkZyYW1l
KCksIEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBzY3JpcHQudXJsKSk7CisgICAgaWYgKHJlc291cmNl
KQorICAgICAgICByZXR1cm4gcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKHNv
dXJjZU1hcEh0dHBIZWFkZXIpOworICAgIHJldHVybiAiIjsKK30KKwogLy8gSmF2YVNjcmlwdERl
YnVnTGlzdGVuZXIgZnVuY3Rpb25zCiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlk
UGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzY3JpcHRJZCwgY29uc3QgU2NyaXB0JiBzY3JpcHQp
CiB7CisgICAgU3RyaW5nIHNvdXJjZU1hcFVSTCA9IHNvdXJjZU1hcFVSTEZvclNjcmlwdChzY3Jp
cHQpOworCiAgICAgLy8gRG9uJ3Qgc2VuZCBzY3JpcHQgY29udGVudCB0byB0aGUgZnJvbnQgZW5k
IHVudGlsIGl0J3MgcmVhbGx5IG5lZWRlZC4KLSAgICBtX2Zyb250ZW5kLT5zY3JpcHRQYXJzZWQo
c2NyaXB0SWQsIHNjcmlwdC51cmwsIHNjcmlwdC5zdGFydExpbmUsIHNjcmlwdC5zdGFydENvbHVt
biwgc2NyaXB0LmVuZExpbmUsIHNjcmlwdC5lbmRDb2x1bW4sIHNjcmlwdC5pc0NvbnRlbnRTY3Jp
cHQgPyAmc2NyaXB0LmlzQ29udGVudFNjcmlwdCA6IDApOworICAgIG1fZnJvbnRlbmQtPnNjcmlw
dFBhcnNlZChzY3JpcHRJZCwgc2NyaXB0LnVybCwgc291cmNlTWFwVVJMLCBzY3JpcHQuc3RhcnRM
aW5lLCBzY3JpcHQuc3RhcnRDb2x1bW4sIHNjcmlwdC5lbmRMaW5lLCBzY3JpcHQuZW5kQ29sdW1u
LCBzY3JpcHQuaXNDb250ZW50U2NyaXB0ID8gJnNjcmlwdC5pc0NvbnRlbnRTY3JpcHQgOiAwKTsK
IAogICAgIG1fc2NyaXB0cy5zZXQoc2NyaXB0SWQsIHNjcmlwdCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmluZGV4IGJhMjQyZGM3
YzViMmQ2NzIzY2NjZmM5YmU2MzI3YTFlOWIzNzdkNTAuLjNiODhjNmEwNTYwZjk5YjhhYzQ1OWUx
MDdmYTQxZjJhYzEwMTc3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtMTQxLDYgKzE0MSw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBhc3NlcnRQYXVzZWQoRXJyb3JTdHJpbmcqKTsKICAgICB2b2lkIGNsZWFyQnJlYWtEZXRh
aWxzKCk7CiAKKyAgICBTdHJpbmcgc291cmNlTWFwVVJMRm9yU2NyaXB0KGNvbnN0IFNjcmlwdCYp
OworCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgU2NyaXB0PiBTY3JpcHRzTWFwOwogICAg
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+ID4gQnJlYWtwb2ludElkVG9E
ZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHNNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCBhMGQwMGM0MGI3ZjEyNWFh
M2I0OThiOTMyYmQ4M2Q0NWUzYTFkYWQxLi5lZWQ5NGJmZWU1OGQyNDE5OGM2MjFiYzc5OTg2Nzgx
ZjI5YjI4ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZWJ1Z2dlck1vZGVsLmpzCkBAIC0zMjUsOSArMzI1LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmRDb2x1bW4K
ICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzQ29udGVudFNjcmlwdAogICAgICAqLwotICAgIF9w
YXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0TGlu
ZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQorICAg
IF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHNvdXJj
ZU1hcFVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBpc0Nv
bnRlbnRTY3JpcHQpCiAgICAgewotICAgICAgICB2YXIgc2NyaXB0ID0gbmV3IFdlYkluc3BlY3Rv
ci5TY3JpcHQoc2NyaXB0SWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5k
TGluZSwgZW5kQ29sdW1uLCBpc0NvbnRlbnRTY3JpcHQpOworICAgICAgICB2YXIgc2NyaXB0ID0g
bmV3IFdlYkluc3BlY3Rvci5TY3JpcHQoc2NyaXB0SWQsIHNvdXJjZVVSTCwgc291cmNlTWFwVVJM
LCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29udGVudFNj
cmlwdCk7CiAgICAgICAgIHRoaXMuX3NjcmlwdHNbc2NyaXB0SWRdID0gc2NyaXB0OwogICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMuUGFyc2VkU2NyaXB0U291cmNlLCBzY3JpcHQpOwogICAgIH0sCkBAIC0zOTQsOSAr
Mzk0LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAg
ICAgICogQHBhcmFtIHtudW1iZXJ9IGVuZENvbHVtbgogICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19
IGlzQ29udGVudFNjcmlwdAogICAgICAqLwotICAgIHNjcmlwdFBhcnNlZDogZnVuY3Rpb24oc2Ny
aXB0SWQsIHNvdXJjZVVSTCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29s
dW1uLCBpc0NvbnRlbnRTY3JpcHQpCisgICAgc2NyaXB0UGFyc2VkOiBmdW5jdGlvbihzY3JpcHRJ
ZCwgc291cmNlVVJMLCBzb3VyY2VNYXBVUkwsIHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZExp
bmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQogICAgIHsKLSAgICAgICAgdGhpcy5fZGVi
dWdnZXJNb2RlbC5fcGFyc2VkU2NyaXB0U291cmNlKHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0
TGluZSwgc3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgISFpc0NvbnRlbnRTY3JpcHQp
OworICAgICAgICB0aGlzLl9kZWJ1Z2dlck1vZGVsLl9wYXJzZWRTY3JpcHRTb3VyY2Uoc2NyaXB0
SWQsIHNvdXJjZVVSTCwgc291cmNlTWFwVVJMLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRM
aW5lLCBlbmRDb2x1bW4sICEhaXNDb250ZW50U2NyaXB0KTsKICAgICB9LAogCiAgICAgLyoqCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJjZUNv
ZGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJjZUNvZGUu
anMKaW5kZXggMWEwNmFlNzVkN2UzMWFjNmU1ZTQxYjk4ZWExMjdmN2M4NDY5YTIwMC4uMzc1NmE0
YmZjNWU1Zjk3ZjRiNzkzMzQ2MjM0NmFlMTEwZTNkMWMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SYXdTb3VyY2VDb2RlLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qcwpAQCAtNDUsNiArNDUs
NyBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZSA9IGZ1bmN0aW9uKGlkLCBzY3JpcHQsIHJl
c291cmNlLCBmb3JtYXR0ZXIsIGZvcm1hdHRlZAogICAgIHRoaXMuaWQgPSBpZDsKICAgICB0aGlz
LnVybCA9IHNjcmlwdC5zb3VyY2VVUkw7CiAgICAgdGhpcy5pc0NvbnRlbnRTY3JpcHQgPSBzY3Jp
cHQuaXNDb250ZW50U2NyaXB0OworICAgIHRoaXMuc291cmNlTWFwVVJMID0gc2NyaXB0LnNvdXJj
ZU1hcFVSTDsKICAgICB0aGlzLl9zY3JpcHRzID0gW3NjcmlwdF07CiAgICAgdGhpcy5fZm9ybWF0
dGVyID0gZm9ybWF0dGVyOwogICAgIHRoaXMuX2Zvcm1hdHRlZCA9IGZvcm1hdHRlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKaW5kZXggYmQyYTc3YjMz
NzY4NmE3NWFjZDRkY2E5ZGM5ZjA1YzhhMzAxNjhmOC4uNjhiMjIxMzY2ODM1ZTE4ZTVmNzVlNjc4
NWVlYTkzYzViMWU2NTkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHQuanMKQEAgLTMzLDEwICszMywxMSBAQAogICogQHBhcmFtIHtudW1iZXJ9IGVuZENv
bHVtbgogICogQHBhcmFtIHtib29sZWFufSBpc0NvbnRlbnRTY3JpcHQKICAqLwotV2ViSW5zcGVj
dG9yLlNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0TGluZSwgc3Rh
cnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KQorV2ViSW5zcGVj
dG9yLlNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHNvdXJjZU1hcFVSTCwg
c3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGluZSwgZW5kQ29sdW1uLCBpc0NvbnRlbnRTY3Jp
cHQpCiB7CiAgICAgdGhpcy5zY3JpcHRJZCA9IHNjcmlwdElkOwogICAgIHRoaXMuc291cmNlVVJM
ID0gc291cmNlVVJMOworICAgIHRoaXMuc291cmNlTWFwVVJMID0gc291cmNlTWFwVVJMOwogICAg
IHRoaXMubGluZU9mZnNldCA9IHN0YXJ0TGluZTsKICAgICB0aGlzLmNvbHVtbk9mZnNldCA9IHN0
YXJ0Q29sdW1uOwogICAgIHRoaXMuZW5kTGluZSA9IGVuZExpbmU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjE4ZGU2M2Vj
ZDM4YTU1YjhhMWI0ZjJjOTI2YmJhMDkzMTNiY2RmOS4uZGRlNjA3NGQ3ZjUzMzgwMWIzM2RmZGEx
OTg4Zjc4MTc3NTNjMmY5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTEyLTA5ICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGF1dG8gZGV0ZWN0IHNvdXJjZSBtYXAgdXJsLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291cmNl
LWNvZGUuaHRtbDoKKwogMjAxMS0xMi0wOCAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2Jl
LmNvbT4KIAogICAgICAgICBbQ1NTUmVnaW9uc11bQ1NTT01dIEltcGxlbWVudCBOYW1lZEZsb3cg
aW50ZXJmYWNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmF3
LXNvdXJjZS1jb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmF3LXNv
dXJjZS1jb2RlLmh0bWwKaW5kZXggNGYyMTM4ZDU2YTFlMjI5MTUzNGRlOTk2N2EzZGRlZTBiZDdj
Mjg0Yi4uNGE0MmY0ZTQwMTUyMWZjNWVjMTM0YjYxODNiNWQwNjU4NWZkYjVkYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jhdy1zb3VyY2UtY29kZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291cmNlLWNvZGUuaHRtbApA
QCAtMTEsNyArMTEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgdmFyIGxpbmVDb3VudCA9
IHNvdXJjZS5saW5lRW5kaW5ncygpLmxlbmd0aDsKICAgICAgICAgdmFyIGVuZExpbmUgPSBzdGFy
dExpbmUgKyBsaW5lQ291bnQgLSAxOwogICAgICAgICB2YXIgZW5kQ29sdW1uID0gbGluZUNvdW50
ID09PSAxID8gc3RhcnRDb2x1bW4gKyBzb3VyY2UubGVuZ3RoIDogc291cmNlLmxlbmd0aCAtIHNv
dXJjZS5saW5lRW5kaW5ncygpW2xpbmVDb3VudCAtIDJdOwotICAgICAgICB2YXIgc2NyaXB0ID0g
bmV3IFdlYkluc3BlY3Rvci5TY3JpcHQobnVsbCwgdXJsLCBzdGFydExpbmUsIHN0YXJ0Q29sdW1u
LCBlbmRMaW5lLCBlbmRDb2x1bW4sIGlzQ29udGVudFNjcmlwdCk7CisgICAgICAgIHZhciBzY3Jp
cHQgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdChudWxsLCB1cmwsIG51bGwsIHN0YXJ0TGluZSwg
c3RhcnRDb2x1bW4sIGVuZExpbmUsIGVuZENvbHVtbiwgaXNDb250ZW50U2NyaXB0KTsKICAgICAg
ICAgc2NyaXB0LnJlcXVlc3RTb3VyY2UgPSBmdW5jdGlvbihjYWxsYmFjaykgeyBjYWxsYmFjayhz
b3VyY2UpOyB9OwogICAgICAgICByZXR1cm4gc2NyaXB0OwogICAgIH0K
</data>
<flag name="review"
          id="118362"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>