<?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>22431</bug_id>
          
          <creation_ts>2008-11-22 16:47:20 -0800</creation_ts>
          <short_desc>Implement &lt;access&gt; support in WML</short_desc>
          <delta_ts>2008-11-24 16:06:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>99801</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-22 16:47:20 -0800</bug_when>
    <thetext>Support the &lt;access&gt; element. It just contains two attribute values that need to be propagated to WMLPageState.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99802</commentid>
    <comment_count>1</comment_count>
      <attachid>25383</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-22 16:48:56 -0800</bug_when>
    <thetext>Created attachment 25383
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99803</commentid>
    <comment_count>2</comment_count>
      <attachid>25384</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-22 16:51:17 -0800</bug_when>
    <thetext>Created attachment 25384
Updated patch

Missed one file, updating patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100017</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-11-24 12:46:34 -0800</bug_when>
    <thetext>So WML has it&apos;s own security model?  I&apos;m unclear on what &quot;calls&quot; this would allow, once you give a certain other URL &quot;access&quot; to this deck.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100019</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-24 12:52:09 -0800</bug_when>
    <thetext>Exactly, some quotes from the WML spec to clarify:

&lt;quote&gt;
The access element specifies access control information for the entire deck.  It is an error for a 
deck to contain more than one access element.  If a deck does not include an access element, 
access control is disabled. When access control is disabled, cards in any deck can access this deck.

A deck&apos;s domain and path attributes specify which other decks may access it.  As the 
user agent navigates from one deck to another, it performs access control checks to 
determine whether the destination deck allows access from the current deck. 
&lt;/quote&gt;

Does this clarify the situation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100021</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-11-24 12:53:54 -0800</bug_when>
    <thetext>(In reply to comment #4)
So you can control from what referrers you&apos;re allowed to access a deck, client side!?  That seems like a lame-duck security feature that no one would ever use.  I would expect servers to serve different pages based on referrers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100027</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-24 13:09:35 -0800</bug_when>
    <thetext>Honestly, I can&apos;t name an example what needs this. But I haven&apos;t written the actual implementation. I bet Yichao/Charles Wei may know some use cases. We only implemented things that are needed. There&apos;s even a test in manual-tests/wml/ that checks this behaviour.

I&apos;d prefer to just get it in. It doesn&apos;t affect WebKit/HTML in any way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100031</commentid>
    <comment_count>7</comment_count>
      <attachid>25384</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-11-24 13:14:45 -0800</bug_when>
    <thetext>Comment on attachment 25384
Updated patch


&gt; +        if (Page* page = document()-&gt;page())
&gt; +            page-&gt;wmlPageState()-&gt;setDeckAccessDomain(attr-&gt;value());

&gt; +        if (Page* page = document()-&gt;page()) 
&gt; +            page-&gt;wmlPageState()-&gt;setDeckAccessPath(attr-&gt;value());

I think these calls would be better named &quot;restrictAccessToDeckToDomain&quot; and &quot;restrictAccessToDeckToPath&quot;

identifying that adding a new restriction clears all others, and that this is not what domains or paths the current deck can acess, but rather, what domains and paths can acesss the deck.  The names are still not perfect, but I think they&apos;re better than what were there before.

That should probably be &quot;containsWMLVariableReference()&quot;
 
&gt; +bool valueContainsVariableReference(const String&amp; text)
&gt; +{
&gt; +    int start = text.find(&apos;$&apos;);
&gt; +    if (start == -1)
&gt; +        return false;
&gt; +
&gt; +    int end = start + 1;
&gt; +    while (text[end] == &apos;$&apos;)
&gt; +        ++end;
&gt; +
&gt; +    return ((end-start) % 2) != 0;
&gt; +}

Also, that function will do the following:
&quot;$&quot; true
&quot;$$&quot; false
&quot;$$$&quot; true
&quot;$$ foobar $bar&quot; false

I think it needs more testing...

&gt;      enum WMLVariableEscapingMode {
&gt;          WMLVariableEscaping_None = 0,
&gt; -        WMLVariableEscaping_Escape = 1,
&gt; -        WMLVariableEscaping_Unescape = 2
&gt; +        WMLVariableEscaping_Escape,
&gt; +        WMLVariableEscaping_Unescape
&gt;      };

WebKit style would say those should be WMLVariableEscapingNone, no _ I think.

r- for the lack of variable testing (and thus incorrectness of said function).  I&quot;m not sure it&apos;s really a big deal that it&apos;s wrong.  Otherwise the patch looked fine.  Please rename the functions noted to something better. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100048</commentid>
    <comment_count>8</comment_count>
      <attachid>25447</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-24 13:41:03 -0800</bug_when>
    <thetext>Created attachment 25447
Updated patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100051</commentid>
    <comment_count>9</comment_count>
      <attachid>25448</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-24 13:46:23 -0800</bug_when>
    <thetext>Created attachment 25448
Updated patch v3

Oops, uploaded wrong patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100091</commentid>
    <comment_count>10</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-24 15:44:26 -0800</bug_when>
    <thetext>In &apos;Updated patch v3&apos; it says &apos; for (unsigned i = startPos; i &lt; length; ++i) {&apos; - it should read &apos;startPos + 1&apos; - not uploading a new patch though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100093</commentid>
    <comment_count>11</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-11-24 16:06:24 -0800</bug_when>
    <thetext>Landed in r38733.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25383</attachid>
            <date>2008-11-22 16:48:56 -0800</date>
            <delta_ts>2008-11-22 16:51:17 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>AccessElement.diff</filename>
            <type>text/plain</type>
            <size>9193</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4Njkz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDgtMTEt
MjIgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQzMQorCisgICAg
ICAgIEltcGxlbWVudCBXTUxBY2Nlc3NFbGVtZW50LiBJdCBqdXN0IHByb3BvZ2F0ZXMgdHdvIGF0
dHJpYnV0ZXMgdmFsdWVzIHRvIFdNTFBhZ2VTdGF0ZS4KKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3bWwvV01MQWNjZXNzRWxlbWVudC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V01MQWNjZXNzRWxlbWVudDo6V01MQWNjZXNz
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxBY2Nlc3NFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogd21sL1dNTEFjY2Vzc0VsZW1lbnQuaDogQWRkZWQuCisg
ICAgICAgICogd21sL1dNTFRhZ05hbWVzLmluOgorCiAyMDA4LTExLTIyICBOaWtvbGFzIFppbW1l
cm1hbm4gIDxuaWtvbGFzLnppbW1lcm1hbm5AdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KSW5kZXg6IFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDM4NjkzKQorKysgV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw4IEBACiAJCTA4MEFFQzgyMEVEODcwOEIwMERG
NENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDgwQUVDN0UwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNp
Y0V2ZW50LmggKi87IH07CiAJCTA4MEFFQzgzMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5z
aWNFdmVudEhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDgwQUVDN0YwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50SGFu
ZGxlci5jcHAgKi87IH07CiAJCTA4MEFFQzg0MEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5z
aWNFdmVudEhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA4MEFFQzgwMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudEhhbmRs
ZXIuaCAqLzsgfTsKKwkJMDgyMDNBOUYwRUQ4QzM1MzAwQjhCNjFBIC8qIFdNTEFjY2Vzc0VsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgy
MDNBOUQwRUQ4QzM1MzAwQjhCNjFBIC8qIFdNTEFjY2Vzc0VsZW1lbnQuY3BwICovOyB9OworCQkw
ODIwM0FBMDBFRDhDMzUzMDBCOEI2MUEgLyogV01MQWNjZXNzRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgyMDNBOUUwRUQ4QzM1MzAwQjhC
NjFBIC8qIFdNTEFjY2Vzc0VsZW1lbnQuaCAqLzsgfTsKIAkJMDgzOTQ3NkMwRUNFNEJENjAwMDI3
MzUwIC8qIFdNTEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA4RkI4NEIwMEVDRTM3MzMwMERDMDY0RSAvKiBXTUxFbGVtZW50
RmFjdG9yeS5jcHAgKi87IH07CiAJCTA4Mzk0NzZEMEVDRTRCRDYwMDAyNzM1MCAvKiBXTUxFbGVt
ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDhGQjg0QjEwRUNFMzczMzAwREMwNjRFIC8qIFdNTEVsZW1lbnRGYWN0b3J5LmggKi87IH07
CiAJCTA4NERCQUExMEVEMzlEMzYwMDM4QzIyNiAvKiBXTUxWYXJpYWJsZXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0REJBOUQwRUQzOUQzNTAw
MzhDMjI2IC8qIFdNTFZhcmlhYmxlcy5jcHAgKi87IH07CkBAIC00ODAwLDYgKzQ4MDIsOCBAQAog
CQkwODBBRUM3RTBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MSW50cmluc2ljRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgwQUVDN0YwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJp
bnNpY0V2ZW50SGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXTUxJbnRyaW5zaWNFdmVudEhhbmRsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwODBBRUM4MDBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnRIYW5kbGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdNTEludHJpbnNpY0V2ZW50SGFu
ZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwODIwM0E5RDBFRDhDMzUzMDBC
OEI2MUEgLyogV01MQWNjZXNzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXTUxBY2Nlc3NFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDgyMDNBOUUwRUQ4QzM1MzAwQjhCNjFBIC8qIFdNTEFjY2Vzc0VsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MQWNjZXNzRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwODREQkE5RDBFRDM5RDM1MDAzOEMyMjYgLyogV01MVmFy
aWFibGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTFZhcmlh
Ymxlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NERCQTlFMEVEMzlEMzYw
MDM4QzIyNiAvKiBXTUxWYXJpYWJsZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV01MVmFyaWFibGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4ODA3QjZB
MEVENzA5QUIwMDNGNjk3NSAvKiBXTUxHb0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV01MR29FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTk0NzYsNiArOTQ4MCw4IEBACiAJCTRDNkI5OTE1MEU1MkUzNzMwMDQ4N0JCNyAv
KiB3bWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTA4
MjAzQTlEMEVEOEMzNTMwMEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmNwcCAqLywKKwkJCQkw
ODIwM0E5RTBFRDhDMzUzMDBCOEI2MUEgLyogV01MQWNjZXNzRWxlbWVudC5oICovLAogCQkJCTRD
NkI5OTE4MEU1MkUzNzMwMDQ4N0JCNyAvKiBXTUxBRWxlbWVudC5jcHAgKi8sCiAJCQkJNEM2Qjk5
MTkwRTUyRTM3MzAwNDg3QkI3IC8qIFdNTEFFbGVtZW50LmggKi8sCiAJCQkJMDgwMDgxOTQwRUQz
QjJERDAwQzUzQkMwIC8qIFdNTEFuY2hvckVsZW1lbnQuY3BwICovLApAQCAtMTYzODQsNiArMTYz
OTAsNyBAQAogCQkJCUE3QUQyRjg4MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDgwQUVDODIwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODBBRUM4NDBFRDg3MDhCMDBERjRDQ0UgLyogV01M
SW50cmluc2ljRXZlbnRIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwODIwM0FBMDBFRDhD
MzUzMDBCOEI2MUEgLyogV01MQWNjZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xODMx
Niw2ICsxODMyMyw3IEBACiAJCQkJQTdBRDJGODcwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNo
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4MEFFQzgxMEVEODcwOEIwMERGNENDRSAvKiBXTUxJ
bnRyaW5zaWNFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODBBRUM4MzBFRDg3MDhCMDBE
RjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnRIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTA4MjAzQTlGMEVEOEMzNTMwMEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpJbmRleDogd21sL1dNTEFjY2Vzc0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdt
bC9XTUxBY2Nlc3NFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIHdtbC9XTUxBY2Nlc3NFbGVt
ZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OCBAQAorLyoqCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICAg
ICAgICAgICAgaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIldNTEFjY2Vzc0VsZW1lbnQuaCIKKwor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIldNTE5h
bWVzLmgiCisjaW5jbHVkZSAiV01MUGFnZVN0YXRlLmgiCisjaW5jbHVkZSAiV01MVmFyaWFibGVz
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFdNTE5hbWVzOwor
CitXTUxBY2Nlc3NFbGVtZW50OjpXTUxBY2Nlc3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCisgICAgOiBXTUxFbGVtZW50KHRhZ05hbWUsIGRvYykK
K3sKK30KKwordm9pZCBXTUxBY2Nlc3NFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBw
ZWRBdHRyaWJ1dGUqIGF0dHIpCit7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBkb21haW5BdHRy
KSB7CisgICAgICAgIGlmICh2YWx1ZUNvbnRhaW5zVmFyaWFibGVSZWZlcmVuY2UoYXR0ci0+dmFs
dWUoKSkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBFcnJvciByZXJwb3J0aW5nCisgICAgICAg
ICAgICAvLyBXTUxIZWxwZXI6OnRva2VuaXplcigpLT5yZXBvcnRFcnJvcihJbnZhbGlkVmFyaWFi
bGVSZWZlcmVuY2VFcnJvcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkKKyAgICAgICAgICAgIHBh
Z2UtPndtbFBhZ2VTdGF0ZSgpLT5zZXREZWNrQWNjZXNzRG9tYWluKGF0dHItPnZhbHVlKCkpOwor
ICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHBhdGhBdHRyKSB7CisgICAgICAgIGlmICh2
YWx1ZUNvbnRhaW5zVmFyaWFibGVSZWZlcmVuY2UoYXR0ci0+dmFsdWUoKSkpIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBFcnJvciByZXBvcnRpbmcKKyAgICAgICAgICAgIC8vIFdNTEhlbHBlcjo6
dG9rZW5pemVyKCktPnJlcG9ydEVycm9yKEludmFsaWRWYXJpYWJsZVJlZmVyZW5jZUVycm9yKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChQYWdlKiBwYWdl
ID0gZG9jdW1lbnQoKS0+cGFnZSgpKSAKKyAgICAgICAgICAgIHBhZ2UtPndtbFBhZ2VTdGF0ZSgp
LT5zZXREZWNrQWNjZXNzUGF0aChhdHRyLT52YWx1ZSgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
V01MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7Cit9CisKK30KKworI2VuZGlm
CkluZGV4OiB3bWwvV01MQWNjZXNzRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdtbC9XTUxBY2Nl
c3NFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyB3bWwvV01MQWNjZXNzRWxlbWVudC5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAwOCBUb3Jj
aCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogICAgICAgICAgICAgICBodHRw
Oi8vd3d3LnRvcmNobW9iaWxlLmNvbS8KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgV01MQWNjZXNzRWxlbWVudF9oCisj
ZGVmaW5lIFdNTEFjY2Vzc0VsZW1lbnRfaAorCisjaWYgRU5BQkxFKFdNTCkKKyNpbmNsdWRlICJX
TUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV01MQWNjZXNzRWxl
bWVudCA6IHB1YmxpYyBXTUxFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBXTUxBY2Nlc3NFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7Cit9OworCit9CisK
KyNlbmRpZgorI2VuZGlmCkluZGV4OiB3bWwvV01MVGFnTmFtZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
d21sL1dNTFRhZ05hbWVzLmluCShyZXZpc2lvbiAzODY5MykKKysrIHdtbC9XTUxUYWdOYW1lcy5p
bgkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDcgQEAgbmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3
LndhcGZvcnVtLm9yZy9EVAogZ3VhcmRGYWN0b3J5V2l0aD0iRU5BQkxFKFdNTCkiCiAKIGEKK2Fj
Y2VzcwogYW5jaG9yCiBiciBpbnRlcmZhY2VOYW1lPVdNTEJSRWxlbWVudAogY2FyZApAQCAtMjUs
NyArMjYsNiBAQCB1CiAKICNpZiAwCiAjIE5vdCB5ZXQgaW1wbGVtZW50ZWQKLWFjY2VzcwogZG8K
IGZpZWxkc2V0CiBoZWFkCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25384</attachid>
            <date>2008-11-22 16:51:17 -0800</date>
            <delta_ts>2008-11-24 13:41:03 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>AccessElement.diff</filename>
            <type>text/plain</type>
            <size>10791</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM4Njkz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDgtMTEt
MjIgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQzMQorCisgICAg
ICAgIEltcGxlbWVudCBXTUxBY2Nlc3NFbGVtZW50LiBJdCBqdXN0IHByb3BvZ2F0ZXMgdHdvIGF0
dHJpYnV0ZXMgdmFsdWVzIHRvIFdNTFBhZ2VTdGF0ZS4KKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3bWwvV01MQWNjZXNzRWxlbWVudC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V01MQWNjZXNzRWxlbWVudDo6V01MQWNjZXNz
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxBY2Nlc3NFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogd21sL1dNTEFjY2Vzc0VsZW1lbnQuaDogQWRkZWQuCisg
ICAgICAgICogd21sL1dNTFRhZ05hbWVzLmluOgorICAgICAgICAqIHdtbC9XTUxWYXJpYWJsZXMu
Y3BwOiBBZGQgbmV3IGhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlQ29u
dGFpbnNWYXJpYWJsZVJlZmVyZW5jZSk6CisgICAgICAgICogd21sL1dNTFZhcmlhYmxlcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6KToKKwogMjAwOC0xMS0yMiAgTmlrb2xhcyBaaW1tZXJtYW5uICA8
bmlrb2xhcy56aW1tZXJtYW5uQHRvcmNobW9iaWxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBIb2xnZXIgRnJleXRoZXIuCkluZGV4OiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAzODY5MykKKysrIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsNiArNDEsOCBAQAogCQkwODBBRUM4MjBFRDg3MDhCMDBERjRDQ0UgLyog
V01MSW50cmluc2ljRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4MEFFQzdFMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudC5o
ICovOyB9OwogCQkwODBBRUM4MzBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnRI
YW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA4MEFFQzdGMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudEhhbmRsZXIuY3Bw
ICovOyB9OwogCQkwODBBRUM4NDBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnRI
YW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
ODBBRUM4MDBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnRIYW5kbGVyLmggKi87
IH07CisJCTA4MjAzQTlGMEVEOEMzNTMwMEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MjAzQTlEMEVE
OEMzNTMwMEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmNwcCAqLzsgfTsKKwkJMDgyMDNBQTAw
RUQ4QzM1MzAwQjhCNjFBIC8qIFdNTEFjY2Vzc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MjAzQTlFMEVEOEMzNTMwMEI4QjYxQSAvKiBX
TUxBY2Nlc3NFbGVtZW50LmggKi87IH07CiAJCTA4Mzk0NzZDMEVDRTRCRDYwMDAyNzM1MCAvKiBX
TUxFbGVtZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwOEZCODRCMDBFQ0UzNzMzMDBEQzA2NEUgLyogV01MRWxlbWVudEZhY3Rvcnku
Y3BwICovOyB9OwogCQkwODM5NDc2RDBFQ0U0QkQ2MDAwMjczNTAgLyogV01MRWxlbWVudEZhY3Rv
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4RkI4
NEIxMEVDRTM3MzMwMERDMDY0RSAvKiBXTUxFbGVtZW50RmFjdG9yeS5oICovOyB9OwogCQkwODRE
QkFBMTBFRDM5RDM2MDAzOEMyMjYgLyogV01MVmFyaWFibGVzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NERCQTlEMEVEMzlEMzUwMDM4QzIyNiAv
KiBXTUxWYXJpYWJsZXMuY3BwICovOyB9OwpAQCAtNDgwMCw2ICs0ODAyLDggQEAKIAkJMDgwQUVD
N0UwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdNTEludHJpbnNpY0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA4MEFFQzdGMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVu
dEhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV01MSW50
cmluc2ljRXZlbnRIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgw
QUVDODAwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50SGFuZGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxJbnRyaW5zaWNFdmVudEhhbmRsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDgyMDNBOUQwRUQ4QzM1MzAwQjhCNjFBIC8q
IFdNTEFjY2Vzc0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV01MQWNjZXNzRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4
MjAzQTlFMEVEOEMzNTMwMEI4QjYxQSAvKiBXTUxBY2Nlc3NFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdNTEFjY2Vzc0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDg0REJBOUQwRUQzOUQzNTAwMzhDMjI2IC8qIFdNTFZhcmlhYmxlcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXTUxWYXJpYWJsZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODREQkE5RTBFRDM5RDM2MDAzOEMyMjYg
LyogV01MVmFyaWFibGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdNTFZh
cmlhYmxlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODgwN0I2QTBFRDcwOUFC
MDAzRjY5NzUgLyogV01MR29FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdNTEdvRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC05NDc2LDYgKzk0ODAsOCBAQAogCQk0QzZCOTkxNTBFNTJFMzczMDA0ODdCQjcgLyogd21sICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwODIwM0E5RDBF
RDhDMzUzMDBCOEI2MUEgLyogV01MQWNjZXNzRWxlbWVudC5jcHAgKi8sCisJCQkJMDgyMDNBOUUw
RUQ4QzM1MzAwQjhCNjFBIC8qIFdNTEFjY2Vzc0VsZW1lbnQuaCAqLywKIAkJCQk0QzZCOTkxODBF
NTJFMzczMDA0ODdCQjcgLyogV01MQUVsZW1lbnQuY3BwICovLAogCQkJCTRDNkI5OTE5MEU1MkUz
NzMwMDQ4N0JCNyAvKiBXTUxBRWxlbWVudC5oICovLAogCQkJCTA4MDA4MTk0MEVEM0IyREQwMEM1
M0JDMCAvKiBXTUxBbmNob3JFbGVtZW50LmNwcCAqLywKQEAgLTE2Mzg0LDYgKzE2MzkwLDcgQEAK
IAkJCQlBN0FEMkY4ODBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guaCBpbiBIZWFkZXJzICov
LAogCQkJCTA4MEFFQzgyMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDgwQUVDODQwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNp
Y0V2ZW50SGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDgyMDNBQTAwRUQ4QzM1MzAwQjhC
NjFBIC8qIFdNTEFjY2Vzc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTgzMTYsNiArMTgz
MjMsNyBAQAogCQkJCUE3QUQyRjg3MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwODBBRUM4MTBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2lj
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDgwQUVDODMwRUQ4NzA4QjAwREY0Q0NFIC8q
IFdNTEludHJpbnNpY0V2ZW50SGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwODIwM0E5
RjBFRDhDMzUzMDBCOEI2MUEgLyogV01MQWNjZXNzRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
SW5kZXg6IHdtbC9XTUxBY2Nlc3NFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MQWNj
ZXNzRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyB3bWwvV01MQWNjZXNzRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAg
IGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKFdNTCkKKyNpbmNsdWRlICJXTUxBY2Nlc3NFbGVtZW50LmgiCisKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJXTUxOYW1lcy5oIgor
I2luY2x1ZGUgIldNTFBhZ2VTdGF0ZS5oIgorI2luY2x1ZGUgIldNTFZhcmlhYmxlcy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBXTUxOYW1lczsKKworV01MQWNj
ZXNzRWxlbWVudDo6V01MQWNjZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jKQorICAgIDogV01MRWxlbWVudCh0YWdOYW1lLCBkb2MpCit7Cit9CisK
K3ZvaWQgV01MQWNjZXNzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmli
dXRlKiBhdHRyKQoreworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gZG9tYWluQXR0cikgeworICAg
ICAgICBpZiAodmFsdWVDb250YWluc1ZhcmlhYmxlUmVmZXJlbmNlKGF0dHItPnZhbHVlKCkpKSB7
CisgICAgICAgICAgICAvLyBGSVhNRTogRXJyb3IgcmVycG9ydGluZworICAgICAgICAgICAgLy8g
V01MSGVscGVyOjp0b2tlbml6ZXIoKS0+cmVwb3J0RXJyb3IoSW52YWxpZFZhcmlhYmxlUmVmZXJl
bmNlRXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAgICAgICBwYWdlLT53bWxQ
YWdlU3RhdGUoKS0+c2V0RGVja0FjY2Vzc0RvbWFpbihhdHRyLT52YWx1ZSgpKTsKKyAgICB9IGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBwYXRoQXR0cikgeworICAgICAgICBpZiAodmFsdWVDb250
YWluc1ZhcmlhYmxlUmVmZXJlbmNlKGF0dHItPnZhbHVlKCkpKSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogRXJyb3IgcmVwb3J0aW5nCisgICAgICAgICAgICAvLyBXTUxIZWxwZXI6OnRva2VuaXpl
cigpLT5yZXBvcnRFcnJvcihJbnZhbGlkVmFyaWFibGVSZWZlcmVuY2VFcnJvcik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3Vt
ZW50KCktPnBhZ2UoKSkgCisgICAgICAgICAgICBwYWdlLT53bWxQYWdlU3RhdGUoKS0+c2V0RGVj
a0FjY2Vzc1BhdGgoYXR0ci0+dmFsdWUoKSk7CisgICAgfSBlbHNlCisgICAgICAgIFdNTEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworfQorCit9CisKKyNlbmRpZgpJbmRleDog
d21sL1dNTEFjY2Vzc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MQWNjZXNzRWxlbWVu
dC5oCShyZXZpc2lvbiAwKQorKysgd21sL1dNTEFjY2Vzc0VsZW1lbnQuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0MCBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICAgICAgICAgICAgaHR0cDovL3d3dy50
b3JjaG1vYmlsZS5jb20vCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFdNTEFjY2Vzc0VsZW1lbnRfaAorI2RlZmluZSBX
TUxBY2Nlc3NFbGVtZW50X2gKKworI2lmIEVOQUJMRShXTUwpCisjaW5jbHVkZSAiV01MRWxlbWVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdNTEFjY2Vzc0VsZW1lbnQgOiBw
dWJsaWMgV01MRWxlbWVudCB7CitwdWJsaWM6CisgICAgV01MQWNjZXNzRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOworCisgICAgdmlydHVhbCB2b2lkIHBh
cnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOworfTsKKworfQorCisjZW5kaWYK
KyNlbmRpZgpJbmRleDogd21sL1dNTFRhZ05hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHdtbC9XTUxU
YWdOYW1lcy5pbgkocmV2aXNpb24gMzg2OTMpCisrKyB3bWwvV01MVGFnTmFtZXMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTMsNiArMyw3IEBAIG5hbWVzcGFjZVVSST0iaHR0cDovL3d3dy53YXBmb3J1
bS5vcmcvRFQKIGd1YXJkRmFjdG9yeVdpdGg9IkVOQUJMRShXTUwpIgogCiBhCithY2Nlc3MKIGFu
Y2hvcgogYnIgaW50ZXJmYWNlTmFtZT1XTUxCUkVsZW1lbnQKIGNhcmQKQEAgLTI1LDcgKzI2LDYg
QEAgdQogCiAjaWYgMAogIyBOb3QgeWV0IGltcGxlbWVudGVkCi1hY2Nlc3MKIGRvCiBmaWVsZHNl
dAogaGVhZApJbmRleDogd21sL1dNTFZhcmlhYmxlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dN
TFZhcmlhYmxlcy5jcHAJKHJldmlzaW9uIDM4NjkzKQorKysgd21sL1dNTFZhcmlhYmxlcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDE5IEBAIGJvb2wgaXNWYWxpZFZhcmlhYmxlTmFt
ZShjb25zdCBTdHJpbmcmIG4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCB2YWx1ZUNvbnRh
aW5zVmFyaWFibGVSZWZlcmVuY2UoY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIGludCBzdGFy
dCA9IHRleHQuZmluZCgnJCcpOworICAgIGlmIChzdGFydCA9PSAtMSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaW50IGVuZCA9IHN0YXJ0ICsgMTsKKyAgICB3aGlsZSAodGV4dFtlbmRd
ID09ICckJykKKyAgICAgICAgKytlbmQ7CisKKyAgICByZXR1cm4gKChlbmQtc3RhcnQpICUgMikg
IT0gMDsKK30KKwogU3RyaW5nIHN1YnN0aXR1dGVWYXJpYWJsZVJlZmVyZW5jZXMoY29uc3QgU3Ry
aW5nJiB2YXJpYWJsZVJlZmVyZW5jZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBXTUxWYXJpYWJsZUVz
Y2FwaW5nTW9kZSBlc2NhcGVNb2RlKQogewogICAgIC8vIEZJWE1FIQpJbmRleDogd21sL1dNTFZh
cmlhYmxlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHdtbC9XTUxWYXJpYWJsZXMuaAkocmV2aXNpb24gMzg2
OTMpCisrKyB3bWwvV01MVmFyaWFibGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDExICszMCwx
MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBlbnVtIFdNTFZhcmlhYmxlRXNjYXBpbmdN
b2RlIHsKICAgICAgICAgV01MVmFyaWFibGVFc2NhcGluZ19Ob25lID0gMCwKLSAgICAgICAgV01M
VmFyaWFibGVFc2NhcGluZ19Fc2NhcGUgPSAxLAotICAgICAgICBXTUxWYXJpYWJsZUVzY2FwaW5n
X1VuZXNjYXBlID0gMgorICAgICAgICBXTUxWYXJpYWJsZUVzY2FwaW5nX0VzY2FwZSwKKyAgICAg
ICAgV01MVmFyaWFibGVFc2NhcGluZ19VbmVzY2FwZQogICAgIH07CiAKLSAgICBib29sIGlzVmFs
aWRWYXJpYWJsZU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGlzUmVmZXJlbmNlKTsKKyAg
ICBib29sIGlzVmFsaWRWYXJpYWJsZU5hbWUoY29uc3QgU3RyaW5nJiwgYm9vbCBpc1JlZmVyZW5j
ZSk7CisgICAgYm9vbCB2YWx1ZUNvbnRhaW5zVmFyaWFibGVSZWZlcmVuY2UoY29uc3QgU3RyaW5n
Jik7CiAKICAgICBTdHJpbmcgc3Vic3RpdHV0ZVZhcmlhYmxlUmVmZXJlbmNlcyhjb25zdCBTdHJp
bmcmIHZhcmlhYmxlUmVmZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIERvY3VtZW50KiwK
</data>
<flag name="review"
          id="11766"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25447</attachid>
            <date>2008-11-24 13:41:03 -0800</date>
            <delta_ts>2008-11-24 13:46:23 -0800</delta_ts>
            <desc>Updated patch v2</desc>
            <filename>AccessElement.diff</filename>
            <type>text/plain</type>
            <size>6609</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IHdtbC9XTUxBY2Nlc3NFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MQWNj
ZXNzRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyB3bWwvV01MQWNjZXNzRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAg
IGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKFdNTCkKKyNpbmNsdWRlICJXTUxBY2Nlc3NFbGVtZW50LmgiCisKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJXTUxOYW1lcy5oIgor
I2luY2x1ZGUgIldNTFBhZ2VTdGF0ZS5oIgorI2luY2x1ZGUgIldNTFZhcmlhYmxlcy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBXTUxOYW1lczsKKworV01MQWNj
ZXNzRWxlbWVudDo6V01MQWNjZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jKQorICAgIDogV01MRWxlbWVudCh0YWdOYW1lLCBkb2MpCit7Cit9CisK
K3ZvaWQgV01MQWNjZXNzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmli
dXRlKiBhdHRyKQoreworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gZG9tYWluQXR0cikgeworICAg
ICAgICBpZiAoY29udGFpbnNWYXJpYWJsZVJlZmVyZW5jZShhdHRyLT52YWx1ZSgpKSkgeworICAg
ICAgICAgICAgLy8gRklYTUU6IEVycm9yIHJlcnBvcnRpbmcKKyAgICAgICAgICAgIC8vIFdNTEhl
bHBlcjo6dG9rZW5pemVyKCktPnJlcG9ydEVycm9yKEludmFsaWRWYXJpYWJsZVJlZmVyZW5jZUVy
cm9yKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChQYWdl
KiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+d21sUGFnZVN0
YXRlKCktPnJlc3RyaWN0RGVja0FjY2Vzc1RvRG9tYWluKGF0dHItPnZhbHVlKCkpOworICAgIH0g
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHBhdGhBdHRyKSB7CisgICAgICAgIGlmIChjb250YWlu
c1ZhcmlhYmxlUmVmZXJlbmNlKGF0dHItPnZhbHVlKCkpKSB7CisgICAgICAgICAgICAvLyBGSVhN
RTogRXJyb3IgcmVwb3J0aW5nCisgICAgICAgICAgICAvLyBXTUxIZWxwZXI6OnRva2VuaXplcigp
LT5yZXBvcnRFcnJvcihJbnZhbGlkVmFyaWFibGVSZWZlcmVuY2VFcnJvcik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50
KCktPnBhZ2UoKSkgCisgICAgICAgICAgICBwYWdlLT53bWxQYWdlU3RhdGUoKS0+cmVzdHJpY3RE
ZWNrQWNjZXNzVG9QYXRoKGF0dHItPnZhbHVlKCkpOworICAgIH0gZWxzZQorICAgICAgICBXTUxF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKK30KKworfQorCisjZW5kaWYKSW5k
ZXg6IHdtbC9XTUxBY2Nlc3NFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTEFjY2Vzc0Vs
ZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIHdtbC9XTUxBY2Nlc3NFbGVtZW50LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDAgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1v
YmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAgIGh0dHA6Ly93
d3cudG9yY2htb2JpbGUuY29tLworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBXTUxBY2Nlc3NFbGVtZW50X2gKKyNkZWZp
bmUgV01MQWNjZXNzRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIldNTEVs
ZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXTUxBY2Nlc3NFbGVtZW50
IDogcHVibGljIFdNTEVsZW1lbnQgeworcHVibGljOgorICAgIFdNTEFjY2Vzc0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsKK307CisKK30KKworI2Vu
ZGlmCisjZW5kaWYKSW5kZXg6IHdtbC9XTUxUYWdOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwv
V01MVGFnTmFtZXMuaW4JKHJldmlzaW9uIDM4NzE3KQorKysgd21sL1dNTFRhZ05hbWVzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQAogZ3VhcmRGYWN0b3J5V2l0aD0iRU5BQkxFKFdN
TCkiCiAKIGEKK2FjY2VzcwogYW5jaG9yCiBiciBpbnRlcmZhY2VOYW1lPVdNTEJSRWxlbWVudAog
Y2FyZApAQCAtMjUsNyArMjYsNiBAQAogCiAjaWYgMAogIyBOb3QgeWV0IGltcGxlbWVudGVkCi1h
Y2Nlc3MKIGRvCiBmaWVsZHNldAogaGVhZApJbmRleDogd21sL1dNTFZhcmlhYmxlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gd21sL1dNTFZhcmlhYmxlcy5jcHAJKHJldmlzaW9uIDM4NzE3KQorKysgd21s
L1dNTFZhcmlhYmxlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDIxIEBACiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgY29udGFpbnNWYXJpYWJsZVJlZmVyZW5jZShjb25zdCBT
dHJpbmcmIHRleHQpCit7CisgICAgaW50IHN0YXJ0ID0gdGV4dC5maW5kKCckJyk7CisgICAgaWYg
KHN0YXJ0ID09IC0xKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1bnNpZ25lZCBsZW5n
dGggPSB0ZXh0Lmxlbmd0aCgpOworICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXJ0UG9zOyBpIDwg
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkVmFyaWFibGVDaGFyYWN0ZXIodGV4
dFtpXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIFN0cmluZyBzdWJzdGl0dXRlVmFyaWFibGVSZWZlcmVuY2VzKGNvbnN0IFN0cmlu
ZyYgdmFyaWFibGVSZWZlcmVuY2UsIERvY3VtZW50KiBkb2N1bWVudCwgV01MVmFyaWFibGVFc2Nh
cGluZ01vZGUgZXNjYXBlTW9kZSkKIHsKICAgICAvLyBGSVhNRSEKSW5kZXg6IHdtbC9XTUxWYXJp
YWJsZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MVmFyaWFibGVzLmgJKHJldmlzaW9uIDM4NzE3
KQorKysgd21sL1dNTFZhcmlhYmxlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNiArMjksMTcg
QEAKICAgICBjbGFzcyBTdHJpbmc7CiAKICAgICBlbnVtIFdNTFZhcmlhYmxlRXNjYXBpbmdNb2Rl
IHsKLSAgICAgICAgV01MVmFyaWFibGVFc2NhcGluZ19Ob25lID0gMCwKLSAgICAgICAgV01MVmFy
aWFibGVFc2NhcGluZ19Fc2NhcGUgPSAxLAotICAgICAgICBXTUxWYXJpYWJsZUVzY2FwaW5nX1Vu
ZXNjYXBlID0gMgorICAgICAgICBXTUxWYXJpYWJsZUVzY2FwaW5nTm9uZSA9IDAsCisgICAgICAg
IFdNTFZhcmlhYmxlRXNjYXBpbmdFc2NhcGUsCisgICAgICAgIFdNTFZhcmlhYmxlRXNjYXBpbmdV
bmVzY2FwZQogICAgIH07CiAKLSAgICBib29sIGlzVmFsaWRWYXJpYWJsZU5hbWUoY29uc3QgU3Ry
aW5nJiBuYW1lLCBib29sIGlzUmVmZXJlbmNlKTsKKyAgICBib29sIGlzVmFsaWRWYXJpYWJsZU5h
bWUoY29uc3QgU3RyaW5nJiwgYm9vbCBpc1JlZmVyZW5jZSk7CisgICAgYm9vbCBjb250YWluc1Zh
cmlhYmxlUmVmZXJlbmNlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgU3RyaW5nIHN1YnN0aXR1dGVW
YXJpYWJsZVJlZmVyZW5jZXMoY29uc3QgU3RyaW5nJiB2YXJpYWJsZVJlZmVyZW5jZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudCosCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV01MVmFyaWFibGVFc2NhcGluZ01vZGUgbW9k
ZSA9IFdNTFZhcmlhYmxlRXNjYXBpbmdfTm9uZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV01MVmFyaWFibGVFc2NhcGluZ01vZGUgbW9kZSA9IFdNTFZhcmlhYmxl
RXNjYXBpbmdOb25lKTsKIAogfQogCkluZGV4OiB3bWwvV01MUGFnZVN0YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gd21sL1dNTFBhZ2VTdGF0ZS5oCShyZXZpc2lvbiAzODcxNykKKysrIHdtbC9XTUxQYWdl
U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTksOCArNTksOCBAQAogICAgIHZvaWQgc2V0QWN0
aXZlQ2FyZChXTUxDYXJkRWxlbWVudCogY2FyZCkgeyBtX2FjdGl2ZUNhcmQgPSBjYXJkOyB9CiAK
ICAgICAvLyBkZWNrIGFjY2VzcyBjb250cm9sCi0gICAgdm9pZCBzZXREZWNrQWNjZXNzRG9tYWlu
KGNvbnN0IFN0cmluZyYgZG9tYWluKSB7IG1fYWNjZXNzRG9tYWluID0gZG9tYWluOyB9Ci0gICAg
dm9pZCBzZXREZWNrQWNjZXNzUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpIHsgbV9hY2Nlc3NQYXRo
ID0gcGF0aDsgfQorICAgIHZvaWQgcmVzdHJpY3REZWNrQWNjZXNzVG9Eb21haW4oY29uc3QgU3Ry
aW5nJiBkb21haW4pIHsgbV9hY2Nlc3NEb21haW4gPSBkb21haW47IH0KKyAgICB2b2lkIHJlc3Ry
aWN0RGVja0FjY2Vzc1RvUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpIHsgbV9hY2Nlc3NQYXRoID0g
cGF0aDsgfQogICAgIGJvb2wgaGFzRGVja0FjY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzRGVj
a0FjY2VzczsgfQogIAogICAgIHZvaWQgc2V0TmVlZENoZWNrRGVja0FjY2Vzcyhib29sKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25448</attachid>
            <date>2008-11-24 13:46:23 -0800</date>
            <delta_ts>2008-11-24 16:00:16 -0800</delta_ts>
            <desc>Updated patch v3</desc>
            <filename>AccessElement.diff</filename>
            <type>text/plain</type>
            <size>6662</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IHdtbC9XTUxBY2Nlc3NFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwvV01MQWNj
ZXNzRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyB3bWwvV01MQWNjZXNzRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjggQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAg
IGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKFdNTCkKKyNpbmNsdWRlICJXTUxBY2Nlc3NFbGVtZW50LmgiCisKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJXTUxOYW1lcy5oIgor
I2luY2x1ZGUgIldNTFBhZ2VTdGF0ZS5oIgorI2luY2x1ZGUgIldNTFZhcmlhYmxlcy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBXTUxOYW1lczsKKworV01MQWNj
ZXNzRWxlbWVudDo6V01MQWNjZXNzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jKQorICAgIDogV01MRWxlbWVudCh0YWdOYW1lLCBkb2MpCit7Cit9CisK
K3ZvaWQgV01MQWNjZXNzRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmli
dXRlKiBhdHRyKQoreworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gZG9tYWluQXR0cikgeworICAg
ICAgICBpZiAoY29udGFpbnNWYXJpYWJsZVJlZmVyZW5jZShhdHRyLT52YWx1ZSgpKSkgeworICAg
ICAgICAgICAgLy8gRklYTUU6IEVycm9yIHJlcnBvcnRpbmcKKyAgICAgICAgICAgIC8vIFdNTEhl
bHBlcjo6dG9rZW5pemVyKCktPnJlcG9ydEVycm9yKEludmFsaWRWYXJpYWJsZVJlZmVyZW5jZUVy
cm9yKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChQYWdl
KiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+d21sUGFnZVN0
YXRlKCktPnJlc3RyaWN0RGVja0FjY2Vzc1RvRG9tYWluKGF0dHItPnZhbHVlKCkpOworICAgIH0g
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHBhdGhBdHRyKSB7CisgICAgICAgIGlmIChjb250YWlu
c1ZhcmlhYmxlUmVmZXJlbmNlKGF0dHItPnZhbHVlKCkpKSB7CisgICAgICAgICAgICAvLyBGSVhN
RTogRXJyb3IgcmVwb3J0aW5nCisgICAgICAgICAgICAvLyBXTUxIZWxwZXI6OnRva2VuaXplcigp
LT5yZXBvcnRFcnJvcihJbnZhbGlkVmFyaWFibGVSZWZlcmVuY2VFcnJvcik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50
KCktPnBhZ2UoKSkgCisgICAgICAgICAgICBwYWdlLT53bWxQYWdlU3RhdGUoKS0+cmVzdHJpY3RE
ZWNrQWNjZXNzVG9QYXRoKGF0dHItPnZhbHVlKCkpOworICAgIH0gZWxzZQorICAgICAgICBXTUxF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKK30KKworfQorCisjZW5kaWYKSW5k
ZXg6IHdtbC9XTUxBY2Nlc3NFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gd21sL1dNTEFjY2Vzc0Vs
ZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIHdtbC9XTUxBY2Nlc3NFbGVtZW50LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDAgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1v
YmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAgIGh0dHA6Ly93
d3cudG9yY2htb2JpbGUuY29tLworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBXTUxBY2Nlc3NFbGVtZW50X2gKKyNkZWZp
bmUgV01MQWNjZXNzRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIldNTEVs
ZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXTUxBY2Nlc3NFbGVtZW50
IDogcHVibGljIFdNTEVsZW1lbnQgeworcHVibGljOgorICAgIFdNTEFjY2Vzc0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsKK307CisKK30KKworI2Vu
ZGlmCisjZW5kaWYKSW5kZXg6IHdtbC9XTUxUYWdOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3bWwv
V01MVGFnTmFtZXMuaW4JKHJldmlzaW9uIDM4NzE3KQorKysgd21sL1dNTFRhZ05hbWVzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQAogZ3VhcmRGYWN0b3J5V2l0aD0iRU5BQkxFKFdN
TCkiCiAKIGEKK2FjY2VzcwogYW5jaG9yCiBiciBpbnRlcmZhY2VOYW1lPVdNTEJSRWxlbWVudAog
Y2FyZApAQCAtMjUsNyArMjYsNiBAQAogCiAjaWYgMAogIyBOb3QgeWV0IGltcGxlbWVudGVkCi1h
Y2Nlc3MKIGRvCiBmaWVsZHNldAogaGVhZApJbmRleDogd21sL1dNTFZhcmlhYmxlcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gd21sL1dNTFZhcmlhYmxlcy5jcHAJKHJldmlzaW9uIDM4NzE3KQorKysgd21s
L1dNTFZhcmlhYmxlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDIxIEBACiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgY29udGFpbnNWYXJpYWJsZVJlZmVyZW5jZShjb25zdCBT
dHJpbmcmIHRleHQpCit7CisgICAgaW50IHN0YXJ0UG9zID0gdGV4dC5maW5kKCckJyk7CisgICAg
aWYgKHN0YXJ0UG9zID09IC0xKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1bnNpZ25l
ZCBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXJ0UG9z
OyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkVmFyaWFibGVSZWZlcmVu
Y2VDaGFyYWN0ZXIodGV4dFtpXSkgJiYgIWlzVmFsaWRWYXJpYWJsZUNoYXJhY3Rlcih0ZXh0W2ld
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogU3RyaW5nIHN1YnN0aXR1dGVWYXJpYWJsZVJlZmVyZW5jZXMoY29uc3QgU3RyaW5nJiB2
YXJpYWJsZVJlZmVyZW5jZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBXTUxWYXJpYWJsZUVzY2FwaW5n
TW9kZSBlc2NhcGVNb2RlKQogewogICAgIC8vIEZJWE1FIQpJbmRleDogd21sL1dNTFZhcmlhYmxl
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHdtbC9XTUxWYXJpYWJsZXMuaAkocmV2aXNpb24gMzg3MTcpCisr
KyB3bWwvV01MVmFyaWFibGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE2ICsyOSwxNyBAQAog
ICAgIGNsYXNzIFN0cmluZzsKIAogICAgIGVudW0gV01MVmFyaWFibGVFc2NhcGluZ01vZGUgewot
ICAgICAgICBXTUxWYXJpYWJsZUVzY2FwaW5nX05vbmUgPSAwLAotICAgICAgICBXTUxWYXJpYWJs
ZUVzY2FwaW5nX0VzY2FwZSA9IDEsCi0gICAgICAgIFdNTFZhcmlhYmxlRXNjYXBpbmdfVW5lc2Nh
cGUgPSAyCisgICAgICAgIFdNTFZhcmlhYmxlRXNjYXBpbmdOb25lID0gMCwKKyAgICAgICAgV01M
VmFyaWFibGVFc2NhcGluZ0VzY2FwZSwKKyAgICAgICAgV01MVmFyaWFibGVFc2NhcGluZ1VuZXNj
YXBlCiAgICAgfTsKIAotICAgIGJvb2wgaXNWYWxpZFZhcmlhYmxlTmFtZShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgaXNSZWZlcmVuY2UpOworICAgIGJvb2wgaXNWYWxpZFZhcmlhYmxlTmFtZShj
b25zdCBTdHJpbmcmLCBib29sIGlzUmVmZXJlbmNlKTsKKyAgICBib29sIGNvbnRhaW5zVmFyaWFi
bGVSZWZlcmVuY2UoY29uc3QgU3RyaW5nJik7CiAKICAgICBTdHJpbmcgc3Vic3RpdHV0ZVZhcmlh
YmxlUmVmZXJlbmNlcyhjb25zdCBTdHJpbmcmIHZhcmlhYmxlUmVmZXJlbmNlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvY3VtZW50KiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXTUxWYXJpYWJsZUVzY2FwaW5nTW9kZSBtb2RlID0g
V01MVmFyaWFibGVFc2NhcGluZ19Ob25lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXTUxWYXJpYWJsZUVzY2FwaW5nTW9kZSBtb2RlID0gV01MVmFyaWFibGVFc2Nh
cGluZ05vbmUpOwogCiB9CiAKSW5kZXg6IHdtbC9XTUxQYWdlU3RhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSB3bWwvV01MUGFnZVN0YXRlLmgJKHJldmlzaW9uIDM4NzE3KQorKysgd21sL1dNTFBhZ2VTdGF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw4IEBACiAgICAgdm9pZCBzZXRBY3RpdmVD
YXJkKFdNTENhcmRFbGVtZW50KiBjYXJkKSB7IG1fYWN0aXZlQ2FyZCA9IGNhcmQ7IH0KIAogICAg
IC8vIGRlY2sgYWNjZXNzIGNvbnRyb2wKLSAgICB2b2lkIHNldERlY2tBY2Nlc3NEb21haW4oY29u
c3QgU3RyaW5nJiBkb21haW4pIHsgbV9hY2Nlc3NEb21haW4gPSBkb21haW47IH0KLSAgICB2b2lk
IHNldERlY2tBY2Nlc3NQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkgeyBtX2FjY2Vzc1BhdGggPSBw
YXRoOyB9CisgICAgdm9pZCByZXN0cmljdERlY2tBY2Nlc3NUb0RvbWFpbihjb25zdCBTdHJpbmcm
IGRvbWFpbikgeyBtX2FjY2Vzc0RvbWFpbiA9IGRvbWFpbjsgfQorICAgIHZvaWQgcmVzdHJpY3RE
ZWNrQWNjZXNzVG9QYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkgeyBtX2FjY2Vzc1BhdGggPSBwYXRo
OyB9CiAgICAgYm9vbCBoYXNEZWNrQWNjZXNzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNEZWNrQWNj
ZXNzOyB9CiAgCiAgICAgdm9pZCBzZXROZWVkQ2hlY2tEZWNrQWNjZXNzKGJvb2wpOwo=
</data>
<flag name="review"
          id="11808"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>