<?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>55875</bug_id>
          
          <creation_ts>2011-03-07 06:32:47 -0800</creation_ts>
          <short_desc>[Qt][WK2][Symbian] Shared memory implementation for Symbian</short_desc>
          <delta_ts>2011-05-16 05:41:21 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>S60 Hardware</rep_platform>
          <op_sys>S60 3rd edition</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50251</blocked>
    
    <blocked>55877</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Siddharth Mathur">s.mathur</reporter>
          <assigned_to name="Siddharth Mathur">s.mathur</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>363326</commentid>
    <comment_count>0</comment_count>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-03-07 06:32:47 -0800</bug_when>
    <thetext>Use Symbian OS APIs to implement shared memory used by WK2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387519</commentid>
    <comment_count>1</comment_count>
      <attachid>89987</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-04-17 21:24:56 -0700</bug_when>
    <thetext>Created attachment 89987
Native Symbian IPC implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387521</commentid>
    <comment_count>2</comment_count>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-04-17 21:26:21 -0700</bug_when>
    <thetext>I split out shared memory changes from Bug 55877 to simplify life.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387530</commentid>
    <comment_count>3</comment_count>
      <attachid>89991</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-04-17 21:45:51 -0700</bug_when>
    <thetext>Created attachment 89991
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388348</commentid>
    <comment_count>4</comment_count>
      <attachid>89991</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-04-19 01:01:22 -0700</bug_when>
    <thetext>Comment on attachment 89991
Updated patch

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

Shou;dn&apos;t we make this work in all cases before committing it?

&gt; Source/WebKit2/Platform/SharedMemory.h:76
&gt; +        mutable uint32_t m_name;

im not sure this is a good variable name.

&gt; Source/WebKit2/Platform/qt/SharedMemorySymbian.cpp:38
&gt; +_LIT(KFormatToString, &quot;%d&quot;);

What does this mean?

&gt; Source/WebKit2/Platform/qt/SharedMemorySymbian.cpp:41
&gt; +    : m_name(0), m_size(0)

We normally put these on separate lines

&gt; Source/WebKit2/Platform/qt/SharedMemorySymbian.cpp:58
&gt; +    // name of the global chunk (masquarading as int32_t for ease of serialization) 

isn&apos;t masquerading spelled wrongly.

&gt; Source/WebKit2/Platform/qt/SharedMemorySymbian.cpp:71
&gt; +    uint32_t name;
&gt; +     if (!decoder-&gt;decodeUInt32(name))
&gt; +         return false;
&gt; +       

indentation issue here

&gt; Source/WebKit2/Platform/qt/SharedMemorySymbian.cpp:77
&gt; +// Create a new shared memory segment

useless comment :) the method already has a descriptive name

&gt; Source/WebKit2/Platform/qt/SharedMemorySymbian.cpp:81
&gt; +    // On Symbian, global chunks (shared memory segments) have system-unique names, so we pick a random 
&gt; +    // number from the kernel&apos;s random pool and use it as a string.

Are you sure these will never be reused by the kernel?

&gt; Source/WebKit2/Platform/qt/SharedMemorySymbian.cpp:102
&gt; +// Take a shared memory handle given usually by another process, and open it locally for read or write
&gt; +PassRefPtr&lt;SharedMemory&gt; SharedMemory::create(const Handle&amp; handle, Protection protection)

Maybe rename the method? or is it a global one being implemented here?

&gt; Source/WebKit2/Platform/qt/SharedMemorySymbian.cpp:146
&gt; +    // convert the name (string form) to uint32_t

Please use proper sentences (start with capital, ends with punctuation mark of some kind)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390400</commentid>
    <comment_count>5</comment_count>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-04-21 15:34:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 89991 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=89991&amp;action=review
&gt; 
&gt; Shou;dn&apos;t we make this work in all cases before committing it?
&gt; 

Since you as a reviewer appear to be OK with everything being together in one (working on Symbian) patch, I am removing the Shared Memory implementation from here, and including all deltas in one patch in Bug 55877. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390750</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-04-22 06:35:59 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 89991 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=89991&amp;action=review
&gt; &gt; 
&gt; &gt; Shou;dn&apos;t we make this work in all cases before committing it?
&gt; &gt; 
&gt; 
&gt; Since you as a reviewer appear to be OK with everything being together in one (working on Symbian) patch, I am removing the Shared Memory implementation from here, and including all deltas in one patch in Bug 55877. :)

I asked this because according to the comments in the patch there are open issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397963</commentid>
    <comment_count>7</comment_count>
      <attachid>92256</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-04 09:24:40 -0700</bug_when>
    <thetext>Created attachment 92256
Updated patch with only SharedMemory impl for Symbian

This patch has addressed most feedback from Kenneth in this bug and from Balazs in Bug 55877. It&apos;s ready for review from my side. 

Kenneth: I did discuss the unresolved issue of when to Close() the chunk (mentioned in the Changelog and in the SharedMemory d&apos;tor) with other Symbian and Qt gurus, and there are no clear solutions since Symbian client-server IPC is not being used for this patch. I chose to use the less pure half-duplex pipes here as they fit better with how other OSes do the WebKit2&apos;s IPC setup, process launching, ownership transfer of the endpoint and read/writes. If we decide to productize the Symbian port later, we can revisit the leaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397974</commentid>
    <comment_count>8</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-04 09:36:13 -0700</bug_when>
    <thetext>Attachment 92256 did not build on qt:
Build output: http://queues.webkit.org/results/8556566</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398048</commentid>
    <comment_count>9</comment_count>
      <attachid>92274</attachid>
    <who name="Siddharth Mathur">s.mathur</who>
    <bug_when>2011-05-04 10:33:47 -0700</bug_when>
    <thetext>Created attachment 92274
Updated patch

Add edited Platform.h which excludes Symbian from USE(UNIX_DOMAIN_SOCKETS) flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404394</commentid>
    <comment_count>10</comment_count>
      <attachid>92274</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-05-16 03:10:10 -0700</bug_when>
    <thetext>Comment on attachment 92274
Updated patch

Looks good to me as one step towards porting WebKit2 to Symbian. As other pieces of the port get implemented, the SharedMemory destructor needs to be revisited.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404429</commentid>
    <comment_count>11</comment_count>
      <attachid>92274</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-16 05:41:17 -0700</bug_when>
    <thetext>Comment on attachment 92274
Updated patch

Clearing flags on attachment: 92274

Committed r86560: &lt;http://trac.webkit.org/changeset/86560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404430</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-16 05:41:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89987</attachid>
            <date>2011-04-17 21:24:56 -0700</date>
            <delta_ts>2011-04-17 21:45:51 -0700</delta_ts>
            <desc>Native Symbian IPC implementation</desc>
            <filename>55875_v1.patch</filename>
            <type>text/plain</type>
            <size>7248</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0MTIwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDQtMTcgIFNpZGRoYXJ0
aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdW1dLMl1bU3ltYmlhbl0gTmF0aXZl
IHNoYXJlZCBtZW1vcnkgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTU4NzUKKyAKKyAgICAgICAgVXNlIGdsb2JhbCBjaHVua3MgZm9yIHNo
YXJpbmcgZGF0YSBiZXR3ZWVuIHByb2Nlc3Nlcy4gCisgICAgICAgIFRoaXMgaXMgYW4gaW5pdGlh
bCBpbXBsZW1lbnRhdGlvbi4gU29tZSBvdXRzdGFuZGluZyBpc3N1ZXMKKyAgICAgICAgYXJlIHRo
ZSBjb3JyZWN0IHdheSB0byBjbG9zZSgpIHRoZSBjaHVuayBpbiB0aGUgU2hhcmVkTWVtb3J5IGQn
dG9yLiAKKyAKKyAgICAgICAgKiBQbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaDoKKyAgICAgICAgKiBQ
bGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1iaWFuLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjpIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFy
ZWRNZW1vcnk6OkhhbmRsZTo6fkhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9y
eTo6SGFuZGxlOjppc051bGwpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRs
ZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29k
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6U2hhcmVkTWVtb3J5Ojp+U2hhcmVkTWVtb3J5KToKKyAgICAgICAgKFdlYktpdDo6U2hh
cmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6
OnN5c3RlbVBhZ2VTaXplKToKKyAgICAgICAgKiBQbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVu
aXguY3BwOgorICAgICAgICAqIFdlYktpdDIucHJvOgorCiAyMDExLTA0LTE3ICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2Iv
NTg0NjM+IFN3aXRjaCBIVFRQIHBpcGVsaW5pbmcgZnJvbSB1c2VyIGRlZmF1bHQgdG8gcHJpdmF0
ZSBzZXR0aW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gODM4NTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMzEwLDYgKzMxNCw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIFBsYXRmb3JtL3F0L01vZHVsZVF0LmNwcCBcCiAgICAgUGxhdGZvcm0v
cXQvUnVuTG9vcFF0LmNwcCBcCiAgICAgUGxhdGZvcm0vcXQvV29ya1F1ZXVlUXQuY3BwIFwKKyAg
ICBQbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1iaWFuLmNwcCBcCiAgICAgUGxhdGZvcm0vdW5p
eC9TaGFyZWRNZW1vcnlVbml4LmNwcCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9s
bGVyUHJveHkuY3BwIFwKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIFwKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCShyZXZpc2lvbiA4Mzg1OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCSh3b3JraW5nIGNvcHkp
CkBAIC03Miw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICAgICAgbXV0YWJsZSBIQU5ETEUgbV9oYW5k
bGU7CiAjZWxpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICAgICAgICAgbXV0YWJsZSBpbnQg
bV9maWxlRGVzY3JpcHRvcjsKKyNlbGlmIE9TKFNZTUJJQU4pCisgICAgICAgIG11dGFibGUgdWlu
dDMyX3QgbV9uYW1lOwogI2VuZGlmCiAgICAgICAgIHNpemVfdCBtX3NpemU7CiAgICAgfTsKQEAg
LTEwNSw2ICsxMDcsOCBAQCBwcml2YXRlOgogICAgIEhBTkRMRSBtX2hhbmRsZTsKICNlbGlmIFVT
RShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAgIGludCBtX2ZpbGVEZXNjcmlwdG9yOworI2VsaWYg
T1MoU1lNQklBTikKKyAgICBpbnQgbV9oYW5kbGU7ICAgIAogI2VuZGlmCiB9OwogCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1iaWFuLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1iaWFuLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1NoYXJlZE1lbW9y
eVN5bWJpYW4uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0MSBAQAorI2luY2x1ZGUgImNv
bmZpZy5oIgorI2lmIFBMQVRGT1JNKFFUKSAmJiBPUyhTWU1CSUFOKQorI2luY2x1ZGUgIlNoYXJl
ZE1lbW9yeS5oIgorCisjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiQXJn
dW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSA8ZTMybWF0aC5oPgorI2luY2x1ZGUgPHN5cy9wYXJh
bS5oPgorCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitfTElUKEtGb3JtYXRUb1N0cmluZywgIiVk
Iik7CisKK1NoYXJlZE1lbW9yeTo6SGFuZGxlOjpIYW5kbGUoKQorICAgIDogbV9uYW1lKDApLCBt
X3NpemUoMCkKK3sKK30KKworU2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5kbGUoKQoreyAgIAor
fQorCitib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAoreworICAgIHJl
dHVybiAhbV9uYW1lOworfQorCit2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIEFTU0VSVCghaXNO
dWxsKCkpOyAgICAKKyAgICBlbmNvZGVyLT5lbmNvZGVVSW50MzIobV9zaXplKTsKKyAgICAvLyBu
YW1lIG9mIHRoZSBnbG9iYWwgY2h1bmsgKG1hc3F1YXJhZGluZyBhcyBpbnQzMl90IGZvciBlYXNl
IG9mIHNlcmlhbGl6YXRpb24pIAorICAgIGVuY29kZXItPmVuY29kZVVJbnQzMihtX25hbWUpOyAK
K30KKworYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCit7CisgICAgc2l6ZV90IHNpemU7Cisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIoc2l6ZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsgCisgICAgCisgICAgdWludDMyX3QgbmFtZTsKKyAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVV
SW50MzIobmFtZSkpCisgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgCisgICAgIGhhbmRs
ZS5tX3NpemUgPSBzaXplOworICAgICBoYW5kbGUubV9uYW1lID0gbmFtZTsgCisgICAgIHJldHVy
biB0cnVlOworfQorCisvLyBDcmVhdGUgYSBuZXcgc2hhcmVkIG1lbW9yeSBzZWdtZW50CitQYXNz
UmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCit7
CisgICAgLy8gT24gU3ltYmlhbiwgZ2xvYmFsIGNodW5rcyAoc2hhcmVkIG1lbW9yeSBzZWdtZW50
cykgaGF2ZSBzeXN0ZW0tdW5pcXVlIG5hbWVzLCBzbyB3ZSBwaWNrIGEgcmFuZG9tIAorICAgIC8v
IG51bWJlciBmcm9tIHRoZSBrZXJuZWwncyByYW5kb20gcG9vbCBhbmQgdXNlIGl0IGFzIGEgc3Ry
aW5nLgorICAgIC8vIFVzaW5nIGFuIGludGVnZXIgc2ltcGxpZmllcyBzZXJpYWxpemF0aW9uIG9m
IHRoZSBuYW1lIGluIEhhbmRsZTo6ZW5jb2RlKCkKKyAgICB1aW50MzJfdCByYW5kb20gPSBNYXRo
OjpSYW5kb20oKTsgCisgICAgVEJ1ZjxLTWF4S2VybmVsTmFtZT4gZ2xvYmFsQ2h1bmtOYW1lOwor
ICAgIGdsb2JhbENodW5rTmFtZS5Gb3JtYXQoS0Zvcm1hdFRvU3RyaW5nLCByYW5kb20pOworICAg
IAorICAgIFJDaHVuayBjaHVuazsgCisgICAgVEludCBlcnJvcjsgCisgICAgaWYgKChlcnJvciA9
IGNodW5rLkNyZWF0ZUdsb2JhbChnbG9iYWxDaHVua05hbWUsIHNpemUsIHNpemUpKSAhPSBLRXJy
Tm9uZSkKKyAgICAgICAgcmV0dXJuIDA7IAorICAgICAgICAKKyAgICBSZWZQdHI8U2hhcmVkTWVt
b3J5PiBzaGFyZWRNZW1vcnkoYWRvcHRSZWYobmV3IFNoYXJlZE1lbW9yeSkpOworICAgIHNoYXJl
ZE1lbW9yeS0+bV9oYW5kbGUgPSBjaHVuay5IYW5kbGUoKTsKKyAgICBzaGFyZWRNZW1vcnktPm1f
c2l6ZSA9IGNodW5rLlNpemUoKTsKKyAgICBzaGFyZWRNZW1vcnktPm1fZGF0YSA9IHN0YXRpY19j
YXN0PHZvaWQqPihjaHVuay5CYXNlKCkpOworICAgICAgICAKKyAgICByZXR1cm4gc2hhcmVkTWVt
b3J5LnJlbGVhc2UoKTsKK30KKworCisvLyBUYWtlIGEgc2hhcmVkIG1lbW9yeSBoYW5kbGUgZ2l2
ZW4gdXN1YWxseSBieSBhbm90aGVyIHByb2Nlc3MsIGFuZCBvcGVuIGl0IGxvY2FsbHkgZm9yIHJl
YWQgb3Igd3JpdGUKK1Bhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0
ZShjb25zdCBIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQoreworICAgIGlm
IChoYW5kbGUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiAwOworICAgICAKKyAgICAvLyBDb252
ZXJ0IG51bWJlciB0byBzdHJpbmcsIGFuZCBvcGVuIHRoZSBnbG9iYWwgY2h1bmsKKyAgICBUQnVm
PEtNYXhLZXJuZWxOYW1lPiBnbG9iYWxDaHVua05hbWU7CisgICAgZ2xvYmFsQ2h1bmtOYW1lLkZv
cm1hdChLRm9ybWF0VG9TdHJpbmcsIGhhbmRsZS5tX25hbWUpOworCisgICAgUkNodW5rIGNodW5r
OworICAgIFRJbnQgZXJyb3IgPSBjaHVuay5PcGVuR2xvYmFsKGdsb2JhbENodW5rTmFtZSwgZmFs
c2UpOyAvLyBOT1RFOiBTeW1iaWFuIE9TIGRvZXNuJ3Qgc3VwcG9ydCByZWFkLW9ubHkgZ2xvYmFs
IGNodW5rcworICAgIGlmIChlcnJvcikgCisgICAgICAgIHJldHVybiAwOworICAgICAgICAKKyAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnkoYWRvcHRSZWYobmV3IFNoYXJlZE1l
bW9yeSkpOworICAgIHNoYXJlZE1lbW9yeS0+bV9oYW5kbGUgPSBjaHVuay5IYW5kbGUoKTsKKyAg
ICBzaGFyZWRNZW1vcnktPm1fc2l6ZSA9IGNodW5rLlNpemUoKTsKKyAgICBzaGFyZWRNZW1vcnkt
Pm1fZGF0YSA9IHN0YXRpY19jYXN0PHZvaWQqPihjaHVuay5CYXNlKCkpOworICAgICAgCisgICAg
cmV0dXJuIHNoYXJlZE1lbW9yeS5yZWxlYXNlKCk7Cit9CisKK1NoYXJlZE1lbW9yeTo6flNoYXJl
ZE1lbW9yeSgpCit7CisgICAgUkNodW5rIGNodW5rOworICAgIGlmICghY2h1bmsuU2V0UmV0dXJu
ZWRIYW5kbGUobV9oYW5kbGUpKSB7CisgICAgICAgIFRIYW5kbGVJbmZvIGluZm87CisgICAgICAg
IGNodW5rLkhhbmRsZUluZm8oJmluZm8pOworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBm
aWd1cmUgb3V0IHdoZW4gdG8gRGVjb21taXQoKSBtZW1vcnkgZnJvbSB0aGUgY2h1bmsKKyAgICAg
ICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gYWxzbyB1bmRlcnN0YW5kIGhvdyBDbG9zZSgpIGRlY3Jl
bWVudHMgdGhlIGtlcm5lbC1zaWRlIHJlZiBjb3VudCBvZiB0aGUgCisgICAgICAgIC8vIHNoYXJl
ZCBtZW1vcnkgc2VnbWVudCBhbmQgbGVhZHMgdG8gcHJlbWF0dXJlIGRlY29tbWl0cygpIG9mIHRo
ZSBzaGFyZWQgbWVtb3J5IGFyZWEKKyAgICB9Cit9CisKKworLy8gSW5pdGlhbGl6ZWQgdGhlIHBh
c3NlZCBIYW5kbGUgCitib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFu
ZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7CisgICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhh
bmRsZS5pc051bGwoKSk7CisgICAgICAgIAorICAgIFJDaHVuayBjaHVuazsgCisgICAgaWYgKGNo
dW5rLlNldFJldHVybmVkSGFuZGxlKG1faGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIC8vIGNvbnZlcnQgdGhlIG5hbWUgKHN0cmluZyBmb3JtKSB0byB1aW50MzJfdAor
ICAgIFROYW1lIGdsb2JhbENodW5rTmFtZSA9IGNodW5rLk5hbWUoKTsKKyAgICBUTGV4IGxleGVy
KGdsb2JhbENodW5rTmFtZSk7CisgICAgVFVpbnQzMiBuYW1lQXNJbnQgPSAwOyAKKyAgICBpZiAo
bGV4ZXIuVmFsKG5hbWVBc0ludCwgRURlY2ltYWwpKSAKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAK
KyAgICAgICAgIAorICAgIGhhbmRsZS5tX25hbWUgPSBuYW1lQXNJbnQ7IAorICAgIGhhbmRsZS5t
X3NpemUgPSBtX3NpemU7CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Vuc2lnbmVkIFNo
YXJlZE1lbW9yeTo6c3lzdGVtUGFnZVNpemUoKQoreworICAgIHJldHVybiBQQUdFX1NJWkU7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAkocmV2aXNpb24gODM4
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2lmIEhBVkUoTU1BUCkKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKIAogI2luY2x1
ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgpAQCAtMjM2LDMgKzIzNyw2IEBAIHVuc2lnbmVkIFNoYXJl
ZE1lbW9yeTo6c3lzdGVtUGFnZVNpemUoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89991</attachid>
            <date>2011-04-17 21:45:51 -0700</date>
            <delta_ts>2011-05-04 09:24:40 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>55875_v3.patch</filename>
            <type>text/plain</type>
            <size>8790</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0MTIwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDQtMTcgIFNpZGRoYXJ0
aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdW1dLMl1bU3ltYmlhbl0gTmF0aXZl
IHNoYXJlZCBtZW1vcnkgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTU4NzUKKyAKKyAgICAgICAgVXNlIGdsb2JhbCBjaHVua3MgZm9yIHNo
YXJpbmcgZGF0YSBiZXR3ZWVuIHByb2Nlc3Nlcy4gCisgICAgICAgIFRoaXMgaXMgYW4gaW5pdGlh
bCBpbXBsZW1lbnRhdGlvbi4gQW4gb3V0c3RhbmRpbmcgaXNzdWUKKyAgICAgICAgaXMgdGhlIGNv
cnJlY3Qgd2F5IHRvIGNsb3NlKCkgdGhlIGNodW5rIGluIHRoZSBTaGFyZWRNZW1vcnkgZCd0b3Iu
IAorICAgICAgICBUaGUgbW1hcCBiYXNlZCBVTklYIGltcGxlbWVudGF0aW9uIG9mIHNoYXJlZCBt
ZW1vcnkgaXMgbm93IGJlaGluZAorICAgICAgICBhIEhBVkUoTU1BUCkgZ3VhcmQKKworICAgICAg
ICAqIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oOgorICAgICAgICAqIFBsYXRmb3JtL3F0L1NoYXJl
ZE1lbW9yeVN5bWJpYW4uY3BwOiBBZGRlZCBuYXRpdmUgU3ltYmlhbiBpbXBsZW1lbnRhdGlvbgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6SGFuZGxlKToKKyAgICAgICAg
KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6aXNOdWxsKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVk
TWVtb3J5OjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6
SGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6flNoYXJlZE1lbW9yeSk6CisgICAgICAg
IChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpzeXN0ZW1QYWdlU2l6ZSk6CisgICAgICAgICogUGxhdGZvcm0vdW5peC9T
aGFyZWRNZW1vcnlVbml4LmNwcDogQWRkIEhBVkUoTU1BUCkgZ3VhcmQKKyAgICAgICAgKiBXZWJL
aXQyLnBybzogQWRkZWQgMSBuZXcgZmlsZQorCiAyMDExLTA0LTE3ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTg0NjM+
IFN3aXRjaCBIVFRQIHBpcGVsaW5pbmcgZnJvbSB1c2VyIGRlZmF1bHQgdG8gcHJpdmF0ZSBzZXR0
aW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gODM4NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMzEwLDYgKzMxNCw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgIFBsYXRmb3JtL3F0L01vZHVsZVF0LmNwcCBcCiAgICAgUGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcCBcCiAgICAgUGxhdGZvcm0vcXQvV29ya1F1ZXVlUXQuY3BwIFwKKyAgICBQbGF0
Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1iaWFuLmNwcCBcCiAgICAgUGxhdGZvcm0vdW5peC9TaGFy
ZWRNZW1vcnlVbml4LmNwcCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuY3BwIFwKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIFwKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCShyZXZpc2lvbiA4Mzg1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC03
Miw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICAgICAgbXV0YWJsZSBIQU5ETEUgbV9oYW5kbGU7CiAj
ZWxpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICAgICAgICAgbXV0YWJsZSBpbnQgbV9maWxl
RGVzY3JpcHRvcjsKKyNlbGlmIE9TKFNZTUJJQU4pCisgICAgICAgIG11dGFibGUgdWludDMyX3Qg
bV9uYW1lOwogI2VuZGlmCiAgICAgICAgIHNpemVfdCBtX3NpemU7CiAgICAgfTsKQEAgLTEwNSw2
ICsxMDcsOCBAQCBwcml2YXRlOgogICAgIEhBTkRMRSBtX2hhbmRsZTsKICNlbGlmIFVTRShVTklY
X0RPTUFJTl9TT0NLRVRTKQogICAgIGludCBtX2ZpbGVEZXNjcmlwdG9yOworI2VsaWYgT1MoU1lN
QklBTikKKyAgICBpbnQgbV9oYW5kbGU7ICAgIAogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1iaWFuLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1iaWFuLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1NoYXJlZE1lbW9yeVN5bWJp
YW4uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBOb2tpYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2lmIFBMQVRGT1JNKFFUKSAmJiBPUyhTWU1CSUFOKQorI2luY2x1ZGUgIlNo
YXJlZE1lbW9yeS5oIgorCisjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAi
QXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSA8ZTMybWF0aC5oPgorI2luY2x1ZGUgPHN5cy9w
YXJhbS5oPgorCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitfTElUKEtGb3JtYXRUb1N0cmluZywg
IiVkIik7CisKK1NoYXJlZE1lbW9yeTo6SGFuZGxlOjpIYW5kbGUoKQorICAgIDogbV9uYW1lKDAp
LCBtX3NpemUoMCkKK3sKK30KKworU2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5kbGUoKQoreyAg
IAorfQorCitib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwoKSBjb25zdAoreworICAg
IHJldHVybiAhbV9uYW1lOworfQorCit2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIEFTU0VSVCgh
aXNOdWxsKCkpOyAgICAKKyAgICBlbmNvZGVyLT5lbmNvZGVVSW50MzIobV9zaXplKTsKKyAgICAv
LyBuYW1lIG9mIHRoZSBnbG9iYWwgY2h1bmsgKG1hc3F1YXJhZGluZyBhcyBpbnQzMl90IGZvciBl
YXNlIG9mIHNlcmlhbGl6YXRpb24pIAorICAgIGVuY29kZXItPmVuY29kZVVJbnQzMihtX25hbWUp
OyAKK30KKworYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCit7CisgICAgc2l6ZV90IHNpemU7
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIoc2l6ZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsgCisgICAgCisgICAgdWludDMyX3QgbmFtZTsKKyAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVVSW50MzIobmFtZSkpCisgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgCisgICAgIGhh
bmRsZS5tX3NpemUgPSBzaXplOworICAgICBoYW5kbGUubV9uYW1lID0gbmFtZTsgCisgICAgIHJl
dHVybiB0cnVlOworfQorCisvLyBDcmVhdGUgYSBuZXcgc2hhcmVkIG1lbW9yeSBzZWdtZW50CitQ
YXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUp
Cit7CisgICAgLy8gT24gU3ltYmlhbiwgZ2xvYmFsIGNodW5rcyAoc2hhcmVkIG1lbW9yeSBzZWdt
ZW50cykgaGF2ZSBzeXN0ZW0tdW5pcXVlIG5hbWVzLCBzbyB3ZSBwaWNrIGEgcmFuZG9tIAorICAg
IC8vIG51bWJlciBmcm9tIHRoZSBrZXJuZWwncyByYW5kb20gcG9vbCBhbmQgdXNlIGl0IGFzIGEg
c3RyaW5nLgorICAgIC8vIFVzaW5nIGFuIGludGVnZXIgc2ltcGxpZmllcyBzZXJpYWxpemF0aW9u
IG9mIHRoZSBuYW1lIGluIEhhbmRsZTo6ZW5jb2RlKCkKKyAgICB1aW50MzJfdCByYW5kb20gPSBN
YXRoOjpSYW5kb20oKTsgCisgICAgVEJ1ZjxLTWF4S2VybmVsTmFtZT4gZ2xvYmFsQ2h1bmtOYW1l
OworICAgIGdsb2JhbENodW5rTmFtZS5Gb3JtYXQoS0Zvcm1hdFRvU3RyaW5nLCByYW5kb20pOwor
ICAgIAorICAgIFJDaHVuayBjaHVuazsgCisgICAgVEludCBlcnJvcjsgCisgICAgaWYgKChlcnJv
ciA9IGNodW5rLkNyZWF0ZUdsb2JhbChnbG9iYWxDaHVua05hbWUsIHNpemUsIHNpemUpKSAhPSBL
RXJyTm9uZSkKKyAgICAgICAgcmV0dXJuIDA7IAorICAgICAgICAKKyAgICBSZWZQdHI8U2hhcmVk
TWVtb3J5PiBzaGFyZWRNZW1vcnkoYWRvcHRSZWYobmV3IFNoYXJlZE1lbW9yeSkpOworICAgIHNo
YXJlZE1lbW9yeS0+bV9oYW5kbGUgPSBjaHVuay5IYW5kbGUoKTsKKyAgICBzaGFyZWRNZW1vcnkt
Pm1fc2l6ZSA9IGNodW5rLlNpemUoKTsKKyAgICBzaGFyZWRNZW1vcnktPm1fZGF0YSA9IHN0YXRp
Y19jYXN0PHZvaWQqPihjaHVuay5CYXNlKCkpOworICAgICAgICAKKyAgICByZXR1cm4gc2hhcmVk
TWVtb3J5LnJlbGVhc2UoKTsKK30KKworCisvLyBUYWtlIGEgc2hhcmVkIG1lbW9yeSBoYW5kbGUg
Z2l2ZW4gdXN1YWxseSBieSBhbm90aGVyIHByb2Nlc3MsIGFuZCBvcGVuIGl0IGxvY2FsbHkgZm9y
IHJlYWQgb3Igd3JpdGUKK1Bhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNy
ZWF0ZShjb25zdCBIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQoreworICAg
IGlmIChoYW5kbGUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiAwOworICAgICAKKyAgICAvLyBD
b252ZXJ0IG51bWJlciB0byBzdHJpbmcsIGFuZCBvcGVuIHRoZSBnbG9iYWwgY2h1bmsKKyAgICBU
QnVmPEtNYXhLZXJuZWxOYW1lPiBnbG9iYWxDaHVua05hbWU7CisgICAgZ2xvYmFsQ2h1bmtOYW1l
LkZvcm1hdChLRm9ybWF0VG9TdHJpbmcsIGhhbmRsZS5tX25hbWUpOworCisgICAgUkNodW5rIGNo
dW5rOworICAgIFRJbnQgZXJyb3IgPSBjaHVuay5PcGVuR2xvYmFsKGdsb2JhbENodW5rTmFtZSwg
ZmFsc2UpOyAvLyBOT1RFOiBTeW1iaWFuIE9TIGRvZXNuJ3Qgc3VwcG9ydCByZWFkLW9ubHkgZ2xv
YmFsIGNodW5rcworICAgIGlmIChlcnJvcikgCisgICAgICAgIHJldHVybiAwOworICAgICAgICAK
KyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnkoYWRvcHRSZWYobmV3IFNoYXJl
ZE1lbW9yeSkpOworICAgIHNoYXJlZE1lbW9yeS0+bV9oYW5kbGUgPSBjaHVuay5IYW5kbGUoKTsK
KyAgICBzaGFyZWRNZW1vcnktPm1fc2l6ZSA9IGNodW5rLlNpemUoKTsKKyAgICBzaGFyZWRNZW1v
cnktPm1fZGF0YSA9IHN0YXRpY19jYXN0PHZvaWQqPihjaHVuay5CYXNlKCkpOworICAgICAgCisg
ICAgcmV0dXJuIHNoYXJlZE1lbW9yeS5yZWxlYXNlKCk7Cit9CisKK1NoYXJlZE1lbW9yeTo6flNo
YXJlZE1lbW9yeSgpCit7CisgICAgUkNodW5rIGNodW5rOworICAgIGlmICghY2h1bmsuU2V0UmV0
dXJuZWRIYW5kbGUobV9oYW5kbGUpKSB7CisgICAgICAgIFRIYW5kbGVJbmZvIGluZm87CisgICAg
ICAgIGNodW5rLkhhbmRsZUluZm8oJmluZm8pOworICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0
byBmaWd1cmUgb3V0IHdoZW4gdG8gRGVjb21taXQoKSBtZW1vcnkgZnJvbSB0aGUgY2h1bmsKKyAg
ICAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gYWxzbyB1bmRlcnN0YW5kIGhvdyBDbG9zZSgpIGRl
Y3JlbWVudHMgdGhlIGtlcm5lbC1zaWRlIHJlZiBjb3VudCBvZiB0aGUgCisgICAgICAgIC8vIHNo
YXJlZCBtZW1vcnkgc2VnbWVudCBhbmQgbGVhZHMgdG8gcHJlbWF0dXJlIGRlY29tbWl0cygpIG9m
IHRoZSBzaGFyZWQgbWVtb3J5IGFyZWEKKyAgICB9Cit9CisKKworLy8gSW5pdGlhbGl6ZWQgdGhl
IHBhc3NlZCBIYW5kbGUgCitib29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYg
aGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7CisgICAgQVNTRVJUX0FSRyhoYW5kbGUs
IGhhbmRsZS5pc051bGwoKSk7CisgICAgICAgIAorICAgIFJDaHVuayBjaHVuazsgCisgICAgaWYg
KGNodW5rLlNldFJldHVybmVkSGFuZGxlKG1faGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIAorICAgIC8vIGNvbnZlcnQgdGhlIG5hbWUgKHN0cmluZyBmb3JtKSB0byB1aW50MzJf
dAorICAgIFROYW1lIGdsb2JhbENodW5rTmFtZSA9IGNodW5rLk5hbWUoKTsKKyAgICBUTGV4IGxl
eGVyKGdsb2JhbENodW5rTmFtZSk7CisgICAgVFVpbnQzMiBuYW1lQXNJbnQgPSAwOyAKKyAgICBp
ZiAobGV4ZXIuVmFsKG5hbWVBc0ludCwgRURlY2ltYWwpKSAKKyAgICAgICAgcmV0dXJuIGZhbHNl
OyAKKyAgICAgICAgIAorICAgIGhhbmRsZS5tX25hbWUgPSBuYW1lQXNJbnQ7IAorICAgIGhhbmRs
ZS5tX3NpemUgPSBtX3NpemU7CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Vuc2lnbmVk
IFNoYXJlZE1lbW9yeTo6c3lzdGVtUGFnZVNpemUoKQoreworICAgIHJldHVybiBQQUdFX1NJWkU7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAkocmV2aXNpb24g
ODM4NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgorI2lmIEhBVkUoTU1BUCkKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKIAogI2lu
Y2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgpAQCAtMjM2LDMgKzIzNyw2IEBAIHVuc2lnbmVkIFNo
YXJlZE1lbW9yeTo6c3lzdGVtUGFnZVNpemUoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92256</attachid>
            <date>2011-05-04 09:24:40 -0700</date>
            <delta_ts>2011-05-04 10:33:47 -0700</delta_ts>
            <desc>Updated patch with only SharedMemory impl for Symbian</desc>
            <filename>55875_v11.patch</filename>
            <type>text/plain</type>
            <size>8291</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1NzUxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMDUtMDQgIFNpZGRoYXJ0
aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdW1dLMl1bU3ltYmlhbl0gU2hhcmVk
IG1lbW9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgU3ltYmlhbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU4NzUKKworICAgICAgICBVc2UgZ2xvYmFsIGNo
dW5rcyBmb3Igc2hhcmluZyBkYXRhIGJldHdlZW4gcHJvY2Vzc2VzLgorICAgICAgICBUaGlzIGlz
IGFuIGluaXRpYWwgaW1wbGVtZW50YXRpb24uIEFuIG91dHN0YW5kaW5nIGlzc3VlCisgICAgICAg
IGlzIHRoZSBjb3JyZWN0IHdheSB0byBjbG9zZSgpIHRoZSBjaHVuayBpbiB0aGUgU2hhcmVkTWVt
b3J5IGQndG9yCisgICAgICAgIHdpdGhvdXQgdHJpZ2dlcmluZyBhIGRlbGV0ZSBieSB0aGUga2Vy
bmVsIHdoZW4gdGhlIHJlZi1jb3VudAorICAgICAgICB0ZW1wb3JhcmlseSBnb2VzIHRvIHplcm8u
CisKKyAgICAgICAgKiBQbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaDogcGxhdGZvcm0gc3BlY2lmaWMg
aGFuZGxlIGFuZCBjaHVuayBuYW1lCisgICAgICAgICogUGxhdGZvcm0vcXQvU2hhcmVkTWVtb3J5
U3ltYmlhbi5jcHA6IEFkZGVkLiBOYXRpdmUgU3ltYmlhbiBPUyBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICB1c2luZyBSQ2h1bmsuQ3JlYXRlR2xvYmFsKCkgZm9yIG5hbWVkIGNodW5rcy4gVGhlIGNo
dW5rIG5hbWUgaXMgc2VyaWFsaXplZAorICAgICAgICBhbmQgc2VudCBvdmVyIHRoZSBJUEMgY2hh
bm5lbCBhbmQgb3BlbmVkIGJ5IHRoZSByZW1vdGUgcHJvY2VzcyB1c2luZworICAgICAgICBSQ2h1
bmsuT3Blbkdsb2JhbCgpLgorCisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxl
OjpIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6fkhhbmRs
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwpOgorICAg
ICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKFdl
YktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNo
YXJlZE1lbW9yeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5Ojp+U2hh
cmVkTWVtb3J5KToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OnN5c3RlbVBhZ2VTaXplKToKKyAgICAg
ICAgKiBQbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwOiBFeGNsdWRlIFF0LVN5bWJp
YW4gdXNpbmcgSEFWRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICAqIFdlYktpdDIucHJv
OiBBZGQgU2hhcmVkTWVtb3J5U3ltYmlhbi5jcHAKKwogMjAxMS0wNS0wMyAgQWRhbSBSb2JlbiAg
PGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFdlYlBhZ2VQcm94eTo6c2V0RHJh
d2luZ0FyZWEKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiA4NTQ3NSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsNiArMzI0LDcgQEAgU09V
UkNFUyArPSBcCiAgICAgUGxhdGZvcm0vcXQvTW9kdWxlUXQuY3BwIFwKICAgICBQbGF0Zm9ybS9x
dC9SdW5Mb29wUXQuY3BwIFwKICAgICBQbGF0Zm9ybS9xdC9Xb3JrUXVldWVRdC5jcHAgXAorICAg
IFBsYXRmb3JtL3F0L1NoYXJlZE1lbW9yeVN5bWJpYW4uY3BwIFwKICAgICBQbGF0Zm9ybS91bml4
L1NoYXJlZE1lbW9yeVVuaXguY3BwIFwKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xs
ZXJQcm94eS5jcHAgXAogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgXApJbmRl
eDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgJKHJldmlzaW9uIDg1NDc1KQor
KysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTcyLDYgKzcyLDggQEAgcHVibGljOgogICAgICAgICBtdXRhYmxlIEhBTkRMRSBtX2hhbmRs
ZTsKICNlbGlmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAgICAgICBtdXRhYmxlIGludCBt
X2ZpbGVEZXNjcmlwdG9yOworI2VsaWYgT1MoU1lNQklBTikKKyAgICAgICAgbXV0YWJsZSB1aW50
MzJfdCBtX2NodW5rSUQ7CiAjZW5kaWYKICAgICAgICAgc2l6ZV90IG1fc2l6ZTsKICAgICB9OwpA
QCAtMTA1LDYgKzEwNyw4IEBAIHByaXZhdGU6CiAgICAgSEFORExFIG1faGFuZGxlOwogI2VsaWYg
VVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAgICAgaW50IG1fZmlsZURlc2NyaXB0b3I7CisjZWxp
ZiBPUyhTWU1CSUFOKQorICAgIGludCBtX2hhbmRsZTsKICNlbmRpZgogfTsKIApJbmRleDogU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vcXQvU2hhcmVkTWVtb3J5U3ltYmlhbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vcXQvU2hhcmVkTWVtb3J5U3ltYmlhbi5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlT
eW1iaWFuLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgICAgQ29weXJp
Z2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBQTEFURk9STShRVCkgJiYgT1MoU1lNQklB
TikKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rl
ci5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgPGUzMm1hdGguaD4K
KyNpbmNsdWRlIDxxZGVidWcuaD4KKyNpbmNsdWRlIDxxZ2xvYmFsLmg+CisjaW5jbHVkZSA8c3lz
L3BhcmFtLmg+CisKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1NoYXJlZE1lbW9yeTo6SGFuZGxl
OjpIYW5kbGUoKQorICAgIDogbV9jaHVua0lEKDApCisgICAgLCBtX3NpemUoMCkKK3sKK30KKwor
U2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5kbGUoKQoreworfQorCitib29sIFNoYXJlZE1lbW9y
eTo6SGFuZGxlOjppc051bGwoKSBjb25zdAoreworICAgIHJldHVybiAhbV9jaHVua0lEOworfQor
Cit2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIEFTU0VSVCghaXNOdWxsKCkpOworICAgIGVuY29k
ZXItPmVuY29kZVVJbnQzMihtX3NpemUpOworICAgIC8vIG5hbWUgb2YgdGhlIGdsb2JhbCBjaHVu
ayAobWFzcXVlcmFkaW5nIGFzIHVpbnQzMl90IGZvciBlYXNlIG9mIHNlcmlhbGl6YXRpb24pCisg
ICAgZW5jb2Rlci0+ZW5jb2RlVUludDMyKG1fY2h1bmtJRCk7Cit9CisKK2Jvb2wgU2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEhh
bmRsZSYgaGFuZGxlKQoreworICAgIHNpemVfdCBzaXplOworICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlVUludDMyKHNpemUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1aW50MzJfdCBj
aHVua0lEOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlVUludDMyKGNodW5rSUQpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBoYW5kbGUubV9zaXplID0gc2l6ZTsKKyAgICBoYW5kbGUu
bV9jaHVua0lEID0gY2h1bmtJRDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxT
aGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKHNpemVfdCBzaXplKQoreworICAgIC8v
IE9uIFN5bWJpYW4sIGdsb2JhbCBjaHVua3MgKHNoYXJlZCBtZW1vcnkgc2VnbWVudHMpIGhhdmUg
c3lzdGVtLXVuaXF1ZSBuYW1lcywgc28gd2UgcGljayBhIHJhbmRvbQorICAgIC8vIG51bWJlciBm
cm9tIHRoZSBrZXJuZWwncyByYW5kb20gcG9vbCBhbmQgdXNlIGl0IGFzIGEgc3RyaW5nLgorICAg
IC8vIFVzaW5nIGFuIGludGVnZXIgc2ltcGxpZmllcyBzZXJpYWxpemF0aW9uIG9mIHRoZSBuYW1l
IGluIEhhbmRsZTo6ZW5jb2RlKCkKKyAgICB1aW50MzJfdCByYW5kb20gPSBNYXRoOjpSYW5kb20o
KTsKKworICAgIFRCdWY8S01heEtlcm5lbE5hbWU+IGNodW5rTmFtZTsKKyAgICBjaHVua05hbWUu
Rm9ybWF0KF9MKCIlZCIpLCByYW5kb20pOworCisgICAgUkNodW5rIGNodW5rOworICAgIFRJbnQg
ZXJyb3IgPSBjaHVuay5DcmVhdGVHbG9iYWwoY2h1bmtOYW1lLCBzaXplLCBzaXplKTsKKyAgICBp
ZiAoZXJyb3IpIHsKKyAgICAgICAgcUNyaXRpY2FsKCkgPDwgIkZhaWxlZCB0byBjcmVhdGUgV0sy
IHNoYXJlZCBtZW1vcnkgb2Ygc2l6ZSAiIDw8IHNpemUgPDwgIiB3aXRoIGVycm9yICIgPDwgZXJy
b3I7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IHNoYXJlZE1lbW9yeShhZG9wdFJlZihuZXcgU2hhcmVkTWVtb3J5KSk7CisgICAgc2hhcmVkTWVt
b3J5LT5tX2hhbmRsZSA9IGNodW5rLkhhbmRsZSgpOworICAgIHNoYXJlZE1lbW9yeS0+bV9zaXpl
ID0gY2h1bmsuU2l6ZSgpOworICAgIHNoYXJlZE1lbW9yeS0+bV9kYXRhID0gc3RhdGljX2Nhc3Q8
dm9pZCo+KGNodW5rLkJhc2UoKSk7CisgICAgcmV0dXJuIHNoYXJlZE1lbW9yeS5yZWxlYXNlKCk7
Cit9CisKK1Bhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBTaGFyZWRNZW1vcnk6OmNyZWF0ZShjb25z
dCBIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQoreworICAgIGlmIChoYW5k
bGUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gQ29udmVydCBudW1iZXIg
dG8gc3RyaW5nLCBhbmQgb3BlbiB0aGUgZ2xvYmFsIGNodW5rCisgICAgVEJ1ZjxLTWF4S2VybmVs
TmFtZT4gY2h1bmtOYW1lOworICAgIGNodW5rTmFtZS5Gb3JtYXQoX0woIiVkIiksIGhhbmRsZS5t
X2NodW5rSUQpOworCisgICAgUkNodW5rIGNodW5rOworICAgIC8vIE5PVEU6IFN5bWJpYW4gT1Mg
ZG9lc24ndCBzdXBwb3J0IHJlYWQtb25seSBnbG9iYWwgY2h1bmtzLgorICAgIFRJbnQgZXJyb3Ig
PSBjaHVuay5PcGVuR2xvYmFsKGNodW5rTmFtZSwgZmFsc2UpOworICAgIGlmIChlcnJvcikgewor
ICAgICAgICBxQ3JpdGljYWwoKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBXSzIgc2hhcmVkIG1lbW9y
eSBmcm9tIGhhbmRsZSAiIDw8IGVycm9yOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAg
ICBjaHVuay5BZGp1c3QoY2h1bmsuTWF4U2l6ZSgpKTsKKyAgICBSZWZQdHI8U2hhcmVkTWVtb3J5
PiBzaGFyZWRNZW1vcnkoYWRvcHRSZWYobmV3IFNoYXJlZE1lbW9yeSkpOworICAgIHNoYXJlZE1l
bW9yeS0+bV9oYW5kbGUgPSBjaHVuay5IYW5kbGUoKTsKKyAgICBzaGFyZWRNZW1vcnktPm1fc2l6
ZSA9IGNodW5rLlNpemUoKTsKKyAgICBzaGFyZWRNZW1vcnktPm1fZGF0YSA9IHN0YXRpY19jYXN0
PHZvaWQqPihjaHVuay5CYXNlKCkpOworICAgIHJldHVybiBzaGFyZWRNZW1vcnkucmVsZWFzZSgp
OworfQorCitTaGFyZWRNZW1vcnk6On5TaGFyZWRNZW1vcnkoKQoreworICAgIC8vIEZJWE1FOiBX
ZSBkb24ndCBDbG9zZSgpIHRoZSBjaHVuayBoZXJlLCBjYXVzaW5nIGxlYWtzIG9mIHRoZSBzaGFy
ZWQgbWVtb3J5IHNlZ21lbnQKKyAgICAvLyBJZiB3ZSBkbywgdGhlIGNodW5rIGlzIGNsb3NlZCB0
aGUgZGVjb21taXR0ZWQgcHJlbWF0dXJlbHkgYmVmb3JlIHRoZSBvdGhlciBwcm9jZXNzCisgICAg
Ly8gaGFzIGEgY2hhbmNlIHRvIE9wZW5HbG9iYWwoKSBpdC4KK30KKworYm9vbCBTaGFyZWRNZW1v
cnk6OmNyZWF0ZUhhbmRsZShIYW5kbGUmIGhhbmRsZSwgUHJvdGVjdGlvbiBwcm90ZWN0aW9uKQor
eworICAgIEFTU0VSVF9BUkcoaGFuZGxlLCBoYW5kbGUuaXNOdWxsKCkpOworCisgICAgUkNodW5r
IGNodW5rOworICAgIGlmIChjaHVuay5TZXRSZXR1cm5lZEhhbmRsZShtX2hhbmRsZSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIENvbnZlcnQgdGhlIG5hbWUgKHN0cmluZyBmb3Jt
KSB0byBhIHVpbnQzMl90LgorICAgIFROYW1lIGdsb2JhbENodW5rTmFtZSA9IGNodW5rLk5hbWUo
KTsKKyAgICBUTGV4IGxleGVyKGdsb2JhbENodW5rTmFtZSk7CisgICAgVFVpbnQzMiBuYW1lQXNJ
bnQgPSAwOworICAgIGlmIChsZXhlci5WYWwobmFtZUFzSW50LCBFRGVjaW1hbCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGhhbmRsZS5tX2NodW5rSUQgPSBuYW1lQXNJbnQ7CisgICAg
aGFuZGxlLm1fc2l6ZSA9IG1fc2l6ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordW5zaWduZWQg
U2hhcmVkTWVtb3J5OjpzeXN0ZW1QYWdlU2l6ZSgpCit7CisgICAgcmV0dXJuIFBBR0VfU0laRTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCShyZXZpc2lvbiA4
NTQ3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaWYgSEFWRShVTklYX0RPTUFJTl9TT0NLRVRTKQogI2luY2x1ZGUgIlNoYXJlZE1l
bW9yeS5oIgogCiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCkBAIC0yMzYsMyArMjM3LDYg
QEAgdW5zaWduZWQgU2hhcmVkTWVtb3J5OjpzeXN0ZW1QYWdlU2l6ZSgpCiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92274</attachid>
            <date>2011-05-04 10:33:47 -0700</date>
            <delta_ts>2011-05-16 05:41:17 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>55875_v12.patch</filename>
            <type>text/plain</type>
            <size>9378</size>
            <attacher name="Siddharth Mathur">s.mathur</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODU3NTUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTEtMDUtMDQgIFNpZGRoYXJ0aCBNYXRodXIgIDxzaWRkaGFydGgubWF0aHVyQG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRd
W1dLMl1bU3ltYmlhbl0gU2hhcmVkIG1lbW9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgU3ltYmlhbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU4NzUKKwor
ICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOiBFeGNsdWRlIFN5bWJpYW4gT1MgZnJvbSBVU0UoVU5J
WF9ET01BSU5fU09DS0VUUykgdXNlcnMKKwogMjAxMS0wNS0wNCAgQWRhbSBSb2JlbiAgPGFyb2Jl
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQW5vdGhlciBhdHRlbXB0ZWQgYnVpbGQgZml4CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiA4NTc1MikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtMTIx
MCw3ICsxMjEwLDcgQEAKICAgIGJyZWFrYWdlcyBvbmUgcG9ydCBhdCBhIHRpbWUuICovCiAjZGVm
aW5lIFdURl9VU0VfRVhQT1JUX01BQ1JPUyAwCiAKLSNpZiBQTEFURk9STShRVCkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIChQTEFURk9STShRVCkgJiYgIU9TKFNZTUJJQU4pKSB8fCBQTEFURk9STShH
VEspCiAjZGVmaW5lIFdURl9VU0VfVU5JWF9ET01BSU5fU09DS0VUUyAxCiAjZW5kaWYKIApJbmRl
eDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gODU3NTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNCBAQAorMjAxMS0wNS0wNCAgU2lkZGhhcnRoIE1h
dGh1ciAgPHNpZGRoYXJ0aC5tYXRodXJAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXVtTeW1iaWFuXSBTaGFyZWQgbWVt
b3J5IGltcGxlbWVudGF0aW9uIGZvciBTeW1iaWFuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTg3NQorCisgICAgICAgIFVzZSBnbG9iYWwgY2h1bmtz
IGZvciBzaGFyaW5nIGRhdGEgYmV0d2VlbiBwcm9jZXNzZXMuCisgICAgICAgIFRoaXMgaXMgYW4g
aW5pdGlhbCBpbXBsZW1lbnRhdGlvbi4gQW4gb3V0c3RhbmRpbmcgaXNzdWUKKyAgICAgICAgaXMg
dGhlIGNvcnJlY3Qgd2F5IHRvIGNsb3NlKCkgdGhlIGNodW5rIGluIHRoZSBTaGFyZWRNZW1vcnkg
ZCd0b3IKKyAgICAgICAgd2l0aG91dCB0cmlnZ2VyaW5nIGEgZGVsZXRlIGJ5IHRoZSBrZXJuZWwg
d2hlbiB0aGUgcmVmLWNvdW50CisgICAgICAgIHRlbXBvcmFyaWx5IGdvZXMgdG8gemVyby4KKwor
ICAgICAgICAqIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oOiBwbGF0Zm9ybSBzcGVjaWZpYyBoYW5k
bGUgYW5kIGNodW5rIG5hbWUKKyAgICAgICAgKiBQbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1i
aWFuLmNwcDogQWRkZWQuIE5hdGl2ZSBTeW1iaWFuIE9TIGltcGxlbWVudGF0aW9uCisgICAgICAg
IHVzaW5nIFJDaHVuay5DcmVhdGVHbG9iYWwoKSBmb3IgbmFtZWQgY2h1bmtzLiBUaGUgY2h1bmsg
bmFtZSBpcyBzZXJpYWxpemVkCisgICAgICAgIGFuZCBzZW50IG92ZXIgdGhlIElQQyBjaGFubmVs
IGFuZCBvcGVuZWQgYnkgdGhlIHJlbW90ZSBwcm9jZXNzIHVzaW5nCisgICAgICAgIFJDaHVuay5P
cGVuR2xvYmFsKCkuCisKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6Okhh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjp+SGFuZGxlKToK
KyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmlzTnVsbCk6CisgICAgICAg
IChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVk
TWVtb3J5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6On5TaGFyZWRN
ZW1vcnkpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6c3lzdGVtUGFnZVNpemUpOgorICAgICAgICAq
IFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHA6IEV4Y2x1ZGUgUXQtU3ltYmlhbiB1
c2luZyBIQVZFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgICAgICogV2ViS2l0Mi5wcm86IEFk
ZCBTaGFyZWRNZW1vcnlTeW1iaWFuLmNwcAorCiAyMDExLTA1LTA0ICBTaWRkaGFydGggTWF0aHVy
ICA8c2lkZGhhcnRoLm1hdGh1ckBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
ZXJzIENhcmxzc29uLgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDg1NzUyKQorKysgU291
cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTMyMCw2ICszMjAsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBQbGF0Zm9ybS9xdC9Nb2R1bGVRdC5jcHAgXAogICAgIFBsYXRm
b3JtL3F0L1J1bkxvb3BRdC5jcHAgXAogICAgIFBsYXRmb3JtL3F0L1dvcmtRdWV1ZVF0LmNwcCBc
CisgICAgUGxhdGZvcm0vcXQvU2hhcmVkTWVtb3J5U3ltYmlhbi5jcHAgXAogICAgIFBsYXRmb3Jt
L3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgXAogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmNwcCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBc
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaAkocmV2aXNpb24gODU3
NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaAkod29ya2luZyBj
b3B5KQpAQCAtNzIsNiArNzIsOCBAQCBwdWJsaWM6CiAgICAgICAgIG11dGFibGUgSEFORExFIG1f
aGFuZGxlOwogI2VsaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAgICAgICAgIG11dGFibGUg
aW50IG1fZmlsZURlc2NyaXB0b3I7CisjZWxpZiBPUyhTWU1CSUFOKQorICAgICAgICBtdXRhYmxl
IHVpbnQzMl90IG1fY2h1bmtJRDsKICNlbmRpZgogICAgICAgICBzaXplX3QgbV9zaXplOwogICAg
IH07CkBAIC0xMDUsNiArMTA3LDggQEAgcHJpdmF0ZToKICAgICBIQU5ETEUgbV9oYW5kbGU7CiAj
ZWxpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICAgICBpbnQgbV9maWxlRGVzY3JpcHRvcjsK
KyNlbGlmIE9TKFNZTUJJQU4pCisgICAgaW50IG1faGFuZGxlOwogI2VuZGlmCiB9OwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1iaWFuLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlTeW1iaWFu
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1NoYXJlZE1l
bW9yeVN5bWJpYW4uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAgICBD
b3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIFBMQVRGT1JNKFFUKSAmJiBPUyhT
WU1CSUFOKQorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorCisjaW5jbHVkZSAiQXJndW1lbnRE
ZWNvZGVyLmgiCisjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSA8ZTMybWF0
aC5oPgorI2luY2x1ZGUgPHFkZWJ1Zy5oPgorI2luY2x1ZGUgPHFnbG9iYWwuaD4KKyNpbmNsdWRl
IDxzeXMvcGFyYW0uaD4KKworCituYW1lc3BhY2UgV2ViS2l0IHsKKworU2hhcmVkTWVtb3J5OjpI
YW5kbGU6OkhhbmRsZSgpCisgICAgOiBtX2NodW5rSUQoMCkKKyAgICAsIG1fc2l6ZSgwKQorewor
fQorCitTaGFyZWRNZW1vcnk6OkhhbmRsZTo6fkhhbmRsZSgpCit7Cit9CisKK2Jvb2wgU2hhcmVk
TWVtb3J5OjpIYW5kbGU6OmlzTnVsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX2NodW5rSUQ7
Cit9CisKK3ZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFpc051bGwoKSk7CisgICAg
ZW5jb2Rlci0+ZW5jb2RlVUludDMyKG1fc2l6ZSk7CisgICAgLy8gbmFtZSBvZiB0aGUgZ2xvYmFs
IGNodW5rIChtYXNxdWVyYWRpbmcgYXMgdWludDMyX3QgZm9yIGVhc2Ugb2Ygc2VyaWFsaXphdGlv
bikKKyAgICBlbmNvZGVyLT5lbmNvZGVVSW50MzIobV9jaHVua0lEKTsKK30KKworYm9vbCBTaGFy
ZWRNZW1vcnk6OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgSGFuZGxlJiBoYW5kbGUpCit7CisgICAgc2l6ZV90IHNpemU7CisgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGVVSW50MzIoc2l6ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHVpbnQz
Ml90IGNodW5rSUQ7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVVSW50MzIoY2h1bmtJRCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGhhbmRsZS5tX3NpemUgPSBzaXplOworICAgIGhh
bmRsZS5tX2NodW5rSUQgPSBjaHVua0lEOworICAgIHJldHVybiB0cnVlOworfQorCitQYXNzUmVm
UHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjpjcmVhdGUoc2l6ZV90IHNpemUpCit7Cisg
ICAgLy8gT24gU3ltYmlhbiwgZ2xvYmFsIGNodW5rcyAoc2hhcmVkIG1lbW9yeSBzZWdtZW50cykg
aGF2ZSBzeXN0ZW0tdW5pcXVlIG5hbWVzLCBzbyB3ZSBwaWNrIGEgcmFuZG9tCisgICAgLy8gbnVt
YmVyIGZyb20gdGhlIGtlcm5lbCdzIHJhbmRvbSBwb29sIGFuZCB1c2UgaXQgYXMgYSBzdHJpbmcu
CisgICAgLy8gVXNpbmcgYW4gaW50ZWdlciBzaW1wbGlmaWVzIHNlcmlhbGl6YXRpb24gb2YgdGhl
IG5hbWUgaW4gSGFuZGxlOjplbmNvZGUoKQorICAgIHVpbnQzMl90IHJhbmRvbSA9IE1hdGg6OlJh
bmRvbSgpOworCisgICAgVEJ1ZjxLTWF4S2VybmVsTmFtZT4gY2h1bmtOYW1lOworICAgIGNodW5r
TmFtZS5Gb3JtYXQoX0woIiVkIiksIHJhbmRvbSk7CisKKyAgICBSQ2h1bmsgY2h1bms7CisgICAg
VEludCBlcnJvciA9IGNodW5rLkNyZWF0ZUdsb2JhbChjaHVua05hbWUsIHNpemUsIHNpemUpOwor
ICAgIGlmIChlcnJvcikgeworICAgICAgICBxQ3JpdGljYWwoKSA8PCAiRmFpbGVkIHRvIGNyZWF0
ZSBXSzIgc2hhcmVkIG1lbW9yeSBvZiBzaXplICIgPDwgc2l6ZSA8PCAiIHdpdGggZXJyb3IgIiA8
PCBlcnJvcjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgUmVmUHRyPFNoYXJlZE1l
bW9yeT4gc2hhcmVkTWVtb3J5KGFkb3B0UmVmKG5ldyBTaGFyZWRNZW1vcnkpKTsKKyAgICBzaGFy
ZWRNZW1vcnktPm1faGFuZGxlID0gY2h1bmsuSGFuZGxlKCk7CisgICAgc2hhcmVkTWVtb3J5LT5t
X3NpemUgPSBjaHVuay5TaXplKCk7CisgICAgc2hhcmVkTWVtb3J5LT5tX2RhdGEgPSBzdGF0aWNf
Y2FzdDx2b2lkKj4oY2h1bmsuQmFzZSgpKTsKKyAgICByZXR1cm4gc2hhcmVkTWVtb3J5LnJlbGVh
c2UoKTsKK30KKworUGFzc1JlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9yeTo6Y3JlYXRl
KGNvbnN0IEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rpb24pCit7CisgICAgaWYg
KGhhbmRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBDb252ZXJ0IG51
bWJlciB0byBzdHJpbmcsIGFuZCBvcGVuIHRoZSBnbG9iYWwgY2h1bmsKKyAgICBUQnVmPEtNYXhL
ZXJuZWxOYW1lPiBjaHVua05hbWU7CisgICAgY2h1bmtOYW1lLkZvcm1hdChfTCgiJWQiKSwgaGFu
ZGxlLm1fY2h1bmtJRCk7CisKKyAgICBSQ2h1bmsgY2h1bms7CisgICAgLy8gTk9URTogU3ltYmlh
biBPUyBkb2Vzbid0IHN1cHBvcnQgcmVhZC1vbmx5IGdsb2JhbCBjaHVua3MuCisgICAgVEludCBl
cnJvciA9IGNodW5rLk9wZW5HbG9iYWwoY2h1bmtOYW1lLCBmYWxzZSk7CisgICAgaWYgKGVycm9y
KSB7CisgICAgICAgIHFDcml0aWNhbCgpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIFdLMiBzaGFyZWQg
bWVtb3J5IGZyb20gaGFuZGxlICIgPDwgZXJyb3I7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
KworICAgIGNodW5rLkFkanVzdChjaHVuay5NYXhTaXplKCkpOworICAgIFJlZlB0cjxTaGFyZWRN
ZW1vcnk+IHNoYXJlZE1lbW9yeShhZG9wdFJlZihuZXcgU2hhcmVkTWVtb3J5KSk7CisgICAgc2hh
cmVkTWVtb3J5LT5tX2hhbmRsZSA9IGNodW5rLkhhbmRsZSgpOworICAgIHNoYXJlZE1lbW9yeS0+
bV9zaXplID0gY2h1bmsuU2l6ZSgpOworICAgIHNoYXJlZE1lbW9yeS0+bV9kYXRhID0gc3RhdGlj
X2Nhc3Q8dm9pZCo+KGNodW5rLkJhc2UoKSk7CisgICAgcmV0dXJuIHNoYXJlZE1lbW9yeS5yZWxl
YXNlKCk7Cit9CisKK1NoYXJlZE1lbW9yeTo6flNoYXJlZE1lbW9yeSgpCit7CisgICAgLy8gRklY
TUU6IFdlIGRvbid0IENsb3NlKCkgdGhlIGNodW5rIGhlcmUsIGNhdXNpbmcgbGVha3Mgb2YgdGhl
IHNoYXJlZCBtZW1vcnkgc2VnbWVudAorICAgIC8vIElmIHdlIGRvLCB0aGUgY2h1bmsgaXMgY2xv
c2VkIHRoZSBkZWNvbW1pdHRlZCBwcmVtYXR1cmVseSBiZWZvcmUgdGhlIG90aGVyIHByb2Nlc3MK
KyAgICAvLyBoYXMgYSBjaGFuY2UgdG8gT3Blbkdsb2JhbCgpIGl0LgorfQorCitib29sIFNoYXJl
ZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3Rp
b24pCit7CisgICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZS5pc051bGwoKSk7CisKKyAgICBS
Q2h1bmsgY2h1bms7CisgICAgaWYgKGNodW5rLlNldFJldHVybmVkSGFuZGxlKG1faGFuZGxlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQ29udmVydCB0aGUgbmFtZSAoc3RyaW5n
IGZvcm0pIHRvIGEgdWludDMyX3QuCisgICAgVE5hbWUgZ2xvYmFsQ2h1bmtOYW1lID0gY2h1bmsu
TmFtZSgpOworICAgIFRMZXggbGV4ZXIoZ2xvYmFsQ2h1bmtOYW1lKTsKKyAgICBUVWludDMyIG5h
bWVBc0ludCA9IDA7CisgICAgaWYgKGxleGVyLlZhbChuYW1lQXNJbnQsIEVEZWNpbWFsKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaGFuZGxlLm1fY2h1bmtJRCA9IG5hbWVBc0ludDsK
KyAgICBoYW5kbGUubV9zaXplID0gbV9zaXplOworICAgIHJldHVybiB0cnVlOworfQorCit1bnNp
Z25lZCBTaGFyZWRNZW1vcnk6OnN5c3RlbVBhZ2VTaXplKCkKK3sKKyAgICByZXR1cm4gUEFHRV9T
SVpFOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAJKHJldmlz
aW9uIDg1NzUyKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlV
bml4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKKyNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICNpbmNsdWRlICJTaGFy
ZWRNZW1vcnkuaCIKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgpAQCAtMjM2LDMgKzIz
Nyw2IEBAIHVuc2lnbmVkIFNoYXJlZE1lbW9yeTo6c3lzdGVtUGFnZVNpemUoKQogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>