<?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>85463</bug_id>
          
          <creation_ts>2012-05-02 23:58:38 -0700</creation_ts>
          <short_desc>REGRESSION (r102553): Smart links do not work</short_desc>
          <delta_ts>2016-09-16 13:18:00 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=161590</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=162081</see_also>
          <bug_file_loc>data:text/html,%3Cdiv%20contenteditable%3E%3C/div%3E%3Cscript%3Edocument.getElementsByTagName(%22div%22)%5B0%5D.focus()%3C/script%3E</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82198</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ddavidso</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>jbedard</cc>
    
    <cc>jberlin</cc>
    
    <cc>jiapu.mail</cc>
    
    <cc>max.hong.shen</cc>
    
    <cc>morrita</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>shinyak</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>615059</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-02 23:58:38 -0700</bug_when>
    <thetext>Substitutions &gt; Smart Links don&apos;t work in nightly builds. They work in Safari 5.1.5.

Steps to reproduce.

1. Open bug URL (it&apos;s just a basic contenteditable div)
2. Make sure that automatic link detection is enabled (Edit &gt; Substitutions &gt; Smart Links).
3. Type &quot;www.apple.com &quot; (without quotes, with a space at the end).

Results: it should be linkified, but it no longer is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615063</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-03 00:01:09 -0700</bug_when>
    <thetext>Other substitutions appear to work fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615430</commentid>
    <comment_count>2</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2012-05-03 11:16:16 -0700</bug_when>
    <thetext>Regressed in http://trac.webkit.org/changeset/102553
To fix: https://bugs.webkit.org/show_bug.cgi?id=73616
&quot;Asynchronous path and synchronous path of SpellChecker should share the code to mark misspellings&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615432</commentid>
    <comment_count>3</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2012-05-03 11:17:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/11374517&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615467</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-03 11:57:58 -0700</bug_when>
    <thetext>Is there anyway to test smart links in DRT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615560</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-03 13:34:55 -0700</bug_when>
    <thetext>I would expect that capturing its working is possible with textInputController. It&apos;s relatively easy to see the calls if you enable TextInput log channel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623021</commentid>
    <comment_count>6</comment_count>
      <attachid>141737</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-05-14 08:48:28 -0700</bug_when>
    <thetext>Created attachment 141737
simple fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623161</commentid>
    <comment_count>7</comment_count>
      <attachid>141737</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-14 11:49:36 -0700</bug_when>
    <thetext>Comment on attachment 141737
simple fix

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        No new tests - fix the regression

Is it possible to write a layout test for this?  If not, should we add a manual test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623176</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-14 11:59:07 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 141737 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141737&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        No new tests - fix the regression
&gt; 
&gt; Is it possible to write a layout test for this?  If not, should we add a manual test?

Maybe ap would know?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623197</commentid>
    <comment_count>9</comment_count>
      <attachid>141737</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-14 12:14:50 -0700</bug_when>
    <thetext>Comment on attachment 141737
simple fix

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt;&gt; +        No new tests - fix the regression
&gt;&gt; 
&gt;&gt; Is it possible to write a layout test for this?  If not, should we add a manual test?
&gt; 
&gt; Maybe ap would know?

I don&apos;t know how to exercise this code in a regression test.

&quot;fix the regression&quot; is not a good explanation of why there are no tests though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625353</commentid>
    <comment_count>10</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-05-16 06:39:50 -0700</bug_when>
    <thetext>Thanks for the comments. To enable the smart link test in DRT, we need to add a new interface like setLinkDetectionEnabled in LayoutTestController. I can open a separated bug and work on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625649</commentid>
    <comment_count>11</comment_count>
      <attachid>142304</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-05-16 11:13:04 -0700</bug_when>
    <thetext>Created attachment 142304
add a manual test

To enable the layouttest for the smart link, it requires adding a new API in WebView which may take a while for discussing. In addition, Smart links is not included in w3c spec, and I am not sure whether we should have it in LayoutTest. 

So, add a manual test for this small patch to help passing the review :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625670</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-16 11:26:13 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=142304) [details]
&gt; add a manual test
&gt; 
&gt; To enable the layouttest for the smart link, it requires adding a new API in WebView which may take a while for discussing. In addition, Smart links is not included in w3c spec, and I am not sure whether we should have it in LayoutTest. 

I don&apos;t think whether something is included in W3C spec or not is a good indication as to whether we should write a test or not since layout tests aren&apos;t conformance tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626623</commentid>
    <comment_count>13</comment_count>
      <attachid>142485</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-05-17 09:02:43 -0700</bug_when>
    <thetext>Created attachment 142485
add layouttest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626625</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 09:05:31 -0700</bug_when>
    <thetext>Attachment 142485 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/edit...&quot; exit_code: 1
Tools/DumpRenderTree/efl/LayoutTestControllerEfl.cpp:852:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Tools/DumpRenderTree/LayoutTestController.cpp:1724:  Tab found; better to use spaces  [whitespace/tab] [1]
Tools/DumpRenderTree/wx/LayoutTestControllerWx.cpp:649:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Tools/DumpRenderTree/win/LayoutTestControllerWin.cpp:1524:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Total errors found: 4 in 22 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>626631</commentid>
    <comment_count>15</comment_count>
      <attachid>142485</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-17 09:19:18 -0700</bug_when>
    <thetext>Comment on attachment 142485
add layouttest

Attachment 142485 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12725150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626634</commentid>
    <comment_count>16</comment_count>
      <attachid>142485</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-17 09:21:52 -0700</bug_when>
    <thetext>Comment on attachment 142485
add layouttest

Attachment 142485 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12726163</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626652</commentid>
    <comment_count>17</comment_count>
      <attachid>142485</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 09:54:41 -0700</bug_when>
    <thetext>Comment on attachment 142485
add layouttest

Attachment 142485 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12717564</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626671</commentid>
    <comment_count>18</comment_count>
      <attachid>142497</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-05-17 10:17:50 -0700</bug_when>
    <thetext>Created attachment 142497
fix style and build issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626677</commentid>
    <comment_count>19</comment_count>
      <attachid>142497</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-17 10:21:24 -0700</bug_when>
    <thetext>Comment on attachment 142497
fix style and build issues

Thanks for the test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626694</commentid>
    <comment_count>20</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-05-17 10:38:50 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 142497 [details])
&gt; Thanks for the test!

Thanks for the review :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626795</commentid>
    <comment_count>21</comment_count>
      <attachid>142497</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 11:53:44 -0700</bug_when>
    <thetext>Comment on attachment 142497
fix style and build issues

Rejecting attachment 142497 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
 saving rejects to file LayoutTests/platform/efl/test_expectations.txt.rej
patching file LayoutTests/platform/gtk/test_expectations.txt
patching file LayoutTests/platform/qt/Skipped
Hunk #1 succeeded at 2480 (offset -4 lines).
patching file LayoutTests/platform/qt/test_expectations.txt
patching file LayoutTests/platform/win/Skipped

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Ryosuke Ni...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12719568</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627524</commentid>
    <comment_count>22</comment_count>
      <attachid>142497</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-18 02:58:45 -0700</bug_when>
    <thetext>Comment on attachment 142497
fix style and build issues

Rejecting attachment 142497 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
pectations.txt
patching file LayoutTests/platform/qt/Skipped
Hunk #1 succeeded at 2480 (offset -4 lines).
patching file LayoutTests/platform/qt/test_expectations.txt
Hunk #1 FAILED at 72.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/qt/test_expectations.txt.rej
patching file LayoutTests/platform/win/Skipped

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Ryosuke Ni...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12722765</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627673</commentid>
    <comment_count>23</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-05-18 07:26:00 -0700</bug_when>
    <thetext>Committed r117590: &lt;http://trac.webkit.org/changeset/117590&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630713</commentid>
    <comment_count>24</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-05-22 13:46:08 -0700</bug_when>
    <thetext>Please try to remember WKTR when you add something to DRT: http://build.webkit.org/results/Lion%20Release%20(WebKit2%20Tests)/r118030%20(7431)/editing/inserting/typing-space-to-trigger-smart-link-pretty-diff.html

I will be adding the test to the wk2 skipped list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630757</commentid>
    <comment_count>25</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2012-05-22 14:21:51 -0700</bug_when>
    <thetext>Thanks for the help!
(In reply to comment #24)
&gt; Please try to remember WKTR when you add something to DRT: http://build.webkit.org/results/Lion%20Release%20(WebKit2%20Tests)/r118030%20(7431)/editing/inserting/typing-space-to-trigger-smart-link-pretty-diff.html
&gt; I will be adding the test to the wk2 skipped list.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141737</attachid>
            <date>2012-05-14 08:48:28 -0700</date>
            <delta_ts>2012-05-16 11:13:04 -0700</delta_ts>
            <desc>simple fix</desc>
            <filename>85463v1.patch</filename>
            <type>text/plain</type>
            <size>2163</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNjk1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA1LTE0ICBZaSBTaGVu
ICA8eWkuNC5zaGVuQG5va2lhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTAyNTUzKTog
U21hcnQgbGlua3MgZG8gbm90IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg1NDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVG8gZml4IHRoZSByZWdyZXNzaW9uIG9mIHNtYXJ0IGxpbmtzLCB3ZSBu
ZWVkIHRvIGNoZWNrIFRleHRDaGVja2luZ1R5cGVMaW5rIG9wdGlvbiBpbgorICAgICAgICBFZGl0
b3I6Om1hcmtBbmRSZXBsYWNlRm9yKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gZml4IHRo
ZSByZWdyZXNzaW9uCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKToKKwogMjAxMi0wNS0xNCAgU3JpcmFt
IE5lZWxha2FuZGFuICA8c3JpcmFtLm5lZWxha2FuZGFuQGdtYWlsLmNvbT4KIAogICAgICAgICBb
R3RrXVtET00gQmluZGluZ3NdIEZlYXR1cmUtcHJvdGVjdGVkIGludGVyZmFjZSB1c2FnZSBpbiBz
ZXQvZ2V0IHByb3BlcnR5IG11c3QgYmUgdW5kZXIgY29uZGl0aW9uIGd1YXJkcwpJbmRleDogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gMTE2OTQwKQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTkxLDYgKzE5OTEsNyBA
QCB2b2lkIEVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3IoUGFzc1JlZlB0CiAKICAgICBib29sIHNo
b3VsZE1hcmtTcGVsbGluZyA9IHRleHRDaGVja2luZ09wdGlvbnMgJiBUZXh0Q2hlY2tpbmdUeXBl
U3BlbGxpbmc7CiAgICAgYm9vbCBzaG91bGRNYXJrR3JhbW1hciA9IHRleHRDaGVja2luZ09wdGlv
bnMgJiBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjsKKyAgICBib29sIHNob3VsZE1hcmtMaW5rID0g
dGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVMaW5rOwogICAgIGJvb2wgc2hv
dWxkUGVyZm9ybVJlcGxhY2VtZW50ID0gdGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2lu
Z1R5cGVSZXBsYWNlbWVudDsKICAgICBib29sIHNob3VsZFNob3dDb3JyZWN0aW9uUGFuZWwgPSB0
ZXh0Q2hlY2tpbmdPcHRpb25zICYgVGV4dENoZWNraW5nVHlwZVNob3dDb3JyZWN0aW9uUGFuZWw7
CiAgICAgYm9vbCBzaG91bGRDaGVja0ZvckNvcnJlY3Rpb24gPSBzaG91bGRTaG93Q29ycmVjdGlv
blBhbmVsIHx8ICh0ZXh0Q2hlY2tpbmdPcHRpb25zICYgVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rp
b24pOwpAQCAtMjA3NSw3ICsyMDc2LDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9y
KFBhc3NSZWZQdAogICAgICAgICAgICAgaWYgKHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdU
eXBlTGluayAmJiBzZWxlY3Rpb25PZmZzZXQgPiByZXN1bHRMb2NhdGlvbiArIHJlc3VsdExlbmd0
aCArIDEpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGlmICghKHNo
b3VsZFBlcmZvcm1SZXBsYWNlbWVudCB8fCBzaG91bGRTaG93Q29ycmVjdGlvblBhbmVsKSB8fCAh
ZG9SZXBsYWNlbWVudCkKKyAgICAgICAgICAgIGlmICghKHNob3VsZFBlcmZvcm1SZXBsYWNlbWVu
dCB8fCBzaG91bGRTaG93Q29ycmVjdGlvblBhbmVsIHx8IHNob3VsZE1hcmtMaW5rKSB8fCAhZG9S
ZXBsYWNlbWVudCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgU3Ry
aW5nIHJlcGxhY2VkU3RyaW5nID0gcGxhaW5UZXh0KHJhbmdlVG9SZXBsYWNlLmdldCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142304</attachid>
            <date>2012-05-16 11:13:04 -0700</date>
            <delta_ts>2012-05-17 09:02:43 -0700</delta_ts>
            <desc>add a manual test</desc>
            <filename>85463v2.patch</filename>
            <type>text/plain</type>
            <size>4663</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDExNzMw
OCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA1
LTE2ICBZaSBTaGVuICA8eWkuNC5zaGVuQG5va2lhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9O
IChyMTAyNTUzKTogU21hcnQgbGlua3MgZG8gbm90IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbWFudWFsIHRlc3QgcGFnZSBmb3IgdGhl
IHNtYXJ0IGxpbmtzLgorCisgICAgICAgICogTWFudWFsVGVzdHMvdHlwaW5nLXNwYWNlLXRvLXRy
aWdnZXItc21hcnQtbGluay5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0xNiAgS2Vpc2hpIEhhdHRv
cmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCBXZWJLaXQg
QVBJIHRvIGFjY2VzcyBpbm5lciB0ZXh0IHZhbHVlIG9mIGlucHV0IGVsZW1lbnQKSW5kZXg6IE1h
bnVhbFRlc3RzL3R5cGluZy1zcGFjZS10by10cmlnZ2VyLXNtYXJ0LWxpbmsuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBNYW51YWxUZXN0cy90eXBpbmctc3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5rLmh0
bWwJKHJldmlzaW9uIDApCisrKyBNYW51YWxUZXN0cy90eXBpbmctc3BhY2UtdG8tdHJpZ2dlci1z
bWFydC1saW5rLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
TGlua0RldGVjdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgfQorCisgICAgdmFyIHRhcmdldERpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisgICAgdmFyIHRhcmdldFRleHQgPSB0
YXJnZXREaXYuZmlyc3RDaGlsZDsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRp
b24odGFyZ2V0VGV4dCwgMTUpOworICAgIHByZXNzS2V5KCIgIik7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2xvZycpLnRleHRDb250ZW50ID0gdGFyZ2V0RGl2LmlubmVySFRNTDsKKyAg
ICB2YXIgZXhwZWN0ZWRDb250ZW50cyA9ICJUaGUgPGEgaHJlZj1cImh0dHA6Ly93d3cuZm9vLmNv
bVwiPnd3dy5mb28uY29tPC9hPiBzaG91bGQgYmUgdW5kZXJsaW5lZCBhbmQgdGhlcmUgaXMgYW4g
YW5jaG9yIG5vZGUgY3JlYXRlZCBmb3IgaXQuIjsKKyAgICBpZiAoZXhwZWN0ZWRDb250ZW50cyA9
PSB0YXJnZXREaXYuaW5uZXJIVE1MKQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bG9nJykudGV4dENvbnRlbnQgPSAiUEFTUzogdGhlIGFuY2hvciBmb3IgJ3d3dy5mb28uY29tJyBo
YXMgYmVlbiBjcmVhdGVkLiIKKyAgICBlbHNlCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2cnKS50ZXh0Q29udGVudCA9ICJGYWlsZWQ6IHRoZSBleHBlY3RlZCBjb250ZW50IHdh
cyAnIiArIGV4cGVjdGVkQ29udGVudHMgKyAiJywgYnV0IHRoZSBhY3R1YWwgcmVzdWx0IHdhcyAn
IiArIHRhcmdldERpdi5pbm5lckhUTUwgKyAiJy4iCit9CisKK2Z1bmN0aW9uIHByZXNzS2V5KGtl
eSkKK3sKKyAgICBpZiAod2luZG93LktleUV2ZW50KSB7CisgICAgICAgIHZhciBldiA9IGRvY3Vt
ZW50LmNyZWF0ZUV2ZW50KCJLZXlib2FyZEV2ZW50Iik7CisgICAgICAgIGV2LmluaXRLZXlFdmVu
dCgia2V5cHJlc3MiLCB0cnVlLCB0cnVlLCB3aW5kb3csICAwLDAsMCwwLCAwLCBrZXkuY2hhckNv
ZGVBdCgwKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChldik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgdmFyIGV2ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIlRleHRFdmVu
dCIpOworICAgICAgICBldi5pbml0VGV4dEV2ZW50KCd0ZXh0SW5wdXQnLCB0cnVlLCB0cnVlLCBu
dWxsLCBrZXkuY2hhckF0KDApKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50
KGV2KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idGVz
dCIgY29udGVudGVkaXRhYmxlPlRoZSB3d3cuZm9vLmNvbXNob3VsZCBiZSB1bmRlcmxpbmVkIGFu
ZCB0aGVyZSBpcyBhbiBhbmNob3Igbm9kZSBjcmVhdGVkIGZvciBpdC48L2Rpdj4KKzxwcmUgaWQ9
ImxvZyI+PC9wcmU+Cis8L2JvZHk+Cis8c2NyaXB0PgorcnVuVGVzdCgpCis8L3NjcmlwdD4KKzwv
aHRtbD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzMwOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA1LTE2ICBZ
aSBTaGVuICA8eWkuNC5zaGVuQG5va2lhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTAy
NTUzKTogU21hcnQgbGlua3MgZG8gbm90IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVG8gZml4IHRoZSByZWdyZXNzaW9uIG9mIHNtYXJ0IGxpbmtz
LCB3ZSBuZWVkIHRvIGNoZWNrIFRleHRDaGVja2luZ1R5cGVMaW5rIG9wdGlvbiBpbgorICAgICAg
ICBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKCkuCisKKyAgICAgICAgQWRkIGEgbWFudWFsIHRl
c3Q6IE1hbnVhbFRlc3RzL3R5cGluZy1zcGFjZS10by10cmlnZ2VyLXNtYXJ0LWxpbmsuaHRtbAor
CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjptYXJrQW5kUmVwbGFjZUZvcik6CisKIDIwMTItMDUtMTYgIE1pa2hhaWwgTmFnYW5vdiAgPG1u
YWdhbm92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBdm9pZCBqdW1wc2Nyb2xsIHdoZW4gZW50
ZXJpbmcgbmV3IHRleHQgaW4gYSBtdWx0aS1saW5lIGVkaXRvci4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDExNzI5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5Miw2ICsxOTkyLDcgQEAgdm9pZCBF
ZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFBhc3NSZWZQdAogCiAgICAgYm9vbCBzaG91bGRNYXJr
U3BlbGxpbmcgPSB0ZXh0Q2hlY2tpbmdPcHRpb25zICYgVGV4dENoZWNraW5nVHlwZVNwZWxsaW5n
OwogICAgIGJvb2wgc2hvdWxkTWFya0dyYW1tYXIgPSB0ZXh0Q2hlY2tpbmdPcHRpb25zICYgVGV4
dENoZWNraW5nVHlwZUdyYW1tYXI7CisgICAgYm9vbCBzaG91bGRNYXJrTGluayA9IHRleHRDaGVj
a2luZ09wdGlvbnMgJiBUZXh0Q2hlY2tpbmdUeXBlTGluazsKICAgICBib29sIHNob3VsZFBlcmZv
cm1SZXBsYWNlbWVudCA9IHRleHRDaGVja2luZ09wdGlvbnMgJiBUZXh0Q2hlY2tpbmdUeXBlUmVw
bGFjZW1lbnQ7CiAgICAgYm9vbCBzaG91bGRTaG93Q29ycmVjdGlvblBhbmVsID0gdGV4dENoZWNr
aW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVTaG93Q29ycmVjdGlvblBhbmVsOwogICAgIGJv
b2wgc2hvdWxkQ2hlY2tGb3JDb3JyZWN0aW9uID0gc2hvdWxkU2hvd0NvcnJlY3Rpb25QYW5lbCB8
fCAodGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVDb3JyZWN0aW9uKTsKQEAg
LTIwNzYsNyArMjA3Nyw3IEBAIHZvaWQgRWRpdG9yOjptYXJrQW5kUmVwbGFjZUZvcihQYXNzUmVm
UHQKICAgICAgICAgICAgIGlmIChyZXN1bHQtPnR5cGUgPT0gVGV4dENoZWNraW5nVHlwZUxpbmsg
JiYgc2VsZWN0aW9uT2Zmc2V0ID4gcmVzdWx0TG9jYXRpb24gKyByZXN1bHRMZW5ndGggKyAxKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBpZiAoIShzaG91bGRQZXJm
b3JtUmVwbGFjZW1lbnQgfHwgc2hvdWxkU2hvd0NvcnJlY3Rpb25QYW5lbCkgfHwgIWRvUmVwbGFj
ZW1lbnQpCisgICAgICAgICAgICBpZiAoIShzaG91bGRQZXJmb3JtUmVwbGFjZW1lbnQgfHwgc2hv
dWxkU2hvd0NvcnJlY3Rpb25QYW5lbCB8fCBzaG91bGRNYXJrTGluaykgfHwgIWRvUmVwbGFjZW1l
bnQpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIFN0cmluZyByZXBs
YWNlZFN0cmluZyA9IHBsYWluVGV4dChyYW5nZVRvUmVwbGFjZS5nZXQoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142485</attachid>
            <date>2012-05-17 09:02:43 -0700</date>
            <delta_ts>2012-05-17 10:17:50 -0700</delta_ts>
            <desc>add layouttest</desc>
            <filename>85463v2.patch</filename>
            <type>text/plain</type>
            <size>19425</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzQ1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA1LTE3ICBZaSBTaGVu
ICA8eWkuNC5zaGVuQG5va2lhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTAyNTUzKTog
U21hcnQgbGlua3MgZG8gbm90IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg1NDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVG8gZml4IHRoZSByZWdyZXNzaW9uIG9mIHNtYXJ0IGxpbmtzLCB3ZSBu
ZWVkIHRvIGNoZWNrIFRleHRDaGVja2luZ1R5cGVMaW5rIG9wdGlvbiBpbgorICAgICAgICBFZGl0
b3I6Om1hcmtBbmRSZXBsYWNlRm9yKCkuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9pbnNlcnRp
bmcvdHlwaW5nLXNwYWNlLXRvLXRyaWdnZXItc21hcnQtbGluay5odG1sCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbmRSZXBs
YWNlRm9yKToKKwogMjAxMi0wNS0xNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb252ZXJ0IHN0eWxlcyBwYW5lbCBpbnRv
IFVJU291cmNlQ29kZVByb3ZpZGVyIGluIHRoZSBzY3JpcHRzIHBhbmVsLgpJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gMTE3NDUwKQorKysgU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTk2LDYgKzE5OTYsNyBAQCB2
b2lkIEVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3IoUGFzc1JlZlB0CiAKICAgICBib29sIHNob3Vs
ZE1hcmtTcGVsbGluZyA9IHRleHRDaGVja2luZ09wdGlvbnMgJiBUZXh0Q2hlY2tpbmdUeXBlU3Bl
bGxpbmc7CiAgICAgYm9vbCBzaG91bGRNYXJrR3JhbW1hciA9IHRleHRDaGVja2luZ09wdGlvbnMg
JiBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjsKKyAgICBib29sIHNob3VsZE1hcmtMaW5rID0gdGV4
dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVMaW5rOwogICAgIGJvb2wgc2hvdWxk
UGVyZm9ybVJlcGxhY2VtZW50ID0gdGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5
cGVSZXBsYWNlbWVudDsKICAgICBib29sIHNob3VsZFNob3dDb3JyZWN0aW9uUGFuZWwgPSB0ZXh0
Q2hlY2tpbmdPcHRpb25zICYgVGV4dENoZWNraW5nVHlwZVNob3dDb3JyZWN0aW9uUGFuZWw7CiAg
ICAgYm9vbCBzaG91bGRDaGVja0ZvckNvcnJlY3Rpb24gPSBzaG91bGRTaG93Q29ycmVjdGlvblBh
bmVsIHx8ICh0ZXh0Q2hlY2tpbmdPcHRpb25zICYgVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb24p
OwpAQCAtMjA4MCw3ICsyMDgxLDcgQEAgdm9pZCBFZGl0b3I6Om1hcmtBbmRSZXBsYWNlRm9yKFBh
c3NSZWZQdAogICAgICAgICAgICAgaWYgKHJlc3VsdC0+dHlwZSA9PSBUZXh0Q2hlY2tpbmdUeXBl
TGluayAmJiBzZWxlY3Rpb25PZmZzZXQgPiByZXN1bHRMb2NhdGlvbiArIHJlc3VsdExlbmd0aCAr
IDEpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIGlmICghKHNob3Vs
ZFBlcmZvcm1SZXBsYWNlbWVudCB8fCBzaG91bGRTaG93Q29ycmVjdGlvblBhbmVsKSB8fCAhZG9S
ZXBsYWNlbWVudCkKKyAgICAgICAgICAgIGlmICghKHNob3VsZFBlcmZvcm1SZXBsYWNlbWVudCB8
fCBzaG91bGRTaG93Q29ycmVjdGlvblBhbmVsIHx8IHNob3VsZE1hcmtMaW5rKSB8fCAhZG9SZXBs
YWNlbWVudCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgU3RyaW5n
IHJlcGxhY2VkU3RyaW5nID0gcGxhaW5UZXh0KHJhbmdlVG9SZXBsYWNlLmdldCgpKTsKSW5kZXg6
IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDExNzQ1MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0
IEBACisyMDEyLTA1LTE3ICBZaSBTaGVuICA8eWkuNC5zaGVuQG5va2lhLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OIChyMTAyNTUzKTogU21hcnQgbGlua3MgZG8gbm90IHdvcmsKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NDYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCgpLgorCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoc2V0QXV0
b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJC
bGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRvbWF0
aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCk6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOiBO
b3QgaW1wbGVtZW50ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RD
b250cm9sbGVyRWZsLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRv
bWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCk6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKTog
Tm90IGltcGxlbWVudGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0
Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRv
bWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCk6IFNldCBhdXRvbWF0aWMgbGluayBkZXRlY3Rpb24g
ZW5hYmxlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRvbWF0aWNMaW5r
RGV0ZWN0aW9uRW5hYmxlZCk6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKTogTm90IGltcGxl
bWVudGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVy
V3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtE
ZXRlY3Rpb25FbmFibGVkKTogTm90IGltcGxlbWVudGVkLgorCiAyMDEyLTA1LTE3ICBMaSBZaW4g
IDxsaS55aW5AaW50ZWwuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gcnVuLXdlYmtpdC10ZXN0
cyBjYW4ndCB3b3JrIG9uIHVidW50dSAxMi4wNApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMTE3NDUwKQorKysgVG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzE3LDYgKzE3MTcsMTYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0U21hcnRJbnNlcnREZWxl
dGVFbgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3Rh
dGljIEpTVmFsdWVSZWYgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAx
KQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisJCisgICAg
TGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0
Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJv
bGxlci0+c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihj
b250ZXh0LCBhcmd1bWVudHNbMF0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
aWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMjM2NSw2ICsyMzc1LDcgQEAgSlNTdGF0aWNGdW5j
dGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OgogICAgICAgICB7ICJzZXRIYW5kbGVzQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlc0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEljb25EYXRhYmFzZUVuYWJsZWQiLCBzZXRJ
Y29uRGF0YWJhc2VFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQiLCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCisgICAgICAgIHsgInNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVk
Iiwgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyIiwgc2V0TWFpbkZyYW1lSXNGaXJz
dFJlc3BvbmRlckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE1pbmltdW1UaW1lcklu
dGVydmFsIiwgc2V0TWluaW11bVRpbWVySW50ZXJ2YWxDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24iLCBzZXRNb2NrRGV2aWNlT3JpZW50YXRpb25D
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCShyZXZpc2lvbiAxMTc0NTApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiArMTAwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGljb25EYXRhYmFz
ZUVuYWJsZWQpOwogICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBw
cm9maWxpbmdFbmFibGVkKTsKICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQoYm9vbCBmbGFnKTsKKyAgICB2b2lkIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVk
KGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGJvb2wg
ZmxhZyk7CiAgICAgdm9pZCBzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oYm9vbCBjYW5Qcm92aWRl
QWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJv
b2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpOwogICAgIHZvaWQgc2V0TW9ja0dlb2xv
Y2F0aW9uRXJyb3IoaW50IGNvZGUsIEpTU3RyaW5nUmVmIG1lc3NhZ2UpOwpJbmRleDogVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0
VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAkocmV2aXNpb24gMTE3NDUwKQorKysgVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04ODIsMyArODgyLDggQEAgdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0UGFnZVZpc2liaQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CisKK3Zv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVk
KGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJl
dmlzaW9uIDExNzQ1MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIwOCw2ICsyMjA4LDExIEBAIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBhZ2VWaXNpYmkKICAgICB9CiB9CiAKK3ZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGJv
b2wpCit7CisgICAgLy8gTm90IEltcGxlbWVudGVkCit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldFRleHREaXJlY3Rpb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKSW5kZXg6IFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZs
LmNwcAkocmV2aXNpb24gMTE3NDUwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91
dFRlc3RDb250cm9sbGVyRWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQ1LDMgKzg0NSw4IEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBhZ2VWaXNpYmkKICAgICBlbHNlIGlmIChu
ZXdWaXNpYmlsaXR5ID09ICJwcmV2aWV3IikKICAgICAgICAgZXdrX3ZpZXdfdmlzaWJpbGl0eV9z
dGF0ZV9zZXQoYnJvd3Nlci0+bWFpblZpZXcoKSwgRVdLX1BBR0VfVklTSUJJTElUWV9TVEFURV9Q
UkVWSUVXLCBmYWxzZSk7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9t
YXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAJKHJldmlzaW9uIDEx
NzQ1MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjIsMyArMTAyMiw4IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldFBhZ2VWaXNpYmkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRo
aXMuCiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtEZXRl
Y3Rpb25FbmFibGVkKGJvb2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQpJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQkocmV2aXNpb24gMTE3NDUwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02MTQsNiArNjE0
LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEphdmFTY3JpcHQKICAgICBbW1tt
YWluRnJhbWUgd2ViVmlld10gcHJlZmVyZW5jZXNdIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlw
Ym9hcmQ6ZW5hYmxlZF07CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9t
YXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBbW21haW5GcmFt
ZSB3ZWJWaWV3XSBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZDplbmFibGVkXTsKK30K
Kwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1l
bnRzKGJvb2wgY3ljbGVzKQogewogICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFRhYktleUN5
Y2xlc1Rocm91Z2hFbGVtZW50czpjeWNsZXNdOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDExNzQ1MCkK
KysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05NjksNiArOTY5LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldFBhZ2VWaXNpYmkKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCiB9CiAKK3Zv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVk
KGJvb2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQorCiBRU3RyaW5nIExh
eW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKQogewogICAgIHJldHVybiBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6bGF5ZXJUcmVlQXNUZXh0KG1fZHJ0LT53ZWJQYWdlKCktPm1h
aW5GcmFtZSgpKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29u
dHJvbGxlcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xh
eW91dFRlc3RDb250cm9sbGVyV2luLmNwcAkocmV2aXNpb24gMTE3NDUwKQorKysgVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTUxNywzICsxNTE3LDggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UGFn
ZVZpc2liaQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KKwordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoYm9vbCkK
K3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xs
ZXJXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVz
dENvbnRyb2xsZXJXeC5jcHAJKHJldmlzaW9uIDExNzQ1MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDIs
MyArNjQyLDggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UGFnZVZpc2liaQogewog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoYm9vbCkKK3sKKyAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRoaXMuCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTE3NDUyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDUtMTcgIFlpIFNoZW4gIDx5aS40LnNoZW5A
bm9raWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxMDI1NTMpOiBTbWFydCBsaW5rcyBk
byBub3Qgd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODU0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYSBuZXcgdGVzdCBmb3IgdGVzdGluZyB0aGUgc21hcnQgbGluay4KKworICAgICAgICAq
IGVkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1zcGFjZS10by10cmlnZ2VyLXNtYXJ0LWxpbmstZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2luc2VydGluZy90eXBpbmctc3Bh
Y2UtdG8tdHJpZ2dlci1zbWFydC1saW5rLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
dGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2lu
L1NraXBwZWQ6CisKIDIwMTItMDUtMTcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29t
PgogCiAgICAgICAgIEZyYW1lIGZsYXR0ZW5pbmcgc2hvdWxkIG5vdCBleHBhbmQgdGlueSBmcmFt
ZXMKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1zcGFjZS10by10
cmlnZ2VyLXNtYXJ0LWxpbmstZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1zcGFjZS10by10cmlnZ2VyLXNtYXJ0LWxpbmstZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcv
dHlwaW5nLXNwYWNlLXRvLXRyaWdnZXItc21hcnQtbGluay1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMiBAQAorVGhlIHd3dy5mb28uY29tIHNob3VsZCBiZSB1bmRlcmxpbmVk
IGFuZCB0aGVyZSBpcyBhbiBhbmNob3Igbm9kZSBjcmVhdGVkIGZvciBpdC4KK1BBU1M6IHRoZSBh
bmNob3IgZm9yICd3d3cuZm9vLmNvbScgaGFzIGJlZW4gY3JlYXRlZC4KSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1zcGFjZS10by10cmlnZ2VyLXNtYXJ0LWxpbmsu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy90eXBpbmct
c3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5rLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2luc2VydGluZy90eXBpbmctc3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5r
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b21hdGlj
TGlua0RldGVjdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgfQorCisgICAgdmFyIHRhcmdldERpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisgICAgdmFyIHRhcmdldFRleHQgPSB0
YXJnZXREaXYuZmlyc3RDaGlsZDsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRp
b24odGFyZ2V0VGV4dCwgMTUpOworICAgIHByZXNzS2V5KCIgIik7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2xvZycpLnRleHRDb250ZW50ID0gdGFyZ2V0RGl2LmlubmVySFRNTDsKKyAg
ICB2YXIgZXhwZWN0ZWRDb250ZW50cyA9ICJUaGUgPGEgaHJlZj1cImh0dHA6Ly93d3cuZm9vLmNv
bVwiPnd3dy5mb28uY29tPC9hPiBzaG91bGQgYmUgdW5kZXJsaW5lZCBhbmQgdGhlcmUgaXMgYW4g
YW5jaG9yIG5vZGUgY3JlYXRlZCBmb3IgaXQuIjsKKyAgICBpZiAoZXhwZWN0ZWRDb250ZW50cyA9
PSB0YXJnZXREaXYuaW5uZXJIVE1MKQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bG9nJykudGV4dENvbnRlbnQgPSAiUEFTUzogdGhlIGFuY2hvciBmb3IgJ3d3dy5mb28uY29tJyBo
YXMgYmVlbiBjcmVhdGVkLiIKKyAgICBlbHNlCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2cnKS50ZXh0Q29udGVudCA9ICJGYWlsZWQ6IHRoZSBleHBlY3RlZCBjb250ZW50IHdh
cyAnIiArIGV4cGVjdGVkQ29udGVudHMgKyAiJywgYnV0IHRoZSBhY3R1YWwgcmVzdWx0IHdhcyAn
IiArIHRhcmdldERpdi5pbm5lckhUTUwgKyAiJy4iCisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBdXRvbWF0aWNM
aW5rRGV0ZWN0aW9uRW5hYmxlZChmYWxzZSk7Cit9CisKK2Z1bmN0aW9uIHByZXNzS2V5KGtleSkK
K3sKKyAgICBpZiAod2luZG93LktleUV2ZW50KSB7CisgICAgICAgIHZhciBldiA9IGRvY3VtZW50
LmNyZWF0ZUV2ZW50KCJLZXlib2FyZEV2ZW50Iik7CisgICAgICAgIGV2LmluaXRLZXlFdmVudCgi
a2V5cHJlc3MiLCB0cnVlLCB0cnVlLCB3aW5kb3csICAwLDAsMCwwLCAwLCBrZXkuY2hhckNvZGVB
dCgwKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChldik7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgdmFyIGV2ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoIlRleHRFdmVudCIp
OworICAgICAgICBldi5pbml0VGV4dEV2ZW50KCd0ZXh0SW5wdXQnLCB0cnVlLCB0cnVlLCBudWxs
LCBrZXkuY2hhckF0KDApKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5kaXNwYXRjaEV2ZW50KGV2
KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idGVzdCIg
Y29udGVudGVkaXRhYmxlPlRoZSB3d3cuZm9vLmNvbXNob3VsZCBiZSB1bmRlcmxpbmVkIGFuZCB0
aGVyZSBpcyBhbiBhbmNob3Igbm9kZSBjcmVhdGVkIGZvciBpdC48L2Rpdj4KKzxwcmUgaWQ9Imxv
ZyI+PC9wcmU+Cis8L2JvZHk+Cis8c2NyaXB0PgorcnVuVGVzdCgpCis8L3NjcmlwdD4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQJKHJldmlzaW9uIDExNzQ1MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTc4NCw2
ICsxNzg0LDkgQEAgQlVHV0sgU0tJUCA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2lucwogLy8g
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4g
aXNuJ3QgaW1wbGVtZW50ZWQgLSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTcxMjcKIEJVR1dLIFNLSVAgOiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi11c2FnZS5o
dG1sID0gRkFJTAogCisvLyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXV0b21hdGljTGlua0Rl
dGVjdGlvbkVuYWJsZWQgaXNuJ3QgaW1wbGVtZW50ZWQKK0JVR1dLODU0NjMgU0tJUCA6IGVkaXRp
bmcvaW5zZXJ0aW5nL3R5cGluZy1zcGFjZS10by10cmlnZ2VyLXNtYXJ0LWxpbmsuaHRtbCA9IEZB
SUwKKwogLy8gRmFpbHVyZXMgZnJvbSBXZWJLaXQgbWVyZ2UgNTE3MTE6NTE3MjQKIEJVR0NSMzIw
MDMgOiBmYXN0L2pzL3N0cmluZy1wcm9wZXJ0eS1kZWxldGlvbi5odG1sID0gVEVYVAogCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJl
dmlzaW9uIDExNzQ1MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC90ZXN0X2V4cGVjdGF0
aW9ucy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTU2OCwzICs1NjgsNyBAQCBCVUdXSzg2NjM3IDog
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrCiBCVUdXSzg2NjM3IDogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLXF1ZXVlLmh0bWwgPSBURVhUCiBCVUdXSzg2NjM3IDogZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLXNlcXVlbmNlbnVtLmh0bWwgPSBURVhUCiBCVUdXSzg2NjM3IDogZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXItZGVzY3JpcHRpb24uaHRtbCA9IFRFWFQKKwor
Ly8gRUZMJ3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgZG9lcyBub3QgaW1wbGVtZW50IHNldEF1dG9t
YXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkCitCVUdXSzg1NDYzIFNLSVAgOiBlZGl0aW5nL2luc2Vy
dGluZy90eXBpbmctc3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5rLmh0bWwgPSBGQUlMCisKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAko
cmV2aXNpb24gMTE3NDUwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDYgKzE3MCw5IEBAIEJVR1dLR1RLIFNL
SVAgOiBmYXN0L2V2ZW50cy9jbGlwYm9hcmQtZGEKIEJVR1dLR1RLIFNLSVAgOiBmYXN0L2V2ZW50
cy9kcmFnLWRhdGFUcmFuc2Zlckl0ZW1MaXN0Lmh0bWwgPSBGQUlMCiBCVUdXS0dUSyBTS0lQIDog
ZmFzdC9ldmVudHMvZHJhZy1kYXRhVHJhbnNmZXJJdGVtTGlzdC1maWxlLWhhbmRsaW5nLmh0bWwg
PSBGQUlMCiAKKy8vIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkIGlzIG5vdCB5ZXQg
aW1wbGVtZW50ZWQuCitCVUdXSzg1NDYzIFNLSVAgOiBlZGl0aW5nL2luc2VydGluZy90eXBpbmct
c3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5rLmh0bWwgPSBGQUlMCisKIC8vIEN1c3RvbSBNSU1F
IHR5cGUgc3VwcG9ydCBpbiBEYXRhVHJhbnNmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KIEJV
R1dLR1RLIFNLSVAgOiBlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRt
bCA9IEZBSUwKIEJVR1dLR1RLIFNLSVAgOiBmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRt
bCA9IEZBSUwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gMTE3NDUwKQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMjQ4
NCwzICsyNDg0LDYgQEAgZmFzdC9tdWx0aWNvbC9zcGxpdC1pbi10b3AtbWFyZ2luLmh0bWwKICMg
TW9kaWZpZWQgdGVzdCBmYWlscyBvbiBRdCBhZnRlciByMTE3MTIzCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjQzMwogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LXNyYy1yZWRpcmVjdC5odG1sCisKKy8vIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCBpc24ndCBpbXBs
ZW1lbnRlZAorZWRpdGluZy9pbnNlcnRpbmcvdHlwaW5nLXNwYWNlLXRvLXRyaWdnZXItc21hcnQt
bGluay5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvdGVzdF9leHBlY3Rh
dGlvbnMudHh0CShyZXZpc2lvbiAxMTc0NTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC90
ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcyLDMgKzcyLDYgQEAgQlVH
V0s4NTU4MCBTS0lQIDogZmFzdC9jc3MvdmFyaWFibGVzID0gUAogLy8gTmVlZHMgcmViYXNlbGlu
ZSBhZnRlciBidWcgODY0NDEKIEJVR1dLODY0NDEgOiBmYXN0L2JvcmRlcnMvYm9yZGVyLWFudGlh
bGlhc2luZy5odG1sID0gSU1BR0UKIEJVR1dLODY0NDEgOiBmYXN0L211bHRpY29sL3NoYWRvdy1i
cmVha2luZy5odG1sID0gSU1BR0UKKworLy8gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9t
YXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkIGlzbid0IGltcGxlbWVudGVkCitCVUdXSzg1NDYzIFNL
SVAgOiBlZGl0aW5nL2luc2VydGluZy90eXBpbmctc3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5r
Lmh0bWwgPSBGQUlMCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkocmV2aXNpb24gMTE3
NDUwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHdvcmtpbmcgY29weSkK
QEAgLTY1Myw2ICs2NTMsOSBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9hZC1vbmxv
YWRzCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9hZC1wcm9ncmVzcy1ldmVudHMuaHRt
bAogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC91cGxvYWQtb25wcm9ncmVzcy1ldmVudC5odG1s
CiAKKy8vIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5h
YmxlZCBpc24ndCBpbXBsZW1lbnRlZAorZWRpdGluZy9pbnNlcnRpbmcvdHlwaW5nLXNwYWNlLXRv
LXRyaWdnZXItc21hcnQtbGluay5odG1sCisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIFN0YXJ0IGxpc3Qgb2YgcjQxOTk1IGZhaWx1cmVzICMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
</data>
<flag name="commit-queue"
          id="148835"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142497</attachid>
            <date>2012-05-17 10:17:50 -0700</date>
            <delta_ts>2012-05-18 02:58:45 -0700</delta_ts>
            <desc>fix style and build issues</desc>
            <filename>85463v3.patch</filename>
            <type>text/plain</type>
            <size>20728</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA1LTE3ICBZaSBTaGVu
ICA8eWkuNC5zaGVuQG5va2lhLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTAyNTUzKTog
U21hcnQgbGlua3MgZG8gbm90IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg1NDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVG8gZml4IHRoZSByZWdyZXNzaW9uIG9mIHNtYXJ0IGxpbmtzLCB3ZSBu
ZWVkIHRvIGNoZWNrIFRleHRDaGVja2luZ1R5cGVMaW5rIG9wdGlvbiBpbgorICAgICAgICBFZGl0
b3I6Om1hcmtBbmRSZXBsYWNlRm9yKCkuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9pbnNlcnRp
bmcvdHlwaW5nLXNwYWNlLXRvLXRyaWdnZXItc21hcnQtbGluay5odG1sCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Om1hcmtBbmRSZXBs
YWNlRm9yKToKKwogMjAxMi0wNS0xNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBjcmVhdGUgU291cmNlRnJhbWVzIHdpdGgg
Y29udGVudCBwcm92aWRlcnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZp
c2lvbiAxMTc0NTApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE5OTYsNiArMTk5Niw3IEBAIHZvaWQgRWRpdG9yOjptYXJrQW5kUmVwbGFj
ZUZvcihQYXNzUmVmUHQKIAogICAgIGJvb2wgc2hvdWxkTWFya1NwZWxsaW5nID0gdGV4dENoZWNr
aW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVTcGVsbGluZzsKICAgICBib29sIHNob3VsZE1h
cmtHcmFtbWFyID0gdGV4dENoZWNraW5nT3B0aW9ucyAmIFRleHRDaGVja2luZ1R5cGVHcmFtbWFy
OworICAgIGJvb2wgc2hvdWxkTWFya0xpbmsgPSB0ZXh0Q2hlY2tpbmdPcHRpb25zICYgVGV4dENo
ZWNraW5nVHlwZUxpbms7CiAgICAgYm9vbCBzaG91bGRQZXJmb3JtUmVwbGFjZW1lbnQgPSB0ZXh0
Q2hlY2tpbmdPcHRpb25zICYgVGV4dENoZWNraW5nVHlwZVJlcGxhY2VtZW50OwogICAgIGJvb2wg
c2hvdWxkU2hvd0NvcnJlY3Rpb25QYW5lbCA9IHRleHRDaGVja2luZ09wdGlvbnMgJiBUZXh0Q2hl
Y2tpbmdUeXBlU2hvd0NvcnJlY3Rpb25QYW5lbDsKICAgICBib29sIHNob3VsZENoZWNrRm9yQ29y
cmVjdGlvbiA9IHNob3VsZFNob3dDb3JyZWN0aW9uUGFuZWwgfHwgKHRleHRDaGVja2luZ09wdGlv
bnMgJiBUZXh0Q2hlY2tpbmdUeXBlQ29ycmVjdGlvbik7CkBAIC0yMDgwLDcgKzIwODEsNyBAQCB2
b2lkIEVkaXRvcjo6bWFya0FuZFJlcGxhY2VGb3IoUGFzc1JlZlB0CiAgICAgICAgICAgICBpZiAo
cmVzdWx0LT50eXBlID09IFRleHRDaGVja2luZ1R5cGVMaW5rICYmIHNlbGVjdGlvbk9mZnNldCA+
IHJlc3VsdExvY2F0aW9uICsgcmVzdWx0TGVuZ3RoICsgMSkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICAgICAgaWYgKCEoc2hvdWxkUGVyZm9ybVJlcGxhY2VtZW50IHx8IHNo
b3VsZFNob3dDb3JyZWN0aW9uUGFuZWwpIHx8ICFkb1JlcGxhY2VtZW50KQorICAgICAgICAgICAg
aWYgKCEoc2hvdWxkUGVyZm9ybVJlcGxhY2VtZW50IHx8IHNob3VsZFNob3dDb3JyZWN0aW9uUGFu
ZWwgfHwgc2hvdWxkTWFya0xpbmspIHx8ICFkb1JlcGxhY2VtZW50KQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogCiAgICAgICAgICAgICBTdHJpbmcgcmVwbGFjZWRTdHJpbmcgPSBwbGFpblRl
eHQocmFuZ2VUb1JlcGxhY2UuZ2V0KCkpOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTE3NDU3KQorKysgVG9vbHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAKKzIwMTItMDUtMTcgIFlpIFNoZW4g
IDx5aS40LnNoZW5Abm9raWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxMDI1NTMpOiBT
bWFydCBsaW5rcyBkbyBub3Qgd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODU0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtE
ZXRlY3Rpb25FbmFibGVkKCkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxl
ZENhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlv
bnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
YmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKTog
Tm90IGltcGxlbWVudGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRB
dXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCk6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9M
YXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOiBOb3QgaW1wbGVtZW50ZWQuCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9u
RW5hYmxlZCk6IE5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOiBTZXQgYXV0b21hdGljIGxpbmsg
ZGV0ZWN0aW9uIGVuYWJsZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXV0
b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRU
ZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOiBOb3QgaW1wbGVtZW50ZWQuCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQp
OiBOb3QgaW1wbGVtZW50ZWQuCisKIDIwMTItMDUtMTcgIExpIFlpbiAgPGxpLnlpbkBpbnRlbC5j
b20+CiAKICAgICAgICAgW2Nocm9taXVtXSBydW4td2Via2l0LXRlc3RzIGNhbid0IHdvcmsgb24g
dWJ1bnR1IDEyLjA0CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxMTc0NTApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MTcsNiArMTcxNywx
NiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTbWFydEluc2VydERlbGV0ZUVuCiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKworICAgIExheW91dFRlc3RDb250cm9s
bGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09i
amVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldEF1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRz
WzBdKSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBz
dGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENvdW50
IDwgMSkKQEAgLTIzNjUsNiArMjM3NSw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RD
b250cm9sbGVyOjoKICAgICAgICAgeyAic2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
cyIsIHNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXNDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzZXRJY29uRGF0YWJhc2VFbmFibGVkIiwgc2V0SWNvbkRhdGFiYXNlRW5hYmxl
ZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkIiwgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAg
ICAgICB7ICJzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCIsIHNldEF1dG9tYXRpY0xp
bmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TWFpbkZy
YW1lSXNGaXJzdFJlc3BvbmRlciIsIHNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXJDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCIsIHNldE1pbmlt
dW1UaW1lckludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TW9ja0Rldmlj
ZU9yaWVudGF0aW9uIiwgc2V0TW9ja0RldmljZU9yaWVudGF0aW9uQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2
aXNpb24gMTE3NDUwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBpY29uRGF0YWJhc2VFbmFibGVkKTsKICAgICB2
b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wgcHJvZmlsaW5nRW5hYmxlZCk7
CiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGJvb2wgZmxhZyk7Cisg
ICAgdm9pZCBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChib29sIGZsYWcpOwogICAg
IHZvaWQgc2V0TWFpbkZyYW1lSXNGaXJzdFJlc3BvbmRlcihib29sIGZsYWcpOwogICAgIHZvaWQg
c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxw
aGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1t
YSwgZG91YmxlIGdhbW1hKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGludCBj
b2RlLCBKU1N0cmluZ1JlZiBtZXNzYWdlKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxh
Y2tCZXJyeS5jcHAJKHJldmlzaW9uIDExNzQ1MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODgyLDMgKzg4Miw4IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBhZ2VW
aXNpYmkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCit2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChib29sKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxMTc0NTApCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyMDgsNiArMjIwOCwxMSBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRQYWdlVmlzaWJpCiAgICAgfQogfQogCit2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChib29sKQoreworICAgIC8vIE5v
dCBJbXBsZW1lbnRlZAorfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRUZXh0RGly
ZWN0aW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1
bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDEx
NzQ1MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyOSw2ICs0MjksOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNlbGVjdGlvbkFzTWFya3VwKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKIAorICAgIC8vIFN3aXRjaCB0aGUgbGluayBkZXRlY3Rpb24uCisgICAgdm9pZCBzZXRBdXRv
bWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChib29sKTsKKwogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5bmNocm9ub3Vz
bHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpJbmRleDogVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCShy
ZXZpc2lvbiAxMTc0NTApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENv
bnRyb2xsZXJFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDUsMyArODQ1LDggQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UGFnZVZpc2liaQogICAgIGVsc2UgaWYgKG5ld1Zpc2li
aWxpdHkgPT0gInByZXZpZXciKQogICAgICAgICBld2tfdmlld192aXNpYmlsaXR5X3N0YXRlX3Nl
dChicm93c2VyLT5tYWluVmlldygpLCBFV0tfUEFHRV9WSVNJQklMSVRZX1NUQVRFX1BSRVZJRVcs
IGZhbHNlKTsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXV0b21hdGljTGlu
a0RldGVjdGlvbkVuYWJsZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwCShyZXZpc2lvbiAxMTc0NTApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIyLDMgKzEw
MjIsOCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQYWdlVmlzaWJpCiB7CiAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChib29sKQoreworICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgdGhpcy4KK30KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlv
dXRUZXN0Q29udHJvbGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDExNzQ1MCkKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNjE0LDYgKzYxNCwxMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRKYXZhU2NyaXB0CiAgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIHByZWZlcmVuY2VzXSBzZXRK
YXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOmVuYWJsZWRdOwogfQogCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChib29sIGVuYWJs
ZWQpCit7CisgICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0QXV0b21hdGljTGlua0RldGVjdGlv
bkVuYWJsZWQ6ZW5hYmxlZF07Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRh
YktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sIGN5Y2xlcykKIHsKICAgICBbW21haW5GcmFt
ZSB3ZWJWaWV3XSBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHM6Y3ljbGVzXTsKSW5kZXg6
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
Y3BwCShyZXZpc2lvbiAxMTc0NTApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTY5LDYgKzk2OSwxMSBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQYWdlVmlzaWJpCiAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0aGlzLgogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRvbWF0
aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChib29sKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
dGhpcy4KK30KKwogUVN0cmluZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bGF5ZXJUcmVlQXNUZXh0
KCkKIHsKICAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmxheWVyVHJlZUFzVGV4
dChtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKSk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCShyZXZpc2lvbiAxMTc0NTAp
CisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTIzOSw2ICsyMzksOCBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBz
ZXRQYWdlVmlzaWJpbGl0eShjb25zdCBjaGFyKik7CiAgICAgdm9pZCByZXNldFBhZ2VWaXNpYmls
aXR5KCk7CiAKKyAgICB2b2lkIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGJvb2wp
OworCiAgICAgLy8gRW1wdHkgc3R1YiBtZXRob2QgdG8ga2VlcCBwYXJpdHkgd2l0aCBvYmplY3Qg
bW9kZWwgZXhwb3NlZCBieSBnbG9iYWwgTGF5b3V0VGVzdENvbnRyb2xsZXIuCiAgICAgdm9pZCBh
Ym9ydE1vZGFsKCkge30KIApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRl
c3RDb250cm9sbGVyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCShyZXZpc2lvbiAxMTc0NTApCisrKyBUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTE3LDMgKzE1MTcsOCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRQYWdlVmlzaWJpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogfQorCit2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChi
b29sKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCShyZXZp
c2lvbiAxMTc0NTApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJv
bGxlcld4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQyLDMgKzY0Miw4IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFBhZ2VWaXNpYmkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRoaXMuCiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtE
ZXRlY3Rpb25FbmFibGVkKGJvb2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgor
fQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTE3NDU3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDUtMTcgIFlpIFNoZW4gIDx5aS40
LnNoZW5Abm9raWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxMDI1NTMpOiBTbWFydCBs
aW5rcyBkbyBub3Qgd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODU0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSBuZXcgdGVzdCBmb3IgdGVzdGluZyB0aGUgc21hcnQgbGluay4KKworICAg
ICAgICAqIGVkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1zcGFjZS10by10cmlnZ2VyLXNtYXJ0LWxp
bmstZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2luc2VydGluZy90eXBp
bmctc3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5rLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvdGVzdF9leHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay90ZXN0
X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vd2luL1NraXBwZWQ6CisKIDIwMTItMDUtMTcgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2Vr
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBhZGRpbmcgR1RLIGJhc2VsaW5lcyBm
b3IgbmV3IHRlc3RzIGFkZGVkIGluIHIxMTU2NDEsIHIxMTY5NzUgYW5kIHIxMTczMzkuCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy90eXBpbmctc3BhY2UtdG8tdHJpZ2dlci1z
bWFydC1saW5rLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5n
L2luc2VydGluZy90eXBpbmctc3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5rLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1z
cGFjZS10by10cmlnZ2VyLXNtYXJ0LWxpbmstZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIgQEAKK1RoZSB3d3cuZm9vLmNvbSBzaG91bGQgYmUgdW5kZXJsaW5lZCBhbmQgdGhl
cmUgaXMgYW4gYW5jaG9yIG5vZGUgY3JlYXRlZCBmb3IgaXQuCitQQVNTOiB0aGUgYW5jaG9yIGZv
ciAnd3d3LmZvby5jb20nIGhhcyBiZWVuIGNyZWF0ZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0
aW5nL2luc2VydGluZy90eXBpbmctc3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5rLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvdHlwaW5nLXNwYWNlLXRv
LXRyaWdnZXItc21hcnQtbGluay5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9pbnNlcnRpbmcvdHlwaW5nLXNwYWNlLXRvLXRyaWdnZXItc21hcnQtbGluay5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEF1dG9tYXRpY0xpbmtEZXRl
Y3Rpb25FbmFibGVkKHRydWUpOworICAgIH0KKworICAgIHZhciB0YXJnZXREaXYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOworICAgIHZhciB0YXJnZXRUZXh0ID0gdGFyZ2V0RGl2
LmZpcnN0Q2hpbGQ7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHRhcmdl
dFRleHQsIDE1KTsKKyAgICBwcmVzc0tleSgiICIpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2cnKS50ZXh0Q29udGVudCA9IHRhcmdldERpdi5pbm5lckhUTUw7CisgICAgdmFyIGV4
cGVjdGVkQ29udGVudHMgPSAiVGhlIDxhIGhyZWY9XCJodHRwOi8vd3d3LmZvby5jb21cIj53d3cu
Zm9vLmNvbTwvYT4gc2hvdWxkIGJlIHVuZGVybGluZWQgYW5kIHRoZXJlIGlzIGFuIGFuY2hvciBu
b2RlIGNyZWF0ZWQgZm9yIGl0LiI7CisgICAgaWYgKGV4cGVjdGVkQ29udGVudHMgPT0gdGFyZ2V0
RGl2LmlubmVySFRNTCkKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLnRl
eHRDb250ZW50ID0gIlBBU1M6IHRoZSBhbmNob3IgZm9yICd3d3cuZm9vLmNvbScgaGFzIGJlZW4g
Y3JlYXRlZC4iCisgICAgZWxzZQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9n
JykudGV4dENvbnRlbnQgPSAiRmFpbGVkOiB0aGUgZXhwZWN0ZWQgY29udGVudCB3YXMgJyIgKyBl
eHBlY3RlZENvbnRlbnRzICsgIicsIGJ1dCB0aGUgYWN0dWFsIHJlc3VsdCB3YXMgJyIgKyB0YXJn
ZXREaXYuaW5uZXJIVE1MICsgIicuIgorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXV0b21hdGljTGlua0RldGVj
dGlvbkVuYWJsZWQoZmFsc2UpOworfQorCitmdW5jdGlvbiBwcmVzc0tleShrZXkpCit7CisgICAg
aWYgKHdpbmRvdy5LZXlFdmVudCkgeworICAgICAgICB2YXIgZXYgPSBkb2N1bWVudC5jcmVhdGVF
dmVudCgiS2V5Ym9hcmRFdmVudCIpOworICAgICAgICBldi5pbml0S2V5RXZlbnQoImtleXByZXNz
IiwgdHJ1ZSwgdHJ1ZSwgd2luZG93LCAgMCwwLDAsMCwgMCwga2V5LmNoYXJDb2RlQXQoMCkpOwor
ICAgICAgICBkb2N1bWVudC5ib2R5LmRpc3BhdGNoRXZlbnQoZXYpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHZhciBldiA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJUZXh0RXZlbnQiKTsKKyAgICAg
ICAgZXYuaW5pdFRleHRFdmVudCgndGV4dElucHV0JywgdHJ1ZSwgdHJ1ZSwgbnVsbCwga2V5LmNo
YXJBdCgwKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuZGlzcGF0Y2hFdmVudChldik7CisgICAg
fQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRlc3QiIGNvbnRlbnRl
ZGl0YWJsZT5UaGUgd3d3LmZvby5jb21zaG91bGQgYmUgdW5kZXJsaW5lZCBhbmQgdGhlcmUgaXMg
YW4gYW5jaG9yIG5vZGUgY3JlYXRlZCBmb3IgaXQuPC9kaXY+Cis8cHJlIGlkPSJsb2ciPjwvcHJl
PgorPC9ib2R5PgorPHNjcmlwdD4KK3J1blRlc3QoKQorPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CShyZXZpc2lvbiAxMTc0NTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3ODQsNiArMTc4NCw5
IEBAIEJVR1dLIFNLSVAgOiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbnMKIC8vIExheW91dFRl
c3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIGlzbid0IGlt
cGxlbWVudGVkIC0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3
CiBCVUdXSyBTS0lQIDogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbCA9IEZB
SUwKIAorLy8gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25F
bmFibGVkIGlzbid0IGltcGxlbWVudGVkCitCVUdXSzg1NDYzIFNLSVAgOiBlZGl0aW5nL2luc2Vy
dGluZy90eXBpbmctc3BhY2UtdG8tdHJpZ2dlci1zbWFydC1saW5rLmh0bWwgPSBGQUlMCisKIC8v
IEZhaWx1cmVzIGZyb20gV2ViS2l0IG1lcmdlIDUxNzExOjUxNzI0CiBCVUdDUjMyMDAzIDogZmFz
dC9qcy9zdHJpbmctcHJvcGVydHktZGVsZXRpb24uaHRtbCA9IFRFWFQKIApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvdGVzdF9leHBlY3RhdGlvbnMudHh0CShyZXZpc2lvbiAx
MTc0NTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvdGVzdF9leHBlY3RhdGlvbnMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC01NjgsMyArNTY4LDcgQEAgQlVHV0s4NjYzNyA6IGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjawogQlVHV0s4NjYzNyA6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1xdWV1ZS5odG1sID0gVEVYVAogQlVHV0s4NjYzNyA6IGVkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1zZXF1ZW5jZW51bS5odG1sID0gVEVYVAogQlVHV0s4NjYzNyA6IGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLmh0bWwgPSBURVhUCisKKy8vIEVGTCdz
IExheW91dFRlc3RDb250cm9sbGVyIGRvZXMgbm90IGltcGxlbWVudCBzZXRBdXRvbWF0aWNMaW5r
RGV0ZWN0aW9uRW5hYmxlZAorQlVHV0s4NTQ2MyBTS0lQIDogZWRpdGluZy9pbnNlcnRpbmcvdHlw
aW5nLXNwYWNlLXRvLXRyaWdnZXItc21hcnQtbGluay5odG1sID0gRkFJTAorCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlzaW9u
IDExNzQ1MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw2ICsxNzAsOSBAQCBCVUdXS0dUSyBTS0lQIDogZmFz
dC9ldmVudHMvY2xpcGJvYXJkLWRhCiBCVUdXS0dUSyBTS0lQIDogZmFzdC9ldmVudHMvZHJhZy1k
YXRhVHJhbnNmZXJJdGVtTGlzdC5odG1sID0gRkFJTAogQlVHV0tHVEsgU0tJUCA6IGZhc3QvZXZl
bnRzL2RyYWctZGF0YVRyYW5zZmVySXRlbUxpc3QtZmlsZS1oYW5kbGluZy5odG1sID0gRkFJTAog
CisvLyBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCBpcyBub3QgeWV0IGltcGxlbWVu
dGVkLgorQlVHV0s4NTQ2MyBTS0lQIDogZWRpdGluZy9pbnNlcnRpbmcvdHlwaW5nLXNwYWNlLXRv
LXRyaWdnZXItc21hcnQtbGluay5odG1sID0gRkFJTAorCiAvLyBDdXN0b20gTUlNRSB0eXBlIHN1
cHBvcnQgaW4gRGF0YVRyYW5zZmVyIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCiBCVUdXS0dUSyBT
S0lQIDogZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLmh0bWwgPSBGQUlM
CiBCVUdXS0dUSyBTS0lQIDogZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwgPSBGQUlM
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDExNzQ1MCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTI0ODQsMyArMjQ4
NCw2IEBAIGZhc3QvbXVsdGljb2wvc3BsaXQtaW4tdG9wLW1hcmdpbi5odG1sCiAjIE1vZGlmaWVk
IHRlc3QgZmFpbHMgb24gUXQgYWZ0ZXIgcjExNzEyMwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODY0MzMKIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3NjcmlwdC1zcmMtcmVkaXJlY3QuaHRtbAorCisvLyBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQgaXNuJ3QgaW1wbGVtZW50ZWQK
K2VkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1zcGFjZS10by10cmlnZ2VyLXNtYXJ0LWxpbmsuaHRt
bApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAkocmV2aXNpb24gMTE3NDUwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvdGVzdF9leHBl
Y3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03MiwzICs3Miw2IEBAIEJVR1dLODU1ODAg
U0tJUCA6IGZhc3QvY3NzL3ZhcmlhYmxlcyA9IFAKIC8vIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIg
YnVnIDg2NDQxCiBCVUdXSzg2NDQxIDogZmFzdC9ib3JkZXJzL2JvcmRlci1hbnRpYWxpYXNpbmcu
aHRtbCA9IElNQUdFCiBCVUdXSzg2NDQxIDogZmFzdC9tdWx0aWNvbC9zaGFkb3ctYnJlYWtpbmcu
aHRtbCA9IElNQUdFCisKKy8vIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBdXRvbWF0aWNMaW5r
RGV0ZWN0aW9uRW5hYmxlZCBpc24ndCBpbXBsZW1lbnRlZAorQlVHV0s4NTQ2MyBTS0lQIDogZWRp
dGluZy9pbnNlcnRpbmcvdHlwaW5nLXNwYWNlLXRvLXRyaWdnZXItc21hcnQtbGluay5odG1sID0g
RkFJTApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHJldmlzaW9uIDExNzQ1MCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC02NTMs
NiArNjUzLDkgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC91cGxvYWQtb25sb2FkcwogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC91cGxvYWQtcHJvZ3Jlc3MtZXZlbnRzLmh0bWwKIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvdXBsb2FkLW9ucHJvZ3Jlc3MtZXZlbnQuaHRtbAogCisvLyBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQgaXNu
J3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1zcGFjZS10by10cmlnZ2Vy
LXNtYXJ0LWxpbmsuaHRtbAorCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyBTdGFydCBsaXN0IG9mIHI0MTk5NSBmYWlsdXJlcyAjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCg==
</data>
<flag name="review"
          id="148846"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="148859"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>