<?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>108686</bug_id>
          
          <creation_ts>2013-02-01 13:44:58 -0800</creation_ts>
          <short_desc>[Qt][EFL][WebGL] Minor refactoring of GraphicsSurface/GraphicsSurfaceGLX</short_desc>
          <delta_ts>2013-02-11 23:28:27 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Viatcheslav Ostapenko">ostap73</reporter>
          <assigned_to name="Viatcheslav Ostapenko">ostap73</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>kalyan.kondapally</cc>
    
    <cc>kenneth</cc>
    
    <cc>noam</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>823220</commentid>
    <comment_count>0</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-01 13:44:58 -0800</bug_when>
    <thetext>Remove unused platformSurface()/m_platformSurface from GraphicsSurface.
Move m_texture from GraphicsSurface to GLX GraphicsSurfacePrivate. It is used only by GraphicsSurfaceGLX. Win and Mac implementation store texture inside private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823228</commentid>
    <comment_count>1</comment_count>
      <attachid>186128</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-01 13:50:05 -0800</bug_when>
    <thetext>Created attachment 186128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823240</commentid>
    <comment_count>2</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-01 14:00:48 -0800</bug_when>
    <thetext>Please cc kalyan</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823780</commentid>
    <comment_count>3</comment_count>
      <attachid>186128</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-03 01:06:39 -0800</bug_when>
    <thetext>Comment on attachment 186128
Patch

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

&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:440
&gt; +
&gt; +    GLuint texture() const
&gt; +    {
&gt; +        if (!m_texture) {
&gt; +            GLXPixmap pixmap = glxPixmap();
&gt; +            if (!pixmap)
&gt; +                return 0;
&gt; +
&gt; +            GraphicsSurfacePrivate* that = const_cast&lt;GraphicsSurfacePrivate*&gt;(this);

Why make this const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823784</commentid>
    <comment_count>4</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-03 01:47:08 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 186128 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186128&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:440
&gt; &gt; +
&gt; &gt; +    GLuint texture() const
&gt; &gt; +    {
&gt; &gt; +        if (!m_texture) {
&gt; &gt; +            GLXPixmap pixmap = glxPixmap();
&gt; &gt; +            if (!pixmap)
&gt; &gt; +                return 0;
&gt; &gt; +
&gt; &gt; +            GraphicsSurfacePrivate* that = const_cast&lt;GraphicsSurfacePrivate*&gt;(this);
&gt; 
&gt; Why make this const?

Texture is allocated once, but read often. Just to give compiler chance to optimize it. Have seen this pattern in many places in webkit&amp;Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823795</commentid>
    <comment_count>5</comment_count>
      <attachid>186128</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-03 02:49:35 -0800</bug_when>
    <thetext>Comment on attachment 186128
Patch

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

&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:363
&gt; +            pGlXBindTexImageEXT(display(), glxPixmap(), GLX_FRONT_EXT, 0);

Should we bind and release the texture immediately?? Is there any reason why we dont release it till next swapbuffer call??

&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:447
&gt; +            pGlXBindTexImageEXT(display(), pixmap, GLX_FRONT_EXT, 0);

If we agree that it is k to bind and release the texture in swapbuffer call, we could call swapbuffer here to have the updated content.

&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:474
&gt; +            pGlXReleaseTexImageEXT(display(), glxPixmap(), GLX_FRONT_EXT);

we dont have to do this, incase we already release the texture in swapbuffer call</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823804</commentid>
    <comment_count>6</comment_count>
      <attachid>186128</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-03 03:05:55 -0800</bug_when>
    <thetext>Comment on attachment 186128
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:363
&gt;&gt; +            pGlXBindTexImageEXT(display(), glxPixmap(), GLX_FRONT_EXT, 0);
&gt; 
&gt; Should we bind and release the texture immediately?? Is there any reason why we dont release it till next swapbuffer call??

To clarify, what I meant was to reverse the order. Instead of release -&gt; bind we should have bind -&gt; release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823837</commentid>
    <comment_count>7</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-03 06:57:41 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 186128 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186128&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:363
&gt; &gt;&gt; +            pGlXBindTexImageEXT(display(), glxPixmap(), GLX_FRONT_EXT, 0);
&gt; &gt; 
&gt; &gt; Should we bind and release the texture immediately?? Is there any reason why we dont release it till next swapbuffer call??
&gt; 
&gt; To clarify, what I meant was to reverse the order. Instead of release -&gt; bind we should have bind -&gt; release

Originally it was like this in my patch, but somebody had concerns about it.
It works either way on ATI fglrx and mesa, but rebind makes problems on nvidia. It doesn&apos;t work either way on xorg-radeon ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823855</commentid>
    <comment_count>8</comment_count>
      <attachid>186128</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-03 10:08:18 -0800</bug_when>
    <thetext>Comment on attachment 186128
Patch

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

&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:364
&gt; +

k, LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824360</commentid>
    <comment_count>9</comment_count>
      <attachid>186128</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2013-02-04 08:07:27 -0800</bug_when>
    <thetext>Comment on attachment 186128
Patch

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

&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:358
&gt; +        // re-bind texture the XWindow.

I&apos;m not sure what you meant to say here. &quot; ... has to re-bind the texture to the XWindow.&quot; may be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824371</commentid>
    <comment_count>10</comment_count>
      <attachid>186128</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-04 08:23:44 -0800</bug_when>
    <thetext>Comment on attachment 186128
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:358
&gt;&gt; +        // re-bind texture the XWindow.
&gt; 
&gt; I&apos;m not sure what you meant to say here. &quot; ... has to re-bind the texture to the XWindow.&quot; may be?

Oh! Yes! Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824399</commentid>
    <comment_count>11</comment_count>
      <attachid>186390</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-04 08:43:10 -0800</bug_when>
    <thetext>Created attachment 186390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830075</commentid>
    <comment_count>12</comment_count>
      <attachid>186390</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-11 13:43:35 -0800</bug_when>
    <thetext>Comment on attachment 186390
Patch

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

&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:357
&gt; +        // The buffers are being switched on the writing side, the reading side has to

switched, you mean swapped?

&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:361
&gt; +            // Release previous lock and rebind texture to surface to get frame update.

&quot;to get frame update&quot;, you mean &quot;to ensure the frame updates&quot;? or &quot;facilitate a frame update&quot;?

&gt; Source/WebCore/platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:450
&gt; +        if (!m_texture) {
&gt; +            GLXPixmap pixmap = glxPixmap();
&gt; +            if (!pixmap)
&gt; +                return 0;
&gt; +
&gt; +            GraphicsSurfacePrivate* that = const_cast&lt;GraphicsSurfacePrivate*&gt;(this);
&gt; +            glGenTextures(1, &amp;(that-&gt;m_texture));
&gt; +            glBindTexture(GL_TEXTURE_2D, that-&gt;m_texture);
&gt; +            glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
&gt; +            glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
&gt; +            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
&gt; +            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
&gt; +            pGlXBindTexImageEXT(display(), pixmap, GLX_FRONT_EXT, 0);
&gt; +        }
&gt; +
&gt; +        return m_texture;

I&apos;d prefer to construct this method differently:
1. return early if there is an m_texture.
2. use a local texture variable, and then at the end do the const_cast thing to save it to a member.
This way the area where you const_cast is easy to read and understand, without &quot;that&quot; :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830460</commentid>
    <comment_count>13</comment_count>
      <attachid>187751</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-11 19:06:37 -0800</bug_when>
    <thetext>Created attachment 187751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830467</commentid>
    <comment_count>14</comment_count>
      <attachid>187755</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2013-02-11 19:16:21 -0800</bug_when>
    <thetext>Created attachment 187755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830600</commentid>
    <comment_count>15</comment_count>
      <attachid>187755</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 23:28:23 -0800</bug_when>
    <thetext>Comment on attachment 187755
Patch

Clearing flags on attachment: 187755

Committed r142587: &lt;http://trac.webkit.org/changeset/142587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830601</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 23:28:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186128</attachid>
            <date>2013-02-01 13:50:05 -0800</date>
            <delta_ts>2013-02-04 08:42:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108686-20130201163126.patch</filename>
            <type>text/plain</type>
            <size>9434</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjcyMDU4ZWVkZDRjYzJh
MTRiODQzYmFmZTE0MDMzMDk0M2ZlYjEyYy4uY2JmNjgyZWJlZTMxYzcwZmZjYjQ3N2YxODRhMDg1
ZTdkMjdlMTgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAyLTAxICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDxzbC5vc3RhcGVua29Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W1F0XVtFRkxdW1dlYkdMXSBNaW5vciByZWZhY3RvcmluZyBvZiBHcmFwaGljc1N1cmZhY2UvR3Jh
cGhpY3NTdXJmYWNlR0xYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDg2ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdW51c2VkIHBsYXRmb3JtU3VyZmFjZSgpL21fcGxhdGZvcm1TdXJmYWNl
IGZyb20gR3JhcGhpY3NTdXJmYWNlLgorICAgICAgICBNb3ZlIG1fdGV4dHVyZSBmcm9tIEdyYXBo
aWNzU3VyZmFjZSB0byBHTFggR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB0byBtYXRjaAorICAgICAg
ICBXaW4gYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBy
ZWZhY3RvcmluZyBvbmx5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
R3JhcGhpY3NTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZTo6
R3JhcGhpY3NTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
cmFwaGljc1N1cmZhY2UuaDoKKyAgICAgICAgKEdyYXBoaWNzU3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjpHcmFwaGljc1N1cmZhY2VQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6OnN3YXBC
dWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6OnN1cmZh
Y2UpOgorICAgICAgICAoR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjp0ZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzU3VyZmFjZVByaXZhdGU6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
U3VyZmFjZTo6cGxhdGZvcm1FeHBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NTdXJm
YWNlOjpwbGF0Zm9ybUdldFRleHR1cmVJRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1
cmZhY2U6OnBsYXRmb3JtU3dhcEJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NT
dXJmYWNlOjpwbGF0Zm9ybUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZh
Y2U6OnBsYXRmb3JtSW1wb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZTo6
cGxhdGZvcm1EZXN0cm95KToKKwogMjAxMy0wMS0zMSAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcu
Y3phamtvd3NraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBPbiBMaW51eCwgY2FuJ3QgZ2V0IHNw
ZWxsaW5nIHN1Z2dlc3Rpb25zIHdpdGhvdXQgc2VsZWN0aW9uIHdoZW4gdW5pZmllZCB0ZXh0IGNo
ZWNrZXIgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAKaW5kZXggNTY4OGNlOWUx
YjNlOTM4Yzc2N2I2YzNjOWI3ZmQ5YTA3ODM2YjM0OC4uYmFlZmE4YTE5MDg0MWFlYWIyYjQwYTJj
ZDA2NDc3MjBmMTYzMzU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCkBAIC04NSw4ICs4
NSw2IEBAIEludFNpemUgR3JhcGhpY3NTdXJmYWNlOjpzaXplKCkgY29uc3QKIAogR3JhcGhpY3NT
dXJmYWNlOjpHcmFwaGljc1N1cmZhY2UoY29uc3QgSW50U2l6ZSYsIEZsYWdzIGZsYWdzKQogICAg
IDogbV9mbGFncyhmbGFncykKLSAgICAsIG1fcGxhdGZvcm1TdXJmYWNlKDApCi0gICAgLCBtX3Rl
eHR1cmUoMCkKICAgICAsIG1fZmJvKDApCiAgICAgLCBtX3ByaXZhdGUoMCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3Vy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhp
Y3NTdXJmYWNlLmgKaW5kZXggNTQ5ZTgwNGM0NjVkZGU4OGQ0N2ZlN2U1ODljZTY0ZWE4M2Q1NDMw
My4uZGE0OTM2OTk4YzVkMGRkNzkyODU5NWUyMjFjOGZhOTI2OTFhMzg3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhp
Y3NTdXJmYWNlLmgKQEAgLTczLDcgKzczLDYgQEAgcHVibGljOgogICAgIHR5cGVkZWYgaW50IExv
Y2tPcHRpb25zOwogCiAgICAgRmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9
Ci0gICAgUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UgcGxhdGZvcm1TdXJmYWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wbGF0Zm9ybVN1cmZhY2U7IH0KICAgICBJbnRTaXplIHNpemUoKSBjb25zdDsKIAog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gY3JlYXRlKGNvbnN0IEludFNp
emUmLCBGbGFncywgY29uc3QgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBzaGFyZUNvbnRleHQg
PSAwKTsKQEAgLTExOSw4ICsxMTgsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0g
ICAgUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UgbV9wbGF0Zm9ybVN1cmZhY2U7Ci0gICAgdWludDMy
X3QgbV90ZXh0dXJlOwogICAgIHVpbnQzMl90IG1fZmJvOwogICAgIEdyYXBoaWNzU3VyZmFjZVBy
aXZhdGUqIG1fcHJpdmF0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFgu
Y3BwCmluZGV4IGE1N2I2Mzg2OTY4OTJmYTE1ZGI0NzlmNjhhNWMzMmQ1ZTdiOGVhMWYuLmU4NzBk
MTBkODg1YWMwYWVjYjIwOWUzYzFhZDIyYTM4OTYyNjU4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9H
cmFwaGljc1N1cmZhY2VHTFguY3BwCkBAIC0yMjAsNiArMjIwLDcgQEAgc3RydWN0IEdyYXBoaWNz
U3VyZmFjZVByaXZhdGUgewogICAgICAgICAsIG1fdGV4dHVyZUlzWUludmVydGVkKGZhbHNlKQog
ICAgICAgICAsIG1faGFzQWxwaGEoZmFsc2UpCiAgICAgICAgICwgbV9pc1JlY2VpdmVyKGZhbHNl
KQorICAgICAgICAsIG1fdGV4dHVyZSgwKQogICAgIHsKICAgICAgICAgR0xYQ29udGV4dCBzaGFy
ZUNvbnRleHRPYmplY3QgPSAwOwogCkBAIC0yNTgsNiArMjU5LDcgQEAgc3RydWN0IEdyYXBoaWNz
U3VyZmFjZVByaXZhdGUgewogICAgICAgICAsIG1fdGV4dHVyZUlzWUludmVydGVkKGZhbHNlKQog
ICAgICAgICAsIG1faGFzQWxwaGEoZmFsc2UpCiAgICAgICAgICwgbV9pc1JlY2VpdmVyKHRydWUp
CisgICAgICAgICwgbV90ZXh0dXJlKDApCiAgICAgeyB9CiAKICAgICB+R3JhcGhpY3NTdXJmYWNl
UHJpdmF0ZSgpCkBAIC0zNTIsMTAgKzM1NCwxNiBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJmYWNlUHJp
dmF0ZSB7CiAKICAgICB2b2lkIHN3YXBCdWZmZXJzKCkKICAgICB7Ci0gICAgICAgIC8vIFRoZSBi
dWZmZXJzIGFyZSBiZWluZyBzd2l0Y2hlZCBvbiB0aGUgd3JpdGluZyBzaWRlLCB0aGUgcmVhZGlu
ZyBzaWRlIGp1c3QgcmVhZHMKLSAgICAgICAgLy8gd2hhdGV2ZXIgdGV4dHVyZSB0aGUgWFdpbmRv
dyBjb250YWlucy4KLSAgICAgICAgaWYgKG1faXNSZWNlaXZlcikKKyAgICAgICAgLy8gVGhlIGJ1
ZmZlcnMgYXJlIGJlaW5nIHN3aXRjaGVkIG9uIHRoZSB3cml0aW5nIHNpZGUsIHRoZSByZWFkaW5n
IHNpZGUgaGFzIHRvCisgICAgICAgIC8vIHJlLWJpbmQgdGV4dHVyZSB0aGUgWFdpbmRvdy4KKyAg
ICAgICAgaWYgKGlzUmVjZWl2ZXIoKSAmJiB0ZXh0dXJlKCkpIHsKKyAgICAgICAgICAgIGdsQmlu
ZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgdGV4dHVyZSgpKTsKKyAgICAgICAgICAgIC8vIFJlbGVh
c2UgcHJldmlvdXMgbG9jayBhbmQgcmViaW5kIHRleHR1cmUgdG8gc3VyZmFjZSB0byBnZXQgZnJh
bWUgdXBkYXRlLgorICAgICAgICAgICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChkaXNwbGF5KCks
IGdseFBpeG1hcCgpLCBHTFhfRlJPTlRfRVhUKTsKKyAgICAgICAgICAgIHBHbFhCaW5kVGV4SW1h
Z2VFWFQoZGlzcGxheSgpLCBnbHhQaXhtYXAoKSwgR0xYX0ZST05UX0VYVCwgMCk7CisKICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIEdMWENvbnRleHQgZ2xDb250ZXh0
ID0gZ2xYR2V0Q3VycmVudENvbnRleHQoKTsKIApAQCAtNDIwLDYgKzQyOCwyNyBAQCBzdHJ1Y3Qg
R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB7CiAgICAgfQogCiAgICAgYm9vbCBpc1JlY2VpdmVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1JlY2VpdmVyOyB9CisgICAgV2luZG93IHN1cmZhY2UoKSBjb25z
dCB7IHJldHVybiBtX3N1cmZhY2U7IH0KKworICAgIEdMdWludCB0ZXh0dXJlKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIGlmICghbV90ZXh0dXJlKSB7CisgICAgICAgICAgICBHTFhQaXhtYXAgcGl4
bWFwID0gZ2x4UGl4bWFwKCk7CisgICAgICAgICAgICBpZiAoIXBpeG1hcCkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gMDsKKworICAgICAgICAgICAgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSogdGhh
dCA9IGNvbnN0X2Nhc3Q8R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSo+KHRoaXMpOworICAgICAgICAg
ICAgZ2xHZW5UZXh0dXJlcygxLCAmKHRoYXQtPm1fdGV4dHVyZSkpOworICAgICAgICAgICAgZ2xC
aW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCB0aGF0LT5tX3RleHR1cmUpOworICAgICAgICAgICAg
Z2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwgR0xf
TElORUFSKTsKKyAgICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9U
RVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgICAgICBnbFRleFBhcmFtZXRl
cmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwor
ICAgICAgICAgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JB
UF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAgICAgICAgIHBHbFhCaW5kVGV4SW1hZ2VFWFQo
ZGlzcGxheSgpLCBwaXhtYXAsIEdMWF9GUk9OVF9FWFQsIDApOworICAgICAgICB9CisKKyAgICAg
ICAgcmV0dXJuIG1fdGV4dHVyZTsKKyAgICB9CiBwcml2YXRlOgogICAgIEdMWEZCQ29uZmlnJiBm
aW5kRkJDb25maWdXaXRoQWxwaGEoR0xYRkJDb25maWcqIGZiQ29uZmlncywgaW50IG51bWJlck9m
Q29uZmlncykKICAgICB7CkBAIC00NDEsNiArNDcwLDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGNsZWFyKCkKICAgICB7CisgICAgICAgIGlmIChtX3RleHR1cmUpIHsKKyAgICAgICAgICAgIHBH
bFhSZWxlYXNlVGV4SW1hZ2VFWFQoZGlzcGxheSgpLCBnbHhQaXhtYXAoKSwgR0xYX0ZST05UX0VY
VCk7CisgICAgICAgICAgICBnbERlbGV0ZVRleHR1cmVzKDEsICZtX3RleHR1cmUpOworICAgICAg
ICB9CisKICAgICAgICAgaWYgKG1fZ2x4UGl4bWFwKSB7CiAgICAgICAgICAgICBnbFhEZXN0cm95
UGl4bWFwKGRpc3BsYXkoKSwgbV9nbHhQaXhtYXApOwogICAgICAgICAgICAgbV9nbHhQaXhtYXAg
PSAwOwpAQCAtNDc2LDYgKzUxMCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3RleHR1cmVJc1lJ
bnZlcnRlZDsKICAgICBib29sIG1faGFzQWxwaGE7CiAgICAgYm9vbCBtX2lzUmVjZWl2ZXI7Cisg
ICAgR0x1aW50IG1fdGV4dHVyZTsKIH07CiAKIHN0YXRpYyBib29sIHJlc29sdmVHTE1ldGhvZHMo
KQpAQCAtNDk4LDI2ICs1MzMsMTIgQEAgc3RhdGljIGJvb2wgcmVzb2x2ZUdMTWV0aG9kcygpCiAK
IEdyYXBoaWNzU3VyZmFjZVRva2VuIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1FeHBvcnQoKQog
ewotICAgIHJldHVybiBHcmFwaGljc1N1cmZhY2VUb2tlbihtX3BsYXRmb3JtU3VyZmFjZSk7Cisg
ICAgcmV0dXJuIEdyYXBoaWNzU3VyZmFjZVRva2VuKG1fcHJpdmF0ZS0+c3VyZmFjZSgpKTsKIH0K
IAogdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUdldFRleHR1cmVJRCgpCiB7Ci0g
ICAgaWYgKCFtX3RleHR1cmUpIHsKLSAgICAgICAgR0xYUGl4bWFwIHBpeG1hcCA9IG1fcHJpdmF0
ZS0+Z2x4UGl4bWFwKCk7Ci0gICAgICAgIGlmICghcGl4bWFwKQotICAgICAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICAgICAgZ2xHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKLSAgICAgICAgZ2xC
aW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX3RleHR1cmUpOwotICAgICAgICBnbFRleFBhcmFt
ZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOwot
ICAgICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklM
VEVSLCBHTF9MSU5FQVIpOwotICAgICAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwg
R0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICBnbFRleFBhcmFt
ZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0Up
OwotICAgICAgICBwR2xYQmluZFRleEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlzcGxheSgpLCBwaXht
YXAsIEdMWF9GUk9OVF9FWFQsIDApOwotICAgIH0KLQotICAgIHJldHVybiBtX3RleHR1cmU7Cisg
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+dGV4dHVyZSgpOwogfQogCiB2b2lkIEdyYXBoaWNzU3VyZmFj
ZTo6cGxhdGZvcm1Db3B5VG9HTFRleHR1cmUodWludDMyX3QgLyp0YXJnZXQqLywgdWludDMyX3Qg
LyppZCovLCBjb25zdCBJbnRSZWN0JiAvKnRhcmdldFJlY3QqLywgY29uc3QgSW50UG9pbnQmIC8q
b2Zmc2V0Ki8pCkBAIC01NTUsMTUgKzU3Niw2IEBAIHVpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6
cGxhdGZvcm1Gcm9udEJ1ZmZlcigpIGNvbnN0CiAKIHVpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6
cGxhdGZvcm1Td2FwQnVmZmVycygpCiB7Ci0gICAgaWYgKG1fcHJpdmF0ZS0+aXNSZWNlaXZlcigp
ICYmIHBsYXRmb3JtR2V0VGV4dHVyZUlEKCkpIHsKLSAgICAgICAgZ2xCaW5kVGV4dHVyZShHTF9U
RVhUVVJFXzJELCBwbGF0Zm9ybUdldFRleHR1cmVJRCgpKTsKLSAgICAgICAgLy8gUmVsZWFzZSBw
cmV2aW91cyBsb2NrIGFuZCByZWJpbmQgdGV4dHVyZSB0byBzdXJmYWNlIHRvIGdldCBmcmFtZSB1
cGRhdGUuCi0gICAgICAgIHBHbFhSZWxlYXNlVGV4SW1hZ2VFWFQobV9wcml2YXRlLT5kaXNwbGF5
KCksIG1fcHJpdmF0ZS0+Z2x4UGl4bWFwKCksIEdMWF9GUk9OVF9FWFQpOwotICAgICAgICBwR2xY
QmluZFRleEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlzcGxheSgpLCBtX3ByaXZhdGUtPmdseFBpeG1h
cCgpLCBHTFhfRlJPTlRfRVhULCAwKTsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KICAg
ICBtX3ByaXZhdGUtPnN3YXBCdWZmZXJzKCk7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC01ODcsNyAr
NTk5LDcgQEAgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+IEdyYXBoaWNzU3VyZmFjZTo6cGxh
dGZvcm1DcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwKICAgICBpZiAoIXJlc29sdmVHTE1ldGhv
ZHMoKSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPigpOwogCi0g
ICAgc3VyZmFjZS0+bV9wbGF0Zm9ybVN1cmZhY2UgPSBzdXJmYWNlLT5tX3ByaXZhdGUtPmNyZWF0
ZVN1cmZhY2Uoc2l6ZSk7CisgICAgc3VyZmFjZS0+bV9wcml2YXRlLT5jcmVhdGVTdXJmYWNlKHNp
emUpOwogCiAgICAgcmV0dXJuIHN1cmZhY2U7CiB9CkBAIC02MDEsOSArNjEzLDggQEAgUGFzc1Jl
ZlB0cjxHcmFwaGljc1N1cmZhY2U+IEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1JbXBvcnQoY29u
c3QgSW50U2l6ZSYgc2l6ZSwKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJm
YWNlPigpOwogCiAgICAgUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gc3VyZmFjZSA9IGFkb3B0UmVm
KG5ldyBHcmFwaGljc1N1cmZhY2Uoc2l6ZSwgZmxhZ3MpKTsKLSAgICBzdXJmYWNlLT5tX3BsYXRm
b3JtU3VyZmFjZSA9IHRva2VuLmZyb250QnVmZmVySGFuZGxlOwogCi0gICAgc3VyZmFjZS0+bV9w
cml2YXRlID0gbmV3IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUoc3VyZmFjZS0+bV9wbGF0Zm9ybVN1
cmZhY2UpOworICAgIHN1cmZhY2UtPm1fcHJpdmF0ZSA9IG5ldyBHcmFwaGljc1N1cmZhY2VQcml2
YXRlKHRva2VuLmZyb250QnVmZmVySGFuZGxlKTsKICAgICBpZiAoIXJlc29sdmVHTE1ldGhvZHMo
KSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPigpOwogCkBAIC02
MjMsMTEgKzYzNCw2IEBAIHZvaWQgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybVVubG9jaygpCiAK
IHZvaWQgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybURlc3Ryb3koKQogewotICAgIGlmIChtX3Rl
eHR1cmUpIHsKLSAgICAgICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChtX3ByaXZhdGUtPmRpc3Bs
YXkoKSwgbV9wcml2YXRlLT5nbHhQaXhtYXAoKSwgR0xYX0ZST05UX0VYVCk7Ci0gICAgICAgIGds
RGVsZXRlVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgfQotCiAgICAgZGVsZXRlIG1fcHJp
dmF0ZTsKICAgICBtX3ByaXZhdGUgPSAwOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186390</attachid>
            <date>2013-02-04 08:43:10 -0800</date>
            <delta_ts>2013-02-11 19:06:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108686-20130204113942.patch</filename>
            <type>text/plain</type>
            <size>9437</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjcyMDU4ZWVkZDRjYzJh
MTRiODQzYmFmZTE0MDMzMDk0M2ZlYjEyYy4uM2IwMGE3OTI0ZTA1MDc3ZjhkYjMyNTkzOGQyNGYw
ZjI3NzVmYTFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAyLTA0ICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDxzbC5vc3RhcGVua29Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W1F0XVtFRkxdW1dlYkdMXSBNaW5vciByZWZhY3RvcmluZyBvZiBHcmFwaGljc1N1cmZhY2UvR3Jh
cGhpY3NTdXJmYWNlR0xYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDg2ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdW51c2VkIHBsYXRmb3JtU3VyZmFjZSgpL21fcGxhdGZvcm1TdXJmYWNl
IGZyb20gR3JhcGhpY3NTdXJmYWNlLgorICAgICAgICBNb3ZlIG1fdGV4dHVyZSBmcm9tIEdyYXBo
aWNzU3VyZmFjZSB0byBHTFggR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB0byBtYXRjaAorICAgICAg
ICBXaW4gYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBy
ZWZhY3RvcmluZyBvbmx5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
R3JhcGhpY3NTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZTo6
R3JhcGhpY3NTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
cmFwaGljc1N1cmZhY2UuaDoKKyAgICAgICAgKEdyYXBoaWNzU3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjpHcmFwaGljc1N1cmZhY2VQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6OnN3YXBC
dWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6OnN1cmZh
Y2UpOgorICAgICAgICAoR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjp0ZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzU3VyZmFjZVByaXZhdGU6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
U3VyZmFjZTo6cGxhdGZvcm1FeHBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NTdXJm
YWNlOjpwbGF0Zm9ybUdldFRleHR1cmVJRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1
cmZhY2U6OnBsYXRmb3JtU3dhcEJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NT
dXJmYWNlOjpwbGF0Zm9ybUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZh
Y2U6OnBsYXRmb3JtSW1wb3J0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZTo6
cGxhdGZvcm1EZXN0cm95KToKKwogMjAxMy0wMS0zMSAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcu
Y3phamtvd3NraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBPbiBMaW51eCwgY2FuJ3QgZ2V0IHNw
ZWxsaW5nIHN1Z2dlc3Rpb25zIHdpdGhvdXQgc2VsZWN0aW9uIHdoZW4gdW5pZmllZCB0ZXh0IGNo
ZWNrZXIgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAKaW5kZXggNTY4OGNlOWUx
YjNlOTM4Yzc2N2I2YzNjOWI3ZmQ5YTA3ODM2YjM0OC4uYmFlZmE4YTE5MDg0MWFlYWIyYjQwYTJj
ZDA2NDc3MjBmMTYzMzU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCkBAIC04NSw4ICs4
NSw2IEBAIEludFNpemUgR3JhcGhpY3NTdXJmYWNlOjpzaXplKCkgY29uc3QKIAogR3JhcGhpY3NT
dXJmYWNlOjpHcmFwaGljc1N1cmZhY2UoY29uc3QgSW50U2l6ZSYsIEZsYWdzIGZsYWdzKQogICAg
IDogbV9mbGFncyhmbGFncykKLSAgICAsIG1fcGxhdGZvcm1TdXJmYWNlKDApCi0gICAgLCBtX3Rl
eHR1cmUoMCkKICAgICAsIG1fZmJvKDApCiAgICAgLCBtX3ByaXZhdGUoMCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3Vy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhp
Y3NTdXJmYWNlLmgKaW5kZXggNTQ5ZTgwNGM0NjVkZGU4OGQ0N2ZlN2U1ODljZTY0ZWE4M2Q1NDMw
My4uZGE0OTM2OTk4YzVkMGRkNzkyODU5NWUyMjFjOGZhOTI2OTFhMzg3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhp
Y3NTdXJmYWNlLmgKQEAgLTczLDcgKzczLDYgQEAgcHVibGljOgogICAgIHR5cGVkZWYgaW50IExv
Y2tPcHRpb25zOwogCiAgICAgRmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9
Ci0gICAgUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UgcGxhdGZvcm1TdXJmYWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wbGF0Zm9ybVN1cmZhY2U7IH0KICAgICBJbnRTaXplIHNpemUoKSBjb25zdDsKIAog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gY3JlYXRlKGNvbnN0IEludFNp
emUmLCBGbGFncywgY29uc3QgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBzaGFyZUNvbnRleHQg
PSAwKTsKQEAgLTExOSw4ICsxMTgsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0g
ICAgUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UgbV9wbGF0Zm9ybVN1cmZhY2U7Ci0gICAgdWludDMy
X3QgbV90ZXh0dXJlOwogICAgIHVpbnQzMl90IG1fZmJvOwogICAgIEdyYXBoaWNzU3VyZmFjZVBy
aXZhdGUqIG1fcHJpdmF0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFgu
Y3BwCmluZGV4IGE1N2I2Mzg2OTY4OTJmYTE1ZGI0NzlmNjhhNWMzMmQ1ZTdiOGVhMWYuLmQ5M2Ex
Mzc2MDFmN2UzOTM2NmM3MjQ2NmFhOGM0YmNiYmRkNDQyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9H
cmFwaGljc1N1cmZhY2VHTFguY3BwCkBAIC0yMjAsNiArMjIwLDcgQEAgc3RydWN0IEdyYXBoaWNz
U3VyZmFjZVByaXZhdGUgewogICAgICAgICAsIG1fdGV4dHVyZUlzWUludmVydGVkKGZhbHNlKQog
ICAgICAgICAsIG1faGFzQWxwaGEoZmFsc2UpCiAgICAgICAgICwgbV9pc1JlY2VpdmVyKGZhbHNl
KQorICAgICAgICAsIG1fdGV4dHVyZSgwKQogICAgIHsKICAgICAgICAgR0xYQ29udGV4dCBzaGFy
ZUNvbnRleHRPYmplY3QgPSAwOwogCkBAIC0yNTgsNiArMjU5LDcgQEAgc3RydWN0IEdyYXBoaWNz
U3VyZmFjZVByaXZhdGUgewogICAgICAgICAsIG1fdGV4dHVyZUlzWUludmVydGVkKGZhbHNlKQog
ICAgICAgICAsIG1faGFzQWxwaGEoZmFsc2UpCiAgICAgICAgICwgbV9pc1JlY2VpdmVyKHRydWUp
CisgICAgICAgICwgbV90ZXh0dXJlKDApCiAgICAgeyB9CiAKICAgICB+R3JhcGhpY3NTdXJmYWNl
UHJpdmF0ZSgpCkBAIC0zNTIsMTAgKzM1NCwxNiBAQCBzdHJ1Y3QgR3JhcGhpY3NTdXJmYWNlUHJp
dmF0ZSB7CiAKICAgICB2b2lkIHN3YXBCdWZmZXJzKCkKICAgICB7Ci0gICAgICAgIC8vIFRoZSBi
dWZmZXJzIGFyZSBiZWluZyBzd2l0Y2hlZCBvbiB0aGUgd3JpdGluZyBzaWRlLCB0aGUgcmVhZGlu
ZyBzaWRlIGp1c3QgcmVhZHMKLSAgICAgICAgLy8gd2hhdGV2ZXIgdGV4dHVyZSB0aGUgWFdpbmRv
dyBjb250YWlucy4KLSAgICAgICAgaWYgKG1faXNSZWNlaXZlcikKKyAgICAgICAgLy8gVGhlIGJ1
ZmZlcnMgYXJlIGJlaW5nIHN3aXRjaGVkIG9uIHRoZSB3cml0aW5nIHNpZGUsIHRoZSByZWFkaW5n
IHNpZGUgaGFzIHRvCisgICAgICAgIC8vIHJlLWJpbmQgdGV4dHVyZSB0byB0aGUgWFdpbmRvdy4K
KyAgICAgICAgaWYgKGlzUmVjZWl2ZXIoKSAmJiB0ZXh0dXJlKCkpIHsKKyAgICAgICAgICAgIGds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgdGV4dHVyZSgpKTsKKyAgICAgICAgICAgIC8vIFJl
bGVhc2UgcHJldmlvdXMgbG9jayBhbmQgcmViaW5kIHRleHR1cmUgdG8gc3VyZmFjZSB0byBnZXQg
ZnJhbWUgdXBkYXRlLgorICAgICAgICAgICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChkaXNwbGF5
KCksIGdseFBpeG1hcCgpLCBHTFhfRlJPTlRfRVhUKTsKKyAgICAgICAgICAgIHBHbFhCaW5kVGV4
SW1hZ2VFWFQoZGlzcGxheSgpLCBnbHhQaXhtYXAoKSwgR0xYX0ZST05UX0VYVCwgMCk7CisKICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIEdMWENvbnRleHQgZ2xDb250
ZXh0ID0gZ2xYR2V0Q3VycmVudENvbnRleHQoKTsKIApAQCAtNDIwLDYgKzQyOCwyNyBAQCBzdHJ1
Y3QgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB7CiAgICAgfQogCiAgICAgYm9vbCBpc1JlY2VpdmVy
KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlY2VpdmVyOyB9CisgICAgV2luZG93IHN1cmZhY2UoKSBj
b25zdCB7IHJldHVybiBtX3N1cmZhY2U7IH0KKworICAgIEdMdWludCB0ZXh0dXJlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIGlmICghbV90ZXh0dXJlKSB7CisgICAgICAgICAgICBHTFhQaXhtYXAg
cGl4bWFwID0gZ2x4UGl4bWFwKCk7CisgICAgICAgICAgICBpZiAoIXBpeG1hcCkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKKworICAgICAgICAgICAgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSog
dGhhdCA9IGNvbnN0X2Nhc3Q8R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSo+KHRoaXMpOworICAgICAg
ICAgICAgZ2xHZW5UZXh0dXJlcygxLCAmKHRoYXQtPm1fdGV4dHVyZSkpOworICAgICAgICAgICAg
Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCB0aGF0LT5tX3RleHR1cmUpOworICAgICAgICAg
ICAgZ2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiwg
R0xfTElORUFSKTsKKyAgICAgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgICAgICBnbFRleFBhcmFt
ZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0Up
OworICAgICAgICAgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
V1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICAgICAgICAgIHBHbFhCaW5kVGV4SW1hZ2VF
WFQoZGlzcGxheSgpLCBwaXhtYXAsIEdMWF9GUk9OVF9FWFQsIDApOworICAgICAgICB9CisKKyAg
ICAgICAgcmV0dXJuIG1fdGV4dHVyZTsKKyAgICB9CiBwcml2YXRlOgogICAgIEdMWEZCQ29uZmln
JiBmaW5kRkJDb25maWdXaXRoQWxwaGEoR0xYRkJDb25maWcqIGZiQ29uZmlncywgaW50IG51bWJl
ck9mQ29uZmlncykKICAgICB7CkBAIC00NDEsNiArNDcwLDExIEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGNsZWFyKCkKICAgICB7CisgICAgICAgIGlmIChtX3RleHR1cmUpIHsKKyAgICAgICAgICAg
IHBHbFhSZWxlYXNlVGV4SW1hZ2VFWFQoZGlzcGxheSgpLCBnbHhQaXhtYXAoKSwgR0xYX0ZST05U
X0VYVCk7CisgICAgICAgICAgICBnbERlbGV0ZVRleHR1cmVzKDEsICZtX3RleHR1cmUpOworICAg
ICAgICB9CisKICAgICAgICAgaWYgKG1fZ2x4UGl4bWFwKSB7CiAgICAgICAgICAgICBnbFhEZXN0
cm95UGl4bWFwKGRpc3BsYXkoKSwgbV9nbHhQaXhtYXApOwogICAgICAgICAgICAgbV9nbHhQaXht
YXAgPSAwOwpAQCAtNDc2LDYgKzUxMCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3RleHR1cmVJ
c1lJbnZlcnRlZDsKICAgICBib29sIG1faGFzQWxwaGE7CiAgICAgYm9vbCBtX2lzUmVjZWl2ZXI7
CisgICAgR0x1aW50IG1fdGV4dHVyZTsKIH07CiAKIHN0YXRpYyBib29sIHJlc29sdmVHTE1ldGhv
ZHMoKQpAQCAtNDk4LDI2ICs1MzMsMTIgQEAgc3RhdGljIGJvb2wgcmVzb2x2ZUdMTWV0aG9kcygp
CiAKIEdyYXBoaWNzU3VyZmFjZVRva2VuIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1FeHBvcnQo
KQogewotICAgIHJldHVybiBHcmFwaGljc1N1cmZhY2VUb2tlbihtX3BsYXRmb3JtU3VyZmFjZSk7
CisgICAgcmV0dXJuIEdyYXBoaWNzU3VyZmFjZVRva2VuKG1fcHJpdmF0ZS0+c3VyZmFjZSgpKTsK
IH0KIAogdWludDMyX3QgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUdldFRleHR1cmVJRCgpCiB7
Ci0gICAgaWYgKCFtX3RleHR1cmUpIHsKLSAgICAgICAgR0xYUGl4bWFwIHBpeG1hcCA9IG1fcHJp
dmF0ZS0+Z2x4UGl4bWFwKCk7Ci0gICAgICAgIGlmICghcGl4bWFwKQotICAgICAgICAgICAgcmV0
dXJuIDA7Ci0KLSAgICAgICAgZ2xHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKLSAgICAgICAg
Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX3RleHR1cmUpOwotICAgICAgICBnbFRleFBh
cmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIp
OwotICAgICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdf
RklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8y
RCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICBnbFRleFBh
cmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VE
R0UpOwotICAgICAgICBwR2xYQmluZFRleEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlzcGxheSgpLCBw
aXhtYXAsIEdMWF9GUk9OVF9FWFQsIDApOwotICAgIH0KLQotICAgIHJldHVybiBtX3RleHR1cmU7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dGV4dHVyZSgpOwogfQogCiB2b2lkIEdyYXBoaWNzU3Vy
ZmFjZTo6cGxhdGZvcm1Db3B5VG9HTFRleHR1cmUodWludDMyX3QgLyp0YXJnZXQqLywgdWludDMy
X3QgLyppZCovLCBjb25zdCBJbnRSZWN0JiAvKnRhcmdldFJlY3QqLywgY29uc3QgSW50UG9pbnQm
IC8qb2Zmc2V0Ki8pCkBAIC01NTUsMTUgKzU3Niw2IEBAIHVpbnQzMl90IEdyYXBoaWNzU3VyZmFj
ZTo6cGxhdGZvcm1Gcm9udEJ1ZmZlcigpIGNvbnN0CiAKIHVpbnQzMl90IEdyYXBoaWNzU3VyZmFj
ZTo6cGxhdGZvcm1Td2FwQnVmZmVycygpCiB7Ci0gICAgaWYgKG1fcHJpdmF0ZS0+aXNSZWNlaXZl
cigpICYmIHBsYXRmb3JtR2V0VGV4dHVyZUlEKCkpIHsKLSAgICAgICAgZ2xCaW5kVGV4dHVyZShH
TF9URVhUVVJFXzJELCBwbGF0Zm9ybUdldFRleHR1cmVJRCgpKTsKLSAgICAgICAgLy8gUmVsZWFz
ZSBwcmV2aW91cyBsb2NrIGFuZCByZWJpbmQgdGV4dHVyZSB0byBzdXJmYWNlIHRvIGdldCBmcmFt
ZSB1cGRhdGUuCi0gICAgICAgIHBHbFhSZWxlYXNlVGV4SW1hZ2VFWFQobV9wcml2YXRlLT5kaXNw
bGF5KCksIG1fcHJpdmF0ZS0+Z2x4UGl4bWFwKCksIEdMWF9GUk9OVF9FWFQpOwotICAgICAgICBw
R2xYQmluZFRleEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlzcGxheSgpLCBtX3ByaXZhdGUtPmdseFBp
eG1hcCgpLCBHTFhfRlJPTlRfRVhULCAwKTsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0K
ICAgICBtX3ByaXZhdGUtPnN3YXBCdWZmZXJzKCk7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC01ODcs
NyArNTk5LDcgQEAgUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+IEdyYXBoaWNzU3VyZmFjZTo6
cGxhdGZvcm1DcmVhdGUoY29uc3QgSW50U2l6ZSYgc2l6ZSwKICAgICBpZiAoIXJlc29sdmVHTE1l
dGhvZHMoKSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPigpOwog
Ci0gICAgc3VyZmFjZS0+bV9wbGF0Zm9ybVN1cmZhY2UgPSBzdXJmYWNlLT5tX3ByaXZhdGUtPmNy
ZWF0ZVN1cmZhY2Uoc2l6ZSk7CisgICAgc3VyZmFjZS0+bV9wcml2YXRlLT5jcmVhdGVTdXJmYWNl
KHNpemUpOwogCiAgICAgcmV0dXJuIHN1cmZhY2U7CiB9CkBAIC02MDEsOSArNjEzLDggQEAgUGFz
c1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+IEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1JbXBvcnQo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8R3JhcGhpY3NT
dXJmYWNlPigpOwogCiAgICAgUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gc3VyZmFjZSA9IGFkb3B0
UmVmKG5ldyBHcmFwaGljc1N1cmZhY2Uoc2l6ZSwgZmxhZ3MpKTsKLSAgICBzdXJmYWNlLT5tX3Bs
YXRmb3JtU3VyZmFjZSA9IHRva2VuLmZyb250QnVmZmVySGFuZGxlOwogCi0gICAgc3VyZmFjZS0+
bV9wcml2YXRlID0gbmV3IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUoc3VyZmFjZS0+bV9wbGF0Zm9y
bVN1cmZhY2UpOworICAgIHN1cmZhY2UtPm1fcHJpdmF0ZSA9IG5ldyBHcmFwaGljc1N1cmZhY2VQ
cml2YXRlKHRva2VuLmZyb250QnVmZmVySGFuZGxlKTsKICAgICBpZiAoIXJlc29sdmVHTE1ldGhv
ZHMoKSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPigpOwogCkBA
IC02MjMsMTEgKzYzNCw2IEBAIHZvaWQgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybVVubG9jaygp
CiAKIHZvaWQgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybURlc3Ryb3koKQogewotICAgIGlmICht
X3RleHR1cmUpIHsKLSAgICAgICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChtX3ByaXZhdGUtPmRp
c3BsYXkoKSwgbV9wcml2YXRlLT5nbHhQaXhtYXAoKSwgR0xYX0ZST05UX0VYVCk7Ci0gICAgICAg
IGdsRGVsZXRlVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgfQotCiAgICAgZGVsZXRlIG1f
cHJpdmF0ZTsKICAgICBtX3ByaXZhdGUgPSAwOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187751</attachid>
            <date>2013-02-11 19:06:37 -0800</date>
            <delta_ts>2013-02-11 19:16:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108686-20130211220307.patch</filename>
            <type>text/plain</type>
            <size>9151</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI0MWQxN2MzOGNhNDU3
MmJlNDVjNWY3MmM0YTEwZDc2Njg0Mzk4YS4uYzAxZTUyMmY0MDA3OGUzOGJkZWFkYTlhNjRmYWMw
ZWFmZjJjNTI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAyLTExICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDxzbC5vc3RhcGVua29Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W1F0XVtFRkxdW1dlYkdMXSBNaW5vciByZWZhY3RvcmluZyBvZiBHcmFwaGljc1N1cmZhY2UvR3Jh
cGhpY3NTdXJmYWNlR0xYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDg2ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdW51c2VkIHBsYXRmb3JtU3VyZmFjZSgpL21fcGxhdGZvcm1TdXJmYWNl
IGZyb20gR3JhcGhpY3NTdXJmYWNlLgorICAgICAgICBNb3ZlIG1fdGV4dHVyZSBmcm9tIEdyYXBo
aWNzU3VyZmFjZSB0byBHTFggR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB0byBtYXRjaAorICAgICAg
ICBXaW4gYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBy
ZWZhY3RvcmluZyBvbmx5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
R3JhcGhpY3NTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZTo6
R3JhcGhpY3NTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
cmFwaGljc1N1cmZhY2UuaDoKKyAgICAgICAgKEdyYXBoaWNzU3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjpHcmFwaGljc1N1cmZhY2VQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6OnN3YXBC
dWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6OnN1cmZh
Y2UpOgorICAgICAgICAoR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjp0ZXh0dXJlSUQpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUV4cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc1N1cmZhY2U6OnBsYXRmb3JtR2V0VGV4dHVyZUlEKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1Td2FwQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzU3VyZmFjZTo6cGxhdGZvcm1JbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NT
dXJmYWNlOjpwbGF0Zm9ybURlc3Ryb3kpOgorCiAyMDEzLTAyLTExICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTG9hZCBldmVudCBmaXJlcyB0b28gZWFybHkgd2l0
aCB0aHJlYWRlZCBIVE1MIHBhcnNlciAodGFrZSAyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAK
aW5kZXggNTY4OGNlOWUxYjNlOTM4Yzc2N2I2YzNjOWI3ZmQ5YTA3ODM2YjM0OC4uYmFlZmE4YTE5
MDg0MWFlYWIyYjQwYTJjZDA2NDc3MjBmMTYzMzU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2Uu
Y3BwCkBAIC04NSw4ICs4NSw2IEBAIEludFNpemUgR3JhcGhpY3NTdXJmYWNlOjpzaXplKCkgY29u
c3QKIAogR3JhcGhpY3NTdXJmYWNlOjpHcmFwaGljc1N1cmZhY2UoY29uc3QgSW50U2l6ZSYsIEZs
YWdzIGZsYWdzKQogICAgIDogbV9mbGFncyhmbGFncykKLSAgICAsIG1fcGxhdGZvcm1TdXJmYWNl
KDApCi0gICAgLCBtX3RleHR1cmUoMCkKICAgICAsIG1fZmJvKDApCiAgICAgLCBtX3ByaXZhdGUo
MCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL0dyYXBoaWNzU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmgKaW5kZXggNTQ5ZTgwNGM0NjVkZGU4OGQ0N2ZlN2U1
ODljZTY0ZWE4M2Q1NDMwMy4uZGE0OTM2OTk4YzVkMGRkNzkyODU5NWUyMjFjOGZhOTI2OTFhMzg3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
R3JhcGhpY3NTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmgKQEAgLTczLDcgKzczLDYgQEAgcHVibGljOgogICAg
IHR5cGVkZWYgaW50IExvY2tPcHRpb25zOwogCiAgICAgRmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJl
dHVybiBtX2ZsYWdzOyB9Ci0gICAgUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UgcGxhdGZvcm1TdXJm
YWNlKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybVN1cmZhY2U7IH0KICAgICBJbnRTaXplIHNp
emUoKSBjb25zdDsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gY3Jl
YXRlKGNvbnN0IEludFNpemUmLCBGbGFncywgY29uc3QgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCBzaGFyZUNvbnRleHQgPSAwKTsKQEAgLTExOSw4ICsxMTgsNiBAQCBwcml2YXRlOgogI2VuZGlm
CiAKIHByaXZhdGU6Ci0gICAgUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UgbV9wbGF0Zm9ybVN1cmZh
Y2U7Ci0gICAgdWludDMyX3QgbV90ZXh0dXJlOwogICAgIHVpbnQzMl90IG1fZmJvOwogICAgIEdy
YXBoaWNzU3VyZmFjZVByaXZhdGUqIG1fcHJpdmF0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xY
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFw
aGljc1N1cmZhY2VHTFguY3BwCmluZGV4IGU2YjE0NGE1MmNmYmY4OGY3MDIzYWZkMjU5ZTc4YTdh
ZjY4NTEyZjAuLjU0ODE1NmRjYjIzYmZlNmRkNjg3OGQ2ZjRiMWRlOGUyMWNkMTQ2NmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFw
aGljc1N1cmZhY2VHTFguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3BwCkBAIC03Myw2ICs3Myw3IEBAIHN0
cnVjdCBHcmFwaGljc1N1cmZhY2VQcml2YXRlIHsKICAgICAgICAgLCBtX2RldGFjaGVkQ29udGV4
dCgwKQogICAgICAgICAsIG1fZGV0YWNoZWRTdXJmYWNlKDApCiAgICAgICAgICwgbV9pc1JlY2Vp
dmVyKGZhbHNlKQorICAgICAgICAsIG1fdGV4dHVyZSgwKQogICAgIHsKICAgICAgICAgR0xYQ29u
dGV4dCBzaGFyZUNvbnRleHRPYmplY3QgPSAwOwogCkBAIC0xMDcsNiArMTA4LDcgQEAgc3RydWN0
IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogICAgICAgICAsIG1fZGV0YWNoZWRDb250ZXh0KDAp
CiAgICAgICAgICwgbV9kZXRhY2hlZFN1cmZhY2UoMCkKICAgICAgICAgLCBtX2lzUmVjZWl2ZXIo
dHJ1ZSkKKyAgICAgICAgLCBtX3RleHR1cmUoMCkKICAgICB7CiAgICAgICAgIG1fY29uZmlnU2Vs
ZWN0b3IgPSBhZG9wdFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0b3IoKSk7CiAgICAgfQpAQCAtMTkw
LDEwICsxOTIsMTcgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogCiAgICAgdm9p
ZCBzd2FwQnVmZmVycygpCiAgICAgewotICAgICAgICAvLyBUaGUgYnVmZmVycyBhcmUgYmVpbmcg
c3dpdGNoZWQgb24gdGhlIHdyaXRpbmcgc2lkZSwgdGhlIHJlYWRpbmcgc2lkZSBqdXN0IHJlYWRz
Ci0gICAgICAgIC8vIHdoYXRldmVyIHRleHR1cmUgdGhlIFhXaW5kb3cgY29udGFpbnMuCi0gICAg
ICAgIGlmIChtX2lzUmVjZWl2ZXIpCisgICAgICAgIGlmIChpc1JlY2VpdmVyKCkpIHsKKyAgICAg
ICAgICAgIGlmIChpc01lc2FHTFgoKSAmJiB0ZXh0dXJlSUQoKSkgeworICAgICAgICAgICAgICAg
IGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgdGV4dHVyZUlEKCkpOworICAgICAgICAgICAg
ICAgIC8vIE1lc2EgZG9lc24ndCByZS1iaW5kIHRleHR1cmUgdG8gdGhlIGZyb250IGJ1ZmZlciBv
biBnbFhTd2FwQnVmZXIKKyAgICAgICAgICAgICAgICAvLyBNYW51YWxseSByZWxlYXNlIHByZXZp
b3VzIGxvY2sgYW5kIHJlYmluZCB0ZXh0dXJlIHRvIHN1cmZhY2UgdG8gZW5zdXJlIGZyYW1lIHVw
ZGF0ZXMuCisgICAgICAgICAgICAgICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChkaXNwbGF5KCks
IGdseFBpeG1hcCgpLCBHTFhfRlJPTlRfRVhUKTsKKyAgICAgICAgICAgICAgICBwR2xYQmluZFRl
eEltYWdlRVhUKGRpc3BsYXkoKSwgZ2x4UGl4bWFwKCksIEdMWF9GUk9OVF9FWFQsIDApOworICAg
ICAgICAgICAgfQorCiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBH
TFhDb250ZXh0IGdsQ29udGV4dCA9IGdsWEdldEN1cnJlbnRDb250ZXh0KCk7CiAKQEAgLTI2MSw2
ICsyNzAsMjkgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogCiAgICAgVGV4dHVy
ZU1hcHBlckdMOjpGbGFncyBmbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KIAorICAg
IFdpbmRvdyBzdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdXJmYWNlOyB9CisKKyAgICBHTHVp
bnQgdGV4dHVyZUlEKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChtX3RleHR1cmUpIAorICAg
ICAgICAgICAgcmV0dXJuIG1fdGV4dHVyZTsKKworICAgICAgICBHTFhQaXhtYXAgcGl4bWFwID0g
Z2x4UGl4bWFwKCk7CisgICAgICAgIGlmICghcGl4bWFwKQorICAgICAgICAgICAgcmV0dXJuIDA7
CisKKyAgICAgICAgR0x1aW50IHRleHR1cmU7CisgICAgICAgIGdsR2VuVGV4dHVyZXMoMSwgJnRl
eHR1cmUpOworICAgICAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIHRleHR1cmUpOwor
ICAgICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklM
VEVSLCBHTF9MSU5FQVIpOworICAgICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwg
R0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgICAgICBnbFRleFBhcmFtZXRl
cmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwor
ICAgICAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1Qs
IEdMX0NMQU1QX1RPX0VER0UpOworICAgICAgICBwR2xYQmluZFRleEltYWdlRVhUKGRpc3BsYXko
KSwgcGl4bWFwLCBHTFhfRlJPTlRfRVhULCAwKTsKKyAgICAgICAgY29uc3RfY2FzdDxHcmFwaGlj
c1N1cmZhY2VQcml2YXRlKj4odGhpcyktPm1fdGV4dHVyZSA9IHRleHR1cmU7CisKKyAgICAgICAg
cmV0dXJuIHRleHR1cmU7CisgICAgfQogcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyKCkKICAgICB7
CkBAIC0zMDAsNiArMzMyLDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8R0xYQ29uZmlnU2VsZWN0
b3I+IG1fY29uZmlnU2VsZWN0b3I7CiAgICAgYm9vbCBtX2lzUmVjZWl2ZXI7CiAgICAgVGV4dHVy
ZU1hcHBlckdMOjpGbGFncyBtX2ZsYWdzOworICAgIEdMdWludCBtX3RleHR1cmU7CiB9OwogCiBz
dGF0aWMgYm9vbCByZXNvbHZlR0xNZXRob2RzKCkKQEAgLTMyMiwyNiArMzU1LDEyIEBAIHN0YXRp
YyBib29sIHJlc29sdmVHTE1ldGhvZHMoKQogCiBHcmFwaGljc1N1cmZhY2VUb2tlbiBHcmFwaGlj
c1N1cmZhY2U6OnBsYXRmb3JtRXhwb3J0KCkKIHsKLSAgICByZXR1cm4gR3JhcGhpY3NTdXJmYWNl
VG9rZW4obV9wbGF0Zm9ybVN1cmZhY2UpOworICAgIHJldHVybiBHcmFwaGljc1N1cmZhY2VUb2tl
bihtX3ByaXZhdGUtPnN1cmZhY2UoKSk7CiB9CiAKIHVpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6
cGxhdGZvcm1HZXRUZXh0dXJlSUQoKQogewotICAgIGlmICghbV90ZXh0dXJlKSB7Ci0gICAgICAg
IEdMWFBpeG1hcCBwaXhtYXAgPSBtX3ByaXZhdGUtPmdseFBpeG1hcCgpOwotICAgICAgICBpZiAo
IXBpeG1hcCkKLSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIGdsR2VuVGV4dHVyZXMo
MSwgJm1fdGV4dHVyZSk7Ci0gICAgICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90
ZXh0dXJlKTsKLSAgICAgICAgZ2xUZXhQYXJhbWV0ZXJmKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRV
UkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2xUZXhQYXJhbWV0ZXJmKEdMX1RF
WFRVUkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICAgICAgZ2xU
ZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9U
T19FREdFKTsKLSAgICAgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRV
UkVfV1JBUF9ULCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICAgICAgcEdsWEJpbmRUZXhJbWFnZUVY
VChtX3ByaXZhdGUtPmRpc3BsYXkoKSwgcGl4bWFwLCBHTFhfRlJPTlRfRVhULCAwKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gbV90ZXh0dXJlOworICAgIHJldHVybiBtX3ByaXZhdGUtPnRleHR1cmVJ
RCgpOwogfQogCiB2b2lkIEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1Db3B5VG9HTFRleHR1cmUo
dWludDMyX3QgLyp0YXJnZXQqLywgdWludDMyX3QgLyppZCovLCBjb25zdCBJbnRSZWN0JiAvKnRh
cmdldFJlY3QqLywgY29uc3QgSW50UG9pbnQmIC8qb2Zmc2V0Ki8pCkBAIC0zNzYsMTcgKzM5NSw2
IEBAIHVpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1Gcm9udEJ1ZmZlcigpIGNvbnN0
CiAKIHVpbnQzMl90IEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1Td2FwQnVmZmVycygpCiB7Ci0g
ICAgaWYgKG1fcHJpdmF0ZS0+aXNSZWNlaXZlcigpKSB7Ci0gICAgICAgIGlmIChpc01lc2FHTFgo
KSAmJiBwbGF0Zm9ybUdldFRleHR1cmVJRCgpKSB7Ci0gICAgICAgICAgICBnbEJpbmRUZXh0dXJl
KEdMX1RFWFRVUkVfMkQsIHBsYXRmb3JtR2V0VGV4dHVyZUlEKCkpOwotICAgICAgICAgICAgLy8g
TWVzYSBkb2Vzbid0IHJlLWJpbmQgdGV4dHVyZSB0byB0aGUgZnJvbnQgYnVmZmVyIG9uIGdsWFN3
YXBCdWZlcgotICAgICAgICAgICAgLy8gTWFudWFsbHkgcmVsZWFzZSBwcmV2aW91cyBsb2NrIGFu
ZCByZWJpbmQgdGV4dHVyZSB0byBzdXJmYWNlIHRvIGdldCBmcmFtZSB1cGRhdGUuCi0gICAgICAg
ICAgICBwR2xYUmVsZWFzZVRleEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlzcGxheSgpLCBtX3ByaXZh
dGUtPmdseFBpeG1hcCgpLCBHTFhfRlJPTlRfRVhUKTsKLSAgICAgICAgICAgIHBHbFhCaW5kVGV4
SW1hZ2VFWFQobV9wcml2YXRlLT5kaXNwbGF5KCksIG1fcHJpdmF0ZS0+Z2x4UGl4bWFwKCksIEdM
WF9GUk9OVF9FWFQsIDApOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQog
ICAgIG1fcHJpdmF0ZS0+c3dhcEJ1ZmZlcnMoKTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTQxMCw3
ICs0MTgsNyBAQCBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gR3JhcGhpY3NTdXJmYWNlOjpw
bGF0Zm9ybUNyZWF0ZShjb25zdCBJbnRTaXplJiBzaXplLAogICAgIGlmICghcmVzb2x2ZUdMTWV0
aG9kcygpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+KCk7CiAK
LSAgICBzdXJmYWNlLT5tX3BsYXRmb3JtU3VyZmFjZSA9IHN1cmZhY2UtPm1fcHJpdmF0ZS0+Y3Jl
YXRlU3VyZmFjZShzaXplKTsKKyAgICBzdXJmYWNlLT5tX3ByaXZhdGUtPmNyZWF0ZVN1cmZhY2Uo
c2l6ZSk7CiAKICAgICByZXR1cm4gc3VyZmFjZTsKIH0KQEAgLTQyNCw5ICs0MzIsOCBAQCBQYXNz
UmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybUltcG9ydChj
b25zdCBJbnRTaXplJiBzaXplLAogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxHcmFwaGljc1N1
cmZhY2U+KCk7CiAKICAgICBSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRS
ZWYobmV3IEdyYXBoaWNzU3VyZmFjZShzaXplLCBmbGFncykpOwotICAgIHN1cmZhY2UtPm1fcGxh
dGZvcm1TdXJmYWNlID0gdG9rZW4uZnJvbnRCdWZmZXJIYW5kbGU7CiAKLSAgICBzdXJmYWNlLT5t
X3ByaXZhdGUgPSBuZXcgR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZShzdXJmYWNlLT5tX3BsYXRmb3Jt
U3VyZmFjZSk7CisgICAgc3VyZmFjZS0+bV9wcml2YXRlID0gbmV3IEdyYXBoaWNzU3VyZmFjZVBy
aXZhdGUodG9rZW4uZnJvbnRCdWZmZXJIYW5kbGUpOwogICAgIGlmICghcmVzb2x2ZUdMTWV0aG9k
cygpKQogICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxHcmFwaGljc1N1cmZhY2U+KCk7CiAKQEAg
LTQ0NiwxMSArNDUzLDYgQEAgdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtVW5sb2NrKCkK
IAogdm9pZCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtRGVzdHJveSgpCiB7Ci0gICAgaWYgKG1f
dGV4dHVyZSkgewotICAgICAgICBwR2xYUmVsZWFzZVRleEltYWdlRVhUKG1fcHJpdmF0ZS0+ZGlz
cGxheSgpLCBtX3ByaXZhdGUtPmdseFBpeG1hcCgpLCBHTFhfRlJPTlRfRVhUKTsKLSAgICAgICAg
Z2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKLSAgICB9Ci0KICAgICBkZWxldGUgbV9w
cml2YXRlOwogICAgIG1fcHJpdmF0ZSA9IDA7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187755</attachid>
            <date>2013-02-11 19:16:21 -0800</date>
            <delta_ts>2013-02-11 23:28:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108686-20130211221252.patch</filename>
            <type>text/plain</type>
            <size>9476</size>
            <attacher name="Viatcheslav Ostapenko">ostap73</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI0MWQxN2MzOGNhNDU3
MmJlNDVjNWY3MmM0YTEwZDc2Njg0Mzk4YS4uZjExY2E3NDg5ODQwN2ExMjE5MWM4ODY4ZjE1OGVl
MzM5ZDdhNjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAyLTExICBWaWF0
Y2hlc2xhdiBPc3RhcGVua28gIDxzbC5vc3RhcGVua29Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W1F0XVtFRkxdW1dlYkdMXSBNaW5vciByZWZhY3RvcmluZyBvZiBHcmFwaGljc1N1cmZhY2UvR3Jh
cGhpY3NTdXJmYWNlR0xYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDg2ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdW51c2VkIHBsYXRmb3JtU3VyZmFjZSgpL21fcGxhdGZvcm1TdXJmYWNl
IGZyb20gR3JhcGhpY3NTdXJmYWNlLgorICAgICAgICBNb3ZlIG1fdGV4dHVyZSBmcm9tIEdyYXBo
aWNzU3VyZmFjZSB0byBHTFggR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSB0byBtYXRjaAorICAgICAg
ICBXaW4gYW5kIE1hYyBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBy
ZWZhY3RvcmluZyBvbmx5LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
R3JhcGhpY3NTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZTo6
R3JhcGhpY3NTdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
cmFwaGljc1N1cmZhY2UuaDoKKyAgICAgICAgKEdyYXBoaWNzU3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dyYXBoaWNzU3VyZmFjZUdMWC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjpHcmFwaGljc1N1cmZhY2VQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6OnN3YXBC
dWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3VyZmFjZVByaXZhdGU6OnN1cmZh
Y2UpOgorICAgICAgICAoR3JhcGhpY3NTdXJmYWNlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc1N1cmZhY2VQcml2YXRlOjp0ZXh0dXJlSUQpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NTdXJmYWNlUHJpdmF0ZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NTdXJmYWNlOjpwbGF0Zm9ybUV4cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc1N1
cmZhY2U6OnBsYXRmb3JtR2V0VGV4dHVyZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
U3VyZmFjZTo6cGxhdGZvcm1Td2FwQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c1N1cmZhY2U6OnBsYXRmb3JtQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzU3Vy
ZmFjZTo6cGxhdGZvcm1JbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NTdXJmYWNl
OjpwbGF0Zm9ybURlc3Ryb3kpOgorCiAyMDEzLTAyLTExICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTG9hZCBldmVudCBmaXJlcyB0b28gZWFybHkgd2l0aCB0aHJl
YWRlZCBIVE1MIHBhcnNlciAodGFrZSAyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dyYXBoaWNzU3VyZmFjZS5jcHAKaW5kZXgg
NTY4OGNlOWUxYjNlOTM4Yzc2N2I2YzNjOWI3ZmQ5YTA3ODM2YjM0OC4uYmFlZmE4YTE5MDg0MWFl
YWIyYjQwYTJjZDA2NDc3MjBmMTYzMzU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhpY3NTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9HcmFwaGljc1N1cmZhY2UuY3BwCkBA
IC04NSw4ICs4NSw2IEBAIEludFNpemUgR3JhcGhpY3NTdXJmYWNlOjpzaXplKCkgY29uc3QKIAog
R3JhcGhpY3NTdXJmYWNlOjpHcmFwaGljc1N1cmZhY2UoY29uc3QgSW50U2l6ZSYsIEZsYWdzIGZs
YWdzKQogICAgIDogbV9mbGFncyhmbGFncykKLSAgICAsIG1fcGxhdGZvcm1TdXJmYWNlKDApCi0g
ICAgLCBtX3RleHR1cmUoMCkKICAgICAsIG1fZmJvKDApCiAgICAgLCBtX3ByaXZhdGUoMCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dy
YXBoaWNzU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvR3JhcGhpY3NTdXJmYWNlLmgKaW5kZXggNTQ5ZTgwNGM0NjVkZGU4OGQ0N2ZlN2U1ODljZTY0
ZWE4M2Q1NDMwMy4uZGE0OTM2OTk4YzVkMGRkNzkyODU5NWUyMjFjOGZhOTI2OTFhMzg3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvR3JhcGhp
Y3NTdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvR3JhcGhpY3NTdXJmYWNlLmgKQEAgLTczLDcgKzczLDYgQEAgcHVibGljOgogICAgIHR5cGVk
ZWYgaW50IExvY2tPcHRpb25zOwogCiAgICAgRmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBt
X2ZsYWdzOyB9Ci0gICAgUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UgcGxhdGZvcm1TdXJmYWNlKCkg
Y29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybVN1cmZhY2U7IH0KICAgICBJbnRTaXplIHNpemUoKSBj
b25zdDsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gY3JlYXRlKGNv
bnN0IEludFNpemUmLCBGbGFncywgY29uc3QgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBzaGFy
ZUNvbnRleHQgPSAwKTsKQEAgLTExOSw4ICsxMTgsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKIHBy
aXZhdGU6Ci0gICAgUGxhdGZvcm1HcmFwaGljc1N1cmZhY2UgbV9wbGF0Zm9ybVN1cmZhY2U7Ci0g
ICAgdWludDMyX3QgbV90ZXh0dXJlOwogICAgIHVpbnQzMl90IG1fZmJvOwogICAgIEdyYXBoaWNz
U3VyZmFjZVByaXZhdGUqIG1fcHJpdmF0ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR3JhcGhpY3NTdXJmYWNlR0xYLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1
cmZhY2VHTFguY3BwCmluZGV4IGU2YjE0NGE1MmNmYmY4OGY3MDIzYWZkMjU5ZTc4YTdhZjY4NTEy
ZjAuLjY4Njc4Y2ExZmZmMzkzM2RkZTEzZWFhMjFkNTcwZmUyZTIzOTlhNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HcmFwaGljc1N1
cmZhY2VHTFguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2dseC9HcmFwaGljc1N1cmZhY2VHTFguY3BwCkBAIC03Myw2ICs3Myw3IEBAIHN0cnVjdCBH
cmFwaGljc1N1cmZhY2VQcml2YXRlIHsKICAgICAgICAgLCBtX2RldGFjaGVkQ29udGV4dCgwKQog
ICAgICAgICAsIG1fZGV0YWNoZWRTdXJmYWNlKDApCiAgICAgICAgICwgbV9pc1JlY2VpdmVyKGZh
bHNlKQorICAgICAgICAsIG1fdGV4dHVyZSgwKQogICAgIHsKICAgICAgICAgR0xYQ29udGV4dCBz
aGFyZUNvbnRleHRPYmplY3QgPSAwOwogCkBAIC0xMDcsNiArMTA4LDcgQEAgc3RydWN0IEdyYXBo
aWNzU3VyZmFjZVByaXZhdGUgewogICAgICAgICAsIG1fZGV0YWNoZWRDb250ZXh0KDApCiAgICAg
ICAgICwgbV9kZXRhY2hlZFN1cmZhY2UoMCkKICAgICAgICAgLCBtX2lzUmVjZWl2ZXIodHJ1ZSkK
KyAgICAgICAgLCBtX3RleHR1cmUoMCkKICAgICB7CiAgICAgICAgIG1fY29uZmlnU2VsZWN0b3Ig
PSBhZG9wdFB0cihuZXcgR0xYQ29uZmlnU2VsZWN0b3IoKSk7CiAgICAgfQpAQCAtMTkwLDEwICsx
OTIsMTcgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogCiAgICAgdm9pZCBzd2Fw
QnVmZmVycygpCiAgICAgewotICAgICAgICAvLyBUaGUgYnVmZmVycyBhcmUgYmVpbmcgc3dpdGNo
ZWQgb24gdGhlIHdyaXRpbmcgc2lkZSwgdGhlIHJlYWRpbmcgc2lkZSBqdXN0IHJlYWRzCi0gICAg
ICAgIC8vIHdoYXRldmVyIHRleHR1cmUgdGhlIFhXaW5kb3cgY29udGFpbnMuCi0gICAgICAgIGlm
IChtX2lzUmVjZWl2ZXIpCisgICAgICAgIGlmIChpc1JlY2VpdmVyKCkpIHsKKyAgICAgICAgICAg
IGlmIChpc01lc2FHTFgoKSAmJiB0ZXh0dXJlSUQoKSkgeworICAgICAgICAgICAgICAgIGdsQmlu
ZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgdGV4dHVyZUlEKCkpOworICAgICAgICAgICAgICAgIC8v
IE1lc2EgZG9lc24ndCByZS1iaW5kIHRleHR1cmUgdG8gdGhlIGZyb250IGJ1ZmZlciBvbiBnbFhT
d2FwQnVmZXIKKyAgICAgICAgICAgICAgICAvLyBNYW51YWxseSByZWxlYXNlIHByZXZpb3VzIGxv
Y2sgYW5kIHJlYmluZCB0ZXh0dXJlIHRvIHN1cmZhY2UgdG8gZW5zdXJlIGZyYW1lIHVwZGF0ZXMu
CisgICAgICAgICAgICAgICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChkaXNwbGF5KCksIGdseFBp
eG1hcCgpLCBHTFhfRlJPTlRfRVhUKTsKKyAgICAgICAgICAgICAgICBwR2xYQmluZFRleEltYWdl
RVhUKGRpc3BsYXkoKSwgZ2x4UGl4bWFwKCksIEdMWF9GUk9OVF9FWFQsIDApOworICAgICAgICAg
ICAgfQorCiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBHTFhDb250
ZXh0IGdsQ29udGV4dCA9IGdsWEdldEN1cnJlbnRDb250ZXh0KCk7CiAKQEAgLTI2MSw5ICsyNzAs
MzcgQEAgc3RydWN0IEdyYXBoaWNzU3VyZmFjZVByaXZhdGUgewogCiAgICAgVGV4dHVyZU1hcHBl
ckdMOjpGbGFncyBmbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KIAorICAgIFdpbmRv
dyBzdXJmYWNlKCkgY29uc3QgeyByZXR1cm4gbV9zdXJmYWNlOyB9CisKKyAgICBHTHVpbnQgdGV4
dHVyZUlEKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChtX3RleHR1cmUpIAorICAgICAgICAg
ICAgcmV0dXJuIG1fdGV4dHVyZTsKKworICAgICAgICBHTFhQaXhtYXAgcGl4bWFwID0gZ2x4UGl4
bWFwKCk7CisgICAgICAgIGlmICghcGl4bWFwKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICAgICAgR0x1aW50IHRleHR1cmU7CisgICAgICAgIGdsR2VuVGV4dHVyZXMoMSwgJnRleHR1cmUp
OworICAgICAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIHRleHR1cmUpOworICAgICAg
ICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBH
TF9MSU5FQVIpOworICAgICAgICBnbFRleFBhcmFtZXRlcmYoR0xfVEVYVFVSRV8yRCwgR0xfVEVY
VFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIpOworICAgICAgICBnbFRleFBhcmFtZXRlcmkoR0xf
VEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOworICAgICAg
ICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NM
QU1QX1RPX0VER0UpOworICAgICAgICBwR2xYQmluZFRleEltYWdlRVhUKGRpc3BsYXkoKSwgcGl4
bWFwLCBHTFhfRlJPTlRfRVhULCAwKTsKKyAgICAgICAgY29uc3RfY2FzdDxHcmFwaGljc1N1cmZh
Y2VQcml2YXRlKj4odGhpcyktPm1fdGV4dHVyZSA9IHRleHR1cmU7CisKKyAgICAgICAgcmV0dXJu
IHRleHR1cmU7CisgICAgfQogcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyKCkKICAgICB7CisgICAg
ICAgIGlmIChtX3RleHR1cmUpIHsKKyAgICAgICAgICAgIHBHbFhSZWxlYXNlVGV4SW1hZ2VFWFQo
ZGlzcGxheSgpLCBnbHhQaXhtYXAoKSwgR0xYX0ZST05UX0VYVCk7CisgICAgICAgICAgICBnbERl
bGV0ZVRleHR1cmVzKDEsICZtX3RleHR1cmUpOworICAgICAgICB9CisKICAgICAgICAgaWYgKG1f
Z2x4UGl4bWFwKSB7CiAgICAgICAgICAgICBnbFhEZXN0cm95UGl4bWFwKGRpc3BsYXkoKSwgbV9n
bHhQaXhtYXApOwogICAgICAgICAgICAgbV9nbHhQaXhtYXAgPSAwOwpAQCAtMzAwLDYgKzMzNyw3
IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEdMWENvbmZpZ1NlbGVjdG9yPiBtX2NvbmZpZ1NlbGVj
dG9yOwogICAgIGJvb2wgbV9pc1JlY2VpdmVyOwogICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3Mg
bV9mbGFnczsKKyAgICBHTHVpbnQgbV90ZXh0dXJlOwogfTsKIAogc3RhdGljIGJvb2wgcmVzb2x2
ZUdMTWV0aG9kcygpCkBAIC0zMjIsMjYgKzM2MCwxMiBAQCBzdGF0aWMgYm9vbCByZXNvbHZlR0xN
ZXRob2RzKCkKIAogR3JhcGhpY3NTdXJmYWNlVG9rZW4gR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9y
bUV4cG9ydCgpCiB7Ci0gICAgcmV0dXJuIEdyYXBoaWNzU3VyZmFjZVRva2VuKG1fcGxhdGZvcm1T
dXJmYWNlKTsKKyAgICByZXR1cm4gR3JhcGhpY3NTdXJmYWNlVG9rZW4obV9wcml2YXRlLT5zdXJm
YWNlKCkpOwogfQogCiB1aW50MzJfdCBHcmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtR2V0VGV4dHVy
ZUlEKCkKIHsKLSAgICBpZiAoIW1fdGV4dHVyZSkgewotICAgICAgICBHTFhQaXhtYXAgcGl4bWFw
ID0gbV9wcml2YXRlLT5nbHhQaXhtYXAoKTsKLSAgICAgICAgaWYgKCFwaXhtYXApCi0gICAgICAg
ICAgICByZXR1cm4gMDsKLQotICAgICAgICBnbEdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOwot
ICAgICAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7Ci0gICAgICAg
IGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdM
X0xJTkVBUik7Ci0gICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhU
VVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsVGV4UGFyYW1ldGVyaShHTF9U
RVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAg
IGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xB
TVBfVE9fRURHRSk7Ci0gICAgICAgIHBHbFhCaW5kVGV4SW1hZ2VFWFQobV9wcml2YXRlLT5kaXNw
bGF5KCksIHBpeG1hcCwgR0xYX0ZST05UX0VYVCwgMCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1f
dGV4dHVyZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT50ZXh0dXJlSUQoKTsKIH0KIAogdm9pZCBH
cmFwaGljc1N1cmZhY2U6OnBsYXRmb3JtQ29weVRvR0xUZXh0dXJlKHVpbnQzMl90IC8qdGFyZ2V0
Ki8sIHVpbnQzMl90IC8qaWQqLywgY29uc3QgSW50UmVjdCYgLyp0YXJnZXRSZWN0Ki8sIGNvbnN0
IEludFBvaW50JiAvKm9mZnNldCovKQpAQCAtMzc2LDE3ICs0MDAsNiBAQCB1aW50MzJfdCBHcmFw
aGljc1N1cmZhY2U6OnBsYXRmb3JtRnJvbnRCdWZmZXIoKSBjb25zdAogCiB1aW50MzJfdCBHcmFw
aGljc1N1cmZhY2U6OnBsYXRmb3JtU3dhcEJ1ZmZlcnMoKQogewotICAgIGlmIChtX3ByaXZhdGUt
PmlzUmVjZWl2ZXIoKSkgewotICAgICAgICBpZiAoaXNNZXNhR0xYKCkgJiYgcGxhdGZvcm1HZXRU
ZXh0dXJlSUQoKSkgewotICAgICAgICAgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBw
bGF0Zm9ybUdldFRleHR1cmVJRCgpKTsKLSAgICAgICAgICAgIC8vIE1lc2EgZG9lc24ndCByZS1i
aW5kIHRleHR1cmUgdG8gdGhlIGZyb250IGJ1ZmZlciBvbiBnbFhTd2FwQnVmZXIKLSAgICAgICAg
ICAgIC8vIE1hbnVhbGx5IHJlbGVhc2UgcHJldmlvdXMgbG9jayBhbmQgcmViaW5kIHRleHR1cmUg
dG8gc3VyZmFjZSB0byBnZXQgZnJhbWUgdXBkYXRlLgotICAgICAgICAgICAgcEdsWFJlbGVhc2VU
ZXhJbWFnZUVYVChtX3ByaXZhdGUtPmRpc3BsYXkoKSwgbV9wcml2YXRlLT5nbHhQaXhtYXAoKSwg
R0xYX0ZST05UX0VYVCk7Ci0gICAgICAgICAgICBwR2xYQmluZFRleEltYWdlRVhUKG1fcHJpdmF0
ZS0+ZGlzcGxheSgpLCBtX3ByaXZhdGUtPmdseFBpeG1hcCgpLCBHTFhfRlJPTlRfRVhULCAwKTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KICAgICBtX3ByaXZhdGUtPnN3
YXBCdWZmZXJzKCk7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC00MTAsNyArNDIzLDcgQEAgUGFzc1Jl
ZlB0cjxHcmFwaGljc1N1cmZhY2U+IEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1DcmVhdGUoY29u
c3QgSW50U2l6ZSYgc2l6ZSwKICAgICBpZiAoIXJlc29sdmVHTE1ldGhvZHMoKSkKICAgICAgICAg
cmV0dXJuIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPigpOwogCi0gICAgc3VyZmFjZS0+bV9w
bGF0Zm9ybVN1cmZhY2UgPSBzdXJmYWNlLT5tX3ByaXZhdGUtPmNyZWF0ZVN1cmZhY2Uoc2l6ZSk7
CisgICAgc3VyZmFjZS0+bV9wcml2YXRlLT5jcmVhdGVTdXJmYWNlKHNpemUpOwogCiAgICAgcmV0
dXJuIHN1cmZhY2U7CiB9CkBAIC00MjQsOSArNDM3LDggQEAgUGFzc1JlZlB0cjxHcmFwaGljc1N1
cmZhY2U+IEdyYXBoaWNzU3VyZmFjZTo6cGxhdGZvcm1JbXBvcnQoY29uc3QgSW50U2l6ZSYgc2l6
ZSwKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPigpOwogCiAgICAg
UmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gc3VyZmFjZSA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc1N1
cmZhY2Uoc2l6ZSwgZmxhZ3MpKTsKLSAgICBzdXJmYWNlLT5tX3BsYXRmb3JtU3VyZmFjZSA9IHRv
a2VuLmZyb250QnVmZmVySGFuZGxlOwogCi0gICAgc3VyZmFjZS0+bV9wcml2YXRlID0gbmV3IEdy
YXBoaWNzU3VyZmFjZVByaXZhdGUoc3VyZmFjZS0+bV9wbGF0Zm9ybVN1cmZhY2UpOworICAgIHN1
cmZhY2UtPm1fcHJpdmF0ZSA9IG5ldyBHcmFwaGljc1N1cmZhY2VQcml2YXRlKHRva2VuLmZyb250
QnVmZmVySGFuZGxlKTsKICAgICBpZiAoIXJlc29sdmVHTE1ldGhvZHMoKSkKICAgICAgICAgcmV0
dXJuIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPigpOwogCkBAIC00NDYsMTEgKzQ1OCw2IEBA
IHZvaWQgR3JhcGhpY3NTdXJmYWNlOjpwbGF0Zm9ybVVubG9jaygpCiAKIHZvaWQgR3JhcGhpY3NT
dXJmYWNlOjpwbGF0Zm9ybURlc3Ryb3koKQogewotICAgIGlmIChtX3RleHR1cmUpIHsKLSAgICAg
ICAgcEdsWFJlbGVhc2VUZXhJbWFnZUVYVChtX3ByaXZhdGUtPmRpc3BsYXkoKSwgbV9wcml2YXRl
LT5nbHhQaXhtYXAoKSwgR0xYX0ZST05UX0VYVCk7Ci0gICAgICAgIGdsRGVsZXRlVGV4dHVyZXMo
MSwgJm1fdGV4dHVyZSk7Ci0gICAgfQotCiAgICAgZGVsZXRlIG1fcHJpdmF0ZTsKICAgICBtX3By
aXZhdGUgPSAwOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>