<?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>71115</bug_id>
          
          <creation_ts>2011-10-28 06:37:07 -0700</creation_ts>
          <short_desc>IndexedDB: Recycle cursor objects when calling continue()</short_desc>
          <delta_ts>2011-11-03 09:32:56 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Wennborg">hans</reporter>
          <assigned_to name="Hans Wennborg">hans</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>fishd</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>492418</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-10-28 06:37:07 -0700</bug_when>
    <thetext>IndexedDB: Recycle cursor objects when calling continue()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492426</commentid>
    <comment_count>1</comment_count>
      <attachid>112858</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-10-28 06:49:35 -0700</bug_when>
    <thetext>Created attachment 112858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492433</commentid>
    <comment_count>2</comment_count>
      <attachid>112858</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-10-28 06:59:58 -0700</bug_when>
    <thetext>Comment on attachment 112858
Patch

(For reference, the Chromium side is here: http://codereview.chromium.org/8400061)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492434</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 07:02:36 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492802</commentid>
    <comment_count>4</comment_count>
      <attachid>112858</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-10-28 17:04:06 -0700</bug_when>
    <thetext>Comment on attachment 112858
Patch

LGTM
(some comments on the chromium patch)

So you&apos;re going to land this whole patch, then the chromium side, then a webcore patch for the FIXME in IDBCursorBackendImpl.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493156</commentid>
    <comment_count>5</comment_count>
      <attachid>112858</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-30 22:51:47 -0700</bug_when>
    <thetext>Comment on attachment 112858
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        The Chromium code needs an update before we can actually start using

nit: this probably doesn&apos;t need to be in the ChangeLog.  this won&apos;t help
someone who is looking at the ChangeLog to understand this patch.  maybe
this information can just be in the bug?

&gt; Source/WebCore/storage/IDBCallbacks.h:58
&gt; +    virtual void onSuccessCursorContinue() = 0;

is there perhaps a better name for this method?  i&apos;m struggling to understand
this method based on its name.  it seems like all of the other onSuccess variants
provide a result, but this one is about not supplying a result but still reporting
success?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493350</commentid>
    <comment_count>6</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-10-31 09:21:59 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 112858 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=112858&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        The Chromium code needs an update before we can actually start using
&gt; 
&gt; nit: this probably doesn&apos;t need to be in the ChangeLog.  this won&apos;t help
&gt; someone who is looking at the ChangeLog to understand this patch.  maybe
&gt; this information can just be in the bug?

You&apos;re right. Done.

&gt; 
&gt; &gt; Source/WebCore/storage/IDBCallbacks.h:58
&gt; &gt; +    virtual void onSuccessCursorContinue() = 0;
&gt; 
&gt; is there perhaps a better name for this method?  i&apos;m struggling to understand
&gt; this method based on its name.  it seems like all of the other onSuccess variants
&gt; provide a result, but this one is about not supplying a result but still reporting
&gt; success?

Yeah, naming is hard.

This onSuccess method is special in that it doesn&apos;t provide a result, as you say. Instead, it just indicates that the cursor continue was successful, and then the object which implements the interface will know what to do with it.

We&apos;re generally very restrictive with comments in WebKit code, but maybe this case warrants one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493352</commentid>
    <comment_count>7</comment_count>
      <attachid>113058</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-10-31 09:22:25 -0700</bug_when>
    <thetext>Created attachment 113058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493423</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-31 11:26:22 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; This onSuccess method is special in that it doesn&apos;t provide a result, as you say. Instead, it just indicates that the cursor continue was successful, and then the object which implements the interface will know what to do with it.

Is &quot;cursor continue&quot; really the right term for this?  onSuccessWithCursorContinuation?  onSuccessWithContinuation?


&gt; We&apos;re generally very restrictive with comments in WebKit code, but maybe this case warrants one?

I think a better name would be helpful.  If we find the right name, then yes, comments probably wouldn&apos;t be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493425</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-31 11:27:18 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; This onSuccess method is special in that it doesn&apos;t provide a result, as you say. Instead, it just indicates that the cursor continue was successful, and then the object which implements the interface will know what to do with it.
&gt; 
&gt; Is &quot;cursor continue&quot; really the right term for this?  onSuccessWithCursorContinuation?  onSuccessWithContinuation?

By the way, the &quot;on&quot; prefix is not very helpful here.  Could this also be called didContinue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493434</commentid>
    <comment_count>10</comment_count>
      <attachid>113058</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-31 12:01:32 -0700</bug_when>
    <thetext>Comment on attachment 113058
Patch

Attachment 113058 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10245377

New failing tests:
inspector/debugger/bind-script-to-resource.html
media/media-blocked-by-willsendrequest.html
storage/indexeddb/cursor-inconsistency.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493930</commentid>
    <comment_count>11</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-11-01 09:14:29 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; This onSuccess method is special in that it doesn&apos;t provide a result, as you say. Instead, it just indicates that the cursor continue was successful, and then the object which implements the interface will know what to do with it.
&gt; &gt; 
&gt; &gt; Is &quot;cursor continue&quot; really the right term for this?  onSuccessWithCursorContinuation?  onSuccessWithContinuation?
&gt; 
&gt; By the way, the &quot;on&quot; prefix is not very helpful here.  Could this also be called didContinue?

The other callbacks are called onSuccess because they correspond directly to onSuccess in the IndexedDB spec.

I think onSuccessWithContinuation would be a good name.

Let me know if you think that&apos;s ok, and I&apos;ll upload a new version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493932</commentid>
    <comment_count>12</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-11-01 09:15:41 -0700</bug_when>
    <thetext>(In reply to comment #10)

&gt; storage/indexeddb/cursor-inconsistency.html

This failed because I uploaded the wrong version of the patch. I&apos;ll re-upload once we settle on the name issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494261</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-01 16:08:57 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I think onSuccessWithContinuation would be a good name.

That works grammatically.  OK by me.

&gt; 
&gt; Let me know if you think that&apos;s ok, and I&apos;ll upload a new version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494691</commentid>
    <comment_count>14</comment_count>
      <attachid>113325</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-11-02 10:12:03 -0700</bug_when>
    <thetext>Created attachment 113325
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494693</commentid>
    <comment_count>15</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-11-02 10:13:09 -0700</bug_when>
    <thetext>New version uploaded that renames the callback.

This also tries to break the reference cycle between the IDBRequest and the IDBCursor.

IDBRequest will now only hold a reference to the IDBCursor when a continue() call is pending. Please re-review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495057</commentid>
    <comment_count>16</comment_count>
      <attachid>113325</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-02 16:47:54 -0700</bug_when>
    <thetext>Comment on attachment 113325
Patch

WebKit API changes LGTM.  If you could get David or Josh to LGTM the rest, I&apos;ll R+ the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495102</commentid>
    <comment_count>17</comment_count>
      <attachid>113325</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-11-02 17:46:30 -0700</bug_when>
    <thetext>Comment on attachment 113325
Patch

LGTM

New stuff looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495186</commentid>
    <comment_count>18</comment_count>
      <attachid>113325</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-02 21:28:26 -0700</bug_when>
    <thetext>Comment on attachment 113325
Patch

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

&gt; Source/WebCore/storage/IDBRequest.cpp:375
&gt; +    RefPtr&lt;IDBCursorWithValue&gt; cursorWithValue(static_cast&lt;IDBCursorWithValue*&gt;(prpCursor.get()));

I think this would be much nicer if you had a function like this:

  static PassRefPtr&lt;IDBCursorWithValue&gt; IDBCursorWithValue::fromCursor(PassRefPtr&lt;IDBCursor&gt;)

Then, this callsite would turn into:

  m_result = IDBAny::create(IDBCursorWithValue::fromCursor(prpCursor));

Nice, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495353</commentid>
    <comment_count>19</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-11-03 04:52:19 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 113325 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113325&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/storage/IDBRequest.cpp:375
&gt; &gt; +    RefPtr&lt;IDBCursorWithValue&gt; cursorWithValue(static_cast&lt;IDBCursorWithValue*&gt;(prpCursor.get()));
&gt; 
&gt; I think this would be much nicer if you had a function like this:
&gt; 
&gt;   static PassRefPtr&lt;IDBCursorWithValue&gt; IDBCursorWithValue::fromCursor(PassRefPtr&lt;IDBCursor&gt;)
&gt; 
&gt; Then, this callsite would turn into:
&gt; 
&gt;   m_result = IDBAny::create(IDBCursorWithValue::fromCursor(prpCursor));
&gt; 
&gt; Nice, right?

Thanks Darin, that makes it nicer. Will do that and land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495360</commentid>
    <comment_count>20</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-11-03 05:04:16 -0700</bug_when>
    <thetext>Committed r99169: &lt;http://trac.webkit.org/changeset/99169&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495536</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-03 09:32:56 -0700</bug_when>
    <thetext>FWIW, an alternative would have been a toIDBCursorWithValue(PassRefPtr&lt;IDBCursor&gt;) function.  That might actually be a more canonical form of a casting function in WebCore.  Either way is fine by me, but just thought I&apos;d mention this for completeness.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112858</attachid>
            <date>2011-10-28 06:49:35 -0700</date>
            <delta_ts>2011-10-31 09:22:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71115-20111028144934.patch</filename>
            <type>text/plain</type>
            <size>10427</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3MDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ODljZGZkODY5NmIxYThj
YmZhYmMwMDhiMjQxYjYzZWE4NjNjOGFhLi4xZTgwZGRjOGI4NDAwOGQxNzUzZDhkNzZmODMyYmU0
NzZmYjE4YWNkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMTAtMjggIEhhbnMg
V2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFJlY3lj
bGUgY3Vyc29yIG9iamVjdHMgd2hlbiBjYWxsaW5nIGNvbnRpbnVlKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIEluZGV4ZWREQiBzcGVjIHNheXMg
dGhhdCBjdXJzb3JzIHNob3VsZCBiZSByZWN5Y2xlZCB3aGVuIGNhbGxpbmcKKyAgICAgICAgY29u
dGludWUoKS4gTGV0IHRoZSBJREJSZXF1ZXN0IGtlZXAgdHJhY2sgb2Ygd2hpY2ggY3Vyc29yIHRv
IHJldHVybgorICAgICAgICB1cG9uIHN1Y2Nlc3MsIGFuZCBoYXZlIHRoZSBjdXJzb3IgdXNlIGEg
bmV3IGNhbGxiYWNrOgorICAgICAgICBvblN1Y2Nlc3NDdXJzb3JDb250aW51ZSgpIHRvIHNpZ25h
bCB0aGF0IHRoZSBjb250aW51ZSB3YXMgc3VjY2Vzc2Z1bC4KKworICAgICAgICBUaGUgQ2hyb21p
dW0gY29kZSBuZWVkcyBhbiB1cGRhdGUgYmVmb3JlIHdlIGNhbiBhY3R1YWxseSBzdGFydCB1c2lu
ZworICAgICAgICB0aGUgbmV3IGNhbGxiYWNrLgorCisgICAgICAgIFdoZW4gd2Ugc3RhcnQgdXNp
bmcgdGhlIG5ldyBjYWxsYmFjaywgdGhlCisgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1pbmNvbnNpc3RlbmN5Lmh0bWwgbGF5b3V0IHRlc3Qgd2lsbCBzdGFydAorICAgICAgICBwYXNz
aW5nLgorCisgICAgICAgICogc3RvcmFnZS9JREJDYWxsYmFja3MuaDoKKyAgICAgICAgKiBzdG9y
YWdlL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNv
ckJhY2tlbmRJbXBsOjpjb250aW51ZUZ1bmN0aW9uSW50ZXJuYWwpOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnNldEN1cnNvcik6CisgICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVxdWVzdDo6b25TdWNjZXNzQ3Vyc29yQ29udGludWUpOgorICAgICAgICAqIHN0b3JhZ2UvSURC
UmVxdWVzdC5oOgorCiAyMDExLTEwLTI3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmVmYWN0b3IgbWFrZV9ldmVudF9mYWN0b3J5LnBsIHRvIHVzZSBJbkZpbGVz
Q29tcGlsZXIucG0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNTljYzQwOTdiNmNlZWEy
ZDE2M2YwNjcwOTYzN2RlZjRiZjRmNmY0ZC4uOGQ1MjI5ODg4ZDIxYmYwODgwMzQwMmJiNTIzZGFj
OGU1NGNlODJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMS0xMC0yOCAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEluZGV4ZWREQjogUmVjeWNsZSBjdXJzb3Igb2JqZWN0cyB3aGVuIGNhbGxpbmcgY29udGludWUo
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExMTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhl
IG5ldyBvblN1Y2Nlc3NDdXJzb3JDb250aW51ZSgpIGNhbGxiYWNrIHRvIElEQiB3cmFwcGVycy4K
KworICAgICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ2FsbGJhY2tzOjpvblN1Y2Nlc3NDdXJzb3JDb250aW51ZSk6CisgICAgICAgICogc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCQ2FsbGJhY2tzUHJv
eHk6Om9uU3VjY2Vzc0N1cnNvckNvbnRpbnVlKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tz
UHJveHkuaDoKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzc0N1cnNvckNvbnRpbnVlKToK
KyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOgorCiAyMDExLTEwLTI2ICBOYXQg
RHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEltcGxlbWVu
dCBmcmFtZSByYXRlIGNvbnRyb2wgcG9ydGlvbnMgb2YgQ0NTY2hlZHVsZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQkNhbGxiYWNrcy5oCmluZGV4IDNjMDYxYTcxMGMyZmZhMGJiYjZlMGYwMjkxODBm
YzdkMTkxYzZhNmQuLjhiODcwNTRlMzdiZDYyOGY4M2U4YTJkMzBiNTMzMmEyYWE4NGUzMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4pID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
c0N1cnNvckNvbnRpbnVlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKSA9IDA7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tl
bmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwu
Y3BwCmluZGV4IDk5ZWUzZTY4NWIxZmNkN2M3Y2ZlYTRiYzU4NmEzM2IwN2E5MzZmZWYuLjhjNWJl
NmFhN2I4ZmUwZTkyNTM4ZWNjMDcxZDcxMzI0YmE3NzhmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAg
dm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVGdW5jdGlvbkludGVybmFsKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBQYXMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNh
bGxiYWNrcy0+b25TdWNjZXNzKGN1cnNvci5nZXQoKSk7CisgICAgY2FsbGJhY2tzLT5vblN1Y2Nl
c3MoY3Vyc29yLmdldCgpKTsgLy8gRklYTUU6IEFmdGVyIENocm9taXVtIHNpZGUgaXMgcmVhZHks
IHRoaXMgc2hvdWxkIGJlIGNhbGxiYWNrcy0+b25TdWNjZXNzQ3Vyc29yQ29udGludWUoKTsKIH0K
IAogdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCBmOGZjY2U4ZmVmOWI1OWY0Y2JhMjU5MjI1MDE5
MzAxZmMwYmU1OTUxLi5jMDBmZTc3MGU3ZTRiYzZlYTFjMzcyNjRiNTMyMmM0NDA3MTA5MzMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKQEAgLTU3LDYgKzU3LDcgQEAgSURC
UmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNz
UmVmUHRyPElEQkFueT4gc291cmMKICAgICAsIG1fcmVhZHlTdGF0ZShMT0FESU5HKQogICAgICwg
bV9maW5pc2hlZChmYWxzZSkKICAgICAsIG1fY3Vyc29yVHlwZShJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlOjpJbnZhbGlkQ3Vyc29yVHlwZSkKKyAgICAsIG1fY3Vyc29yKDApCiB7CiAgICAgaWYg
KG1fdHJhbnNhY3Rpb24pIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+cmVnaXN0ZXJSZXF1ZXN0
KHRoaXMpOwpAQCAtMTczLDYgKzE3NCwxMiBAQCB2b2lkIElEQlJlcXVlc3Q6OnNldEN1cnNvclR5
cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlKQogICAg
IG1fY3Vyc29yVHlwZSA9IGN1cnNvclR5cGU7CiB9CiAKK3ZvaWQgSURCUmVxdWVzdDo6c2V0Q3Vy
c29yKFBhc3NSZWZQdHI8SURCQW55PiBjdXJzb3IpCit7CisgICAgLy8gRklYTUU6IEFzc2VydCAh
bV9jdXJzb3Igd2hlbiB0aGUgbmV3IG9uU3VjY2Vzc0N1cnNvckNvbnRpbnVlKCkgY2FsbGJhY2sg
aXMgdXNlZC4KKyAgICBtX2N1cnNvciA9IGN1cnNvcjsKK30KKwogdm9pZCBJREJSZXF1ZXN0Ojpv
bkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCiB7CiAgICAgQVNTRVJU
KCFtX2Vycm9yQ29kZSAmJiBtX2Vycm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9yZXN1bHQpOwpA
QCAtMTk3LDEwICsyMDQsMTMgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogewogICAgIEFTU0VSVCghbV9l
cnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fcmVzdWx0KTsKICAgICBB
U1NFUlQobV9jdXJzb3JUeXBlICE9IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkludmFsaWRD
dXJzb3JUeXBlKTsKKwogICAgIGlmIChtX2N1cnNvclR5cGUgPT0gSURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZTo6SW5kZXhLZXlDdXJzb3IpCiAgICAgICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVh
dGUoSURCQ3Vyc29yOjpjcmVhdGUoYmFja2VuZCwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJh
bnNhY3Rpb24uZ2V0KCkpKTsKICAgICBlbHNlCiAgICAgICAgIG1fcmVzdWx0ID0gSURCQW55Ojpj
cmVhdGUoSURCQ3Vyc29yV2l0aFZhbHVlOjpjcmVhdGUoYmFja2VuZCwgdGhpcywgbV9zb3VyY2Uu
Z2V0KCksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpKTsKKworICAgIHNldEN1cnNvcihtX3Jlc3VsdCk7
CiAgICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KIApAQCAtMjQ4LDYg
KzI1OCwxNSBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbAogICAgIGVucXVldWVFdmVudChjcmVh
dGVTdWNjZXNzRXZlbnQoKSk7CiB9CiAKK3ZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzQ3Vyc29y
Q29udGludWUoKQoreworICAgIEFTU0VSVCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2Uu
aXNOdWxsKCkgJiYgIW1fcmVzdWx0KTsKKyAgICBBU1NFUlQobV9jdXJzb3IpOworCisgICAgbV9y
ZXN1bHQgPSBtX2N1cnNvcjsKKyAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkp
OworfQorCiBib29sIElEQlJlcXVlc3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAg
ICAgLy8gRklYTUU6IEluIGFuIGlkZWFsIHdvcmxkLCB3ZSBzaG91bGQgcmV0dXJuIHRydWUgYXMg
bG9uZyBhcyBhbnlvbmUgaGFzIGEgb3IgY2FuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5o
CmluZGV4IGZjYTEzNDFiODhhZDA4NDUwYjNkMmNhZWFjYmRhYzQ3MTcwNzA1OTIuLjZiNzdkMGRh
YzU1NjRkZmNiMWVhMjI4NmQ1YTlmYWYwZWJkZTZiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
UmVxdWVzdC5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtFYXJseURl
YXRoKCk7CiAgICAgYm9vbCByZXNldFJlYWR5U3RhdGUoSURCVHJhbnNhY3Rpb24qKTsKICAgICB2
b2lkIHNldEN1cnNvclR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSk7
CisgICAgdm9pZCBzZXRDdXJzb3IoUGFzc1JlZlB0cjxJREJBbnk+KTsKICAgICBJREJBbnkqIHNv
dXJjZSgpOwogICAgIHZvaWQgYWJvcnQoKTsKIApAQCAtODEsNiArODIsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQktleT4pOwogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc0N1cnNvckNvbnRpbnVlKCk7
CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0
CkBAIC0xMTksNiArMTIxLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE9ubHkgdXNlZCBpZiB0aGUg
cmVzdWx0IHR5cGUgd2lsbCBiZSBhIGN1cnNvci4KICAgICBJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlOjpDdXJzb3JUeXBlIG1fY3Vyc29yVHlwZTsKKyAgICBSZWZQdHI8SURCQW55PiBtX2N1cnNv
cjsKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCmluZGV4IDc5ZGU0
MjJkMjMzY2I1Zjk2YzA5M2VhYmQwYjJmMTBhODc0MjEyMTkuLjRjNjkwMzRmZGUxMDZhZWEwOWM1
NDYyMzhjNGZkMGY2ZmQ0OGMwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkNhbGxiYWNrcy5oCkBAIC01Myw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYklEQktleSYpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJUcmFuc2FjdGlv
biopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NDdXJzb3JDb250aW51
ZSgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
QmxvY2tlZCgpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggN2Iy
MjIyY2U3MGQ4MzllNTY4NjY1NDhkODk1NDMxMWQzZTQyNTVjMi4uZDFhZmFmZjJkNDE3NzJhY2I0
NmVjMjE2ZjhlY2QwNGNiNWZkOWRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcApAQCAtOTQsNiArOTQsMTEgQEAgdm9pZCBJREJDYWxs
YmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBz
ZXJpYWxpemVkU2MKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZShzZXJpYWxpemVkU2NyaXB0VmFsdWUpKTsKIH0KIAordm9pZCBJREJDYWxsYmFja3NQ
cm94eTo6b25TdWNjZXNzQ3Vyc29yQ29udGludWUoKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1
Y2Nlc3NDdXJzb3JDb250aW51ZSgpOworfQorCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvbkJs
b2NrZWQoKQogewogICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCmluZGV4IGVjYjE3MGE2MGUzOGVh
MWRkN2Q2MmM4MDIzMDI4NGUwMmFjMDAxYzkuLmNkNTBkOTU0YWY5NzY2ZDkxMGZjMTQ0ZWQ4NGJh
MTMxNmU5M2RkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNh
bGxiYWNrc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJh
Y2tzUHJveHkuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4pOwogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2U+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc0N1cnNvckNv
bnRpbnVlKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApp
bmRleCA0ZWUxNWFlMDc1NjU5MjBlZjY2NWIyN2U1YmIzMmY2ZjUwN2Q4NTM2Li4zZTc1ZTFmOTdm
YjFjNzE0NmIwMDQ5ZjhiNDI0MzUxMjc0ZmMzNTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApAQCAtOTAsNiArOTAsMTEgQEAg
dm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlJiBzZXJpYWxpemVkU2MKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSk7CiB9CiAKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNj
ZXNzQ3Vyc29yQ29udGludWUoKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3NDdXJzb3JD
b250aW51ZSgpOworfQorCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uQmxvY2tlZCgpCiB7
CiAgICAgbV9jYWxsYmFja3MtPm9uQmxvY2tlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCmluZGV4IDlhMjk0YjE2MDZiOTA4NmMxNWMz
Njk4NGYzYTVhYTM4ZGQxZDdhODcuLjliOWFkYWQ1NmUyM2E4YmEwZTM4ZTFiZDBkOGIyODQ0MDRi
NTZjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxi
YWNrc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFj
a3NJbXBsLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoY29uc3QgV2ViSURCS2V5Jik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJ
REJUcmFuc2FjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlJik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc0N1cnNvckNv
bnRpbnVlKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCiBwcml2YXRlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113058</attachid>
            <date>2011-10-31 09:22:25 -0700</date>
            <delta_ts>2011-11-02 10:11:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71115-20111031162224.patch</filename>
            <type>text/plain</type>
            <size>10200</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg4NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MWQ4OTkwMjE0NjJlMDY0
YjFlZjQ4OWQ1YmE3N2FjZmEzYzk5NjY0Li5kMjRhYTNjZmMyMTA5NjM5Yzg5ZDkyMDYyYjgzZTgx
NjRjZGQxYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMzEgIEhhbnMg
V2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFJlY3lj
bGUgY3Vyc29yIG9iamVjdHMgd2hlbiBjYWxsaW5nIGNvbnRpbnVlKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIEluZGV4ZWREQiBzcGVjIHNheXMg
dGhhdCBjdXJzb3JzIHNob3VsZCBiZSByZWN5Y2xlZCB3aGVuIGNhbGxpbmcKKyAgICAgICAgY29u
dGludWUoKS4gTGV0IHRoZSBJREJSZXF1ZXN0IGtlZXAgdHJhY2sgb2Ygd2hpY2ggY3Vyc29yIHRv
IHJldHVybgorICAgICAgICB1cG9uIHN1Y2Nlc3MsIGFuZCBoYXZlIHRoZSBjdXJzb3IgdXNlIGEg
bmV3IGNhbGxiYWNrOgorICAgICAgICBvblN1Y2Nlc3NDdXJzb3JDb250aW51ZSgpIHRvIHNpZ25h
bCB0aGF0IHRoZSBjb250aW51ZSB3YXMgc3VjY2Vzc2Z1bC4KKworICAgICAgICBXaGVuIHdlIHN0
YXJ0IHVzaW5nIHRoZSBuZXcgY2FsbGJhY2ssIHRoZQorICAgICAgICBzdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItaW5jb25zaXN0ZW5jeS5odG1sIGxheW91dCB0ZXN0IHdpbGwgc3RhcnQKKyAgICAg
ICAgcGFzc2luZy4KKworICAgICAgICAqIHN0b3JhZ2UvSURCQ2FsbGJhY2tzLmg6CisgICAgICAg
ICogc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDdXJzb3JCYWNrZW5kSW1wbDo6Y29udGludWVGdW5jdGlvbkludGVybmFsKToKKyAgICAgICAg
KiBzdG9yYWdlL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6
SURCUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpzZXRDdXJzb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlJlcXVlc3Q6Om9uU3VjY2Vzc0N1cnNvckNvbnRpbnVlKToKKyAgICAgICAgKiBzdG9y
YWdlL0lEQlJlcXVlc3QuaDoKKwogMjAxMS0xMC0zMSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmYWN0b3Igb3V0IFJlc291
cmNlVXRpbHMsIGNsZWFuIHVwIGV4dGVybnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGFmNTY4Zjg1ZmI2NzUzN2IyYmQwNjBkYWEwYTg3N2YwNzNjMWU5MTQuLmZjMWQ1YjQwZDNlNTFl
ZmEyZWM2OTg4MGU4YmUzMjFhMmQ2ZDgzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTEtMTAtMjggIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFJlY3ljbGUgY3Vyc29yIG9iamVjdHMgd2hlbiBj
YWxsaW5nIGNvbnRpbnVlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcxMTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHRoZSBuZXcgb25TdWNjZXNzQ3Vyc29yQ29udGludWUoKSBjYWxsYmFjayB0
byBJREIgd3JhcHBlcnMuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkNhbGxiYWNrczo6b25TdWNjZXNzQ3Vyc29yQ29udGludWUp
OgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OklEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nlc3NDdXJzb3JDb250aW51ZSk6CisgICAgICAgICog
c3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3ND
dXJzb3JDb250aW51ZSk6CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKwog
MjAxMS0xMC0zMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gVGhlIENocm9taXVtIHBvcnQgY2FsbHMgT3duUHRyOjpnZXQgYW5kIFJlZlB0cjo6
Z2V0IHdheSBtb3JlIG9mdGVuIHRoYW4gbmVlZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxs
YmFja3MuaAppbmRleCAzYzA2MWE3MTBjMmZmYTBiYmI2ZTBmMDI5MTgwZmM3ZDE5MWM2YTZkLi44
Yjg3MDU0ZTM3YmQ2MjhmODNlOGEyZDMwYjUzMzJhMmFhODRlMzJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCQ2FsbGJhY2tzLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+KSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4p
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NDdXJzb3JDb250aW51
ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkgPSAwOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcAppbmRleCA5OWVl
M2U2ODViMWZjZDdjN2NmZWE0YmM1ODZhMzNiMDdhOTM2ZmVmLi4xYWI0MjYxMzk5ODgxMDY2YjUx
ZWE5ZDRiOThjZjFlYzc4ZTUzMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QkN1cnNvckJhY2tlbmRJbXBsLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgSURCQ3Vyc29y
QmFja2VuZEltcGw6OmNvbnRpbnVlRnVuY3Rpb25JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsYmFja3MtPm9uU3Vj
Y2VzcyhjdXJzb3IuZ2V0KCkpOworICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzQ3Vyc29yQ29udGlu
dWUoKTsKIH0KIAogdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6ZGVsZXRlRnVuY3Rpb24oUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgRXhjZXB0aW9uQ29kZSYgZWMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcAppbmRleCBkMTI1NmYzMzJhOTZkZGY5OWY1
MGIyNWEwOTMzM2VmMGIwY2NiMzExLi42ZTE4NmY3YjkwMzNhNDI0YzcyYmI2NzBiY2E1M2VhYmUy
YmU1N2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKQEAgLTU3LDYgKzU3
LDcgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBQYXNzUmVmUHRyPElEQkFueT4gc291cmMKICAgICAsIG1fcmVhZHlTdGF0ZShMT0FESU5H
KQogICAgICwgbV9maW5pc2hlZChmYWxzZSkKICAgICAsIG1fY3Vyc29yVHlwZShJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlOjpJbnZhbGlkQ3Vyc29yVHlwZSkKKyAgICAsIG1fY3Vyc29yKDApCiB7
CiAgICAgaWYgKG1fdHJhbnNhY3Rpb24pIHsKICAgICAgICAgbV90cmFuc2FjdGlvbi0+cmVnaXN0
ZXJSZXF1ZXN0KHRoaXMpOwpAQCAtMTczLDYgKzE3NCwxMiBAQCB2b2lkIElEQlJlcXVlc3Q6OnNl
dEN1cnNvclR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSBjdXJzb3JU
eXBlKQogICAgIG1fY3Vyc29yVHlwZSA9IGN1cnNvclR5cGU7CiB9CiAKK3ZvaWQgSURCUmVxdWVz
dDo6c2V0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQW55PiBjdXJzb3IpCit7CisgICAgQVNTRVJUKCFt
X2N1cnNvcik7CisgICAgbV9jdXJzb3IgPSBjdXJzb3I7Cit9CisKIHZvaWQgSURCUmVxdWVzdDo6
b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yKQogewogICAgIEFTU0VS
VCghbV9lcnJvckNvZGUgJiYgbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkgJiYgIW1fcmVzdWx0KTsK
QEAgLTE5NywxMCArMjA0LDEzIEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKIHsKICAgICBBU1NFUlQoIW1f
ZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpICYmICFtX3Jlc3VsdCk7CiAgICAg
QVNTRVJUKG1fY3Vyc29yVHlwZSAhPSBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbnZhbGlk
Q3Vyc29yVHlwZSk7CisKICAgICBpZiAobV9jdXJzb3JUeXBlID09IElEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2U6OkluZGV4S2V5Q3Vyc29yKQogICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3Jl
YXRlKElEQkN1cnNvcjo6Y3JlYXRlKGJhY2tlbmQsIHRoaXMsIG1fc291cmNlLmdldCgpLCBtX3Ry
YW5zYWN0aW9uLmdldCgpKSk7CiAgICAgZWxzZQogICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6
Y3JlYXRlKElEQkN1cnNvcldpdGhWYWx1ZTo6Y3JlYXRlKGJhY2tlbmQsIHRoaXMsIG1fc291cmNl
LmdldCgpLCBtX3RyYW5zYWN0aW9uLmdldCgpKSk7CisKKyAgICBzZXRDdXJzb3IobV9yZXN1bHQp
OwogICAgIGVucXVldWVFdmVudChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CiB9CiAKQEAgLTI0OCw2
ICsyNTgsMTUgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWwKICAgICBlbnF1ZXVlRXZlbnQoY3Jl
YXRlU3VjY2Vzc0V2ZW50KCkpOwogfQogCit2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vzc0N1cnNv
ckNvbnRpbnVlKCkKK3sKKyAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdl
LmlzTnVsbCgpICYmICFtX3Jlc3VsdCk7CisgICAgQVNTRVJUKG1fY3Vyc29yKTsKKworICAgIG1f
cmVzdWx0ID0gbV9jdXJzb3I7CisgICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgp
KTsKK30KKwogYm9vbCBJREJSZXF1ZXN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewog
ICAgIC8vIEZJWE1FOiBJbiBhbiBpZGVhbCB3b3JsZCwgd2Ugc2hvdWxkIHJldHVybiB0cnVlIGFz
IGxvbmcgYXMgYW55b25lIGhhcyBhIG9yIGNhbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3Qu
aAppbmRleCBmY2ExMzQxYjg4YWQwODQ1MGIzZDJjYWVhY2JkYWM0NzE3MDcwNTkyLi42Yjc3ZDBk
YWM1NTY0ZGZjYjFlYTIyODZkNWE5ZmFmMGViZGU2YjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QlJlcXVlc3QuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrRWFybHlE
ZWF0aCgpOwogICAgIGJvb2wgcmVzZXRSZWFkeVN0YXRlKElEQlRyYW5zYWN0aW9uKik7CiAgICAg
dm9pZCBzZXRDdXJzb3JUeXBlKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkN1cnNvclR5cGUp
OworICAgIHZvaWQgc2V0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQW55Pik7CiAgICAgSURCQW55KiBz
b3VyY2UoKTsKICAgICB2b2lkIGFib3J0KCk7CiAKQEAgLTgxLDYgKzgyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+KTsKICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NDdXJzb3JDb250aW51ZSgp
OwogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVj
dApAQCAtMTE5LDYgKzEyMSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBPbmx5IHVzZWQgaWYgdGhl
IHJlc3VsdCB0eXBlIHdpbGwgYmUgYSBjdXJzb3IuCiAgICAgSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZTo6Q3Vyc29yVHlwZSBtX2N1cnNvclR5cGU7CisgICAgUmVmUHRyPElEQkFueT4gbV9jdXJz
b3I7CiAKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAppbmRleCA3OWRl
NDIyZDIzM2NiNWY5NmMwOTNlYWJkMGIyZjEwYTg3NDIxMjE5Li40YzY5MDM0ZmRlMTA2YWVhMDlj
NTQ2MjM4YzRmZDBmNmZkNDhjMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJDYWxsYmFja3MuaApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJJREJLZXkmKSB7IFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCVHJhbnNhY3Rp
b24qKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJikgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzQ3Vyc29yQ29udGlu
dWUoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBv
bkJsb2NrZWQoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDdi
MjIyMmNlNzBkODM5ZTU2ODY2NTQ4ZDg5NTQzMTFkM2U0MjU1YzIuLmQxYWZhZmYyZDQxNzcyYWNi
NDZlYzIxNmY4ZWNkMDRjYjVmZDlkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTk0LDYgKzk0LDExIEBAIHZvaWQgSURCQ2Fs
bGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
c2VyaWFsaXplZFNjCiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKSk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tz
UHJveHk6Om9uU3VjY2Vzc0N1cnNvckNvbnRpbnVlKCkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25T
dWNjZXNzQ3Vyc29yQ29udGludWUoKTsKK30KKwogdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25C
bG9ja2VkKCkKIHsKICAgICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCBlY2IxNzBhNjBlMzhl
YTFkZDdkNjJjODAyMzAyODRlMDJhYzAwMWM5Li5jZDUwZDk1NGFmOTc2NmQ5MTBmYzE0NGVkODRi
YTEzMTZlOTNkZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
YWxsYmFja3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxi
YWNrc1Byb3h5LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+KTsKICAgICB2aXJ0dWFsIHZvaWQg
b25TdWNjZXNzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NDdXJzb3JD
b250aW51ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAK
aW5kZXggNGVlMTVhZTA3NTY1OTIwZWY2NjViMjdlNWJiMzJmNmY1MDdkODUzNi4uM2U3NWUxZjk3
ZmIxYzcxNDZiMDA0OWY4YjQyNDM1MTI3NGZjMzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTkwLDYgKzkwLDExIEBA
IHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjCiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJp
YWxpemVkU2NyaXB0VmFsdWUpOwogfQogCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3Vj
Y2Vzc0N1cnNvckNvbnRpbnVlKCkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzQ3Vyc29y
Q29udGludWUoKTsKK30KKwogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2NrZWQoKQog
ewogICAgIG1fY2FsbGJhY2tzLT5vbkJsb2NrZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAppbmRleCA5YTI5NGIxNjA2YjkwODZjMTVj
MzY5ODRmM2E1YWEzOGRkMWQ3YTg3Li45YjlhZGFkNTZlMjNhOGJhMGUzOGUxYmQwZDhiMjg0NDA0
YjU2Y2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxs
YmFja3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJh
Y2tzSW1wbC5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25T
dWNjZXNzKGNvbnN0IFdlYklEQktleSYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2Vi
SURCVHJhbnNhY3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSYpOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NDdXJzb3JD
b250aW51ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKIAogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113325</attachid>
            <date>2011-11-02 10:12:03 -0700</date>
            <delta_ts>2011-11-02 21:28:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71115-20111102171201.patch</filename>
            <type>text/plain</type>
            <size>12644</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkwNTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4OWQ2ZDg0MjJiY2Y0MWI3
ZTY4MDJmODRmNjU5ODA3Nzg3MDE4ZWJmLi4xYzE1NTEzODY2MjYzOTMzOTY1NThjMDZkM2ZmNWVm
NTVmY2Y1MWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMzEgIEhhbnMg
V2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFJlY3lj
bGUgY3Vyc29yIG9iamVjdHMgd2hlbiBjYWxsaW5nIGNvbnRpbnVlKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIEluZGV4ZWREQiBzcGVjIHNheXMg
dGhhdCBjdXJzb3JzIHNob3VsZCBiZSByZWN5Y2xlZCB3aGVuIGNhbGxpbmcKKyAgICAgICAgY29u
dGludWUoKS4gTGV0IHRoZSBJREJSZXF1ZXN0IGtlZXAgdHJhY2sgb2Ygd2hpY2ggY3Vyc29yIHRv
IHJldHVybgorICAgICAgICB1cG9uIHN1Y2Nlc3MsIGFuZCBoYXZlIHRoZSBjdXJzb3IgdXNlIGEg
bmV3IGNhbGxiYWNrOgorICAgICAgICBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkgdG8gc2ln
bmFsIHRoYXQgdGhlIGNvbnRpbnVlIHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAgIFdoZW4gd2Ug
c3RhcnQgdXNpbmcgdGhlIG5ldyBjYWxsYmFjaywgdGhlCisgICAgICAgIHN0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1pbmNvbnNpc3RlbmN5Lmh0bWwgbGF5b3V0IHRlc3Qgd2lsbCBzdGFydAorICAg
ICAgICBwYXNzaW5nLgorCisgICAgICAgICogc3RvcmFnZS9JREJDYWxsYmFja3MuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkN1cnNvckJhY2tlbmRJbXBsOjpjb250aW51ZUZ1bmN0aW9uSW50ZXJuYWwpOgorICAgICAg
ICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0
OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnNldEN1cnNvcik6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbik6CisgICAgICAgICog
c3RvcmFnZS9JREJSZXF1ZXN0Lmg6CisKIDIwMTEtMTEtMDIgIEJlbiBXZWxscyAgPGJlbndlbGxz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDYW52YXMgZmlsbGluZyBwYXRocyBvciByZWN0cyBu
ZWVkIHRvIGJlIGludmFsaWRhdGUgbGFyZ2VyIHJlY3RzIGZvciBzb21lIGNvbXBvc2l0aW5nIG1v
ZGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmMGZiZmFmZTEwOWM3MDAzMmFmMGUy
Y2JlNmQ1YmQ3MjIzMTc0YWJiLi4yNjcyMmYyMWUxYjkxNjI1OTdhYWNiZDk5ZDRkMDY5ODBhMjk0
YTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEw
LTI4ICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhl
ZERCOiBSZWN5Y2xlIGN1cnNvciBvYmplY3RzIHdoZW4gY2FsbGluZyBjb250aW51ZSgpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTExNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0aGUgbmV3IG9u
U3VjY2Vzc1dpdGhDb250aW51YXRpb24oKSBjYWxsYmFjayB0byBJREIgd3JhcHBlcnMuCisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNhbGxiYWNrczo6b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbik6CisgICAgICAgICogc3JjL0lE
QkNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCQ2FsbGJhY2tzUHJveHk6
Om9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24pOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQ
cm94eS5oOgorICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbik6
CisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaDoKKwogMjAxMS0xMS0wMiAgQW5k
cmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
Zml4IGZvciBidWlsZCBmYWlsdXJlIG9uIGNocm9taXVtIHNoYXJlZCBsaW51eCBjYXVzZWQgYnkg
cjk5MDIwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgKaW5kZXggM2MwNjFhNzEw
YzJmZmEwYmJiNmUwZjAyOTE4MGZjN2QxOTFjNmE2ZC4uNjgxNTljNTFkYzEwZWMxMzBhNGU0Zjdh
NmI5MWM2ZmM5YWU5YmIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJD
YWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCkBA
IC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8SURCS2V5PikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgb25CbG9ja2VkKCkgPSAwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3Iu
Y3BwCmluZGV4IDJlYTVkZWJkYjZjOTk5MGJjYjI5YjA2OWNlZmU1NGJhZmNjOTA0NWUuLmVkYzZl
ODNlYmU5OTVlMTk5OWQ2ZmIwN2MyY2FlMGQ1ZmY0ODliZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0lEQkN1cnNvci5jcHAKQEAgLTEwNSw5ICsxMDUsMTAgQEAgdm9pZCBJREJDdXJzb3I6OmNvbnRp
bnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAK
ICAgICAvLyBGSVhNRTogV2UncmUgbm90IHVzaW5nIHRoZSBjb250ZXh0IGZyb20gd2hlbiBjb250
aW51ZSB3YXMgY2FsbGVkLCB3aGljaCBtZWFucyB0aGUgY2FsbGJhY2sKICAgICAvLyAgICAgICAg
d2lsbCBiZSBvbiB0aGUgb3JpZ2luYWwgY29udGV4dCBvcGVuQ3Vyc29yIHdhcyBjYWxsZWQgb24u
IElzIHRoaXMgcmlnaHQ/Ci0gICAgaWYgKG1fcmVxdWVzdC0+cmVzZXRSZWFkeVN0YXRlKG1fdHJh
bnNhY3Rpb24uZ2V0KCkpKQorICAgIGlmIChtX3JlcXVlc3QtPnJlc2V0UmVhZHlTdGF0ZShtX3Ry
YW5zYWN0aW9uLmdldCgpKSkgewogICAgICAgICBtX2JhY2tlbmQtPmNvbnRpbnVlRnVuY3Rpb24o
a2V5LCBtX3JlcXVlc3QsIGVjKTsKLSAgICBlbHNlCisgICAgICAgIG1fcmVxdWVzdC0+c2V0Q3Vy
c29yKHRoaXMpOworICAgIH0gZWxzZQogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpOT1RfQUxMT1dFRF9FUlI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJD
dXJzb3JCYWNrZW5kSW1wbC5jcHAKaW5kZXggOTllZTNlNjg1YjFmY2Q3YzdjZmVhNGJjNTg2YTMz
YjA3YTkzNmZlZi4uZmZhMjlhMTdjZDI2ODg0YTVkNTc5ZTk4MDhiZDAyZjFjNTg3NWFhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKQEAg
LTExMCw3ICsxMTAsNyBAQCB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjpjb250aW51ZUZ1bmN0
aW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhcwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLmdldCgpKTsKKyAgICBj
YWxsYmFja3MtPm9uU3VjY2VzcyhjdXJzb3IuZ2V0KCkpOyAvLyBGSVhNRTogQWZ0ZXIgQ2hyb21p
dW0gc2lkZSBpcyByZWFkeSwgdGhpcyBzaG91bGQgYmUgY2FsbGJhY2tzLT5vblN1Y2Nlc3NXaXRo
Q29udGludWF0aW9uKCk7CiB9CiAKIHZvaWQgSURCQ3Vyc29yQmFja2VuZEltcGw6OmRlbGV0ZUZ1
bmN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKaW5kZXggMThhNzM0OTQ3
ZWYzZmU0ZDMwMWM0ZjA3YTEzMTZkNDNiM2I3YTBiNi4uZmE4YTBiYmZlMThmMWUyZjYxNzBkMjg0
NzUxNGEwNDg5YTk3MDlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJS
ZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCkBA
IC01Niw2ICs1Niw3IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjCiAgICAgLCBtX3JlYWR5U3Rh
dGUoTE9BRElORykKICAgICAsIG1fZmluaXNoZWQoZmFsc2UpCiAgICAgLCBtX2N1cnNvclR5cGUo
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpCisgICAgLCBtX2N1
cnNvcigwKQogewogICAgIGlmIChtX3RyYW5zYWN0aW9uKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rp
b24tPnJlZ2lzdGVyUmVxdWVzdCh0aGlzKTsKQEAgLTE3MCwxMSArMTcxLDE4IEBAIHZvaWQgSURC
UmVxdWVzdDo6c2V0Q3Vyc29yVHlwZShJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JU
eXBlIGN1cnNvclR5cGUpCiAgICAgbV9jdXJzb3JUeXBlID0gY3Vyc29yVHlwZTsKIH0KIAordm9p
ZCBJREJSZXF1ZXN0OjpzZXRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGN1cnNvcikKK3sK
KyAgICAvLyBGSVhNRTogQXNzZXJ0ICFtX2N1cnNvciB3aGVuIHRoZSBuZXcgb25TdWNjZXNzQ3Vy
c29yQ29udGludWUoKSBjYWxsYmFjayBpcyB1c2VkLgorICAgIG1fY3Vyc29yID0gY3Vyc29yOwor
fQorCiB2b2lkIElEQlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9y
PiBlcnJvcikKIHsKICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlz
TnVsbCgpICYmICFtX3Jlc3VsdCk7CiAgICAgbV9lcnJvckNvZGUgPSBlcnJvci0+Y29kZSgpOwog
ICAgIG1fZXJyb3JNZXNzYWdlID0gZXJyb3ItPm1lc3NhZ2UoKTsKKyAgICBtX2N1cnNvci5jbGVh
cigpOwogICAgIGVucXVldWVFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5lcnJvckV2
ZW50LCB0cnVlLCB0cnVlKSk7CiB9CiAKQEAgLTE5NCwxMCArMjAyLDE1IEBAIHZvaWQgSURCUmVx
dWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFj
a2VuZCkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3JDb2RlICYmIG1fZXJyb3JNZXNzYWdlLmlzTnVs
bCgpICYmICFtX3Jlc3VsdCk7CiAgICAgQVNTRVJUKG1fY3Vyc29yVHlwZSAhPSBJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlOjpJbnZhbGlkQ3Vyc29yVHlwZSk7CisKKyAgICBSZWZQdHI8SURCQ3Vy
c29yPiBjdXJzb3I7CiAgICAgaWYgKG1fY3Vyc29yVHlwZSA9PSBJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlOjpJbmRleEtleUN1cnNvcikKLSAgICAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0
ZShJREJDdXJzb3I6OmNyZWF0ZShiYWNrZW5kLCB0aGlzLCBtX3NvdXJjZS5nZXQoKSwgbV90cmFu
c2FjdGlvbi5nZXQoKSkpOworICAgICAgICBjdXJzb3IgPSBJREJDdXJzb3I6OmNyZWF0ZShiYWNr
ZW5kLCB0aGlzLCBtX3NvdXJjZS5nZXQoKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgZWxz
ZQotICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKElEQkN1cnNvcldpdGhWYWx1ZTo6
Y3JlYXRlKGJhY2tlbmQsIHRoaXMsIG1fc291cmNlLmdldCgpLCBtX3RyYW5zYWN0aW9uLmdldCgp
KSk7CisgICAgICAgIGN1cnNvciA9IElEQkN1cnNvcldpdGhWYWx1ZTo6Y3JlYXRlKGJhY2tlbmQs
IHRoaXMsIG1fc291cmNlLmdldCgpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKKworICAgIHNldFJl
c3VsdEN1cnNvcihjdXJzb3IsIG1fY3Vyc29yVHlwZSk7CisKICAgICBlbnF1ZXVlRXZlbnQoY3Jl
YXRlU3VjY2Vzc0V2ZW50KCkpOwogfQogCkBAIC0yNDIsNiArMjU1LDE3IEBAIHZvaWQgSURCUmVx
dWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxp
emVkU2NyaXB0VmFsCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yQ29kZSAmJiBtX2Vycm9yTWVzc2Fn
ZS5pc051bGwoKSAmJiAhbV9yZXN1bHQpOwogICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUo
c2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKKyAgICBtX2N1cnNvci5jbGVhcigpOworICAgIGVucXVl
dWVFdmVudChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7Cit9CisKK3ZvaWQgSURCUmVxdWVzdDo6b25T
dWNjZXNzV2l0aENvbnRpbnVhdGlvbigpCit7CisgICAgQVNTRVJUKCFtX2Vycm9yQ29kZSAmJiBt
X2Vycm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9yZXN1bHQpOworICAgIEFTU0VSVChtX2N1cnNv
cik7CisKKyAgICBzZXRSZXN1bHRDdXJzb3IobV9jdXJzb3IsIG1fY3Vyc29yVHlwZSk7CisgICAg
bV9jdXJzb3IuY2xlYXIoKTsKICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkp
OwogfQogCkBAIC0zNDAsNiArMzY0LDE4IEBAIEV2ZW50VGFyZ2V0RGF0YSogSURCUmVxdWVzdDo6
ZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkKICAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwog
fQogCit2b2lkIElEQlJlcXVlc3Q6OnNldFJlc3VsdEN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNv
cj4gcHJwQ3Vyc29yLCBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JUeXBlIHR5cGUp
Cit7CisgICAgaWYgKHR5cGUgPT0gSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlD
dXJzb3IpIHsKKyAgICAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShwcnBDdXJzb3IpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6IERvZXMgdGhpcyBoYXZlIHRv
IGdldCBzbyB1Z2x5PworICAgIFJlZlB0cjxJREJDdXJzb3JXaXRoVmFsdWU+IGN1cnNvcldpdGhW
YWx1ZShzdGF0aWNfY2FzdDxJREJDdXJzb3JXaXRoVmFsdWUqPihwcnBDdXJzb3IuZ2V0KCkpKTsK
KyAgICBtX3Jlc3VsdCA9IElEQkFueTo6Y3JlYXRlKGN1cnNvcldpdGhWYWx1ZS5yZWxlYXNlKCkp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0lEQlJlcXVlc3QuaAppbmRleCBmY2ExMzQxYjg4YWQwODQ1MGIzZDJjYWVhY2JkYWM0NzE3MDcw
NTkyLi5jNTQ5ZDk4N2JhNDkyMThjNmZlMzg4ZTg1MTQyNWZjYTFiMWJmOGM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0lEQlJlcXVlc3QuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBtYXJrRWFybHlEZWF0aCgpOwogICAgIGJvb2wgcmVzZXRSZWFkeVN0YXRlKElEQlRyYW5zYWN0
aW9uKik7CiAgICAgdm9pZCBzZXRDdXJzb3JUeXBlKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6
OkN1cnNvclR5cGUpOworICAgIHZvaWQgc2V0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPik7
CiAgICAgSURCQW55KiBzb3VyY2UoKTsKICAgICB2b2lkIGFib3J0KCk7CiAKQEAgLTgxLDYgKzgy
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJL
ZXk+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NX
aXRoQ29udGludWF0aW9uKCk7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCiAgICAg
Ly8gQWN0aXZlRE9NT2JqZWN0CkBAIC0xMTAsNiArMTEyLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7CiAgICAgdmlydHVhbCBFdmVu
dFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwogCisgICAgdm9pZCBzZXRSZXN1
bHRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+LCBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
OjpDdXJzb3JUeXBlKTsKKwogICAgIFJlZlB0cjxJREJBbnk+IG1fc291cmNlOwogICAgIFJlZlB0
cjxJREJUcmFuc2FjdGlvbj4gbV90cmFuc2FjdGlvbjsKIApAQCAtMTE5LDYgKzEyMyw3IEBAIHBy
aXZhdGU6CiAKICAgICAvLyBPbmx5IHVzZWQgaWYgdGhlIHJlc3VsdCB0eXBlIHdpbGwgYmUgYSBj
dXJzb3IuCiAgICAgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSBtX2N1cnNv
clR5cGU7CisgICAgUmVmUHRyPElEQkN1cnNvcj4gbV9jdXJzb3I7CiAKICAgICBFdmVudFRhcmdl
dERhdGEgbV9ldmVudFRhcmdldERhdGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAppbmRleCA3OWRlNDIyZDIzM2NiNWY5NmMwOTNlYWJk
MGIyZjEwYTg3NDIxMjE5Li4wMTVhMDljZjQyMWRkMGEwMDI0NGViYmQzNDM2NzEyNWQ1MTc1ZGIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFj
a3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3Mu
aApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhj
b25zdCBXZWJJREJLZXkmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCVHJhbnNhY3Rpb24qKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggN2IyMjIyY2U3MGQ4MzllNTY4NjY1
NDhkODk1NDMxMWQzZTQyNTVjMi4uMGVlYzE1YjBjYjVkYjFmYjgxYjEwMjVlNWFjODMwZWViZmM4
ODBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1By
b3h5LmNwcApAQCAtOTQsNiArOTQsMTEgQEAgdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNj
ZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2MKICAgICBt
X2NhbGxiYWNrcy0+b25TdWNjZXNzKFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShzZXJpYWxpemVk
U2NyaXB0VmFsdWUpKTsKIH0KIAordm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzV2l0
aENvbnRpbnVhdGlvbigpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vzc1dpdGhDb250aW51
YXRpb24oKTsKK30KKwogdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25CbG9ja2VkKCkKIHsKICAg
ICBtX2NhbGxiYWNrcy0+b25CbG9ja2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCBlY2IxNzBhNjBlMzhlYTFkZDdkNjJjODAyMzAy
ODRlMDJhYzAwMWM5Li4wMzVjODg4ZjI2OGM5MWY1MGZmZmVmYTgxZGFlYTMwZGU1NDMwMWYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKQEAg
LTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJLZXk+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7CiAg
ICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAppbmRleCA0ZWUxNWFl
MDc1NjU5MjBlZjY2NWIyN2U1YmIzMmY2ZjUwN2Q4NTM2Li4xODVmZWExNjhkM2U1YTE3NWVkYzNl
NTg0MzE3OWI5NmI4YzExYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcApAQCAtOTAsNiArOTAsMTEgQEAgdm9pZCBXZWJJREJD
YWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBz
ZXJpYWxpemVkU2MKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKHNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSk7CiB9CiAKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzV2l0aENvbnRp
bnVhdGlvbigpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24o
KTsKK30KKwogdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkJsb2NrZWQoKQogewogICAgIG1f
Y2FsbGJhY2tzLT5vbkJsb2NrZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkNhbGxiYWNrc0ltcGwuaAppbmRleCA5YTI5NGIxNjA2YjkwODZjMTVjMzY5ODRmM2E1
YWEzOGRkMWQ3YTg3Li5iZTg1NDFiNzBjNWZiMjc0YWRiMjE2YTlmNDE3YWU0ZmY0NmUxYzM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5o
CkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNv
bnN0IFdlYklEQktleSYpOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCVHJhbnNh
Y3Rpb24qKTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYpOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9u
KCk7CiAgICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCiBwcml2YXRlOgo=
</data>
<flag name="review"
          id="111658"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>