<?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>89889</bug_id>
          
          <creation_ts>2012-06-25 09:59:52 -0700</creation_ts>
          <short_desc>Web Inspector: replace recursion with a stack in DOM nodes snapshot traversal.</short_desc>
          <delta_ts>2012-07-02 07:18:46 -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>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="Alexei Filippov">alph</reporter>
          <assigned_to name="Alexei Filippov">alph</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</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>656656</commentid>
    <comment_count>0</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-06-25 09:59:52 -0700</bug_when>
    <thetext>Number of DOM nodes native snapshots can handle is currently limited by the process stack size because of recursion used to traverse the nodes.
Change the recursion to a stack based algorithm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656677</commentid>
    <comment_count>1</comment_count>
      <attachid>149315</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-06-25 10:20:34 -0700</bug_when>
    <thetext>Created attachment 149315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657544</commentid>
    <comment_count>2</comment_count>
      <attachid>149315</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-06-26 05:49:55 -0700</bug_when>
    <thetext>Comment on attachment 149315
Patch

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

&gt; Source/WebCore/dom/MemoryInstrumentation.h:40
&gt; +class MemoryInstrumentedPointerBase;

Forward declarations should go in alphabetic order.

&gt; Source/WebCore/dom/MemoryInstrumentation.h:111
&gt; +    void countObjectSize()

Please inline this method instead.

&gt; Source/WebCore/dom/MemoryInstrumentation.h:134
&gt; +    void processInstrumentedPointer(MemoryInstrumentation* memoryInstrumentation)

missing virtual and OVERRIDE

&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:451
&gt; +            delete pointer;

Please use queue of OwnPtr&apos;s to avoid manual delete.

&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:475
&gt; +    Vector&lt;MemoryInstrumentedPointerBase*&gt; m_worklist;

m_instrumentedPointers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657621</commentid>
    <comment_count>3</comment_count>
      <attachid>149536</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-06-26 08:23:26 -0700</bug_when>
    <thetext>Created attachment 149536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657622</commentid>
    <comment_count>4</comment_count>
      <attachid>149315</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-06-26 08:25:15 -0700</bug_when>
    <thetext>Comment on attachment 149315
Patch

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

&gt;&gt; Source/WebCore/dom/MemoryInstrumentation.h:40
&gt;&gt; +class MemoryInstrumentedPointerBase;
&gt; 
&gt; Forward declarations should go in alphabetic order.

done

&gt;&gt; Source/WebCore/dom/MemoryInstrumentation.h:111
&gt;&gt; +    void countObjectSize()
&gt; 
&gt; Please inline this method instead.

done

&gt;&gt; Source/WebCore/dom/MemoryInstrumentation.h:134
&gt;&gt; +    void processInstrumentedPointer(MemoryInstrumentation* memoryInstrumentation)
&gt; 
&gt; missing virtual and OVERRIDE

done

&gt;&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:451
&gt;&gt; +            delete pointer;
&gt; 
&gt; Please use queue of OwnPtr&apos;s to avoid manual delete.

done

&gt;&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:475
&gt;&gt; +    Vector&lt;MemoryInstrumentedPointerBase*&gt; m_worklist;
&gt; 
&gt; m_instrumentedPointers?

m_deferredInstrumentedPointers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657877</commentid>
    <comment_count>5</comment_count>
      <attachid>149536</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-06-26 12:53:59 -0700</bug_when>
    <thetext>Comment on attachment 149536
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658421</commentid>
    <comment_count>6</comment_count>
      <attachid>149536</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-06-27 00:43:08 -0700</bug_when>
    <thetext>Comment on attachment 149536
Patch

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

&gt; Source/WebCore/dom/MemoryInstrumentation.h:120
&gt; +class MemoryInstrumentedPointerBase {

I&apos;d move these classes into MemoryInstrumentation as they are just implementation details. It would also allow us to give them shorter names.

&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:476
&gt; +    Vector&lt;PassOwnPtr&lt;MemoryInstrumentedPointerBase&gt; &gt; m_deferredInstrumentedPointers;

PassOwnPtr is supposed to be used for passing objects ownership only, you should use Vector&lt;OwnPtr&lt;...&gt; &gt; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658517</commentid>
    <comment_count>7</comment_count>
      <attachid>149720</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-06-27 03:55:55 -0700</bug_when>
    <thetext>Created attachment 149720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661422</commentid>
    <comment_count>8</comment_count>
      <attachid>150405</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-02 05:48:16 -0700</bug_when>
    <thetext>Created attachment 150405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661429</commentid>
    <comment_count>9</comment_count>
      <attachid>149536</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-02 05:53:22 -0700</bug_when>
    <thetext>Comment on attachment 149536
Patch

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

&gt;&gt; Source/WebCore/dom/MemoryInstrumentation.h:120
&gt;&gt; +class MemoryInstrumentedPointerBase {
&gt; 
&gt; I&apos;d move these classes into MemoryInstrumentation as they are just implementation details. It would also allow us to give them shorter names.

done

&gt;&gt; Source/WebCore/inspector/InspectorMemoryAgent.cpp:476
&gt;&gt; +    Vector&lt;PassOwnPtr&lt;MemoryInstrumentedPointerBase&gt; &gt; m_deferredInstrumentedPointers;
&gt; 
&gt; PassOwnPtr is supposed to be used for passing objects ownership only, you should use Vector&lt;OwnPtr&lt;...&gt; &gt; here.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661475</commentid>
    <comment_count>10</comment_count>
      <attachid>150405</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-02 07:18:42 -0700</bug_when>
    <thetext>Comment on attachment 150405
Patch

Clearing flags on attachment: 150405

Committed r121677: &lt;http://trac.webkit.org/changeset/121677&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661476</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-02 07:18:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149315</attachid>
            <date>2012-06-25 10:20:34 -0700</date>
            <delta_ts>2012-06-26 08:25:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89889-20120625212033.patch</filename>
            <type>text/plain</type>
            <size>5422</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ1YWI0NjlmZDYzODY2
ODRlYmNiYWFlNjgzOGUzOTJmYWYzOWExMy4uYmM2ZjEwMDk4M2ExYzhiYTRkNTMxMzk4NjQ1NjFh
NWZlMWE3ZDhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTI1ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiByZXBsYWNlIHJlY3Vyc2lvbiB3aXRoIGEgc3RhY2sgaW4gRE9NIG5vZGVzIHNuYXBzaG90
IHRyYXZlcnNhbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5ODg5CisKKyAgICAgICAgTnVtYmVyIG9mIERPTSBub2RlcyBuYXRpdmUgc25hcHNob3Rz
IGNhbiBoYW5kbGUgd2FzIGxpbWl0ZWQKKyAgICAgICAgYnkgdGhlIHByb2Nlc3Mgc3RhY2sgc2l6
ZSBiZWNhdXNlIG9mIHJlY3Vyc2lvbiB1c2VkIHRvIHRyYXZlcnNlIHRoZSBub2Rlcy4KKyAgICAg
ICAgVGhlIHBhdGNoIGNoYW5nZXMgdGhlIHJlY3Vyc2lvbiB0byBhIHN0YWNrIGJhc2VkIGFsZ29y
aXRobS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeU9iamVj
dEluZm86OmNvdW50T2JqZWN0U2l6ZSk6CisgICAgICAgIChNZW1vcnlJbnN0cnVtZW50ZWRQb2lu
dGVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50ZWRQb2ludGVyQmFz
ZTo6fk1lbW9yeUluc3RydW1lbnRlZFBvaW50ZXJCYXNlKToKKyAgICAgICAgKE1lbW9yeUluc3Ry
dW1lbnRlZFBvaW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGVkUG9p
bnRlcjo6TWVtb3J5SW5zdHJ1bWVudGVkUG9pbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlJbnN0cnVtZW50ZWRQb2ludGVyOjpwcm9jZXNzSW5zdHJ1bWVudGVkUG9pbnRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OnJlcG9ydEluc3RydW1lbnRlZFBv
aW50ZXIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wNi0yNSAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxs
YUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBBZGQgc3RhdGljIHF1YWxpZmllciB0byBHcmFw
aGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1v
cnlJbnN0cnVtZW50YXRpb24uaAppbmRleCA2ZjBlN2E0NzBmZTFiYTQwMmQwNWFjNWRhZTY3MTgx
YzJlMjg1NTVmLi5mNmVhYjI0N2Q5NDc0MGI2MjcxNmMwNDFkNDZlZDYzYmE3ZjgwN2Q0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC0zNyw2ICszNyw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lbW9yeU9iamVjdEluZm87CitjbGFz
cyBNZW1vcnlJbnN0cnVtZW50ZWRQb2ludGVyQmFzZTsKIAogY2xhc3MgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uIHsKIHB1YmxpYzoKQEAgLTY0LDYgKzY1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1
YWwgdm9pZCBjb3VudE9iamVjdFNpemUoT2JqZWN0VHlwZSwgc2l6ZV90KSA9IDA7CiAgICAgdmly
dHVhbCBib29sIHZpc2l0ZWQoY29uc3Qgdm9pZCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5x
dWV1ZUluc3RydW1lbnRlZFBvaW50ZXIoTWVtb3J5SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UqKSA9
IDA7CiB9OwogCiBjbGFzcyBNZW1vcnlPYmplY3RJbmZvIHsKQEAgLTEwNiw2ICsxMDgsMTAgQEAg
cHVibGljOgogCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPYmplY3RUeXBlIG9iamVjdFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX29iamVjdFR5cGU7IH0KICAgICBzaXplX3Qgb2JqZWN0U2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U2l6ZTsgfQorICAgIHZvaWQgY291bnRPYmplY3RT
aXplKCkKKyAgICB7CisgICAgICAgIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jb3VudE9iamVj
dFNpemUob2JqZWN0VHlwZSgpLCBvYmplY3RTaXplKCkpOworICAgIH0KIAogIHByaXZhdGU6CiAg
ICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsKQEAgLTEx
MywxNCArMTE5LDM1IEBAIHB1YmxpYzoKICAgICBzaXplX3QgbV9vYmplY3RTaXplOwogfTsKIAor
Y2xhc3MgTWVtb3J5SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UgeworcHVibGljOgorICAgIHZpcnR1
YWwgfk1lbW9yeUluc3RydW1lbnRlZFBvaW50ZXJCYXNlKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgcHJvY2Vzc0luc3RydW1lbnRlZFBvaW50ZXIoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKikgPSAw
OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitjbGFzcyBNZW1vcnlJbnN0cnVtZW50ZWRQ
b2ludGVyIDogcHVibGljIE1lbW9yeUluc3RydW1lbnRlZFBvaW50ZXJCYXNlIHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBNZW1vcnlJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0IFQqIHBvaW50ZXIp
IDogbV9wb2ludGVyKHBvaW50ZXIpIHsgfQorCisgICAgdm9pZCBwcm9jZXNzSW5zdHJ1bWVudGVk
UG9pbnRlcihNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRhdGlvbikKKyAg
ICB7CisgICAgICAgIE1lbW9yeU9iamVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyhtZW1vcnlJbnN0
cnVtZW50YXRpb24pOworICAgICAgICBtX3BvaW50ZXItPnJlcG9ydE1lbW9yeVVzYWdlKCZtZW1v
cnlPYmplY3RJbmZvKTsKKyAgICAgICAgbWVtb3J5T2JqZWN0SW5mby5jb3VudE9iamVjdFNpemUo
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgVCogbV9wb2ludGVyOworfTsKKwogdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+CiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6cmVwb3J0SW5z
dHJ1bWVudGVkUG9pbnRlcihjb25zdCBUKiBjb25zdCBvYmplY3QpCiB7CiAgICAgaWYgKCFvYmpl
Y3QgfHwgdmlzaXRlZChvYmplY3QpKQogICAgICAgICByZXR1cm47Ci0gICAgTWVtb3J5T2JqZWN0
SW5mbyBtZW1vcnlPYmplY3RJbmZvKHRoaXMpOwotICAgIG9iamVjdC0+cmVwb3J0TWVtb3J5VXNh
Z2UoJm1lbW9yeU9iamVjdEluZm8pOwotICAgIGNvdW50T2JqZWN0U2l6ZShtZW1vcnlPYmplY3RJ
bmZvLm9iamVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RTaXplKCkpOworICAgIGVu
cXVldWVJbnN0cnVtZW50ZWRQb2ludGVyKG5ldyBNZW1vcnlJbnN0cnVtZW50ZWRQb2ludGVyPFQ+
KG9iamVjdCkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggYjA1ZjYyMmQwMGFj
ZjU2MmU0Zjk0ODAyYWU3MmY1NDE5ZWZjNjQyNi4uMTk3ZmQ4NzQzZTVlY2Q4NzlkZDYwMTNhYmE1
ZGNiODI1ZmEyNmI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck1lbW9yeUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTWVtb3J5QWdlbnQuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSA8d3RmL0FycmF5
QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6Ok1lbW9yeTo6
RE9NR3JvdXA7CkBAIC00NDEsNiArNDQyLDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGRv
bS5yZWxlYXNlKCk7CiAgICAgfQogCisgICAgdm9pZCBwcm9jZXNzUXVldWUoKQorICAgIHsKKyAg
ICAgICAgd2hpbGUgKCFtX3dvcmtsaXN0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgTWVtb3J5
SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UqIHBvaW50ZXIgPSBtX3dvcmtsaXN0Lmxhc3QoKTsKKyAg
ICAgICAgICAgIG1fd29ya2xpc3QucmVtb3ZlTGFzdCgpOworICAgICAgICAgICAgcG9pbnRlci0+
cHJvY2Vzc0luc3RydW1lbnRlZFBvaW50ZXIodGhpcyk7CisgICAgICAgICAgICBkZWxldGUgcG9p
bnRlcjsKKyAgICAgICAgfQorICAgIH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY291
bnRPYmplY3RTaXplKE9iamVjdFR5cGUgb2JqZWN0VHlwZSwgc2l6ZV90IHNpemUpCiAgICAgewpA
QCAtNDUyLDkgKzQ2MywxNiBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgcmV0dXJuICFtX3Zp
c2l0ZWRPYmplY3RzLmFkZChvYmplY3QpLmlzTmV3RW50cnk7CiAgICAgfQorCisgICAgdmlydHVh
bCB2b2lkIGVucXVldWVJbnN0cnVtZW50ZWRQb2ludGVyKE1lbW9yeUluc3RydW1lbnRlZFBvaW50
ZXJCYXNlKiBwb2ludGVyKQorICAgIHsKKyAgICAgICAgbV93b3JrbGlzdC5hcHBlbmQocG9pbnRl
cik7CisgICAgfQorCiAgICAgc2l6ZV90IG1fdG90YWxTaXplc1tMYXN0VHlwZUVudHJ5XTsKICAg
ICB0eXBlZGVmIEhhc2hTZXQ8Y29uc3Qgdm9pZCo+IFZpc2l0ZWRPYmplY3RzOwogICAgIFZpc2l0
ZWRPYmplY3RzIG1fdmlzaXRlZE9iamVjdHM7CisgICAgVmVjdG9yPE1lbW9yeUluc3RydW1lbnRl
ZFBvaW50ZXJCYXNlKj4gbV93b3JrbGlzdDsKIH07CiAKIGNsYXNzIERPTVRyZWVzSXRlcmF0b3Ig
OiBwdWJsaWMgTm9kZVdyYXBwZXJWaXNpdG9yIHsKQEAgLTQ2Nyw2ICs0ODUsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbV9kb21NZW1vcnlVc2FnZS5yZXBvcnRJ
bnN0cnVtZW50ZWRQb2ludGVyKG5vZGUpOworICAgICAgICBtX2RvbU1lbW9yeVVzYWdlLnByb2Nl
c3NRdWV1ZSgpOwogICAgIH0KIAogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+
IGR1bXBTdGF0aXN0aWNzKCkgeyByZXR1cm4gbV9kb21NZW1vcnlVc2FnZS5kdW1wU3RhdGlzdGlj
cygpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149536</attachid>
            <date>2012-06-26 08:23:26 -0700</date>
            <delta_ts>2012-07-02 05:53:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89889-20120626192325.patch</filename>
            <type>text/plain</type>
            <size>6043</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBiNTBhZjA5YTc2MGZj
OWI3YzNlNTZmYzA0NGUzMTBkZmU5YWEzZC4uZDE1OGQ0OTc3NmNlODFkMjEyNzNlMmIxYzRjOTJi
NDNlYTMwNmQ4YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA2LTI2ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiByZXBsYWNlIHJlY3Vyc2lvbiB3aXRoIGEgc3RhY2sgaW4gRE9NIG5vZGVzIHNuYXBzaG90
IHRyYXZlcnNhbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5ODg5CisKKyAgICAgICAgTnVtYmVyIG9mIERPTSBub2RlcyBuYXRpdmUgc25hcHNob3Rz
IGNhbiBoYW5kbGUgd2FzIGxpbWl0ZWQKKyAgICAgICAgYnkgdGhlIHByb2Nlc3Mgc3RhY2sgc2l6
ZSBiZWNhdXNlIG9mIHJlY3Vyc2lvbiB1c2VkIHRvIHRyYXZlcnNlIHRoZSBub2Rlcy4KKyAgICAg
ICAgVGhlIHBhdGNoIGNoYW5nZXMgdGhlIHJlY3Vyc2lvbiB0byBhIHN0YWNrIGJhc2VkIGFsZ29y
aXRobS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKE1lbW9yeUluc3RydW1lbnRlZFBv
aW50ZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRlZFBvaW50ZXJC
YXNlOjp+TWVtb3J5SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UpOgorICAgICAgICAoTWVtb3J5SW5z
dHJ1bWVudGVkUG9pbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50ZWRQ
b2ludGVyOjpNZW1vcnlJbnN0cnVtZW50ZWRQb2ludGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
bW9yeUluc3RydW1lbnRhdGlvbjo6cmVwb3J0SW5zdHJ1bWVudGVkUG9pbnRlcik6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorCiAyMDEyLTA2LTI2ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0
PgogCiAgICAgICAgIFtUZXhtYXBdIEJ1ZyBmaXggdHlwbyBhYm91dCBjb21wdXRpbmcgYnl0ZXNQ
ZXJMaW5lIGluIEJpdG1hcFRleHR1cmVHTC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0
cnVtZW50YXRpb24uaAppbmRleCA2ZjBlN2E0NzBmZTFiYTQwMmQwNWFjNWRhZTY3MTgxYzJlMjg1
NTVmLi41OWMyN2I1YzllYzIyNGE4NTUzYzBhZWMyOWI0MzgwMmM2NTIxYzZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC0zMiwxMCArMzIsMTIgQEAK
ICNkZWZpbmUgTWVtb3J5SW5zdHJ1bWVudGF0aW9uX2gKIAogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNZW1vcnlJbnN0cnVtZW50ZWRQb2ludGVy
QmFzZTsKIGNsYXNzIE1lbW9yeU9iamVjdEluZm87CiAKIGNsYXNzIE1lbW9yeUluc3RydW1lbnRh
dGlvbiB7CkBAIC01OSwxMSArNjEsMTMgQEAgcHVibGljOgogICAgICAgICBjb3VudE9iamVjdFNp
emUob2JqZWN0VHlwZSwgc2l6ZW9mKFQpKTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgY291
bnRPYmplY3RTaXplKE9iamVjdFR5cGUsIHNpemVfdCkgPSAwOworCiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogCi0gICAgdmlydHVhbCB2b2lkIGNvdW50T2Jq
ZWN0U2l6ZShPYmplY3RUeXBlLCBzaXplX3QpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdmlzaXRl
ZChjb25zdCB2b2lkKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWZlckluc3RydW1lbnRlZFBv
aW50ZXIoUGFzc093blB0cjxNZW1vcnlJbnN0cnVtZW50ZWRQb2ludGVyQmFzZT4pID0gMDsKIH07
CiAKIGNsYXNzIE1lbW9yeU9iamVjdEluZm8gewpAQCAtMTEzLDE0ICsxMTcsMzUgQEAgcHVibGlj
OgogICAgIHNpemVfdCBtX29iamVjdFNpemU7CiB9OwogCitjbGFzcyBNZW1vcnlJbnN0cnVtZW50
ZWRQb2ludGVyQmFzZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVtb3J5SW5zdHJ1bWVudGVk
UG9pbnRlckJhc2UoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzSW5zdHJ1bWVudGVk
UG9pbnRlcihNZW1vcnlJbnN0cnVtZW50YXRpb24qKSA9IDA7Cit9OworCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KK2NsYXNzIE1lbW9yeUluc3RydW1lbnRlZFBvaW50ZXIgOiBwdWJsaWMgTWVtb3J5
SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UgeworcHVibGljOgorICAgIGV4cGxpY2l0IE1lbW9yeUlu
c3RydW1lbnRlZFBvaW50ZXIoY29uc3QgVCogcG9pbnRlcikgOiBtX3BvaW50ZXIocG9pbnRlcikg
eyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0luc3RydW1lbnRlZFBvaW50ZXIoTWVtb3J5
SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRpb24pIE9WRVJSSURFCisgICAgewor
ICAgICAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8obWVtb3J5SW5zdHJ1bWVu
dGF0aW9uKTsKKyAgICAgICAgbV9wb2ludGVyLT5yZXBvcnRNZW1vcnlVc2FnZSgmbWVtb3J5T2Jq
ZWN0SW5mbyk7CisgICAgICAgIG1lbW9yeUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXpl
KG1lbW9yeU9iamVjdEluZm8ub2JqZWN0VHlwZSgpLCBtZW1vcnlPYmplY3RJbmZvLm9iamVjdFNp
emUoKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0IFQqIG1fcG9pbnRlcjsKK307CisK
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OnJlcG9y
dEluc3RydW1lbnRlZFBvaW50ZXIoY29uc3QgVCogY29uc3Qgb2JqZWN0KQogewogICAgIGlmICgh
b2JqZWN0IHx8IHZpc2l0ZWQob2JqZWN0KSkKICAgICAgICAgcmV0dXJuOwotICAgIE1lbW9yeU9i
amVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyh0aGlzKTsKLSAgICBvYmplY3QtPnJlcG9ydE1lbW9y
eVVzYWdlKCZtZW1vcnlPYmplY3RJbmZvKTsKLSAgICBjb3VudE9iamVjdFNpemUobWVtb3J5T2Jq
ZWN0SW5mby5vYmplY3RUeXBlKCksIG1lbW9yeU9iamVjdEluZm8ub2JqZWN0U2l6ZSgpKTsKKyAg
ICBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoYWRvcHRQdHIobmV3IE1lbW9yeUluc3RydW1lbnRl
ZFBvaW50ZXI8VD4ob2JqZWN0KSkpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXgg
YjA1ZjYyMmQwMGFjZjU2MmU0Zjk0ODAyYWU3MmY1NDE5ZWZjNjQyNi4uOGU5ZWU2ZTU0MDkzMTE5
OGY4NTJmYzI1NDEwZGQyYjZkYWViZWUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCkBAIC01NCw2ICs1NCw5IEBACiAjaW5jbHVk
ZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6
Ok1lbW9yeTo6RE9NR3JvdXA7CkBAIC00NDEsMzIgKzQ0NCw0OSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBkb20ucmVsZWFzZSgpOwogICAgIH0KIAorICAgIHZvaWQgcHJvY2Vzc0RlZmVycmVk
SW5zdHJ1bWVudGVkUG9pbnRlcnMoKQorICAgIHsKKyAgICAgICAgd2hpbGUgKCFtX2RlZmVycmVk
SW5zdHJ1bWVudGVkUG9pbnRlcnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBPd25QdHI8TWVt
b3J5SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+IHBvaW50ZXIgPSBtX2RlZmVycmVkSW5zdHJ1bWVu
dGVkUG9pbnRlcnMubGFzdCgpOworICAgICAgICAgICAgbV9kZWZlcnJlZEluc3RydW1lbnRlZFBv
aW50ZXJzLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgICAgIHBvaW50ZXItPnByb2Nlc3NJbnN0cnVt
ZW50ZWRQb2ludGVyKHRoaXMpOworICAgICAgICB9CisgICAgfQorCiBwcml2YXRlOgotICAgIHZp
cnR1YWwgdm9pZCBjb3VudE9iamVjdFNpemUoT2JqZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3Qg
c2l6ZSkKKyAgICB2aXJ0dWFsIHZvaWQgY291bnRPYmplY3RTaXplKE9iamVjdFR5cGUgb2JqZWN0
VHlwZSwgc2l6ZV90IHNpemUpIE9WRVJSSURFCiAgICAgewogICAgICAgICBBU1NFUlQob2JqZWN0
VHlwZSA+PSAwICYmIG9iamVjdFR5cGUgPCBMYXN0VHlwZUVudHJ5KTsKICAgICAgICAgbV90b3Rh
bFNpemVzW29iamVjdFR5cGVdICs9IHNpemU7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIHZp
c2l0ZWQoY29uc3Qgdm9pZCogb2JqZWN0KQorICAgIHZpcnR1YWwgYm9vbCB2aXNpdGVkKGNvbnN0
IHZvaWQqIG9iamVjdCkgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIHJldHVybiAhbV92aXNpdGVk
T2JqZWN0cy5hZGQob2JqZWN0KS5pc05ld0VudHJ5OwogICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoUGFzc093blB0cjxNZW1vcnlJbnN0cnVtZW50ZWRQ
b2ludGVyQmFzZT4gcG9pbnRlcikgT1ZFUlJJREUKKyAgICB7CisgICAgICAgIG1fZGVmZXJyZWRJ
bnN0cnVtZW50ZWRQb2ludGVycy5hcHBlbmQocG9pbnRlcik7CisgICAgfQorCiAgICAgc2l6ZV90
IG1fdG90YWxTaXplc1tMYXN0VHlwZUVudHJ5XTsKICAgICB0eXBlZGVmIEhhc2hTZXQ8Y29uc3Qg
dm9pZCo+IFZpc2l0ZWRPYmplY3RzOwogICAgIFZpc2l0ZWRPYmplY3RzIG1fdmlzaXRlZE9iamVj
dHM7CisgICAgVmVjdG9yPFBhc3NPd25QdHI8TWVtb3J5SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+
ID4gbV9kZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzOwogfTsKIAogY2xhc3MgRE9NVHJlZXNJ
dGVyYXRvciA6IHB1YmxpYyBOb2RlV3JhcHBlclZpc2l0b3IgewogcHVibGljOgogICAgIGV4cGxp
Y2l0IERPTVRyZWVzSXRlcmF0b3IoUGFnZSogcGFnZSkgOiBtX3BhZ2UocGFnZSkgeyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgdmlzaXROb2RlKE5vZGUqIG5vZGUpCisgICAgdmlydHVhbCB2b2lkIHZp
c2l0Tm9kZShOb2RlKiBub2RlKSBPVkVSUklERQogICAgIHsKICAgICAgICAgaWYgKG5vZGUtPmRv
Y3VtZW50KCkgJiYgbm9kZS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiBtX3BhZ2UgIT0gbm9kZS0+
ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+cGFnZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIG1fZG9tTWVtb3J5VXNhZ2UucmVwb3J0SW5zdHJ1bWVudGVkUG9pbnRlcihub2RlKTsKKyAg
ICAgICAgbV9kb21NZW1vcnlVc2FnZS5wcm9jZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVy
cygpOwogICAgIH0KIAogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGR1bXBT
dGF0aXN0aWNzKCkgeyByZXR1cm4gbV9kb21NZW1vcnlVc2FnZS5kdW1wU3RhdGlzdGljcygpOyB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149720</attachid>
            <date>2012-06-27 03:55:55 -0700</date>
            <delta_ts>2012-07-02 05:48:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89889-20120627145554.patch</filename>
            <type>text/plain</type>
            <size>6094</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJjYTExMzA1OTAyNDgy
OWEzNDUzNThhYjZjNGRlMjVjNzExY2YzNC4uYWNjNjllMjgxZTRiNjRmMDY5NGFhMGIwZDU5NzA3
NTVjNmQzYjgwMCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA2LTI3ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiByZXBsYWNlIHJlY3Vyc2lvbiB3aXRoIGEgc3RhY2sgaW4gRE9NIG5vZGVzIHNuYXBzaG90
IHRyYXZlcnNhbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5ODg5CisKKyAgICAgICAgTnVtYmVyIG9mIERPTSBub2RlcyBuYXRpdmUgc25hcHNob3Rz
IGNhbiBoYW5kbGUgd2FzIGxpbWl0ZWQKKyAgICAgICAgYnkgdGhlIHByb2Nlc3Mgc3RhY2sgc2l6
ZSBiZWNhdXNlIG9mIHJlY3Vyc2lvbiB1c2VkIHRvIHRyYXZlcnNlIHRoZSBub2Rlcy4KKyAgICAg
ICAgVGhlIHBhdGNoIGNoYW5nZXMgdGhlIHJlY3Vyc2lvbiB0byBhIHN0YWNrIGJhc2VkIGFsZ29y
aXRobS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKE1lbW9yeUluc3RydW1lbnRh
dGlvbik6CisgICAgICAgIChJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjp+SW5z
dHJ1bWVudGVkUG9pbnRlckJhc2UpOgorICAgICAgICAoSW5zdHJ1bWVudGVkUG9pbnRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50
ZXI6Okluc3RydW1lbnRlZFBvaW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1
bWVudGF0aW9uOjpyZXBvcnRJbnN0cnVtZW50ZWRQb2ludGVyKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Ojpwcm9jZXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yTWVtb3J5QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDYtMjYg
IFh1ZXFpbmcgSHVhbmcgIDxodWFuZ3h1ZXFpbmdAYmFpZHUuY29tPgogCiAgICAgICAgIERyYWdE
YXRhOjphc0ZpbGVuYW1lcyBzaG91bGQgbm90IHB1c2ggc2FtZSBmaWxlIG5hbWVzIHRvIHJlc3Vs
dCBpbiBXaW5kb3dzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5o
CmluZGV4IDZmMGU3YTQ3MGZlMWJhNDAyZDA1YWM1ZGFlNjcxODFjMmUyODU1NWYuLjU4NjI5Yjcy
YTRlYzhiYTJjNTJiMzFiMmIxOGQwZjVkYTE3OTZhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uX2gKIAogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTksMTAgKzYwLDMwIEBAIHB1YmxpYzoKICAgICAgICAgY291bnRPYmplY3RT
aXplKG9iamVjdFR5cGUsIHNpemVvZihUKSk7CiAgICAgfQogCitwcm90ZWN0ZWQ6CisgICAgY2xh
c3MgSW5zdHJ1bWVudGVkUG9pbnRlckJhc2UgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVh
bCB+SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQg
cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qKSA9IDA7CisgICAgfTsKKwogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIAorICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgorICAgIGNsYXNzIEluc3RydW1lbnRlZFBvaW50ZXIgOiBwdWJsaWMgSW5zdHJ1bWVu
dGVkUG9pbnRlckJhc2UgeworICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgSW5zdHJ1bWVu
dGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVyKSA6IG1fcG9pbnRlcihwb2ludGVyKSB7IH0KKwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qKSBPVkVS
UklERTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFQqIG1fcG9pbnRlcjsKKyAgICB9
OworCiAgICAgdmlydHVhbCB2b2lkIGNvdW50T2JqZWN0U2l6ZShPYmplY3RUeXBlLCBzaXplX3Qp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKFBhc3NPd25Q
dHI8SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHZpc2l0
ZWQoY29uc3Qgdm9pZCopID0gMDsKIH07CiAKQEAgLTExOCw5ICsxMzksNyBAQCB2b2lkIE1lbW9y
eUluc3RydW1lbnRhdGlvbjo6cmVwb3J0SW5zdHJ1bWVudGVkUG9pbnRlcihjb25zdCBUKiBjb25z
dCBvYmplY3QpCiB7CiAgICAgaWYgKCFvYmplY3QgfHwgdmlzaXRlZChvYmplY3QpKQogICAgICAg
ICByZXR1cm47Ci0gICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZvKHRoaXMpOwot
ICAgIG9iamVjdC0+cmVwb3J0TWVtb3J5VXNhZ2UoJm1lbW9yeU9iamVjdEluZm8pOwotICAgIGNv
dW50T2JqZWN0U2l6ZShtZW1vcnlPYmplY3RJbmZvLm9iamVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0
SW5mby5vYmplY3RTaXplKCkpOworICAgIGRlZmVySW5zdHJ1bWVudGVkUG9pbnRlcihhZG9wdFB0
cihuZXcgSW5zdHJ1bWVudGVkUG9pbnRlcjxUPihvYmplY3QpKSk7CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CkBAIC0xMzIsNiArMTUxLDE0IEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
OjpyZXBvcnRJbnN0cnVtZW50ZWRPYmplY3QoY29uc3QgVCYgb2JqZWN0KQogICAgIG9iamVjdC5y
ZXBvcnRNZW1vcnlVc2FnZSgmbWVtb3J5T2JqZWN0SW5mbyk7CiB9CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+Cit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlcjxU
Pjo6cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRhdGlvbikK
K3sKKyAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8obWVtb3J5SW5zdHJ1bWVu
dGF0aW9uKTsKKyAgICBtX3BvaW50ZXItPnJlcG9ydE1lbW9yeVVzYWdlKCZtZW1vcnlPYmplY3RJ
bmZvKTsKKyAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZShtZW1vcnlP
YmplY3RJbmZvLm9iamVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RTaXplKCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhZGVmaW5lZChNZW1vcnlJ
bnN0cnVtZW50YXRpb25faCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yTWVtb3J5QWdlbnQuY3BwCmluZGV4IGIwNWY2MjJkMDBhY2Y1NjJlNGY5NDgwMmFlNzJmNTQx
OWVmYzY0MjYuLjBiZDVhOTVlMTg1MTlhMTRhNmM4ODQ5NDc5OGY4ODMzNjkyN2UzODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcApA
QCAtNTQsNiArNTQsOSBAQAogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUg
PHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIHVz
aW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpNZW1vcnk6OkRPTUdyb3VwOwpAQCAtNDQxLDMyICs0
NDQsNDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZG9tLnJlbGVhc2UoKTsKICAgICB9CiAK
KyAgICB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCkKKyAgICB7Cisg
ICAgICAgIHdoaWxlICghbV9kZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzLmlzRW1wdHkoKSkg
eworICAgICAgICAgICAgT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPiBwb2ludGVyID0g
bV9kZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzLmxhc3QoKS5yZWxlYXNlKCk7CisgICAgICAg
ICAgICBtX2RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMucmVtb3ZlTGFzdCgpOworICAgICAg
ICAgICAgcG9pbnRlci0+cHJvY2Vzcyh0aGlzKTsKKyAgICAgICAgfQorICAgIH0KKwogcHJpdmF0
ZToKLSAgICB2aXJ0dWFsIHZvaWQgY291bnRPYmplY3RTaXplKE9iamVjdFR5cGUgb2JqZWN0VHlw
ZSwgc2l6ZV90IHNpemUpCisgICAgdmlydHVhbCB2b2lkIGNvdW50T2JqZWN0U2l6ZShPYmplY3RU
eXBlIG9iamVjdFR5cGUsIHNpemVfdCBzaXplKSBPVkVSUklERQogICAgIHsKICAgICAgICAgQVNT
RVJUKG9iamVjdFR5cGUgPj0gMCAmJiBvYmplY3RUeXBlIDwgTGFzdFR5cGVFbnRyeSk7CiAgICAg
ICAgIG1fdG90YWxTaXplc1tvYmplY3RUeXBlXSArPSBzaXplOwogICAgIH0KIAotICAgIHZpcnR1
YWwgYm9vbCB2aXNpdGVkKGNvbnN0IHZvaWQqIG9iamVjdCkKKyAgICB2aXJ0dWFsIHZvaWQgZGVm
ZXJJbnN0cnVtZW50ZWRQb2ludGVyKFBhc3NPd25QdHI8SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+
IHBvaW50ZXIpIE9WRVJSSURFCisgICAgeworICAgICAgICBtX2RlZmVycmVkSW5zdHJ1bWVudGVk
UG9pbnRlcnMuYXBwZW5kKHBvaW50ZXIpOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCB2aXNp
dGVkKGNvbnN0IHZvaWQqIG9iamVjdCkgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIHJldHVybiAh
bV92aXNpdGVkT2JqZWN0cy5hZGQob2JqZWN0KS5pc05ld0VudHJ5OwogICAgIH0KKwogICAgIHNp
emVfdCBtX3RvdGFsU2l6ZXNbTGFzdFR5cGVFbnRyeV07CiAgICAgdHlwZWRlZiBIYXNoU2V0PGNv
bnN0IHZvaWQqPiBWaXNpdGVkT2JqZWN0czsKICAgICBWaXNpdGVkT2JqZWN0cyBtX3Zpc2l0ZWRP
YmplY3RzOworICAgIFZlY3RvcjxPd25QdHI8SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+ID4gbV9k
ZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzOwogfTsKIAogY2xhc3MgRE9NVHJlZXNJdGVyYXRv
ciA6IHB1YmxpYyBOb2RlV3JhcHBlclZpc2l0b3IgewogcHVibGljOgogICAgIGV4cGxpY2l0IERP
TVRyZWVzSXRlcmF0b3IoUGFnZSogcGFnZSkgOiBtX3BhZ2UocGFnZSkgeyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgdmlzaXROb2RlKE5vZGUqIG5vZGUpCisgICAgdmlydHVhbCB2b2lkIHZpc2l0Tm9k
ZShOb2RlKiBub2RlKSBPVkVSUklERQogICAgIHsKICAgICAgICAgaWYgKG5vZGUtPmRvY3VtZW50
KCkgJiYgbm9kZS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiBtX3BhZ2UgIT0gbm9kZS0+ZG9jdW1l
bnQoKS0+ZnJhbWUoKS0+cGFnZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1f
ZG9tTWVtb3J5VXNhZ2UucmVwb3J0SW5zdHJ1bWVudGVkUG9pbnRlcihub2RlKTsKKyAgICAgICAg
bV9kb21NZW1vcnlVc2FnZS5wcm9jZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycygpOwog
ICAgIH0KIAogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yTWVtb3J5QmxvY2s+IGR1bXBTdGF0aXN0
aWNzKCkgeyByZXR1cm4gbV9kb21NZW1vcnlVc2FnZS5kdW1wU3RhdGlzdGljcygpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150405</attachid>
            <date>2012-07-02 05:48:16 -0700</date>
            <delta_ts>2012-07-02 07:18:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89889-20120702164814.patch</filename>
            <type>text/plain</type>
            <size>6535</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzJlNjFiYmZhNTcwYWQ4
NjE2ZDljMjc1M2JlZWNmOGI2NDIxNmIyZC4uZTk3MWRkMDNjZTQwNzc4YTFlZTY3YjZlYzIyM2Vh
YWM5NzY4MDBiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA2LTI3ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiByZXBsYWNlIHJlY3Vyc2lvbiB3aXRoIGEgc3RhY2sgaW4gRE9NIG5vZGVzIHNuYXBzaG90
IHRyYXZlcnNhbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5ODg5CisKKyAgICAgICAgTnVtYmVyIG9mIERPTSBub2RlcyBuYXRpdmUgc25hcHNob3Rz
IGNhbiBoYW5kbGUgd2FzIGxpbWl0ZWQKKyAgICAgICAgYnkgdGhlIHByb2Nlc3Mgc3RhY2sgc2l6
ZSBiZWNhdXNlIG9mIHJlY3Vyc2lvbiB1c2VkIHRvIHRyYXZlcnNlIHRoZSBub2Rlcy4KKyAgICAg
ICAgVGhlIHBhdGNoIGNoYW5nZXMgdGhlIHJlY3Vyc2lvbiB0byBhIHN0YWNrIGJhc2VkIGFsZ29y
aXRobS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGRvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKE1lbW9yeUluc3RydW1lbnRh
dGlvbik6CisgICAgICAgIChJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjp+SW5z
dHJ1bWVudGVkUG9pbnRlckJhc2UpOgorICAgICAgICAoSW5zdHJ1bWVudGVkUG9pbnRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50
ZXI6Okluc3RydW1lbnRlZFBvaW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1
bWVudGF0aW9uOjpyZXBvcnRJbnN0cnVtZW50ZWRQb2ludGVyKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Ojpwcm9jZXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yTWVtb3J5QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDYtMjYg
IFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogU3R5bGVTb3VyY2Ugc2hvdWxkIHNldCBjb250ZW50IHVzaW5nIENTU1N0eWxlTW9k
ZWxSZXNvdXJjZUJpbmRpbmcgZGlyZWN0bHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggYjgxZjViZTU3NmFlNDRlM2JlMWZhNmE3ZjE2YzAzZTI0ZGNh
OTMyMC4uNTBhOGE2ZDhmYzllOWEzMzg3OWUxMjFkNWQ1ZDc2MmI5OWJiYmJkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaApAQCAtMzMsNiArMzMsNyBAQAog
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTYyLDExICs2MywzMSBAQCBwdWJsaWM6CiAgICAgfQogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBIYXNoTWFwVHlwZT4gdm9pZCByZXBvcnRIYXNoTWFwKGNvbnN0IEhh
c2hNYXBUeXBlJiwgT2JqZWN0VHlwZSk7CiAKK3Byb3RlY3RlZDoKKyAgICBjbGFzcyBJbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5JbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZSgpIHsgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKE1l
bW9yeUluc3RydW1lbnRhdGlvbiopID0gMDsKKyAgICB9OworCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisg
ICAgY2xhc3MgSW5zdHJ1bWVudGVkUG9pbnRlciA6IHB1YmxpYyBJbnN0cnVtZW50ZWRQb2ludGVy
QmFzZSB7CisgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBJbnN0cnVtZW50ZWRQb2ludGVy
KGNvbnN0IFQqIHBvaW50ZXIpIDogbV9wb2ludGVyKHBvaW50ZXIpIHsgfQorCisgICAgICAgIHZp
cnR1YWwgdm9pZCBwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiopIE9WRVJSSURFOworCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgVCogbV9wb2ludGVyOworICAgIH07CisKICAgICB2
aXJ0dWFsIHZvaWQgcmVwb3J0U3RyaW5nKE9iamVjdFR5cGUsIGNvbnN0IFN0cmluZyYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgY291bnRPYmplY3RTaXplKE9iamVjdFR5cGUsIHNpemVfdCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoUGFzc093blB0cjxJ
bnN0cnVtZW50ZWRQb2ludGVyQmFzZT4pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdmlzaXRlZChj
b25zdCB2b2lkKikgPSAwOwogfTsKIApAQCAtMTI3LDkgKzE0OCw3IEBAIHZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpyZXBvcnRJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0IFQqIGNvbnN0IG9i
amVjdCkKIHsKICAgICBpZiAoIW9iamVjdCB8fCB2aXNpdGVkKG9iamVjdCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8odGhpcyk7Ci0gICAg
b2JqZWN0LT5yZXBvcnRNZW1vcnlVc2FnZSgmbWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgY291bnRP
YmplY3RTaXplKG1lbW9yeU9iamVjdEluZm8ub2JqZWN0VHlwZSgpLCBtZW1vcnlPYmplY3RJbmZv
Lm9iamVjdFNpemUoKSk7CisgICAgZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKGFkb3B0UHRyKG5l
dyBJbnN0cnVtZW50ZWRQb2ludGVyPFQ+KG9iamVjdCkpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KQEAgLTE0MSw3ICsxNjAsNiBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6cmVw
b3J0SW5zdHJ1bWVudGVkT2JqZWN0KGNvbnN0IFQmIG9iamVjdCkKICAgICBvYmplY3QucmVwb3J0
TWVtb3J5VXNhZ2UoJm1lbW9yeU9iamVjdEluZm8pOwogfQogCi0KIHRlbXBsYXRlPHR5cGVuYW1l
IEhhc2hNYXBUeXBlPgogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OnJlcG9ydEhhc2hNYXAo
Y29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXAsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkKIHsKQEAg
LTE0OSw2ICsxNjcsMTQgQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OnJlcG9ydEhhc2hN
YXAoY29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXAsIE9iamVjdFR5cGUKICAgICBjb3VudE9iamVj
dFNpemUob2JqZWN0VHlwZSwgc2l6ZSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lk
IE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlcjxUPjo6cHJvY2VzcyhN
ZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRhdGlvbikKK3sKKyAgICBNZW1v
cnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8obWVtb3J5SW5zdHJ1bWVudGF0aW9uKTsKKyAg
ICBtX3BvaW50ZXItPnJlcG9ydE1lbW9yeVVzYWdlKCZtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBt
ZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZShtZW1vcnlPYmplY3RJbmZvLm9i
amVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RTaXplKCkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyAhZGVmaW5lZChNZW1vcnlJbnN0cnVtZW50YXRp
b25faCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1v
cnlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdl
bnQuY3BwCmluZGV4IGI1ZmQ4MzZmNTc4OThhM2VhOWNlMDMwZmU1YzYzYzE5NGU1MTQzMGEuLmNl
NDY2ODVlNzM1NDkyMjFhYjJkYmE3MjY4NzQyNzNhYmU1NDQzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcApAQCAtNTQsNiArNTQs
OSBAQAogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1
ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSW1wbC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDU2
LDYgKzQ1OSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBkb20ucmVsZWFzZSgpOwogICAg
IH0KIAorICAgIHZvaWQgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKQorICAg
IHsKKyAgICAgICAgd2hpbGUgKCFtX2RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICBPd25QdHI8SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+IHBvaW50
ZXIgPSBtX2RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMubGFzdCgpLnJlbGVhc2UoKTsKKyAg
ICAgICAgICAgIG1fZGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycy5yZW1vdmVMYXN0KCk7Cisg
ICAgICAgICAgICBwb2ludGVyLT5wcm9jZXNzKHRoaXMpOworICAgICAgICB9CisgICAgfQorCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZXBvcnRTdHJpbmcoT2JqZWN0VHlwZSBvYmplY3RU
eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICB7CkBAIC00NjQsMTggKzQ3NiwyNSBAQCBw
cml2YXRlOgogICAgICAgICBjb3VudE9iamVjdFNpemUob2JqZWN0VHlwZSwgc3RyaW5nU2l6ZShz
dHJpbmcuaW1wbCgpKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvdW50T2JqZWN0U2l6
ZShPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNpemVfdCBzaXplKQorICAgIHZpcnR1YWwgdm9pZCBj
b3VudE9iamVjdFNpemUoT2JqZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkgT1ZFUlJJ
REUKICAgICB7CiAgICAgICAgIEFTU0VSVChvYmplY3RUeXBlID49IDAgJiYgb2JqZWN0VHlwZSA8
IExhc3RUeXBlRW50cnkpOwogICAgICAgICBtX3RvdGFsU2l6ZXNbb2JqZWN0VHlwZV0gKz0gc2l6
ZTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgdmlzaXRlZChjb25zdCB2b2lkKiBvYmplY3Qp
CisgICAgdmlydHVhbCB2b2lkIGRlZmVySW5zdHJ1bWVudGVkUG9pbnRlcihQYXNzT3duUHRyPElu
c3RydW1lbnRlZFBvaW50ZXJCYXNlPiBwb2ludGVyKSBPVkVSUklERQorICAgIHsKKyAgICAgICAg
bV9kZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzLmFwcGVuZChwb2ludGVyKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIGJvb2wgdmlzaXRlZChjb25zdCB2b2lkKiBvYmplY3QpIE9WRVJSSURFCiAg
ICAgewogICAgICAgICByZXR1cm4gIW1fdmlzaXRlZE9iamVjdHMuYWRkKG9iamVjdCkuaXNOZXdF
bnRyeTsKICAgICB9CisKICAgICBzaXplX3QgbV90b3RhbFNpemVzW0xhc3RUeXBlRW50cnldOwog
ICAgIFZpc2l0ZWRPYmplY3RzJiBtX3Zpc2l0ZWRPYmplY3RzOworICAgIFZlY3RvcjxPd25QdHI8
SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+ID4gbV9kZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJz
OwogfTsKIAogY2xhc3MgRE9NVHJlZXNJdGVyYXRvciA6IHB1YmxpYyBOb2RlV3JhcHBlclZpc2l0
b3IgewpAQCAtNDg2LDEyICs1MDUsMTMgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgdmlzaXROb2RlKE5vZGUqIG5vZGUpCisgICAgdmlydHVhbCB2b2lkIHZpc2l0
Tm9kZShOb2RlKiBub2RlKSBPVkVSUklERQogICAgIHsKICAgICAgICAgaWYgKG5vZGUtPmRvY3Vt
ZW50KCkgJiYgbm9kZS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiBtX3BhZ2UgIT0gbm9kZS0+ZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+cGFnZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IG1fZG9tTWVtb3J5VXNhZ2UucmVwb3J0SW5zdHJ1bWVudGVkUG9pbnRlcihub2RlKTsKKyAgICAg
ICAgbV9kb21NZW1vcnlVc2FnZS5wcm9jZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycygp
OwogICAgIH0KIAogICAgIHZvaWQgdmlzaXRCaW5kaW5ncygpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>