<?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>91511</bug_id>
          
          <creation_ts>2012-07-17 10:00:34 -0700</creation_ts>
          <short_desc>[Mac] Make WebDataSourcePrivate lighter</short_desc>
          <delta_ts>2012-08-05 21:18:34 -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>WebKit Misc.</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>671338</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-17 10:00:34 -0700</bug_when>
    <thetext>Improving WebPreferencesPrivate initialization had a nice outcome.
Should WebDataSourcePrivate follow the same path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671359</commentid>
    <comment_count>1</comment_count>
      <attachid>152778</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-17 10:24:17 -0700</bug_when>
    <thetext>Created attachment 152778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671673</commentid>
    <comment_count>2</comment_count>
      <attachid>152853</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-17 15:40:22 -0700</bug_when>
    <thetext>Created attachment 152853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671682</commentid>
    <comment_count>3</comment_count>
      <attachid>152853</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-17 15:49:30 -0700</bug_when>
    <thetext>Comment on attachment 152853
Patch

Attachment 152853 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13280277</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671735</commentid>
    <comment_count>4</comment_count>
      <attachid>152871</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-17 16:32:03 -0700</bug_when>
    <thetext>Created attachment 152871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671762</commentid>
    <comment_count>5</comment_count>
      <attachid>152871</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-17 17:00:34 -0700</bug_when>
    <thetext>Comment on attachment 152871
Patch

Attachment 152871 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13282294</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671862</commentid>
    <comment_count>6</comment_count>
      <attachid>152899</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-17 18:41:29 -0700</bug_when>
    <thetext>Created attachment 152899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671998</commentid>
    <comment_count>7</comment_count>
      <attachid>152899</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-17 22:47:46 -0700</bug_when>
    <thetext>Comment on attachment 152899
Patch

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

&gt; Source/WebKit/mac/WebView/WebDataSource.mm:129
&gt; +    JSC::initializeThreading();
&gt; +    WTF::initializeMainThreadToProcessMainThread();
&gt; +    WebCore::RunLoop::initializeMainRunLoop();
&gt; +    WebCoreObjCFinalizeOnMainThread(self);

Joe:

if (self != [XXX class])
    return;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672715</commentid>
    <comment_count>8</comment_count>
      <attachid>152899</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-07-18 13:43:33 -0700</bug_when>
    <thetext>Comment on attachment 152899
Patch

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

&gt; Source/WebKit/mac/WebView/WebDataSource.h:40
&gt; +typedef struct WebDataSourcePrivate WebDataSourcePrivate;

I think other classes (in other frameworks) just use void * for internal classes. I like that better.

&gt; Source/WebKit/mac/WebView/WebDataSource.mm:70
&gt; +struct WebDataSourcePrivate

And then you could make this a proper class which is nicer :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672965</commentid>
    <comment_count>9</comment_count>
      <attachid>153139</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-18 16:37:01 -0700</bug_when>
    <thetext>Created attachment 153139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672978</commentid>
    <comment_count>10</comment_count>
      <attachid>153139</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-07-18 16:54:29 -0700</bug_when>
    <thetext>Comment on attachment 153139
Patch

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

&gt; Source/WebKit/mac/WebView/WebDataSource.mm:93
&gt; +static inline WebDataSourcePrivate* castPrivate(void* privateAttribute)
&gt;  {

We usually call these cast functions &quot;toFoo&quot; so toPrivate(void* ptr) would be better here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673050</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-18 18:19:56 -0700</bug_when>
    <thetext>Committed r123057: &lt;http://trac.webkit.org/changeset/123057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673170</commentid>
    <comment_count>12</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-07-18 22:21:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/11909640&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687741</commentid>
    <comment_count>13</comment_count>
      <attachid>153139</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-08-05 21:18:34 -0700</bug_when>
    <thetext>Comment on attachment 153139
Patch

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

&gt; Source/WebKit/mac/WebView/WebDataSource.mm:77
&gt; +    WebDataSourcePrivate(PassRefPtr&lt;WebDocumentLoaderMac&gt; loader)
&gt; +        : loader(loader)
&gt; +    {
&gt; +        ASSERT(this-&gt;loader);
&gt; +    }

Looks like this missed initializing the BOOL members.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152778</attachid>
            <date>2012-07-17 10:24:17 -0700</date>
            <delta_ts>2012-07-17 15:40:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91511-20120717102416.patch</filename>
            <type>text/plain</type>
            <size>8928</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYjk5NGI3MDAw
NWQyZTEzZTViMDJhN2JhMGNiYzRjZGRlMTQ0YmZiYy4uYTJkOWYxYTU2YTljYWFiMDhiODY0MWZj
NWRlYmFkMjM2NGIxZDdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEy
LTA3LTE3ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIE1ha2UgV2ViRGF0YVNvdXJjZVByaXZhdGUgbGlnaHRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1MTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5o
OgorICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkRhdGFT
b3VyY2VQcml2YXRlKToKKyAgICAgICAgKFdlYkRhdGFTb3VyY2VQcml2YXRlOjpXZWJEYXRhU291
cmNlUHJpdmF0ZSk6CisgICAgICAgIChXZWJEYXRhU291cmNlUHJpdmF0ZTo6fldlYkRhdGFTb3Vy
Y2VQcml2YXRlKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfc2V0UmVwcmVzZW50YXRpb246
XSk6CisgICAgICAgICgrW1dlYkRhdGFTb3VyY2UgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtX
ZWJEYXRhU291cmNlIF9hZGRTdWJmcmFtZUFyY2hpdmVzOl0pOgorICAgICAgICAoLVtXZWJEYXRh
U291cmNlIF90cmFuc2ZlckFwcGxpY2F0aW9uQ2FjaGU6XSk6CisgICAgICAgICgtW1dlYkRhdGFT
b3VyY2UgX3NldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQ6XSk6CisgICAgICAgICgtW1dlYkRh
dGFTb3VyY2UgX2RvY3VtZW50RnJhZ21lbnRXaXRoQXJjaGl2ZTpdKToKKyAgICAgICAgKC1bV2Vi
RGF0YVNvdXJjZSBfaW5pdFdpdGhEb2N1bWVudExvYWRlcjpdKToKKyAgICAgICAgKC1bV2ViRGF0
YVNvdXJjZSBkZWFsbG9jXSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgZmluYWxpemVdKToK
KyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSByZXByZXNlbnRhdGlvbl0pOgorCiAyMDEyLTA3LTE3
ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrZ2FsYXRhZ2VAZ21haWwuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IHJlZmFjdG9yIEluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVu
ZCgpIHRvIGFjY2VwdCBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5oCmluZGV4IDFmZmQzMzk4YThmY2QxNDc0ZmYyM2VkYjJh
YTE2Yzk4NDVlZDMwMjMuLjg2OTY2ZGIwNmY1NWU3ZTNjMzdmMzdiNGQ2ODUxZjA3NTJhZDlkNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5oCkBAIC0zNSw5ICsz
NSw5IEBACiBAY2xhc3MgTlNVUkxSZXF1ZXN0OwogQGNsYXNzIE5TVVJMUmVzcG9uc2U7CiBAY2xh
c3MgV2ViQXJjaGl2ZTsKLUBjbGFzcyBXZWJEYXRhU291cmNlUHJpdmF0ZTsKIEBjbGFzcyBXZWJG
cmFtZTsKIEBjbGFzcyBXZWJSZXNvdXJjZTsKK3R5cGVkZWYgc3RydWN0IFdlYkRhdGFTb3VyY2VQ
cml2YXRlIFdlYkRhdGFTb3VyY2VQcml2YXRlOwogCiAvKiEKICAgICBAY2xhc3MgV2ViRGF0YVNv
dXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNl
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCmluZGV4IGQ5
MTI1ZjcwZjUwMjZkNjRiYmIwMDM2ZmI2YWQ3N2JlMzQ4ZDM2MDguLjcwMzE0YzhlMjY4ZDQ5YWMy
NDZiNzgzZDU1OTRjNjg1NTAwY2ZiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkRhdGFTb3VyY2UubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1
LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYyLDYy
ICs2MiwzMiBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1w
b3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBv
cnQgPHd0Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLUBpbnRlcmZhY2UgV2ViRGF0YVNvdXJjZVByaXZhdGUgOiBOU09i
amVjdCB7Ci1AcHVibGljCi0gICAgV2ViRG9jdW1lbnRMb2FkZXJNYWMqIGxvYWRlcjsKLSAgIAot
ICAgIGlkIDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9uPiByZXByZXNlbnRhdGlvbjsKLSAgICAK
LSAgICBCT09MIHJlcHJlc2VudGF0aW9uRmluaXNoZWRMb2FkaW5nOwotICAgIEJPT0wgaW5jbHVk
ZWRJbldlYktpdFN0YXRpc3RpY3M7Ci19Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXZWJEYXRh
U291cmNlUHJpdmF0ZSAKLQotKyAodm9pZClpbml0aWFsaXplCitzdHJ1Y3QgV2ViRGF0YVNvdXJj
ZVByaXZhdGUKIHsKLSAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKLSAgICBXVEY6Omlu
aXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwotICAgIFdlYkNvcmVPYmpDRmluYWxpemVP
bk1haW5UaHJlYWQoc2VsZik7Ci19Ci0KLS0gKHZvaWQpZGVhbGxvYwotewotICAgIGlmIChXZWJD
b3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbV2ViRGF0YVNvdXJjZVByaXZh
dGUgY2xhc3NdLCBzZWxmKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKGxvYWRlcik7
Ci0gICAgaWYgKGxvYWRlcikgewotICAgICAgICBBU1NFUlQoIWxvYWRlci0+aXNMb2FkaW5nKCkp
OwotICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2UoKTsKLSAgICAgICAgbG9hZGVyLT5k
ZXJlZigpOworcHVibGljOgorICAgIFdlYkRhdGFTb3VyY2VQcml2YXRlKFBhc3NSZWZQdHI8V2Vi
RG9jdW1lbnRMb2FkZXJNYWM+IGxvYWRlcikKKyAgICAgICAgOiBsb2FkZXIobG9hZGVyKQorICAg
IHsKKyAgICAgICAgQVNTRVJUKGxvYWRlcik7CiAgICAgfQotICAgIAotICAgIFtyZXByZXNlbnRh
dGlvbiByZWxlYXNlXTsKLQotICAgIFtzdXBlciBkZWFsbG9jXTsKLX0KLQotLSAodm9pZClmaW5h
bGl6ZQotewotICAgIEFTU0VSVF9NQUlOX1RIUkVBRCgpOwotCi0gICAgQVNTRVJUKGxvYWRlcik7
Ci0gICAgaWYgKGxvYWRlcikgewotICAgICAgICBBU1NFUlQoIWxvYWRlci0+aXNMb2FkaW5nKCkp
OwotICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2UoKTsKLSAgICAgICAgbG9hZGVyLT5k
ZXJlZigpOworICAgIH5XZWJEYXRhU291cmNlUHJpdmF0ZSgpCisgICAgeworICAgICAgICBpZiAo
bG9hZGVyKSB7CisgICAgICAgICAgICBBU1NFUlQoIWxvYWRlci0+aXNMb2FkaW5nKCkpOworICAg
ICAgICAgICAgbG9hZGVyLT5kZXRhY2hEYXRhU291cmNlKCk7CisgICAgICAgIH0KICAgICB9CiAK
LSAgICBbc3VwZXIgZmluYWxpemVdOwotfQotCi1AZW5kCisgICAgUmVmUHRyPFdlYkRvY3VtZW50
TG9hZGVyTWFjPiBsb2FkZXI7CisgICAgUmV0YWluUHRyPGlkIDxXZWJEb2N1bWVudFJlcHJlc2Vu
dGF0aW9uPiA+IHJlcHJlc2VudGF0aW9uOworICAgIEJPT0wgcmVwcmVzZW50YXRpb25GaW5pc2hl
ZExvYWRpbmc7CisgICAgQk9PTCBpbmNsdWRlZEluV2ViS2l0U3RhdGlzdGljczsKK307CiAKIEBp
bnRlcmZhY2UgV2ViRGF0YVNvdXJjZSAoV2ViRmlsZUludGVybmFsKQogQGVuZApAQCAtMTI2LDgg
Kzk2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIC0gKHZvaWQpX3NldFJlcHJlc2Vu
dGF0aW9uOihpZDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9uPilyZXByZXNlbnRhdGlvbgogewot
ICAgIFtfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24gcmVsZWFzZV07Ci0gICAgX3ByaXZhdGUtPnJl
cHJlc2VudGF0aW9uID0gW3JlcHJlc2VudGF0aW9uIHJldGFpbl07CisgICAgX3ByaXZhdGUtPnJl
cHJlc2VudGF0aW9uID0gcmVwcmVzZW50YXRpb247CiAgICAgX3ByaXZhdGUtPnJlcHJlc2VudGF0
aW9uRmluaXNoZWRMb2FkaW5nID0gTk87CiB9CiAKQEAgLTE1Miw2ICsxMjEsMTQgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5
cGVzLCBDbGFzcyBvYmpDQ2wKIAogQGltcGxlbWVudGF0aW9uIFdlYkRhdGFTb3VyY2UgKFdlYlBy
aXZhdGUpCiAKKysgKHZvaWQpaW5pdGlhbGl6ZQoreworICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVh
ZGluZygpOworICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFk
KCk7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisgICAg
V2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKK30KKwogLSAoTlNFcnJvciAq
KV9tYWluRG9jdW1lbnRFcnJvcgogewogICAgIHJldHVybiBfcHJpdmF0ZS0+bG9hZGVyLT5tYWlu
RG9jdW1lbnRFcnJvcigpOwpAQCAtMTYwLDEzICsxMzcsMTAgQEAgc3RhdGljIGlubGluZSB2b2lk
IGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBv
YmpDQ2wKIC0gKHZvaWQpX2FkZFN1YmZyYW1lQXJjaGl2ZXM6KE5TQXJyYXkgKilzdWJmcmFtZUFy
Y2hpdmVzCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgU1BJIGlzIHBvb3IsIHBvb3IgZGVzaWduLiAg
Q2FuIHdlIGNvbWUgdXAgd2l0aCBhbm90aGVyIHNvbHV0aW9uIGZvciB0aG9zZSB3aG8gbmVlZCBp
dD8KLSAgICBEb2N1bWVudExvYWRlciogbG9hZGVyID0gW3NlbGYgX2RvY3VtZW50TG9hZGVyXTsK
LSAgICBBU1NFUlQobG9hZGVyKTsKLSAgICAKICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3Ig
PSBbc3ViZnJhbWVBcmNoaXZlcyBvYmplY3RFbnVtZXJhdG9yXTsKICAgICBXZWJBcmNoaXZlICph
cmNoaXZlOwogICAgIHdoaWxlICgoYXJjaGl2ZSA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAh
PSBuaWwpCi0gICAgICAgIGxvYWRlci0+YWRkQWxsQXJjaGl2ZVJlc291cmNlcyhbYXJjaGl2ZSBf
Y29yZUxlZ2FjeVdlYkFyY2hpdmVdKTsKKyAgICAgICAgX3ByaXZhdGUtPmxvYWRlci0+YWRkQWxs
QXJjaGl2ZVJlc291cmNlcyhbYXJjaGl2ZSBfY29yZUxlZ2FjeVdlYkFyY2hpdmVdKTsKIH0KIAog
LSAoTlNGaWxlV3JhcHBlciAqKV9maWxlV3JhcHBlckZvclVSTDooTlNVUkwgKilVUkwKQEAgLTE5
NywyNCArMTcxLDIwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011
dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAKIC0gKEJPT0wpX3RyYW5z
ZmVyQXBwbGljYXRpb25DYWNoZTooTlNTdHJpbmcqKWRlc3RpbmF0aW9uQnVuZGxlSWRlbnRpZmll
cgogewotICAgIERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBbc2VsZiBfZG9jdW1lbnRMb2FkZXJd
OwotICAgIAotICAgIGlmICghbG9hZGVyKQorICAgIGlmICghX3ByaXZhdGUtPmxvYWRlcikKICAg
ICAgICAgcmV0dXJuIE5POwogICAgICAgICAKICAgICBOU1N0cmluZyAqY2FjaGVEaXIgPSBbTlNT
dHJpbmcgX3dlYmtpdF9sb2NhbENhY2hlRGlyZWN0b3J5V2l0aEJ1bmRsZUlkZW50aWZpZXI6ZGVz
dGluYXRpb25CdW5kbGVJZGVudGlmaWVyXTsKICAgICAKLSAgICByZXR1cm4gQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2U6OnN0b3JlQ29weU9mQ2FjaGUoY2FjaGVEaXIsIGxvYWRlci0+YXBwbGljYXRp
b25DYWNoZUhvc3QoKSk7CisgICAgcmV0dXJuIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9y
ZUNvcHlPZkNhY2hlKGNhY2hlRGlyLCBfcHJpdmF0ZS0+bG9hZGVyLT5hcHBsaWNhdGlvbkNhY2hl
SG9zdCgpKTsKIH0KIAogLSAodm9pZClfc2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZDooQk9P
TClmbGFnCiB7Ci0gICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IFtzZWxmIF9kb2N1bWVudExv
YWRlcl07Ci0KLSAgICBpZiAoIWxvYWRlcikKKyAgICBpZiAoIV9wcml2YXRlLT5sb2FkZXIpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGxvYWRlci0+c2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9h
ZChmbGFnKTsKKyAgICBfcHJpdmF0ZS0+bG9hZGVyLT5zZXREZWZlck1haW5SZXNvdXJjZURhdGFM
b2FkKGZsYWcpOwogfQogCiBAZW5kCkBAIC0yODksOCArMjU5LDggQEAgc3RhdGljIGlubGluZSB2
b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFz
cyBvYmpDQ2wKICAgICAgICAgaWYgKFtXZWJWaWV3IGNhblNob3dNSU1FVHlwZUFzSFRNTDpNSU1F
VHlwZV0pIHsKICAgICAgICAgICAgIE5TU3RyaW5nICptYXJrdXBTdHJpbmcgPSBbW05TU3RyaW5n
IGFsbG9jXSBpbml0V2l0aERhdGE6W21haW5SZXNvdXJjZSBkYXRhXSBlbmNvZGluZzpOU1VURjhT
dHJpbmdFbmNvZGluZ107CiAgICAgICAgICAgICAvLyBGSVhNRTogc2VlbXMgcG9vciBmb3JtIHRv
IGRvIHRoaXMgYXMgYSBzaWRlIGVmZmVjdCBvZiBnZXR0aW5nIGEgZG9jdW1lbnQgZnJhZ21lbnQK
LSAgICAgICAgICAgIGlmIChEb2N1bWVudExvYWRlciogbG9hZGVyID0gW3NlbGYgX2RvY3VtZW50
TG9hZGVyXSkKLSAgICAgICAgICAgICAgICBsb2FkZXItPmFkZEFsbEFyY2hpdmVSZXNvdXJjZXMo
W2FyY2hpdmUgX2NvcmVMZWdhY3lXZWJBcmNoaXZlXSk7CisgICAgICAgICAgICBpZiAoX3ByaXZh
dGUtPmxvYWRlcikKKyAgICAgICAgICAgICAgICBfcHJpdmF0ZS0+bG9hZGVyLT5hZGRBbGxBcmNo
aXZlUmVzb3VyY2VzKFthcmNoaXZlIF9jb3JlTGVnYWN5V2ViQXJjaGl2ZV0pOwogCiAgICAgICAg
ICAgICBET01Eb2N1bWVudEZyYWdtZW50ICpmcmFnbWVudCA9IFtbc2VsZiB3ZWJGcmFtZV0gX2Rv
Y3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5nOm1hcmt1cFN0cmluZyBiYXNlVVJMU3RyaW5n
OltbbWFpblJlc291cmNlIFVSTF0gX3dlYl9vcmlnaW5hbERhdGFBc1N0cmluZ11dOwogICAgICAg
ICAgICAgW21hcmt1cFN0cmluZyByZWxlYXNlXTsKQEAgLTM3MywxMCArMzQzLDkgQEAgc3RhdGlj
IGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5
cGVzLCBDbGFzcyBvYmpDQ2wKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2Vs
ZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAKLSAgICBfcHJpdmF0ZSA9IFtbV2ViRGF0YVNv
dXJjZVByaXZhdGUgYWxsb2NdIGluaXRdOwotICAgIAotICAgIF9wcml2YXRlLT5sb2FkZXIgPSBs
b2FkZXIubGVha1JlZigpOworCisgICAgQVNTRVJUKGxvYWRlcik7CisgICAgX3ByaXZhdGUgPSBu
ZXcgV2ViRGF0YVNvdXJjZVByaXZhdGUobG9hZGVyKTsKICAgICAgICAgCiAgICAgTE9HKExvYWRp
bmcsICJjcmVhdGluZyBkYXRhc291cmNlIGZvciAlQCIsIHN0YXRpY19jYXN0PE5TVVJMICo+KF9w
cml2YXRlLT5sb2FkZXItPnJlcXVlc3QoKS51cmwoKSkpOwogCkBAIC0zOTcsMTkgKzM2NiwyNiBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFy
eSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAgICBpZiAo
V2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW1dlYkRhdGFTb3VyY2Ug
Y2xhc3NdLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKF9wcml2YXRlICYmIF9w
cml2YXRlLT5pbmNsdWRlZEluV2ViS2l0U3RhdGlzdGljcykKICAgICAgICAgLS1XZWJEYXRhU291
cmNlQ291bnQ7CiAKLSAgICBbX3ByaXZhdGUgcmVsZWFzZV07CisgICAgZGVsZXRlIF9wcml2YXRl
OwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCiAtICh2b2lkKWZpbmFsaXplCiB7CisgICAg
QVNTRVJUX01BSU5fVEhSRUFEKCk7CisKICAgICBpZiAoX3ByaXZhdGUgJiYgX3ByaXZhdGUtPmlu
Y2x1ZGVkSW5XZWJLaXRTdGF0aXN0aWNzKQogICAgICAgICAtLVdlYkRhdGFTb3VyY2VDb3VudDsK
IAorICAgIGRlbGV0ZSBfcHJpdmF0ZTsKKwogICAgIFtzdXBlciBmaW5hbGl6ZV07CiB9CiAKQEAg
LTQyMyw3ICszOTksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNN
dXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiAtIChpZCA8V2ViRG9j
dW1lbnRSZXByZXNlbnRhdGlvbj4pcmVwcmVzZW50YXRpb24KIHsKLSAgICByZXR1cm4gX3ByaXZh
dGUtPnJlcHJlc2VudGF0aW9uOworICAgIHJldHVybiBfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24u
Z2V0KCk7CiB9CiAKIC0gKFdlYkZyYW1lICopd2ViRnJhbWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152853</attachid>
            <date>2012-07-17 15:40:22 -0700</date>
            <delta_ts>2012-07-17 16:32:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91511-20120717154021.patch</filename>
            <type>text/plain</type>
            <size>10240</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYjk5NGI3MDAw
NWQyZTEzZTViMDJhN2JhMGNiYzRjZGRlMTQ0YmZiYy4uNDlkZjI4NTVjMmYzNTZkZjVjYjg0MzAz
NjQ3MWUwMzFhNDFlYjk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEy
LTA3LTE3ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIE1ha2UgV2ViRGF0YVNvdXJjZVByaXZhdGUgbGlnaHRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1MTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYkRhdGFTb3VyY2VQcml2YXRl
IGEgc2ltcGxlIEMrKyBzdHJ1Y3QgYW5kIHVzZSBzbWFydCBwb2ludGVycyBmb3IgbWVtb3J5IG1h
bmFnZW1lbnQuCisKKyAgICAgICAgU2luY2UgdGhlICJsb2FkZXIiIGF0dHJpYnV0ZSBpcyBvbmx5
IHNldCBvbiBpbml0aWFsaXphdGlvbiwgYWxsIHRoZSBhc3NlcnRpb25zIHNwcmVhZCBpbgorICAg
ICAgICB2YXJpb3VzIGZ1bmN0aW9uIGFyZSByZW1vdmVkIGluIGZhdm9yIG9mIGFzc2VydGlvbnMg
b24gaW5pdGlhbGl6YXRpb24uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgIChXZWJEYXRhU291
cmNlUHJpdmF0ZSk6CisgICAgICAgIChXZWJEYXRhU291cmNlUHJpdmF0ZTo6V2ViRGF0YVNvdXJj
ZVByaXZhdGUpOgorICAgICAgICAoV2ViRGF0YVNvdXJjZVByaXZhdGU6On5XZWJEYXRhU291cmNl
UHJpdmF0ZSk6CisgICAgICAgIFVzZSBhIHN0cnVjdCBpbnN0ZWFkIG9mIGEgT2JqZWN0aXZlLUMg
b2JqZWN0IGZvciBXZWJEYXRhU291cmNlUHJpdmF0ZS4KKyAgICAgICAgVXNlIHNtYXJ0IHBvaW50
ZXJzIGluc3RlYWQgb2YgcmVmIGNvdW50aW5nIG1hbnVhbGx5LgorCisgICAgICAgICgtW1dlYkRh
dGFTb3VyY2UgX3NldFJlcHJlc2VudGF0aW9uOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNl
IF9hZGRTdWJmcmFtZUFyY2hpdmVzOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF90cmFu
c2ZlckFwcGxpY2F0aW9uQ2FjaGU6XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX3NldERl
ZmVyTWFpblJlc291cmNlRGF0YUxvYWQ6XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2Rv
Y3VtZW50RnJhZ21lbnRXaXRoQXJjaGl2ZTpdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBf
aW5pdFdpdGhEb2N1bWVudExvYWRlcjpdKToKKworICAgICAgICAoK1tXZWJEYXRhU291cmNlIGlu
aXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBkZWFsbG9jXSk6CisgICAgICAg
ICgtW1dlYkRhdGFTb3VyY2UgZmluYWxpemVdKToKKyAgICAgICAgV2ViRGF0YVNvdXJjZSB0YWtl
cyB0aGUgc3BlY2lhbCBpbml0aWFsaXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gdGhhdCB3YXMgZG9u
ZSBpbiBXZWJEYXRhU291cmNlUHJpdmF0ZS4KKworICAgICAgICAoLVtXZWJEYXRhU291cmNlIHJl
cHJlc2VudGF0aW9uXSk6CisKIDIwMTItMDctMTcgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWtnYWxh
dGFnZUBnbWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVmYWN0b3IgSW5zcGVj
dG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkgdG8gYWNjZXB0IEluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0
YVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLmgKaW5k
ZXggMWZmZDMzOThhOGZjZDE0NzRmZjIzZWRiMmFhMTZjOTg0NWVkMzAyMy4uZDJiYWY4YWRjN2Nk
ZWNhYWI3MDFiOGUwZGU5ZDkxZWViZWEyOTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJEYXRhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJEYXRhU291cmNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDEyIEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNSw5ICszNSw5IEBACiBAY2xhc3MgTlNVUkxSZXF1ZXN0OwogQGNsYXNzIE5TVVJM
UmVzcG9uc2U7CiBAY2xhc3MgV2ViQXJjaGl2ZTsKLUBjbGFzcyBXZWJEYXRhU291cmNlUHJpdmF0
ZTsKIEBjbGFzcyBXZWJGcmFtZTsKIEBjbGFzcyBXZWJSZXNvdXJjZTsKK3R5cGVkZWYgc3RydWN0
IFdlYkRhdGFTb3VyY2VQcml2YXRlIFdlYkRhdGFTb3VyY2VQcml2YXRlOwogCiAvKiEKICAgICBA
Y2xhc3MgV2ViRGF0YVNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291
cmNlLm1tCmluZGV4IGQ5MTI1ZjcwZjUwMjZkNjRiYmIwMDM2ZmI2YWQ3N2JlMzQ4ZDM2MDguLmRk
MGM0MTU0M2M2Nzk4NTc2Y2RhNzMxNzcyOTg0OGU4YTM0OGU0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTYyLDYyICs2MiwzMiBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLUBpbnRlcmZhY2UgV2ViRGF0YVNvdXJj
ZVByaXZhdGUgOiBOU09iamVjdCB7Ci1AcHVibGljCi0gICAgV2ViRG9jdW1lbnRMb2FkZXJNYWMq
IGxvYWRlcjsKLSAgIAotICAgIGlkIDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9uPiByZXByZXNl
bnRhdGlvbjsKLSAgICAKLSAgICBCT09MIHJlcHJlc2VudGF0aW9uRmluaXNoZWRMb2FkaW5nOwot
ICAgIEJPT0wgaW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3M7Ci19Ci1AZW5kCi0KLUBpbXBsZW1l
bnRhdGlvbiBXZWJEYXRhU291cmNlUHJpdmF0ZSAKLQotKyAodm9pZClpbml0aWFsaXplCitzdHJ1
Y3QgV2ViRGF0YVNvdXJjZVByaXZhdGUKIHsKLSAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmco
KTsKLSAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwot
ICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwotICAgIFdlYkNv
cmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7Ci19Ci0KLS0gKHZvaWQpZGVhbGxvYwot
ewotICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbV2Vi
RGF0YVNvdXJjZVByaXZhdGUgY2xhc3NdLCBzZWxmKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
QVNTRVJUKGxvYWRlcik7Ci0gICAgaWYgKGxvYWRlcikgewotICAgICAgICBBU1NFUlQoIWxvYWRl
ci0+aXNMb2FkaW5nKCkpOwotICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2UoKTsKLSAg
ICAgICAgbG9hZGVyLT5kZXJlZigpOworcHVibGljOgorICAgIFdlYkRhdGFTb3VyY2VQcml2YXRl
KFBhc3NSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXJNYWM+IGxvYWRlcikKKyAgICAgICAgOiBsb2Fk
ZXIobG9hZGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHRoaXMtPmxvYWRlcik7CiAgICAgfQot
ICAgIAotICAgIFtyZXByZXNlbnRhdGlvbiByZWxlYXNlXTsKLQotICAgIFtzdXBlciBkZWFsbG9j
XTsKLX0KLQotLSAodm9pZClmaW5hbGl6ZQotewotICAgIEFTU0VSVF9NQUlOX1RIUkVBRCgpOwot
Ci0gICAgQVNTRVJUKGxvYWRlcik7Ci0gICAgaWYgKGxvYWRlcikgewotICAgICAgICBBU1NFUlQo
IWxvYWRlci0+aXNMb2FkaW5nKCkpOwotICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2Uo
KTsKLSAgICAgICAgbG9hZGVyLT5kZXJlZigpOworICAgIH5XZWJEYXRhU291cmNlUHJpdmF0ZSgp
CisgICAgeworICAgICAgICBpZiAobG9hZGVyKSB7CisgICAgICAgICAgICBBU1NFUlQoIWxvYWRl
ci0+aXNMb2FkaW5nKCkpOworICAgICAgICAgICAgbG9hZGVyLT5kZXRhY2hEYXRhU291cmNlKCk7
CisgICAgICAgIH0KICAgICB9CiAKLSAgICBbc3VwZXIgZmluYWxpemVdOwotfQotCi1AZW5kCisg
ICAgUmVmUHRyPFdlYkRvY3VtZW50TG9hZGVyTWFjPiBsb2FkZXI7CisgICAgUmV0YWluUHRyPGlk
IDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9uPiA+IHJlcHJlc2VudGF0aW9uOworICAgIEJPT0wg
cmVwcmVzZW50YXRpb25GaW5pc2hlZExvYWRpbmc7CisgICAgQk9PTCBpbmNsdWRlZEluV2ViS2l0
U3RhdGlzdGljczsKK307CiAKIEBpbnRlcmZhY2UgV2ViRGF0YVNvdXJjZSAoV2ViRmlsZUludGVy
bmFsKQogQGVuZApAQCAtMTI2LDggKzk2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IC0gKHZvaWQpX3NldFJlcHJlc2VudGF0aW9uOihpZDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9u
PilyZXByZXNlbnRhdGlvbgogewotICAgIFtfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24gcmVsZWFz
ZV07Ci0gICAgX3ByaXZhdGUtPnJlcHJlc2VudGF0aW9uID0gW3JlcHJlc2VudGF0aW9uIHJldGFp
bl07CisgICAgX3ByaXZhdGUtPnJlcHJlc2VudGF0aW9uID0gcmVwcmVzZW50YXRpb247CiAgICAg
X3ByaXZhdGUtPnJlcHJlc2VudGF0aW9uRmluaXNoZWRMb2FkaW5nID0gTk87CiB9CiAKQEAgLTE1
Miw2ICsxMjEsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0
YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKIAogQGltcGxlbWVudGF0aW9u
IFdlYkRhdGFTb3VyY2UgKFdlYlByaXZhdGUpCiAKKysgKHZvaWQpaW5pdGlhbGl6ZQoreworICAg
IEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJl
YWRUb1Byb2Nlc3NNYWluVGhyZWFkKCk7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6aW5pdGlhbGl6
ZU1haW5SdW5Mb29wKCk7CisgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxm
KTsKK30KKwogLSAoTlNFcnJvciAqKV9tYWluRG9jdW1lbnRFcnJvcgogewogICAgIHJldHVybiBf
cHJpdmF0ZS0+bG9hZGVyLT5tYWluRG9jdW1lbnRFcnJvcigpOwpAQCAtMTYwLDEzICsxMzcsMTAg
QEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25h
cnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKIC0gKHZvaWQpX2FkZFN1YmZyYW1lQXJjaGl2ZXM6
KE5TQXJyYXkgKilzdWJmcmFtZUFyY2hpdmVzCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgU1BJIGlz
IHBvb3IsIHBvb3IgZGVzaWduLiAgQ2FuIHdlIGNvbWUgdXAgd2l0aCBhbm90aGVyIHNvbHV0aW9u
IGZvciB0aG9zZSB3aG8gbmVlZCBpdD8KLSAgICBEb2N1bWVudExvYWRlciogbG9hZGVyID0gW3Nl
bGYgX2RvY3VtZW50TG9hZGVyXTsKLSAgICBBU1NFUlQobG9hZGVyKTsKLSAgICAKICAgICBOU0Vu
dW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbc3ViZnJhbWVBcmNoaXZlcyBvYmplY3RFbnVtZXJhdG9y
XTsKICAgICBXZWJBcmNoaXZlICphcmNoaXZlOwogICAgIHdoaWxlICgoYXJjaGl2ZSA9IFtlbnVt
ZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpCi0gICAgICAgIGxvYWRlci0+YWRkQWxsQXJjaGl2
ZVJlc291cmNlcyhbYXJjaGl2ZSBfY29yZUxlZ2FjeVdlYkFyY2hpdmVdKTsKKyAgICAgICAgX3By
aXZhdGUtPmxvYWRlci0+YWRkQWxsQXJjaGl2ZVJlc291cmNlcyhbYXJjaGl2ZSBfY29yZUxlZ2Fj
eVdlYkFyY2hpdmVdKTsKIH0KIAogLSAoTlNGaWxlV3JhcHBlciAqKV9maWxlV3JhcHBlckZvclVS
TDooTlNVUkwgKilVUkwKQEAgLTE5NywyNCArMTcxLDIwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBh
ZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2Jq
Q0NsCiAKIC0gKEJPT0wpX3RyYW5zZmVyQXBwbGljYXRpb25DYWNoZTooTlNTdHJpbmcqKWRlc3Rp
bmF0aW9uQnVuZGxlSWRlbnRpZmllcgogewotICAgIERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBb
c2VsZiBfZG9jdW1lbnRMb2FkZXJdOwotICAgIAotICAgIGlmICghbG9hZGVyKQorICAgIGlmICgh
X3ByaXZhdGUtPmxvYWRlcikKICAgICAgICAgcmV0dXJuIE5POwogICAgICAgICAKICAgICBOU1N0
cmluZyAqY2FjaGVEaXIgPSBbTlNTdHJpbmcgX3dlYmtpdF9sb2NhbENhY2hlRGlyZWN0b3J5V2l0
aEJ1bmRsZUlkZW50aWZpZXI6ZGVzdGluYXRpb25CdW5kbGVJZGVudGlmaWVyXTsKICAgICAKLSAg
ICByZXR1cm4gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0b3JlQ29weU9mQ2FjaGUoY2FjaGVE
aXIsIGxvYWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSk7CisgICAgcmV0dXJuIEFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlOjpzdG9yZUNvcHlPZkNhY2hlKGNhY2hlRGlyLCBfcHJpdmF0ZS0+bG9h
ZGVyLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKTsKIH0KIAogLSAodm9pZClfc2V0RGVmZXJNYWlu
UmVzb3VyY2VEYXRhTG9hZDooQk9PTClmbGFnCiB7Ci0gICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRl
ciA9IFtzZWxmIF9kb2N1bWVudExvYWRlcl07Ci0KLSAgICBpZiAoIWxvYWRlcikKKyAgICBpZiAo
IV9wcml2YXRlLT5sb2FkZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGxvYWRlci0+c2V0RGVm
ZXJNYWluUmVzb3VyY2VEYXRhTG9hZChmbGFnKTsKKyAgICBfcHJpdmF0ZS0+bG9hZGVyLT5zZXRE
ZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKGZsYWcpOwogfQogCiBAZW5kCkBAIC0yODksOCArMjU5
LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rp
b25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAgICAgaWYgKFtXZWJWaWV3IGNhblNo
b3dNSU1FVHlwZUFzSFRNTDpNSU1FVHlwZV0pIHsKICAgICAgICAgICAgIE5TU3RyaW5nICptYXJr
dXBTdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aERhdGE6W21haW5SZXNvdXJjZSBk
YXRhXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CiAgICAgICAgICAgICAvLyBGSVhN
RTogc2VlbXMgcG9vciBmb3JtIHRvIGRvIHRoaXMgYXMgYSBzaWRlIGVmZmVjdCBvZiBnZXR0aW5n
IGEgZG9jdW1lbnQgZnJhZ21lbnQKLSAgICAgICAgICAgIGlmIChEb2N1bWVudExvYWRlciogbG9h
ZGVyID0gW3NlbGYgX2RvY3VtZW50TG9hZGVyXSkKLSAgICAgICAgICAgICAgICBsb2FkZXItPmFk
ZEFsbEFyY2hpdmVSZXNvdXJjZXMoW2FyY2hpdmUgX2NvcmVMZWdhY3lXZWJBcmNoaXZlXSk7Cisg
ICAgICAgICAgICBpZiAoX3ByaXZhdGUtPmxvYWRlcikKKyAgICAgICAgICAgICAgICBfcHJpdmF0
ZS0+bG9hZGVyLT5hZGRBbGxBcmNoaXZlUmVzb3VyY2VzKFthcmNoaXZlIF9jb3JlTGVnYWN5V2Vi
QXJjaGl2ZV0pOwogCiAgICAgICAgICAgICBET01Eb2N1bWVudEZyYWdtZW50ICpmcmFnbWVudCA9
IFtbc2VsZiB3ZWJGcmFtZV0gX2RvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5nOm1hcmt1
cFN0cmluZyBiYXNlVVJMU3RyaW5nOltbbWFpblJlc291cmNlIFVSTF0gX3dlYl9vcmlnaW5hbERh
dGFBc1N0cmluZ11dOwogICAgICAgICAgICAgW21hcmt1cFN0cmluZyByZWxlYXNlXTsKQEAgLTM2
MCwxMiArMzMwLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011
dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgICAgIFtuZXdSZXAg
cmVsZWFzZV07CiAgICAgfQogCi0gICAgW19wcml2YXRlLT5yZXByZXNlbnRhdGlvbiBzZXREYXRh
U291cmNlOnNlbGZdOworICAgIFtfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24uZ2V0KCkgc2V0RGF0
YVNvdXJjZTpzZWxmXTsKIH0KIAogLSAoRG9jdW1lbnRMb2FkZXIqKV9kb2N1bWVudExvYWRlcgog
ewotICAgIHJldHVybiBfcHJpdmF0ZS0+bG9hZGVyOworICAgIHJldHVybiBfcHJpdmF0ZS0+bG9h
ZGVyLmdldCgpOwogfQogCiAtIChpZClfaW5pdFdpdGhEb2N1bWVudExvYWRlcjooUGFzc1JlZlB0
cjxXZWJEb2N1bWVudExvYWRlck1hYz4pbG9hZGVyCkBAIC0zNzMsMTAgKzM0Myw5IEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxU
eXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNl
bGYpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgCi0gICAgX3ByaXZhdGUgPSBbW1dlYkRhdGFT
b3VyY2VQcml2YXRlIGFsbG9jXSBpbml0XTsKLSAgICAKLSAgICBfcHJpdmF0ZS0+bG9hZGVyID0g
bG9hZGVyLmxlYWtSZWYoKTsKKworICAgIEFTU0VSVChsb2FkZXIpOworICAgIF9wcml2YXRlID0g
bmV3IFdlYkRhdGFTb3VyY2VQcml2YXRlKGxvYWRlcik7CiAgICAgICAgIAogICAgIExPRyhMb2Fk
aW5nLCAiY3JlYXRpbmcgZGF0YXNvdXJjZSBmb3IgJUAiLCBzdGF0aWNfY2FzdDxOU1VSTCAqPihf
cHJpdmF0ZS0+bG9hZGVyLT5yZXF1ZXN0KCkudXJsKCkpKTsKIApAQCAtMzk3LDE5ICszNjYsMjYg
QEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25h
cnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKIAogLSAodm9pZClkZWFsbG9jCiB7CisgICAgaWYg
KFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtXZWJEYXRhU291cmNl
IGNsYXNzXSwgc2VsZikpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChfcHJpdmF0ZSAmJiBf
cHJpdmF0ZS0+aW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3MpCiAgICAgICAgIC0tV2ViRGF0YVNv
dXJjZUNvdW50OwogCi0gICAgW19wcml2YXRlIHJlbGVhc2VdOworICAgIGRlbGV0ZSBfcHJpdmF0
ZTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAogLSAodm9pZClmaW5hbGl6ZQogeworICAg
IEFTU0VSVF9NQUlOX1RIUkVBRCgpOworCiAgICAgaWYgKF9wcml2YXRlICYmIF9wcml2YXRlLT5p
bmNsdWRlZEluV2ViS2l0U3RhdGlzdGljcykKICAgICAgICAgLS1XZWJEYXRhU291cmNlQ291bnQ7
CiAKKyAgICBkZWxldGUgX3ByaXZhdGU7CisKICAgICBbc3VwZXIgZmluYWxpemVdOwogfQogCkBA
IC00MjMsNyArMzk5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5T
TXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKIAogLSAoaWQgPFdlYkRv
Y3VtZW50UmVwcmVzZW50YXRpb24+KXJlcHJlc2VudGF0aW9uCiB7Ci0gICAgcmV0dXJuIF9wcml2
YXRlLT5yZXByZXNlbnRhdGlvbjsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnJlcHJlc2VudGF0aW9u
LmdldCgpOwogfQogCiAtIChXZWJGcmFtZSAqKXdlYkZyYW1lCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152871</attachid>
            <date>2012-07-17 16:32:03 -0700</date>
            <delta_ts>2012-07-17 18:41:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91511-20120717163202.patch</filename>
            <type>text/plain</type>
            <size>10245</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYjk5NGI3MDAw
NWQyZTEzZTViMDJhN2JhMGNiYzRjZGRlMTQ0YmZiYy4uNDlkZjI4NTVjMmYzNTZkZjVjYjg0MzAz
NjQ3MWUwMzFhNDFlYjk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEy
LTA3LTE3ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIE1ha2UgV2ViRGF0YVNvdXJjZVByaXZhdGUgbGlnaHRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1MTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYkRhdGFTb3VyY2VQcml2YXRl
IGEgc2ltcGxlIEMrKyBzdHJ1Y3QgYW5kIHVzZSBzbWFydCBwb2ludGVycyBmb3IgbWVtb3J5IG1h
bmFnZW1lbnQuCisKKyAgICAgICAgU2luY2UgdGhlICJsb2FkZXIiIGF0dHJpYnV0ZSBpcyBvbmx5
IHNldCBvbiBpbml0aWFsaXphdGlvbiwgYWxsIHRoZSBhc3NlcnRpb25zIHNwcmVhZCBpbgorICAg
ICAgICB2YXJpb3VzIGZ1bmN0aW9uIGFyZSByZW1vdmVkIGluIGZhdm9yIG9mIGFzc2VydGlvbnMg
b24gaW5pdGlhbGl6YXRpb24uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgIChXZWJEYXRhU291
cmNlUHJpdmF0ZSk6CisgICAgICAgIChXZWJEYXRhU291cmNlUHJpdmF0ZTo6V2ViRGF0YVNvdXJj
ZVByaXZhdGUpOgorICAgICAgICAoV2ViRGF0YVNvdXJjZVByaXZhdGU6On5XZWJEYXRhU291cmNl
UHJpdmF0ZSk6CisgICAgICAgIFVzZSBhIHN0cnVjdCBpbnN0ZWFkIG9mIGEgT2JqZWN0aXZlLUMg
b2JqZWN0IGZvciBXZWJEYXRhU291cmNlUHJpdmF0ZS4KKyAgICAgICAgVXNlIHNtYXJ0IHBvaW50
ZXJzIGluc3RlYWQgb2YgcmVmIGNvdW50aW5nIG1hbnVhbGx5LgorCisgICAgICAgICgtW1dlYkRh
dGFTb3VyY2UgX3NldFJlcHJlc2VudGF0aW9uOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNl
IF9hZGRTdWJmcmFtZUFyY2hpdmVzOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF90cmFu
c2ZlckFwcGxpY2F0aW9uQ2FjaGU6XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX3NldERl
ZmVyTWFpblJlc291cmNlRGF0YUxvYWQ6XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2Rv
Y3VtZW50RnJhZ21lbnRXaXRoQXJjaGl2ZTpdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBf
aW5pdFdpdGhEb2N1bWVudExvYWRlcjpdKToKKworICAgICAgICAoK1tXZWJEYXRhU291cmNlIGlu
aXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBkZWFsbG9jXSk6CisgICAgICAg
ICgtW1dlYkRhdGFTb3VyY2UgZmluYWxpemVdKToKKyAgICAgICAgV2ViRGF0YVNvdXJjZSB0YWtl
cyB0aGUgc3BlY2lhbCBpbml0aWFsaXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gdGhhdCB3YXMgZG9u
ZSBpbiBXZWJEYXRhU291cmNlUHJpdmF0ZS4KKworICAgICAgICAoLVtXZWJEYXRhU291cmNlIHJl
cHJlc2VudGF0aW9uXSk6CisKIDIwMTItMDctMTcgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWtnYWxh
dGFnZUBnbWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVmYWN0b3IgSW5zcGVj
dG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkgdG8gYWNjZXB0IEluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0
YVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLmgKaW5k
ZXggMWZmZDMzOThhOGZjZDE0NzRmZjIzZWRiMmFhMTZjOTg0NWVkMzAyMy4uZDJiYWY4YWRjN2Nk
ZWNhYWI3MDFiOGUwZGU5ZDkxZWViZWEyOTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJEYXRhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJEYXRhU291cmNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDEyIEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNSw5ICszNSw5IEBACiBAY2xhc3MgTlNVUkxSZXF1ZXN0OwogQGNsYXNzIE5TVVJM
UmVzcG9uc2U7CiBAY2xhc3MgV2ViQXJjaGl2ZTsKLUBjbGFzcyBXZWJEYXRhU291cmNlUHJpdmF0
ZTsKIEBjbGFzcyBXZWJGcmFtZTsKIEBjbGFzcyBXZWJSZXNvdXJjZTsKK3R5cGVkZWYgc3RydWN0
IFdlYkRhdGFTb3VyY2VQcml2YXRlIFdlYkRhdGFTb3VyY2VQcml2YXRlOwogCiAvKiEKICAgICBA
Y2xhc3MgV2ViRGF0YVNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291
cmNlLm1tCmluZGV4IGQ5MTI1ZjcwZjUwMjZkNjRiYmIwMDM2ZmI2YWQ3N2JlMzQ4ZDM2MDguLmU1
NDA4NjEyMjI2MmM1YWNlMTJhYmI3ZmRkNDIxMDI5N2U5NDhkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTYyLDYyICs2MiwzMiBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLUBpbnRlcmZhY2UgV2ViRGF0YVNvdXJj
ZVByaXZhdGUgOiBOU09iamVjdCB7Ci1AcHVibGljCi0gICAgV2ViRG9jdW1lbnRMb2FkZXJNYWMq
IGxvYWRlcjsKLSAgIAotICAgIGlkIDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9uPiByZXByZXNl
bnRhdGlvbjsKLSAgICAKLSAgICBCT09MIHJlcHJlc2VudGF0aW9uRmluaXNoZWRMb2FkaW5nOwot
ICAgIEJPT0wgaW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3M7Ci19Ci1AZW5kCi0KLUBpbXBsZW1l
bnRhdGlvbiBXZWJEYXRhU291cmNlUHJpdmF0ZSAKLQotKyAodm9pZClpbml0aWFsaXplCitzdHJ1
Y3QgV2ViRGF0YVNvdXJjZVByaXZhdGUKIHsKLSAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmco
KTsKLSAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwot
ICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwotICAgIFdlYkNv
cmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7Ci19Ci0KLS0gKHZvaWQpZGVhbGxvYwot
ewotICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbV2Vi
RGF0YVNvdXJjZVByaXZhdGUgY2xhc3NdLCBzZWxmKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
QVNTRVJUKGxvYWRlcik7Ci0gICAgaWYgKGxvYWRlcikgewotICAgICAgICBBU1NFUlQoIWxvYWRl
ci0+aXNMb2FkaW5nKCkpOwotICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2UoKTsKLSAg
ICAgICAgbG9hZGVyLT5kZXJlZigpOworcHVibGljOgorICAgIFdlYkRhdGFTb3VyY2VQcml2YXRl
KFBhc3NSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXJNYWM+IGxvYWRlcikKKyAgICAgICAgOiBsb2Fk
ZXIobG9hZGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHRoaXMtPmxvYWRlcik7CiAgICAgfQot
ICAgIAotICAgIFtyZXByZXNlbnRhdGlvbiByZWxlYXNlXTsKLQotICAgIFtzdXBlciBkZWFsbG9j
XTsKLX0KLQotLSAodm9pZClmaW5hbGl6ZQotewotICAgIEFTU0VSVF9NQUlOX1RIUkVBRCgpOwot
Ci0gICAgQVNTRVJUKGxvYWRlcik7Ci0gICAgaWYgKGxvYWRlcikgewotICAgICAgICBBU1NFUlQo
IWxvYWRlci0+aXNMb2FkaW5nKCkpOwotICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2Uo
KTsKLSAgICAgICAgbG9hZGVyLT5kZXJlZigpOworICAgIH5XZWJEYXRhU291cmNlUHJpdmF0ZSgp
CisgICAgeworICAgICAgICBpZiAobG9hZGVyKSB7CisgICAgICAgICAgICBBU1NFUlQoIWxvYWRl
ci0+aXNMb2FkaW5nKCkpOworICAgICAgICAgICAgbG9hZGVyLT5kZXRhY2hEYXRhU291cmNlKCk7
CisgICAgICAgIH0KICAgICB9CiAKLSAgICBbc3VwZXIgZmluYWxpemVdOwotfQotCi1AZW5kCisg
ICAgUmVmUHRyPFdlYkRvY3VtZW50TG9hZGVyTWFjPiBsb2FkZXI7CisgICAgUmV0YWluUHRyPE5T
T2JqZWN0PFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb24+ID4gcmVwcmVzZW50YXRpb247CisgICAg
Qk9PTCByZXByZXNlbnRhdGlvbkZpbmlzaGVkTG9hZGluZzsKKyAgICBCT09MIGluY2x1ZGVkSW5X
ZWJLaXRTdGF0aXN0aWNzOworfTsKIAogQGludGVyZmFjZSBXZWJEYXRhU291cmNlIChXZWJGaWxl
SW50ZXJuYWwpCiBAZW5kCkBAIC0xMjYsOCArOTYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogLSAodm9pZClfc2V0UmVwcmVzZW50YXRpb246KGlkPFdlYkRvY3VtZW50UmVwcmVzZW50
YXRpb24+KXJlcHJlc2VudGF0aW9uCiB7Ci0gICAgW19wcml2YXRlLT5yZXByZXNlbnRhdGlvbiBy
ZWxlYXNlXTsKLSAgICBfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24gPSBbcmVwcmVzZW50YXRpb24g
cmV0YWluXTsKKyAgICBfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24gPSByZXByZXNlbnRhdGlvbjsK
ICAgICBfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb25GaW5pc2hlZExvYWRpbmcgPSBOTzsKIH0KIApA
QCAtMTUyLDYgKzEyMSwxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3Mo
TlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiBAaW1wbGVtZW50
YXRpb24gV2ViRGF0YVNvdXJjZSAoV2ViUHJpdmF0ZSkKIAorKyAodm9pZClpbml0aWFsaXplCit7
CisgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjppbml0aWFsaXplTWFp
blRocmVhZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0
aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFk
KHNlbGYpOworfQorCiAtIChOU0Vycm9yICopX21haW5Eb2N1bWVudEVycm9yCiB7CiAgICAgcmV0
dXJuIF9wcml2YXRlLT5sb2FkZXItPm1haW5Eb2N1bWVudEVycm9yKCk7CkBAIC0xNjAsMTMgKzEz
NywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGlj
dGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogLSAodm9pZClfYWRkU3ViZnJhbWVBcmNo
aXZlczooTlNBcnJheSAqKXN1YmZyYW1lQXJjaGl2ZXMKIHsKICAgICAvLyBGSVhNRTogVGhpcyBT
UEkgaXMgcG9vciwgcG9vciBkZXNpZ24uICBDYW4gd2UgY29tZSB1cCB3aXRoIGFub3RoZXIgc29s
dXRpb24gZm9yIHRob3NlIHdobyBuZWVkIGl0PwotICAgIERvY3VtZW50TG9hZGVyKiBsb2FkZXIg
PSBbc2VsZiBfZG9jdW1lbnRMb2FkZXJdOwotICAgIEFTU0VSVChsb2FkZXIpOwotICAgIAogICAg
IE5TRW51bWVyYXRvciAqZW51bWVyYXRvciA9IFtzdWJmcmFtZUFyY2hpdmVzIG9iamVjdEVudW1l
cmF0b3JdOwogICAgIFdlYkFyY2hpdmUgKmFyY2hpdmU7CiAgICAgd2hpbGUgKChhcmNoaXZlID0g
W2VudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkKLSAgICAgICAgbG9hZGVyLT5hZGRBbGxB
cmNoaXZlUmVzb3VyY2VzKFthcmNoaXZlIF9jb3JlTGVnYWN5V2ViQXJjaGl2ZV0pOworICAgICAg
ICBfcHJpdmF0ZS0+bG9hZGVyLT5hZGRBbGxBcmNoaXZlUmVzb3VyY2VzKFthcmNoaXZlIF9jb3Jl
TGVnYWN5V2ViQXJjaGl2ZV0pOwogfQogCiAtIChOU0ZpbGVXcmFwcGVyICopX2ZpbGVXcmFwcGVy
Rm9yVVJMOihOU1VSTCAqKVVSTApAQCAtMTk3LDI0ICsxNzEsMjAgQEAgc3RhdGljIGlubGluZSB2
b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFz
cyBvYmpDQ2wKIAogLSAoQk9PTClfdHJhbnNmZXJBcHBsaWNhdGlvbkNhY2hlOihOU1N0cmluZyop
ZGVzdGluYXRpb25CdW5kbGVJZGVudGlmaWVyCiB7Ci0gICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRl
ciA9IFtzZWxmIF9kb2N1bWVudExvYWRlcl07Ci0gICAgCi0gICAgaWYgKCFsb2FkZXIpCisgICAg
aWYgKCFfcHJpdmF0ZS0+bG9hZGVyKQogICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIAogICAg
IE5TU3RyaW5nICpjYWNoZURpciA9IFtOU1N0cmluZyBfd2Via2l0X2xvY2FsQ2FjaGVEaXJlY3Rv
cnlXaXRoQnVuZGxlSWRlbnRpZmllcjpkZXN0aW5hdGlvbkJ1bmRsZUlkZW50aWZpZXJdOwogICAg
IAotICAgIHJldHVybiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3RvcmVDb3B5T2ZDYWNoZShj
YWNoZURpciwgbG9hZGVyLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKTsKKyAgICByZXR1cm4gQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0b3JlQ29weU9mQ2FjaGUoY2FjaGVEaXIsIF9wcml2YXRl
LT5sb2FkZXItPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkpOwogfQogCiAtICh2b2lkKV9zZXREZWZl
ck1haW5SZXNvdXJjZURhdGFMb2FkOihCT09MKWZsYWcKIHsKLSAgICBEb2N1bWVudExvYWRlciog
bG9hZGVyID0gW3NlbGYgX2RvY3VtZW50TG9hZGVyXTsKLQotICAgIGlmICghbG9hZGVyKQorICAg
IGlmICghX3ByaXZhdGUtPmxvYWRlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbG9hZGVyLT5z
ZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKGZsYWcpOworICAgIF9wcml2YXRlLT5sb2FkZXIt
PnNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoZmxhZyk7CiB9CiAKIEBlbmQKQEAgLTI4OSw4
ICsyNTksOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxl
RGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgICAgICBpZiAoW1dlYlZpZXcg
Y2FuU2hvd01JTUVUeXBlQXNIVE1MOk1JTUVUeXBlXSkgewogICAgICAgICAgICAgTlNTdHJpbmcg
Km1hcmt1cFN0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpbbWFpblJlc291
cmNlIGRhdGFdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKICAgICAgICAgICAgIC8v
IEZJWE1FOiBzZWVtcyBwb29yIGZvcm0gdG8gZG8gdGhpcyBhcyBhIHNpZGUgZWZmZWN0IG9mIGdl
dHRpbmcgYSBkb2N1bWVudCBmcmFnbWVudAotICAgICAgICAgICAgaWYgKERvY3VtZW50TG9hZGVy
KiBsb2FkZXIgPSBbc2VsZiBfZG9jdW1lbnRMb2FkZXJdKQotICAgICAgICAgICAgICAgIGxvYWRl
ci0+YWRkQWxsQXJjaGl2ZVJlc291cmNlcyhbYXJjaGl2ZSBfY29yZUxlZ2FjeVdlYkFyY2hpdmVd
KTsKKyAgICAgICAgICAgIGlmIChfcHJpdmF0ZS0+bG9hZGVyKQorICAgICAgICAgICAgICAgIF9w
cml2YXRlLT5sb2FkZXItPmFkZEFsbEFyY2hpdmVSZXNvdXJjZXMoW2FyY2hpdmUgX2NvcmVMZWdh
Y3lXZWJBcmNoaXZlXSk7CiAKICAgICAgICAgICAgIERPTURvY3VtZW50RnJhZ21lbnQgKmZyYWdt
ZW50ID0gW1tzZWxmIHdlYkZyYW1lXSBfZG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6
bWFya3VwU3RyaW5nIGJhc2VVUkxTdHJpbmc6W1ttYWluUmVzb3VyY2UgVVJMXSBfd2ViX29yaWdp
bmFsRGF0YUFzU3RyaW5nXV07CiAgICAgICAgICAgICBbbWFya3VwU3RyaW5nIHJlbGVhc2VdOwpA
QCAtMzYwLDEyICszMzAsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNz
KE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAgICAgW25l
d1JlcCByZWxlYXNlXTsKICAgICB9CiAKLSAgICBbX3ByaXZhdGUtPnJlcHJlc2VudGF0aW9uIHNl
dERhdGFTb3VyY2U6c2VsZl07CisgICAgW19wcml2YXRlLT5yZXByZXNlbnRhdGlvbi5nZXQoKSBz
ZXREYXRhU291cmNlOnNlbGZdOwogfQogCiAtIChEb2N1bWVudExvYWRlciopX2RvY3VtZW50TG9h
ZGVyCiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5sb2FkZXI7CisgICAgcmV0dXJuIF9wcml2YXRl
LT5sb2FkZXIuZ2V0KCk7CiB9CiAKIC0gKGlkKV9pbml0V2l0aERvY3VtZW50TG9hZGVyOihQYXNz
UmVmUHRyPFdlYkRvY3VtZW50TG9hZGVyTWFjPilsb2FkZXIKQEAgLTM3MywxMCArMzQzLDkgQEAg
c3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkg
KmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlm
ICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAKLSAgICBfcHJpdmF0ZSA9IFtbV2Vi
RGF0YVNvdXJjZVByaXZhdGUgYWxsb2NdIGluaXRdOwotICAgIAotICAgIF9wcml2YXRlLT5sb2Fk
ZXIgPSBsb2FkZXIubGVha1JlZigpOworCisgICAgQVNTRVJUKGxvYWRlcik7CisgICAgX3ByaXZh
dGUgPSBuZXcgV2ViRGF0YVNvdXJjZVByaXZhdGUobG9hZGVyKTsKICAgICAgICAgCiAgICAgTE9H
KExvYWRpbmcsICJjcmVhdGluZyBkYXRhc291cmNlIGZvciAlQCIsIHN0YXRpY19jYXN0PE5TVVJM
ICo+KF9wcml2YXRlLT5sb2FkZXItPnJlcXVlc3QoKS51cmwoKSkpOwogCkBAIC0zOTcsMTkgKzM2
NiwyNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGlj
dGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyAg
ICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW1dlYkRhdGFT
b3VyY2UgY2xhc3NdLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKF9wcml2YXRl
ICYmIF9wcml2YXRlLT5pbmNsdWRlZEluV2ViS2l0U3RhdGlzdGljcykKICAgICAgICAgLS1XZWJE
YXRhU291cmNlQ291bnQ7CiAKLSAgICBbX3ByaXZhdGUgcmVsZWFzZV07CisgICAgZGVsZXRlIF9w
cml2YXRlOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCiAtICh2b2lkKWZpbmFsaXplCiB7
CisgICAgQVNTRVJUX01BSU5fVEhSRUFEKCk7CisKICAgICBpZiAoX3ByaXZhdGUgJiYgX3ByaXZh
dGUtPmluY2x1ZGVkSW5XZWJLaXRTdGF0aXN0aWNzKQogICAgICAgICAtLVdlYkRhdGFTb3VyY2VD
b3VudDsKIAorICAgIGRlbGV0ZSBfcHJpdmF0ZTsKKwogICAgIFtzdXBlciBmaW5hbGl6ZV07CiB9
CiAKQEAgLTQyMyw3ICszOTksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xh
c3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiAtIChpZCA8
V2ViRG9jdW1lbnRSZXByZXNlbnRhdGlvbj4pcmVwcmVzZW50YXRpb24KIHsKLSAgICByZXR1cm4g
X3ByaXZhdGUtPnJlcHJlc2VudGF0aW9uOworICAgIHJldHVybiBfcHJpdmF0ZS0+cmVwcmVzZW50
YXRpb24uZ2V0KCk7CiB9CiAKIC0gKFdlYkZyYW1lICopd2ViRnJhbWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152899</attachid>
            <date>2012-07-17 18:41:29 -0700</date>
            <delta_ts>2012-07-18 16:36:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91511-20120717184128.patch</filename>
            <type>text/plain</type>
            <size>10307</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyOTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYjk5NGI3MDAw
NWQyZTEzZTViMDJhN2JhMGNiYzRjZGRlMTQ0YmZiYy4uNDlkZjI4NTVjMmYzNTZkZjVjYjg0MzAz
NjQ3MWUwMzFhNDFlYjk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEy
LTA3LTE3ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIE1ha2UgV2ViRGF0YVNvdXJjZVByaXZhdGUgbGlnaHRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1MTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYkRhdGFTb3VyY2VQcml2YXRl
IGEgc2ltcGxlIEMrKyBzdHJ1Y3QgYW5kIHVzZSBzbWFydCBwb2ludGVycyBmb3IgbWVtb3J5IG1h
bmFnZW1lbnQuCisKKyAgICAgICAgU2luY2UgdGhlICJsb2FkZXIiIGF0dHJpYnV0ZSBpcyBvbmx5
IHNldCBvbiBpbml0aWFsaXphdGlvbiwgYWxsIHRoZSBhc3NlcnRpb25zIHNwcmVhZCBpbgorICAg
ICAgICB2YXJpb3VzIGZ1bmN0aW9uIGFyZSByZW1vdmVkIGluIGZhdm9yIG9mIGFzc2VydGlvbnMg
b24gaW5pdGlhbGl6YXRpb24uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgIChXZWJEYXRhU291
cmNlUHJpdmF0ZSk6CisgICAgICAgIChXZWJEYXRhU291cmNlUHJpdmF0ZTo6V2ViRGF0YVNvdXJj
ZVByaXZhdGUpOgorICAgICAgICAoV2ViRGF0YVNvdXJjZVByaXZhdGU6On5XZWJEYXRhU291cmNl
UHJpdmF0ZSk6CisgICAgICAgIFVzZSBhIHN0cnVjdCBpbnN0ZWFkIG9mIGEgT2JqZWN0aXZlLUMg
b2JqZWN0IGZvciBXZWJEYXRhU291cmNlUHJpdmF0ZS4KKyAgICAgICAgVXNlIHNtYXJ0IHBvaW50
ZXJzIGluc3RlYWQgb2YgcmVmIGNvdW50aW5nIG1hbnVhbGx5LgorCisgICAgICAgICgtW1dlYkRh
dGFTb3VyY2UgX3NldFJlcHJlc2VudGF0aW9uOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNl
IF9hZGRTdWJmcmFtZUFyY2hpdmVzOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF90cmFu
c2ZlckFwcGxpY2F0aW9uQ2FjaGU6XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX3NldERl
ZmVyTWFpblJlc291cmNlRGF0YUxvYWQ6XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2Rv
Y3VtZW50RnJhZ21lbnRXaXRoQXJjaGl2ZTpdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBf
aW5pdFdpdGhEb2N1bWVudExvYWRlcjpdKToKKworICAgICAgICAoK1tXZWJEYXRhU291cmNlIGlu
aXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBkZWFsbG9jXSk6CisgICAgICAg
ICgtW1dlYkRhdGFTb3VyY2UgZmluYWxpemVdKToKKyAgICAgICAgV2ViRGF0YVNvdXJjZSB0YWtl
cyB0aGUgc3BlY2lhbCBpbml0aWFsaXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gdGhhdCB3YXMgZG9u
ZSBpbiBXZWJEYXRhU291cmNlUHJpdmF0ZS4KKworICAgICAgICAoLVtXZWJEYXRhU291cmNlIHJl
cHJlc2VudGF0aW9uXSk6CisKIDIwMTItMDctMTcgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWtnYWxh
dGFnZUBnbWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVmYWN0b3IgSW5zcGVj
dG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkgdG8gYWNjZXB0IEluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0
YVNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLmgKaW5k
ZXggMWZmZDMzOThhOGZjZDE0NzRmZjIzZWRiMmFhMTZjOTg0NWVkMzAyMy4uZDJiYWY4YWRjN2Nk
ZWNhYWI3MDFiOGUwZGU5ZDkxZWViZWEyOTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJEYXRhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJEYXRhU291cmNlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDEyIEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNSw5ICszNSw5IEBACiBAY2xhc3MgTlNVUkxSZXF1ZXN0OwogQGNsYXNzIE5TVVJM
UmVzcG9uc2U7CiBAY2xhc3MgV2ViQXJjaGl2ZTsKLUBjbGFzcyBXZWJEYXRhU291cmNlUHJpdmF0
ZTsKIEBjbGFzcyBXZWJGcmFtZTsKIEBjbGFzcyBXZWJSZXNvdXJjZTsKK3R5cGVkZWYgc3RydWN0
IFdlYkRhdGFTb3VyY2VQcml2YXRlIFdlYkRhdGFTb3VyY2VQcml2YXRlOwogCiAvKiEKICAgICBA
Y2xhc3MgV2ViRGF0YVNvdXJjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291
cmNlLm1tCmluZGV4IGQ5MTI1ZjcwZjUwMjZkNjRiYmIwMDM2ZmI2YWQ3N2JlMzQ4ZDM2MDguLmM4
ZTA4MmE3MDJkNGU2MTgyM2EzOTBiZjQwM2Y1NGVjMzc0MzgxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTYyLDYyICs2MiwzMiBAQAogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLUBpbnRlcmZhY2UgV2ViRGF0YVNvdXJj
ZVByaXZhdGUgOiBOU09iamVjdCB7Ci1AcHVibGljCi0gICAgV2ViRG9jdW1lbnRMb2FkZXJNYWMq
IGxvYWRlcjsKLSAgIAotICAgIGlkIDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9uPiByZXByZXNl
bnRhdGlvbjsKLSAgICAKLSAgICBCT09MIHJlcHJlc2VudGF0aW9uRmluaXNoZWRMb2FkaW5nOwot
ICAgIEJPT0wgaW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3M7Ci19Ci1AZW5kCi0KLUBpbXBsZW1l
bnRhdGlvbiBXZWJEYXRhU291cmNlUHJpdmF0ZSAKLQotKyAodm9pZClpbml0aWFsaXplCitzdHJ1
Y3QgV2ViRGF0YVNvdXJjZVByaXZhdGUKIHsKLSAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmco
KTsKLSAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgpOwot
ICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwotICAgIFdlYkNv
cmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7Ci19Ci0KLS0gKHZvaWQpZGVhbGxvYwot
ewotICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbV2Vi
RGF0YVNvdXJjZVByaXZhdGUgY2xhc3NdLCBzZWxmKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
QVNTRVJUKGxvYWRlcik7Ci0gICAgaWYgKGxvYWRlcikgewotICAgICAgICBBU1NFUlQoIWxvYWRl
ci0+aXNMb2FkaW5nKCkpOwotICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2UoKTsKLSAg
ICAgICAgbG9hZGVyLT5kZXJlZigpOworcHVibGljOgorICAgIFdlYkRhdGFTb3VyY2VQcml2YXRl
KFBhc3NSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXJNYWM+IGxvYWRlcikKKyAgICAgICAgOiBsb2Fk
ZXIobG9hZGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHRoaXMtPmxvYWRlcik7CiAgICAgfQot
ICAgIAotICAgIFtyZXByZXNlbnRhdGlvbiByZWxlYXNlXTsKLQotICAgIFtzdXBlciBkZWFsbG9j
XTsKLX0KLQotLSAodm9pZClmaW5hbGl6ZQotewotICAgIEFTU0VSVF9NQUlOX1RIUkVBRCgpOwot
Ci0gICAgQVNTRVJUKGxvYWRlcik7Ci0gICAgaWYgKGxvYWRlcikgewotICAgICAgICBBU1NFUlQo
IWxvYWRlci0+aXNMb2FkaW5nKCkpOwotICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2Uo
KTsKLSAgICAgICAgbG9hZGVyLT5kZXJlZigpOworICAgIH5XZWJEYXRhU291cmNlUHJpdmF0ZSgp
CisgICAgeworICAgICAgICBpZiAobG9hZGVyKSB7CisgICAgICAgICAgICBBU1NFUlQoIWxvYWRl
ci0+aXNMb2FkaW5nKCkpOworICAgICAgICAgICAgbG9hZGVyLT5kZXRhY2hEYXRhU291cmNlKCk7
CisgICAgICAgIH0KICAgICB9CiAKLSAgICBbc3VwZXIgZmluYWxpemVdOwotfQotCi1AZW5kCisg
ICAgUmVmUHRyPFdlYkRvY3VtZW50TG9hZGVyTWFjPiBsb2FkZXI7CisgICAgUmV0YWluUHRyPGlk
PFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb24+ID4gcmVwcmVzZW50YXRpb247CisgICAgQk9PTCBy
ZXByZXNlbnRhdGlvbkZpbmlzaGVkTG9hZGluZzsKKyAgICBCT09MIGluY2x1ZGVkSW5XZWJLaXRT
dGF0aXN0aWNzOworfTsKIAogQGludGVyZmFjZSBXZWJEYXRhU291cmNlIChXZWJGaWxlSW50ZXJu
YWwpCiBAZW5kCkBAIC0xMjYsOCArOTYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
LSAodm9pZClfc2V0UmVwcmVzZW50YXRpb246KGlkPFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb24+
KXJlcHJlc2VudGF0aW9uCiB7Ci0gICAgW19wcml2YXRlLT5yZXByZXNlbnRhdGlvbiByZWxlYXNl
XTsKLSAgICBfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24gPSBbcmVwcmVzZW50YXRpb24gcmV0YWlu
XTsKKyAgICBfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24gPSByZXByZXNlbnRhdGlvbjsKICAgICBf
cHJpdmF0ZS0+cmVwcmVzZW50YXRpb25GaW5pc2hlZExvYWRpbmcgPSBOTzsKIH0KIApAQCAtMTUy
LDYgKzEyMSwxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRh
YmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiBAaW1wbGVtZW50YXRpb24g
V2ViRGF0YVNvdXJjZSAoV2ViUHJpdmF0ZSkKIAorKyAodm9pZClpbml0aWFsaXplCit7CisgICAg
SlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVh
ZFRvUHJvY2Vzc01haW5UaHJlYWQoKTsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXpl
TWFpblJ1bkxvb3AoKTsKKyAgICBXZWJDb3JlT2JqQ0ZpbmFsaXplT25NYWluVGhyZWFkKHNlbGYp
OworfQorCiAtIChOU0Vycm9yICopX21haW5Eb2N1bWVudEVycm9yCiB7CiAgICAgcmV0dXJuIF9w
cml2YXRlLT5sb2FkZXItPm1haW5Eb2N1bWVudEVycm9yKCk7CkBAIC0xNjAsMTMgKzEzNywxMCBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFy
eSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogLSAodm9pZClfYWRkU3ViZnJhbWVBcmNoaXZlczoo
TlNBcnJheSAqKXN1YmZyYW1lQXJjaGl2ZXMKIHsKICAgICAvLyBGSVhNRTogVGhpcyBTUEkgaXMg
cG9vciwgcG9vciBkZXNpZ24uICBDYW4gd2UgY29tZSB1cCB3aXRoIGFub3RoZXIgc29sdXRpb24g
Zm9yIHRob3NlIHdobyBuZWVkIGl0PwotICAgIERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBbc2Vs
ZiBfZG9jdW1lbnRMb2FkZXJdOwotICAgIEFTU0VSVChsb2FkZXIpOwotICAgIAogICAgIE5TRW51
bWVyYXRvciAqZW51bWVyYXRvciA9IFtzdWJmcmFtZUFyY2hpdmVzIG9iamVjdEVudW1lcmF0b3Jd
OwogICAgIFdlYkFyY2hpdmUgKmFyY2hpdmU7CiAgICAgd2hpbGUgKChhcmNoaXZlID0gW2VudW1l
cmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkKLSAgICAgICAgbG9hZGVyLT5hZGRBbGxBcmNoaXZl
UmVzb3VyY2VzKFthcmNoaXZlIF9jb3JlTGVnYWN5V2ViQXJjaGl2ZV0pOworICAgICAgICBfcHJp
dmF0ZS0+bG9hZGVyLT5hZGRBbGxBcmNoaXZlUmVzb3VyY2VzKFthcmNoaXZlIF9jb3JlTGVnYWN5
V2ViQXJjaGl2ZV0pOwogfQogCiAtIChOU0ZpbGVXcmFwcGVyICopX2ZpbGVXcmFwcGVyRm9yVVJM
OihOU1VSTCAqKVVSTApAQCAtMTk3LDI0ICsxNzEsMjAgQEAgc3RhdGljIGlubGluZSB2b2lkIGFk
ZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpD
Q2wKIAogLSAoQk9PTClfdHJhbnNmZXJBcHBsaWNhdGlvbkNhY2hlOihOU1N0cmluZyopZGVzdGlu
YXRpb25CdW5kbGVJZGVudGlmaWVyCiB7Ci0gICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IFtz
ZWxmIF9kb2N1bWVudExvYWRlcl07Ci0gICAgCi0gICAgaWYgKCFsb2FkZXIpCisgICAgaWYgKCFf
cHJpdmF0ZS0+bG9hZGVyKQogICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIAogICAgIE5TU3Ry
aW5nICpjYWNoZURpciA9IFtOU1N0cmluZyBfd2Via2l0X2xvY2FsQ2FjaGVEaXJlY3RvcnlXaXRo
QnVuZGxlSWRlbnRpZmllcjpkZXN0aW5hdGlvbkJ1bmRsZUlkZW50aWZpZXJdOwogICAgIAotICAg
IHJldHVybiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3RvcmVDb3B5T2ZDYWNoZShjYWNoZURp
ciwgbG9hZGVyLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKTsKKyAgICByZXR1cm4gQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U6OnN0b3JlQ29weU9mQ2FjaGUoY2FjaGVEaXIsIF9wcml2YXRlLT5sb2Fk
ZXItPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkpOwogfQogCiAtICh2b2lkKV9zZXREZWZlck1haW5S
ZXNvdXJjZURhdGFMb2FkOihCT09MKWZsYWcKIHsKLSAgICBEb2N1bWVudExvYWRlciogbG9hZGVy
ID0gW3NlbGYgX2RvY3VtZW50TG9hZGVyXTsKLQotICAgIGlmICghbG9hZGVyKQorICAgIGlmICgh
X3ByaXZhdGUtPmxvYWRlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbG9hZGVyLT5zZXREZWZl
ck1haW5SZXNvdXJjZURhdGFMb2FkKGZsYWcpOworICAgIF9wcml2YXRlLT5sb2FkZXItPnNldERl
ZmVyTWFpblJlc291cmNlRGF0YUxvYWQoZmxhZyk7CiB9CiAKIEBlbmQKQEAgLTI4OSw4ICsyNTks
OCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlv
bmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgICAgICBpZiAoW1dlYlZpZXcgY2FuU2hv
d01JTUVUeXBlQXNIVE1MOk1JTUVUeXBlXSkgewogICAgICAgICAgICAgTlNTdHJpbmcgKm1hcmt1
cFN0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRGF0YTpbbWFpblJlc291cmNlIGRh
dGFdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKICAgICAgICAgICAgIC8vIEZJWE1F
OiBzZWVtcyBwb29yIGZvcm0gdG8gZG8gdGhpcyBhcyBhIHNpZGUgZWZmZWN0IG9mIGdldHRpbmcg
YSBkb2N1bWVudCBmcmFnbWVudAotICAgICAgICAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIgPSBbc2VsZiBfZG9jdW1lbnRMb2FkZXJdKQotICAgICAgICAgICAgICAgIGxvYWRlci0+YWRk
QWxsQXJjaGl2ZVJlc291cmNlcyhbYXJjaGl2ZSBfY29yZUxlZ2FjeVdlYkFyY2hpdmVdKTsKKyAg
ICAgICAgICAgIGlmIChfcHJpdmF0ZS0+bG9hZGVyKQorICAgICAgICAgICAgICAgIF9wcml2YXRl
LT5sb2FkZXItPmFkZEFsbEFyY2hpdmVSZXNvdXJjZXMoW2FyY2hpdmUgX2NvcmVMZWdhY3lXZWJB
cmNoaXZlXSk7CiAKICAgICAgICAgICAgIERPTURvY3VtZW50RnJhZ21lbnQgKmZyYWdtZW50ID0g
W1tzZWxmIHdlYkZyYW1lXSBfZG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6bWFya3Vw
U3RyaW5nIGJhc2VVUkxTdHJpbmc6W1ttYWluUmVzb3VyY2UgVVJMXSBfd2ViX29yaWdpbmFsRGF0
YUFzU3RyaW5nXV07CiAgICAgICAgICAgICBbbWFya3VwU3RyaW5nIHJlbGVhc2VdOwpAQCAtMzYw
LDEyICszMzAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0
YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKICAgICAgICAgW25ld1JlcCBy
ZWxlYXNlXTsKICAgICB9CiAKLSAgICBbX3ByaXZhdGUtPnJlcHJlc2VudGF0aW9uIHNldERhdGFT
b3VyY2U6c2VsZl07CisgICAgaWQ8V2ViRG9jdW1lbnRSZXByZXNlbnRhdGlvbj4gcmVwcmVzZW50
YXRpb24gPSBfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24uZ2V0KCk7CisgICAgW3JlcHJlc2VudGF0
aW9uIHNldERhdGFTb3VyY2U6c2VsZl07CiB9CiAKIC0gKERvY3VtZW50TG9hZGVyKilfZG9jdW1l
bnRMb2FkZXIKIHsKLSAgICByZXR1cm4gX3ByaXZhdGUtPmxvYWRlcjsKKyAgICByZXR1cm4gX3By
aXZhdGUtPmxvYWRlci5nZXQoKTsKIH0KIAogLSAoaWQpX2luaXRXaXRoRG9jdW1lbnRMb2FkZXI6
KFBhc3NSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXJNYWM+KWxvYWRlcgpAQCAtMzczLDEwICszNDQs
OSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlv
bmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIAotICAgIF9wcml2YXRlID0g
W1tXZWJEYXRhU291cmNlUHJpdmF0ZSBhbGxvY10gaW5pdF07Ci0gICAgCi0gICAgX3ByaXZhdGUt
PmxvYWRlciA9IGxvYWRlci5sZWFrUmVmKCk7CisKKyAgICBBU1NFUlQobG9hZGVyKTsKKyAgICBf
cHJpdmF0ZSA9IG5ldyBXZWJEYXRhU291cmNlUHJpdmF0ZShsb2FkZXIpOwogICAgICAgICAKICAg
ICBMT0coTG9hZGluZywgImNyZWF0aW5nIGRhdGFzb3VyY2UgZm9yICVAIiwgc3RhdGljX2Nhc3Q8
TlNVUkwgKj4oX3ByaXZhdGUtPmxvYWRlci0+cmVxdWVzdCgpLnVybCgpKSk7CiAKQEAgLTM5Nywx
OSArMzY3LDI2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFi
bGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAKIC0gKHZvaWQpZGVhbGxvYwog
eworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbV2Vi
RGF0YVNvdXJjZSBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoX3By
aXZhdGUgJiYgX3ByaXZhdGUtPmluY2x1ZGVkSW5XZWJLaXRTdGF0aXN0aWNzKQogICAgICAgICAt
LVdlYkRhdGFTb3VyY2VDb3VudDsKIAotICAgIFtfcHJpdmF0ZSByZWxlYXNlXTsKKyAgICBkZWxl
dGUgX3ByaXZhdGU7CiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKIC0gKHZvaWQpZmluYWxp
emUKIHsKKyAgICBBU1NFUlRfTUFJTl9USFJFQUQoKTsKKwogICAgIGlmIChfcHJpdmF0ZSAmJiBf
cHJpdmF0ZS0+aW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3MpCiAgICAgICAgIC0tV2ViRGF0YVNv
dXJjZUNvdW50OwogCisgICAgZGVsZXRlIF9wcml2YXRlOworCiAgICAgW3N1cGVyIGZpbmFsaXpl
XTsKIH0KIApAQCAtNDIzLDcgKzQwMCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zy
b21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAKIC0g
KGlkIDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9uPilyZXByZXNlbnRhdGlvbgogewotICAgIHJl
dHVybiBfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb247CisgICAgcmV0dXJuIF9wcml2YXRlLT5yZXBy
ZXNlbnRhdGlvbi5nZXQoKTsKIH0KIAogLSAoV2ViRnJhbWUgKil3ZWJGcmFtZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153139</attachid>
            <date>2012-07-18 16:37:01 -0700</date>
            <delta_ts>2012-08-05 21:18:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91511-20120718163700.patch</filename>
            <type>text/plain</type>
            <size>17003</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYjk5NGI3MDAw
NWQyZTEzZTViMDJhN2JhMGNiYzRjZGRlMTQ0YmZiYy4uYTliN2I4NTllOGU3YTM3M2E2ZGNmYjI3
ZjY0ZDE4MTg0MDY1ZTQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEy
LTA3LTE4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFtNYWNdIE1ha2UgV2ViRGF0YVNvdXJjZVByaXZhdGUgbGlnaHRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE1MTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYkRhdGFTb3VyY2VQcml2YXRl
IGEgc2ltcGxlIEMrKyBjbGFzcyBhbmQgdXNlIHNtYXJ0IHBvaW50ZXJzIGZvciBtZW1vcnkgbWFu
YWdlbWVudC4KKworICAgICAgICBTaW5jZSB0aGUgImxvYWRlciIgYXR0cmlidXRlIGlzIG9ubHkg
c2V0IG9uIGluaXRpYWxpemF0aW9uLCBhbGwgdGhlIGFzc2VydGlvbnMgc3ByZWFkIGluCisgICAg
ICAgIHZhcmlvdXMgZnVuY3Rpb24gYXJlIHJlbW92ZWQgaW4gZmF2b3Igb2YgYXNzZXJ0aW9ucyBv
biBpbml0aWFsaXphdGlvbi4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5oOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkRhdGFTb3Vy
Y2VQcml2YXRlKToKKyAgICAgICAgKFdlYkRhdGFTb3VyY2VQcml2YXRlOjpXZWJEYXRhU291cmNl
UHJpdmF0ZSk6CisgICAgICAgIChXZWJEYXRhU291cmNlUHJpdmF0ZTo6fldlYkRhdGFTb3VyY2VQ
cml2YXRlKToKKyAgICAgICAgVXNlIGEgY2xhc3MgaW5zdGVhZCBvZiBhIE9iamVjdGl2ZS1DIG9i
amVjdCBmb3IgV2ViRGF0YVNvdXJjZVByaXZhdGUuCisgICAgICAgIFVzZSBzbWFydCBwb2ludGVy
cyBpbnN0ZWFkIG9mIHJlZiBjb3VudGluZyBtYW51YWxseS4KKworICAgICAgICAoLVtXZWJEYXRh
U291cmNlIF9zZXRSZXByZXNlbnRhdGlvbjpdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBf
YWRkU3ViZnJhbWVBcmNoaXZlczpdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfdHJhbnNm
ZXJBcHBsaWNhdGlvbkNhY2hlOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF9zZXREZWZl
ck1haW5SZXNvdXJjZURhdGFMb2FkOl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF9kb2N1
bWVudEZyYWdtZW50V2l0aEFyY2hpdmU6XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2lu
aXRXaXRoRG9jdW1lbnRMb2FkZXI6XSk6CisKKyAgICAgICAgKCtbV2ViRGF0YVNvdXJjZSBpbml0
aWFsaXplXSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgZGVhbGxvY10pOgorICAgICAgICAo
LVtXZWJEYXRhU291cmNlIGZpbmFsaXplXSk6CisgICAgICAgIFdlYkRhdGFTb3VyY2UgdGFrZXMg
dGhlIHNwZWNpYWwgaW5pdGlhbGl6YXRpb24gYW5kIGRlc3RydWN0aW9uIHRoYXQgd2FzIGRvbmUg
aW4gV2ViRGF0YVNvdXJjZVByaXZhdGUuCisKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSByZXBy
ZXNlbnRhdGlvbl0pOgorCiAyMDEyLTA3LTE3ICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrZ2FsYXRh
Z2VAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlZmFjdG9yIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCgpIHRvIGFjY2VwdCBJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFT
b3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5oCmluZGV4
IDFmZmQzMzk4YThmY2QxNDc0ZmYyM2VkYjJhYTE2Yzk4NDVlZDMwMjMuLmM3NDJmMWVmYjA5YmQ1
YWI4NGYyYjBhNzU5MjcwYjFkOTYxODIzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRGF0YVNvdXJjZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNCwgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAxMiBBcHBsZSBDb21wdXRlciwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzUsNyArMzUsNiBAQAogQGNsYXNzIE5TVVJMUmVxdWVzdDsKIEBjbGFzcyBOU1VSTFJl
c3BvbnNlOwogQGNsYXNzIFdlYkFyY2hpdmU7Ci1AY2xhc3MgV2ViRGF0YVNvdXJjZVByaXZhdGU7
CiBAY2xhc3MgV2ViRnJhbWU7CiBAY2xhc3MgV2ViUmVzb3VyY2U7CiAKQEAgLTQ5LDcgKzQ4LDcg
QEAKIEBpbnRlcmZhY2UgV2ViRGF0YVNvdXJjZSA6IE5TT2JqZWN0CiB7CiBAcHJpdmF0ZQotICAg
IFdlYkRhdGFTb3VyY2VQcml2YXRlICpfcHJpdmF0ZTsKKyAgICB2b2lkICpfcHJpdmF0ZTsKIH0K
IAogLyohCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3Vy
Y2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KaW5kZXgg
ZDkxMjVmNzBmNTAyNmQ2NGJiYjAwMzZmYjZhZDc3YmUzNDhkMzYwOC4uMDhmZGY3MDIzOTgxNmU2
NzE5NDU3ZDg3YzNjOGI3NTJjMDAwZTI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRGF0YVNvdXJjZS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjIs
NjMgKzYyLDM4IEBACiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNp
bXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2lt
cG9ydCA8d3RmL1JlZlB0ci5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAotQGludGVyZmFjZSBXZWJEYXRhU291cmNlUHJpdmF0ZSA6IE5T
T2JqZWN0IHsKLUBwdWJsaWMKLSAgICBXZWJEb2N1bWVudExvYWRlck1hYyogbG9hZGVyOwotICAg
Ci0gICAgaWQgPFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb24+IHJlcHJlc2VudGF0aW9uOwotICAg
IAotICAgIEJPT0wgcmVwcmVzZW50YXRpb25GaW5pc2hlZExvYWRpbmc7Ci0gICAgQk9PTCBpbmNs
dWRlZEluV2ViS2l0U3RhdGlzdGljczsKLX0KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdlYkRh
dGFTb3VyY2VQcml2YXRlIAotCi0rICh2b2lkKWluaXRpYWxpemUKLXsKLSAgICBKU0M6OmluaXRp
YWxpemVUaHJlYWRpbmcoKTsKLSAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNz
TWFpblRocmVhZCgpOwotICAgIFdlYkNvcmU6OlJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9v
cCgpOwotICAgIFdlYkNvcmVPYmpDRmluYWxpemVPbk1haW5UaHJlYWQoc2VsZik7Ci19Ci0KLS0g
KHZvaWQpZGVhbGxvYworY2xhc3MgV2ViRGF0YVNvdXJjZVByaXZhdGUKIHsKLSAgICBpZiAoV2Vi
Q29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW1dlYkRhdGFTb3VyY2VQcml2
YXRlIGNsYXNzXSwgc2VsZikpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChsb2FkZXIp
OwotICAgIGlmIChsb2FkZXIpIHsKLSAgICAgICAgQVNTRVJUKCFsb2FkZXItPmlzTG9hZGluZygp
KTsKLSAgICAgICAgbG9hZGVyLT5kZXRhY2hEYXRhU291cmNlKCk7Ci0gICAgICAgIGxvYWRlci0+
ZGVyZWYoKTsKK3B1YmxpYzoKKyAgICBXZWJEYXRhU291cmNlUHJpdmF0ZShQYXNzUmVmUHRyPFdl
YkRvY3VtZW50TG9hZGVyTWFjPiBsb2FkZXIpCisgICAgICAgIDogbG9hZGVyKGxvYWRlcikKKyAg
ICB7CisgICAgICAgIEFTU0VSVCh0aGlzLT5sb2FkZXIpOworICAgIH0KKyAgICB+V2ViRGF0YVNv
dXJjZVByaXZhdGUoKQorICAgIHsKKyAgICAgICAgaWYgKGxvYWRlcikgeworICAgICAgICAgICAg
QVNTRVJUKCFsb2FkZXItPmlzTG9hZGluZygpKTsKKyAgICAgICAgICAgIGxvYWRlci0+ZGV0YWNo
RGF0YVNvdXJjZSgpOworICAgICAgICB9CiAgICAgfQotICAgIAotICAgIFtyZXByZXNlbnRhdGlv
biByZWxlYXNlXTsKIAotICAgIFtzdXBlciBkZWFsbG9jXTsKLX0KKyAgICBSZWZQdHI8V2ViRG9j
dW1lbnRMb2FkZXJNYWM+IGxvYWRlcjsKKyAgICBSZXRhaW5QdHI8aWQ8V2ViRG9jdW1lbnRSZXBy
ZXNlbnRhdGlvbj4gPiByZXByZXNlbnRhdGlvbjsKKyAgICBCT09MIHJlcHJlc2VudGF0aW9uRmlu
aXNoZWRMb2FkaW5nOworICAgIEJPT0wgaW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3M7Cit9Owog
Ci0tICh2b2lkKWZpbmFsaXplCitzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2VQcml2YXRlKiBj
YXN0UHJpdmF0ZSh2b2lkKiBwcml2YXRlQXR0cmlidXRlKQogewotICAgIEFTU0VSVF9NQUlOX1RI
UkVBRCgpOwotCi0gICAgQVNTRVJUKGxvYWRlcik7Ci0gICAgaWYgKGxvYWRlcikgewotICAgICAg
ICBBU1NFUlQoIWxvYWRlci0+aXNMb2FkaW5nKCkpOwotICAgICAgICBsb2FkZXItPmRldGFjaERh
dGFTb3VyY2UoKTsKLSAgICAgICAgbG9hZGVyLT5kZXJlZigpOwotICAgIH0KLQotICAgIFtzdXBl
ciBmaW5hbGl6ZV07CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViRGF0YVNvdXJjZVBy
aXZhdGUqPihwcml2YXRlQXR0cmlidXRlKTsKIH0KIAotQGVuZAotCiBAaW50ZXJmYWNlIFdlYkRh
dGFTb3VyY2UgKFdlYkZpbGVJbnRlcm5hbCkKIEBlbmQKIApAQCAtMTI2LDkgKzEwMSw4IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAtICh2b2lkKV9zZXRSZXByZXNlbnRhdGlvbjooaWQ8
V2ViRG9jdW1lbnRSZXByZXNlbnRhdGlvbj4pcmVwcmVzZW50YXRpb24KIHsKLSAgICBbX3ByaXZh
dGUtPnJlcHJlc2VudGF0aW9uIHJlbGVhc2VdOwotICAgIF9wcml2YXRlLT5yZXByZXNlbnRhdGlv
biA9IFtyZXByZXNlbnRhdGlvbiByZXRhaW5dOwotICAgIF9wcml2YXRlLT5yZXByZXNlbnRhdGlv
bkZpbmlzaGVkTG9hZGluZyA9IE5POworICAgIGNhc3RQcml2YXRlKF9wcml2YXRlKS0+cmVwcmVz
ZW50YXRpb24gPSByZXByZXNlbnRhdGlvbjsKKyAgICBjYXN0UHJpdmF0ZShfcHJpdmF0ZSktPnJl
cHJlc2VudGF0aW9uRmluaXNoZWRMb2FkaW5nID0gTk87CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9p
ZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mg
b2JqQ0NsYXNzLCBOU0FycmF5ICpzdXBwb3J0VHlwZXMpCkBAIC0xNTIsMjEgKzEyNiwyOCBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAq
YWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiBAaW1wbGVtZW50YXRpb24gV2ViRGF0YVNvdXJjZSAo
V2ViUHJpdmF0ZSkKIAorKyAodm9pZClpbml0aWFsaXplCit7CisgICAgaWYgKHNlbGYgIT0gW1dl
YkRhdGFTb3VyY2UgY2xhc3NdKSB7CisgICAgICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OworICAgICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZCgp
OworICAgICAgICBXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKyAg
ICAgICAgV2ViQ29yZU9iakNGaW5hbGl6ZU9uTWFpblRocmVhZChzZWxmKTsKKyAgICB9Cit9CisK
IC0gKE5TRXJyb3IgKilfbWFpbkRvY3VtZW50RXJyb3IKIHsKLSAgICByZXR1cm4gX3ByaXZhdGUt
PmxvYWRlci0+bWFpbkRvY3VtZW50RXJyb3IoKTsKKyAgICByZXR1cm4gY2FzdFByaXZhdGUoX3By
aXZhdGUpLT5sb2FkZXItPm1haW5Eb2N1bWVudEVycm9yKCk7CiB9CiAKIC0gKHZvaWQpX2FkZFN1
YmZyYW1lQXJjaGl2ZXM6KE5TQXJyYXkgKilzdWJmcmFtZUFyY2hpdmVzCiB7CiAgICAgLy8gRklY
TUU6IFRoaXMgU1BJIGlzIHBvb3IsIHBvb3IgZGVzaWduLiAgQ2FuIHdlIGNvbWUgdXAgd2l0aCBh
bm90aGVyIHNvbHV0aW9uIGZvciB0aG9zZSB3aG8gbmVlZCBpdD8KLSAgICBEb2N1bWVudExvYWRl
ciogbG9hZGVyID0gW3NlbGYgX2RvY3VtZW50TG9hZGVyXTsKLSAgICBBU1NFUlQobG9hZGVyKTsK
LSAgICAKICAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbc3ViZnJhbWVBcmNoaXZlcyBv
YmplY3RFbnVtZXJhdG9yXTsKICAgICBXZWJBcmNoaXZlICphcmNoaXZlOwogICAgIHdoaWxlICgo
YXJjaGl2ZSA9IFtlbnVtZXJhdG9yIG5leHRPYmplY3RdKSAhPSBuaWwpCi0gICAgICAgIGxvYWRl
ci0+YWRkQWxsQXJjaGl2ZVJlc291cmNlcyhbYXJjaGl2ZSBfY29yZUxlZ2FjeVdlYkFyY2hpdmVd
KTsKKyAgICAgICAgY2FzdFByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPmFkZEFsbEFyY2hpdmVS
ZXNvdXJjZXMoW2FyY2hpdmUgX2NvcmVMZWdhY3lXZWJBcmNoaXZlXSk7CiB9CiAKIC0gKE5TRmls
ZVdyYXBwZXIgKilfZmlsZVdyYXBwZXJGb3JVUkw6KE5TVVJMICopVVJMCkBAIC0xOTcsMjQgKzE3
OCwyMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGlj
dGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiAtIChCT09MKV90cmFuc2ZlckFwcGxp
Y2F0aW9uQ2FjaGU6KE5TU3RyaW5nKilkZXN0aW5hdGlvbkJ1bmRsZUlkZW50aWZpZXIKIHsKLSAg
ICBEb2N1bWVudExvYWRlciogbG9hZGVyID0gW3NlbGYgX2RvY3VtZW50TG9hZGVyXTsKLSAgICAK
LSAgICBpZiAoIWxvYWRlcikKKyAgICBpZiAoIWNhc3RQcml2YXRlKF9wcml2YXRlKS0+bG9hZGVy
KQogICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIAogICAgIE5TU3RyaW5nICpjYWNoZURpciA9
IFtOU1N0cmluZyBfd2Via2l0X2xvY2FsQ2FjaGVEaXJlY3RvcnlXaXRoQnVuZGxlSWRlbnRpZmll
cjpkZXN0aW5hdGlvbkJ1bmRsZUlkZW50aWZpZXJdOwogICAgIAotICAgIHJldHVybiBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6c3RvcmVDb3B5T2ZDYWNoZShjYWNoZURpciwgbG9hZGVyLT5hcHBs
aWNhdGlvbkNhY2hlSG9zdCgpKTsKKyAgICByZXR1cm4gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6
OnN0b3JlQ29weU9mQ2FjaGUoY2FjaGVEaXIsIGNhc3RQcml2YXRlKF9wcml2YXRlKS0+bG9hZGVy
LT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKTsKIH0KIAogLSAodm9pZClfc2V0RGVmZXJNYWluUmVz
b3VyY2VEYXRhTG9hZDooQk9PTClmbGFnCiB7Ci0gICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9
IFtzZWxmIF9kb2N1bWVudExvYWRlcl07Ci0KLSAgICBpZiAoIWxvYWRlcikKKyAgICBpZiAoIWNh
c3RQcml2YXRlKF9wcml2YXRlKS0+bG9hZGVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBsb2Fk
ZXItPnNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoZmxhZyk7CisgICAgY2FzdFByaXZhdGUo
X3ByaXZhdGUpLT5sb2FkZXItPnNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoZmxhZyk7CiB9
CiAKIEBlbmQKQEAgLTIyMyw3ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNG
cm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogCiAt
ICh2b2lkKV9maW5pc2hlZExvYWRpbmcKIHsKLSAgICBfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb25G
aW5pc2hlZExvYWRpbmcgPSBZRVM7CisgICAgY2FzdFByaXZhdGUoX3ByaXZhdGUpLT5yZXByZXNl
bnRhdGlvbkZpbmlzaGVkTG9hZGluZyA9IFlFUzsKICAgICBbW3NlbGYgcmVwcmVzZW50YXRpb25d
IGZpbmlzaGVkTG9hZGluZ1dpdGhEYXRhU291cmNlOnNlbGZdOwogfQogCkBAIC0yMzgsOCArMjE1
LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rp
b25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKIAogLSAodm9pZClfc2V0TWFpbkRvY3VtZW50
RXJyb3I6KE5TRXJyb3IgKillcnJvcgogewotICAgIGlmICghX3ByaXZhdGUtPnJlcHJlc2VudGF0
aW9uRmluaXNoZWRMb2FkaW5nKSB7Ci0gICAgICAgIF9wcml2YXRlLT5yZXByZXNlbnRhdGlvbkZp
bmlzaGVkTG9hZGluZyA9IFlFUzsKKyAgICBpZiAoIWNhc3RQcml2YXRlKF9wcml2YXRlKS0+cmVw
cmVzZW50YXRpb25GaW5pc2hlZExvYWRpbmcpIHsKKyAgICAgICAgY2FzdFByaXZhdGUoX3ByaXZh
dGUpLT5yZXByZXNlbnRhdGlvbkZpbmlzaGVkTG9hZGluZyA9IFlFUzsKICAgICAgICAgW1tzZWxm
IHJlcHJlc2VudGF0aW9uXSByZWNlaXZlZEVycm9yOmVycm9yIHdpdGhEYXRhU291cmNlOnNlbGZd
OwogICAgIH0KIH0KQEAgLTI4OSw4ICsyNjYsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlw
ZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAog
ICAgICAgICBpZiAoW1dlYlZpZXcgY2FuU2hvd01JTUVUeXBlQXNIVE1MOk1JTUVUeXBlXSkgewog
ICAgICAgICAgICAgTlNTdHJpbmcgKm1hcmt1cFN0cmluZyA9IFtbTlNTdHJpbmcgYWxsb2NdIGlu
aXRXaXRoRGF0YTpbbWFpblJlc291cmNlIGRhdGFdIGVuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBzZWVtcyBwb29yIGZvcm0gdG8gZG8gdGhpcyBh
cyBhIHNpZGUgZWZmZWN0IG9mIGdldHRpbmcgYSBkb2N1bWVudCBmcmFnbWVudAotICAgICAgICAg
ICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBbc2VsZiBfZG9jdW1lbnRMb2FkZXJdKQot
ICAgICAgICAgICAgICAgIGxvYWRlci0+YWRkQWxsQXJjaGl2ZVJlc291cmNlcyhbYXJjaGl2ZSBf
Y29yZUxlZ2FjeVdlYkFyY2hpdmVdKTsKKyAgICAgICAgICAgIGlmIChjYXN0UHJpdmF0ZShfcHJp
dmF0ZSktPmxvYWRlcikKKyAgICAgICAgICAgICAgICBjYXN0UHJpdmF0ZShfcHJpdmF0ZSktPmxv
YWRlci0+YWRkQWxsQXJjaGl2ZVJlc291cmNlcyhbYXJjaGl2ZSBfY29yZUxlZ2FjeVdlYkFyY2hp
dmVdKTsKIAogICAgICAgICAgICAgRE9NRG9jdW1lbnRGcmFnbWVudCAqZnJhZ21lbnQgPSBbW3Nl
bGYgd2ViRnJhbWVdIF9kb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzptYXJrdXBTdHJp
bmcgYmFzZVVSTFN0cmluZzpbW21haW5SZXNvdXJjZSBVUkxdIF93ZWJfb3JpZ2luYWxEYXRhQXNT
dHJpbmddXTsKICAgICAgICAgICAgIFttYXJrdXBTdHJpbmcgcmVsZWFzZV07CkBAIC0zMzIsNyAr
MzA5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURp
Y3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKIC8vIE1heSByZXR1cm4gbmlsIGlmIG5v
dCBpbml0aWFsaXplZCB3aXRoIGEgVVJMLgogLSAoTlNVUkwgKilfVVJMCiB7Ci0gICAgY29uc3Qg
S1VSTCYgdXJsID0gX3ByaXZhdGUtPmxvYWRlci0+dXJsKCk7CisgICAgY29uc3QgS1VSTCYgdXJs
ID0gY2FzdFByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPnVybCgpOwogICAgIGlmICh1cmwuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiB1cmw7CkBAIC0zNjAsMTIg
KzMzNywxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxl
RGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgICAgICBbbmV3UmVwIHJlbGVh
c2VdOwogICAgIH0KIAotICAgIFtfcHJpdmF0ZS0+cmVwcmVzZW50YXRpb24gc2V0RGF0YVNvdXJj
ZTpzZWxmXTsKKyAgICBpZDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9uPiByZXByZXNlbnRhdGlv
biA9IGNhc3RQcml2YXRlKF9wcml2YXRlKS0+cmVwcmVzZW50YXRpb24uZ2V0KCk7CisgICAgW3Jl
cHJlc2VudGF0aW9uIHNldERhdGFTb3VyY2U6c2VsZl07CiB9CiAKIC0gKERvY3VtZW50TG9hZGVy
KilfZG9jdW1lbnRMb2FkZXIKIHsKLSAgICByZXR1cm4gX3ByaXZhdGUtPmxvYWRlcjsKKyAgICBy
ZXR1cm4gY2FzdFByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXIuZ2V0KCk7CiB9CiAKIC0gKGlkKV9p
bml0V2l0aERvY3VtZW50TG9hZGVyOihQYXNzUmVmUHRyPFdlYkRvY3VtZW50TG9hZGVyTWFjPils
b2FkZXIKQEAgLTM3MywxNCArMzUxLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zy
b21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAgICAg
c2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7
Ci0gICAgCi0gICAgX3ByaXZhdGUgPSBbW1dlYkRhdGFTb3VyY2VQcml2YXRlIGFsbG9jXSBpbml0
XTsKLSAgICAKLSAgICBfcHJpdmF0ZS0+bG9hZGVyID0gbG9hZGVyLmxlYWtSZWYoKTsKKworICAg
IEFTU0VSVChsb2FkZXIpOworICAgIF9wcml2YXRlID0gc3RhdGljX2Nhc3Q8dm9pZCo+KG5ldyBX
ZWJEYXRhU291cmNlUHJpdmF0ZShsb2FkZXIpKTsKICAgICAgICAgCi0gICAgTE9HKExvYWRpbmcs
ICJjcmVhdGluZyBkYXRhc291cmNlIGZvciAlQCIsIHN0YXRpY19jYXN0PE5TVVJMICo+KF9wcml2
YXRlLT5sb2FkZXItPnJlcXVlc3QoKS51cmwoKSkpOworICAgIExPRyhMb2FkaW5nLCAiY3JlYXRp
bmcgZGF0YXNvdXJjZSBmb3IgJUAiLCBzdGF0aWNfY2FzdDxOU1VSTCAqPihjYXN0UHJpdmF0ZShf
cHJpdmF0ZSktPmxvYWRlci0+cmVxdWVzdCgpLnVybCgpKSk7CiAKLSAgICBpZiAoKF9wcml2YXRl
LT5pbmNsdWRlZEluV2ViS2l0U3RhdGlzdGljcyA9IFtbc2VsZiB3ZWJGcmFtZV0gX2lzSW5jbHVk
ZWRJbldlYktpdFN0YXRpc3RpY3NdKSkKKyAgICBpZiAoKGNhc3RQcml2YXRlKF9wcml2YXRlKS0+
aW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3MgPSBbW3NlbGYgd2ViRnJhbWVdIF9pc0luY2x1ZGVk
SW5XZWJLaXRTdGF0aXN0aWNzXSkpCiAgICAgICAgICsrV2ViRGF0YVNvdXJjZUNvdW50OwogCiAg
ICAgcmV0dXJuIHNlbGY7CkBAIC0zOTcsMjUgKzM3NCwzMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
YWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9i
akNDbAogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICBpZiAoX3ByaXZhdGUgJiYgX3ByaXZhdGUt
PmluY2x1ZGVkSW5XZWJLaXRTdGF0aXN0aWNzKQorICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxl
RGVhbGxvY2F0ZU9uTWFpblRocmVhZChbV2ViRGF0YVNvdXJjZSBjbGFzc10sIHNlbGYpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoY2FzdFByaXZhdGUoX3ByaXZhdGUpICYmIGNhc3RQcml2
YXRlKF9wcml2YXRlKS0+aW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3MpCiAgICAgICAgIC0tV2Vi
RGF0YVNvdXJjZUNvdW50OwogCi0gICAgW19wcml2YXRlIHJlbGVhc2VdOworICAgIGRlbGV0ZSBj
YXN0UHJpdmF0ZShfcHJpdmF0ZSk7CiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKIC0gKHZv
aWQpZmluYWxpemUKIHsKLSAgICBpZiAoX3ByaXZhdGUgJiYgX3ByaXZhdGUtPmluY2x1ZGVkSW5X
ZWJLaXRTdGF0aXN0aWNzKQorICAgIEFTU0VSVF9NQUlOX1RIUkVBRCgpOworCisgICAgaWYgKGNh
c3RQcml2YXRlKF9wcml2YXRlKSAmJiBjYXN0UHJpdmF0ZShfcHJpdmF0ZSktPmluY2x1ZGVkSW5X
ZWJLaXRTdGF0aXN0aWNzKQogICAgICAgICAtLVdlYkRhdGFTb3VyY2VDb3VudDsKIAorICAgIGRl
bGV0ZSBjYXN0UHJpdmF0ZShfcHJpdmF0ZSk7CisKICAgICBbc3VwZXIgZmluYWxpemVdOwogfQog
CiAtIChOU0RhdGEgKilkYXRhCiB7Ci0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbWFpblJlc291
cmNlRGF0YSA9IF9wcml2YXRlLT5sb2FkZXItPm1haW5SZXNvdXJjZURhdGEoKTsKKyAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBtYWluUmVzb3VyY2VEYXRhID0gY2FzdFByaXZhdGUoX3ByaXZhdGUp
LT5sb2FkZXItPm1haW5SZXNvdXJjZURhdGEoKTsKICAgICBpZiAoIW1haW5SZXNvdXJjZURhdGEp
CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0dXJuIFttYWluUmVzb3VyY2VEYXRhLT5jcmVh
dGVOU0RhdGEoKSBhdXRvcmVsZWFzZV07CkBAIC00MjMsMTIgKzQwNywxMiBAQCBzdGF0aWMgaW5s
aW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMs
IENsYXNzIG9iakNDbAogCiAtIChpZCA8V2ViRG9jdW1lbnRSZXByZXNlbnRhdGlvbj4pcmVwcmVz
ZW50YXRpb24KIHsKLSAgICByZXR1cm4gX3ByaXZhdGUtPnJlcHJlc2VudGF0aW9uOworICAgIHJl
dHVybiBjYXN0UHJpdmF0ZShfcHJpdmF0ZSktPnJlcHJlc2VudGF0aW9uLmdldCgpOwogfQogCiAt
IChXZWJGcmFtZSAqKXdlYkZyYW1lCiB7Ci0gICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0g
X3ByaXZhdGUtPmxvYWRlci0+ZnJhbWVMb2FkZXIoKTsKKyAgICBGcmFtZUxvYWRlciogZnJhbWVM
b2FkZXIgPSBjYXN0UHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci0+ZnJhbWVMb2FkZXIoKTsKICAg
ICBpZiAoIWZyYW1lTG9hZGVyKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGZyYW1lTG9hZGVyLT5jbGllbnQoKSktPndl
YkZyYW1lKCk7CkBAIC00MzYsMjcgKzQyMCwyNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlw
ZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAog
CiAtIChOU1VSTFJlcXVlc3QgKilpbml0aWFsUmVxdWVzdAogewotICAgIHJldHVybiBfcHJpdmF0
ZS0+bG9hZGVyLT5vcmlnaW5hbFJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoKTsKKyAgICByZXR1cm4g
Y2FzdFByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPm9yaWdpbmFsUmVxdWVzdCgpLm5zVVJMUmVx
dWVzdCgpOwogfQogCiAtIChOU011dGFibGVVUkxSZXF1ZXN0ICopcmVxdWVzdAogewotICAgIEZy
YW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IF9wcml2YXRlLT5sb2FkZXItPmZyYW1lTG9hZGVyKCk7
CisgICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gY2FzdFByaXZhdGUoX3ByaXZhdGUpLT5s
b2FkZXItPmZyYW1lTG9hZGVyKCk7CiAgICAgaWYgKCFmcmFtZUxvYWRlciB8fCAhZnJhbWVMb2Fk
ZXItPmZyYW1lSGFzTG9hZGVkKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICAvLyBGSVhN
RTogdGhpcyBjYXN0IGlzIGR1YmlvdXMKLSAgICByZXR1cm4gKE5TTXV0YWJsZVVSTFJlcXVlc3Qg
KilfcHJpdmF0ZS0+bG9hZGVyLT5yZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KCk7CisgICAgcmV0dXJu
IChOU011dGFibGVVUkxSZXF1ZXN0ICopY2FzdFByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPnJl
cXVlc3QoKS5uc1VSTFJlcXVlc3QoKTsKIH0KIAogLSAoTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNl
CiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5sb2FkZXItPnJlc3BvbnNlKCkubnNVUkxSZXNwb25z
ZSgpOworICAgIHJldHVybiBjYXN0UHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci0+cmVzcG9uc2Uo
KS5uc1VSTFJlc3BvbnNlKCk7CiB9CiAKIC0gKE5TU3RyaW5nICopdGV4dEVuY29kaW5nTmFtZQog
ewotICAgIE5TU3RyaW5nICp0ZXh0RW5jb2RpbmdOYW1lID0gX3ByaXZhdGUtPmxvYWRlci0+b3Zl
cnJpZGVFbmNvZGluZygpOworICAgIE5TU3RyaW5nICp0ZXh0RW5jb2RpbmdOYW1lID0gY2FzdFBy
aXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPm92ZXJyaWRlRW5jb2RpbmcoKTsKICAgICBpZiAoIXRl
eHRFbmNvZGluZ05hbWUpCiAgICAgICAgIHRleHRFbmNvZGluZ05hbWUgPSBbW3NlbGYgcmVzcG9u
c2VdIHRleHRFbmNvZGluZ05hbWVdOwogICAgIHJldHVybiB0ZXh0RW5jb2RpbmdOYW1lOwpAQCAt
NDY0LDcgKzQ0OCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011
dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAKIC0gKEJPT0wpaXNMb2Fk
aW5nCiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5sb2FkZXItPmlzTG9hZGluZ0luQVBJU2Vuc2Uo
KTsKKyAgICByZXR1cm4gY2FzdFByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPmlzTG9hZGluZ0lu
QVBJU2Vuc2UoKTsKIH0KIAogLy8gUmV0dXJucyBuaWwgb3IgdGhlIHBhZ2UgdGl0bGUuCkBAIC00
NzUsNyArNDU5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0
YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2wKIAogLSAoTlNVUkwgKil1bnJl
YWNoYWJsZVVSTAogewotICAgIGNvbnN0IEtVUkwmIHVucmVhY2hhYmxlVVJMID0gX3ByaXZhdGUt
PmxvYWRlci0+dW5yZWFjaGFibGVVUkwoKTsKKyAgICBjb25zdCBLVVJMJiB1bnJlYWNoYWJsZVVS
TCA9IGNhc3RQcml2YXRlKF9wcml2YXRlKS0+bG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpOwogICAg
IGlmICh1bnJlYWNoYWJsZVVSTC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAg
cmV0dXJuIHVucmVhY2hhYmxlVVJMOwpAQCAtNDg0LDcgKzQ2OCw3IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xh
c3Mgb2JqQ0NsCiAtIChXZWJBcmNoaXZlICopd2ViQXJjaGl2ZQogewogICAgIC8vIGl0IG1ha2Vz
IG5vIHNlbnNlIHRvIGdyYWIgYSBXZWJBcmNoaXZlIGZyb20gYW4gdW5jb21taXR0ZWQgZG9jdW1l
bnQuCi0gICAgaWYgKCFfcHJpdmF0ZS0+bG9hZGVyLT5pc0NvbW1pdHRlZCgpKQorICAgIGlmICgh
Y2FzdFByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPmlzQ29tbWl0dGVkKCkpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAgICAgICAgIAogICAgIHJldHVybiBbW1tXZWJBcmNoaXZlIGFsbG9jXSBfaW5p
dFdpdGhDb3JlTGVnYWN5V2ViQXJjaGl2ZTpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoY29yZShb
c2VsZiB3ZWJGcmFtZV0pKV0gYXV0b3JlbGVhc2VdOwpAQCAtNDkyLDE0ICs0NzYsMTQgQEAgc3Rh
dGljIGlubGluZSB2b2lkIGFkZFR5cGVzRnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFs
bFR5cGVzLCBDbGFzcyBvYmpDQ2wKIAogLSAoV2ViUmVzb3VyY2UgKiltYWluUmVzb3VyY2UKIHsK
LSAgICBSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBjb3JlUmVzb3VyY2UgPSBfcHJpdmF0ZS0+bG9h
ZGVyLT5tYWluUmVzb3VyY2UoKTsKKyAgICBSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiBjb3JlUmVz
b3VyY2UgPSBjYXN0UHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci0+bWFpblJlc291cmNlKCk7CiAg
ICAgcmV0dXJuIFtbW1dlYlJlc291cmNlIGFsbG9jXSBfaW5pdFdpdGhDb3JlUmVzb3VyY2U6Y29y
ZVJlc291cmNlLnJlbGVhc2UoKV0gYXV0b3JlbGVhc2VdOwogfQogCiAtIChOU0FycmF5ICopc3Vi
cmVzb3VyY2VzCiB7CiAgICAgVmVjdG9yPFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiA+IGNv
cmVTdWJyZXNvdXJjZXM7Ci0gICAgX3ByaXZhdGUtPmxvYWRlci0+Z2V0U3VicmVzb3VyY2VzKGNv
cmVTdWJyZXNvdXJjZXMpOworICAgIGNhc3RQcml2YXRlKF9wcml2YXRlKS0+bG9hZGVyLT5nZXRT
dWJyZXNvdXJjZXMoY29yZVN1YnJlc291cmNlcyk7CiAKICAgICBOU011dGFibGVBcnJheSAqc3Vi
cmVzb3VyY2VzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpjb3Jl
U3VicmVzb3VyY2VzLnNpemUoKV07CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvcmVT
dWJyZXNvdXJjZXMuc2l6ZSgpOyArK2kpIHsKQEAgLTUxNSwxNCArNDk5LDE0IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBl
cywgQ2xhc3Mgb2JqQ0NsCiAKIC0gKFdlYlJlc291cmNlICopc3VicmVzb3VyY2VGb3JVUkw6KE5T
VVJMICopVVJMCiB7Ci0gICAgUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gc3VicmVzb3VyY2UgPSBf
cHJpdmF0ZS0+bG9hZGVyLT5zdWJyZXNvdXJjZShVUkwpOworICAgIFJlZlB0cjxBcmNoaXZlUmVz
b3VyY2U+IHN1YnJlc291cmNlID0gY2FzdFByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPnN1YnJl
c291cmNlKFVSTCk7CiAgICAgCiAgICAgcmV0dXJuIHN1YnJlc291cmNlID8gW1tbV2ViUmVzb3Vy
Y2UgYWxsb2NdIF9pbml0V2l0aENvcmVSZXNvdXJjZTpzdWJyZXNvdXJjZS5nZXQoKV0gYXV0b3Jl
bGVhc2VdIDogbmlsOwogfQogCiAtICh2b2lkKWFkZFN1YnJlc291cmNlOihXZWJSZXNvdXJjZSAq
KXN1YnJlc291cmNlCiB7ICAgIAotICAgIF9wcml2YXRlLT5sb2FkZXItPmFkZEFyY2hpdmVSZXNv
dXJjZShbc3VicmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0pOworICAgIGNhc3RQcml2YXRlKF9wcml2
YXRlKS0+bG9hZGVyLT5hZGRBcmNoaXZlUmVzb3VyY2UoW3N1YnJlc291cmNlIF9jb3JlUmVzb3Vy
Y2VdKTsKIH0KIAogQGVuZAo=
</data>
<flag name="review"
          id="162008"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>