<?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>159410</bug_id>
          
          <creation_ts>2016-07-04 21:31:29 -0700</creation_ts>
          <short_desc>When WKWebView prepares the session state blob, we should be able to filter it.</short_desc>
          <delta_ts>2016-07-08 17:43:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yongjun Zhang">yongjun_zhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1207738</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-04 21:31:29 -0700</bug_when>
    <thetext>It would be nice to add a SPI to WKBackForwardList so that a WebKit client can remove the current item.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207739</commentid>
    <comment_count>1</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-04 21:32:23 -0700</bug_when>
    <thetext>rdar://problem/26565813</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207742</commentid>
    <comment_count>2</comment_count>
      <attachid>282746</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-04 21:48:44 -0700</bug_when>
    <thetext>Created attachment 282746
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207743</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-04 21:51:14 -0700</bug_when>
    <thetext>Attachment 282746 did not pass style-queue:


ERROR: Source/WebKit2/ChangeLog:16:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKBackForwardList.mm:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKBackForwardList.mm:33:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 3 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207744</commentid>
    <comment_count>4</comment_count>
      <attachid>282747</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-04 22:03:25 -0700</bug_when>
    <thetext>Created attachment 282747
Fix style issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207850</commentid>
    <comment_count>5</comment_count>
      <attachid>282747</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-05 08:46:03 -0700</bug_when>
    <thetext>Comment on attachment 282747
Fix style issue.

We&apos;ve resisted APIs to directly manipulate the back/forward list for the entirety of WK2.

Every time we&apos;ve heard that one is needed, we&apos;ve always found an alternate.

Why is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207867</commentid>
    <comment_count>6</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-05 10:00:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 282747 [details]
&gt; Fix style issue.
&gt; 
&gt; We&apos;ve resisted APIs to directly manipulate the back/forward list for the
&gt; entirety of WK2.
&gt; 
&gt; Every time we&apos;ve heard that one is needed, we&apos;ve always found an alternate.
&gt; 
&gt; Why is this needed?

Sometimes when we restore the saved session state from disk, we would like to skip the current item (to prevent crash-loop if the app crashed because of loading the URL in current item). We can&apos;t just do bfList-&gt;back since that would make it possible to go forward and crash again if user swipes forward.

Seems like there isn&apos;t a good way to achieve this with the current API/SPI. Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207868</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-05 10:05:03 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Comment on attachment 282747 [details]
&gt; &gt; Fix style issue.
&gt; &gt; 
&gt; &gt; We&apos;ve resisted APIs to directly manipulate the back/forward list for the
&gt; &gt; entirety of WK2.
&gt; &gt; 
&gt; &gt; Every time we&apos;ve heard that one is needed, we&apos;ve always found an alternate.
&gt; &gt; 
&gt; &gt; Why is this needed?
&gt; 
&gt; Sometimes when we restore the saved session state from disk, we would like
&gt; to skip the current item (to prevent crash-loop if the app crashed because
&gt; of loading the URL in current item). We can&apos;t just do bfList-&gt;back since
&gt; that would make it possible to go forward and crash again if user swipes
&gt; forward.
&gt; 
&gt; Seems like there isn&apos;t a good way to achieve this with the current API/SPI.
&gt; Any suggestions?

-Take the session state blob
-Restore without navigating
-Make a new session state blob, but filter out the bad url.
-Restore the new session state blob</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208059</commentid>
    <comment_count>8</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-05 20:14:43 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; Comment on attachment 282747 [details]
&gt; &gt; &gt; Fix style issue.
&gt; &gt; &gt; 
&gt; &gt; &gt; We&apos;ve resisted APIs to directly manipulate the back/forward list for the
&gt; &gt; &gt; entirety of WK2.
&gt; &gt; &gt; 
&gt; &gt; &gt; Every time we&apos;ve heard that one is needed, we&apos;ve always found an alternate.
&gt; &gt; &gt; 
&gt; &gt; &gt; Why is this needed?
&gt; &gt; 
&gt; &gt; Sometimes when we restore the saved session state from disk, we would like
&gt; &gt; to skip the current item (to prevent crash-loop if the app crashed because
&gt; &gt; of loading the URL in current item). We can&apos;t just do bfList-&gt;back since
&gt; &gt; that would make it possible to go forward and crash again if user swipes
&gt; &gt; forward.
&gt; &gt; 
&gt; &gt; Seems like there isn&apos;t a good way to achieve this with the current API/SPI.
&gt; &gt; Any suggestions?
&gt; 
&gt; -Take the session state blob
&gt; -Restore without navigating
&gt; -Make a new session state blob, but filter out the bad url.
&gt; -Restore the new session state blob

Thanks Brady! I will try this approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208299</commentid>
    <comment_count>9</comment_count>
      <attachid>282914</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-06 11:35:14 -0700</bug_when>
    <thetext>Created attachment 282914
Add a SPI to WKWebView so that we can filter the session state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208382</commentid>
    <comment_count>10</comment_count>
      <attachid>282914</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-06 14:03:54 -0700</bug_when>
    <thetext>Comment on attachment 282914
Add a SPI to WKWebView so that we can filter the session state.

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:3378
&gt; +    auto handler = adoptNS([filter copy]);
&gt; +    WebKit::SessionState sessionState = _page-&gt;sessionState([handler](WebKit::WebBackForwardListItem&amp; item) {

Can put the filter copy inside the lambda:
[handler = adoptNS([filter copy])]

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:3384
&gt; +        BOOL (^filterBlock)(WKBackForwardListItem *item) = (BOOL (^)(WKBackForwardListItem *item))handler.get();
&gt; +        if (filterBlock) {
&gt; +            if (!filterBlock(wrapper(item)))
&gt; +                return false;
&gt; +        }
&gt; +        return true;

This should be able to be simpler:

if (!handler)
   return true;

BOOL (^filterBlock)(WKBackForwardListItem *item) = (BOOL (^)(WKBackForwardListItem *item))handler.get();
return filterBlock(wrapper(item));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208387</commentid>
    <comment_count>11</comment_count>
      <attachid>282914</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-07-06 14:06:55 -0700</bug_when>
    <thetext>Comment on attachment 282914
Add a SPI to WKWebView so that we can filter the session state.

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

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:3378
&gt;&gt; +    WebKit::SessionState sessionState = _page-&gt;sessionState([handler](WebKit::WebBackForwardListItem&amp; item) {
&gt; 
&gt; Can put the filter copy inside the lambda:
&gt; [handler = adoptNS([filter copy])]

I don&apos;t think the block needs to be copied at all? If it does, just use WTF::BlockPtr instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208408</commentid>
    <comment_count>12</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-06 14:35:51 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 282914 [details]
&gt; Add a SPI to WKWebView so that we can filter the session state.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=282914&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:3378
&gt; &gt;&gt; +    WebKit::SessionState sessionState = _page-&gt;sessionState([handler](WebKit::WebBackForwardListItem&amp; item) {
&gt; &gt; 
&gt; &gt; Can put the filter copy inside the lambda:
&gt; &gt; [handler = adoptNS([filter copy])]
&gt; 
&gt; I don&apos;t think the block needs to be copied at all? If it does, just use
&gt; WTF::BlockPtr instead.

Right, we don&apos;t need copy here since WebPageProxy::sessionState is a synchronous call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208410</commentid>
    <comment_count>13</comment_count>
      <attachid>282950</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-06 14:40:51 -0700</bug_when>
    <thetext>Created attachment 282950
Address review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208671</commentid>
    <comment_count>14</comment_count>
      <attachid>283023</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2016-07-07 10:44:56 -0700</bug_when>
    <thetext>Created attachment 283023
Fix build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209342</commentid>
    <comment_count>15</comment_count>
      <attachid>283023</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-08 17:09:14 -0700</bug_when>
    <thetext>Comment on attachment 283023
Fix build issues.

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:3377
&gt; +    WebKit::SessionState sessionState = _page-&gt;sessionState([filter](WebKit::WebBackForwardListItem&amp; item) {

[filter = WTFMove(filter)] will avoid a copy. It might just be a pointer copy as I&apos;m not exactly sure how blocks are represented... but probably couldn&apos;t hurt!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209372</commentid>
    <comment_count>16</comment_count>
      <attachid>283023</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 17:43:56 -0700</bug_when>
    <thetext>Comment on attachment 283023
Fix build issues.

Clearing flags on attachment: 283023

Committed r203014: &lt;http://trac.webkit.org/changeset/203014&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209373</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 17:43:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282746</attachid>
            <date>2016-07-04 21:48:44 -0700</date>
            <delta_ts>2016-07-04 22:03:25 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>remove_current_item.patch</filename>
            <type>text/plain</type>
            <size>12820</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IGYzNjFhZGYzYzAwNzY2YzI1MWU4Y2M2ZWFkOTE3YjJhNzVjMWU4NjYKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBNb24gSnVsIDQg
MjE6MTg6MzkgMjAxNiAtMDcwMAoKICAgIEFkZCBhIFNQSSB0byByZW1vdmUgdGhlIGN1cnJlbnQg
aXRlbSBpbiBXS0JhY2tGb3J3YXJkTGlzdC4KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTk0MTAKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmUxY2I0ZS4uM2FjMjc4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA3LTA0ICBZb25nanVuIFpoYW5nICA8eW9u
Z2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgU1BJIHRvIHJlbW92ZSB0aGUg
Y3VycmVudCBpdGVtIGluIFdLQmFja0ZvcndhcmRMaXN0LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgU1BJIHRvIFdLQmFja0ZvcndhcmRMaXN0
IHNvIHRoYXQgYSBXZWJLaXQyIGNsaWVudCBjYW4gcmVtb3ZlIHRoZQorICAgICAgICBjdXJyZW50
IGl0ZW0gZnJvbSBpdHMgZW50cmllcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgICgtW1dLQmFja0ZvcndhcmRMaXN0IF9yZW1v
dmVDdXJyZW50SXRlbV0pOiBDYWxscyBXZWJCb29rbWFya0xpc3Q6OnJlbW92ZUN1cnJlbnRJdGVt
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RQcml2YXRl
Lmg6IEFkZCBfcmVtb3ZlQ3VycmVudEl0ZW0uCisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhY2tG
b3J3YXJkTGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdDo6cmVt
b3ZlQ3VycmVudEl0ZW0pOiBBZnRlciByZW1vdmluZyB0aGUgY3VycmVudCBpdGVtLCBzZXQKKwkJ
CXRoZSBuZXcgY3VycmVudCBpbmRleCB0byB0aGUgcHJldmlvdXNseSB2aXNpdGVkIGl0ZW0uCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oOgorCiAyMDE2LTA3LTA0ICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJQcm9jZXNzZXMg
ZG9uJ3QgaGFuZGxlIERhdGFiYXNlUHJvY2VzcyBnb2luZyBhd2F5IHVuY2xlYW5seS4uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRM
aXN0Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJk
TGlzdC5tbQppbmRleCAyYzk2OTY1Li44NmM2ZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QubW0KQEAgLTEwMyw2
ICsxMDMsMTEgQEAgc3RhdGljIFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqdG9XS0JhY2tGb3J3YXJk
TGlzdEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogaXQKICAgICBfbGlzdC0+Y2xlYXIoKTsK
IH0KIAorLSAodm9pZClfcmVtb3ZlQ3VycmVudEl0ZW0KK3sKKyAgICBfbGlzdC0+cmVtb3ZlQ3Vy
cmVudEl0ZW0oKTsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExp
c3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0Zv
cndhcmRMaXN0UHJpdmF0ZS5oCmluZGV4IDM1ZDE2YmUuLjY2NDdmYTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJk
TGlzdFByaXZhdGUuaApAQCAtMzMsNiArMzMsNyBAQAogCiAvLyBSZW1vdmVzIGFsbCBpdGVtcyBl
eGNlcHQgdGhlIGN1cnJlbnQgb25lLgogLSAodm9pZClfY2xlYXI7CistICh2b2lkKV9yZW1vdmVD
dXJyZW50SXRlbSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQmFja0ZvcndhcmRMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNr
Rm9yd2FyZExpc3QuY3BwCmluZGV4IDBmNzEzYTkuLmUwNDcyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC0zMzUsNiArMzM1LDQx
IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0OjpyZW1vdmVBbGxJdGVtcygpCiAgICAgbV9wYWdl
LT5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QobnVsbHB0ciwgV1RGTW92ZShyZW1vdmVkSXRlbXMp
KTsKIH0KIAordm9pZCBXZWJCYWNrRm9yd2FyZExpc3Q6OnJlbW92ZUN1cnJlbnRJdGVtKCkKK3sK
KyAgICBBU1NFUlQoIW1faGFzQ3VycmVudEluZGV4IHx8IG1fY3VycmVudEluZGV4IDwgbV9lbnRy
aWVzLnNpemUoKSk7CisKKyAgICBzaXplX3Qgc2l6ZSA9IG1fZW50cmllcy5zaXplKCk7CisgICAg
aWYgKCFtX3BhZ2UgfHwgIXNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxXZWJC
YWNrRm9yd2FyZExpc3RJdGVtPiBjdXJyZW50SXRlbSA9IHRoaXMtPmN1cnJlbnRJdGVtKCk7Cisg
ICAgVmVjdG9yPFJlZlB0cjxXZWJCYWNrRm9yd2FyZExpc3RJdGVtPj4gcmVtb3ZlZEl0ZW1zOwor
CisgICAgaWYgKCFjdXJyZW50SXRlbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNpemUg
PT0gMSkgeworICAgICAgICByZW1vdmVBbGxJdGVtcygpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgQVNT
RVJUKG1fZW50cmllc1tpXSk7CisgICAgICAgIGlmIChtX2VudHJpZXNbaV0gJiYgbV9lbnRyaWVz
W2ldID09IGN1cnJlbnRJdGVtKSB7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50SW5kZXgg
PT0gaSk7CisgICAgICAgICAgICBkaWRSZW1vdmVJdGVtKCptX2VudHJpZXNbaV0pOworICAgICAg
ICAgICAgaWYgKG1fY3VycmVudEluZGV4ID09IHNpemUgLSAxKQorICAgICAgICAgICAgICAgIG1f
Y3VycmVudEluZGV4LS07CisKKyAgICAgICAgICAgIHJlbW92ZWRJdGVtcy5hcHBlbmQoV1RGTW92
ZShtX2VudHJpZXNbaV0pKTsKKyAgICAgICAgICAgIG1fZW50cmllcy5yZW1vdmUoaSk7CisgICAg
ICAgICAgICBtX3BhZ2UtPmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChudWxscHRyLCBXVEZNb3Zl
KHJlbW92ZWRJdGVtcykpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
fQorCiB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6Y2xlYXIoKQogewogICAgIEFTU0VSVCghbV9o
YXNDdXJyZW50SW5kZXggfHwgbV9jdXJyZW50SW5kZXggPCBtX2VudHJpZXMuc2l6ZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaAppbmRleCAxNzhm
MDdlLi4zMDI5ZTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3
YXJkTGlzdC5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdvVG9JdGVtKFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKICAgICB2b2lkIHJlbW92ZUFsbEl0ZW1zKCk7CiAgICAg
dm9pZCBjbGVhcigpOworICAgIHZvaWQgcmVtb3ZlQ3VycmVudEl0ZW0oKTsKIAogICAgIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0qIGN1cnJlbnRJdGVtKCkgY29uc3Q7CiAgICAgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSogYmFja0l0ZW0oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MGM5ZDhiLi5hY2E3NjE0IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTYtMDctMDQgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgYSBTUEkgdG8gcmVtb3ZlIHRoZSBjdXJyZW50IGl0ZW0gaW4gV0tCYWNrRm9yd2Fy
ZExpc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTk0MTAKKworICAgICAgICBBZGQgYW4gQVBJIHRlc3QgZm9yIFtXS0JhY2tGb3J3YXJkTGlzdCBf
cmVtb3ZlQ3VycmVudEl0ZW1dLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3QubW06IEFkZGVkLgorICAgICAgICAoLVtXS0JhY2tGb3J3YXJkTGlz
dFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgor
ICAgICAgICAoVEVTVCk6CisKIDIwMTYtMDctMDQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYlByb2Nlc3NlcyBkb24ndCBoYW5kbGUgRGF0YWJhc2VQcm9j
ZXNzIGdvaW5nIGF3YXkgdW5jbGVhbmx5Li4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDgw
ZjE1NS4uZTg2ZmYwZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4LDYgKzM4LDcgQEAK
IAkJMUMyQjgxODMxQzg5MUYwOTAwQTU1MjlGIC8qIENhbmNlbEZvbnRTdWJyZXNvdXJjZVBsdWdJ
bi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMkI4
MTgxMUM4OTFFRkEwMEE1NTI5RiAvKiBDYW5jZWxGb250U3VicmVzb3VyY2VQbHVnSW4ubW0gKi87
IH07CiAJCTFDMkI4MTg2MUM4OTI1OUQwMEE1NTI5RiAvKiB3ZWJmb250Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMyQjgxODQxQzg5
MjRBMjAwQTU1MjlGIC8qIHdlYmZvbnQuaHRtbCAqLzsgfTsKIAkJMUMyQjgxODcxQzg5MjVBMDAw
QTU1MjlGIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDMkI4MTg1MUM4OTI1MjMwMEE1NTI5RiAvKiBBaGVtLnR0ZiAqLzsg
fTsKKwkJMUYyQjdCRDUxRDJBMjEwNjAwODVBMjY4IC8qIFdLQmFja0ZvcndhcmRMaXN0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYyQjdCRDMxRDJB
MUNGMTAwODVBMjY4IC8qIFdLQmFja0ZvcndhcmRMaXN0Lm1tICovOyB9OwogCQkyNkRGNUE2MzE1
QTJBMjdFMDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2
REY1QTYxMTVBMkEyMkIwMDM2ODlDMiAvKiBDYW5jZWxMb2FkRnJvbVJlc291cmNlTG9hZERlbGVn
YXRlLmh0bWwgKi87IH07CiAJCTI2RjUyRUFEMTgyODgyN0IwMDIzRDQxMiAvKiBnZW9sb2NhdGlv
bkdldEN1cnJlbnRQb3NpdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUyRUFDMTgyODgyMEUwMDIzRDQxMiAvKiBnZW9sb2Nh
dGlvbkdldEN1cnJlbnRQb3NpdGlvbi5odG1sICovOyB9OwogCQkyNkY1MkVBRjE4Mjg4QzIzMDAy
M0Q0MTIgLyogZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjZGNTJFQUUxODI4OEMwNDAwMjNENDEyIC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9u
V2l0aEhpZ2hBY2N1cmFjeS5odG1sICovOyB9OwpAQCAtNjE1LDYgKzYxNiw3IEBACiAJCTFDMkI4
MTg1MUM4OTI1MjMwMEE1NTI5RiAvKiBBaGVtLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBBaGVtLnR0Zjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCOUJDMzcxQTY3NDgyMzAwRkU1Njc4IC8qIFdlYWtQdHIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vha1B0ci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRjBEMzc4MUJCRjJGM0QwMEI0RUY1NCAvKiBX
S1JldGFpblB0ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Jl
dGFpblB0ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFGMkI3QkQzMUQyQTFD
RjEwMDg1QTI2OCAvKiBXS0JhY2tGb3J3YXJkTGlzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLQmFja0ZvcndhcmRMaXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNjBCQTU3ODFCMUQyRTdCMDA0RkEwN0MgLyogREZBQ29tYmluZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gREZBQ29tYmluZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjBCQTU3QTFCMUQyRUUyMDA0RkEwN0MgLyog
REZBSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBERkFIZWxwZXJz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MTUxNkQ1MTVCMEU2MDUwMEEyQzIw
MSAvKiBTZXRBbmRVcGRhdGVDYWNoZU1vZGVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gU2V0QW5kVXBkYXRlQ2FjaGVNb2RlbC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTExODMsNiArMTE4NSw3IEBACiAJCQkJMEYzQjk0QTUxQTc3MjY2QzAw
REUzMjcyIC8qIFdLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSAqLywKIAkJCQk5OTg0RkFD
QTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovLAogCQkJCTUxNzE0
RUI2MUNGOEM3QTQwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0gKi8sCisJ
CQkJMUYyQjdCRDMxRDJBMUNGMTAwODVBMjY4IC8qIFdLQmFja0ZvcndhcmRMaXN0Lm1tICovLAog
CQkJKTsKIAkJCW5hbWUgPSAiV2ViS2l0MiBDb2NvYSI7CiAJCQlwYXRoID0gV2ViS2l0MkNvY29h
OwpAQCAtMjA2NCw2ICsyMDY3LDcgQEAKIAkJCQlDREJGQ0M0NTFBOUZGNDUzMDBBN0I2OTEgLyog
RnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBC
NjFEMEE2NEIzMDBGRUJDRjMgLyogTW9kYWxBbGVydHNTUEkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0M4M0UwNEUxRDBBNjQxODAwRkVCQ0YzIC8qIERGQU1pbmltaXplci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxRjJCN0JENTFEMkEyMTA2MDA4NUEyNjggLyogV0tCYWNrRm9yd2FyZExpc3Qu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCODFEMEE2NEJEMDBGRUJDRjMgLyogSW5qZWN0
ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
Q0U3RUY5MUE0MTFBRTYwMDQ0N0M0QyAvKiBHZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9u
VXNlckRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzY3NzAzNDFDQzgwMjI4
MDBENDI1QjEgLyogV2ViU2NyaXB0T2JqZWN0RGVzY3JpcHRpb24ubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLQmFj
a0ZvcndhcmRMaXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3QubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZjEyYjcxNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL1dLQmFja0ZvcndhcmRMaXN0Lm1tCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbXBvcnQgPFdlYktpdC9XS0JhY2tGb3J3YXJk
TGlzdFByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25Qcml2YXRlLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXcuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgIlBsYXRmb3Jt
VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCitz
dGF0aWMgYm9vbCBpc0RvbmU7CisKK0BpbnRlcmZhY2UgV0tCYWNrRm9yd2FyZExpc3RUZXN0TmF2
aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgorQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV0tCYWNrRm9yd2FyZExpc3RUZXN0TmF2aWdhdGlvbkRlbGVnYXRl
CisKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hOYXZpZ2F0
aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCit7CisgICAgaXNEb25lID0gdHJ1ZTsKK30K
KworQGVuZAorCitzdGF0aWMgTlNTdHJpbmcgKmxvYWRhYmxlVVJMMSA9IEAiZGF0YTp0ZXh0L2h0
bWwsbm8lMjBlcnJvciUyMEEiOworc3RhdGljIE5TU3RyaW5nICpsb2FkYWJsZVVSTDIgPSBAImRh
dGE6dGV4dC9odG1sLG5vJTIwZXJyb3IlMjBCIjsKK3N0YXRpYyBOU1N0cmluZyAqbG9hZGFibGVV
UkwzID0gQCJkYXRhOnRleHQvaHRtbCxubyUyMGVycm9yJTIwQyI7CisKK1RFU1QoV0tCYWNrRm9y
d2FyZExpc3QsIFJlbW92ZUN1cnJlbnRJdGVtKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGNvbnRyb2xsZXIgPSBhZG9w
dE5TKFtbV0tCYWNrRm9yd2FyZExpc3RUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCld
OworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpsb2FkYWJsZVVSTDFdXV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIGlzRG9uZSA9IGZhbHNlOworCisgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpsb2FkYWJsZVVSTDJdXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworICAgIGlzRG9uZSA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpsb2FkYWJs
ZVVSTDNdXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIGlz
RG9uZSA9IGZhbHNlOworCisgICAgV0tCYWNrRm9yd2FyZExpc3QgKmxpc3QgPSBbd2ViVmlldyBi
YWNrRm9yd2FyZExpc3RdOworICAgIEVYUEVDVF9FUSgoTlNVSW50ZWdlcikyLCBsaXN0LmJhY2tM
aXN0LmNvdW50KTsKKyAgICBFWFBFQ1RfRVEoKE5TVUludGVnZXIpMCwgbGlzdC5mb3J3YXJkTGlz
dC5jb3VudCk7CisgICAgRVhQRUNUX1NUUkVRKFtbbGlzdC5jdXJyZW50SXRlbSBVUkxdIGFic29s
dXRlU3RyaW5nXS5VVEY4U3RyaW5nLCBsb2FkYWJsZVVSTDMuVVRGOFN0cmluZyk7CisKKyAgICBb
bGlzdCBfcmVtb3ZlQ3VycmVudEl0ZW1dOworICAgIEVYUEVDVF9FUSgoTlNVSW50ZWdlcikxLCBs
aXN0LmJhY2tMaXN0LmNvdW50KTsKKyAgICBFWFBFQ1RfRVEoKE5TVUludGVnZXIpMCwgbGlzdC5m
b3J3YXJkTGlzdC5jb3VudCk7CisgICAgRVhQRUNUX1NUUkVRKFtbbGlzdC5jdXJyZW50SXRlbSBV
UkxdIGFic29sdXRlU3RyaW5nXS5VVEY4U3RyaW5nLCBsb2FkYWJsZVVSTDIuVVRGOFN0cmluZyk7
CisKKyAgICBbd2ViVmlldyBnb0JhY2tdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aXNEb25lKTsKKyAgICBpc0RvbmUgPSBmYWxzZTsKKworICAgIFtsaXN0IF9yZW1vdmVDdXJyZW50
SXRlbV07CisgICAgRVhQRUNUX0VRKChOU1VJbnRlZ2VyKTAsIGxpc3QuYmFja0xpc3QuY291bnQp
OworICAgIEVYUEVDVF9FUSgoTlNVSW50ZWdlcikwLCBsaXN0LmZvcndhcmRMaXN0LmNvdW50KTsK
KyAgICBFWFBFQ1RfU1RSRVEoW1tsaXN0LmN1cnJlbnRJdGVtIFVSTF0gYWJzb2x1dGVTdHJpbmdd
LlVURjhTdHJpbmcsIGxvYWRhYmxlVVJMMi5VVEY4U3RyaW5nKTsKK30KKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282747</attachid>
            <date>2016-07-04 22:03:25 -0700</date>
            <delta_ts>2016-07-06 11:35:14 -0700</delta_ts>
            <desc>Fix style issue.</desc>
            <filename>remove_current_item.patch</filename>
            <type>text/plain</type>
            <size>12781</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDcxMmY2OTM1MDI5MjFjZTkzMTVjYmIzZDE0MzJmYzRlYzQ1MjM1N2IKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBNb24gSnVsIDQg
MjE6MTg6MzkgMjAxNiAtMDcwMAoKICAgIEFkZCBhIFNQSSB0byByZW1vdmUgdGhlIGN1cnJlbnQg
aXRlbSBpbiBXS0JhY2tGb3J3YXJkTGlzdC4KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTk0MTAKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmUxY2I0ZS4uOGM4YzBmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA3LTA0ICBZb25nanVuIFpoYW5nICA8eW9u
Z2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgU1BJIHRvIHJlbW92ZSB0aGUg
Y3VycmVudCBpdGVtIGluIFdLQmFja0ZvcndhcmRMaXN0LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgU1BJIHRvIFdLQmFja0ZvcndhcmRMaXN0
IHNvIHRoYXQgYSBXZWJLaXQyIGNsaWVudCBjYW4gcmVtb3ZlIHRoZQorICAgICAgICBjdXJyZW50
IGl0ZW0gZnJvbSBpdHMgZW50cmllcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgICgtW1dLQmFja0ZvcndhcmRMaXN0IF9yZW1v
dmVDdXJyZW50SXRlbV0pOiBDYWxscyBXZWJCb29rbWFya0xpc3Q6OnJlbW92ZUN1cnJlbnRJdGVt
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RQcml2YXRl
Lmg6IEFkZCBfcmVtb3ZlQ3VycmVudEl0ZW0uCisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhY2tG
b3J3YXJkTGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdDo6cmVt
b3ZlQ3VycmVudEl0ZW0pOiBBZnRlciByZW1vdmluZyB0aGUgY3VycmVudCBpdGVtLCBzZXQKKyAg
ICAgICAgICAgIHRoZSBuZXcgY3VycmVudCBpbmRleCB0byB0aGUgcHJldmlvdXNseSB2aXNpdGVk
IGl0ZW0uCisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oOgorCiAyMDE2
LTA3LTA0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJQ
cm9jZXNzZXMgZG9uJ3QgaGFuZGxlIERhdGFiYXNlUHJvY2VzcyBnb2luZyBhd2F5IHVuY2xlYW5s
eS4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFj
a0ZvcndhcmRMaXN0Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jh
Y2tGb3J3YXJkTGlzdC5tbQppbmRleCAyYzk2OTY1Li44NmM2ZGQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QubW0K
QEAgLTEwMyw2ICsxMDMsMTEgQEAgc3RhdGljIFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqdG9XS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogaXQKICAgICBfbGlzdC0+
Y2xlYXIoKTsKIH0KIAorLSAodm9pZClfcmVtb3ZlQ3VycmVudEl0ZW0KK3sKKyAgICBfbGlzdC0+
cmVtb3ZlQ3VycmVudEl0ZW0oKTsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNr
Rm9yd2FyZExpc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oCmluZGV4IDM1ZDE2YmUuLjY2NDdmYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExp
c3RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jh
Y2tGb3J3YXJkTGlzdFByaXZhdGUuaApAQCAtMzMsNiArMzMsNyBAQAogCiAvLyBSZW1vdmVzIGFs
bCBpdGVtcyBleGNlcHQgdGhlIGN1cnJlbnQgb25lLgogLSAodm9pZClfY2xlYXI7CistICh2b2lk
KV9yZW1vdmVDdXJyZW50SXRlbSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IDBmNzEzYTkuLmUwNDcyOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCkBAIC0zMzUs
NiArMzM1LDQxIEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0OjpyZW1vdmVBbGxJdGVtcygpCiAg
ICAgbV9wYWdlLT5kaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QobnVsbHB0ciwgV1RGTW92ZShyZW1v
dmVkSXRlbXMpKTsKIH0KIAordm9pZCBXZWJCYWNrRm9yd2FyZExpc3Q6OnJlbW92ZUN1cnJlbnRJ
dGVtKCkKK3sKKyAgICBBU1NFUlQoIW1faGFzQ3VycmVudEluZGV4IHx8IG1fY3VycmVudEluZGV4
IDwgbV9lbnRyaWVzLnNpemUoKSk7CisKKyAgICBzaXplX3Qgc2l6ZSA9IG1fZW50cmllcy5zaXpl
KCk7CisgICAgaWYgKCFtX3BhZ2UgfHwgIXNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIFJl
ZlB0cjxXZWJCYWNrRm9yd2FyZExpc3RJdGVtPiBjdXJyZW50SXRlbSA9IHRoaXMtPmN1cnJlbnRJ
dGVtKCk7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJCYWNrRm9yd2FyZExpc3RJdGVtPj4gcmVtb3Zl
ZEl0ZW1zOworCisgICAgaWYgKCFjdXJyZW50SXRlbSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKHNpemUgPT0gMSkgeworICAgICAgICByZW1vdmVBbGxJdGVtcygpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAg
ICAgICAgQVNTRVJUKG1fZW50cmllc1tpXSk7CisgICAgICAgIGlmIChtX2VudHJpZXNbaV0gJiYg
bV9lbnRyaWVzW2ldID09IGN1cnJlbnRJdGVtKSB7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJy
ZW50SW5kZXggPT0gaSk7CisgICAgICAgICAgICBkaWRSZW1vdmVJdGVtKCptX2VudHJpZXNbaV0p
OworICAgICAgICAgICAgaWYgKG1fY3VycmVudEluZGV4ID09IHNpemUgLSAxKQorICAgICAgICAg
ICAgICAgIG1fY3VycmVudEluZGV4LS07CisKKyAgICAgICAgICAgIHJlbW92ZWRJdGVtcy5hcHBl
bmQoV1RGTW92ZShtX2VudHJpZXNbaV0pKTsKKyAgICAgICAgICAgIG1fZW50cmllcy5yZW1vdmUo
aSk7CisgICAgICAgICAgICBtX3BhZ2UtPmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChudWxscHRy
LCBXVEZNb3ZlKHJlbW92ZWRJdGVtcykpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgfQorfQorCiB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdDo6Y2xlYXIoKQogewogICAgIEFT
U0VSVCghbV9oYXNDdXJyZW50SW5kZXggfHwgbV9jdXJyZW50SW5kZXggPCBtX2VudHJpZXMuc2l6
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2Fy
ZExpc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaApp
bmRleCAxNzhmMDdlLi4zMDI5ZTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkJhY2tGb3J3YXJkTGlzdC5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdv
VG9JdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKICAgICB2b2lkIHJlbW92ZUFsbEl0ZW1z
KCk7CiAgICAgdm9pZCBjbGVhcigpOworICAgIHZvaWQgcmVtb3ZlQ3VycmVudEl0ZW0oKTsKIAog
ICAgIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGN1cnJlbnRJdGVtKCkgY29uc3Q7CiAgICAgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSogYmFja0l0ZW0oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MGM5ZDhiLi5hY2E3NjE0IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTYtMDctMDQgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgYSBTUEkgdG8gcmVtb3ZlIHRoZSBjdXJyZW50IGl0ZW0gaW4gV0tC
YWNrRm9yd2FyZExpc3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTk0MTAKKworICAgICAgICBBZGQgYW4gQVBJIHRlc3QgZm9yIFtXS0JhY2tGb3J3
YXJkTGlzdCBfcmVtb3ZlQ3VycmVudEl0ZW1dLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QubW06IEFkZGVkLgorICAgICAgICAoLVtXS0JhY2tG
b3J3YXJkTGlzdFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0
aW9uOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMTYtMDctMDQgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYlByb2Nlc3NlcyBkb24ndCBoYW5kbGUgRGF0
YWJhc2VQcm9jZXNzIGdvaW5nIGF3YXkgdW5jbGVhbmx5Li4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMDgwZjE1NS4uZTg2ZmYwZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4LDYg
KzM4LDcgQEAKIAkJMUMyQjgxODMxQzg5MUYwOTAwQTU1MjlGIC8qIENhbmNlbEZvbnRTdWJyZXNv
dXJjZVBsdWdJbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDMkI4MTgxMUM4OTFFRkEwMEE1NTI5RiAvKiBDYW5jZWxGb250U3VicmVzb3VyY2VQbHVn
SW4ubW0gKi87IH07CiAJCTFDMkI4MTg2MUM4OTI1OUQwMEE1NTI5RiAvKiB3ZWJmb250Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMy
QjgxODQxQzg5MjRBMjAwQTU1MjlGIC8qIHdlYmZvbnQuaHRtbCAqLzsgfTsKIAkJMUMyQjgxODcx
Qzg5MjVBMDAwQTU1MjlGIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMkI4MTg1MUM4OTI1MjMwMEE1NTI5RiAvKiBBaGVt
LnR0ZiAqLzsgfTsKKwkJMUYyQjdCRDUxRDJBMjEwNjAwODVBMjY4IC8qIFdLQmFja0ZvcndhcmRM
aXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYy
QjdCRDMxRDJBMUNGMTAwODVBMjY4IC8qIFdLQmFja0ZvcndhcmRMaXN0Lm1tICovOyB9OwogCQky
NkRGNUE2MzE1QTJBMjdFMDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxl
Z2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI2REY1QTYxMTVBMkEyMkIwMDM2ODlDMiAvKiBDYW5jZWxMb2FkRnJvbVJlc291cmNl
TG9hZERlbGVnYXRlLmh0bWwgKi87IH07CiAJCTI2RjUyRUFEMTgyODgyN0IwMDIzRDQxMiAvKiBn
ZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RjUyRUFDMTgyODgyMEUwMDIzRDQxMiAv
KiBnZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvbi5odG1sICovOyB9OwogCQkyNkY1MkVBRjE4
Mjg4QzIzMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFj
Y3VyYWN5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjZGNTJFQUUxODI4OEMwNDAwMjNENDEyIC8qIGdlb2xvY2F0aW9uR2V0Q3VycmVu
dFBvc2l0aW9uV2l0aEhpZ2hBY2N1cmFjeS5odG1sICovOyB9OwpAQCAtNjE1LDYgKzYxNiw3IEBA
CiAJCTFDMkI4MTg1MUM4OTI1MjMwMEE1NTI5RiAvKiBBaGVtLnR0ZiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBBaGVtLnR0Zjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNCOUJDMzcxQTY3NDgyMzAwRkU1Njc4IC8q
IFdlYWtQdHIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vha1B0
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRjBEMzc4MUJCRjJGM0QwMEI0
RUY1NCAvKiBXS1JldGFpblB0ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS1JldGFpblB0ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFGMkI3
QkQzMUQyQTFDRjEwMDg1QTI2OCAvKiBXS0JhY2tGb3J3YXJkTGlzdC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLQmFja0ZvcndhcmRMaXN0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyNjBCQTU3ODFCMUQyRTdCMDA0RkEwN0MgLyogREZBQ29t
YmluZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gREZBQ29tYmlu
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjBCQTU3QTFCMUQyRUUyMDA0
RkEwN0MgLyogREZBSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
RkFIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MTUxNkQ1MTVCMEU2
MDUwMEEyQzIwMSAvKiBTZXRBbmRVcGRhdGVDYWNoZU1vZGVsLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2V0QW5kVXBkYXRlQ2FjaGVNb2RlbC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODMsNiArMTE4NSw3IEBACiAJCQkJMEYzQjk0QTUx
QTc3MjY2QzAwREUzMjcyIC8qIFdLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSAqLywKIAkJ
CQk5OTg0RkFDQTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovLAog
CQkJCTUxNzE0RUI2MUNGOEM3QTQwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAu
bW0gKi8sCisJCQkJMUYyQjdCRDMxRDJBMUNGMTAwODVBMjY4IC8qIFdLQmFja0ZvcndhcmRMaXN0
Lm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSAiV2ViS2l0MiBDb2NvYSI7CiAJCQlwYXRoID0gV2Vi
S2l0MkNvY29hOwpAQCAtMjA2NCw2ICsyMDY3LDcgQEAKIAkJCQlDREJGQ0M0NTFBOUZGNDUzMDBB
N0I2OTEgLyogRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QzgzRTBCNjFEMEE2NEIzMDBGRUJDRjMgLyogTW9kYWxBbGVydHNTUEkuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M4M0UwNEUxRDBBNjQxODAwRkVCQ0YzIC8qIERGQU1pbmltaXplci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkxRjJCN0JENTFEMkEyMTA2MDA4NUEyNjggLyogV0tCYWNrRm9y
d2FyZExpc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCODFEMEE2NEJEMDBGRUJDRjMg
LyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RUY5MUE0MTFBRTYwMDQ0N0M0QyAvKiBHZXRJbmplY3RlZEJ1bmRsZUluaXRp
YWxpemF0aW9uVXNlckRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzY3NzAz
NDFDQzgwMjI4MDBENDI1QjEgLyogV2ViU2NyaXB0T2JqZWN0RGVzY3JpcHRpb24ubW0gaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL1dLQmFja0ZvcndhcmRMaXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMzE3YWMwOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL1dLQmFja0ZvcndhcmRMaXN0Lm1tCkBAIC0wLDAgKzEsOTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tGb3Vu
ZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCA8V2ViS2l0L1dLQmFja0ZvcndhcmRM
aXN0UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgorI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorCitzdGF0aWMgYm9vbCBpc0RvbmU7CisKK0BpbnRlcmZhY2UgV0tCYWNr
Rm9yd2FyZExpc3RUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlv
bkRlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tCYWNrRm9yd2FyZExpc3RUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlCisKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRGaW5pc2hOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCit7CisgICAg
aXNEb25lID0gdHJ1ZTsKK30KKworQGVuZAorCitzdGF0aWMgTlNTdHJpbmcgKmxvYWRhYmxlVVJM
MSA9IEAiZGF0YTp0ZXh0L2h0bWwsbm8lMjBlcnJvciUyMEEiOworc3RhdGljIE5TU3RyaW5nICps
b2FkYWJsZVVSTDIgPSBAImRhdGE6dGV4dC9odG1sLG5vJTIwZXJyb3IlMjBCIjsKK3N0YXRpYyBO
U1N0cmluZyAqbG9hZGFibGVVUkwzID0gQCJkYXRhOnRleHQvaHRtbCxubyUyMGVycm9yJTIwQyI7
CisKK1RFU1QoV0tCYWNrRm9yd2FyZExpc3QsIFJlbW92ZUN1cnJlbnRJdGVtKQoreworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRv
IGNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tCYWNrRm9yd2FyZExpc3RUZXN0TmF2aWdhdGlvbkRl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRl
OmNvbnRyb2xsZXIuZ2V0KCldOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpsb2FkYWJsZVVSTDFdXV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIGlzRG9uZSA9IGZh
bHNlOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpsb2FkYWJsZVVSTDJdXV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIGlzRG9uZSA9IGZhbHNlOworCisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpsb2FkYWJsZVVSTDNdXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZpc0RvbmUpOworICAgIGlzRG9uZSA9IGZhbHNlOworCisgICAgV0tCYWNrRm9yd2FyZExpc3Qg
Kmxpc3QgPSBbd2ViVmlldyBiYWNrRm9yd2FyZExpc3RdOworICAgIEVYUEVDVF9FUSgoTlNVSW50
ZWdlcikyLCBsaXN0LmJhY2tMaXN0LmNvdW50KTsKKyAgICBFWFBFQ1RfRVEoKE5TVUludGVnZXIp
MCwgbGlzdC5mb3J3YXJkTGlzdC5jb3VudCk7CisgICAgRVhQRUNUX1NUUkVRKFtbbGlzdC5jdXJy
ZW50SXRlbSBVUkxdIGFic29sdXRlU3RyaW5nXS5VVEY4U3RyaW5nLCBsb2FkYWJsZVVSTDMuVVRG
OFN0cmluZyk7CisKKyAgICBbbGlzdCBfcmVtb3ZlQ3VycmVudEl0ZW1dOworICAgIEVYUEVDVF9F
USgoTlNVSW50ZWdlcikxLCBsaXN0LmJhY2tMaXN0LmNvdW50KTsKKyAgICBFWFBFQ1RfRVEoKE5T
VUludGVnZXIpMCwgbGlzdC5mb3J3YXJkTGlzdC5jb3VudCk7CisgICAgRVhQRUNUX1NUUkVRKFtb
bGlzdC5jdXJyZW50SXRlbSBVUkxdIGFic29sdXRlU3RyaW5nXS5VVEY4U3RyaW5nLCBsb2FkYWJs
ZVVSTDIuVVRGOFN0cmluZyk7CisKKyAgICBbd2ViVmlldyBnb0JhY2tdOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBpc0RvbmUgPSBmYWxzZTsKKworICAgIFts
aXN0IF9yZW1vdmVDdXJyZW50SXRlbV07CisgICAgRVhQRUNUX0VRKChOU1VJbnRlZ2VyKTAsIGxp
c3QuYmFja0xpc3QuY291bnQpOworICAgIEVYUEVDVF9FUSgoTlNVSW50ZWdlcikwLCBsaXN0LmZv
cndhcmRMaXN0LmNvdW50KTsKKyAgICBFWFBFQ1RfU1RSRVEoW1tsaXN0LmN1cnJlbnRJdGVtIFVS
TF0gYWJzb2x1dGVTdHJpbmddLlVURjhTdHJpbmcsIGxvYWRhYmxlVVJMMi5VVEY4U3RyaW5nKTsK
K30KKworI2VuZGlmCg==
</data>
<flag name="review"
          id="306522"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282914</attachid>
            <date>2016-07-06 11:35:14 -0700</date>
            <delta_ts>2016-07-06 14:40:51 -0700</delta_ts>
            <desc>Add a SPI to WKWebView so that we can filter the session state.</desc>
            <filename>filter_session_state.patch</filename>
            <type>text/plain</type>
            <size>3258</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDYwNzhmMDVmNjdjZjU1ZTcxNzI2NzMzZTI5NmU5MTNhY2Y2NzA5MmEKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgSnVsIDUg
MjA6MTc6MTUgMjAxNiAtMDcwMAoKICAgIFdoZW4gV0tXZWJWaWV3IHByZXBhcmVzIHRoZSBzZXNz
aW9uIHN0YXRlIGJsb2IsIHdlIHNob3VsZCBiZSBhYmxlIHRvIGZpbHRlciBpdC4KICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0MTAKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ODAyODIxNS4uMjM2ZGZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE2LTA3LTA2
ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2hl
biBXS1dlYlZpZXcgcHJlcGFyZXMgdGhlIHNlc3Npb24gc3RhdGUgYmxvYiwgd2Ugc2hvdWxkIGJl
IGFibGUgdG8gZmlsdGVyIGl0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU5NDEwCisKKyAgICAgICAgQWRkIGEgU1BJIHRvIFdLV2ViVmlldyBzbyB0
aGF0IGEgY2xpZW50IGNhbiBkZWNpZGUgaG93IHRvIGZpbHRlciBiYWNrZm9yd2FyZCBpdGVtcwor
ICAgICAgICB3aGVuIFdLV2ViVmlldyBwZXJwYXJpbmcgc2Vzc2lvbiBzdGF0ZS4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nlc3Npb25TdGF0ZVdp
dGhGaWx0ZXI6XSk6IFdoZW4gcHJlcGFyaW5nIHNlc3Npb24gc3RhdGUsIGNoZWNrIGVhY2gKKyAg
ICAgICAgYmFja2ZvcndhcmQgaXRlbSBhZ2FpbnN0IHRoZSBmaWx0ZXIgYmxvY2suCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6IEFkZCB0aGUgU1BJIF9z
ZXNzaW9uU3RhdGVXaXRoRmlsdGVyOgorCisKIDIwMTYtMDctMDYgIENvbW1pdCBRdWV1ZSAgPGNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMDI3MjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IDFiZjhlZDEuLmM5NmNkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zMzcyLDYgKzMzNzIsMjEgQEAgc3Rh
dGljIGludDMyX3QgYWN0aXZlT3JpZW50YXRpb24oV0tXZWJWaWV3ICp3ZWJWaWV3KQogICAgIHJl
dHVybiBhZG9wdE5TKFtbX1dLU2Vzc2lvblN0YXRlIGFsbG9jXSBfaW5pdFdpdGhTZXNzaW9uU3Rh
dGU6X3BhZ2UtPnNlc3Npb25TdGF0ZSgpXSkuYXV0b3JlbGVhc2UoKTsKIH0KIAorLSAoX1dLU2Vz
c2lvblN0YXRlICopX3Nlc3Npb25TdGF0ZVdpdGhGaWx0ZXI6KEJPT0wgKF4pKFdLQmFja0Zvcndh
cmRMaXN0SXRlbSAqaXRlbSkpZmlsdGVyCit7CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhb
ZmlsdGVyIGNvcHldKTsKKyAgICBXZWJLaXQ6OlNlc3Npb25TdGF0ZSBzZXNzaW9uU3RhdGUgPSBf
cGFnZS0+c2Vzc2lvblN0YXRlKFtoYW5kbGVyXShXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0mIGl0ZW0pIHsKKyAgICAgICAgQk9PTCAoXmZpbHRlckJsb2NrKShXS0JhY2tGb3J3YXJkTGlz
dEl0ZW0gKml0ZW0pID0gKEJPT0wgKF4pKFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqaXRlbSkpaGFu
ZGxlci5nZXQoKTsKKyAgICAgICAgaWYgKGZpbHRlckJsb2NrKSB7CisgICAgICAgICAgICBpZiAo
IWZpbHRlckJsb2NrKHdyYXBwZXIoaXRlbSkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9KTsKKworICAgIHJldHVy
biBhZG9wdE5TKFtbX1dLU2Vzc2lvblN0YXRlIGFsbG9jXSBfaW5pdFdpdGhTZXNzaW9uU3RhdGU6
c2Vzc2lvblN0YXRlXSkuYXV0b3JlbGVhc2UoKTsKK30KKwogLSAodm9pZClfcmVzdG9yZUZyb21T
ZXNzaW9uU3RhdGVEYXRhOihOU0RhdGEgKilzZXNzaW9uU3RhdGVEYXRhCiB7CiAgICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIG5vdCB1c2UgdGhlIGxlZ2FjeSBzZXNzaW9uIHN0YXRlIGRlY29kZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCmluZGV4IDY1MTIwYzUuLjE4YzMwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0xMDAsNiAr
MTAwLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlw
ZSkgewogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1Nlc3Npb25TdGF0ZSAq
X3Nlc3Npb25TdGF0ZTsKIC0gKFdLTmF2aWdhdGlvbiAqKV9yZXN0b3JlU2Vzc2lvblN0YXRlOihf
V0tTZXNzaW9uU3RhdGUgKilzZXNzaW9uU3RhdGUgYW5kTmF2aWdhdGU6KEJPT0wpbmF2aWdhdGU7
CistIChfV0tTZXNzaW9uU3RhdGUgKilfc2Vzc2lvblN0YXRlV2l0aEZpbHRlcjooQk9PTCAoXiko
V0tCYWNrRm9yd2FyZExpc3RJdGVtICppdGVtKSlmaWx0ZXI7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEFsbG93c1JlbW90ZUluc3BlY3Rpb246KSBCT09MIF9hbGxvd3NSZW1v
dGVJbnNwZWN0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0UmVt
b3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZTopIE5TU3RyaW5nICpfcmVtb3RlSW5zcGVjdGlvbk5h
bWVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282950</attachid>
            <date>2016-07-06 14:40:51 -0700</date>
            <delta_ts>2016-07-07 10:44:56 -0700</delta_ts>
            <desc>Address review comments.</desc>
            <filename>spi_sessionstate.patch</filename>
            <type>text/plain</type>
            <size>3050</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IGFkNzUxNmJiYWFjN2FlY2ViNjIwZjhiYTczMDI2NmNhNGRlODIzZmQKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgSnVsIDUg
MjA6MTc6MTUgMjAxNiAtMDcwMAoKICAgIFdoZW4gV0tXZWJWaWV3IHByZXBhcmVzIHRoZSBzZXNz
aW9uIHN0YXRlIGJsb2IsIHdlIHNob3VsZCBiZSBhYmxlIHRvIGZpbHRlciBpdC4KICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0MTAKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ODAyODIxNS4uMjM2ZGZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE2LTA3LTA2
ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2hl
biBXS1dlYlZpZXcgcHJlcGFyZXMgdGhlIHNlc3Npb24gc3RhdGUgYmxvYiwgd2Ugc2hvdWxkIGJl
IGFibGUgdG8gZmlsdGVyIGl0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU5NDEwCisKKyAgICAgICAgQWRkIGEgU1BJIHRvIFdLV2ViVmlldyBzbyB0
aGF0IGEgY2xpZW50IGNhbiBkZWNpZGUgaG93IHRvIGZpbHRlciBiYWNrZm9yd2FyZCBpdGVtcwor
ICAgICAgICB3aGVuIFdLV2ViVmlldyBwZXJwYXJpbmcgc2Vzc2lvbiBzdGF0ZS4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nlc3Npb25TdGF0ZVdp
dGhGaWx0ZXI6XSk6IFdoZW4gcHJlcGFyaW5nIHNlc3Npb24gc3RhdGUsIGNoZWNrIGVhY2gKKyAg
ICAgICAgYmFja2ZvcndhcmQgaXRlbSBhZ2FpbnN0IHRoZSBmaWx0ZXIgYmxvY2suCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6IEFkZCB0aGUgU1BJIF9z
ZXNzaW9uU3RhdGVXaXRoRmlsdGVyOgorCisKIDIwMTYtMDctMDYgIENvbW1pdCBRdWV1ZSAgPGNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMDI3MjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IDFiZjhlZDEuLmJjODZlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zMzcyLDYgKzMzNzIsMTggQEAgc3Rh
dGljIGludDMyX3QgYWN0aXZlT3JpZW50YXRpb24oV0tXZWJWaWV3ICp3ZWJWaWV3KQogICAgIHJl
dHVybiBhZG9wdE5TKFtbX1dLU2Vzc2lvblN0YXRlIGFsbG9jXSBfaW5pdFdpdGhTZXNzaW9uU3Rh
dGU6X3BhZ2UtPnNlc3Npb25TdGF0ZSgpXSkuYXV0b3JlbGVhc2UoKTsKIH0KIAorLSAoX1dLU2Vz
c2lvblN0YXRlICopX3Nlc3Npb25TdGF0ZVdpdGhGaWx0ZXI6KEJPT0wgKF4pKFdLQmFja0Zvcndh
cmRMaXN0SXRlbSAqaXRlbSkpZmlsdGVyCit7CisgICAgV2ViS2l0OjpTZXNzaW9uU3RhdGUgc2Vz
c2lvblN0YXRlID0gX3BhZ2UtPnNlc3Npb25TdGF0ZShbZmlsdGVyXShXZWJLaXQ6OldlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0mIGl0ZW0pIHsKKyAgICAgICAgaWYgKCFmaWx0ZXIpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4gZmlsdGVyKHdyYXBwZXIoaXRlbSkpOwor
ICAgIH0pOworCisgICAgcmV0dXJuIGFkb3B0TlMoW1tfV0tTZXNzaW9uU3RhdGUgYWxsb2NdIF9p
bml0V2l0aFNlc3Npb25TdGF0ZTpzZXNzaW9uU3RhdGVdKS5hdXRvcmVsZWFzZSgpOworfQorCiAt
ICh2b2lkKV9yZXN0b3JlRnJvbVNlc3Npb25TdGF0ZURhdGE6KE5TRGF0YSAqKXNlc3Npb25TdGF0
ZURhdGEKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IHVzZSB0aGUgbGVnYWN5IHNl
c3Npb24gc3RhdGUgZGVjb2Rlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNjUxMjBjNS4uMThjMzAzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKQEAgLTEwMCw2ICsxMDAsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBf
V0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgX1dLU2Vzc2lvblN0YXRlICpfc2Vzc2lvblN0YXRlOwogLSAoV0tOYXZpZ2F0aW9uICopX3Jl
c3RvcmVTZXNzaW9uU3RhdGU6KF9XS1Nlc3Npb25TdGF0ZSAqKXNlc3Npb25TdGF0ZSBhbmROYXZp
Z2F0ZTooQk9PTCluYXZpZ2F0ZTsKKy0gKF9XS1Nlc3Npb25TdGF0ZSAqKV9zZXNzaW9uU3RhdGVX
aXRoRmlsdGVyOihCT09MICheKShXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKml0ZW0pKWZpbHRlcjsK
IAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzUmVtb3RlSW5zcGVjdGlv
bjopIEJPT0wgX2FsbG93c1JlbW90ZUluc3BlY3Rpb247CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSwgc2V0dGVyPV9zZXRSZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlOikgTlNTdHJpbmcg
Kl9yZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283023</attachid>
            <date>2016-07-07 10:44:56 -0700</date>
            <delta_ts>2016-07-08 17:43:56 -0700</delta_ts>
            <desc>Fix build issues.</desc>
            <filename>wkwebview_spi.patch</filename>
            <type>text/plain</type>
            <size>3056</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">Y29tbWl0IDM3NWJkN2JkOTAwZjczMTNjNmJlMzEyNTQ0OTM4NmFjNTFjZGI2ODUKQXV0aG9yOiBZ
b25nanVuIFpoYW5nIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KRGF0ZTogICBUdWUgSnVsIDUg
MjA6MTc6MTUgMjAxNiAtMDcwMAoKICAgIFdoZW4gV0tXZWJWaWV3IHByZXBhcmVzIHRoZSBzZXNz
aW9uIHN0YXRlIGJsb2IsIHdlIHNob3VsZCBiZSBhYmxlIHRvIGZpbHRlciBpdC4KICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0MTAKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ODAyODIxNS4uMjM2ZGZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE2LTA3LTA2
ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgV2hl
biBXS1dlYlZpZXcgcHJlcGFyZXMgdGhlIHNlc3Npb24gc3RhdGUgYmxvYiwgd2Ugc2hvdWxkIGJl
IGFibGUgdG8gZmlsdGVyIGl0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU5NDEwCisKKyAgICAgICAgQWRkIGEgU1BJIHRvIFdLV2ViVmlldyBzbyB0
aGF0IGEgY2xpZW50IGNhbiBkZWNpZGUgaG93IHRvIGZpbHRlciBiYWNrZm9yd2FyZCBpdGVtcwor
ICAgICAgICB3aGVuIFdLV2ViVmlldyBwZXJwYXJpbmcgc2Vzc2lvbiBzdGF0ZS4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nlc3Npb25TdGF0ZVdp
dGhGaWx0ZXI6XSk6IFdoZW4gcHJlcGFyaW5nIHNlc3Npb24gc3RhdGUsIGNoZWNrIGVhY2gKKyAg
ICAgICAgYmFja2ZvcndhcmQgaXRlbSBhZ2FpbnN0IHRoZSBmaWx0ZXIgYmxvY2suCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6IEFkZCB0aGUgU1BJIF9z
ZXNzaW9uU3RhdGVXaXRoRmlsdGVyOgorCisKIDIwMTYtMDctMDYgIENvbW1pdCBRdWV1ZSAgPGNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMDI3MjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCmluZGV4IDFiZjhlZDEuLmNhNzEwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zMzcyLDYgKzMzNzIsMTggQEAgc3Rh
dGljIGludDMyX3QgYWN0aXZlT3JpZW50YXRpb24oV0tXZWJWaWV3ICp3ZWJWaWV3KQogICAgIHJl
dHVybiBhZG9wdE5TKFtbX1dLU2Vzc2lvblN0YXRlIGFsbG9jXSBfaW5pdFdpdGhTZXNzaW9uU3Rh
dGU6X3BhZ2UtPnNlc3Npb25TdGF0ZSgpXSkuYXV0b3JlbGVhc2UoKTsKIH0KIAorLSAoX1dLU2Vz
c2lvblN0YXRlICopX3Nlc3Npb25TdGF0ZVdpdGhGaWx0ZXI6KEJPT0wgKF4pKFdLQmFja0Zvcndh
cmRMaXN0SXRlbSAqaXRlbSkpZmlsdGVyCit7CisgICAgV2ViS2l0OjpTZXNzaW9uU3RhdGUgc2Vz
c2lvblN0YXRlID0gX3BhZ2UtPnNlc3Npb25TdGF0ZShbZmlsdGVyXShXZWJLaXQ6OldlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0mIGl0ZW0pIHsKKyAgICAgICAgaWYgKCFmaWx0ZXIpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4gKGJvb2wpZmlsdGVyKHdyYXBwZXIoaXRl
bSkpOworICAgIH0pOworCisgICAgcmV0dXJuIGFkb3B0TlMoW1tfV0tTZXNzaW9uU3RhdGUgYWxs
b2NdIF9pbml0V2l0aFNlc3Npb25TdGF0ZTpzZXNzaW9uU3RhdGVdKS5hdXRvcmVsZWFzZSgpOwor
fQorCiAtICh2b2lkKV9yZXN0b3JlRnJvbVNlc3Npb25TdGF0ZURhdGE6KE5TRGF0YSAqKXNlc3Np
b25TdGF0ZURhdGEKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IHVzZSB0aGUgbGVn
YWN5IHNlc3Npb24gc3RhdGUgZGVjb2Rlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNjUxMjBjNS4uMThjMzAz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKQEAgLTEwMCw2ICsxMDAsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgX1dLU2Vzc2lvblN0YXRlICpfc2Vzc2lvblN0YXRlOwogLSAoV0tOYXZpZ2F0aW9u
ICopX3Jlc3RvcmVTZXNzaW9uU3RhdGU6KF9XS1Nlc3Npb25TdGF0ZSAqKXNlc3Npb25TdGF0ZSBh
bmROYXZpZ2F0ZTooQk9PTCluYXZpZ2F0ZTsKKy0gKF9XS1Nlc3Npb25TdGF0ZSAqKV9zZXNzaW9u
U3RhdGVXaXRoRmlsdGVyOihCT09MICheKShXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKml0ZW0pKWZp
bHRlcjsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzUmVtb3RlSW5z
cGVjdGlvbjopIEJPT0wgX2FsbG93c1JlbW90ZUluc3BlY3Rpb247CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSwgc2V0dGVyPV9zZXRSZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlOikgTlNT
dHJpbmcgKl9yZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>