<?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>90116</bug_id>
          
          <creation_ts>2012-06-27 17:41:31 -0700</creation_ts>
          <short_desc>[Qt] Repaint counter for accelerated compositing</short_desc>
          <delta_ts>2012-07-10 16:06:35 -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>Layout and Rendering</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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>659013</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-27 17:41:31 -0700</bug_when>
    <thetext>To debug graphics and performance, we want to enable web developers to see when a composited layer&apos;s content has been updated, as that is commonly a cause for choppiness.
The accelerated compositing abstraction already provides the hooks to do that, but we need to implement the Qt/TextureMapper specific parts of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665493</commentid>
    <comment_count>1</comment_count>
      <attachid>151401</attachid>
    <who name="Helder Correia">helder.correia</who>
    <bug_when>2012-07-09 22:54:00 -0700</bug_when>
    <thetext>Created attachment 151401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665503</commentid>
    <comment_count>2</comment_count>
      <attachid>151401</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-09 23:23:44 -0700</bug_when>
    <thetext>Comment on attachment 151401
Patch

Attachment 151401 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13189010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665714</commentid>
    <comment_count>3</comment_count>
      <attachid>151401</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-10 06:26:03 -0700</bug_when>
    <thetext>Comment on attachment 151401
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        Note that there is no integration with Preferences. That aproach was
&gt; +        taken initially but revealed complex and overkill for such a
&gt; +        debugging-only functionality. Thus, to disable it simply restart with
&gt; +        the environment variable unset or set to some other value.

Please explain what you&apos;ve changed in TextureMapper[GL]

&gt; Source/WebKit2/ChangeLog:9
&gt; +

You should note somewhere that this is for WebKit2 only for now.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:368
&gt; +    QFont font(QStringLiteral(&quot;Monospace&quot;), pointSize, QFont::Bold);

QString::fromUtf8 would work, seems like QStringLiteral doesn&apos;t build.

&gt; Source/WebKit2/UIProcess/texmap/LayerBackingStore.cpp:136
&gt; +        static bool showTileDebugVisuals = (qgetenv(&quot;QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS&quot;) == &quot;1&quot;);
&gt; +        if (!showTileDebugVisuals)
&gt; +            continue;

This should be in its own (static) function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665872</commentid>
    <comment_count>4</comment_count>
      <attachid>151483</attachid>
    <who name="Helder Correia">helder.correia</who>
    <bug_when>2012-07-10 10:42:57 -0700</bug_when>
    <thetext>Created attachment 151483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665874</commentid>
    <comment_count>5</comment_count>
      <attachid>151483</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-10 10:46:36 -0700</bug_when>
    <thetext>Comment on attachment 151483
Patch

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

Let&apos;s put the #if PLATFORM(QT) only when actually needed, this will help other ports (EFL?) do this when they so choose.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapper.h:127
&gt; +#if PLATFORM(QT)
&gt; +    virtual void drawRepaintCounter(int value, int pointSize, const FloatPoint&amp;, const TransformationMatrix&amp; modelViewMatrix = TransformationMatrix()) = 0;
&gt; +#endif

Doesn&apos;t need ifdef

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:364
&gt; +#if PLATFORM(QT)
&gt; +void TextureMapperGL::drawRepaintCounter(int value, int pointSize, const FloatPoint&amp; targetPoint, const TransformationMatrix&amp; modelViewMatrix)

#if should be inside, notImplemented otherwise.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperGL.h:55
&gt; +#if PLATFORM(QT)
&gt; +    virtual void drawRepaintCounter(int value, int pointSize, const FloatPoint&amp;, const TransformationMatrix&amp; modelViewMatrix = TransformationMatrix()) OVERRIDE;
&gt; +#endif

Doesn&apos;t need ifdef

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.h:57
&gt; +#if PLATFORM(QT)
&gt; +    virtual void drawRepaintCounter(int value, int pointSize, const FloatPoint&amp;, const TransformationMatrix&amp; modelViewMatrix = TransformationMatrix()) OVERRIDE { };
&gt; +#endif

ditto

&gt; Source/WebKit2/UIProcess/texmap/LayerBackingStore.cpp:103
&gt; +#if PLATFORM(QT)
&gt; +static bool shouldShowTileDebugVisuals()
&gt; +{
&gt; +    return (qgetenv(&quot;QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS&quot;) == &quot;1&quot;);
&gt; +}

You can put the ifdef inside, and return false if not in Qt.

&gt; Source/WebKit2/UIProcess/texmap/LayerBackingStore.cpp:146
&gt; +#if PLATFORM(QT)
&gt; +        static bool shouldDebug = shouldShowTileDebugVisuals();
&gt; +        if (!shouldDebug)
&gt; +            continue;
&gt; +        textureMapper-&gt;drawBorder(QColor(Qt::red), 2, tile-&gt;rect(), transform);
&gt; +        textureMapper-&gt;drawRepaintCounter(static_cast&lt;LayerBackingStoreTile*&gt;(tile)-&gt;repaintCount(), 8, tilesToPaint[i]-&gt;rect().location(), transform);
&gt; +#endif

Doesn&apos;t need the ifdef

&gt; Source/WebKit2/UIProcess/texmap/LayerBackingStore.h:40
&gt; +#if PLATFORM(QT)
&gt; +        , m_repaintCount(0)
&gt; +#endif

Doesn&apos;t need the ifdef

&gt; Source/WebKit2/UIProcess/texmap/LayerBackingStore.h:48
&gt; +#if PLATFORM(QT)
&gt; +    inline void incrementRepaintCount() { ++m_repaintCount; }
&gt; +    inline int repaintCount() const { return m_repaintCount; }
&gt; +#endif

Doesn&apos;t need the ifdef

&gt; Source/WebKit2/UIProcess/texmap/LayerBackingStore.h:60
&gt; +#if PLATFORM(QT)
&gt; +    int m_repaintCount;
&gt; +#endif

Doesn&apos;t need the ifdef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665906</commentid>
    <comment_count>6</comment_count>
      <attachid>151494</attachid>
    <who name="Helder Correia">helder.correia</who>
    <bug_when>2012-07-10 11:36:47 -0700</bug_when>
    <thetext>Created attachment 151494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665911</commentid>
    <comment_count>7</comment_count>
      <attachid>151494</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-10 11:43:01 -0700</bug_when>
    <thetext>Comment on attachment 151494
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665922</commentid>
    <comment_count>8</comment_count>
      <attachid>151494</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-07-10 11:51:09 -0700</bug_when>
    <thetext>Comment on attachment 151494
Patch

Attachment 151494 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13207041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666004</commentid>
    <comment_count>9</comment_count>
      <attachid>151509</attachid>
    <who name="Helder Correia">helder.correia</who>
    <bug_when>2012-07-10 13:41:10 -0700</bug_when>
    <thetext>Created attachment 151509
Fix GTK build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666130</commentid>
    <comment_count>10</comment_count>
      <attachid>151509</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-10 16:06:31 -0700</bug_when>
    <thetext>Comment on attachment 151509
Fix GTK build

Clearing flags on attachment: 151509

Committed r122275: &lt;http://trac.webkit.org/changeset/122275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666131</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-10 16:06:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151401</attachid>
            <date>2012-07-09 22:54:00 -0700</date>
            <delta_ts>2012-07-10 10:42:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90116-20120709225359.patch</filename>
            <type>text/plain</type>
            <size>11856</size>
            <attacher name="Helder Correia">helder.correia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYzZmQ0NmJmMDk3MWFi
N2M4MDEwYjFkNDllYmZhNWEwMTMxZTFlNC4uYzQzMmE0ZWMzODliN2Y3OTg4M2QyMTJmMWIxZDM5
Y2RmMGY2YTVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA3LTA5ICBIZWxk
ZXIgQ29ycmVpYSAgPGhlbGRlci5jb3JyZWlhQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFJl
cGFpbnQgY291bnRlciBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGludHJv
ZHVjaW5nIGEgZGVidWcgZmVhdHVyZS4KKworICAgICAgICBGb3IgdGhpcyBmZWF0dXJlIHRvIGJl
IGVuYWJsZWQsIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBRVF9XRUJLSVRfU0hP
V19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTIG11c3QgYmUgc2V0IHRvIDEuIE9uY2UgZW5hYmxl
ZCwKKyAgICAgICAgYm90aCByZXBhaW50IGNvdW50ZXJzIGFuZCB0aWxlIGJvcmRlcnMgd2lsbCBi
ZSBwYWludGVkLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBpbnRlZ3JhdGlvbiB3
aXRoIFByZWZlcmVuY2VzLiBUaGF0IGFwcm9hY2ggd2FzCisgICAgICAgIHRha2VuIGluaXRpYWxs
eSBidXQgcmV2ZWFsZWQgY29tcGxleCBhbmQgb3ZlcmtpbGwgZm9yIHN1Y2ggYQorICAgICAgICBk
ZWJ1Z2dpbmctb25seSBmdW5jdGlvbmFsaXR5LiBUaHVzLCB0byBkaXNhYmxlIGl0IHNpbXBseSBy
ZXN0YXJ0IHdpdGgKKyAgICAgICAgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHVuc2V0IG9yIHNl
dCB0byBzb21lIG90aGVyIHZhbHVlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3UmVwYWludENvdW50ZXIpOiBBIFFJbWFnZSBpcyB1c2Vk
IGFzCisgICAgICAgIHNjcmF0Y2ggYnVmZmVyIHRvIGNvbXBvc2UgdGhlIGJvcmRlcnMgYW5kIHRl
eHQgb24gdG9wIG9mIHRoZSB0aWxlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmg6CisKIDIwMTItMDctMDIgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtUZXh0dXJlTWFwcGVyXSBUaGUg
VGV4dHVyZU1hcHBlciBzaG91bGQgc3VwcG9ydCBlZGdlLWRpc3RhbmNlIGFudGktYW50aWFsaWFz
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNjU4MTY1ZTBhMDFiYjk4MGM4MWE3ZTlhMDk2ZTNmNTI2ODBjN2Ew
OS4uODRkMjNkZjU3ZDcyZDEyYzQwNDFkZWNmNjhiZjRjOTQwMGJiNjcwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMzIEBACisyMDEyLTA3LTA5ICBIZWxkZXIgQ29ycmVpYSAgPGhlbGRlci5jb3Jy
ZWlhQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFJlcGFpbnQgY291bnRlciBmb3IgYWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkwMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGludHJvZHVjaW5nIGEgZGVidWcgZmVhdHVyZS4K
KworICAgICAgICBGb3IgdGhpcyBmZWF0dXJlIHRvIGJlIGVuYWJsZWQsIHRoZSBlbnZpcm9ubWVu
dCB2YXJpYWJsZQorICAgICAgICBRVF9XRUJLSVRfU0hPV19DT01QT1NJVElOR19ERUJVR19WSVNV
QUxTIG11c3QgYmUgc2V0IHRvIDEuIE9uY2UgZW5hYmxlZCwKKyAgICAgICAgYm90aCByZXBhaW50
IGNvdW50ZXJzIGFuZCB0aWxlIGJvcmRlcnMgd2lsbCBiZSBwYWludGVkLgorCisgICAgICAgIE5v
dGUgdGhhdCB0aGVyZSBpcyBubyBpbnRlZ3JhdGlvbiB3aXRoIFByZWZlcmVuY2VzLiBUaGF0IGFw
cm9hY2ggd2FzCisgICAgICAgIHRha2VuIGluaXRpYWxseSBidXQgcmV2ZWFsZWQgY29tcGxleCBh
bmQgb3ZlcmtpbGwgZm9yIHN1Y2ggYQorICAgICAgICBkZWJ1Z2dpbmctb25seSBmdW5jdGlvbmFs
aXR5LiBUaHVzLCB0byBkaXNhYmxlIGl0IHNpbXBseSByZXN0YXJ0IHdpdGgKKyAgICAgICAgdGhl
IGVudmlyb25tZW50IHZhcmlhYmxlIHVuc2V0IG9yIHNldCB0byBzb21lIG90aGVyIHZhbHVlLgor
CisgICAgICAgICogVUlQcm9jZXNzL3RleG1hcC9MYXllckJhY2tpbmdTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyQmFja2luZ1N0b3JlOjp1cGRhdGVUaWxlKTogV2hlcmUgZWFjaCB0
aWxlIHJlcGFpbnQKKyAgICAgICAgY291bnRlciBpcyBpbmNyZW1lbnRlZC4KKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKTogV2hlcmUgdGhl
IGRlY2lzaW9uIHRvCisgICAgICAgIGRyYXcgdGhlIGJvcmRlcnMgYW5kIGNvdW50ZXJzIGlzIHRh
a2VuLCBhbmQgdGhlIG9yZGVyIHNlbnQgdG8KKyAgICAgICAgVGV4dHVyZU1hcHBlcihHTCkgcmln
aHQgYWZ0ZXIgZWFjaCBhY3R1YWwgdGlsZSBpcyBwYWludGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJCYWNr
aW5nU3RvcmVUaWxlOjpMYXllckJhY2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAoV2ViS2l0OjpM
YXllckJhY2tpbmdTdG9yZVRpbGU6OmluY3JlbWVudFJlcGFpbnRDb3VudCk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyQmFja2luZ1N0b3JlVGlsZTo6cmVwYWludENvdW50KToKKyAgICAgICAgKExh
eWVyQmFja2luZ1N0b3JlVGlsZSk6CisKIDIwMTItMDctMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtUZXh0dXJlTWFwcGVyXSBUaGUgVGV4dHVy
ZU1hcHBlciBzaG91bGQgc3VwcG9ydCBlZGdlLWRpc3RhbmNlIGFudGktYW50aWFsaWFzaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXIuaAppbmRleCAwMGVhM2UzZjkwMWJhZjQ3ZDNmNWIwZDU2ZTQ0ODg5MDdiNmE0YWMy
Li4wZDU1YjJkNjgxNjE5MjVhZTA4N2M5MGFjMTJmYTgxYTFlZWQwMzM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
LmgKQEAgLTEyMiw2ICsxMjIsOSBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01h
dHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpID0gMDsKKyNpZiBQTEFURk9STShRVCkKKyAg
ICB2aXJ0dWFsIHZvaWQgZHJhd1JlcGFpbnRDb3VudGVyKGludCB2YWx1ZSwgaW50IHBvaW50U2l6
ZSwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZp
ZXdNYXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKSA9IDA7CisjZW5kaWYKICAgICB2aXJ0
dWFsIHZvaWQgZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0g
VHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgZmxvYXQgb3BhY2l0eSA9IDEuMGYsIGNvbnN0IEJpdG1h
cFRleHR1cmUqIG1hc2tUZXh0dXJlID0gMCwgdW5zaWduZWQgZXhwb3NlZEVkZ2VzID0gQWxsRWRn
ZXMpID0gMDsKIAogICAgIC8vIG1ha2VzIGEgc3VyZmFjZSB0aGUgdGFyZ2V0IGZvciB0aGUgZm9s
bG93aW5nIGRyYXdUZXh0dXJlIGNhbGxzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCAwYjZm
YzhhZmEwMzdmM2UwZDAzMWQ3ZDEzM2E5OGE4YWRmMzkxNjljLi4xMjFlN2ZmNGNlMTA0YjdmMjRk
NGZhN2Y1MzQ4NDFkODdmYTVjNzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtMzYwLDYg
KzM2MCwzNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd0JvcmRlcihjb25zdCBDb2xvciYg
Y29sb3IsIGZsb2F0IHdpZHRoLCBjb25zdCBGbG9hdFJlYwogICAgIGRyYXdRdWFkKHRhcmdldFJl
Y3QsIG1vZGVsVmlld01hdHJpeCwgcHJvZ3JhbS5nZXQoKSwgR0xfTElORV9MT09QLCBjb2xvci5o
YXNBbHBoYSgpKTsKIH0KIAorI2lmIFBMQVRGT1JNKFFUKQordm9pZCBUZXh0dXJlTWFwcGVyR0w6
OmRyYXdSZXBhaW50Q291bnRlcihpbnQgdmFsdWUsIGludCBwb2ludFNpemUsIGNvbnN0IEZsb2F0
UG9pbnQmIHRhcmdldFBvaW50LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3
TWF0cml4KQoreworICAgIFFTdHJpbmcgY291bnRlclN0cmluZyA9IFFTdHJpbmc6Om51bWJlcih2
YWx1ZSk7CisKKyAgICBRRm9udCBmb250KFFTdHJpbmdMaXRlcmFsKCJNb25vc3BhY2UiKSwgcG9p
bnRTaXplLCBRRm9udDo6Qm9sZCk7CisgICAgZm9udC5zZXRTdHlsZUhpbnQoUUZvbnQ6OlR5cGVX
cml0ZXIpOworCisgICAgUUZvbnRNZXRyaWNzIGZvbnRNZXRyaWNzKGZvbnQpOworICAgIGludCB3
aWR0aCA9IGZvbnRNZXRyaWNzLndpZHRoKGNvdW50ZXJTdHJpbmcpICsgNDsKKyAgICBpbnQgaGVp
Z2h0ID0gZm9udE1ldHJpY3MuaGVpZ2h0KCk7CisKKyAgICBJbnRTaXplIHNpemUod2lkdGgsIGhl
aWdodCk7CisgICAgSW50UmVjdCBzb3VyY2VSZWN0KEludFBvaW50Ojp6ZXJvKCksIHNpemUpOwor
ICAgIEludFJlY3QgdGFyZ2V0UmVjdChyb3VuZGVkSW50UG9pbnQodGFyZ2V0UG9pbnQpLCBzaXpl
KTsKKworICAgIFFJbWFnZSBpbWFnZShzaXplLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVs
dGlwbGllZCk7CisgICAgUVBhaW50ZXIgcGFpbnRlcigmaW1hZ2UpOworICAgIHBhaW50ZXIuZmls
bFJlY3Qoc291cmNlUmVjdCwgUXQ6OmJsdWUpOyAvLyBTaW5jZSB3ZSB3b24ndCBzd2FwIFIrQiBm
b3Igc3BlZWQsIHRoaXMgd2lsbCBwYWludCByZWQuCisgICAgcGFpbnRlci5zZXRGb250KGZvbnQp
OworICAgIHBhaW50ZXIuc2V0UGVuKFF0Ojp3aGl0ZSk7CisgICAgcGFpbnRlci5kcmF3VGV4dCgy
LCBoZWlnaHQgKiAwLjg1LCBjb3VudGVyU3RyaW5nKTsKKworICAgIFJlZlB0cjxCaXRtYXBUZXh0
dXJlPiB0ZXh0dXJlID0gYWNxdWlyZVRleHR1cmVGcm9tUG9vbChzaXplKTsKKyAgICBjb25zdCB1
Y2hhciogYml0cyA9IGltYWdlLmJpdHMoKTsKKyAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhi
aXRzLCBzb3VyY2VSZWN0LCBJbnRQb2ludDo6emVybygpLCBpbWFnZS5ieXRlc1BlckxpbmUoKSk7
CisgICAgZHJhd1RleHR1cmUoKnRleHR1cmUsIHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwg
MS4wZiwgMCwgQWxsRWRnZXMpOworfQorI2VuZGlmCisKIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpk
cmF3VGV4dHVyZShjb25zdCBCaXRtYXBUZXh0dXJlJiB0ZXh0dXJlLCBjb25zdCBGbG9hdFJlY3Qm
IHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9w
YWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2ssIHVuc2lnbmVkIGV4cG9zZWRFZGdlcykK
IHsKICAgICBpZiAoIXRleHR1cmUuaXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCmluZGV4IDM5
YTVhMzBmYjRjMzU4YWM4MGU0ZTQ5MDZjZmIwYTE1NDQ3MGU0ODAuLjgyYzhmYWRiZmE0ZWVmMDkx
Yzc5Y2JlMzNlZDNiNjFiMjJjYjFjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKQEAgLTUwLDYgKzUw
LDkgQEAgcHVibGljOgogCiAgICAgLy8gVGV4dHVyZU1hcHBlciBpbXBsZW1lbnRhdGlvbgogICAg
IHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgs
IGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
IG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpIE9WRVJSSURFOworI2lm
IFBMQVRGT1JNKFFUKQorICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVwYWludENvdW50ZXIoaW50IHZh
bHVlLCBpbnQgcG9pbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpIE9WRVJS
SURFOworI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRl
eHR1cmUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZs
b2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1bnNpZ25lZCBl
eHBvc2VkRWRnZXMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3VGV4dHVyZSh1aW50
MzJfdCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYgdGV4dHVyZVNpemUsIGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmll
d01hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUs
IHVuc2lnbmVkIGV4cG9zZWRFZGdlcyA9IEFsbEVkZ2VzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJJbWFnZUJ1ZmZlci5oCmluZGV4IDQ3M2JhYjI5MDQ0MWMyNDY4ZTIwYmYxYzIyNjU1MTBkMTQ4
ZGU4ZWIuLmZmNTgzOTQxYTRhOGQyMTdmMDNjN2U0MDYzMGJhZGRhY2YxZGJhY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgKQEAgLTUyLDYgKzUyLDkgQEAgcHVibGljOgog
CiAgICAgLy8gVGV4dHVyZU1hcHBlciBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBk
cmF3Qm9yZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmll
d01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpIE9WRVJSSURFIHsgfTsKKyNpZiBQTEFU
Rk9STShRVCkKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlcGFpbnRDb3VudGVyKGludCB2YWx1ZSwg
aW50IHBvaW50U2l6ZSwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBtb2RlbFZpZXdNYXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKSBPVkVSUklERSB7
IH07CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4
dHVyZSYsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwg
dW5zaWduZWQgZXhwb3NlZEVkZ2VzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5D
bGlwKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRTdXJmYWNlKEJpdG1hcFRleHR1cmUqIHN1cmZhY2Up
IE9WRVJSSURFIHsgbV9jdXJyZW50U3VyZmFjZSA9IHN1cmZhY2U7fQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3RleG1hcC9MYXllckJhY2tpbmdTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvdGV4bWFwL0xheWVyQmFja2luZ1N0b3JlLmNwcAppbmRleCA0
ZmE2ODJkMmQ1ZDgyNzM5ZTM4MGYxMTQ5YWQ0YzI1ZTExMjQzMmM1Li40OGMyNzE1MGZmZWJlZmMw
Mzk5ODlmMTgxN2MxYmUzMDlhNTI3NDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvdGV4bWFwL0xheWVyQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvdGV4bWFwL0xheWVyQmFja2luZ1N0b3JlLmNwcApAQCAtODAsNiArODAsNyBAQCB2
b2lkIExheWVyQmFja2luZ1N0b3JlOjp1cGRhdGVUaWxlKGludCBpZCwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCwgY29uc3QgSW50UgogewogICAgIEhhc2hNYXA8aW50LCBMYXllckJhY2tpbmdT
dG9yZVRpbGU+OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuZmluZChpZCk7CiAgICAgQVNTRVJUKGl0
ICE9IG1fdGlsZXMuZW5kKCkpOworICAgIGl0LT5zZWNvbmQuaW5jcmVtZW50UmVwYWludENvdW50
KCk7CiAgICAgaXQtPnNlY29uZC5zZXRCYWNrQnVmZmVyKHRhcmdldFJlY3QsIHNvdXJjZVJlY3Qs
IGJhY2tCdWZmZXIsIG9mZnNldCk7CiB9CiAKQEAgLTEyNiw4ICsxMjcsMTcgQEAgdm9pZCBMYXll
ckJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVy
ZU1hcHBlciwgY29uc3QKICAgICAvLyBwYXNzaW5nLiBGb3Igbm93IHdlIGp1c3QgImVzdGltYXRl
IiBzaW5jZSBMYXllckJhY2tpbmdTdG9yZSBkb2Vzbid0IGtlZXAgaW5mb3JtYXRpb24gYWJvdXQK
ICAgICAvLyB0aGUgdG90YWwgdGlsZWQgc3VyZmFjZSByZWN0IGF0IHRoZSBtb21lbnQuCiAgICAg
dW5zaWduZWQgZWRnZXNFeHBvc2VkID0gbV90aWxlcy5zaXplKCkgPiAxID8gVGV4dHVyZU1hcHBl
cjo6Tm9FZGdlcyA6IFRleHR1cmVNYXBwZXI6OkFsbEVkZ2VzOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdGlsZXNUb1BhaW50LnNpemUoKTsgKytpKQotICAgICAgICB0aWxlc1RvUGFpbnRb
aV0tPnBhaW50KHRleHR1cmVNYXBwZXIsIHRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRnZXNF
eHBvc2VkKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRpbGVzVG9QYWludC5zaXplKCk7
ICsraSkgeworICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9IHRpbGVzVG9QYWludFtp
XTsKKyAgICAgICAgdGlsZS0+cGFpbnQodGV4dHVyZU1hcHBlciwgdHJhbnNmb3JtLCBvcGFjaXR5
LCBtYXNrLCBlZGdlc0V4cG9zZWQpOworI2lmIFBMQVRGT1JNKFFUKQorICAgICAgICBzdGF0aWMg
Ym9vbCBzaG93VGlsZURlYnVnVmlzdWFscyA9IChxZ2V0ZW52KCJRVF9XRUJLSVRfU0hPV19DT01Q
T1NJVElOR19ERUJVR19WSVNVQUxTIikgPT0gIjEiKTsKKyAgICAgICAgaWYgKCFzaG93VGlsZURl
YnVnVmlzdWFscykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0ZXh0dXJlTWFwcGVy
LT5kcmF3Qm9yZGVyKFFDb2xvcihRdDo6cmVkKSwgMiwgdGlsZS0+cmVjdCgpLCB0cmFuc2Zvcm0p
OworICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3UmVwYWludENvdW50ZXIoc3RhdGljX2Nhc3Q8
TGF5ZXJCYWNraW5nU3RvcmVUaWxlKj4odGlsZSktPnJlcGFpbnRDb3VudCgpLCA4LCB0aWxlc1Rv
UGFpbnRbaV0tPnJlY3QoKS5sb2NhdGlvbigpLCB0cmFuc2Zvcm0pOworI2VuZGlmCisgICAgfQog
fQogCiB2b2lkIExheWVyQmFja2luZ1N0b3JlOjpjb21taXRUaWxlT3BlcmF0aW9ucyhUZXh0dXJl
TWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3RleG1hcC9MYXllckJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3RleG1hcC9MYXllckJhY2tpbmdTdG9yZS5oCmluZGV4IGEzZTIxOWIwNDE1YWQzZjg3YTEzMjZl
ZDMwNzBiNTI5YWQ1ZTZjNzEuLjZhNGY1MTNhMDViODkxMzk4MDkzZTY3YWJmNTExOTNhMWE5NmU1
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNr
aW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvdGV4bWFwL0xheWVyQmFj
a2luZ1N0b3JlLmgKQEAgLTM1LDEwICszNSwxMyBAQCBwdWJsaWM6CiAgICAgTGF5ZXJCYWNraW5n
U3RvcmVUaWxlKGZsb2F0IHNjYWxlID0gMSkKICAgICAgICAgOiBUZXh0dXJlTWFwcGVyVGlsZShX
ZWJDb3JlOjpGbG9hdFJlY3QoKSkKICAgICAgICAgLCBtX3NjYWxlKHNjYWxlKQorICAgICAgICAs
IG1fcmVwYWludENvdW50KDApCiAgICAgewogICAgIH0KIAogICAgIGlubGluZSBmbG9hdCBzY2Fs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGU7IH0KKyAgICBpbmxpbmUgdm9pZCBpbmNyZW1lbnRS
ZXBhaW50Q291bnQoKSB7ICsrbV9yZXBhaW50Q291bnQ7IH0KKyAgICBpbmxpbmUgaW50IHJlcGFp
bnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludENvdW50OyB9CiAgICAgdm9pZCBzd2Fw
QnVmZmVycyhXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKik7CiAgICAgdm9pZCBzZXRCYWNrQnVmZmVy
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGFzc1Jl
ZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBidWZmZXIsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7
CiAKQEAgLTQ4LDYgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fdGFy
Z2V0UmVjdDsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3N1cmZhY2VPZmZzZXQ7CiAgICAgZmxv
YXQgbV9zY2FsZTsKKyAgICBpbnQgbV9yZXBhaW50Q291bnQ7CiB9OwogCiBjbGFzcyBMYXllckJh
Y2tpbmdTdG9yZSA6IHB1YmxpYyBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151483</attachid>
            <date>2012-07-10 10:42:57 -0700</date>
            <delta_ts>2012-07-10 11:36:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90116-20120710104256.patch</filename>
            <type>text/plain</type>
            <size>13552</size>
            <attacher name="Helder Correia">helder.correia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYzZmQ0NmJmMDk3MWFi
N2M4MDEwYjFkNDllYmZhNWEwMTMxZTFlNC4uNmYxZTBkOGM5NDAzZTNiYzA0NmU4N2RmNjc3MzE4
ZmJkOTMyNTUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA3LTEwICBIZWxk
ZXIgQ29ycmVpYSAgPGhlbGRlci5jb3JyZWlhQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFJl
cGFpbnQgY291bnRlciBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGludHJv
ZHVjaW5nIGEgZGVidWcgZmVhdHVyZS4KKworICAgICAgICBGb3IgdGhpcyBmZWF0dXJlIHRvIGJl
IGVuYWJsZWQsIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBRVF9XRUJLSVRfU0hP
V19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTIG11c3QgYmUgc2V0IHRvIDEuIE9uY2UgZW5hYmxl
ZCwKKyAgICAgICAgYm90aCByZXBhaW50IGNvdW50ZXJzIGFuZCB0aWxlIGJvcmRlcnMgd2lsbCBi
ZSBwYWludGVkLgorCisgICAgICAgIEltcG9ydGFudCBub3RlczoKKyAgICAgICAgLSBPbmx5IFdl
YktpdDIgaXMgdGFyZ2V0dGVkIGZvciBub3cuCisgICAgICAgIC0gQWxsIGNoYW5nZXMgYXJlIHdy
YXBwZWQgaW5zaWRlIFBMQVRGT1JNKFFUKSwgZXZlbiB0aG91Z2ggb25seSB0aGUgbmV3CisgICAg
ICAgIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1JlcGFpbnRDb3VudGVyKCkgaXMgUXQtc3BlY2lmaWMu
CisgICAgICAgIC0gVGhlcmUgaXMgbm8gaW50ZWdyYXRpb24gd2l0aCBQcmVmZXJlbmNlcy4gVGhh
dCBhcHJvYWNoIHdhcworICAgICAgICB0YWtlbiBpbml0aWFsbHkgYnV0IHJldmVhbGVkIGNvbXBs
ZXggYW5kIG92ZXJraWxsIGZvciBzdWNoIGEKKyAgICAgICAgZGVidWdnaW5nLW9ubHkgZnVuY3Rp
b25hbGl0eS4gVGh1cywgdG8gZGlzYWJsZSBpdCBzaW1wbHkgcmVzdGFydCB3aXRoCisgICAgICAg
IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB1bnNldCBvciBzZXQgdG8gc29tZSBvdGhlciB2YWx1
ZS4KKworICAgICAgICBBIFF0LXNwZWNpZmljIGRyYXdSZXBhaW50Q291bnRlcigpIGZ1bmN0aW9u
IHdhcyBhZGRlZCB0bworICAgICAgICBUZXh0dXJlTWFwcGVyR0wuIEEgUUltYWdlIGlzIHVzZWQg
YXMgc2NyYXRjaCBidWZmZXIgdG8gcGFpbnQgYm9yZGVycyBhbmQKKyAgICAgICAgY291bnRlcnMu
IEl0IGlzIHRoZW4gdXBsb2FkZWQgdG8gYSBCaXRtYXBUZXh0dXJlIGFjcXVpcmVkIGZyb20gdGhl
IHBvb2wKKyAgICAgICAgYW5kIGZpbmFsbHkgZHJhdyBieSBUZXh0dXJlTWFwcGVyLiBUaGUgYWN0
dWFsIGNvbXBvc2l0aW5nIGhhcHBlbnMgaW5zaWRlCisgICAgICAgIExheWVyQmFja2luZ1N0b3Jl
OjpwYWludFRvVGV4dHVyZU1hcHBlcigpLiBFYWNoIExheWVyQmFja2luZ1N0b3JlVGlsZQorICAg
ICAgICBub3cgaGFzIGEgcmVwYWludCBjb3VudGVyIHdoaWNoIGdldHMgaW5jcmVtZW50ZWQgaW4K
KyAgICAgICAgTGF5ZXJCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUoKS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1JlcGFpbnRDb3VudGVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1
ZmZlci5oOgorCiAyMDEyLTA3LTAyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KIAogICAgICAgICBbVGV4dHVyZU1hcHBlcl0gVGhlIFRleHR1cmVNYXBwZXIgc2hvdWxk
IHN1cHBvcnQgZWRnZS1kaXN0YW5jZSBhbnRpLWFudGlhbGlhc2luZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY1
ODE2NWUwYTAxYmI5ODBjODFhN2U5YTA5NmUzZjUyNjgwYzdhMDkuLjQwN2JlYzQyMTdhOTlkOWEy
Mjc5YzE2YTE0YWUzYWQyYjZhZDI4ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAx
Mi0wNy0xMCAgSGVsZGVyIENvcnJlaWEgIDxoZWxkZXIuY29ycmVpYUBub2tpYS5jb20+CisKKyAg
ICAgICAgW1F0XSBSZXBhaW50IGNvdW50ZXIgZm9yIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDExNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywganVzdCBpbnRyb2R1Y2luZyBhIGRlYnVnIGZlYXR1cmUuCisKKyAgICAgICAgRm9yIHRoaXMg
ZmVhdHVyZSB0byBiZSBlbmFibGVkLCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAg
UVRfV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyBtdXN0IGJlIHNldCB0byAx
LiBPbmNlIGVuYWJsZWQsCisgICAgICAgIGJvdGggcmVwYWludCBjb3VudGVycyBhbmQgdGlsZSBi
b3JkZXJzIHdpbGwgYmUgcGFpbnRlZC4KKworICAgICAgICBJbXBvcnRhbnQgbm90ZXM6CisgICAg
ICAgIC0gT25seSBXZWJLaXQyIGlzIHRhcmdldHRlZCBmb3Igbm93LgorICAgICAgICAtIEFsbCBj
aGFuZ2VzIGFyZSB3cmFwcGVkIGluc2lkZSBQTEFURk9STShRVCksIGV2ZW4gdGhvdWdoIG9ubHkg
dGhlIG5ldworICAgICAgICBUZXh0dXJlTWFwcGVyR0w6OmRyYXdSZXBhaW50Q291bnRlcigpIGlz
IFF0LXNwZWNpZmljLgorICAgICAgICAtIFRoZXJlIGlzIG5vIGludGVncmF0aW9uIHdpdGggUHJl
ZmVyZW5jZXMuIFRoYXQgYXByb2FjaCB3YXMKKyAgICAgICAgdGFrZW4gaW5pdGlhbGx5IGJ1dCBy
ZXZlYWxlZCBjb21wbGV4IGFuZCBvdmVya2lsbCBmb3Igc3VjaCBhCisgICAgICAgIGRlYnVnZ2lu
Zy1vbmx5IGZ1bmN0aW9uYWxpdHkuIFRodXMsIHRvIGRpc2FibGUgaXQgc2ltcGx5IHJlc3RhcnQg
d2l0aAorICAgICAgICB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdW5zZXQgb3Igc2V0IHRvIHNv
bWUgb3RoZXIgdmFsdWUuCisKKyAgICAgICAgQSBRdC1zcGVjaWZpYyBkcmF3UmVwYWludENvdW50
ZXIoKSBmdW5jdGlvbiB3YXMgYWRkZWQgdG8KKyAgICAgICAgVGV4dHVyZU1hcHBlckdMLiBBIFFJ
bWFnZSBpcyB1c2VkIGFzIHNjcmF0Y2ggYnVmZmVyIHRvIHBhaW50IGJvcmRlcnMgYW5kCisgICAg
ICAgIGNvdW50ZXJzLiBJdCBpcyB0aGVuIHVwbG9hZGVkIHRvIGEgQml0bWFwVGV4dHVyZSBhY3F1
aXJlZCBmcm9tIHRoZSBwb29sCisgICAgICAgIGFuZCBmaW5hbGx5IGRyYXcgYnkgVGV4dHVyZU1h
cHBlci4gVGhlIGFjdHVhbCBjb21wb3NpdGluZyBoYXBwZW5zIGluc2lkZQorICAgICAgICBMYXll
ckJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoKS4gRWFjaCBMYXllckJhY2tpbmdT
dG9yZVRpbGUKKyAgICAgICAgbm93IGhhcyBhIHJlcGFpbnQgY291bnRlciB3aGljaCBnZXRzIGlu
Y3JlbWVudGVkIGluCisgICAgICAgIExheWVyQmFja2luZ1N0b3JlOjp1cGRhdGVUaWxlKCkuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvdGV4bWFwL0xheWVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllckJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpMYXllckJhY2tpbmdTdG9yZVRpbGUpOgor
ICAgICAgICAoTGF5ZXJCYWNraW5nU3RvcmVUaWxlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJC
YWNraW5nU3RvcmVUaWxlOjppbmNyZW1lbnRSZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViS2l0
OjpMYXllckJhY2tpbmdTdG9yZVRpbGU6OnJlcGFpbnRDb3VudCk6CisKIDIwMTItMDctMDIgIE1h
cnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtUZXh0dXJl
TWFwcGVyXSBUaGUgVGV4dHVyZU1hcHBlciBzaG91bGQgc3VwcG9ydCBlZGdlLWRpc3RhbmNlIGFu
dGktYW50aWFsaWFzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCAwMGVhM2UzZjkwMWJhZjQ3ZDNmNWIw
ZDU2ZTQ0ODg5MDdiNmE0YWMyLi4wZDU1YjJkNjgxNjE5MjVhZTA4N2M5MGFjMTJmYTgxYTFlZWQw
MzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTEyMiw2ICsxMjIsOSBAQCBwdWJsaWM6CiAgICAgfTsK
IAogICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVy
V2lkdGgsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpID0gMDsKKyNp
ZiBQTEFURk9STShRVCkKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlcGFpbnRDb3VudGVyKGludCB2
YWx1ZSwgaW50IHBvaW50U2l6ZSwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKSA9IDA7
CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4dHVy
ZSYsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgZmxvYXQgb3BhY2l0eSA9
IDEuMGYsIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlID0gMCwgdW5zaWduZWQgZXhw
b3NlZEVkZ2VzID0gQWxsRWRnZXMpID0gMDsKIAogICAgIC8vIG1ha2VzIGEgc3VyZmFjZSB0aGUg
dGFyZ2V0IGZvciB0aGUgZm9sbG93aW5nIGRyYXdUZXh0dXJlIGNhbGxzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdMLmNwcAppbmRleCAwYjZmYzhhZmEwMzdmM2UwZDAzMWQ3ZDEzM2E5OGE4YWRmMzkxNjljLi43
YzdmNjg2MjEzMzkyY2FhZDIzMTBjMzJjNGNkMzg4NGY3NGZhNjg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdMLmNwcApAQCAtMzYwLDYgKzM2MCwzNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd0Jv
cmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IHdpZHRoLCBjb25zdCBGbG9hdFJlYwogICAg
IGRyYXdRdWFkKHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgcHJvZ3JhbS5nZXQoKSwgR0xf
TElORV9MT09QLCBjb2xvci5oYXNBbHBoYSgpKTsKIH0KIAorI2lmIFBMQVRGT1JNKFFUKQordm9p
ZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdSZXBhaW50Q291bnRlcihpbnQgdmFsdWUsIGludCBwb2lu
dFNpemUsIGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFBvaW50LCBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4KQoreworICAgIFFTdHJpbmcgY291bnRlclN0cmluZyA9
IFFTdHJpbmc6Om51bWJlcih2YWx1ZSk7CisKKyAgICBRRm9udCBmb250KFFTdHJpbmc6OmZyb21M
YXRpbjEoIk1vbm9zcGFjZSIpLCBwb2ludFNpemUsIFFGb250OjpCb2xkKTsKKyAgICBmb250LnNl
dFN0eWxlSGludChRRm9udDo6VHlwZVdyaXRlcik7CisKKyAgICBRRm9udE1ldHJpY3MgZm9udE1l
dHJpY3MoZm9udCk7CisgICAgaW50IHdpZHRoID0gZm9udE1ldHJpY3Mud2lkdGgoY291bnRlclN0
cmluZykgKyA0OworICAgIGludCBoZWlnaHQgPSBmb250TWV0cmljcy5oZWlnaHQoKTsKKworICAg
IEludFNpemUgc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICBJbnRSZWN0IHNvdXJjZVJlY3QoSW50
UG9pbnQ6Onplcm8oKSwgc2l6ZSk7CisgICAgSW50UmVjdCB0YXJnZXRSZWN0KHJvdW5kZWRJbnRQ
b2ludCh0YXJnZXRQb2ludCksIHNpemUpOworCisgICAgUUltYWdlIGltYWdlKHNpemUsIFFJbWFn
ZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0aXBsaWVkKTsKKyAgICBRUGFpbnRlciBwYWludGVyKCZp
bWFnZSk7CisgICAgcGFpbnRlci5maWxsUmVjdChzb3VyY2VSZWN0LCBRdDo6Ymx1ZSk7IC8vIFNp
bmNlIHdlIHdvbid0IHN3YXAgUitCIGZvciBzcGVlZCwgdGhpcyB3aWxsIHBhaW50IHJlZC4KKyAg
ICBwYWludGVyLnNldEZvbnQoZm9udCk7CisgICAgcGFpbnRlci5zZXRQZW4oUXQ6OndoaXRlKTsK
KyAgICBwYWludGVyLmRyYXdUZXh0KDIsIGhlaWdodCAqIDAuODUsIGNvdW50ZXJTdHJpbmcpOwor
CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUgPSBhY3F1aXJlVGV4dHVyZUZyb21Q
b29sKHNpemUpOworICAgIGNvbnN0IHVjaGFyKiBiaXRzID0gaW1hZ2UuYml0cygpOworICAgIHRl
eHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGJpdHMsIHNvdXJjZVJlY3QsIEludFBvaW50Ojp6ZXJvKCks
IGltYWdlLmJ5dGVzUGVyTGluZSgpKTsKKyAgICBkcmF3VGV4dHVyZSgqdGV4dHVyZSwgdGFyZ2V0
UmVjdCwgbW9kZWxWaWV3TWF0cml4LCAxLjBmLCAwLCBBbGxFZGdlcyk7Cit9CisjZW5kaWYKKwog
dm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmIHRl
eHR1cmUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFzaywg
dW5zaWduZWQgZXhwb3NlZEVkZ2VzKQogewogICAgIGlmICghdGV4dHVyZS5pc1ZhbGlkKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmgKaW5kZXggMzlhNWEzMGZiNGMzNThhYzgwZTRlNDkwNmNmYjBhMTU0NDcw
ZTQ4MC4uODJjOGZhZGJmYTRlZWYwOTFjNzljYmUzM2VkM2I2MWIyMmNiMWNlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuaApAQCAtNTAsNiArNTAsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBUZXh0dXJlTWFw
cGVyIGltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lkIGRyYXdCb3JkZXIoY29uc3QgQ29s
b3ImLCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3JtYXRpb25N
YXRyaXgoKSkgT1ZFUlJJREU7CisjaWYgUExBVEZPUk0oUVQpCisgICAgdmlydHVhbCB2b2lkIGRy
YXdSZXBhaW50Q291bnRlcihpbnQgdmFsdWUsIGludCBwb2ludFNpemUsIGNvbnN0IEZsb2F0UG9p
bnQmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNm
b3JtYXRpb25NYXRyaXgoKSkgT1ZFUlJJREU7CisjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZHJh
d1RleHR1cmUoY29uc3QgQml0bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSog
bWFza1RleHR1cmUsIHVuc2lnbmVkIGV4cG9zZWRFZGdlcykgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGRyYXdUZXh0dXJlKHVpbnQzMl90IHRleHR1cmUsIEZsYWdzLCBjb25zdCBJbnRTaXpl
JiB0ZXh0dXJlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRt
YXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwgdW5zaWduZWQgZXhwb3NlZEVkZ2VzID0gQWxsRWRnZXMp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgKaW5kZXggNDczYmFiMjkwNDQx
YzI0NjhlMjBiZjFjMjI2NTUxMGQxNDhkZThlYi4uZmY1ODM5NDFhNGE4ZDIxN2YwM2M3ZTQwNjMw
YmFkZGFjZjFkYmFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaApAQCAt
NTIsNiArNTIsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBUZXh0dXJlTWFwcGVyIGltcGxlbWVudGF0
aW9uCiAgICAgdmlydHVhbCB2b2lkIGRyYXdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9h
dCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3JtYXRpb25NYXRyaXgoKSkg
T1ZFUlJJREUgeyB9OworI2lmIFBMQVRGT1JNKFFUKQorICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVw
YWludENvdW50ZXIoaW50IHZhbHVlLCBpbnQgcG9pbnRTaXplLCBjb25zdCBGbG9hdFBvaW50Jiwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0
aW9uTWF0cml4KCkpIE9WRVJSSURFIHsgfTsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkcmF3
VGV4dHVyZShjb25zdCBCaXRtYXBUZXh0dXJlJiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0
LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1h
cFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBj
b25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFN1cmZhY2Uo
Qml0bWFwVGV4dHVyZSogc3VyZmFjZSkgT1ZFUlJJREUgeyBtX2N1cnJlbnRTdXJmYWNlID0gc3Vy
ZmFjZTt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvdGV4bWFwL0xheWVy
QmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJC
YWNraW5nU3RvcmUuY3BwCmluZGV4IDRmYTY4MmQyZDVkODI3MzllMzgwZjExNDlhZDRjMjVlMTEy
NDMyYzUuLmJlOTM5YjU3M2I2OGQ2ZTNkZTE3YzYzMzRlZjc3MzkzODA4YmJiODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUu
Y3BwCkBAIC04MCw2ICs4MCw3IEBAIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUo
aW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSCiB7CiAgICAgSGFz
aE1hcDxpbnQsIExheWVyQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5m
aW5kKGlkKTsKICAgICBBU1NFUlQoaXQgIT0gbV90aWxlcy5lbmQoKSk7CisgICAgaXQtPnNlY29u
ZC5pbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBpdC0+c2Vjb25kLnNldEJhY2tCdWZmZXIo
dGFyZ2V0UmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwgb2Zmc2V0KTsKIH0KIApAQCAtOTUs
NiArOTYsMTMgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBMYXllckJhY2tpbmdTdG9yZTo6
dGV4dHVyZSgpIGNvbnN0CiAgICAgcmV0dXJuIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4oKTsK
IH0KIAorI2lmIFBMQVRGT1JNKFFUKQorc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zp
c3VhbHMoKQoreworICAgIHJldHVybiAocWdldGVudigiUVRfV0VCS0lUX1NIT1dfQ09NUE9TSVRJ
TkdfREVCVUdfVklTVUFMUyIpID09ICIxIik7Cit9CisjZW5kaWYKKwogdm9pZCBMYXllckJhY2tp
bmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
ciwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBCaXRtYXBUZXh0dXJlKiBtYXNrKQogewogICAg
IFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+IHRpbGVzVG9QYWludDsKQEAgLTEyNiw4ICsxMzQs
MTcgQEAgdm9pZCBMYXllckJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QKICAgICAvLyBwYXNzaW5nLiBGb3Igbm93IHdl
IGp1c3QgImVzdGltYXRlIiBzaW5jZSBMYXllckJhY2tpbmdTdG9yZSBkb2Vzbid0IGtlZXAgaW5m
b3JtYXRpb24gYWJvdXQKICAgICAvLyB0aGUgdG90YWwgdGlsZWQgc3VyZmFjZSByZWN0IGF0IHRo
ZSBtb21lbnQuCiAgICAgdW5zaWduZWQgZWRnZXNFeHBvc2VkID0gbV90aWxlcy5zaXplKCkgPiAx
ID8gVGV4dHVyZU1hcHBlcjo6Tm9FZGdlcyA6IFRleHR1cmVNYXBwZXI6OkFsbEVkZ2VzOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXNUb1BhaW50LnNpemUoKTsgKytpKQotICAgICAg
ICB0aWxlc1RvUGFpbnRbaV0tPnBhaW50KHRleHR1cmVNYXBwZXIsIHRyYW5zZm9ybSwgb3BhY2l0
eSwgbWFzaywgZWRnZXNFeHBvc2VkKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRpbGVz
VG9QYWludC5zaXplKCk7ICsraSkgeworICAgICAgICBUZXh0dXJlTWFwcGVyVGlsZSogdGlsZSA9
IHRpbGVzVG9QYWludFtpXTsKKyAgICAgICAgdGlsZS0+cGFpbnQodGV4dHVyZU1hcHBlciwgdHJh
bnNmb3JtLCBvcGFjaXR5LCBtYXNrLCBlZGdlc0V4cG9zZWQpOworI2lmIFBMQVRGT1JNKFFUKQor
ICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGREZWJ1ZyA9IHNob3VsZFNob3dUaWxlRGVidWdWaXN1
YWxzKCk7CisgICAgICAgIGlmICghc2hvdWxkRGVidWcpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd0JvcmRlcihRQ29sb3IoUXQ6OnJlZCksIDIsIHRp
bGUtPnJlY3QoKSwgdHJhbnNmb3JtKTsKKyAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd1JlcGFp
bnRDb3VudGVyKHN0YXRpY19jYXN0PExheWVyQmFja2luZ1N0b3JlVGlsZSo+KHRpbGUpLT5yZXBh
aW50Q291bnQoKSwgOCwgdGlsZXNUb1BhaW50W2ldLT5yZWN0KCkubG9jYXRpb24oKSwgdHJhbnNm
b3JtKTsKKyNlbmRpZgorICAgIH0KIH0KIAogdm9pZCBMYXllckJhY2tpbmdTdG9yZTo6Y29tbWl0
VGlsZU9wZXJhdGlvbnMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuaAppbmRleCBh
M2UyMTliMDQxNWFkM2Y4N2ExMzI2ZWQzMDcwYjUyOWFkNWU2YzcxLi44OTI0N2MxYzUyMDg0NGM0
NzRiYmNmZDBmMDg5ODU5ZTQ1YmI3NzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvdGV4bWFwL0xheWVyQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3RleG1hcC9MYXllckJhY2tpbmdTdG9yZS5oCkBAIC0zNSwxMCArMzUsMTcgQEAgcHVi
bGljOgogICAgIExheWVyQmFja2luZ1N0b3JlVGlsZShmbG9hdCBzY2FsZSA9IDEpCiAgICAgICAg
IDogVGV4dHVyZU1hcHBlclRpbGUoV2ViQ29yZTo6RmxvYXRSZWN0KCkpCiAgICAgICAgICwgbV9z
Y2FsZShzY2FsZSkKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAgLCBtX3JlcGFpbnRDb3VudCgw
KQorI2VuZGlmCiAgICAgewogICAgIH0KIAogICAgIGlubGluZSBmbG9hdCBzY2FsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2NhbGU7IH0KKyNpZiBQTEFURk9STShRVCkKKyAgICBpbmxpbmUgdm9pZCBp
bmNyZW1lbnRSZXBhaW50Q291bnQoKSB7ICsrbV9yZXBhaW50Q291bnQ7IH0KKyAgICBpbmxpbmUg
aW50IHJlcGFpbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludENvdW50OyB9CisjZW5k
aWYKICAgICB2b2lkIHN3YXBCdWZmZXJzKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqKTsKICAgICB2
b2lkIHNldEJhY2tCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBQYXNzUmVmUHRyPFNoYXJlYWJsZVN1cmZhY2U+IGJ1ZmZlciwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKTsKIApAQCAtNDgsNiArNTUsOSBAQCBwcml2YXRlOgogICAgIFdlYkNv
cmU6OkludFJlY3QgbV90YXJnZXRSZWN0OwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fc3VyZmFj
ZU9mZnNldDsKICAgICBmbG9hdCBtX3NjYWxlOworI2lmIFBMQVRGT1JNKFFUKQorICAgIGludCBt
X3JlcGFpbnRDb3VudDsKKyNlbmRpZgogfTsKIAogY2xhc3MgTGF5ZXJCYWNraW5nU3RvcmUgOiBw
dWJsaWMgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151494</attachid>
            <date>2012-07-10 11:36:47 -0700</date>
            <delta_ts>2012-07-10 13:40:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90116-20120710113646.patch</filename>
            <type>text/plain</type>
            <size>13131</size>
            <attacher name="Helder Correia">helder.correia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYzZmQ0NmJmMDk3MWFi
N2M4MDEwYjFkNDllYmZhNWEwMTMxZTFlNC4uYjU5NjRlNjIwZjhmZmMwNDI1YmUyNDMwNTRkMDg5
MjQzY2RlMDYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA3LTEwICBIZWxk
ZXIgQ29ycmVpYSAgPGhlbGRlci5jb3JyZWlhQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFJl
cGFpbnQgY291bnRlciBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGludHJv
ZHVjaW5nIGEgZGVidWcgZmVhdHVyZS4KKworICAgICAgICBGb3IgdGhpcyBmZWF0dXJlIHRvIGJl
IGVuYWJsZWQsIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBRVF9XRUJLSVRfU0hP
V19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTIG11c3QgYmUgc2V0IHRvIDEuIE9uY2UgZW5hYmxl
ZCwKKyAgICAgICAgYm90aCByZXBhaW50IGNvdW50ZXJzIGFuZCB0aWxlIGJvcmRlcnMgd2lsbCBi
ZSBwYWludGVkLgorCisgICAgICAgIEltcG9ydGFudCBub3RlczoKKyAgICAgICAgLSBPbmx5IFdl
YktpdDIgaXMgdGFyZ2V0dGVkIGZvciBub3cuCisgICAgICAgIC0gVGhlcmUgaXMgbm8gaW50ZWdy
YXRpb24gd2l0aCBQcmVmZXJlbmNlcy4gVGhhdCBhcHJvYWNoIHdhcworICAgICAgICB0YWtlbiBp
bml0aWFsbHkgYnV0IHJldmVhbGVkIGNvbXBsZXggYW5kIG92ZXJraWxsIGZvciBzdWNoIGEKKyAg
ICAgICAgZGVidWdnaW5nLW9ubHkgZnVuY3Rpb25hbGl0eS4gVGh1cywgdG8gZGlzYWJsZSBpdCBz
aW1wbHkgcmVzdGFydCB3aXRoCisgICAgICAgIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB1bnNl
dCBvciBzZXQgdG8gc29tZSBvdGhlciB2YWx1ZS4KKworICAgICAgICBBIFF0LXNwZWNpZmljIGRy
YXdSZXBhaW50Q291bnRlcigpIGZ1bmN0aW9uIHdhcyBhZGRlZCB0bworICAgICAgICBUZXh0dXJl
TWFwcGVyR0wuIEEgUUltYWdlIGlzIHVzZWQgYXMgc2NyYXRjaCBidWZmZXIgdG8gcGFpbnQgYm9y
ZGVycyBhbmQKKyAgICAgICAgY291bnRlcnMuIEl0IGlzIHRoZW4gdXBsb2FkZWQgdG8gYSBCaXRt
YXBUZXh0dXJlIGFjcXVpcmVkIGZyb20gdGhlIHBvb2wKKyAgICAgICAgYW5kIGZpbmFsbHkgZHJh
dyBieSBUZXh0dXJlTWFwcGVyLiBUaGUgYWN0dWFsIGNvbXBvc2l0aW5nIGhhcHBlbnMgaW5zaWRl
CisgICAgICAgIExheWVyQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcigpLiBFYWNo
IExheWVyQmFja2luZ1N0b3JlVGlsZQorICAgICAgICBub3cgaGFzIGEgcmVwYWludCBjb3VudGVy
IHdoaWNoIGdldHMgaW5jcmVtZW50ZWQgaW4KKyAgICAgICAgTGF5ZXJCYWNraW5nU3RvcmU6OnVw
ZGF0ZVRpbGUoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJHTDo6ZHJhd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oOgorCiAyMDEyLTA3LTAyICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbVGV4dHVyZU1hcHBl
cl0gVGhlIFRleHR1cmVNYXBwZXIgc2hvdWxkIHN1cHBvcnQgZWRnZS1kaXN0YW5jZSBhbnRpLWFu
dGlhbGlhc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY1ODE2NWUwYTAxYmI5ODBjODFhN2U5YTA5NmUzZjUy
NjgwYzdhMDkuLmE2YWUyYzQ4OWRmNmFlZDcxMDU2N2ViN2NkYjRkNGEwYTQ0ZjNlZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMi0wNy0xMCAgSGVsZGVyIENvcnJlaWEgIDxoZWxk
ZXIuY29ycmVpYUBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBSZXBhaW50IGNvdW50ZXIgZm9y
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MDExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBpbnRyb2R1Y2luZyBhIGRlYnVnIGZl
YXR1cmUuCisKKyAgICAgICAgRm9yIHRoaXMgZmVhdHVyZSB0byBiZSBlbmFibGVkLCB0aGUgZW52
aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgUVRfV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVC
VUdfVklTVUFMUyBtdXN0IGJlIHNldCB0byAxLiBPbmNlIGVuYWJsZWQsCisgICAgICAgIGJvdGgg
cmVwYWludCBjb3VudGVycyBhbmQgdGlsZSBib3JkZXJzIHdpbGwgYmUgcGFpbnRlZC4KKworICAg
ICAgICBJbXBvcnRhbnQgbm90ZXM6CisgICAgICAgIC0gT25seSBXZWJLaXQyIGlzIHRhcmdldHRl
ZCBmb3Igbm93LgorICAgICAgICAtIFRoZXJlIGlzIG5vIGludGVncmF0aW9uIHdpdGggUHJlZmVy
ZW5jZXMuIFRoYXQgYXByb2FjaCB3YXMKKyAgICAgICAgdGFrZW4gaW5pdGlhbGx5IGJ1dCByZXZl
YWxlZCBjb21wbGV4IGFuZCBvdmVya2lsbCBmb3Igc3VjaCBhCisgICAgICAgIGRlYnVnZ2luZy1v
bmx5IGZ1bmN0aW9uYWxpdHkuIFRodXMsIHRvIGRpc2FibGUgaXQgc2ltcGx5IHJlc3RhcnQgd2l0
aAorICAgICAgICB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdW5zZXQgb3Igc2V0IHRvIHNvbWUg
b3RoZXIgdmFsdWUuCisKKyAgICAgICAgQSBRdC1zcGVjaWZpYyBkcmF3UmVwYWludENvdW50ZXIo
KSBmdW5jdGlvbiB3YXMgYWRkZWQgdG8KKyAgICAgICAgVGV4dHVyZU1hcHBlckdMLiBBIFFJbWFn
ZSBpcyB1c2VkIGFzIHNjcmF0Y2ggYnVmZmVyIHRvIHBhaW50IGJvcmRlcnMgYW5kCisgICAgICAg
IGNvdW50ZXJzLiBJdCBpcyB0aGVuIHVwbG9hZGVkIHRvIGEgQml0bWFwVGV4dHVyZSBhY3F1aXJl
ZCBmcm9tIHRoZSBwb29sCisgICAgICAgIGFuZCBmaW5hbGx5IGRyYXcgYnkgVGV4dHVyZU1hcHBl
ci4gVGhlIGFjdHVhbCBjb21wb3NpdGluZyBoYXBwZW5zIGluc2lkZQorICAgICAgICBMYXllckJh
Y2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoKS4gRWFjaCBMYXllckJhY2tpbmdTdG9y
ZVRpbGUKKyAgICAgICAgbm93IGhhcyBhIHJlcGFpbnQgY291bnRlciB3aGljaCBnZXRzIGluY3Jl
bWVudGVkIGluCisgICAgICAgIExheWVyQmFja2luZ1N0b3JlOjp1cGRhdGVUaWxlKCkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvdGV4bWFwL0xheWVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllckJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpMYXllckJhY2tpbmdTdG9yZVRpbGUpOgorICAg
ICAgICAoTGF5ZXJCYWNraW5nU3RvcmVUaWxlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJCYWNr
aW5nU3RvcmVUaWxlOjppbmNyZW1lbnRSZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViS2l0OjpM
YXllckJhY2tpbmdTdG9yZVRpbGU6OnJlcGFpbnRDb3VudCk6CisKIDIwMTItMDctMDIgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtUZXh0dXJlTWFw
cGVyXSBUaGUgVGV4dHVyZU1hcHBlciBzaG91bGQgc3VwcG9ydCBlZGdlLWRpc3RhbmNlIGFudGkt
YW50aWFsaWFzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCAwMGVhM2UzZjkwMWJhZjQ3ZDNmNWIwZDU2
ZTQ0ODg5MDdiNmE0YWMyLi43NzkzZjcwYWRlYjQ3NzRlMDAxYWYyNzlhMjZiNzhkM2ZiNzA5NzBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmgKQEAgLTEyMiw2ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lk
dGgsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZHJhd1JlcGFpbnRDb3VudGVyKGludCB2YWx1ZSwgaW50IHBvaW50U2l6ZSwg
Y29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRy
YXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldCwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0
aW9uTWF0cml4KCksIGZsb2F0IG9wYWNpdHkgPSAxLjBmLCBjb25zdCBCaXRtYXBUZXh0dXJlKiBt
YXNrVGV4dHVyZSA9IDAsIHVuc2lnbmVkIGV4cG9zZWRFZGdlcyA9IEFsbEVkZ2VzKSA9IDA7CiAK
ICAgICAvLyBtYWtlcyBhIHN1cmZhY2UgdGhlIHRhcmdldCBmb3IgdGhlIGZvbGxvd2luZyBkcmF3
VGV4dHVyZSBjYWxscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMGI2ZmM4YWZhMDM3ZjNl
MGQwMzFkN2QxMzNhOThhOGFkZjM5MTY5Yy4uNTY1Zjc2Nzk2NWRlNDAwNTVkZTI0NGVjY2E0NWVk
ZmE2OGNlYjdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTM2MCw2ICszNjAsMzggQEAg
dm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9h
dCB3aWR0aCwgY29uc3QgRmxvYXRSZWMKICAgICBkcmF3UXVhZCh0YXJnZXRSZWN0LCBtb2RlbFZp
ZXdNYXRyaXgsIHByb2dyYW0uZ2V0KCksIEdMX0xJTkVfTE9PUCwgY29sb3IuaGFzQWxwaGEoKSk7
CiB9CiAKK3ZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3UmVwYWludENvdW50ZXIoaW50IHZhbHVl
LCBpbnQgcG9pbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCkKK3sKKyNpZiBQTEFURk9STShRVCkK
KyAgICBRU3RyaW5nIGNvdW50ZXJTdHJpbmcgPSBRU3RyaW5nOjpudW1iZXIodmFsdWUpOworCisg
ICAgUUZvbnQgZm9udChRU3RyaW5nOjpmcm9tTGF0aW4xKCJNb25vc3BhY2UiKSwgcG9pbnRTaXpl
LCBRRm9udDo6Qm9sZCk7CisgICAgZm9udC5zZXRTdHlsZUhpbnQoUUZvbnQ6OlR5cGVXcml0ZXIp
OworCisgICAgUUZvbnRNZXRyaWNzIGZvbnRNZXRyaWNzKGZvbnQpOworICAgIGludCB3aWR0aCA9
IGZvbnRNZXRyaWNzLndpZHRoKGNvdW50ZXJTdHJpbmcpICsgNDsKKyAgICBpbnQgaGVpZ2h0ID0g
Zm9udE1ldHJpY3MuaGVpZ2h0KCk7CisKKyAgICBJbnRTaXplIHNpemUod2lkdGgsIGhlaWdodCk7
CisgICAgSW50UmVjdCBzb3VyY2VSZWN0KEludFBvaW50Ojp6ZXJvKCksIHNpemUpOworICAgIElu
dFJlY3QgdGFyZ2V0UmVjdChyb3VuZGVkSW50UG9pbnQodGFyZ2V0UG9pbnQpLCBzaXplKTsKKwor
ICAgIFFJbWFnZSBpbWFnZShzaXplLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlwbGll
ZCk7CisgICAgUVBhaW50ZXIgcGFpbnRlcigmaW1hZ2UpOworICAgIHBhaW50ZXIuZmlsbFJlY3Qo
c291cmNlUmVjdCwgUXQ6OmJsdWUpOyAvLyBTaW5jZSB3ZSB3b24ndCBzd2FwIFIrQiBmb3Igc3Bl
ZWQsIHRoaXMgd2lsbCBwYWludCByZWQuCisgICAgcGFpbnRlci5zZXRGb250KGZvbnQpOworICAg
IHBhaW50ZXIuc2V0UGVuKFF0Ojp3aGl0ZSk7CisgICAgcGFpbnRlci5kcmF3VGV4dCgyLCBoZWln
aHQgKiAwLjg1LCBjb3VudGVyU3RyaW5nKTsKKworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0
ZXh0dXJlID0gYWNxdWlyZVRleHR1cmVGcm9tUG9vbChzaXplKTsKKyAgICBjb25zdCB1Y2hhciog
Yml0cyA9IGltYWdlLmJpdHMoKTsKKyAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhiaXRzLCBz
b3VyY2VSZWN0LCBJbnRQb2ludDo6emVybygpLCBpbWFnZS5ieXRlc1BlckxpbmUoKSk7CisgICAg
ZHJhd1RleHR1cmUoKnRleHR1cmUsIHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgMS4wZiwg
MCwgQWxsRWRnZXMpOworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCit9CisK
IHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZShjb25zdCBCaXRtYXBUZXh0dXJlJiB0
ZXh0dXJlLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2ss
IHVuc2lnbmVkIGV4cG9zZWRFZGdlcykKIHsKICAgICBpZiAoIXRleHR1cmUuaXNWYWxpZCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5oCmluZGV4IDM5YTVhMzBmYjRjMzU4YWM4MGU0ZTQ5MDZjZmIwYTE1NDQ3
MGU0ODAuLjA3NmU2NWY3Mzc3NjI2MWYwYTNiOTNiYjg1NzNhNTA1ZGU5YzAxNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogCiAgICAgLy8gVGV4dHVyZU1h
cHBlciBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENv
bG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9u
TWF0cml4KCkpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVwYWludENvdW50ZXIo
aW50IHZhbHVlLCBpbnQgcG9pbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3VGV4dHVyZShjb25zdCBCaXRtYXBUZXh0
dXJlJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9h
dCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwgdW5zaWduZWQgZXhw
b3NlZEVkZ2VzKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUodWludDMy
X3QgdGV4dHVyZSwgRmxhZ3MsIGNvbnN0IEludFNpemUmIHRleHR1cmVTaXplLCBjb25zdCBGbG9h
dFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1
bnNpZ25lZCBleHBvc2VkRWRnZXMgPSBBbGxFZGdlcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
SW1hZ2VCdWZmZXIuaAppbmRleCA0NzNiYWIyOTA0NDFjMjQ2OGUyMGJmMWMyMjY1NTEwZDE0OGRl
OGViLi40ZTJjNjkxNTQxY2E4ZWU0OWJhMmJlZmRjMTNjZmE0NGQ0MGNlYTg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlcklt
YWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIFRleHR1cmVNYXBwZXIgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0dWFsIHZvaWQgZHJh
d0JvcmRlcihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IGJvcmRlcldpZHRoLCBjb25zdCBGbG9h
dFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKSBPVkVSUklERSB7IH07CisgICAgdmlydHVh
bCB2b2lkIGRyYXdSZXBhaW50Q291bnRlcihpbnQgdmFsdWUsIGludCBwb2ludFNpemUsIGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4
ID0gVHJhbnNmb3JtYXRpb25NYXRyaXgoKSkgT1ZFUlJJREUgeyB9OwogICAgIHZpcnR1YWwgdm9p
ZCBkcmF3VGV4dHVyZShjb25zdCBCaXRtYXBUZXh0dXJlJiwgY29uc3QgRmxvYXRSZWN0JiB0YXJn
ZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHksIGNvbnN0
IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmLCBjb25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFN1
cmZhY2UoQml0bWFwVGV4dHVyZSogc3VyZmFjZSkgT1ZFUlJJREUgeyBtX2N1cnJlbnRTdXJmYWNl
ID0gc3VyZmFjZTt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvdGV4bWFw
L0xheWVyQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAv
TGF5ZXJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDRmYTY4MmQyZDVkODI3MzllMzgwZjExNDlhZDRj
MjVlMTEyNDMyYzUuLjk2N2YwNzUxMzg1NGE5NjQ1MTc3Njg0NzhkOWUzMjE3YWI5Y2Y5ZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5n
U3RvcmUuY3BwCkBAIC04MCw2ICs4MCw3IEBAIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmU6OnVwZGF0
ZVRpbGUoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSCiB7CiAg
ICAgSGFzaE1hcDxpbnQsIExheWVyQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90
aWxlcy5maW5kKGlkKTsKICAgICBBU1NFUlQoaXQgIT0gbV90aWxlcy5lbmQoKSk7CisgICAgaXQt
PnNlY29uZC5pbmNyZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBpdC0+c2Vjb25kLnNldEJhY2tC
dWZmZXIodGFyZ2V0UmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwgb2Zmc2V0KTsKIH0KIApA
QCAtOTUsNiArOTYsMTQgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBMYXllckJhY2tpbmdT
dG9yZTo6dGV4dHVyZSgpIGNvbnN0CiAgICAgcmV0dXJuIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVy
ZT4oKTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQorewor
I2lmIFBMQVRGT1JNKFFUKQorICAgIHJldHVybiAocWdldGVudigiUVRfV0VCS0lUX1NIT1dfQ09N
UE9TSVRJTkdfREVCVUdfVklTVUFMUyIpID09ICIxIik7CisjZW5kaWYKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRl
eHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0
bWFwVGV4dHVyZSogbWFzaykKIHsKICAgICBWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiB0aWxl
c1RvUGFpbnQ7CkBAIC0xMjYsOCArMTM1LDE1IEBAIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmU6OnBh
aW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0CiAg
ICAgLy8gcGFzc2luZy4gRm9yIG5vdyB3ZSBqdXN0ICJlc3RpbWF0ZSIgc2luY2UgTGF5ZXJCYWNr
aW5nU3RvcmUgZG9lc24ndCBrZWVwIGluZm9ybWF0aW9uIGFib3V0CiAgICAgLy8gdGhlIHRvdGFs
IHRpbGVkIHN1cmZhY2UgcmVjdCBhdCB0aGUgbW9tZW50LgogICAgIHVuc2lnbmVkIGVkZ2VzRXhw
b3NlZCA9IG1fdGlsZXMuc2l6ZSgpID4gMSA/IFRleHR1cmVNYXBwZXI6Ok5vRWRnZXMgOiBUZXh0
dXJlTWFwcGVyOjpBbGxFZGdlczsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRpbGVzVG9Q
YWludC5zaXplKCk7ICsraSkKLSAgICAgICAgdGlsZXNUb1BhaW50W2ldLT5wYWludCh0ZXh0dXJl
TWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIG1hc2ssIGVkZ2VzRXhwb3NlZCk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCB0aWxlc1RvUGFpbnQuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
VGV4dHVyZU1hcHBlclRpbGUqIHRpbGUgPSB0aWxlc1RvUGFpbnRbaV07CisgICAgICAgIHRpbGUt
PnBhaW50KHRleHR1cmVNYXBwZXIsIHRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRnZXNFeHBv
c2VkKTsKKyAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVidWcgPSBzaG91bGRTaG93VGlsZURl
YnVnVmlzdWFscygpOworICAgICAgICBpZiAoIXNob3VsZERlYnVnKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdCb3JkZXIoUUNvbG9yKFF0OjpyZWQp
LCAyLCB0aWxlLT5yZWN0KCksIHRyYW5zZm9ybSk7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRy
YXdSZXBhaW50Q291bnRlcihzdGF0aWNfY2FzdDxMYXllckJhY2tpbmdTdG9yZVRpbGUqPih0aWxl
KS0+cmVwYWludENvdW50KCksIDgsIHRpbGVzVG9QYWludFtpXS0+cmVjdCgpLmxvY2F0aW9uKCks
IHRyYW5zZm9ybSk7CisgICAgfQogfQogCiB2b2lkIExheWVyQmFja2luZ1N0b3JlOjpjb21taXRU
aWxlT3BlcmF0aW9ucyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3RleG1hcC9MYXllckJhY2tpbmdTdG9yZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3RleG1hcC9MYXllckJhY2tpbmdTdG9yZS5oCmluZGV4IGEz
ZTIxOWIwNDE1YWQzZjg3YTEzMjZlZDMwNzBiNTI5YWQ1ZTZjNzEuLjZhNGY1MTNhMDViODkxMzk4
MDkzZTY3YWJmNTExOTNhMWE5NmU1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvdGV4bWFwL0xheWVyQmFja2luZ1N0b3JlLmgKQEAgLTM1LDEwICszNSwxMyBAQCBwdWJs
aWM6CiAgICAgTGF5ZXJCYWNraW5nU3RvcmVUaWxlKGZsb2F0IHNjYWxlID0gMSkKICAgICAgICAg
OiBUZXh0dXJlTWFwcGVyVGlsZShXZWJDb3JlOjpGbG9hdFJlY3QoKSkKICAgICAgICAgLCBtX3Nj
YWxlKHNjYWxlKQorICAgICAgICAsIG1fcmVwYWludENvdW50KDApCiAgICAgewogICAgIH0KIAog
ICAgIGlubGluZSBmbG9hdCBzY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGU7IH0KKyAgICBp
bmxpbmUgdm9pZCBpbmNyZW1lbnRSZXBhaW50Q291bnQoKSB7ICsrbV9yZXBhaW50Q291bnQ7IH0K
KyAgICBpbmxpbmUgaW50IHJlcGFpbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludENv
dW50OyB9CiAgICAgdm9pZCBzd2FwQnVmZmVycyhXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKik7CiAg
ICAgdm9pZCBzZXRCYWNrQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgUGFzc1JlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBidWZmZXIsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50Jik7CiAKQEAgLTQ4LDYgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpJbnRSZWN0IG1fdGFyZ2V0UmVjdDsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3N1
cmZhY2VPZmZzZXQ7CiAgICAgZmxvYXQgbV9zY2FsZTsKKyAgICBpbnQgbV9yZXBhaW50Q291bnQ7
CiB9OwogCiBjbGFzcyBMYXllckJhY2tpbmdTdG9yZSA6IHB1YmxpYyBXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyQmFja2luZ1N0b3JlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151509</attachid>
            <date>2012-07-10 13:41:10 -0700</date>
            <delta_ts>2012-07-10 16:06:31 -0700</delta_ts>
            <desc>Fix GTK build</desc>
            <filename>bug-90116-20120710134059.patch</filename>
            <type>text/plain</type>
            <size>13347</size>
            <attacher name="Helder Correia">helder.correia</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYzZmQ0NmJmMDk3MWFi
N2M4MDEwYjFkNDllYmZhNWEwMTMxZTFlNC4uYjU5NjRlNjIwZjhmZmMwNDI1YmUyNDMwNTRkMDg5
MjQzY2RlMDYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA3LTEwICBIZWxk
ZXIgQ29ycmVpYSAgPGhlbGRlci5jb3JyZWlhQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFJl
cGFpbnQgY291bnRlciBmb3IgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IGludHJv
ZHVjaW5nIGEgZGVidWcgZmVhdHVyZS4KKworICAgICAgICBGb3IgdGhpcyBmZWF0dXJlIHRvIGJl
IGVuYWJsZWQsIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICBRVF9XRUJLSVRfU0hP
V19DT01QT1NJVElOR19ERUJVR19WSVNVQUxTIG11c3QgYmUgc2V0IHRvIDEuIE9uY2UgZW5hYmxl
ZCwKKyAgICAgICAgYm90aCByZXBhaW50IGNvdW50ZXJzIGFuZCB0aWxlIGJvcmRlcnMgd2lsbCBi
ZSBwYWludGVkLgorCisgICAgICAgIEltcG9ydGFudCBub3RlczoKKyAgICAgICAgLSBPbmx5IFdl
YktpdDIgaXMgdGFyZ2V0dGVkIGZvciBub3cuCisgICAgICAgIC0gVGhlcmUgaXMgbm8gaW50ZWdy
YXRpb24gd2l0aCBQcmVmZXJlbmNlcy4gVGhhdCBhcHJvYWNoIHdhcworICAgICAgICB0YWtlbiBp
bml0aWFsbHkgYnV0IHJldmVhbGVkIGNvbXBsZXggYW5kIG92ZXJraWxsIGZvciBzdWNoIGEKKyAg
ICAgICAgZGVidWdnaW5nLW9ubHkgZnVuY3Rpb25hbGl0eS4gVGh1cywgdG8gZGlzYWJsZSBpdCBz
aW1wbHkgcmVzdGFydCB3aXRoCisgICAgICAgIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB1bnNl
dCBvciBzZXQgdG8gc29tZSBvdGhlciB2YWx1ZS4KKworICAgICAgICBBIFF0LXNwZWNpZmljIGRy
YXdSZXBhaW50Q291bnRlcigpIGZ1bmN0aW9uIHdhcyBhZGRlZCB0bworICAgICAgICBUZXh0dXJl
TWFwcGVyR0wuIEEgUUltYWdlIGlzIHVzZWQgYXMgc2NyYXRjaCBidWZmZXIgdG8gcGFpbnQgYm9y
ZGVycyBhbmQKKyAgICAgICAgY291bnRlcnMuIEl0IGlzIHRoZW4gdXBsb2FkZWQgdG8gYSBCaXRt
YXBUZXh0dXJlIGFjcXVpcmVkIGZyb20gdGhlIHBvb2wKKyAgICAgICAgYW5kIGZpbmFsbHkgZHJh
dyBieSBUZXh0dXJlTWFwcGVyLiBUaGUgYWN0dWFsIGNvbXBvc2l0aW5nIGhhcHBlbnMgaW5zaWRl
CisgICAgICAgIExheWVyQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcigpLiBFYWNo
IExheWVyQmFja2luZ1N0b3JlVGlsZQorICAgICAgICBub3cgaGFzIGEgcmVwYWludCBjb3VudGVy
IHdoaWNoIGdldHMgaW5jcmVtZW50ZWQgaW4KKyAgICAgICAgTGF5ZXJCYWNraW5nU3RvcmU6OnVw
ZGF0ZVRpbGUoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJHTDo6ZHJhd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oOgorCiAyMDEyLTA3LTAyICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbVGV4dHVyZU1hcHBl
cl0gVGhlIFRleHR1cmVNYXBwZXIgc2hvdWxkIHN1cHBvcnQgZWRnZS1kaXN0YW5jZSBhbnRpLWFu
dGlhbGlhc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDY1ODE2NWUwYTAxYmI5ODBjODFhN2U5YTA5NmUzZjUy
NjgwYzdhMDkuLmE2YWUyYzQ4OWRmNmFlZDcxMDU2N2ViN2NkYjRkNGEwYTQ0ZjNlZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMi0wNy0xMCAgSGVsZGVyIENvcnJlaWEgIDxoZWxk
ZXIuY29ycmVpYUBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBSZXBhaW50IGNvdW50ZXIgZm9y
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MDExNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBpbnRyb2R1Y2luZyBhIGRlYnVnIGZl
YXR1cmUuCisKKyAgICAgICAgRm9yIHRoaXMgZmVhdHVyZSB0byBiZSBlbmFibGVkLCB0aGUgZW52
aXJvbm1lbnQgdmFyaWFibGUKKyAgICAgICAgUVRfV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVC
VUdfVklTVUFMUyBtdXN0IGJlIHNldCB0byAxLiBPbmNlIGVuYWJsZWQsCisgICAgICAgIGJvdGgg
cmVwYWludCBjb3VudGVycyBhbmQgdGlsZSBib3JkZXJzIHdpbGwgYmUgcGFpbnRlZC4KKworICAg
ICAgICBJbXBvcnRhbnQgbm90ZXM6CisgICAgICAgIC0gT25seSBXZWJLaXQyIGlzIHRhcmdldHRl
ZCBmb3Igbm93LgorICAgICAgICAtIFRoZXJlIGlzIG5vIGludGVncmF0aW9uIHdpdGggUHJlZmVy
ZW5jZXMuIFRoYXQgYXByb2FjaCB3YXMKKyAgICAgICAgdGFrZW4gaW5pdGlhbGx5IGJ1dCByZXZl
YWxlZCBjb21wbGV4IGFuZCBvdmVya2lsbCBmb3Igc3VjaCBhCisgICAgICAgIGRlYnVnZ2luZy1v
bmx5IGZ1bmN0aW9uYWxpdHkuIFRodXMsIHRvIGRpc2FibGUgaXQgc2ltcGx5IHJlc3RhcnQgd2l0
aAorICAgICAgICB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdW5zZXQgb3Igc2V0IHRvIHNvbWUg
b3RoZXIgdmFsdWUuCisKKyAgICAgICAgQSBRdC1zcGVjaWZpYyBkcmF3UmVwYWludENvdW50ZXIo
KSBmdW5jdGlvbiB3YXMgYWRkZWQgdG8KKyAgICAgICAgVGV4dHVyZU1hcHBlckdMLiBBIFFJbWFn
ZSBpcyB1c2VkIGFzIHNjcmF0Y2ggYnVmZmVyIHRvIHBhaW50IGJvcmRlcnMgYW5kCisgICAgICAg
IGNvdW50ZXJzLiBJdCBpcyB0aGVuIHVwbG9hZGVkIHRvIGEgQml0bWFwVGV4dHVyZSBhY3F1aXJl
ZCBmcm9tIHRoZSBwb29sCisgICAgICAgIGFuZCBmaW5hbGx5IGRyYXcgYnkgVGV4dHVyZU1hcHBl
ci4gVGhlIGFjdHVhbCBjb21wb3NpdGluZyBoYXBwZW5zIGluc2lkZQorICAgICAgICBMYXllckJh
Y2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIoKS4gRWFjaCBMYXllckJhY2tpbmdTdG9y
ZVRpbGUKKyAgICAgICAgbm93IGhhcyBhIHJlcGFpbnQgY291bnRlciB3aGljaCBnZXRzIGluY3Jl
bWVudGVkIGluCisgICAgICAgIExheWVyQmFja2luZ1N0b3JlOjp1cGRhdGVUaWxlKCkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvdGV4bWFwL0xheWVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllckJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBwZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpMYXllckJhY2tpbmdTdG9yZVRpbGUpOgorICAg
ICAgICAoTGF5ZXJCYWNraW5nU3RvcmVUaWxlKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJCYWNr
aW5nU3RvcmVUaWxlOjppbmNyZW1lbnRSZXBhaW50Q291bnQpOgorICAgICAgICAoV2ViS2l0OjpM
YXllckJhY2tpbmdTdG9yZVRpbGU6OnJlcGFpbnRDb3VudCk6CisKIDIwMTItMDctMDIgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtUZXh0dXJlTWFw
cGVyXSBUaGUgVGV4dHVyZU1hcHBlciBzaG91bGQgc3VwcG9ydCBlZGdlLWRpc3RhbmNlIGFudGkt
YW50aWFsaWFzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAppbmRleCAwMGVhM2UzZjkwMWJhZjQ3ZDNmNWIwZDU2
ZTQ0ODg5MDdiNmE0YWMyLi43NzkzZjcwYWRlYjQ3NzRlMDAxYWYyNzlhMjZiNzhkM2ZiNzA5NzBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyLmgKQEAgLTEyMiw2ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lk
dGgsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZHJhd1JlcGFpbnRDb3VudGVyKGludCB2YWx1ZSwgaW50IHBvaW50U2l6ZSwg
Y29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXggPSBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRy
YXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldCwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0
aW9uTWF0cml4KCksIGZsb2F0IG9wYWNpdHkgPSAxLjBmLCBjb25zdCBCaXRtYXBUZXh0dXJlKiBt
YXNrVGV4dHVyZSA9IDAsIHVuc2lnbmVkIGV4cG9zZWRFZGdlcyA9IEFsbEVkZ2VzKSA9IDA7CiAK
ICAgICAvLyBtYWtlcyBhIHN1cmZhY2UgdGhlIHRhcmdldCBmb3IgdGhlIGZvbGxvd2luZyBkcmF3
VGV4dHVyZSBjYWxscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMGI2ZmM4YWZhMDM3ZjNl
MGQwMzFkN2QxMzNhOThhOGFkZjM5MTY5Yy4uNGMyM2NkOWQxMTA0Y2JlOWY1ODBjY2RkM2RiZTJl
OGFlYzFiOGI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5o
IgogI2luY2x1ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTM2MCw2ICszNjEsMzggQEAgdm9pZCBUZXh0dXJl
TWFwcGVyR0w6OmRyYXdCb3JkZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBmbG9hdCB3aWR0aCwgY29u
c3QgRmxvYXRSZWMKICAgICBkcmF3UXVhZCh0YXJnZXRSZWN0LCBtb2RlbFZpZXdNYXRyaXgsIHBy
b2dyYW0uZ2V0KCksIEdMX0xJTkVfTE9PUCwgY29sb3IuaGFzQWxwaGEoKSk7CiB9CiAKK3ZvaWQg
VGV4dHVyZU1hcHBlckdMOjpkcmF3UmVwYWludENvdW50ZXIoaW50IHZhbHVlLCBpbnQgcG9pbnRT
aXplLCBjb25zdCBGbG9hdFBvaW50JiB0YXJnZXRQb2ludCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1vZGVsVmlld01hdHJpeCkKK3sKKyNpZiBQTEFURk9STShRVCkKKyAgICBRU3RyaW5n
IGNvdW50ZXJTdHJpbmcgPSBRU3RyaW5nOjpudW1iZXIodmFsdWUpOworCisgICAgUUZvbnQgZm9u
dChRU3RyaW5nOjpmcm9tTGF0aW4xKCJNb25vc3BhY2UiKSwgcG9pbnRTaXplLCBRRm9udDo6Qm9s
ZCk7CisgICAgZm9udC5zZXRTdHlsZUhpbnQoUUZvbnQ6OlR5cGVXcml0ZXIpOworCisgICAgUUZv
bnRNZXRyaWNzIGZvbnRNZXRyaWNzKGZvbnQpOworICAgIGludCB3aWR0aCA9IGZvbnRNZXRyaWNz
LndpZHRoKGNvdW50ZXJTdHJpbmcpICsgNDsKKyAgICBpbnQgaGVpZ2h0ID0gZm9udE1ldHJpY3Mu
aGVpZ2h0KCk7CisKKyAgICBJbnRTaXplIHNpemUod2lkdGgsIGhlaWdodCk7CisgICAgSW50UmVj
dCBzb3VyY2VSZWN0KEludFBvaW50Ojp6ZXJvKCksIHNpemUpOworICAgIEludFJlY3QgdGFyZ2V0
UmVjdChyb3VuZGVkSW50UG9pbnQodGFyZ2V0UG9pbnQpLCBzaXplKTsKKworICAgIFFJbWFnZSBp
bWFnZShzaXplLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzJfUHJlbXVsdGlwbGllZCk7CisgICAgUVBh
aW50ZXIgcGFpbnRlcigmaW1hZ2UpOworICAgIHBhaW50ZXIuZmlsbFJlY3Qoc291cmNlUmVjdCwg
UXQ6OmJsdWUpOyAvLyBTaW5jZSB3ZSB3b24ndCBzd2FwIFIrQiBmb3Igc3BlZWQsIHRoaXMgd2ls
bCBwYWludCByZWQuCisgICAgcGFpbnRlci5zZXRGb250KGZvbnQpOworICAgIHBhaW50ZXIuc2V0
UGVuKFF0Ojp3aGl0ZSk7CisgICAgcGFpbnRlci5kcmF3VGV4dCgyLCBoZWlnaHQgKiAwLjg1LCBj
b3VudGVyU3RyaW5nKTsKKworICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gYWNx
dWlyZVRleHR1cmVGcm9tUG9vbChzaXplKTsKKyAgICBjb25zdCB1Y2hhciogYml0cyA9IGltYWdl
LmJpdHMoKTsKKyAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhiaXRzLCBzb3VyY2VSZWN0LCBJ
bnRQb2ludDo6emVybygpLCBpbWFnZS5ieXRlc1BlckxpbmUoKSk7CisgICAgZHJhd1RleHR1cmUo
KnRleHR1cmUsIHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJpeCwgMS4wZiwgMCwgQWxsRWRnZXMp
OworI2Vsc2UKKyAgICBub3RJbXBsZW1lbnRlZCgpOworI2VuZGlmCit9CisKIHZvaWQgVGV4dHVy
ZU1hcHBlckdMOjpkcmF3VGV4dHVyZShjb25zdCBCaXRtYXBUZXh0dXJlJiB0ZXh0dXJlLCBjb25z
dCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRy
aXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2ssIHVuc2lnbmVkIGV4
cG9zZWRFZGdlcykKIHsKICAgICBpZiAoIXRleHR1cmUuaXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5oCmluZGV4IDM5YTVhMzBmYjRjMzU4YWM4MGU0ZTQ5MDZjZmIwYTE1NDQ3MGU0ODAuLjA3NmU2
NWY3Mzc3NjI2MWYwYTNiOTNiYjg1NzNhNTA1ZGU5YzAxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgK
QEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogCiAgICAgLy8gVGV4dHVyZU1hcHBlciBpbXBsZW1l
bnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQg
Ym9yZGVyV2lkdGgsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVwYWludENvdW50ZXIoaW50IHZhbHVlLCBp
bnQgcG9pbnRTaXplLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmIG1vZGVsVmlld01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3VGV4dHVyZShjb25zdCBCaXRtYXBUZXh0dXJlJiwgY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBj
b25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4dHVyZSwgdW5zaWduZWQgZXhwb3NlZEVkZ2VzKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUodWludDMyX3QgdGV4dHVyZSwg
RmxhZ3MsIGNvbnN0IEludFNpemUmIHRleHR1cmVTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0
IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlLCB1bnNpZ25lZCBleHBv
c2VkRWRnZXMgPSBBbGxFZGdlcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIu
aAppbmRleCA0NzNiYWIyOTA0NDFjMjQ2OGUyMGJmMWMyMjY1NTEwZDE0OGRlOGViLi40ZTJjNjkx
NTQxY2E4ZWU0OWJhMmJlZmRjMTNjZmE0NGQ0MGNlYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJJbWFnZUJ1ZmZlci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRleHR1
cmVNYXBwZXIgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0dWFsIHZvaWQgZHJhd0JvcmRlcihjb25z
dCBDb2xvciYgY29sb3IsIGZsb2F0IGJvcmRlcldpZHRoLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXggPSBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCgpKSBPVkVSUklERSB7IH07CisgICAgdmlydHVhbCB2b2lkIGRyYXdS
ZXBhaW50Q291bnRlcihpbnQgdmFsdWUsIGludCBwb2ludFNpemUsIGNvbnN0IEZsb2F0UG9pbnQm
LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4ID0gVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKSkgT1ZFUlJJREUgeyB9OwogICAgIHZpcnR1YWwgdm9pZCBkcmF3VGV4dHVy
ZShjb25zdCBCaXRtYXBUZXh0dXJlJiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEJpdG1hcFRleHR1
cmUqIG1hc2tUZXh0dXJlLCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBG
bG9hdFJlY3QmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFN1cmZhY2UoQml0bWFw
VGV4dHVyZSogc3VyZmFjZSkgT1ZFUlJJREUgeyBtX2N1cnJlbnRTdXJmYWNlID0gc3VyZmFjZTt9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvdGV4bWFwL0xheWVyQmFja2lu
Z1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5n
U3RvcmUuY3BwCmluZGV4IDRmYTY4MmQyZDVkODI3MzllMzgwZjExNDlhZDRjMjVlMTEyNDMyYzUu
Ljk2N2YwNzUxMzg1NGE5NjQ1MTc3Njg0NzhkOWUzMjE3YWI5Y2Y5ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAvTGF5ZXJCYWNraW5nU3RvcmUuY3BwCkBA
IC04MCw2ICs4MCw3IEBAIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGUoaW50IGlk
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRSCiB7CiAgICAgSGFzaE1hcDxp
bnQsIExheWVyQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5maW5kKGlk
KTsKICAgICBBU1NFUlQoaXQgIT0gbV90aWxlcy5lbmQoKSk7CisgICAgaXQtPnNlY29uZC5pbmNy
ZW1lbnRSZXBhaW50Q291bnQoKTsKICAgICBpdC0+c2Vjb25kLnNldEJhY2tCdWZmZXIodGFyZ2V0
UmVjdCwgc291cmNlUmVjdCwgYmFja0J1ZmZlciwgb2Zmc2V0KTsKIH0KIApAQCAtOTUsNiArOTYs
MTQgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBMYXllckJhY2tpbmdTdG9yZTo6dGV4dHVy
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4oKTsKIH0KIAor
c3RhdGljIGJvb2wgc2hvdWxkU2hvd1RpbGVEZWJ1Z1Zpc3VhbHMoKQoreworI2lmIFBMQVRGT1JN
KFFUKQorICAgIHJldHVybiAocWdldGVudigiUVRfV0VCS0lUX1NIT1dfQ09NUE9TSVRJTkdfREVC
VUdfVklTVUFMUyIpID09ICIxIik7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZv
aWQgTGF5ZXJCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIq
IHRleHR1cmVNYXBwZXIsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSog
bWFzaykKIHsKICAgICBWZWN0b3I8VGV4dHVyZU1hcHBlclRpbGUqPiB0aWxlc1RvUGFpbnQ7CkBA
IC0xMjYsOCArMTM1LDE1IEBAIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJl
TWFwcGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGNvbnN0CiAgICAgLy8gcGFzc2lu
Zy4gRm9yIG5vdyB3ZSBqdXN0ICJlc3RpbWF0ZSIgc2luY2UgTGF5ZXJCYWNraW5nU3RvcmUgZG9l
c24ndCBrZWVwIGluZm9ybWF0aW9uIGFib3V0CiAgICAgLy8gdGhlIHRvdGFsIHRpbGVkIHN1cmZh
Y2UgcmVjdCBhdCB0aGUgbW9tZW50LgogICAgIHVuc2lnbmVkIGVkZ2VzRXhwb3NlZCA9IG1fdGls
ZXMuc2l6ZSgpID4gMSA/IFRleHR1cmVNYXBwZXI6Ok5vRWRnZXMgOiBUZXh0dXJlTWFwcGVyOjpB
bGxFZGdlczsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRpbGVzVG9QYWludC5zaXplKCk7
ICsraSkKLSAgICAgICAgdGlsZXNUb1BhaW50W2ldLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFu
c2Zvcm0sIG9wYWNpdHksIG1hc2ssIGVkZ2VzRXhwb3NlZCk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0aWxlc1RvUGFpbnQuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgVGV4dHVyZU1hcHBl
clRpbGUqIHRpbGUgPSB0aWxlc1RvUGFpbnRbaV07CisgICAgICAgIHRpbGUtPnBhaW50KHRleHR1
cmVNYXBwZXIsIHRyYW5zZm9ybSwgb3BhY2l0eSwgbWFzaywgZWRnZXNFeHBvc2VkKTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgc2hvdWxkRGVidWcgPSBzaG91bGRTaG93VGlsZURlYnVnVmlzdWFscygp
OworICAgICAgICBpZiAoIXNob3VsZERlYnVnKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIHRleHR1cmVNYXBwZXItPmRyYXdCb3JkZXIoUUNvbG9yKFF0OjpyZWQpLCAyLCB0aWxlLT5y
ZWN0KCksIHRyYW5zZm9ybSk7CisgICAgICAgIHRleHR1cmVNYXBwZXItPmRyYXdSZXBhaW50Q291
bnRlcihzdGF0aWNfY2FzdDxMYXllckJhY2tpbmdTdG9yZVRpbGUqPih0aWxlKS0+cmVwYWludENv
dW50KCksIDgsIHRpbGVzVG9QYWludFtpXS0+cmVjdCgpLmxvY2F0aW9uKCksIHRyYW5zZm9ybSk7
CisgICAgfQogfQogCiB2b2lkIExheWVyQmFja2luZ1N0b3JlOjpjb21taXRUaWxlT3BlcmF0aW9u
cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3RleG1hcC9MYXllckJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3RleG1hcC9MYXllckJhY2tpbmdTdG9yZS5oCmluZGV4IGEzZTIxOWIwNDE1YWQz
Zjg3YTEzMjZlZDMwNzBiNTI5YWQ1ZTZjNzEuLjZhNGY1MTNhMDViODkxMzk4MDkzZTY3YWJmNTEx
OTNhMWE5NmU1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy90ZXhtYXAv
TGF5ZXJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvdGV4bWFw
L0xheWVyQmFja2luZ1N0b3JlLmgKQEAgLTM1LDEwICszNSwxMyBAQCBwdWJsaWM6CiAgICAgTGF5
ZXJCYWNraW5nU3RvcmVUaWxlKGZsb2F0IHNjYWxlID0gMSkKICAgICAgICAgOiBUZXh0dXJlTWFw
cGVyVGlsZShXZWJDb3JlOjpGbG9hdFJlY3QoKSkKICAgICAgICAgLCBtX3NjYWxlKHNjYWxlKQor
ICAgICAgICAsIG1fcmVwYWludENvdW50KDApCiAgICAgewogICAgIH0KIAogICAgIGlubGluZSBm
bG9hdCBzY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGU7IH0KKyAgICBpbmxpbmUgdm9pZCBp
bmNyZW1lbnRSZXBhaW50Q291bnQoKSB7ICsrbV9yZXBhaW50Q291bnQ7IH0KKyAgICBpbmxpbmUg
aW50IHJlcGFpbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludENvdW50OyB9CiAgICAg
dm9pZCBzd2FwQnVmZmVycyhXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKik7CiAgICAgdm9pZCBzZXRC
YWNrQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgUGFzc1JlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBidWZmZXIsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50Jik7CiAKQEAgLTQ4LDYgKzUxLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRS
ZWN0IG1fdGFyZ2V0UmVjdDsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3N1cmZhY2VPZmZzZXQ7
CiAgICAgZmxvYXQgbV9zY2FsZTsKKyAgICBpbnQgbV9yZXBhaW50Q291bnQ7CiB9OwogCiBjbGFz
cyBMYXllckJhY2tpbmdTdG9yZSA6IHB1YmxpYyBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQmFja2lu
Z1N0b3JlIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>