<?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>32369</bug_id>
          
          <creation_ts>2009-12-10 02:18:50 -0800</creation_ts>
          <short_desc>Support for storage and databases in sandboxed iframes</short_desc>
          <delta_ts>2010-03-15 10:14: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>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrik Persson">patrik.j.persson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>170376</commentid>
    <comment_count>0</comment_count>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2009-12-10 02:18:50 -0800</bug_when>
    <thetext>This is a followup to bug 21288, which concerned the implementation of
the HTML5 iframe sandbox attribute.

How should WebKit interpret the HTML5 spec regarding sandboxed storage
and databases?  I believe the HTML5 spec does not say much explicitly
on this, but rather relies on the origin sandboxing.  Here is my
interpretation.

* I think sessionStorage would make sense with sandboxed origins.

* I think localStorage would end up equivalent to sessionStorage in a
  sandboxed frame, making it somewhat less useful. (The unique origin
  of a sandboxed frame means, in my interpretation, that the same
  frame would not be able to access its own localStorage in another
  session.)

* Similarly, I think a sandboxed database would be useful only within
  a session.  The database could be reclaimed when the session ends.
  This defeats much of the purpose of databases, but perhaps it would
  still be useful for compatibility.

The current implementation disables storage and databases in sandboxed
frames.  There is some more discussion in the thread for bug 21288,
comments 43..49:

https://bugs.webkit.org/show_bug.cgi?id=21288#c43</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178962</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-09 00:38:33 -0800</bug_when>
    <thetext>I&apos;ll forward this question to the What WG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199017</commentid>
    <comment_count>2</comment_count>
      <attachid>50593</attachid>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2010-03-12 06:52:07 -0800</bug_when>
    <thetext>Created attachment 50593
Patch for updated HTML5 sandbox support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199022</commentid>
    <comment_count>3</comment_count>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2010-03-12 06:53:58 -0800</bug_when>
    <thetext>(This comment really concerns the patch just submitted in comment #2.
I was a bit quick on the &quot;submit&quot; button.)

Adam, thanks for bringing this up in the What WG.

  http://www.mail-archive.com/whatwg@lists.whatwg.org/msg19786.html

This is a patch to match the updated HTML5 spec wrt. iframe
sandboxing.  The patch does two things:

- Enables window.sessionStorage in sandboxed iframes.  (Removed
  sandboxing check.)

- Raises SECURITY_ERR exceptions when window.localStorage or
  window.openDatabase() is accessed in a sandboxed iframe.  (Note:
  window.sessionStorage does not raise exceptions.)

The patched behavior is in accordance with HTML5:

  http://dev.w3.org/html5/webstorage/   (sections 4.2 and 4.3)
  http://dev.w3.org/html5/webdatabase/  (section 4.1)

Raising exceptions in situations where WebKit would previously return
null could raise questions about compatibility.  However, iframe
sandboxing is a recent experimental feature, currently implemented
only by WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199027</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-12 07:10:43 -0800</bug_when>
    <thetext>Attachment 50593 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/656025</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199088</commentid>
    <comment_count>5</comment_count>
      <attachid>50593</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-12 09:06:28 -0800</bug_when>
    <thetext>Comment on attachment 50593
Patch for updated HTML5 sandbox support

This patch looks good, thanks.  If you&apos;d be willing to fix the chromium build error, we&apos;ll be good to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199631</commentid>
    <comment_count>6</comment_count>
      <attachid>50700</attachid>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2010-03-15 07:37:52 -0700</bug_when>
    <thetext>Created attachment 50700
Patch that builds with Chromium

Sorry about the build error.  Here&apos;s an updated patch that builds on
Chromium.  Apart from the Chromium fix, this patch is identical to the
previous one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199702</commentid>
    <comment_count>7</comment_count>
      <attachid>50700</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-03-15 09:51:22 -0700</bug_when>
    <thetext>Comment on attachment 50700
Patch that builds with Chromium

&gt; -    bool isLocalStorage = (frame-&gt;domWindow()-&gt;localStorage() == storage);
&gt; +    ExceptionCode ec = 0;
&gt; +    bool isLocalStorage = (frame-&gt;domWindow()-&gt;localStorage(ec) == storage &amp;&amp; !ec);&apos;

&gt; -    bool isLocalStorage = storage-&gt;frame()-&gt;domWindow()-&gt;localStorage() == storage;
&gt; +    ExceptionCode ec = 0;
&gt; +    bool isLocalStorage = (storage-&gt;frame()-&gt;domWindow()-&gt;localStorage(ec) == storage &amp;&amp; !ec);

Since the localStorage function returns 0 when there is an error, the !ec check seems unnecessary.

&gt; -        for (unsigned i = 0; i &lt; frames.size(); ++i)
&gt; -            frames[i]-&gt;document()-&gt;enqueueStorageEvent(StorageEvent::create(eventNames().storageEvent, key, oldValue, newValue, sourceFrame-&gt;document()-&gt;url(), frames[i]-&gt;domWindow()-&gt;localStorage()));
&gt; +        for (unsigned i = 0; i &lt; frames.size(); ++i) {
&gt; +            ExceptionCode ec = 0;
&gt; +            Storage* storage = frames[i]-&gt;domWindow()-&gt;localStorage(ec);
&gt; +            if (!ec)
&gt; +                frames[i]-&gt;document()-&gt;enqueueStorageEvent(StorageEvent::create(eventNames().storageEvent, key, oldValue, newValue, sourceFrame-&gt;document()-&gt;url(), storage));
&gt; +        }

I think it would be cleaner to just check the returned storage object to see if it&apos;s 0 rather than checking ec. We do need the ExceptionCode to communicate with the JavaScript binding, but I don&apos;t think we need to use it inside the engine itself.

Minor issues.

r=me based on my own reading of the code, the EWS results, and Adam Barth’s earlier review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199707</commentid>
    <comment_count>8</comment_count>
      <attachid>50700</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-15 10:14:16 -0700</bug_when>
    <thetext>Comment on attachment 50700
Patch that builds with Chromium

Clearing flags on attachment: 50700

Committed r56002: &lt;http://trac.webkit.org/changeset/56002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199708</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-15 10:14:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50593</attachid>
            <date>2010-03-12 06:52:07 -0800</date>
            <delta_ts>2010-03-15 07:37:52 -0700</delta_ts>
            <desc>Patch for updated HTML5 sandbox support</desc>
            <filename>sandbox-update.patch</filename>
            <type>text/plain</type>
            <size>10676</size>
            <attacher name="Patrik Persson">patrik.j.persson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDMtMTEgIFBhdHJpayBQZXJzc29uICA8cGF0cmlrLmoucGVy
c3NvbkBlcmljc3Nvbi5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMzY5
CisKKyAgICAgICAgUmV2aXNlIGlmcmFtZSBzYW5kYm94IGJlaGF2aW9yIHRvIG1hdGNoIHRoZSB1
cGRhdGVkIEhUTUw1IHNwZWMuCisKKyAgICAgICAgLSBFbmFibGVzIHdpbmRvdy5zZXNzaW9uU3Rv
cmFnZSBpbiBzYW5kYm94ZWQgaWZyYW1lcy4KKworICAgICAgICAtIFJhaXNlcyBTRUNVUklUWV9F
UlIgZXhjZXB0aW9ucyB3aGVuIHdpbmRvdy5sb2NhbFN0b3JhZ2Ugb3IKKyAgICAgICAgICB3aW5k
b3cub3BlbkRhdGFiYXNlKCkgaXMgYmxvY2tlZCBieSBpZnJhbWUgc2FuZGJveGluZy4KKworICAg
ICAgICAgIE5vdGU6IHdpbmRvdy5zZXNzaW9uU3RvcmFnZSBkb2VzIG5vdCByYWlzZSBleGNlcHRp
b25zLgorCisgICAgICAgIFdlYktpdCB3b3VsZCBwcmV2aW91c2x5IHJldHVybiBudWxsIHJlZmVy
ZW5jZXMgaW4gdGhlc2UgY2FzZXMuICBUaGUKKyAgICAgICAgbmV3IGJlaGF2aW9yIGlzIGluIGFj
Y29yZGFuY2Ugd2l0aCBIVE1MNToKKworICAgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2h0bWw1
L3dlYnN0b3JhZ2UvICAgKHNlY3Rpb25zIDQuMiBhbmQgNC4zKQorICAgICAgICAgIGh0dHA6Ly9k
ZXYudzMub3JnL2h0bWw1L3dlYmRhdGFiYXNlLyAgKHNlY3Rpb24gNC4xKQorICAgICAgICAgIAor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNlbGVjdERPTVN0b3JhZ2UpOiBleGNlcHRpb24g
aGFuZGxpbmcKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6aGFu
ZGxlRXZlbnQpOiBleGNlcHRpb24gaGFuZGxpbmcKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNlc3Npb25TdG9yYWdlKTogcmUtZW5h
YmxlZCBpbiBpZnJhbWUgc2FuZGJveAorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpsb2Nh
bFN0b3JhZ2UpOiByYWlzZSBleGNlcHRpb24gcmF0aGVyIHRoYW4gcmV0dXJuIG51bGwKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3BlbkRhdGFiYXNlKTogcmFpc2UgZXhjZXB0aW9uIHJh
dGhlciB0aGFuIHJldHVybiBudWxsCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDogYWRkZWQg
ZXhjZXB0aW9ucyB0byBpbnRlcmZhY2UKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IGFk
ZGVkIGV4Y2VwdGlvbnMgdG8gaW50ZXJmYWNlCisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlRXZl
bnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoKTogZXhjZXB0aW9uIGhhbmRsaW5nCisKIDIwMTAtMDMtMTAgIFN0ZXZlIEJs
b2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVt
eSBPcmxvdy4KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CShyZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYzLDcgKzEzNjMsOCBAQCB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OnNlbGVjdERPTVN0b3JhCiAgICAgICAgIHJldHVybjsKIAogICAgIEZyYW1l
KiBmcmFtZSA9IHN0b3JhZ2UtPmZyYW1lKCk7Ci0gICAgYm9vbCBpc0xvY2FsU3RvcmFnZSA9IChm
cmFtZS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZSgpID09IHN0b3JhZ2UpOworICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOworICAgIGJvb2wgaXNMb2NhbFN0b3JhZ2UgPSAoZnJhbWUtPmRvbVdp
bmRvdygpLT5sb2NhbFN0b3JhZ2UoZWMpID09IHN0b3JhZ2UgJiYgIWVjKTsKICAgICBpbnQgc3Rv
cmFnZVJlc291cmNlSWQgPSAwOwogICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9y
IGRvbVN0b3JhZ2VFbmQgPSBtX2RvbVN0b3JhZ2VSZXNvdXJjZXMuZW5kKCk7CiAgICAgZm9yIChE
T01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fZG9tU3RvcmFnZVJlc291cmNl
cy5iZWdpbigpOyBpdCAhPSBkb21TdG9yYWdlRW5kOyArK2l0KSB7CkluZGV4OiBXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAJKHJldmlzaW9u
IDU1ODQyKQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw4IEBAIHZvaWQgSW5zcGVjdG9yRE9N
U3RvcmFnZVJlc291cmNlOjpoYW5kbGUKICAgICBBU1NFUlQoZXZlbnROYW1lcygpLnN0b3JhZ2VF
dmVudCA9PSBldmVudC0+dHlwZSgpKTsKICAgICBTdG9yYWdlRXZlbnQqIHN0b3JhZ2VFdmVudCA9
IHN0YXRpY19jYXN0PFN0b3JhZ2VFdmVudCo+KGV2ZW50KTsKICAgICBTdG9yYWdlKiBzdG9yYWdl
ID0gc3RvcmFnZUV2ZW50LT5zdG9yYWdlQXJlYSgpOwotICAgIGJvb2wgaXNMb2NhbFN0b3JhZ2Ug
PSBzdG9yYWdlLT5mcmFtZSgpLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKCkgPT0gc3RvcmFn
ZTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBib29sIGlzTG9jYWxTdG9yYWdlID0g
KHN0b3JhZ2UtPmZyYW1lKCktPmRvbVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoZWMpID09IHN0b3Jh
Z2UgJiYgIWVjKTsKICAgICBpZiAoaXNTYW1lSG9zdEFuZFR5cGUoc3RvcmFnZS0+ZnJhbWUoKSwg
aXNMb2NhbFN0b3JhZ2UpKQogICAgICAgICBtX2Zyb250ZW5kLT51cGRhdGVET01TdG9yYWdlKG1f
aWQpOwogfQpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDU1ODQyKQorKysgV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3NSw5ICs1NzUsNiBAQCBTdG9y
YWdlKiBET01XaW5kb3c6OnNlc3Npb25TdG9yYWdlKCkgY29uCiAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1
cm4gMDsKLSAgICAKLSAgICBpZiAoIWRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5jYW5BY2Nl
c3NTdG9yYWdlKCkpCi0gICAgICAgIHJldHVybiAwOwogCiAgICAgUGFnZSogcGFnZSA9IGRvY3Vt
ZW50LT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtNTkyLDcgKzU4OSw3IEBAIFN0b3JhZ2Uq
IERPTVdpbmRvdzo6c2Vzc2lvblN0b3JhZ2UoKSBjb24KICAgICByZXR1cm4gbV9zZXNzaW9uU3Rv
cmFnZS5nZXQoKTsKIH0KIAotU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoKSBjb25z
dAorU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhjZXB0aW9uQ29kZSYgZWMpIGNv
bnN0CiB7CiAgICAgaWYgKG1fbG9jYWxTdG9yYWdlKQogICAgICAgICByZXR1cm4gbV9sb2NhbFN0
b3JhZ2UuZ2V0KCk7CkBAIC02MDEsOCArNTk4LDEwIEBAIFN0b3JhZ2UqIERPTVdpbmRvdzo6bG9j
YWxTdG9yYWdlKCkgY29uc3QKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4gMDsK
ICAgICAKLSAgICBpZiAoIWRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5jYW5BY2Nlc3NTdG9y
YWdlKCkpCisgICAgaWYgKCFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzTG9j
YWxTdG9yYWdlKCkpIHsKKyAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVy
biAwOworICAgIH0KICAgICAgICAgCiAgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7
CiAgICAgaWYgKCFwYWdlKQpAQCAtMTE4Nyw4ICsxMTg2LDEwIEBAIFBhc3NSZWZQdHI8RGF0YWJh
c2U+IERPTVdpbmRvdzo6b3BlbkRhdGEKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc0RhdGFiYXNlKCkpCisgICAgaWYgKCFkb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0YWJhc2UoKSkgeworICAgICAgICBlYyA9IFNF
Q1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgcmV0dXJuIERhdGFi
YXNlOjpvcGVuRGF0YWJhc2UoZG9jdW1lbnQsIG5hbWUsIHZlcnNpb24sIGRpc3BsYXlOYW1lLCBl
c3RpbWF0ZWRTaXplLCBjcmVhdGlvbkNhbGxiYWNrLCBlYyk7CiB9CkluZGV4OiBXZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCShy
ZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5
KQpAQCAtMjA3LDcgKzIwNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoRE9N
X1NUT1JBR0UpCiAgICAgICAgIC8vIEhUTUwgNSBrZXkvdmFsdWUgc3RvcmFnZQogICAgICAgICBT
dG9yYWdlKiBzZXNzaW9uU3RvcmFnZSgpIGNvbnN0OwotICAgICAgICBTdG9yYWdlKiBsb2NhbFN0
b3JhZ2UoKSBjb25zdDsKKyAgICAgICAgU3RvcmFnZSogbG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdDsKICNlbmRpZgogCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsK
SW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiA1NTg0MikKKysrIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDggQEAgbW9kdWxlIHdpbmRv
dyB7CiAjZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJMRV9ET01fU1RPUkFHRSkgJiYgRU5BQkxFX0RP
TV9TVE9SQUdFCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0g
U3RvcmFnZSBzZXNzaW9uU3RvcmFnZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFi
bGVkQXRSdW50aW1lXSBTdG9yYWdlIGxvY2FsU3RvcmFnZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBTdG9yYWdlIGxvY2FsU3RvcmFnZQorICAgICAgICAg
ICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCiAjaWYgZGVmaW5lZChFTkFC
TEVfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX05PVElGSUNBVElPTlMKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBOb3RpZmljYXRpb25DZW50ZXIgd2Via2l0
Tm90aWZpY2F0aW9uczsKSW5kZXg6IFdlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCShyZXZpc2lvbiA1NTg0MikK
KysrIFdlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcs
NyArMTE3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTYW5kYm94ZWQoU2FuZGJveEZsYWdzIG1h
c2spIGNvbnN0IHsgcmV0dXJuIG1fc2FuZGJveEZsYWdzICYgbWFzazsgfQogCiAgICAgYm9vbCBj
YW5BY2Nlc3NEYXRhYmFzZSgpIGNvbnN0IHsgcmV0dXJuICFpc1VuaXF1ZSgpOyB9Ci0gICAgYm9v
bCBjYW5BY2Nlc3NTdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KKyAgICBi
b29sIGNhbkFjY2Vzc0xvY2FsU3RvcmFnZSgpIGNvbnN0IHsgcmV0dXJuICFpc1VuaXF1ZSgpOyB9
CiAgICAgYm9vbCBjYW5BY2Nlc3NDb29raWVzKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7
IH0KIAogICAgIGJvb2wgaXNTZWN1cmVUcmFuc2l0aW9uVG8oY29uc3QgS1VSTCYpIGNvbnN0OwpJ
bmRleDogV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNp
b24gNTU4NDIpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY3LDggKzY3LDEyIEBAIHZvaWQgU3RvcmFnZUV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGF0Y2goY28KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBmcmFtZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBm
cmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVTdG9yYWdlRXZlbnQoU3RvcmFnZUV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUs
IHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+
bG9jYWxTdG9yYWdlKCkpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1l
cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
ICAgICAgICBTdG9yYWdlKiBzdG9yYWdlID0gZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxT
dG9yYWdlKGVjKTsKKyAgICAgICAgICAgIGlmICghZWMpCisgICAgICAgICAgICAgICAgZnJhbWVz
W2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlU3RvcmFnZUV2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3Vy
Y2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0b3JhZ2UpKTsKKyAgICAgICAgfQogICAgIH0K
IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTU4NDIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wMy0xMSAgUGF0cmlrIFBlcnNz
b24gSiAgPHBhdHJpay5qLnBlcnNzb25AZXJpY3Nzb24uY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMjM2OQorCisgICAgICAgIFJldmlzZWQgdGVzdCBvZiBzdG9yYWdlL2Rh
dGFiYXNlcyBpbiBzYW5kYm94ZWQgaWZyYW1lcy4KKyAgICAgICAgCisgICAgICAgIFZlcmlmeSB0
aGF0IFNFQ1VSSVRZX0VSUiBpcyByYWlzZWQgb24gYWNjZXNzIHRvCisgICAgICAgIHdpbmRvdy5s
b2NhbFN0b3JhZ2Ugb3Igd2luZG93Lm9wZW5EYXRhYmFzZSgpLiBBbHNvIHZlcmlmeSB0aGF0Cisg
ICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZSBpcyBub3cgYWxsb3dlZCBpbiBzYW5kYm94ZWQg
aWZyYW1lcy4KKworICAgICAgICBXZWJLaXQgd291bGQgcHJldmlvdXNseSByZXR1cm4gbnVsbCBy
ZWZlcmVuY2VzIGluIHRoZXNlIGNhc2VzLiAgVGhlCisgICAgICAgIG5ldyBiZWhhdmlvciBpcyBp
biBhY2NvcmRhbmNlIHdpdGggSFRNTDU6CisKKyAgICAgICAgLSBodHRwOi8vZGV2LnczLm9yZy9o
dG1sNS93ZWJzdG9yYWdlLyAgIChzZWN0aW9ucyA0LjIgYW5kIDQuMykKKyAgICAgICAgLSBodHRw
Oi8vZGV2LnczLm9yZy9odG1sNS93ZWJkYXRhYmFzZS8gIChzZWN0aW9uIDQuMSkKKyAgICAgICAg
LSBodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vd2hhdHdnQGxpc3RzLndoYXR3Zy5vcmcvbXNn
MTk3ODYuaHRtbAorCisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzb3VyY2VzL3NhbmRib3hlZC1p
ZnJhbWUtc3RvcmFnZS1kaXNhbGxvd2VkLmh0bWw6IGV4cGVjdCBleGNlcHRpb25zLCBub3QgbnVs
bAorICAgICAgICAqIGZhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtc3RvcmFnZS1leHBlY3Rl
ZC50eHQ6IGV4cGVjdCBleGNlcHRpb25zLCBub3QgbnVsbAorCiAyMDEwLTAzLTExICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtc3RvcmFnZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVk
LWlmcmFtZS1zdG9yYWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTU4NDIpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXN0b3JhZ2UtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xNCw5ICsxNCw5IEBAIFRFU1QgQ09NUExFVEUKIC0tLS0tLS0tCiBG
cmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JwogLS0tLS0tLS0KLVBBU1Mg
d2luZG93Lm9wZW5EYXRhYmFzZSgnU2FuZGJveGVkSWZyYW1lU3RvcmFnZURpc2FsbG93ZWQnLCAn
MS4wJywgJycsIDEpID09IG51bGwgaXMgdHJ1ZQotUEFTUyB3aW5kb3cubG9jYWxTdG9yYWdlID09
IG51bGwgaXMgdHJ1ZQotUEFTUyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgPT0gbnVsbCBpcyB0cnVl
CitQQVNTIHdpbmRvdy5vcGVuRGF0YWJhc2UoJ1NhbmRib3hlZElmcmFtZVN0b3JhZ2VEaXNhbGxv
d2VkJywgJzEuMCcsICcnLCAxKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFNFQ1VSSVRZX0VSUjog
RE9NIEV4Y2VwdGlvbiAxOC4KK1BBU1Mgd2luZG93LmxvY2FsU3RvcmFnZSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IFNFQ1VSSVRZX0VSUjogRE9NIEV4Y2VwdGlvbiAxOC4KK1BBU1Mgd2luZG93LnNl
c3Npb25TdG9yYWdlICE9IG51bGwgaXMgdHJ1ZQogCiAKIC0tLS0tLS0tCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1zdG9yYWdlLWRpc2Fs
bG93ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJj
ZXMvc2FuZGJveGVkLWlmcmFtZS1zdG9yYWdlLWRpc2FsbG93ZWQuaHRtbAkocmV2aXNpb24gNTU4
NDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFt
ZS1zdG9yYWdlLWRpc2FsbG93ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw5ICs2LDkgQEAK
IDxzY3JpcHQ+CiAKIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICBzaG91bGRCZVRy
dWUoIndpbmRvdy5vcGVuRGF0YWJhc2UoJ1NhbmRib3hlZElmcmFtZVN0b3JhZ2VEaXNhbGxvd2Vk
JywgJzEuMCcsICcnLCAxKSA9PSBudWxsIik7Ci0gICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cubG9j
YWxTdG9yYWdlID09IG51bGwiKTsKLSAgICBzaG91bGRCZVRydWUoIndpbmRvdy5zZXNzaW9uU3Rv
cmFnZSA9PSBudWxsIik7CisgICAgc2hvdWxkVGhyb3coIndpbmRvdy5vcGVuRGF0YWJhc2UoJ1Nh
bmRib3hlZElmcmFtZVN0b3JhZ2VEaXNhbGxvd2VkJywgJzEuMCcsICcnLCAxKSIsICInRXJyb3I6
IFNFQ1VSSVRZX0VSUjogRE9NIEV4Y2VwdGlvbiAxOCciKTsKKyAgICBzaG91bGRUaHJvdygid2lu
ZG93LmxvY2FsU3RvcmFnZSIsICInRXJyb3I6IFNFQ1VSSVRZX0VSUjogRE9NIEV4Y2VwdGlvbiAx
OCciKTsKKyAgICBzaG91bGRCZVRydWUoIndpbmRvdy5zZXNzaW9uU3RvcmFnZSAhPSBudWxsIik7
CiB9CiAKIDwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="33759"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50700</attachid>
            <date>2010-03-15 07:37:52 -0700</date>
            <delta_ts>2010-03-15 10:14:16 -0700</delta_ts>
            <desc>Patch that builds with Chromium</desc>
            <filename>sandbox-exceptions.patch</filename>
            <type>text/plain</type>
            <size>14296</size>
            <attacher name="Patrik Persson">patrik.j.persson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTk5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMDMtMTUgIFBhdHJpayBQZXJzc29uICA8cGF0cmlrLmoucGVy
c3NvbkBlcmljc3Nvbi5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMzY5
CisKKyAgICAgICAgUmV2aXNlIGlmcmFtZSBzYW5kYm94IGJlaGF2aW9yIHRvIG1hdGNoIHRoZSB1
cGRhdGVkIEhUTUw1IHNwZWMuCisKKyAgICAgICAgLSBFbmFibGVzIHdpbmRvdy5zZXNzaW9uU3Rv
cmFnZSBpbiBzYW5kYm94ZWQgaWZyYW1lcy4KKworICAgICAgICAtIFJhaXNlcyBTRUNVUklUWV9F
UlIgZXhjZXB0aW9ucyB3aGVuIHdpbmRvdy5sb2NhbFN0b3JhZ2Ugb3IKKyAgICAgICAgICB3aW5k
b3cub3BlbkRhdGFiYXNlKCkgaXMgYmxvY2tlZCBieSBpZnJhbWUgc2FuZGJveGluZy4KKworICAg
ICAgICAgIE5vdGU6IHdpbmRvdy5zZXNzaW9uU3RvcmFnZSBkb2VzIG5vdCByYWlzZSBleGNlcHRp
b25zLgorCisgICAgICAgIFdlYktpdCB3b3VsZCBwcmV2aW91c2x5IHJldHVybiBudWxsIHJlZmVy
ZW5jZXMgaW4gdGhlc2UgY2FzZXMuICBUaGUKKyAgICAgICAgbmV3IGJlaGF2aW9yIGlzIGluIGFj
Y29yZGFuY2Ugd2l0aCBIVE1MNToKKworICAgICAgICAgIGh0dHA6Ly9kZXYudzMub3JnL2h0bWw1
L3dlYnN0b3JhZ2UvICAgKHNlY3Rpb25zIDQuMiBhbmQgNC4zKQorICAgICAgICAgIGh0dHA6Ly9k
ZXYudzMub3JnL2h0bWw1L3dlYmRhdGFiYXNlLyAgKHNlY3Rpb24gNC4xKQorICAgICAgICAgIGh0
dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS93aGF0d2dAbGlzdHMud2hhdHdnLm9yZy9tc2cxOTc4
Ni5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzZWxlY3RET01TdG9yYWdlKTog
ZXhjZXB0aW9uIGhhbmRsaW5nCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2U6OmhhbmRsZUV2ZW50KTogZXhjZXB0aW9uIGhhbmRsaW5nCisgICAgICAgICogcGFnZS9E
T01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzZXNzaW9uU3RvcmFn
ZSk6IHJlLWVuYWJsZWQgaW4gaWZyYW1lIHNhbmRib3gKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bG9jYWxTdG9yYWdlKTogcmFpc2UgZXhjZXB0aW9uIHJhdGhlciB0aGFuIHJldHVybiBu
dWxsCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om9wZW5EYXRhYmFzZSk6IHJhaXNlIGV4
Y2VwdGlvbiByYXRoZXIgdGhhbiByZXR1cm4gbnVsbAorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
Lmg6IGFkZGVkIGV4Y2VwdGlvbnMgdG8gaW50ZXJmYWNlCisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuaWRsOiBhZGRlZCBleGNlcHRpb25zIHRvIGludGVyZmFjZQorICAgICAgICAqIHBhZ2UvU2Vj
dXJpdHlPcmlnaW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nl
c3NMb2NhbFN0b3JhZ2UpOiByZW5hbWVkIGZ1bmN0aW9uIHRvIHJlZmxlY3QgaXRzIHB1cnBvc2UK
KyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOiBleGNlcHRpb24gaGFu
ZGxpbmcKKwogMjAxMC0wMy0xNSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpJbmRleDogV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU1OTkwKQorKysg
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNjMsNyArMTM2Myw4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2VsZWN0RE9N
U3RvcmEKICAgICAgICAgcmV0dXJuOwogCiAgICAgRnJhbWUqIGZyYW1lID0gc3RvcmFnZS0+ZnJh
bWUoKTsKLSAgICBib29sIGlzTG9jYWxTdG9yYWdlID0gKGZyYW1lLT5kb21XaW5kb3coKS0+bG9j
YWxTdG9yYWdlKCkgPT0gc3RvcmFnZSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
Ym9vbCBpc0xvY2FsU3RvcmFnZSA9IChmcmFtZS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZShl
YykgPT0gc3RvcmFnZSAmJiAhZWMpOwogICAgIGludCBzdG9yYWdlUmVzb3VyY2VJZCA9IDA7CiAg
ICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgZG9tU3RvcmFnZUVuZCA9IG1fZG9t
U3RvcmFnZVJlc291cmNlcy5lbmQoKTsKICAgICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9kb21TdG9yYWdlUmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGRvbVN0
b3JhZ2VFbmQ7ICsraXQpIHsKSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcAkocmV2aXNpb24gNTU5OTApCisrKyBXZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDQsNyArMTA0LDggQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6OmhhbmRs
ZQogICAgIEFTU0VSVChldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50ID09IGV2ZW50LT50eXBlKCkp
OwogICAgIFN0b3JhZ2VFdmVudCogc3RvcmFnZUV2ZW50ID0gc3RhdGljX2Nhc3Q8U3RvcmFnZUV2
ZW50Kj4oZXZlbnQpOwogICAgIFN0b3JhZ2UqIHN0b3JhZ2UgPSBzdG9yYWdlRXZlbnQtPnN0b3Jh
Z2VBcmVhKCk7Ci0gICAgYm9vbCBpc0xvY2FsU3RvcmFnZSA9IHN0b3JhZ2UtPmZyYW1lKCktPmRv
bVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoKSA9PSBzdG9yYWdlOworICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIGJvb2wgaXNMb2NhbFN0b3JhZ2UgPSAoc3RvcmFnZS0+ZnJhbWUoKS0+ZG9t
V2luZG93KCktPmxvY2FsU3RvcmFnZShlYykgPT0gc3RvcmFnZSAmJiAhZWMpOwogICAgIGlmIChp
c1NhbWVIb3N0QW5kVHlwZShzdG9yYWdlLT5mcmFtZSgpLCBpc0xvY2FsU3RvcmFnZSkpCiAgICAg
ICAgIG1fZnJvbnRlbmQtPnVwZGF0ZURPTVN0b3JhZ2UobV9pZCk7CiB9CkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAkocmV2aXNpb24gNTU5OTApCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTc1LDkgKzU3NSw2IEBAIFN0b3JhZ2UqIERPTVdpbmRvdzo6c2Vzc2lv
blN0b3JhZ2UoKSBjb24KICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgp
OwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiAwOwotICAgIAotICAgIGlmICgh
ZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc1N0b3JhZ2UoKSkKLSAgICAgICAg
cmV0dXJuIDA7CiAKICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKICAgICBpZiAo
IXBhZ2UpCkBAIC01OTIsNyArNTg5LDcgQEAgU3RvcmFnZSogRE9NV2luZG93OjpzZXNzaW9uU3Rv
cmFnZSgpIGNvbgogICAgIHJldHVybiBtX3Nlc3Npb25TdG9yYWdlLmdldCgpOwogfQogCi1TdG9y
YWdlKiBET01XaW5kb3c6OmxvY2FsU3RvcmFnZSgpIGNvbnN0CitTdG9yYWdlKiBET01XaW5kb3c6
OmxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAobV9sb2Nh
bFN0b3JhZ2UpCiAgICAgICAgIHJldHVybiBtX2xvY2FsU3RvcmFnZS5nZXQoKTsKQEAgLTYwMSw4
ICs1OTgsMTAgQEAgU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoKSBjb25zdAogICAg
IGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiAwOwogICAgIAotICAgIGlmICghZG9jdW1l
bnQtPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc1N0b3JhZ2UoKSkKKyAgICBpZiAoIWRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpLT5jYW5BY2Nlc3NMb2NhbFN0b3JhZ2UoKSkgeworICAgICAg
ICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CisgICAgfQogICAgICAgICAK
ICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCkBAIC0x
MTg3LDggKzExODYsMTAgQEAgUGFzc1JlZlB0cjxEYXRhYmFzZT4gRE9NV2luZG93OjpvcGVuRGF0
YQogICAgICAgICByZXR1cm4gMDsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUt
PmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNj
ZXNzRGF0YWJhc2UoKSkKKyAgICBpZiAoIWRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5jYW5B
Y2Nlc3NEYXRhYmFzZSgpKSB7CisgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICBy
ZXR1cm4gMDsKKyAgICB9CiAKICAgICByZXR1cm4gRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShkb2N1
bWVudCwgbmFtZSwgdmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUsIGNyZWF0aW9u
Q2FsbGJhY2ssIGVjKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDU1OTkwKQorKysgV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsNyArMjA3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShET01fU1RPUkFHRSkKICAgICAgICAgLy8g
SFRNTCA1IGtleS92YWx1ZSBzdG9yYWdlCiAgICAgICAgIFN0b3JhZ2UqIHNlc3Npb25TdG9yYWdl
KCkgY29uc3Q7Ci0gICAgICAgIFN0b3JhZ2UqIGxvY2FsU3RvcmFnZSgpIGNvbnN0OworICAgICAg
ICBTdG9yYWdlKiBsb2NhbFN0b3JhZ2UoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogI2VuZGlmCiAK
ICAgICAgICAgQ29uc29sZSogY29uc29sZSgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJl
dmlzaW9uIDU1OTkwKQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTE2NSw3ICsxNjUsOCBAQCBtb2R1bGUgd2luZG93IHsKICNlbmRpZgogI2lmIGRlZmlu
ZWQoRU5BQkxFX0RPTV9TVE9SQUdFKSAmJiBFTkFCTEVfRE9NX1NUT1JBR0UKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBTdG9yYWdlIHNlc3Npb25TdG9yYWdl
OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIFN0b3JhZ2Ug
bG9jYWxTdG9yYWdlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRp
bWVdIFN0b3JhZ2UgbG9jYWxTdG9yYWdlCisgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAjZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBF
TkFCTEVfTk9USUZJQ0FUSU9OUwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRB
dFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOwpJbmRleDog
V2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L1NlY3VyaXR5T3JpZ2luLmgJKHJldmlzaW9uIDU1OTkwKQorKysgV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc1NhbmRib3hlZChTYW5kYm94RmxhZ3MgbWFzaykgY29uc3QgeyByZXR1cm4gbV9z
YW5kYm94RmxhZ3MgJiBtYXNrOyB9CiAKICAgICBib29sIGNhbkFjY2Vzc0RhdGFiYXNlKCkgY29u
c3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KLSAgICBib29sIGNhbkFjY2Vzc1N0b3JhZ2UoKSBj
b25zdCB7IHJldHVybiAhaXNVbmlxdWUoKTsgfQorICAgIGJvb2wgY2FuQWNjZXNzTG9jYWxTdG9y
YWdlKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KICAgICBib29sIGNhbkFjY2Vzc0Nv
b2tpZXMoKSBjb25zdCB7IHJldHVybiAhaXNVbmlxdWUoKTsgfQogCiAgICAgYm9vbCBpc1NlY3Vy
ZVRyYW5zaXRpb25Ubyhjb25zdCBLVVJMJikgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCShyZXZpc2lvbiA1NTk5MCkKKysrIFdlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcs
OCArNjcsMTIgQEAgdm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChjbwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGZyYW1lcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+
ZW5xdWV1ZVN0b3JhZ2VFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3Rv
cmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50
KCktPnVybCgpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoKSkpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgICAgIFN0b3JhZ2UqIHN0b3Jh
Z2UgPSBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoZWMpOworICAgICAgICAg
ICAgaWYgKCFlYykKKyAgICAgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVl
dWVTdG9yYWdlRXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VF
dmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKSwgc3RvcmFnZSkpOworICAgICAgICB9CiAgICAgfQogfQogCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDU1OTkwKQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEwLTAzLTE1ICBQYXRyaWsgUGVyc3NvbiAgPHBhdHJp
ay5qLnBlcnNzb25AZXJpY3Nzb24uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMjM2OQorCisgICAgICAgIFJldmlzZSBpZnJhbWUgc2FuZGJveCBiZWhhdmlvciB0byBtYXRj
aCB0aGUgdXBkYXRlZCBIVE1MNSBzcGVjLgorCisgICAgICAgIC0gRW5hYmxlcyB3aW5kb3cuc2Vz
c2lvblN0b3JhZ2UgaW4gc2FuZGJveGVkIGlmcmFtZXMuCisKKyAgICAgICAgLSBSYWlzZXMgU0VD
VVJJVFlfRVJSIGV4Y2VwdGlvbnMgd2hlbiB3aW5kb3cubG9jYWxTdG9yYWdlIG9yCisgICAgICAg
ICAgd2luZG93Lm9wZW5EYXRhYmFzZSgpIGlzIGJsb2NrZWQgYnkgaWZyYW1lIHNhbmRib3hpbmcu
CisKKyAgICAgICAgICBOb3RlOiB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgZG9lcyBub3QgcmFpc2Ug
ZXhjZXB0aW9ucy4KKworICAgICAgICBXZWJLaXQgd291bGQgcHJldmlvdXNseSByZXR1cm4gbnVs
bCByZWZlcmVuY2VzIGluIHRoZXNlIGNhc2VzLiAgVGhlCisgICAgICAgIG5ldyBiZWhhdmlvciBp
cyBpbiBhY2NvcmRhbmNlIHdpdGggSFRNTDU6CisKKyAgICAgICAgICBodHRwOi8vZGV2LnczLm9y
Zy9odG1sNS93ZWJzdG9yYWdlLyAgIChzZWN0aW9ucyA0LjIgYW5kIDQuMykKKyAgICAgICAgICBo
dHRwOi8vZGV2LnczLm9yZy9odG1sNS93ZWJkYXRhYmFzZS8gIChzZWN0aW9uIDQuMSkKKyAgICAg
ICAgICBodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vd2hhdHdnQGxpc3RzLndoYXR3Zy5vcmcv
bXNnMTk3ODYuaHRtbAorCisgICAgICAgICogc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFQcm94eTo6c3RvcmFnZUV2ZW50KTogZXhjZXB0aW9u
IGhhbmRsaW5nCisgICAgICAgICogc3JjL1N0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsOjpkaXNwYXRjaFN0
b3JhZ2VFdmVudCk6IGV4Y2VwdGlvbiBoYW5kbGluZworCiAyMDEwLTAzLTEzICBFcmljIFJvbWFu
ICA8ZXJvbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCShyZXZpc2lv
biA1NTk5MCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEzOCw4ICsxMzgsMTIgQEAgdm9pZCBTdG9yYWdlQXJlYVByb3h5Ojpz
dG9yYWdlRXZlbnQoY29ucwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGZyYW1lcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIGZy
YW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVN0b3JhZ2VFdmVudChTdG9yYWdlRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwg
c291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5s
b2NhbFN0b3JhZ2UoKSkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVz
LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAg
ICAgICAgIFN0b3JhZ2UqIHN0b3JhZ2UgPSBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5sb2NhbFN0
b3JhZ2UoZWMpOworICAgICAgICAgICAgaWYgKCFlYykKKyAgICAgICAgICAgICAgICBmcmFtZXNb
aV0tPmRvY3VtZW50KCktPmVucXVldWVTdG9yYWdlRXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJj
ZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkpOworICAgICAgICB9CiAgICAgfQog
fQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VFdmVudERpc3Bh
dGNoZXJJbXBsLmNwcAkocmV2aXNpb24gNTU5OTApCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1N0
b3JhZ2VFdmVudERpc3BhdGNoZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsOCArNzMs
MTEgQEAgdm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVySW1wbDo6ZGlzcGF0YwogCiAgICAgLy8g
RklYTUU6IEZpZ3VyZSBvdXQgaG93IHRvIHBhc3MgaW4gdGhlIGRvY3VtZW50IFVSSS4KICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZnJhbWVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGZy
YW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVybCwgZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdl
KCkpKTsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAgIFN0b3JhZ2UqIHN0
b3JhZ2UgPSBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoZWMpOworICAgICAg
ICBpZiAoIWVjKQorICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5kaXNwYXRjaFdp
bmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQs
IGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCwgc3RvcmFn
ZSkpOwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTU5OTApCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wMy0xNSAg
UGF0cmlrIFBlcnNzb24gIDxwYXRyaWsuai5wZXJzc29uQGVyaWNzc29uLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIzNjkKKworICAgICAgICBSZXZpc2VkIHRlc3Qgb2Yg
c3RvcmFnZS9kYXRhYmFzZXMgaW4gc2FuZGJveGVkIGlmcmFtZXMuCisgICAgICAgIAorICAgICAg
ICBWZXJpZnkgdGhhdCBTRUNVUklUWV9FUlIgaXMgcmFpc2VkIG9uIGFjY2VzcyB0bworICAgICAg
ICB3aW5kb3cubG9jYWxTdG9yYWdlIG9yIHdpbmRvdy5vcGVuRGF0YWJhc2UoKS4gQWxzbyB2ZXJp
ZnkgdGhhdAorICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgaXMgbm93IGFsbG93ZWQgaW4g
c2FuZGJveGVkIGlmcmFtZXMuCisKKyAgICAgICAgV2ViS2l0IHdvdWxkIHByZXZpb3VzbHkgcmV0
dXJuIG51bGwgcmVmZXJlbmNlcyBpbiB0aGVzZSBjYXNlcy4gIFRoZQorICAgICAgICBuZXcgYmVo
YXZpb3IgaXMgaW4gYWNjb3JkYW5jZSB3aXRoIEhUTUw1OgorCisgICAgICAgIC0gaHR0cDovL2Rl
di53My5vcmcvaHRtbDUvd2Vic3RvcmFnZS8gICAoc2VjdGlvbnMgNC4yIGFuZCA0LjMpCisgICAg
ICAgIC0gaHR0cDovL2Rldi53My5vcmcvaHRtbDUvd2ViZGF0YWJhc2UvICAoc2VjdGlvbiA0LjEp
CisgICAgICAgIC0gaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3doYXR3Z0BsaXN0cy53aGF0
d2cub3JnL21zZzE5Nzg2Lmh0bWwKKworICAgICAgICAqIGZhc3QvZnJhbWVzL3Jlc291cmNlcy9z
YW5kYm94ZWQtaWZyYW1lLXN0b3JhZ2UtZGlzYWxsb3dlZC5odG1sOiBleHBlY3QgZXhjZXB0aW9u
cywgbm90IG51bGwKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXN0b3Jh
Z2UtZXhwZWN0ZWQudHh0OiBleHBlY3QgZXhjZXB0aW9ucywgbm90IG51bGwKKwogMjAxMC0wMy0x
NSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
c2FuZGJveGVkLWlmcmFtZS1zdG9yYWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXN0b3JhZ2UtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA1NTk5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NhbmRib3hlZC1p
ZnJhbWUtc3RvcmFnZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE0LDkgKzE0LDkg
QEAgVEVTVCBDT01QTEVURQogLS0tLS0tLS0KIEZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTAtLT4tLT4nCiAtLS0tLS0tLQotUEFTUyB3aW5kb3cub3BlbkRhdGFiYXNlKCdTYW5kYm94
ZWRJZnJhbWVTdG9yYWdlRGlzYWxsb3dlZCcsICcxLjAnLCAnJywgMSkgPT0gbnVsbCBpcyB0cnVl
Ci1QQVNTIHdpbmRvdy5sb2NhbFN0b3JhZ2UgPT0gbnVsbCBpcyB0cnVlCi1QQVNTIHdpbmRvdy5z
ZXNzaW9uU3RvcmFnZSA9PSBudWxsIGlzIHRydWUKK1BBU1Mgd2luZG93Lm9wZW5EYXRhYmFzZSgn
U2FuZGJveGVkSWZyYW1lU3RvcmFnZURpc2FsbG93ZWQnLCAnMS4wJywgJycsIDEpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogU0VDVVJJVFlfRVJSOiBET00gRXhjZXB0aW9uIDE4LgorUEFTUyB3aW5k
b3cubG9jYWxTdG9yYWdlIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU0VDVVJJVFlfRVJSOiBET00g
RXhjZXB0aW9uIDE4LgorUEFTUyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UgIT0gbnVsbCBpcyB0cnVl
CiAKIAogLS0tLS0tLS0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNlcy9z
YW5kYm94ZWQtaWZyYW1lLXN0b3JhZ2UtZGlzYWxsb3dlZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLXN0b3JhZ2Ut
ZGlzYWxsb3dlZC5odG1sCShyZXZpc2lvbiA1NTk5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLXN0b3JhZ2UtZGlzYWxsb3dlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC02LDkgKzYsOSBAQAogPHNjcmlwdD4KIAogd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgewotICAgIHNob3VsZEJlVHJ1ZSgid2luZG93Lm9wZW5EYXRhYmFzZSgnU2Fu
ZGJveGVkSWZyYW1lU3RvcmFnZURpc2FsbG93ZWQnLCAnMS4wJywgJycsIDEpID09IG51bGwiKTsK
LSAgICBzaG91bGRCZVRydWUoIndpbmRvdy5sb2NhbFN0b3JhZ2UgPT0gbnVsbCIpOwotICAgIHNo
b3VsZEJlVHJ1ZSgid2luZG93LnNlc3Npb25TdG9yYWdlID09IG51bGwiKTsKKyAgICBzaG91bGRU
aHJvdygid2luZG93Lm9wZW5EYXRhYmFzZSgnU2FuZGJveGVkSWZyYW1lU3RvcmFnZURpc2FsbG93
ZWQnLCAnMS4wJywgJycsIDEpIiwgIidFcnJvcjogU0VDVVJJVFlfRVJSOiBET00gRXhjZXB0aW9u
IDE4JyIpOworICAgIHNob3VsZFRocm93KCJ3aW5kb3cubG9jYWxTdG9yYWdlIiwgIidFcnJvcjog
U0VDVVJJVFlfRVJSOiBET00gRXhjZXB0aW9uIDE4JyIpOworICAgIHNob3VsZEJlVHJ1ZSgid2lu
ZG93LnNlc3Npb25TdG9yYWdlICE9IG51bGwiKTsKIH0KIAogPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>