<?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>96135</bug_id>
          
          <creation_ts>2012-09-07 11:59:01 -0700</creation_ts>
          <short_desc>[chromium] WebImageSkia shouldn&apos;t use ImageSource</short_desc>
          <delta_ts>2012-09-19 12:17:28 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>94240</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hin-Chung Lam">hclam</reporter>
          <assigned_to name="Hin-Chung Lam">hclam</assigned_to>
          <cc>abarth</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>nick</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>714817</commentid>
    <comment_count>0</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-07 11:59:01 -0700</bug_when>
    <thetext>Preparing for deferred image decoding for Chromium port. ImageSource is used to provide deferred image decoder for BitmapImage. However WebImageSkia also uses it Chromium WebKit API. WebImageSkia should use ImageDecoder directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715065</commentid>
    <comment_count>1</comment_count>
      <attachid>162887</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-07 15:46:32 -0700</bug_when>
    <thetext>Created attachment 162887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721292</commentid>
    <comment_count>2</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-14 18:07:26 -0700</bug_when>
    <thetext>Review ping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722073</commentid>
    <comment_count>3</comment_count>
      <attachid>162887</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-17 11:06:36 -0700</bug_when>
    <thetext>Comment on attachment 162887
Patch

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

&gt; Source/WebKit/chromium/src/WebImageSkia.cpp:55
&gt; +    OwnPtr&lt;ImageDecoder&gt; decoder(adoptPtr(ImageDecoder::create(*buffer.get(), ImageSource::AlphaPremultiplied, ImageSource::GammaAndColorProfileApplied)));

ImageDecoder::create should call adoptPtr itself and return a PassOwnPtr.  You don&apos;t need to fix that in this patch, but I just wanted to mention it.  (Also, we tend to prefer the assignment form of the constructor for readability.

&gt; Source/WebKit/chromium/src/WebImageSkia.cpp:87
&gt; +    OwnPtr&lt;NativeImageSkia&gt; image = adoptPtr(frame-&gt;asNewNativeImage());

asNewNativeImage should probably also return a PassOwnPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723013</commentid>
    <comment_count>4</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-18 13:29:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 162887 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162887&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebImageSkia.cpp:55
&gt; &gt; +    OwnPtr&lt;ImageDecoder&gt; decoder(adoptPtr(ImageDecoder::create(*buffer.get(), ImageSource::AlphaPremultiplied, ImageSource::GammaAndColorProfileApplied)));
&gt; 
&gt; ImageDecoder::create should call adoptPtr itself and return a PassOwnPtr.  You don&apos;t need to fix that in this patch, but I just wanted to mention it.  (Also, we tend to prefer the assignment form of the constructor for readability.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebImageSkia.cpp:87
&gt; &gt; +    OwnPtr&lt;NativeImageSkia&gt; image = adoptPtr(frame-&gt;asNewNativeImage());
&gt; 
&gt; asNewNativeImage should probably also return a PassOwnPtr.

Those are all platform specific implementations. Particularly ImageDecoder::create() on CG is not open-sourced (I can&apos;t find an implementation of it on CG). I&apos;ll file a bug to track this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723014</commentid>
    <comment_count>5</comment_count>
      <attachid>162887</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 13:31:12 -0700</bug_when>
    <thetext>Comment on attachment 162887
Patch

Rejecting attachment 162887 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:
it/chromium/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/chromium/WebKit.gypi
Hunk #1 FAILED at 104.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/chromium/WebKit.gypi.rej
patching file Source/WebKit/chromium/src/WebImageSkia.cpp
patching file Source/WebKit/chromium/tests/WebImageTest.cpp

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;Adam Barth&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/13896303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723019</commentid>
    <comment_count>6</comment_count>
      <attachid>164613</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-18 13:36:45 -0700</bug_when>
    <thetext>Created attachment 164613
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723020</commentid>
    <comment_count>7</comment_count>
      <attachid>164613</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 13:39:22 -0700</bug_when>
    <thetext>Comment on attachment 164613
Patch for landing

Rejecting attachment 164613 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:
(s).
patching file Source/WebKit/chromium/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/chromium/WebKit.gypi
Hunk #1 FAILED at 101.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/chromium/WebKit.gypi.rej
patching file Source/WebKit/chromium/src/WebImageSkia.cpp
patching file Source/WebKit/chromium/tests/WebImageTest.cpp

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

Full output: http://queues.webkit.org/results/13903245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723026</commentid>
    <comment_count>8</comment_count>
      <attachid>164614</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-18 13:44:20 -0700</bug_when>
    <thetext>Created attachment 164614
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723028</commentid>
    <comment_count>9</comment_count>
      <attachid>164614</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 13:46:28 -0700</bug_when>
    <thetext>Comment on attachment 164614
Patch for landing

Rejecting attachment 164614 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:
(s).
patching file Source/WebKit/chromium/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/chromium/WebKit.gypi
Hunk #1 FAILED at 101.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/chromium/WebKit.gypi.rej
patching file Source/WebKit/chromium/src/WebImageSkia.cpp
patching file Source/WebKit/chromium/tests/WebImageTest.cpp

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

Full output: http://queues.webkit.org/results/13900292</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723030</commentid>
    <comment_count>10</comment_count>
      <attachid>164615</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-18 13:50:00 -0700</bug_when>
    <thetext>Created attachment 164615
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723094</commentid>
    <comment_count>11</comment_count>
      <attachid>164615</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 15:29:31 -0700</bug_when>
    <thetext>Comment on attachment 164615
Patch for landing

Clearing flags on attachment: 164615

Committed r128939: &lt;http://trac.webkit.org/changeset/128939&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723095</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-18 15:29:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723123</commentid>
    <comment_count>13</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-18 16:19:50 -0700</bug_when>
    <thetext>Reverted r128939 for reason:

Failing test_shell_tests

Committed r128942: &lt;http://trac.webkit.org/changeset/128942&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723142</commentid>
    <comment_count>14</comment_count>
      <attachid>164637</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-18 17:26:20 -0700</bug_when>
    <thetext>Created attachment 164637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723143</commentid>
    <comment_count>15</comment_count>
      <attachid>164638</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-18 17:27:50 -0700</bug_when>
    <thetext>Created attachment 164638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723145</commentid>
    <comment_count>16</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-18 17:29:29 -0700</bug_when>
    <thetext>Please have another look. Patch was reverted because of a crash and bug is fixed in latest patch. I also added a test case to catch the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723680</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-19 11:22:49 -0700</bug_when>
    <thetext>&gt; Particularly ImageDecoder::create() on CG is not open-sourced (I can&apos;t find an implementation of it on CG). I&apos;ll file a bug to track this.

Ports that use CG don&apos;t use ImageDecoder::create.  Thanks for filing the bugs about changing these functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723690</commentid>
    <comment_count>18</comment_count>
      <attachid>164759</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-09-19 11:40:49 -0700</bug_when>
    <thetext>Created attachment 164759
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723715</commentid>
    <comment_count>19</comment_count>
      <attachid>164759</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 12:17:24 -0700</bug_when>
    <thetext>Comment on attachment 164759
Patch for landing

Clearing flags on attachment: 164759

Committed r129032: &lt;http://trac.webkit.org/changeset/129032&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723716</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 12:17:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162887</attachid>
            <date>2012-09-07 15:46:32 -0700</date>
            <delta_ts>2012-09-18 13:36:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96135-20120907154611.patch</filename>
            <type>text/plain</type>
            <size>10750</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDdmMWRhYjY2MDA3OTZiYmU0MDQyMDA4ZDM1YjYwOWJkODg2ZWI1YzEuLjhjNTQ4NDZkYTYwOTcy
Y2Y0M2I3MDNjNTJhOGVmMjY5N2ZlN2I0Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTItMDktMDcgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFdlYkltYWdlIHNob3VsZCB1c2UgSW1hZ2VEZWNvZGVy
IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaXMgZm9yIHByZXBhcmF0aW9uIG9mIGRlZmVycmVkIGltYWdlIGRlY29kaW5n
LgorICAgICAgICBJbWFnZVNvdXJjZSB3aWxsIGJlIHVzZWQgYXMgYSBwb3J0YWwgdG8gYWNjZXNz
IGRlZmVycmVkIGltYWdlIGRlY29kZXIKKyAgICAgICAgYnkgQml0bWFwSW1hZ2UsIGl0IHNob3Vs
ZCBub3QgYmUgYWNjZXNzaWJsZSB0aHJvdWdoIFdlYktpdCBBUElzLgorCisgICAgICAgIFdlYklt
YWdlIG5vdyBjYWxscyBJbWFnZURlY29kZXIgZGlyZWN0bHkgd2hpY2ggaXMgdGhlIGFjdHVhbAor
ICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBhbiBpbWFnZSBkZWNvZGVyLgorCisgICAgICAgIFRl
c3RzOiBXZWJJbWFnZVRlc3QuUE5HSW1hZ2UKKyAgICAgICAgICAgICAgIFdlYkltYWdlVGVzdC5J
Q09JbWFnZQorCisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogc3JjL1dlYkltYWdl
U2tpYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkltYWdlOjpmcm9tRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkltYWdlOjpmcmFtZXNGcm9tRGF0YSk6CisgICAgICAgICogdGVzdHMvV2Vi
SW1hZ2VUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpyZWFkRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL2Rh
dGEvYmxhY2stYW5kLXdoaXRlLmljbzogQWRkZWQuCisgICAgICAgICogdGVzdHMvZGF0YS93aGl0
ZS0xeDEucG5nOiBBZGRlZC4KKwogMjAxMi0wOS0wNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRG9uJ3QgbGluayBjYyBpbiB0byBX
ZWJLaXQuZGxsIHdoZW4gdXNlX2xpYmNjX2Zvcl9jb21wb3NpdG9yPTEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXBpCmluZGV4IDZkMDE1ZWVjMzMzYmYyMmM3MjQ0NzJmYThhY2RlMDdhZTM2OTAx
YmEuLjZjZDE3ODUyZmFjZjM0NzZkYjRiYTE0Y2E0YTRkMjRmNDkwM2RjZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtMTA0LDYgKzEwNCw3IEBACiAgICAgICAgICAgICAndGVz
dHMvV2ViQ29tcG9zaXRvckluaXRpYWxpemVyLmgnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYkNv
bXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dl
YkZyYW1lVGVzdC5jcHAnLAorICAgICAgICAgICAgJ3Rlc3RzL1dlYkltYWdlVGVzdC5jcHAnLAog
ICAgICAgICAgICAgJ3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbFRlc3QuY3BwJywKICAg
ICAgICAgICAgICd0ZXN0cy9XZWJQYWdlTmV3U2VyaWFsaXplclRlc3QuY3BwJywKICAgICAgICAg
ICAgICd0ZXN0cy9XZWJQYWdlU2VyaWFsaXplclRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwCmluZGV4IGUxYTkyNjA1MDYyODFkODlhMjhmYTBj
ZDI0MDMzZDAzOTcxODA1YzcuLmE3NThjZmMyYjAzOThlMTI5YWM5N2ZmNDM5ZmE1MWRlNDY0YWYx
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcApAQCAt
MzEsNyArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiSW1hZ2UuaCIK
LSNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgorI2luY2x1ZGUgIkltYWdlRGVjb2Rlci5oIgogI2lu
Y2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogCkBA
IC01MSwxOSArNTEsMjAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkltYWdlIFdlYkltYWdl
Ojpmcm9tRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJTaXplJiBkZXNpcmVkU2l6
ZSkKIHsKLSAgICBJbWFnZVNvdXJjZSBzb3VyY2U7Ci0gICAgc291cmNlLnNldERhdGEoUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+KGRhdGEpLmdldCgpLCB0cnVlKTsKLSAgICBpZiAoIXNvdXJjZS5p
c1NpemVBdmFpbGFibGUoKSkKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSk7CisgICAgT3duUHRyPEltYWdlRGVjb2Rlcj4gZGVj
b2RlcihhZG9wdFB0cihJbWFnZURlY29kZXI6OmNyZWF0ZSgqYnVmZmVyLmdldCgpLCBJbWFnZVNv
dXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVkLCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2Zp
bGVBcHBsaWVkKSkpOworICAgIGRlY29kZXItPnNldERhdGEoYnVmZmVyLmdldCgpLCB0cnVlKTsK
KyAgICBpZiAoIWRlY29kZXItPmlzU2l6ZUF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gV2Vi
SW1hZ2UoKTsKIAogICAgIC8vIEZyYW1lcyBhcmUgYXJyYW5nZWQgYnkgZGVjcmVhc2luZyBzaXpl
LCB0aGVuIGRlY3JlYXNpbmcgYml0IGRlcHRoLgogICAgIC8vIFBpY2sgdGhlIGZyYW1lIGNsb3Nl
c3QgdG8gfGRlc2lyZWRTaXplfCdzIGFyZWEgd2l0aG91dCBiZWluZyBzbWFsbGVyLAogICAgIC8v
IHdoaWNoIGhhcyB0aGUgaGlnaGVzdCBiaXQgZGVwdGguCi0gICAgY29uc3Qgc2l6ZV90IGZyYW1l
Q291bnQgPSBzb3VyY2UuZnJhbWVDb3VudCgpOworICAgIGNvbnN0IHNpemVfdCBmcmFtZUNvdW50
ID0gZGVjb2Rlci0+ZnJhbWVDb3VudCgpOwogICAgIHNpemVfdCBpbmRleCA9IDA7ICAvLyBEZWZh
dWx0IHRvIGZpcnN0IGZyYW1lIGlmIG5vbmUgYXJlIGxhcmdlIGVub3VnaC4KICAgICBpbnQgZnJh
bWVBcmVhQXRJbmRleCA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFtZUNvdW50
OyArK2kpIHsKLSAgICAgICAgY29uc3QgSW50U2l6ZSBmcmFtZVNpemUgPSBzb3VyY2UuZnJhbWVT
aXplQXRJbmRleChpKTsKKyAgICAgICAgY29uc3QgSW50U2l6ZSBmcmFtZVNpemUgPSBkZWNvZGVy
LT5mcmFtZVNpemVBdEluZGV4KGkpOwogICAgICAgICBpZiAoV2ViU2l6ZShmcmFtZVNpemUpID09
IGRlc2lyZWRTaXplKSB7CiAgICAgICAgICAgICBpbmRleCA9IGk7CiAgICAgICAgICAgICBicmVh
azsgIC8vIFBlcmZlY3QgbWF0Y2guCkBAIC03OSwxMSArODAsMTUgQEAgV2ViSW1hZ2UgV2ViSW1h
Z2U6OmZyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEsIGNvbnN0IFdlYlNpemUmIGRlc2lyZWRT
aXplKQogICAgICAgICB9CiAgICAgfQogCi0gICAgT3duUHRyPE5hdGl2ZUltYWdlU2tpYT4gZnJh
bWUgPSBhZG9wdFB0cihzb3VyY2UuY3JlYXRlRnJhbWVBdEluZGV4KGluZGV4KSk7CisgICAgSW1h
Z2VGcmFtZSogZnJhbWUgPSBkZWNvZGVyLT5mcmFtZUJ1ZmZlckF0SW5kZXgoaW5kZXgpOwogICAg
IGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBXZWJJbWFnZSgpOwogCi0gICAgcmV0dXJuIFdl
YkltYWdlKGZyYW1lLT5iaXRtYXAoKSk7CisgICAgT3duUHRyPE5hdGl2ZUltYWdlU2tpYT4gaW1h
Z2UgPSBhZG9wdFB0cihmcmFtZS0+YXNOZXdOYXRpdmVJbWFnZSgpKTsKKyAgICBpZiAoIWltYWdl
KQorICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsKKworICAgIHJldHVybiBXZWJJbWFnZShpbWFn
ZS0+Yml0bWFwKCkpOwogfQogCiBXZWJWZWN0b3I8V2ViSW1hZ2U+IFdlYkltYWdlOjpmcmFtZXNG
cm9tRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhKQpAQCAtOTEsMjYgKzk2LDMxIEBAIFdlYlZlY3Rv
cjxXZWJJbWFnZT4gV2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEp
CiAgICAgLy8gVGhpcyBpcyB0byBwcm90ZWN0IGZyb20gbWFsaWNpb3VzIGltYWdlcy4gSXQgc2hv
dWxkIGJlIGJpZyBlbm91Z2ggdGhhdCBpdCdzIG5ldmVyIGhpdCBpbiBwcmFjaWNlLgogICAgIGNv
bnN0IHNpemVfdCBtYXhGcmFtZUNvdW50ID0gODsKIAotICAgIEltYWdlU291cmNlIHNvdXJjZTsK
LSAgICBzb3VyY2Uuc2V0RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSkuZ2V0KCks
IHRydWUpOwotICAgIGlmICghc291cmNlLmlzU2l6ZUF2YWlsYWJsZSgpKQorICAgIFJlZlB0cjxT
aGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPihkYXRhKTsKKyAg
ICBPd25QdHI8SW1hZ2VEZWNvZGVyPiBkZWNvZGVyKGFkb3B0UHRyKEltYWdlRGVjb2Rlcjo6Y3Jl
YXRlKCpidWZmZXIuZ2V0KCksIEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQsIEltYWdl
U291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpKSk7CisgICAgZGVjb2Rlci0+c2V0
RGF0YShidWZmZXIuZ2V0KCksIHRydWUpOworICAgIGlmICghZGVjb2Rlci0+aXNTaXplQXZhaWxh
YmxlKCkpCiAgICAgICAgIHJldHVybiBXZWJWZWN0b3I8V2ViSW1hZ2U+KCk7CiAKICAgICAvLyBG
cmFtZXMgYXJlIGFycmFuZ2VkIGJ5IGRlY3JlYXNpbmcgc2l6ZSwgdGhlbiBkZWNyZWFzaW5nIGJp
dCBkZXB0aC4KICAgICAvLyBLZWVwIHRoZSBmaXJzdCBmcmFtZSBhdCBldmVyeSBzaXplLCBoYXMg
dGhlIGhpZ2hlc3QgYml0IGRlcHRoLgotICAgIGNvbnN0IHNpemVfdCBmcmFtZUNvdW50ID0gc291
cmNlLmZyYW1lQ291bnQoKTsKKyAgICBjb25zdCBzaXplX3QgZnJhbWVDb3VudCA9IGRlY29kZXIt
PmZyYW1lQ291bnQoKTsKICAgICBJbnRTaXplIGxhc3RTaXplOwogCiAgICAgVmVjdG9yPFdlYklt
YWdlPiBmcmFtZXM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGQ6Om1pbihmcmFtZUNv
dW50LCBtYXhGcmFtZUNvdW50KTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEludFNpemUgZnJhbWVT
aXplID0gc291cmNlLmZyYW1lU2l6ZUF0SW5kZXgoaSk7CisgICAgICAgIGNvbnN0IEludFNpemUg
ZnJhbWVTaXplID0gZGVjb2Rlci0+ZnJhbWVTaXplQXRJbmRleChpKTsKICAgICAgICAgaWYgKGZy
YW1lU2l6ZSA9PSBsYXN0U2l6ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBsYXN0
U2l6ZSA9IGZyYW1lU2l6ZTsKIAotICAgICAgICBPd25QdHI8TmF0aXZlSW1hZ2VTa2lhPiBmcmFt
ZSA9IGFkb3B0UHRyKHNvdXJjZS5jcmVhdGVGcmFtZUF0SW5kZXgoaSkpOwotICAgICAgICBpZiAo
ZnJhbWUpCi0gICAgICAgICAgICBmcmFtZXMuYXBwZW5kKFdlYkltYWdlKGZyYW1lLT5iaXRtYXAo
KSkpOworICAgICAgICBJbWFnZUZyYW1lKiBmcmFtZSA9IGRlY29kZXItPmZyYW1lQnVmZmVyQXRJ
bmRleChpKTsKKyAgICAgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIE93blB0cjxOYXRpdmVJbWFnZVNraWE+IGltYWdlID0gYWRvcHRQdHIoZnJhbWUtPmFz
TmV3TmF0aXZlSW1hZ2UoKSk7CisgICAgICAgIGlmIChpbWFnZS5nZXQoKSkKKyAgICAgICAgICAg
IGZyYW1lcy5hcHBlbmQoV2ViSW1hZ2UoaW1hZ2UtPmJpdG1hcCgpKSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIGZyYW1lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViSW1hZ2VUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViSW1hZ2VU
ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xZWNmMDBmYThmNjA2ZDVlM2U5NDkxYjJhZjZhMTliMjEyOTgz
MjE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJJ
bWFnZVRlc3QuY3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlIDxwdWJsaWMvV2ViSW1hZ2UuaD4KKworI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNs
dWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorI2luY2x1ZGUg
PHB1YmxpYy9XZWJEYXRhLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlNpemUuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSB7CisKK3N0YXRpYyBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcmVhZEZpbGUoY29uc3QgY2hhciogZmlsZU5hbWUpCit7
CisgICAgU3RyaW5nIGZpbGVQYXRoID0gd2Via2l0X3N1cHBvcnQ6OkdldFdlYktpdFJvb3REaXIo
KTsKKyAgICBmaWxlUGF0aC5hcHBlbmQoIi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2Rh
dGEvIik7CisgICAgZmlsZVBhdGguYXBwZW5kKGZpbGVOYW1lKTsKKworICAgIGxvbmcgbG9uZyBm
aWxlU2l6ZTsKKyAgICBpZiAoIWdldEZpbGVTaXplKGZpbGVQYXRoLCBmaWxlU2l6ZSkpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSA9IG9wZW5GaWxl
KGZpbGVQYXRoLCBPcGVuRm9yUmVhZCk7CisgICAgaW50IGZpbGVMZW5ndGggPSBzdGF0aWNfY2Fz
dDxpbnQ+KGZpbGVTaXplKTsKKyAgICBWZWN0b3I8Y2hhcj4gYnVmZmVyKGZpbGVMZW5ndGgpOwor
ICAgIHJlYWRGcm9tRmlsZShoYW5kbGUsIGJ1ZmZlci5kYXRhKCksIGZpbGVMZW5ndGgpOworICAg
IGNsb3NlRmlsZShoYW5kbGUpOworICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmFkb3B0VmVjdG9y
KGJ1ZmZlcik7Cit9CisKK1RFU1QoV2ViSW1hZ2VUZXN0LCBQTkdJbWFnZSkKK3sKKyAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBkYXRhID0gcmVhZEZpbGUoIndoaXRlLTF4MS5wbmciKTsKKyAgICBB
U1NFUlRfVFJVRShkYXRhLmdldCgpKTsKKworICAgIFdlYkltYWdlIGltYWdlID0gV2ViSW1hZ2U6
OmZyb21EYXRhKFdlYkRhdGEoZGF0YSksIFdlYlNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUoaW1h
Z2Uuc2l6ZSgpID09IFdlYlNpemUoMSwgMSkpOworICAgIFNrQXV0b0xvY2tQaXhlbHMgYXV0b0xv
Y2soaW1hZ2UuZ2V0U2tCaXRtYXAoKSk7CisgICAgRVhQRUNUX0VRKFNrQ29sb3JTZXRBUkdCKDI1
NSwgMjU1LCAyNTUsIDI1NSksIGltYWdlLmdldFNrQml0bWFwKCkuZ2V0Q29sb3IoMCwgMCkpOwor
fQorCitURVNUKFdlYkltYWdlVGVzdCwgSUNPSW1hZ2UpCit7CisgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gZGF0YSA9IHJlYWRGaWxlKCJibGFjay1hbmQtd2hpdGUuaWNvIik7CisgICAgQVNTRVJU
X1RSVUUoZGF0YS5nZXQoKSk7CisKKyAgICBXZWJWZWN0b3I8V2ViSW1hZ2U+IGltYWdlcyA9IFdl
YkltYWdlOjpmcmFtZXNGcm9tRGF0YShXZWJEYXRhKGRhdGEpKTsKKyAgICBBU1NFUlRfRVEoMnUs
IGltYWdlcy5zaXplKCkpOworICAgIEVYUEVDVF9UUlVFKGltYWdlc1swXS5zaXplKCkgPT0gV2Vi
U2l6ZSgyLCAyKSk7CisgICAgRVhQRUNUX1RSVUUoaW1hZ2VzWzFdLnNpemUoKSA9PSBXZWJTaXpl
KDEsIDEpKTsKKyAgICBTa0F1dG9Mb2NrUGl4ZWxzIGF1dG9Mb2NrMShpbWFnZXNbMF0uZ2V0U2tC
aXRtYXAoKSk7CisgICAgRVhQRUNUX0VRKFNrQ29sb3JTZXRBUkdCKDI1NSwgMjU1LCAyNTUsIDI1
NSksIGltYWdlc1swXS5nZXRTa0JpdG1hcCgpLmdldENvbG9yKDAsIDApKTsKKyAgICBTa0F1dG9M
b2NrUGl4ZWxzIGF1dG9Mb2NrMihpbWFnZXNbMV0uZ2V0U2tCaXRtYXAoKSk7CisgICAgRVhQRUNU
X0VRKFNrQ29sb3JTZXRBUkdCKDI1NSwgMCwgMCwgMCksIGltYWdlc1sxXS5nZXRTa0JpdG1hcCgp
LmdldENvbG9yKDAsIDApKTsKK30KKworfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9ibGFjay1hbmQtd2hpdGUuaWNvIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2JsYWNrLWFuZC13aGl0ZS5pY28KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmJkZjljYTRmODk2ZWZjYTg3MzVkNDdlZTU5M2QxYzJmODM3ZjVlYQpHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgMTU4CnpjbVp7YyEzfV5nMzxJNXJNPHNwP2ZmI3tqQ3QrNEwzdWh2cHhWcU1I
bm48QmsxYU1BQ0o3amh9QGZSRXJrbmR8SgpiRXdIVlBiN05JaTgqYX16X2gwWH4ySz4kNF52dElS
e1JqemQKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvZGF0YS93aGl0ZS0xeDEucG5nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9kYXRhL3doaXRlLTF4MS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NmN2E2Y2EwNWJmZmM5MzA1
YzhkZWJjYmMyOWVmMGQxYTVjN2I3NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTAzCnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEwdnBeajNDVXgxU0JWdjJqMnM2aWk2eXA3fWxNV2M/c2xqN0k7SiFH
Y2ElcQp1Z0RAayp0VF9AdUteeypSI31KT3wkdl4pOHdgWEFlJE1vO2NuYUpscmFSeUlVS2JMaCoy
fjdZU2g4Y19pCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164613</attachid>
            <date>2012-09-18 13:36:45 -0700</date>
            <delta_ts>2012-09-18 13:44:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96135-20120918133611.patch</filename>
            <type>text/plain</type>
            <size>10710</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDAxMzc0MmU4NGRmZGVlZDE4NTc1Y2I3MjkwOGFmY2M1ZWZkNTVmNWYuLmRkMGVlM2M3Yzk0ODlj
ZmQxNmVmOTMzZWI3NTZiMjg5NTAyNzM1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTItMDktMDcgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFdlYkltYWdlIHNob3VsZCB1c2UgSW1hZ2VEZWNvZGVy
IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyBmb3IgcHJlcGFyYXRpb24gb2YgZGVmZXJyZWQgaW1hZ2UgZGVjb2RpbmcuCisg
ICAgICAgIEltYWdlU291cmNlIHdpbGwgYmUgdXNlZCBhcyBhIHBvcnRhbCB0byBhY2Nlc3MgZGVm
ZXJyZWQgaW1hZ2UgZGVjb2RlcgorICAgICAgICBieSBCaXRtYXBJbWFnZSwgaXQgc2hvdWxkIG5v
dCBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggV2ViS2l0IEFQSXMuCisKKyAgICAgICAgV2ViSW1hZ2Ug
bm93IGNhbGxzIEltYWdlRGVjb2RlciBkaXJlY3RseSB3aGljaCBpcyB0aGUgYWN0dWFsCisgICAg
ICAgIGltcGxlbWVudGF0aW9uIG9mIGFuIGltYWdlIGRlY29kZXIuCisKKyAgICAgICAgVGVzdHM6
IFdlYkltYWdlVGVzdC5QTkdJbWFnZQorICAgICAgICAgICAgICAgV2ViSW1hZ2VUZXN0LklDT0lt
YWdlCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBzcmMvV2ViSW1hZ2VTa2lh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW1hZ2U6OmZyb21EYXRhKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKToKKyAgICAgICAgKiB0ZXN0cy9XZWJJbWFn
ZVRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnJl
YWRGaWxlKToKKyAgICAgICAgKFdlYktpdDo6VEVTVCk6CisgICAgICAgICogdGVzdHMvZGF0YS9i
bGFjay1hbmQtd2hpdGUuaWNvOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9kYXRhL3doaXRlLTF4
MS5wbmc6IEFkZGVkLgorCiAyMDEyLTA5LTEzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI4NTQz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggNWQzZjg1MGQ1YTFlYjM1YjdkNzZi
NjFhYTFlMTlkZjNlNWY5ZWQ0MS4uOTg3ZDBmMDIzMTBjZTQzYmY0OWM3NzYzMGJjMTMxYjc2MDJk
MTYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xMDEsNiArMTAxLDcgQEAK
ICAgICAgICAgICAgICd0ZXN0cy9XZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIuaCcsCiAgICAgICAg
ICAgICAndGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcCcsCiAgICAg
ICAgICAgICAndGVzdHMvV2ViRnJhbWVUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMvV2Vi
SW1hZ2VUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VOZXdTZXJpYWxpemVyVGVz
dC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VTZXJpYWxpemVyVGVzdC5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAKaW5kZXggZTFhOTI2
MDUwNjI4MWQ4OWEyOGZhMGNkMjQwMzNkMDM5NzE4MDVjNy4uYTc1OGNmYzJiMDM5OGUxMjlhYzk3
ZmY0MzlmYTUxZGU0NjRhZjE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSW1hZ2VTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bWFnZVNraWEuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCisjaW5jbHVkZSAiSW1h
Z2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAKQEAgLTUxLDE5ICs1MSwyMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViSW1hZ2UgV2ViSW1hZ2U6OmZyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEsIGNvbnN0IFdl
YlNpemUmIGRlc2lyZWRTaXplKQogewotICAgIEltYWdlU291cmNlIHNvdXJjZTsKLSAgICBzb3Vy
Y2Uuc2V0RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSkuZ2V0KCksIHRydWUpOwot
ICAgIGlmICghc291cmNlLmlzU2l6ZUF2YWlsYWJsZSgpKQorICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGJ1ZmZlciA9IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPihkYXRhKTsKKyAgICBPd25QdHI8
SW1hZ2VEZWNvZGVyPiBkZWNvZGVyKGFkb3B0UHRyKEltYWdlRGVjb2Rlcjo6Y3JlYXRlKCpidWZm
ZXIuZ2V0KCksIEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQsIEltYWdlU291cmNlOjpH
YW1tYUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpKSk7CisgICAgZGVjb2Rlci0+c2V0RGF0YShidWZm
ZXIuZ2V0KCksIHRydWUpOworICAgIGlmICghZGVjb2Rlci0+aXNTaXplQXZhaWxhYmxlKCkpCiAg
ICAgICAgIHJldHVybiBXZWJJbWFnZSgpOwogCiAgICAgLy8gRnJhbWVzIGFyZSBhcnJhbmdlZCBi
eSBkZWNyZWFzaW5nIHNpemUsIHRoZW4gZGVjcmVhc2luZyBiaXQgZGVwdGguCiAgICAgLy8gUGlj
ayB0aGUgZnJhbWUgY2xvc2VzdCB0byB8ZGVzaXJlZFNpemV8J3MgYXJlYSB3aXRob3V0IGJlaW5n
IHNtYWxsZXIsCiAgICAgLy8gd2hpY2ggaGFzIHRoZSBoaWdoZXN0IGJpdCBkZXB0aC4KLSAgICBj
b25zdCBzaXplX3QgZnJhbWVDb3VudCA9IHNvdXJjZS5mcmFtZUNvdW50KCk7CisgICAgY29uc3Qg
c2l6ZV90IGZyYW1lQ291bnQgPSBkZWNvZGVyLT5mcmFtZUNvdW50KCk7CiAgICAgc2l6ZV90IGlu
ZGV4ID0gMDsgIC8vIERlZmF1bHQgdG8gZmlyc3QgZnJhbWUgaWYgbm9uZSBhcmUgbGFyZ2UgZW5v
dWdoLgogICAgIGludCBmcmFtZUFyZWFBdEluZGV4ID0gMDsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGZyYW1lQ291bnQ7ICsraSkgewotICAgICAgICBjb25zdCBJbnRTaXplIGZyYW1lU2l6
ZSA9IHNvdXJjZS5mcmFtZVNpemVBdEluZGV4KGkpOworICAgICAgICBjb25zdCBJbnRTaXplIGZy
YW1lU2l6ZSA9IGRlY29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaSk7CiAgICAgICAgIGlmIChXZWJT
aXplKGZyYW1lU2l6ZSkgPT0gZGVzaXJlZFNpemUpIHsKICAgICAgICAgICAgIGluZGV4ID0gaTsK
ICAgICAgICAgICAgIGJyZWFrOyAgLy8gUGVyZmVjdCBtYXRjaC4KQEAgLTc5LDExICs4MCwxNSBA
QCBXZWJJbWFnZSBXZWJJbWFnZTo6ZnJvbURhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29uc3Qg
V2ViU2l6ZSYgZGVzaXJlZFNpemUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBPd25QdHI8TmF0
aXZlSW1hZ2VTa2lhPiBmcmFtZSA9IGFkb3B0UHRyKHNvdXJjZS5jcmVhdGVGcmFtZUF0SW5kZXgo
aW5kZXgpKTsKKyAgICBJbWFnZUZyYW1lKiBmcmFtZSA9IGRlY29kZXItPmZyYW1lQnVmZmVyQXRJ
bmRleChpbmRleCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIFdlYkltYWdlKCk7
CiAKLSAgICByZXR1cm4gV2ViSW1hZ2UoZnJhbWUtPmJpdG1hcCgpKTsKKyAgICBPd25QdHI8TmF0
aXZlSW1hZ2VTa2lhPiBpbWFnZSA9IGFkb3B0UHRyKGZyYW1lLT5hc05ld05hdGl2ZUltYWdlKCkp
OworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybiBXZWJJbWFnZSgpOworCisgICAgcmV0
dXJuIFdlYkltYWdlKGltYWdlLT5iaXRtYXAoKSk7CiB9CiAKIFdlYlZlY3RvcjxXZWJJbWFnZT4g
V2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEpCkBAIC05MSwyNiAr
OTYsMzEgQEAgV2ViVmVjdG9yPFdlYkltYWdlPiBXZWJJbWFnZTo6ZnJhbWVzRnJvbURhdGEoY29u
c3QgV2ViRGF0YSYgZGF0YSkKICAgICAvLyBUaGlzIGlzIHRvIHByb3RlY3QgZnJvbSBtYWxpY2lv
dXMgaW1hZ2VzLiBJdCBzaG91bGQgYmUgYmlnIGVub3VnaCB0aGF0IGl0J3MgbmV2ZXIgaGl0IGlu
IHByYWNpY2UuCiAgICAgY29uc3Qgc2l6ZV90IG1heEZyYW1lQ291bnQgPSA4OwogCi0gICAgSW1h
Z2VTb3VyY2Ugc291cmNlOwotICAgIHNvdXJjZS5zZXREYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPihkYXRhKS5nZXQoKSwgdHJ1ZSk7Ci0gICAgaWYgKCFzb3VyY2UuaXNTaXplQXZhaWxhYmxl
KCkpCisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+KGRhdGEpOworICAgIE93blB0cjxJbWFnZURlY29kZXI+IGRlY29kZXIoYWRvcHRQdHIo
SW1hZ2VEZWNvZGVyOjpjcmVhdGUoKmJ1ZmZlci5nZXQoKSwgSW1hZ2VTb3VyY2U6OkFscGhhUHJl
bXVsdGlwbGllZCwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCkpKTsK
KyAgICBkZWNvZGVyLT5zZXREYXRhKGJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgaWYgKCFkZWNv
ZGVyLT5pc1NpemVBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIFdlYlZlY3RvcjxXZWJJbWFn
ZT4oKTsKIAogICAgIC8vIEZyYW1lcyBhcmUgYXJyYW5nZWQgYnkgZGVjcmVhc2luZyBzaXplLCB0
aGVuIGRlY3JlYXNpbmcgYml0IGRlcHRoLgogICAgIC8vIEtlZXAgdGhlIGZpcnN0IGZyYW1lIGF0
IGV2ZXJ5IHNpemUsIGhhcyB0aGUgaGlnaGVzdCBiaXQgZGVwdGguCi0gICAgY29uc3Qgc2l6ZV90
IGZyYW1lQ291bnQgPSBzb3VyY2UuZnJhbWVDb3VudCgpOworICAgIGNvbnN0IHNpemVfdCBmcmFt
ZUNvdW50ID0gZGVjb2Rlci0+ZnJhbWVDb3VudCgpOwogICAgIEludFNpemUgbGFzdFNpemU7CiAK
ICAgICBWZWN0b3I8V2ViSW1hZ2U+IGZyYW1lczsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHN0ZDo6bWluKGZyYW1lQ291bnQsIG1heEZyYW1lQ291bnQpOyArK2kpIHsKLSAgICAgICAgY29u
c3QgSW50U2l6ZSBmcmFtZVNpemUgPSBzb3VyY2UuZnJhbWVTaXplQXRJbmRleChpKTsKKyAgICAg
ICAgY29uc3QgSW50U2l6ZSBmcmFtZVNpemUgPSBkZWNvZGVyLT5mcmFtZVNpemVBdEluZGV4KGkp
OwogICAgICAgICBpZiAoZnJhbWVTaXplID09IGxhc3RTaXplKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIGxhc3RTaXplID0gZnJhbWVTaXplOwogCi0gICAgICAgIE93blB0cjxOYXRp
dmVJbWFnZVNraWE+IGZyYW1lID0gYWRvcHRQdHIoc291cmNlLmNyZWF0ZUZyYW1lQXRJbmRleChp
KSk7Ci0gICAgICAgIGlmIChmcmFtZSkKLSAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoV2ViSW1h
Z2UoZnJhbWUtPmJpdG1hcCgpKSk7CisgICAgICAgIEltYWdlRnJhbWUqIGZyYW1lID0gZGVjb2Rl
ci0+ZnJhbWVCdWZmZXJBdEluZGV4KGkpOworICAgICAgICBpZiAoIWZyYW1lKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgT3duUHRyPE5hdGl2ZUltYWdlU2tpYT4gaW1hZ2UgPSBh
ZG9wdFB0cihmcmFtZS0+YXNOZXdOYXRpdmVJbWFnZSgpKTsKKyAgICAgICAgaWYgKGltYWdlLmdl
dCgpKQorICAgICAgICAgICAgZnJhbWVzLmFwcGVuZChXZWJJbWFnZShpbWFnZS0+Yml0bWFwKCkp
KTsKICAgICB9CiAKICAgICByZXR1cm4gZnJhbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9XZWJJbWFnZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJJbWFnZVRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlY2YwMGZhOGY2MDZkNWUzZTk0
OTFiMmFmNmExOWIyMTI5ODMyMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkltYWdlVGVzdC5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJJbWFnZS5oPgorCisjaW5jbHVkZSAiRmls
ZVN5c3RlbS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgPGd0ZXN0L2d0
ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkRhdGEuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2Vi
U2l6ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNw
YWNlIHsKKworc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiByZWFkRmlsZShjb25zdCBj
aGFyKiBmaWxlTmFtZSkKK3sKKyAgICBTdHJpbmcgZmlsZVBhdGggPSB3ZWJraXRfc3VwcG9ydDo6
R2V0V2ViS2l0Um9vdERpcigpOworICAgIGZpbGVQYXRoLmFwcGVuZCgiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvZGF0YS8iKTsKKyAgICBmaWxlUGF0aC5hcHBlbmQoZmlsZU5hbWUpOwor
CisgICAgbG9uZyBsb25nIGZpbGVTaXplOworICAgIGlmICghZ2V0RmlsZVNpemUoZmlsZVBhdGgs
IGZpbGVTaXplKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBQbGF0Zm9ybUZpbGVIYW5kbGUg
aGFuZGxlID0gb3BlbkZpbGUoZmlsZVBhdGgsIE9wZW5Gb3JSZWFkKTsKKyAgICBpbnQgZmlsZUxl
bmd0aCA9IHN0YXRpY19jYXN0PGludD4oZmlsZVNpemUpOworICAgIFZlY3RvcjxjaGFyPiBidWZm
ZXIoZmlsZUxlbmd0aCk7CisgICAgcmVhZEZyb21GaWxlKGhhbmRsZSwgYnVmZmVyLmRhdGEoKSwg
ZmlsZUxlbmd0aCk7CisgICAgY2xvc2VGaWxlKGhhbmRsZSk7CisgICAgcmV0dXJuIFNoYXJlZEJ1
ZmZlcjo6YWRvcHRWZWN0b3IoYnVmZmVyKTsKK30KKworVEVTVChXZWJJbWFnZVRlc3QsIFBOR0lt
YWdlKQoreworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSByZWFkRmlsZSgid2hpdGUt
MXgxLnBuZyIpOworICAgIEFTU0VSVF9UUlVFKGRhdGEuZ2V0KCkpOworCisgICAgV2ViSW1hZ2Ug
aW1hZ2UgPSBXZWJJbWFnZTo6ZnJvbURhdGEoV2ViRGF0YShkYXRhKSwgV2ViU2l6ZSgpKTsKKyAg
ICBFWFBFQ1RfVFJVRShpbWFnZS5zaXplKCkgPT0gV2ViU2l6ZSgxLCAxKSk7CisgICAgU2tBdXRv
TG9ja1BpeGVscyBhdXRvTG9jayhpbWFnZS5nZXRTa0JpdG1hcCgpKTsKKyAgICBFWFBFQ1RfRVEo
U2tDb2xvclNldEFSR0IoMjU1LCAyNTUsIDI1NSwgMjU1KSwgaW1hZ2UuZ2V0U2tCaXRtYXAoKS5n
ZXRDb2xvcigwLCAwKSk7Cit9CisKK1RFU1QoV2ViSW1hZ2VUZXN0LCBJQ09JbWFnZSkKK3sKKyAg
ICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhID0gcmVhZEZpbGUoImJsYWNrLWFuZC13aGl0ZS5p
Y28iKTsKKyAgICBBU1NFUlRfVFJVRShkYXRhLmdldCgpKTsKKworICAgIFdlYlZlY3RvcjxXZWJJ
bWFnZT4gaW1hZ2VzID0gV2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKFdlYkRhdGEoZGF0YSkpOwor
ICAgIEFTU0VSVF9FUSgydSwgaW1hZ2VzLnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUoaW1hZ2Vz
WzBdLnNpemUoKSA9PSBXZWJTaXplKDIsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShpbWFnZXNbMV0u
c2l6ZSgpID09IFdlYlNpemUoMSwgMSkpOworICAgIFNrQXV0b0xvY2tQaXhlbHMgYXV0b0xvY2sx
KGltYWdlc1swXS5nZXRTa0JpdG1hcCgpKTsKKyAgICBFWFBFQ1RfRVEoU2tDb2xvclNldEFSR0Io
MjU1LCAyNTUsIDI1NSwgMjU1KSwgaW1hZ2VzWzBdLmdldFNrQml0bWFwKCkuZ2V0Q29sb3IoMCwg
MCkpOworICAgIFNrQXV0b0xvY2tQaXhlbHMgYXV0b0xvY2syKGltYWdlc1sxXS5nZXRTa0JpdG1h
cCgpKTsKKyAgICBFWFBFQ1RfRVEoU2tDb2xvclNldEFSR0IoMjU1LCAwLCAwLCAwKSwgaW1hZ2Vz
WzFdLmdldFNrQml0bWFwKCkuZ2V0Q29sb3IoMCwgMCkpOworfQorCit9IC8vIG5hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2JsYWNrLWFuZC13
aGl0ZS5pY28gYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvYmxhY2stYW5kLXdo
aXRlLmljbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42YmRmOWNhNGY4OTZlZmNhODczNWQ0N2VlNTkzZDFjMmY4Mzdm
NWVhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNTgKemNtWntjITN9XmczPEk1ck08c3A/ZmYj
e2pDdCs0TDN1aHZweFZxTUhubjxCazFhTUFDSjdqaH1AZlJFcmtuZHxKCmJFd0hWUGI3TklpOCph
fXpfaDBYfjJLPiQ0XnZ0SVJ7Ump6ZAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3doaXRlLTF4MS5wbmcgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvd2hpdGUtMXgxLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
Y2Y3YTZjYTA1YmZmYzkzMDVjOGRlYmNiYzI5ZWYwZDFhNWM3Yjc0CkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAxMDMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5qM0NVeDFTQlZ2MmoyczZpaTZ5
cDd9bE1XYz9zbGo3STtKIUdjYSVxCnVnREBrKnRUX0B1S157KlIjfUpPfCR2Xik4d2BYQWUkTW87
Y25hSmxyYVJ5SVVLYkxoKjJ+N1lTaDhjX2kKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164614</attachid>
            <date>2012-09-18 13:44:20 -0700</date>
            <delta_ts>2012-09-18 13:49:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96135-20120918134347.patch</filename>
            <type>text/plain</type>
            <size>10710</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDAxMzc0MmU4NGRmZGVlZDE4NTc1Y2I3MjkwOGFmY2M1ZWZkNTVmNWYuLmRkMGVlM2M3Yzk0ODlj
ZmQxNmVmOTMzZWI3NTZiMjg5NTAyNzM1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTItMDktMDcgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFdlYkltYWdlIHNob3VsZCB1c2UgSW1hZ2VEZWNvZGVy
IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyBmb3IgcHJlcGFyYXRpb24gb2YgZGVmZXJyZWQgaW1hZ2UgZGVjb2RpbmcuCisg
ICAgICAgIEltYWdlU291cmNlIHdpbGwgYmUgdXNlZCBhcyBhIHBvcnRhbCB0byBhY2Nlc3MgZGVm
ZXJyZWQgaW1hZ2UgZGVjb2RlcgorICAgICAgICBieSBCaXRtYXBJbWFnZSwgaXQgc2hvdWxkIG5v
dCBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggV2ViS2l0IEFQSXMuCisKKyAgICAgICAgV2ViSW1hZ2Ug
bm93IGNhbGxzIEltYWdlRGVjb2RlciBkaXJlY3RseSB3aGljaCBpcyB0aGUgYWN0dWFsCisgICAg
ICAgIGltcGxlbWVudGF0aW9uIG9mIGFuIGltYWdlIGRlY29kZXIuCisKKyAgICAgICAgVGVzdHM6
IFdlYkltYWdlVGVzdC5QTkdJbWFnZQorICAgICAgICAgICAgICAgV2ViSW1hZ2VUZXN0LklDT0lt
YWdlCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBzcmMvV2ViSW1hZ2VTa2lh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW1hZ2U6OmZyb21EYXRhKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKToKKyAgICAgICAgKiB0ZXN0cy9XZWJJbWFn
ZVRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnJl
YWRGaWxlKToKKyAgICAgICAgKFdlYktpdDo6VEVTVCk6CisgICAgICAgICogdGVzdHMvZGF0YS9i
bGFjay1hbmQtd2hpdGUuaWNvOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9kYXRhL3doaXRlLTF4
MS5wbmc6IEFkZGVkLgorCiAyMDEyLTA5LTEzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI4NTQz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggNWQzZjg1MGQ1YTFlYjM1YjdkNzZi
NjFhYTFlMTlkZjNlNWY5ZWQ0MS4uOTg3ZDBmMDIzMTBjZTQzYmY0OWM3NzYzMGJjMTMxYjc2MDJk
MTYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xMDEsNiArMTAxLDcgQEAK
ICAgICAgICAgICAgICd0ZXN0cy9XZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIuaCcsCiAgICAgICAg
ICAgICAndGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcCcsCiAgICAg
ICAgICAgICAndGVzdHMvV2ViRnJhbWVUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMvV2Vi
SW1hZ2VUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VOZXdTZXJpYWxpemVyVGVz
dC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VTZXJpYWxpemVyVGVzdC5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAKaW5kZXggZTFhOTI2
MDUwNjI4MWQ4OWEyOGZhMGNkMjQwMzNkMDM5NzE4MDVjNy4uYTc1OGNmYzJiMDM5OGUxMjlhYzk3
ZmY0MzlmYTUxZGU0NjRhZjE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSW1hZ2VTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bWFnZVNraWEuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCisjaW5jbHVkZSAiSW1h
Z2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAKQEAgLTUxLDE5ICs1MSwyMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViSW1hZ2UgV2ViSW1hZ2U6OmZyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEsIGNvbnN0IFdl
YlNpemUmIGRlc2lyZWRTaXplKQogewotICAgIEltYWdlU291cmNlIHNvdXJjZTsKLSAgICBzb3Vy
Y2Uuc2V0RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSkuZ2V0KCksIHRydWUpOwot
ICAgIGlmICghc291cmNlLmlzU2l6ZUF2YWlsYWJsZSgpKQorICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGJ1ZmZlciA9IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPihkYXRhKTsKKyAgICBPd25QdHI8
SW1hZ2VEZWNvZGVyPiBkZWNvZGVyKGFkb3B0UHRyKEltYWdlRGVjb2Rlcjo6Y3JlYXRlKCpidWZm
ZXIuZ2V0KCksIEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQsIEltYWdlU291cmNlOjpH
YW1tYUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpKSk7CisgICAgZGVjb2Rlci0+c2V0RGF0YShidWZm
ZXIuZ2V0KCksIHRydWUpOworICAgIGlmICghZGVjb2Rlci0+aXNTaXplQXZhaWxhYmxlKCkpCiAg
ICAgICAgIHJldHVybiBXZWJJbWFnZSgpOwogCiAgICAgLy8gRnJhbWVzIGFyZSBhcnJhbmdlZCBi
eSBkZWNyZWFzaW5nIHNpemUsIHRoZW4gZGVjcmVhc2luZyBiaXQgZGVwdGguCiAgICAgLy8gUGlj
ayB0aGUgZnJhbWUgY2xvc2VzdCB0byB8ZGVzaXJlZFNpemV8J3MgYXJlYSB3aXRob3V0IGJlaW5n
IHNtYWxsZXIsCiAgICAgLy8gd2hpY2ggaGFzIHRoZSBoaWdoZXN0IGJpdCBkZXB0aC4KLSAgICBj
b25zdCBzaXplX3QgZnJhbWVDb3VudCA9IHNvdXJjZS5mcmFtZUNvdW50KCk7CisgICAgY29uc3Qg
c2l6ZV90IGZyYW1lQ291bnQgPSBkZWNvZGVyLT5mcmFtZUNvdW50KCk7CiAgICAgc2l6ZV90IGlu
ZGV4ID0gMDsgIC8vIERlZmF1bHQgdG8gZmlyc3QgZnJhbWUgaWYgbm9uZSBhcmUgbGFyZ2UgZW5v
dWdoLgogICAgIGludCBmcmFtZUFyZWFBdEluZGV4ID0gMDsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGZyYW1lQ291bnQ7ICsraSkgewotICAgICAgICBjb25zdCBJbnRTaXplIGZyYW1lU2l6
ZSA9IHNvdXJjZS5mcmFtZVNpemVBdEluZGV4KGkpOworICAgICAgICBjb25zdCBJbnRTaXplIGZy
YW1lU2l6ZSA9IGRlY29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaSk7CiAgICAgICAgIGlmIChXZWJT
aXplKGZyYW1lU2l6ZSkgPT0gZGVzaXJlZFNpemUpIHsKICAgICAgICAgICAgIGluZGV4ID0gaTsK
ICAgICAgICAgICAgIGJyZWFrOyAgLy8gUGVyZmVjdCBtYXRjaC4KQEAgLTc5LDExICs4MCwxNSBA
QCBXZWJJbWFnZSBXZWJJbWFnZTo6ZnJvbURhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSwgY29uc3Qg
V2ViU2l6ZSYgZGVzaXJlZFNpemUpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBPd25QdHI8TmF0
aXZlSW1hZ2VTa2lhPiBmcmFtZSA9IGFkb3B0UHRyKHNvdXJjZS5jcmVhdGVGcmFtZUF0SW5kZXgo
aW5kZXgpKTsKKyAgICBJbWFnZUZyYW1lKiBmcmFtZSA9IGRlY29kZXItPmZyYW1lQnVmZmVyQXRJ
bmRleChpbmRleCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIFdlYkltYWdlKCk7
CiAKLSAgICByZXR1cm4gV2ViSW1hZ2UoZnJhbWUtPmJpdG1hcCgpKTsKKyAgICBPd25QdHI8TmF0
aXZlSW1hZ2VTa2lhPiBpbWFnZSA9IGFkb3B0UHRyKGZyYW1lLT5hc05ld05hdGl2ZUltYWdlKCkp
OworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJldHVybiBXZWJJbWFnZSgpOworCisgICAgcmV0
dXJuIFdlYkltYWdlKGltYWdlLT5iaXRtYXAoKSk7CiB9CiAKIFdlYlZlY3RvcjxXZWJJbWFnZT4g
V2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEpCkBAIC05MSwyNiAr
OTYsMzEgQEAgV2ViVmVjdG9yPFdlYkltYWdlPiBXZWJJbWFnZTo6ZnJhbWVzRnJvbURhdGEoY29u
c3QgV2ViRGF0YSYgZGF0YSkKICAgICAvLyBUaGlzIGlzIHRvIHByb3RlY3QgZnJvbSBtYWxpY2lv
dXMgaW1hZ2VzLiBJdCBzaG91bGQgYmUgYmlnIGVub3VnaCB0aGF0IGl0J3MgbmV2ZXIgaGl0IGlu
IHByYWNpY2UuCiAgICAgY29uc3Qgc2l6ZV90IG1heEZyYW1lQ291bnQgPSA4OwogCi0gICAgSW1h
Z2VTb3VyY2Ugc291cmNlOwotICAgIHNvdXJjZS5zZXREYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPihkYXRhKS5nZXQoKSwgdHJ1ZSk7Ci0gICAgaWYgKCFzb3VyY2UuaXNTaXplQXZhaWxhYmxl
KCkpCisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+KGRhdGEpOworICAgIE93blB0cjxJbWFnZURlY29kZXI+IGRlY29kZXIoYWRvcHRQdHIo
SW1hZ2VEZWNvZGVyOjpjcmVhdGUoKmJ1ZmZlci5nZXQoKSwgSW1hZ2VTb3VyY2U6OkFscGhhUHJl
bXVsdGlwbGllZCwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCkpKTsK
KyAgICBkZWNvZGVyLT5zZXREYXRhKGJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgaWYgKCFkZWNv
ZGVyLT5pc1NpemVBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIFdlYlZlY3RvcjxXZWJJbWFn
ZT4oKTsKIAogICAgIC8vIEZyYW1lcyBhcmUgYXJyYW5nZWQgYnkgZGVjcmVhc2luZyBzaXplLCB0
aGVuIGRlY3JlYXNpbmcgYml0IGRlcHRoLgogICAgIC8vIEtlZXAgdGhlIGZpcnN0IGZyYW1lIGF0
IGV2ZXJ5IHNpemUsIGhhcyB0aGUgaGlnaGVzdCBiaXQgZGVwdGguCi0gICAgY29uc3Qgc2l6ZV90
IGZyYW1lQ291bnQgPSBzb3VyY2UuZnJhbWVDb3VudCgpOworICAgIGNvbnN0IHNpemVfdCBmcmFt
ZUNvdW50ID0gZGVjb2Rlci0+ZnJhbWVDb3VudCgpOwogICAgIEludFNpemUgbGFzdFNpemU7CiAK
ICAgICBWZWN0b3I8V2ViSW1hZ2U+IGZyYW1lczsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHN0ZDo6bWluKGZyYW1lQ291bnQsIG1heEZyYW1lQ291bnQpOyArK2kpIHsKLSAgICAgICAgY29u
c3QgSW50U2l6ZSBmcmFtZVNpemUgPSBzb3VyY2UuZnJhbWVTaXplQXRJbmRleChpKTsKKyAgICAg
ICAgY29uc3QgSW50U2l6ZSBmcmFtZVNpemUgPSBkZWNvZGVyLT5mcmFtZVNpemVBdEluZGV4KGkp
OwogICAgICAgICBpZiAoZnJhbWVTaXplID09IGxhc3RTaXplKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIGxhc3RTaXplID0gZnJhbWVTaXplOwogCi0gICAgICAgIE93blB0cjxOYXRp
dmVJbWFnZVNraWE+IGZyYW1lID0gYWRvcHRQdHIoc291cmNlLmNyZWF0ZUZyYW1lQXRJbmRleChp
KSk7Ci0gICAgICAgIGlmIChmcmFtZSkKLSAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoV2ViSW1h
Z2UoZnJhbWUtPmJpdG1hcCgpKSk7CisgICAgICAgIEltYWdlRnJhbWUqIGZyYW1lID0gZGVjb2Rl
ci0+ZnJhbWVCdWZmZXJBdEluZGV4KGkpOworICAgICAgICBpZiAoIWZyYW1lKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgT3duUHRyPE5hdGl2ZUltYWdlU2tpYT4gaW1hZ2UgPSBh
ZG9wdFB0cihmcmFtZS0+YXNOZXdOYXRpdmVJbWFnZSgpKTsKKyAgICAgICAgaWYgKGltYWdlLmdl
dCgpKQorICAgICAgICAgICAgZnJhbWVzLmFwcGVuZChXZWJJbWFnZShpbWFnZS0+Yml0bWFwKCkp
KTsKICAgICB9CiAKICAgICByZXR1cm4gZnJhbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9XZWJJbWFnZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJJbWFnZVRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlY2YwMGZhOGY2MDZkNWUzZTk0
OTFiMmFmNmExOWIyMTI5ODMyMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkltYWdlVGVzdC5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJJbWFnZS5oPgorCisjaW5jbHVkZSAiRmls
ZVN5c3RlbS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgPGd0ZXN0L2d0
ZXN0Lmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkRhdGEuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2Vi
U2l6ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNw
YWNlIHsKKworc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiByZWFkRmlsZShjb25zdCBj
aGFyKiBmaWxlTmFtZSkKK3sKKyAgICBTdHJpbmcgZmlsZVBhdGggPSB3ZWJraXRfc3VwcG9ydDo6
R2V0V2ViS2l0Um9vdERpcigpOworICAgIGZpbGVQYXRoLmFwcGVuZCgiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvZGF0YS8iKTsKKyAgICBmaWxlUGF0aC5hcHBlbmQoZmlsZU5hbWUpOwor
CisgICAgbG9uZyBsb25nIGZpbGVTaXplOworICAgIGlmICghZ2V0RmlsZVNpemUoZmlsZVBhdGgs
IGZpbGVTaXplKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBQbGF0Zm9ybUZpbGVIYW5kbGUg
aGFuZGxlID0gb3BlbkZpbGUoZmlsZVBhdGgsIE9wZW5Gb3JSZWFkKTsKKyAgICBpbnQgZmlsZUxl
bmd0aCA9IHN0YXRpY19jYXN0PGludD4oZmlsZVNpemUpOworICAgIFZlY3RvcjxjaGFyPiBidWZm
ZXIoZmlsZUxlbmd0aCk7CisgICAgcmVhZEZyb21GaWxlKGhhbmRsZSwgYnVmZmVyLmRhdGEoKSwg
ZmlsZUxlbmd0aCk7CisgICAgY2xvc2VGaWxlKGhhbmRsZSk7CisgICAgcmV0dXJuIFNoYXJlZEJ1
ZmZlcjo6YWRvcHRWZWN0b3IoYnVmZmVyKTsKK30KKworVEVTVChXZWJJbWFnZVRlc3QsIFBOR0lt
YWdlKQoreworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSByZWFkRmlsZSgid2hpdGUt
MXgxLnBuZyIpOworICAgIEFTU0VSVF9UUlVFKGRhdGEuZ2V0KCkpOworCisgICAgV2ViSW1hZ2Ug
aW1hZ2UgPSBXZWJJbWFnZTo6ZnJvbURhdGEoV2ViRGF0YShkYXRhKSwgV2ViU2l6ZSgpKTsKKyAg
ICBFWFBFQ1RfVFJVRShpbWFnZS5zaXplKCkgPT0gV2ViU2l6ZSgxLCAxKSk7CisgICAgU2tBdXRv
TG9ja1BpeGVscyBhdXRvTG9jayhpbWFnZS5nZXRTa0JpdG1hcCgpKTsKKyAgICBFWFBFQ1RfRVEo
U2tDb2xvclNldEFSR0IoMjU1LCAyNTUsIDI1NSwgMjU1KSwgaW1hZ2UuZ2V0U2tCaXRtYXAoKS5n
ZXRDb2xvcigwLCAwKSk7Cit9CisKK1RFU1QoV2ViSW1hZ2VUZXN0LCBJQ09JbWFnZSkKK3sKKyAg
ICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhID0gcmVhZEZpbGUoImJsYWNrLWFuZC13aGl0ZS5p
Y28iKTsKKyAgICBBU1NFUlRfVFJVRShkYXRhLmdldCgpKTsKKworICAgIFdlYlZlY3RvcjxXZWJJ
bWFnZT4gaW1hZ2VzID0gV2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKFdlYkRhdGEoZGF0YSkpOwor
ICAgIEFTU0VSVF9FUSgydSwgaW1hZ2VzLnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUoaW1hZ2Vz
WzBdLnNpemUoKSA9PSBXZWJTaXplKDIsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShpbWFnZXNbMV0u
c2l6ZSgpID09IFdlYlNpemUoMSwgMSkpOworICAgIFNrQXV0b0xvY2tQaXhlbHMgYXV0b0xvY2sx
KGltYWdlc1swXS5nZXRTa0JpdG1hcCgpKTsKKyAgICBFWFBFQ1RfRVEoU2tDb2xvclNldEFSR0Io
MjU1LCAyNTUsIDI1NSwgMjU1KSwgaW1hZ2VzWzBdLmdldFNrQml0bWFwKCkuZ2V0Q29sb3IoMCwg
MCkpOworICAgIFNrQXV0b0xvY2tQaXhlbHMgYXV0b0xvY2syKGltYWdlc1sxXS5nZXRTa0JpdG1h
cCgpKTsKKyAgICBFWFBFQ1RfRVEoU2tDb2xvclNldEFSR0IoMjU1LCAwLCAwLCAwKSwgaW1hZ2Vz
WzFdLmdldFNrQml0bWFwKCkuZ2V0Q29sb3IoMCwgMCkpOworfQorCit9IC8vIG5hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2JsYWNrLWFuZC13
aGl0ZS5pY28gYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvYmxhY2stYW5kLXdo
aXRlLmljbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42YmRmOWNhNGY4OTZlZmNhODczNWQ0N2VlNTkzZDFjMmY4Mzdm
NWVhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNTgKemNtWntjITN9XmczPEk1ck08c3A/ZmYj
e2pDdCs0TDN1aHZweFZxTUhubjxCazFhTUFDSjdqaH1AZlJFcmtuZHxKCmJFd0hWUGI3TklpOCph
fXpfaDBYfjJLPiQ0XnZ0SVJ7Ump6ZAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3doaXRlLTF4MS5wbmcgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvd2hpdGUtMXgxLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
Y2Y3YTZjYTA1YmZmYzkzMDVjOGRlYmNiYzI5ZWYwZDFhNWM3Yjc0CkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAxMDMKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5qM0NVeDFTQlZ2MmoyczZpaTZ5
cDd9bE1XYz9zbGo3STtKIUdjYSVxCnVnREBrKnRUX0B1S157KlIjfUpPfCR2Xik4d2BYQWUkTW87
Y25hSmxyYVJ5SVVLYkxoKjJ+N1lTaDhjX2kKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164615</attachid>
            <date>2012-09-18 13:50:00 -0700</date>
            <delta_ts>2012-09-18 17:26:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96135-20120918134927.patch</filename>
            <type>text/plain</type>
            <size>10736</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGQ3M2E0YTVhOTFkYjVjM2UyZTc5NTcyYWU3Y2Y2ZjkzMGFmOThkMmUuLjc1NTY5OTU5NGUwMGZi
MzFhNGZhM2ZkN2I4OWE5NDUxNzdjNDlmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTItMDktMDcgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFdlYkltYWdlIHNob3VsZCB1c2UgSW1hZ2VEZWNvZGVy
IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyBmb3IgcHJlcGFyYXRpb24gb2YgZGVmZXJyZWQgaW1hZ2UgZGVjb2RpbmcuCisg
ICAgICAgIEltYWdlU291cmNlIHdpbGwgYmUgdXNlZCBhcyBhIHBvcnRhbCB0byBhY2Nlc3MgZGVm
ZXJyZWQgaW1hZ2UgZGVjb2RlcgorICAgICAgICBieSBCaXRtYXBJbWFnZSwgaXQgc2hvdWxkIG5v
dCBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggV2ViS2l0IEFQSXMuCisKKyAgICAgICAgV2ViSW1hZ2Ug
bm93IGNhbGxzIEltYWdlRGVjb2RlciBkaXJlY3RseSB3aGljaCBpcyB0aGUgYWN0dWFsCisgICAg
ICAgIGltcGxlbWVudGF0aW9uIG9mIGFuIGltYWdlIGRlY29kZXIuCisKKyAgICAgICAgVGVzdHM6
IFdlYkltYWdlVGVzdC5QTkdJbWFnZQorICAgICAgICAgICAgICAgV2ViSW1hZ2VUZXN0LklDT0lt
YWdlCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBzcmMvV2ViSW1hZ2VTa2lh
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW1hZ2U6OmZyb21EYXRhKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKToKKyAgICAgICAgKiB0ZXN0cy9XZWJJbWFn
ZVRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnJl
YWRGaWxlKToKKyAgICAgICAgKFdlYktpdDo6VEVTVCk6CisgICAgICAgICogdGVzdHMvZGF0YS9i
bGFjay1hbmQtd2hpdGUuaWNvOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9kYXRhL3doaXRlLTF4
MS5wbmc6IEFkZGVkLgorCiAyMDEyLTA5LTE4ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bn
b29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQ3JlYXRlIGEgZmxhZyB0byBl
bmFibGUgUGVlckNvbm5lY3Rpb24wMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXgg
ZWRlYmYxYjNjODU1M2FjZDQxZjlhMmRlZDVkNTA2NWVkYzZhMDZhNC4uYjE2YTYwMThhZjI5ZWMy
MGI1OGFmYTJiYmVlNTUyZjg0NjQ0NWE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBp
CkBAIC0xMDMsNiArMTAzLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9XZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVySW1wbFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJGcmFtZVRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvblRlc3QuY3Bw
JywKKyAgICAgICAgICAgICd0ZXN0cy9XZWJJbWFnZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0
ZXN0cy9XZWJNZWRpYVBsYXllckNsaWVudEltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVz
dHMvV2ViUGFnZU5ld1NlcmlhbGl6ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2Vi
UGFnZVNlcmlhbGl6ZXJUZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW1hZ2VTa2lhLmNwcAppbmRleCBlMWE5MjYwNTA2MjgxZDg5YTI4ZmEwY2QyNDAzM2QwMzk3MTgw
NWM3Li5hNzU4Y2ZjMmIwMzk4ZTEyOWFjOTdmZjQzOWZhNTFkZTQ2NGFmMTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiSW1h
Z2VTb3VyY2UuaCIKKyNpbmNsdWRlICJJbWFnZURlY29kZXIuaCIKICNpbmNsdWRlICJOYXRpdmVJ
bWFnZVNraWEuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKIApAQCAtNTEsMTkgKzUxLDIw
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJJbWFnZSBXZWJJbWFnZTo6ZnJvbURhdGEoY29u
c3QgV2ViRGF0YSYgZGF0YSwgY29uc3QgV2ViU2l6ZSYgZGVzaXJlZFNpemUpCiB7Ci0gICAgSW1h
Z2VTb3VyY2Ugc291cmNlOwotICAgIHNvdXJjZS5zZXREYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPihkYXRhKS5nZXQoKSwgdHJ1ZSk7Ci0gICAgaWYgKCFzb3VyY2UuaXNTaXplQXZhaWxhYmxl
KCkpCisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+KGRhdGEpOworICAgIE93blB0cjxJbWFnZURlY29kZXI+IGRlY29kZXIoYWRvcHRQdHIo
SW1hZ2VEZWNvZGVyOjpjcmVhdGUoKmJ1ZmZlci5nZXQoKSwgSW1hZ2VTb3VyY2U6OkFscGhhUHJl
bXVsdGlwbGllZCwgSW1hZ2VTb3VyY2U6OkdhbW1hQW5kQ29sb3JQcm9maWxlQXBwbGllZCkpKTsK
KyAgICBkZWNvZGVyLT5zZXREYXRhKGJ1ZmZlci5nZXQoKSwgdHJ1ZSk7CisgICAgaWYgKCFkZWNv
ZGVyLT5pc1NpemVBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIFdlYkltYWdlKCk7CiAKICAg
ICAvLyBGcmFtZXMgYXJlIGFycmFuZ2VkIGJ5IGRlY3JlYXNpbmcgc2l6ZSwgdGhlbiBkZWNyZWFz
aW5nIGJpdCBkZXB0aC4KICAgICAvLyBQaWNrIHRoZSBmcmFtZSBjbG9zZXN0IHRvIHxkZXNpcmVk
U2l6ZXwncyBhcmVhIHdpdGhvdXQgYmVpbmcgc21hbGxlciwKICAgICAvLyB3aGljaCBoYXMgdGhl
IGhpZ2hlc3QgYml0IGRlcHRoLgotICAgIGNvbnN0IHNpemVfdCBmcmFtZUNvdW50ID0gc291cmNl
LmZyYW1lQ291bnQoKTsKKyAgICBjb25zdCBzaXplX3QgZnJhbWVDb3VudCA9IGRlY29kZXItPmZy
YW1lQ291bnQoKTsKICAgICBzaXplX3QgaW5kZXggPSAwOyAgLy8gRGVmYXVsdCB0byBmaXJzdCBm
cmFtZSBpZiBub25lIGFyZSBsYXJnZSBlbm91Z2guCiAgICAgaW50IGZyYW1lQXJlYUF0SW5kZXgg
PSAwOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnJhbWVDb3VudDsgKytpKSB7Ci0gICAg
ICAgIGNvbnN0IEludFNpemUgZnJhbWVTaXplID0gc291cmNlLmZyYW1lU2l6ZUF0SW5kZXgoaSk7
CisgICAgICAgIGNvbnN0IEludFNpemUgZnJhbWVTaXplID0gZGVjb2Rlci0+ZnJhbWVTaXplQXRJ
bmRleChpKTsKICAgICAgICAgaWYgKFdlYlNpemUoZnJhbWVTaXplKSA9PSBkZXNpcmVkU2l6ZSkg
ewogICAgICAgICAgICAgaW5kZXggPSBpOwogICAgICAgICAgICAgYnJlYWs7ICAvLyBQZXJmZWN0
IG1hdGNoLgpAQCAtNzksMTEgKzgwLDE1IEBAIFdlYkltYWdlIFdlYkltYWdlOjpmcm9tRGF0YShj
b25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJTaXplJiBkZXNpcmVkU2l6ZSkKICAgICAgICAg
fQogICAgIH0KIAotICAgIE93blB0cjxOYXRpdmVJbWFnZVNraWE+IGZyYW1lID0gYWRvcHRQdHIo
c291cmNlLmNyZWF0ZUZyYW1lQXRJbmRleChpbmRleCkpOworICAgIEltYWdlRnJhbWUqIGZyYW1l
ID0gZGVjb2Rlci0+ZnJhbWVCdWZmZXJBdEluZGV4KGluZGV4KTsKICAgICBpZiAoIWZyYW1lKQog
ICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsKIAotICAgIHJldHVybiBXZWJJbWFnZShmcmFtZS0+
Yml0bWFwKCkpOworICAgIE93blB0cjxOYXRpdmVJbWFnZVNraWE+IGltYWdlID0gYWRvcHRQdHIo
ZnJhbWUtPmFzTmV3TmF0aXZlSW1hZ2UoKSk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0
dXJuIFdlYkltYWdlKCk7CisKKyAgICByZXR1cm4gV2ViSW1hZ2UoaW1hZ2UtPmJpdG1hcCgpKTsK
IH0KIAogV2ViVmVjdG9yPFdlYkltYWdlPiBXZWJJbWFnZTo6ZnJhbWVzRnJvbURhdGEoY29uc3Qg
V2ViRGF0YSYgZGF0YSkKQEAgLTkxLDI2ICs5NiwzMSBAQCBXZWJWZWN0b3I8V2ViSW1hZ2U+IFdl
YkltYWdlOjpmcmFtZXNGcm9tRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhKQogICAgIC8vIFRoaXMg
aXMgdG8gcHJvdGVjdCBmcm9tIG1hbGljaW91cyBpbWFnZXMuIEl0IHNob3VsZCBiZSBiaWcgZW5v
dWdoIHRoYXQgaXQncyBuZXZlciBoaXQgaW4gcHJhY2ljZS4KICAgICBjb25zdCBzaXplX3QgbWF4
RnJhbWVDb3VudCA9IDg7CiAKLSAgICBJbWFnZVNvdXJjZSBzb3VyY2U7Ci0gICAgc291cmNlLnNl
dERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KGRhdGEpLmdldCgpLCB0cnVlKTsKLSAgICBp
ZiAoIXNvdXJjZS5pc1NpemVBdmFpbGFibGUoKSkKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBi
dWZmZXIgPSBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSk7CisgICAgT3duUHRyPEltYWdl
RGVjb2Rlcj4gZGVjb2RlcihhZG9wdFB0cihJbWFnZURlY29kZXI6OmNyZWF0ZSgqYnVmZmVyLmdl
dCgpLCBJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVkLCBJbWFnZVNvdXJjZTo6R2FtbWFB
bmRDb2xvclByb2ZpbGVBcHBsaWVkKSkpOworICAgIGRlY29kZXItPnNldERhdGEoYnVmZmVyLmdl
dCgpLCB0cnVlKTsKKyAgICBpZiAoIWRlY29kZXItPmlzU2l6ZUF2YWlsYWJsZSgpKQogICAgICAg
ICByZXR1cm4gV2ViVmVjdG9yPFdlYkltYWdlPigpOwogCiAgICAgLy8gRnJhbWVzIGFyZSBhcnJh
bmdlZCBieSBkZWNyZWFzaW5nIHNpemUsIHRoZW4gZGVjcmVhc2luZyBiaXQgZGVwdGguCiAgICAg
Ly8gS2VlcCB0aGUgZmlyc3QgZnJhbWUgYXQgZXZlcnkgc2l6ZSwgaGFzIHRoZSBoaWdoZXN0IGJp
dCBkZXB0aC4KLSAgICBjb25zdCBzaXplX3QgZnJhbWVDb3VudCA9IHNvdXJjZS5mcmFtZUNvdW50
KCk7CisgICAgY29uc3Qgc2l6ZV90IGZyYW1lQ291bnQgPSBkZWNvZGVyLT5mcmFtZUNvdW50KCk7
CiAgICAgSW50U2l6ZSBsYXN0U2l6ZTsKIAogICAgIFZlY3RvcjxXZWJJbWFnZT4gZnJhbWVzOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RkOjptaW4oZnJhbWVDb3VudCwgbWF4RnJhbWVD
b3VudCk7ICsraSkgewotICAgICAgICBjb25zdCBJbnRTaXplIGZyYW1lU2l6ZSA9IHNvdXJjZS5m
cmFtZVNpemVBdEluZGV4KGkpOworICAgICAgICBjb25zdCBJbnRTaXplIGZyYW1lU2l6ZSA9IGRl
Y29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaSk7CiAgICAgICAgIGlmIChmcmFtZVNpemUgPT0gbGFz
dFNpemUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgbGFzdFNpemUgPSBmcmFtZVNp
emU7CiAKLSAgICAgICAgT3duUHRyPE5hdGl2ZUltYWdlU2tpYT4gZnJhbWUgPSBhZG9wdFB0cihz
b3VyY2UuY3JlYXRlRnJhbWVBdEluZGV4KGkpKTsKLSAgICAgICAgaWYgKGZyYW1lKQotICAgICAg
ICAgICAgZnJhbWVzLmFwcGVuZChXZWJJbWFnZShmcmFtZS0+Yml0bWFwKCkpKTsKKyAgICAgICAg
SW1hZ2VGcmFtZSogZnJhbWUgPSBkZWNvZGVyLT5mcmFtZUJ1ZmZlckF0SW5kZXgoaSk7CisgICAg
ICAgIGlmICghZnJhbWUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBPd25QdHI8
TmF0aXZlSW1hZ2VTa2lhPiBpbWFnZSA9IGFkb3B0UHRyKGZyYW1lLT5hc05ld05hdGl2ZUltYWdl
KCkpOworICAgICAgICBpZiAoaW1hZ2UuZ2V0KCkpCisgICAgICAgICAgICBmcmFtZXMuYXBwZW5k
KFdlYkltYWdlKGltYWdlLT5iaXRtYXAoKSkpOwogICAgIH0KIAogICAgIHJldHVybiBmcmFtZXM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkltYWdlVGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkltYWdlVGVzdC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWVjZjAwZmE4ZjYwNmQ1ZTNlOTQ5MWIyYWY2YTE5YjIxMjk4MzIxOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViSW1hZ2VUZXN0LmNwcApA
QCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8cHVibGljL1dl
YkltYWdlLmg+CisKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViRGF0
YS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJTaXplLmg+CisjaW5jbHVkZSA8d2Via2l0L3N1cHBv
cnQvd2Via2l0X3N1cHBvcnQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgeworCitzdGF0aWMgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+IHJlYWRGaWxlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKQoreworICAgIFN0cmluZyBm
aWxlUGF0aCA9IHdlYmtpdF9zdXBwb3J0OjpHZXRXZWJLaXRSb290RGlyKCk7CisgICAgZmlsZVBh
dGguYXBwZW5kKCIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhLyIpOworICAgIGZp
bGVQYXRoLmFwcGVuZChmaWxlTmFtZSk7CisKKyAgICBsb25nIGxvbmcgZmlsZVNpemU7CisgICAg
aWYgKCFnZXRGaWxlU2l6ZShmaWxlUGF0aCwgZmlsZVNpemUpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBvcGVuRmlsZShmaWxlUGF0aCwgT3Bl
bkZvclJlYWQpOworICAgIGludCBmaWxlTGVuZ3RoID0gc3RhdGljX2Nhc3Q8aW50PihmaWxlU2l6
ZSk7CisgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcihmaWxlTGVuZ3RoKTsKKyAgICByZWFkRnJvbUZp
bGUoaGFuZGxlLCBidWZmZXIuZGF0YSgpLCBmaWxlTGVuZ3RoKTsKKyAgICBjbG9zZUZpbGUoaGFu
ZGxlKTsKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjphZG9wdFZlY3RvcihidWZmZXIpOworfQor
CitURVNUKFdlYkltYWdlVGVzdCwgUE5HSW1hZ2UpCit7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSA9IHJlYWRGaWxlKCJ3aGl0ZS0xeDEucG5nIik7CisgICAgQVNTRVJUX1RSVUUoZGF0
YS5nZXQoKSk7CisKKyAgICBXZWJJbWFnZSBpbWFnZSA9IFdlYkltYWdlOjpmcm9tRGF0YShXZWJE
YXRhKGRhdGEpLCBXZWJTaXplKCkpOworICAgIEVYUEVDVF9UUlVFKGltYWdlLnNpemUoKSA9PSBX
ZWJTaXplKDEsIDEpKTsKKyAgICBTa0F1dG9Mb2NrUGl4ZWxzIGF1dG9Mb2NrKGltYWdlLmdldFNr
Qml0bWFwKCkpOworICAgIEVYUEVDVF9FUShTa0NvbG9yU2V0QVJHQigyNTUsIDI1NSwgMjU1LCAy
NTUpLCBpbWFnZS5nZXRTa0JpdG1hcCgpLmdldENvbG9yKDAsIDApKTsKK30KKworVEVTVChXZWJJ
bWFnZVRlc3QsIElDT0ltYWdlKQoreworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSBy
ZWFkRmlsZSgiYmxhY2stYW5kLXdoaXRlLmljbyIpOworICAgIEFTU0VSVF9UUlVFKGRhdGEuZ2V0
KCkpOworCisgICAgV2ViVmVjdG9yPFdlYkltYWdlPiBpbWFnZXMgPSBXZWJJbWFnZTo6ZnJhbWVz
RnJvbURhdGEoV2ViRGF0YShkYXRhKSk7CisgICAgQVNTRVJUX0VRKDJ1LCBpbWFnZXMuc2l6ZSgp
KTsKKyAgICBFWFBFQ1RfVFJVRShpbWFnZXNbMF0uc2l6ZSgpID09IFdlYlNpemUoMiwgMikpOwor
ICAgIEVYUEVDVF9UUlVFKGltYWdlc1sxXS5zaXplKCkgPT0gV2ViU2l6ZSgxLCAxKSk7CisgICAg
U2tBdXRvTG9ja1BpeGVscyBhdXRvTG9jazEoaW1hZ2VzWzBdLmdldFNrQml0bWFwKCkpOworICAg
IEVYUEVDVF9FUShTa0NvbG9yU2V0QVJHQigyNTUsIDI1NSwgMjU1LCAyNTUpLCBpbWFnZXNbMF0u
Z2V0U2tCaXRtYXAoKS5nZXRDb2xvcigwLCAwKSk7CisgICAgU2tBdXRvTG9ja1BpeGVscyBhdXRv
TG9jazIoaW1hZ2VzWzFdLmdldFNrQml0bWFwKCkpOworICAgIEVYUEVDVF9FUShTa0NvbG9yU2V0
QVJHQigyNTUsIDAsIDAsIDApLCBpbWFnZXNbMV0uZ2V0U2tCaXRtYXAoKS5nZXRDb2xvcigwLCAw
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL2RhdGEvYmxhY2stYW5kLXdoaXRlLmljbyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvZGF0YS9ibGFjay1hbmQtd2hpdGUuaWNvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZGY5Y2E0Zjg5
NmVmY2E4NzM1ZDQ3ZWU1OTNkMWMyZjgzN2Y1ZWEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE1
OAp6Y21ae2MhM31eZzM8STVyTTxzcD9mZiN7akN0KzRMM3VodnB4VnFNSG5uPEJrMWFNQUNKN2po
fUBmUkVya25kfEoKYkV3SFZQYjdOSWk4KmF9el9oMFh+Mks+JDRednRJUntSanpkCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L2RhdGEvd2hpdGUtMXgxLnBuZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS93
aGl0ZS0xeDEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjZjdhNmNhMDViZmZjOTMwNWM4ZGViY2JjMjllZjBk
MWE1YzdiNzQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEwMwp6Y21lQVNATj8ob2xIeWB1VkJx
IWlhMHZwXmozQ1V4MVNCVnYyajJzNmlpNnlwN31sTVdjP3NsajdJO0ohR2NhJXEKdWdEQGsqdFRf
QHVLXnsqUiN9Sk98JHZeKTh3YFhBZSRNbztjbmFKbHJhUnlJVUtiTGgqMn43WVNoOGNfaQoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164637</attachid>
            <date>2012-09-18 17:26:20 -0700</date>
            <delta_ts>2012-09-18 17:27:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96135-20120918172547.patch</filename>
            <type>text/plain</type>
            <size>11183</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDM1Mzk5ZDc2OWFlYTliOGQ2NDA2ZGUxOTFkNDgxN2ZjNDlmZjM3ODEuLjdmZThmODQ3ODQ3YTAy
YTBkYjc2ZTIzZDY1NWIwMGU5NTZhZTRiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTItMDktMDcgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFdlYkltYWdlIHNob3VsZCB1c2UgSW1hZ2VEZWNvZGVy
IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaXMgZm9yIHByZXBhcmF0aW9uIG9mIGRlZmVycmVkIGltYWdlIGRlY29kaW5n
LgorICAgICAgICBJbWFnZVNvdXJjZSB3aWxsIGJlIHVzZWQgYXMgYSBwb3J0YWwgdG8gYWNjZXNz
IGRlZmVycmVkIGltYWdlIGRlY29kZXIKKyAgICAgICAgYnkgQml0bWFwSW1hZ2UsIGl0IHNob3Vs
ZCBub3QgYmUgYWNjZXNzaWJsZSB0aHJvdWdoIFdlYktpdCBBUElzLgorCisgICAgICAgIFdlYklt
YWdlIG5vdyBjYWxscyBJbWFnZURlY29kZXIgZGlyZWN0bHkgd2hpY2ggaXMgdGhlIGFjdHVhbAor
ICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBhbiBpbWFnZSBkZWNvZGVyLgorCisgICAgICAgIFRl
c3RzOiBXZWJJbWFnZVRlc3QuUE5HSW1hZ2UKKyAgICAgICAgICAgICAgIFdlYkltYWdlVGVzdC5J
Q09JbWFnZQorCisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogc3JjL1dlYkltYWdl
U2tpYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkltYWdlOjpmcm9tRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkltYWdlOjpmcmFtZXNGcm9tRGF0YSk6CisgICAgICAgICogdGVzdHMvV2Vi
SW1hZ2VUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpyZWFkRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL2Rh
dGEvYmxhY2stYW5kLXdoaXRlLmljbzogQWRkZWQuCisgICAgICAgICogdGVzdHMvZGF0YS93aGl0
ZS0xeDEucG5nOiBBZGRlZC4KKwogMjAxMi0wOS0xOCAgQWxwaGEgTGFtICA8aGNsYW1AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjg5MzkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBlZGViZjFiM2M4NTUzYWNkNDFmOWEyZGVkNWQ1
MDY1ZWRjNmEwNmE0Li5iMTZhNjAxOGFmMjllYzIwYjU4YWZhMmJiZWU1NTJmODQ2NDQ1YTk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTEwMyw2ICsxMDMsNyBAQAogICAgICAg
ICAgICAgJ3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAnLAogICAg
ICAgICAgICAgJ3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dl
YklucHV0RXZlbnRDb252ZXJzaW9uVGVzdC5jcHAnLAorICAgICAgICAgICAgJ3Rlc3RzL1dlYklt
YWdlVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1w
bFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJQYWdlTmV3U2VyaWFsaXplclRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJQYWdlU2VyaWFsaXplclRlc3QuY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwCmluZGV4IGUxYTkyNjA1
MDYyODFkODlhMjhmYTBjZDI0MDMzZDAzOTcxODA1YzcuLjAxOThhNjgwNjJkYWY4ODE1OTc3Y2Fi
OTkyZDU3YWViOGVmZmYwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkltYWdlU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1h
Z2VTa2lhLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5j
bHVkZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJJbWFnZVNvdXJjZS5oIgorI2luY2x1ZGUgIkltYWdl
RGVjb2Rlci5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgogI2luY2x1ZGUgIlNoYXJl
ZEJ1ZmZlci5oIgogCkBAIC01MSwxOSArNTEsMjMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdl
YkltYWdlIFdlYkltYWdlOjpmcm9tRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJT
aXplJiBkZXNpcmVkU2l6ZSkKIHsKLSAgICBJbWFnZVNvdXJjZSBzb3VyY2U7Ci0gICAgc291cmNl
LnNldERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KGRhdGEpLmdldCgpLCB0cnVlKTsKLSAg
ICBpZiAoIXNvdXJjZS5pc1NpemVBdmFpbGFibGUoKSkKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBidWZmZXIgPSBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSk7CisgICAgT3duUHRyPElt
YWdlRGVjb2Rlcj4gZGVjb2RlcihhZG9wdFB0cihJbWFnZURlY29kZXI6OmNyZWF0ZSgqYnVmZmVy
LmdldCgpLCBJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVkLCBJbWFnZVNvdXJjZTo6R2Ft
bWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKSkpOworICAgIGlmICghZGVjb2RlcikKKyAgICAgICAg
cmV0dXJuIFdlYkltYWdlKCk7CisKKyAgICBkZWNvZGVyLT5zZXREYXRhKGJ1ZmZlci5nZXQoKSwg
dHJ1ZSk7CisgICAgaWYgKCFkZWNvZGVyLT5pc1NpemVBdmFpbGFibGUoKSkKICAgICAgICAgcmV0
dXJuIFdlYkltYWdlKCk7CiAKICAgICAvLyBGcmFtZXMgYXJlIGFycmFuZ2VkIGJ5IGRlY3JlYXNp
bmcgc2l6ZSwgdGhlbiBkZWNyZWFzaW5nIGJpdCBkZXB0aC4KICAgICAvLyBQaWNrIHRoZSBmcmFt
ZSBjbG9zZXN0IHRvIHxkZXNpcmVkU2l6ZXwncyBhcmVhIHdpdGhvdXQgYmVpbmcgc21hbGxlciwK
ICAgICAvLyB3aGljaCBoYXMgdGhlIGhpZ2hlc3QgYml0IGRlcHRoLgotICAgIGNvbnN0IHNpemVf
dCBmcmFtZUNvdW50ID0gc291cmNlLmZyYW1lQ291bnQoKTsKKyAgICBjb25zdCBzaXplX3QgZnJh
bWVDb3VudCA9IGRlY29kZXItPmZyYW1lQ291bnQoKTsKICAgICBzaXplX3QgaW5kZXggPSAwOyAg
Ly8gRGVmYXVsdCB0byBmaXJzdCBmcmFtZSBpZiBub25lIGFyZSBsYXJnZSBlbm91Z2guCiAgICAg
aW50IGZyYW1lQXJlYUF0SW5kZXggPSAwOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnJh
bWVDb3VudDsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEludFNpemUgZnJhbWVTaXplID0gc291cmNl
LmZyYW1lU2l6ZUF0SW5kZXgoaSk7CisgICAgICAgIGNvbnN0IEludFNpemUgZnJhbWVTaXplID0g
ZGVjb2Rlci0+ZnJhbWVTaXplQXRJbmRleChpKTsKICAgICAgICAgaWYgKFdlYlNpemUoZnJhbWVT
aXplKSA9PSBkZXNpcmVkU2l6ZSkgewogICAgICAgICAgICAgaW5kZXggPSBpOwogICAgICAgICAg
ICAgYnJlYWs7ICAvLyBQZXJmZWN0IG1hdGNoLgpAQCAtNzksMTEgKzgzLDE1IEBAIFdlYkltYWdl
IFdlYkltYWdlOjpmcm9tRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhLCBjb25zdCBXZWJTaXplJiBk
ZXNpcmVkU2l6ZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIE93blB0cjxOYXRpdmVJbWFnZVNr
aWE+IGZyYW1lID0gYWRvcHRQdHIoc291cmNlLmNyZWF0ZUZyYW1lQXRJbmRleChpbmRleCkpOwor
ICAgIEltYWdlRnJhbWUqIGZyYW1lID0gZGVjb2Rlci0+ZnJhbWVCdWZmZXJBdEluZGV4KGluZGV4
KTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsKIAotICAgIHJl
dHVybiBXZWJJbWFnZShmcmFtZS0+Yml0bWFwKCkpOworICAgIE93blB0cjxOYXRpdmVJbWFnZVNr
aWE+IGltYWdlID0gYWRvcHRQdHIoZnJhbWUtPmFzTmV3TmF0aXZlSW1hZ2UoKSk7CisgICAgaWYg
KCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIFdlYkltYWdlKCk7CisKKyAgICByZXR1cm4gV2ViSW1h
Z2UoaW1hZ2UtPmJpdG1hcCgpKTsKIH0KIAogV2ViVmVjdG9yPFdlYkltYWdlPiBXZWJJbWFnZTo6
ZnJhbWVzRnJvbURhdGEoY29uc3QgV2ViRGF0YSYgZGF0YSkKQEAgLTkxLDI2ICs5OSwzNCBAQCBX
ZWJWZWN0b3I8V2ViSW1hZ2U+IFdlYkltYWdlOjpmcmFtZXNGcm9tRGF0YShjb25zdCBXZWJEYXRh
JiBkYXRhKQogICAgIC8vIFRoaXMgaXMgdG8gcHJvdGVjdCBmcm9tIG1hbGljaW91cyBpbWFnZXMu
IEl0IHNob3VsZCBiZSBiaWcgZW5vdWdoIHRoYXQgaXQncyBuZXZlciBoaXQgaW4gcHJhY2ljZS4K
ICAgICBjb25zdCBzaXplX3QgbWF4RnJhbWVDb3VudCA9IDg7CiAKLSAgICBJbWFnZVNvdXJjZSBz
b3VyY2U7Ci0gICAgc291cmNlLnNldERhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KGRhdGEp
LmdldCgpLCB0cnVlKTsKLSAgICBpZiAoIXNvdXJjZS5pc1NpemVBdmFpbGFibGUoKSkKKyAgICBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0
YSk7CisgICAgT3duUHRyPEltYWdlRGVjb2Rlcj4gZGVjb2RlcihhZG9wdFB0cihJbWFnZURlY29k
ZXI6OmNyZWF0ZSgqYnVmZmVyLmdldCgpLCBJbWFnZVNvdXJjZTo6QWxwaGFQcmVtdWx0aXBsaWVk
LCBJbWFnZVNvdXJjZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVBcHBsaWVkKSkpOworICAgIGlmICgh
ZGVjb2RlcikKKyAgICAgICAgcmV0dXJuIFdlYlZlY3RvcjxXZWJJbWFnZT4oKTsKKworICAgIGRl
Y29kZXItPnNldERhdGEoYnVmZmVyLmdldCgpLCB0cnVlKTsKKyAgICBpZiAoIWRlY29kZXItPmlz
U2l6ZUF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gV2ViVmVjdG9yPFdlYkltYWdlPigpOwog
CiAgICAgLy8gRnJhbWVzIGFyZSBhcnJhbmdlZCBieSBkZWNyZWFzaW5nIHNpemUsIHRoZW4gZGVj
cmVhc2luZyBiaXQgZGVwdGguCiAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZnJhbWUgYXQgZXZlcnkg
c2l6ZSwgaGFzIHRoZSBoaWdoZXN0IGJpdCBkZXB0aC4KLSAgICBjb25zdCBzaXplX3QgZnJhbWVD
b3VudCA9IHNvdXJjZS5mcmFtZUNvdW50KCk7CisgICAgY29uc3Qgc2l6ZV90IGZyYW1lQ291bnQg
PSBkZWNvZGVyLT5mcmFtZUNvdW50KCk7CiAgICAgSW50U2l6ZSBsYXN0U2l6ZTsKIAogICAgIFZl
Y3RvcjxXZWJJbWFnZT4gZnJhbWVzOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RkOjpt
aW4oZnJhbWVDb3VudCwgbWF4RnJhbWVDb3VudCk7ICsraSkgewotICAgICAgICBjb25zdCBJbnRT
aXplIGZyYW1lU2l6ZSA9IHNvdXJjZS5mcmFtZVNpemVBdEluZGV4KGkpOworICAgICAgICBjb25z
dCBJbnRTaXplIGZyYW1lU2l6ZSA9IGRlY29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaSk7CiAgICAg
ICAgIGlmIChmcmFtZVNpemUgPT0gbGFzdFNpemUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgbGFzdFNpemUgPSBmcmFtZVNpemU7CiAKLSAgICAgICAgT3duUHRyPE5hdGl2ZUltYWdl
U2tpYT4gZnJhbWUgPSBhZG9wdFB0cihzb3VyY2UuY3JlYXRlRnJhbWVBdEluZGV4KGkpKTsKLSAg
ICAgICAgaWYgKGZyYW1lKQotICAgICAgICAgICAgZnJhbWVzLmFwcGVuZChXZWJJbWFnZShmcmFt
ZS0+Yml0bWFwKCkpKTsKKyAgICAgICAgSW1hZ2VGcmFtZSogZnJhbWUgPSBkZWNvZGVyLT5mcmFt
ZUJ1ZmZlckF0SW5kZXgoaSk7CisgICAgICAgIGlmICghZnJhbWUpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICBPd25QdHI8TmF0aXZlSW1hZ2VTa2lhPiBpbWFnZSA9IGFkb3B0UHRy
KGZyYW1lLT5hc05ld05hdGl2ZUltYWdlKCkpOworICAgICAgICBpZiAoaW1hZ2UuZ2V0KCkpCisg
ICAgICAgICAgICBmcmFtZXMuYXBwZW5kKFdlYkltYWdlKGltYWdlLT5iaXRtYXAoKSkpOwogICAg
IH0KIAogICAgIHJldHVybiBmcmFtZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYkltYWdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1dlYkltYWdlVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk2ODE3NmNmNjk2N2MzYTcyNTYzN2U5MzY4
Yjk4MTQ0ZTUyNzcwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvV2ViSW1hZ2VUZXN0LmNwcApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJJbWFnZS5oPgorCisjaW5jbHVkZSAiRmlsZVN5c3Rl
bS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+
CisjaW5jbHVkZSA8cHVibGljL1dlYkRhdGEuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5o
PgorI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIHsK
Kworc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiByZWFkRmlsZShjb25zdCBjaGFyKiBm
aWxlTmFtZSkKK3sKKyAgICBTdHJpbmcgZmlsZVBhdGggPSB3ZWJraXRfc3VwcG9ydDo6R2V0V2Vi
S2l0Um9vdERpcigpOworICAgIGZpbGVQYXRoLmFwcGVuZCgiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvZGF0YS8iKTsKKyAgICBmaWxlUGF0aC5hcHBlbmQoZmlsZU5hbWUpOworCisgICAg
bG9uZyBsb25nIGZpbGVTaXplOworICAgIGlmICghZ2V0RmlsZVNpemUoZmlsZVBhdGgsIGZpbGVT
aXplKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxl
ID0gb3BlbkZpbGUoZmlsZVBhdGgsIE9wZW5Gb3JSZWFkKTsKKyAgICBpbnQgZmlsZUxlbmd0aCA9
IHN0YXRpY19jYXN0PGludD4oZmlsZVNpemUpOworICAgIFZlY3RvcjxjaGFyPiBidWZmZXIoZmls
ZUxlbmd0aCk7CisgICAgcmVhZEZyb21GaWxlKGhhbmRsZSwgYnVmZmVyLmRhdGEoKSwgZmlsZUxl
bmd0aCk7CisgICAgY2xvc2VGaWxlKGhhbmRsZSk7CisgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6
YWRvcHRWZWN0b3IoYnVmZmVyKTsKK30KKworVEVTVChXZWJJbWFnZVRlc3QsIFBOR0ltYWdlKQor
eworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSByZWFkRmlsZSgid2hpdGUtMXgxLnBu
ZyIpOworICAgIEFTU0VSVF9UUlVFKGRhdGEuZ2V0KCkpOworCisgICAgV2ViSW1hZ2UgaW1hZ2Ug
PSBXZWJJbWFnZTo6ZnJvbURhdGEoV2ViRGF0YShkYXRhKSwgV2ViU2l6ZSgpKTsKKyAgICBFWFBF
Q1RfVFJVRShpbWFnZS5zaXplKCkgPT0gV2ViU2l6ZSgxLCAxKSk7CisgICAgU2tBdXRvTG9ja1Bp
eGVscyBhdXRvTG9jayhpbWFnZS5nZXRTa0JpdG1hcCgpKTsKKyAgICBFWFBFQ1RfRVEoU2tDb2xv
clNldEFSR0IoMjU1LCAyNTUsIDI1NSwgMjU1KSwgaW1hZ2UuZ2V0U2tCaXRtYXAoKS5nZXRDb2xv
cigwLCAwKSk7Cit9CisKK1RFU1QoV2ViSW1hZ2VUZXN0LCBJQ09JbWFnZSkKK3sKKyAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBkYXRhID0gcmVhZEZpbGUoImJsYWNrLWFuZC13aGl0ZS5pY28iKTsK
KyAgICBBU1NFUlRfVFJVRShkYXRhLmdldCgpKTsKKworICAgIFdlYlZlY3RvcjxXZWJJbWFnZT4g
aW1hZ2VzID0gV2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKFdlYkRhdGEoZGF0YSkpOworICAgIEFT
U0VSVF9FUSgydSwgaW1hZ2VzLnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUoaW1hZ2VzWzBdLnNp
emUoKSA9PSBXZWJTaXplKDIsIDIpKTsKKyAgICBFWFBFQ1RfVFJVRShpbWFnZXNbMV0uc2l6ZSgp
ID09IFdlYlNpemUoMSwgMSkpOworICAgIFNrQXV0b0xvY2tQaXhlbHMgYXV0b0xvY2sxKGltYWdl
c1swXS5nZXRTa0JpdG1hcCgpKTsKKyAgICBFWFBFQ1RfRVEoU2tDb2xvclNldEFSR0IoMjU1LCAy
NTUsIDI1NSwgMjU1KSwgaW1hZ2VzWzBdLmdldFNrQml0bWFwKCkuZ2V0Q29sb3IoMCwgMCkpOwor
ICAgIFNrQXV0b0xvY2tQaXhlbHMgYXV0b0xvY2syKGltYWdlc1sxXS5nZXRTa0JpdG1hcCgpKTsK
KyAgICBFWFBFQ1RfRVEoU2tDb2xvclNldEFSR0IoMjU1LCAwLCAwLCAwKSwgaW1hZ2VzWzFdLmdl
dFNrQml0bWFwKCkuZ2V0Q29sb3IoMCwgMCkpOworfQorCitURVNUKFdlYkltYWdlVGVzdCwgQmFk
SW1hZ2UpCit7CisgICAgY29uc3QgY2hhciBiYWRJbWFnZVtdID0gImhlbGxvIHdvcmxkIjsKKyAg
ICBXZWJWZWN0b3I8V2ViSW1hZ2U+IGltYWdlcyA9IFdlYkltYWdlOjpmcmFtZXNGcm9tRGF0YShX
ZWJEYXRhKGJhZEltYWdlKSk7CisgICAgQVNTRVJUX0VRKDB1LCBpbWFnZXMuc2l6ZSgpKTsKKwor
ICAgIFdlYkltYWdlIGltYWdlID0gV2ViSW1hZ2U6OmZyb21EYXRhKFdlYkRhdGEoYmFkSW1hZ2Up
LCBXZWJTaXplKCkpOworICAgIEVYUEVDVF9UUlVFKGltYWdlLmdldFNrQml0bWFwKCkuZW1wdHko
KSk7CisgICAgRVhQRUNUX1RSVUUoaW1hZ2UuZ2V0U2tCaXRtYXAoKS5pc051bGwoKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L2RhdGEvYmxhY2stYW5kLXdoaXRlLmljbyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
ZGF0YS9ibGFjay1hbmQtd2hpdGUuaWNvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiZGY5Y2E0Zjg5NmVmY2E4NzM1
ZDQ3ZWU1OTNkMWMyZjgzN2Y1ZWEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE1OAp6Y21ae2Mh
M31eZzM8STVyTTxzcD9mZiN7akN0KzRMM3VodnB4VnFNSG5uPEJrMWFNQUNKN2pofUBmUkVya25k
fEoKYkV3SFZQYjdOSWk4KmF9el9oMFh+Mks+JDRednRJUntSanpkCgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvd2hp
dGUtMXgxLnBuZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS93aGl0ZS0xeDEu
cG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNjZjdhNmNhMDViZmZjOTMwNWM4ZGViY2JjMjllZjBkMWE1YzdiNzQK
R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEwMwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXmoz
Q1V4MVNCVnYyajJzNmlpNnlwN31sTVdjP3NsajdJO0ohR2NhJXEKdWdEQGsqdFRfQHVLXnsqUiN9
Sk98JHZeKTh3YFhBZSRNbztjbmFKbHJhUnlJVUtiTGgqMn43WVNoOGNfaQoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164638</attachid>
            <date>2012-09-18 17:27:50 -0700</date>
            <delta_ts>2012-09-19 11:40:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96135-20120918172717.patch</filename>
            <type>text/plain</type>
            <size>11221</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDM1Mzk5ZDc2OWFlYTliOGQ2NDA2ZGUxOTFkNDgxN2ZjNDlmZjM3ODEuLmFlOWFjYmYyYzQ2NTcy
NjYyZmE2NGUwODE5YzJlZTI2YWVmNzVhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTItMDktMDcgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFdlYkltYWdlIHNob3VsZCB1c2UgSW1hZ2VEZWNvZGVy
IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaXMgZm9yIHByZXBhcmF0aW9uIG9mIGRlZmVycmVkIGltYWdlIGRlY29kaW5n
LgorICAgICAgICBJbWFnZVNvdXJjZSB3aWxsIGJlIHVzZWQgYXMgYSBwb3J0YWwgdG8gYWNjZXNz
IGRlZmVycmVkIGltYWdlIGRlY29kZXIKKyAgICAgICAgYnkgQml0bWFwSW1hZ2UsIGl0IHNob3Vs
ZCBub3QgYmUgYWNjZXNzaWJsZSB0aHJvdWdoIFdlYktpdCBBUElzLgorCisgICAgICAgIFdlYklt
YWdlIG5vdyBjYWxscyBJbWFnZURlY29kZXIgZGlyZWN0bHkgd2hpY2ggaXMgdGhlIGFjdHVhbAor
ICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBhbiBpbWFnZSBkZWNvZGVyLgorCisgICAgICAgIFRl
c3RzOiBXZWJJbWFnZVRlc3QuUE5HSW1hZ2UKKyAgICAgICAgICAgICAgIFdlYkltYWdlVGVzdC5J
Q09JbWFnZQorICAgICAgICAgICAgICAgV2ViSW1hZ2VUZXN0LkJhZEltYWdlCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBzcmMvV2ViSW1hZ2VTa2lhLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSW1hZ2U6OmZyb21EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW1hZ2U6
OmZyYW1lc0Zyb21EYXRhKToKKyAgICAgICAgKiB0ZXN0cy9XZWJJbWFnZVRlc3QuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnJlYWRGaWxlKToKKyAgICAg
ICAgKFdlYktpdDo6VEVTVCk6CisgICAgICAgICogdGVzdHMvZGF0YS9ibGFjay1hbmQtd2hpdGUu
aWNvOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9kYXRhL3doaXRlLTF4MS5wbmc6IEFkZGVkLgor
CiAyMDEyLTA5LTE4ICBBbHBoYSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyODkzOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXBpCmluZGV4IGVkZWJmMWIzYzg1NTNhY2Q0MWY5YTJkZWQ1ZDUwNjVlZGM2YTA2YTQuLmIxNmE2
MDE4YWYyOWVjMjBiNThhZmEyYmJlZTU1MmY4NDY0NDVhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwaQpAQCAtMTAzLDYgKzEwMyw3IEBACiAgICAgICAgICAgICAndGVzdHMvV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2Vi
RnJhbWVUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNp
b25UZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMvV2ViSW1hZ2VUZXN0LmNwcCcsCiAgICAg
ICAgICAgICAndGVzdHMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsVGVzdC5jcHAnLAogICAgICAg
ICAgICAgJ3Rlc3RzL1dlYlBhZ2VOZXdTZXJpYWxpemVyVGVzdC5jcHAnLAogICAgICAgICAgICAg
J3Rlc3RzL1dlYlBhZ2VTZXJpYWxpemVyVGVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkltYWdlU2tpYS5jcHAKaW5kZXggZTFhOTI2MDUwNjI4MWQ4OWEyOGZhMGNkMjQw
MzNkMDM5NzE4MDVjNy4uMDE5OGE2ODA2MmRhZjg4MTU5NzdjYWI5OTJkNTdhZWI4ZWZmZjAwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbWFnZVNraWEuY3BwCkBAIC0zMSw3
ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJJbWFnZS5oIgotI2lu
Y2x1ZGUgIkltYWdlU291cmNlLmgiCisjaW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCiAjaW5jbHVk
ZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKQEAgLTUx
LDE5ICs1MSwyMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViSW1hZ2UgV2ViSW1hZ2U6OmZy
b21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEsIGNvbnN0IFdlYlNpemUmIGRlc2lyZWRTaXplKQog
ewotICAgIEltYWdlU291cmNlIHNvdXJjZTsKLSAgICBzb3VyY2Uuc2V0RGF0YShQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4oZGF0YSkuZ2V0KCksIHRydWUpOwotICAgIGlmICghc291cmNlLmlzU2l6
ZUF2YWlsYWJsZSgpKQorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPihkYXRhKTsKKyAgICBPd25QdHI8SW1hZ2VEZWNvZGVyPiBkZWNvZGVy
KGFkb3B0UHRyKEltYWdlRGVjb2Rlcjo6Y3JlYXRlKCpidWZmZXIuZ2V0KCksIEltYWdlU291cmNl
OjpBbHBoYVByZW11bHRpcGxpZWQsIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUFw
cGxpZWQpKSk7CisgICAgaWYgKCFkZWNvZGVyKQorICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsK
KworICAgIGRlY29kZXItPnNldERhdGEoYnVmZmVyLmdldCgpLCB0cnVlKTsKKyAgICBpZiAoIWRl
Y29kZXItPmlzU2l6ZUF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsKIAog
ICAgIC8vIEZyYW1lcyBhcmUgYXJyYW5nZWQgYnkgZGVjcmVhc2luZyBzaXplLCB0aGVuIGRlY3Jl
YXNpbmcgYml0IGRlcHRoLgogICAgIC8vIFBpY2sgdGhlIGZyYW1lIGNsb3Nlc3QgdG8gfGRlc2ly
ZWRTaXplfCdzIGFyZWEgd2l0aG91dCBiZWluZyBzbWFsbGVyLAogICAgIC8vIHdoaWNoIGhhcyB0
aGUgaGlnaGVzdCBiaXQgZGVwdGguCi0gICAgY29uc3Qgc2l6ZV90IGZyYW1lQ291bnQgPSBzb3Vy
Y2UuZnJhbWVDb3VudCgpOworICAgIGNvbnN0IHNpemVfdCBmcmFtZUNvdW50ID0gZGVjb2Rlci0+
ZnJhbWVDb3VudCgpOwogICAgIHNpemVfdCBpbmRleCA9IDA7ICAvLyBEZWZhdWx0IHRvIGZpcnN0
IGZyYW1lIGlmIG5vbmUgYXJlIGxhcmdlIGVub3VnaC4KICAgICBpbnQgZnJhbWVBcmVhQXRJbmRl
eCA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFtZUNvdW50OyArK2kpIHsKLSAg
ICAgICAgY29uc3QgSW50U2l6ZSBmcmFtZVNpemUgPSBzb3VyY2UuZnJhbWVTaXplQXRJbmRleChp
KTsKKyAgICAgICAgY29uc3QgSW50U2l6ZSBmcmFtZVNpemUgPSBkZWNvZGVyLT5mcmFtZVNpemVB
dEluZGV4KGkpOwogICAgICAgICBpZiAoV2ViU2l6ZShmcmFtZVNpemUpID09IGRlc2lyZWRTaXpl
KSB7CiAgICAgICAgICAgICBpbmRleCA9IGk7CiAgICAgICAgICAgICBicmVhazsgIC8vIFBlcmZl
Y3QgbWF0Y2guCkBAIC03OSwxMSArODMsMTUgQEAgV2ViSW1hZ2UgV2ViSW1hZ2U6OmZyb21EYXRh
KGNvbnN0IFdlYkRhdGEmIGRhdGEsIGNvbnN0IFdlYlNpemUmIGRlc2lyZWRTaXplKQogICAgICAg
ICB9CiAgICAgfQogCi0gICAgT3duUHRyPE5hdGl2ZUltYWdlU2tpYT4gZnJhbWUgPSBhZG9wdFB0
cihzb3VyY2UuY3JlYXRlRnJhbWVBdEluZGV4KGluZGV4KSk7CisgICAgSW1hZ2VGcmFtZSogZnJh
bWUgPSBkZWNvZGVyLT5mcmFtZUJ1ZmZlckF0SW5kZXgoaW5kZXgpOwogICAgIGlmICghZnJhbWUp
CiAgICAgICAgIHJldHVybiBXZWJJbWFnZSgpOwogCi0gICAgcmV0dXJuIFdlYkltYWdlKGZyYW1l
LT5iaXRtYXAoKSk7CisgICAgT3duUHRyPE5hdGl2ZUltYWdlU2tpYT4gaW1hZ2UgPSBhZG9wdFB0
cihmcmFtZS0+YXNOZXdOYXRpdmVJbWFnZSgpKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICBy
ZXR1cm4gV2ViSW1hZ2UoKTsKKworICAgIHJldHVybiBXZWJJbWFnZShpbWFnZS0+Yml0bWFwKCkp
OwogfQogCiBXZWJWZWN0b3I8V2ViSW1hZ2U+IFdlYkltYWdlOjpmcmFtZXNGcm9tRGF0YShjb25z
dCBXZWJEYXRhJiBkYXRhKQpAQCAtOTEsMjYgKzk5LDM0IEBAIFdlYlZlY3RvcjxXZWJJbWFnZT4g
V2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEpCiAgICAgLy8gVGhp
cyBpcyB0byBwcm90ZWN0IGZyb20gbWFsaWNpb3VzIGltYWdlcy4gSXQgc2hvdWxkIGJlIGJpZyBl
bm91Z2ggdGhhdCBpdCdzIG5ldmVyIGhpdCBpbiBwcmFjaWNlLgogICAgIGNvbnN0IHNpemVfdCBt
YXhGcmFtZUNvdW50ID0gODsKIAotICAgIEltYWdlU291cmNlIHNvdXJjZTsKLSAgICBzb3VyY2Uu
c2V0RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSkuZ2V0KCksIHRydWUpOwotICAg
IGlmICghc291cmNlLmlzU2l6ZUF2YWlsYWJsZSgpKQorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IGJ1ZmZlciA9IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPihkYXRhKTsKKyAgICBPd25QdHI8SW1h
Z2VEZWNvZGVyPiBkZWNvZGVyKGFkb3B0UHRyKEltYWdlRGVjb2Rlcjo6Y3JlYXRlKCpidWZmZXIu
Z2V0KCksIEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQsIEltYWdlU291cmNlOjpHYW1t
YUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpKSk7CisgICAgaWYgKCFkZWNvZGVyKQorICAgICAgICBy
ZXR1cm4gV2ViVmVjdG9yPFdlYkltYWdlPigpOworCisgICAgZGVjb2Rlci0+c2V0RGF0YShidWZm
ZXIuZ2V0KCksIHRydWUpOworICAgIGlmICghZGVjb2Rlci0+aXNTaXplQXZhaWxhYmxlKCkpCiAg
ICAgICAgIHJldHVybiBXZWJWZWN0b3I8V2ViSW1hZ2U+KCk7CiAKICAgICAvLyBGcmFtZXMgYXJl
IGFycmFuZ2VkIGJ5IGRlY3JlYXNpbmcgc2l6ZSwgdGhlbiBkZWNyZWFzaW5nIGJpdCBkZXB0aC4K
ICAgICAvLyBLZWVwIHRoZSBmaXJzdCBmcmFtZSBhdCBldmVyeSBzaXplLCBoYXMgdGhlIGhpZ2hl
c3QgYml0IGRlcHRoLgotICAgIGNvbnN0IHNpemVfdCBmcmFtZUNvdW50ID0gc291cmNlLmZyYW1l
Q291bnQoKTsKKyAgICBjb25zdCBzaXplX3QgZnJhbWVDb3VudCA9IGRlY29kZXItPmZyYW1lQ291
bnQoKTsKICAgICBJbnRTaXplIGxhc3RTaXplOwogCiAgICAgVmVjdG9yPFdlYkltYWdlPiBmcmFt
ZXM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGQ6Om1pbihmcmFtZUNvdW50LCBtYXhG
cmFtZUNvdW50KTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEludFNpemUgZnJhbWVTaXplID0gc291
cmNlLmZyYW1lU2l6ZUF0SW5kZXgoaSk7CisgICAgICAgIGNvbnN0IEludFNpemUgZnJhbWVTaXpl
ID0gZGVjb2Rlci0+ZnJhbWVTaXplQXRJbmRleChpKTsKICAgICAgICAgaWYgKGZyYW1lU2l6ZSA9
PSBsYXN0U2l6ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBsYXN0U2l6ZSA9IGZy
YW1lU2l6ZTsKIAotICAgICAgICBPd25QdHI8TmF0aXZlSW1hZ2VTa2lhPiBmcmFtZSA9IGFkb3B0
UHRyKHNvdXJjZS5jcmVhdGVGcmFtZUF0SW5kZXgoaSkpOwotICAgICAgICBpZiAoZnJhbWUpCi0g
ICAgICAgICAgICBmcmFtZXMuYXBwZW5kKFdlYkltYWdlKGZyYW1lLT5iaXRtYXAoKSkpOworICAg
ICAgICBJbWFnZUZyYW1lKiBmcmFtZSA9IGRlY29kZXItPmZyYW1lQnVmZmVyQXRJbmRleChpKTsK
KyAgICAgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIE93
blB0cjxOYXRpdmVJbWFnZVNraWE+IGltYWdlID0gYWRvcHRQdHIoZnJhbWUtPmFzTmV3TmF0aXZl
SW1hZ2UoKSk7CisgICAgICAgIGlmIChpbWFnZS5nZXQoKSkKKyAgICAgICAgICAgIGZyYW1lcy5h
cHBlbmQoV2ViSW1hZ2UoaW1hZ2UtPmJpdG1hcCgpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZy
YW1lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViSW1hZ2VU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViSW1hZ2VUZXN0LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mOTY4MTc2Y2Y2OTY3YzNhNzI1NjM3ZTkzNjhiOTgxNDRlNTI3NzBhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJJbWFnZVRlc3Qu
Y3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8cHVi
bGljL1dlYkltYWdlLmg+CisKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMv
V2ViRGF0YS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJTaXplLmg+CisjaW5jbHVkZSA8d2Via2l0
L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgeworCitzdGF0aWMgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IHJlYWRGaWxlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKQoreworICAgIFN0
cmluZyBmaWxlUGF0aCA9IHdlYmtpdF9zdXBwb3J0OjpHZXRXZWJLaXRSb290RGlyKCk7CisgICAg
ZmlsZVBhdGguYXBwZW5kKCIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhLyIpOwor
ICAgIGZpbGVQYXRoLmFwcGVuZChmaWxlTmFtZSk7CisKKyAgICBsb25nIGxvbmcgZmlsZVNpemU7
CisgICAgaWYgKCFnZXRGaWxlU2l6ZShmaWxlUGF0aCwgZmlsZVNpemUpKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBvcGVuRmlsZShmaWxlUGF0
aCwgT3BlbkZvclJlYWQpOworICAgIGludCBmaWxlTGVuZ3RoID0gc3RhdGljX2Nhc3Q8aW50Pihm
aWxlU2l6ZSk7CisgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcihmaWxlTGVuZ3RoKTsKKyAgICByZWFk
RnJvbUZpbGUoaGFuZGxlLCBidWZmZXIuZGF0YSgpLCBmaWxlTGVuZ3RoKTsKKyAgICBjbG9zZUZp
bGUoaGFuZGxlKTsKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjphZG9wdFZlY3RvcihidWZmZXIp
OworfQorCitURVNUKFdlYkltYWdlVGVzdCwgUE5HSW1hZ2UpCit7CisgICAgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gZGF0YSA9IHJlYWRGaWxlKCJ3aGl0ZS0xeDEucG5nIik7CisgICAgQVNTRVJUX1RS
VUUoZGF0YS5nZXQoKSk7CisKKyAgICBXZWJJbWFnZSBpbWFnZSA9IFdlYkltYWdlOjpmcm9tRGF0
YShXZWJEYXRhKGRhdGEpLCBXZWJTaXplKCkpOworICAgIEVYUEVDVF9UUlVFKGltYWdlLnNpemUo
KSA9PSBXZWJTaXplKDEsIDEpKTsKKyAgICBTa0F1dG9Mb2NrUGl4ZWxzIGF1dG9Mb2NrKGltYWdl
LmdldFNrQml0bWFwKCkpOworICAgIEVYUEVDVF9FUShTa0NvbG9yU2V0QVJHQigyNTUsIDI1NSwg
MjU1LCAyNTUpLCBpbWFnZS5nZXRTa0JpdG1hcCgpLmdldENvbG9yKDAsIDApKTsKK30KKworVEVT
VChXZWJJbWFnZVRlc3QsIElDT0ltYWdlKQoreworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRh
dGEgPSByZWFkRmlsZSgiYmxhY2stYW5kLXdoaXRlLmljbyIpOworICAgIEFTU0VSVF9UUlVFKGRh
dGEuZ2V0KCkpOworCisgICAgV2ViVmVjdG9yPFdlYkltYWdlPiBpbWFnZXMgPSBXZWJJbWFnZTo6
ZnJhbWVzRnJvbURhdGEoV2ViRGF0YShkYXRhKSk7CisgICAgQVNTRVJUX0VRKDJ1LCBpbWFnZXMu
c2l6ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRShpbWFnZXNbMF0uc2l6ZSgpID09IFdlYlNpemUoMiwg
MikpOworICAgIEVYUEVDVF9UUlVFKGltYWdlc1sxXS5zaXplKCkgPT0gV2ViU2l6ZSgxLCAxKSk7
CisgICAgU2tBdXRvTG9ja1BpeGVscyBhdXRvTG9jazEoaW1hZ2VzWzBdLmdldFNrQml0bWFwKCkp
OworICAgIEVYUEVDVF9FUShTa0NvbG9yU2V0QVJHQigyNTUsIDI1NSwgMjU1LCAyNTUpLCBpbWFn
ZXNbMF0uZ2V0U2tCaXRtYXAoKS5nZXRDb2xvcigwLCAwKSk7CisgICAgU2tBdXRvTG9ja1BpeGVs
cyBhdXRvTG9jazIoaW1hZ2VzWzFdLmdldFNrQml0bWFwKCkpOworICAgIEVYUEVDVF9FUShTa0Nv
bG9yU2V0QVJHQigyNTUsIDAsIDAsIDApLCBpbWFnZXNbMV0uZ2V0U2tCaXRtYXAoKS5nZXRDb2xv
cigwLCAwKSk7Cit9CisKK1RFU1QoV2ViSW1hZ2VUZXN0LCBCYWRJbWFnZSkKK3sKKyAgICBjb25z
dCBjaGFyIGJhZEltYWdlW10gPSAiaGVsbG8gd29ybGQiOworICAgIFdlYlZlY3RvcjxXZWJJbWFn
ZT4gaW1hZ2VzID0gV2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKFdlYkRhdGEoYmFkSW1hZ2UpKTsK
KyAgICBBU1NFUlRfRVEoMHUsIGltYWdlcy5zaXplKCkpOworCisgICAgV2ViSW1hZ2UgaW1hZ2Ug
PSBXZWJJbWFnZTo6ZnJvbURhdGEoV2ViRGF0YShiYWRJbWFnZSksIFdlYlNpemUoKSk7CisgICAg
RVhQRUNUX1RSVUUoaW1hZ2UuZ2V0U2tCaXRtYXAoKS5lbXB0eSgpKTsKKyAgICBFWFBFQ1RfVFJV
RShpbWFnZS5nZXRTa0JpdG1hcCgpLmlzTnVsbCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9ibGFjay1hbmQtd2hp
dGUuaWNvIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL2JsYWNrLWFuZC13aGl0
ZS5pY28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmJkZjljYTRmODk2ZWZjYTg3MzVkNDdlZTU5M2QxYzJmODM3ZjVl
YQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTU4CnpjbVp7YyEzfV5nMzxJNXJNPHNwP2ZmI3tq
Q3QrNEwzdWh2cHhWcU1Ibm48QmsxYU1BQ0o3amh9QGZSRXJrbmR8SgpiRXdIVlBiN05JaTgqYX16
X2gwWH4ySz4kNF52dElSe1JqemQKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS93aGl0ZS0xeDEucG5nIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3doaXRlLTF4MS5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Nm
N2E2Y2EwNWJmZmM5MzA1YzhkZWJjYmMyOWVmMGQxYTVjN2I3NApHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMTAzCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeajNDVXgxU0JWdjJqMnM2aWk2eXA3
fWxNV2M/c2xqN0k7SiFHY2ElcQp1Z0RAayp0VF9AdUteeypSI31KT3wkdl4pOHdgWEFlJE1vO2Nu
YUpscmFSeUlVS2JMaCoyfjdZU2g4Y19pCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164759</attachid>
            <date>2012-09-19 11:40:49 -0700</date>
            <delta_ts>2012-09-19 12:17:24 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96135-20120919114015.patch</filename>
            <type>text/plain</type>
            <size>11251</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDE0YzVmZTY5Y2Y3YTJiNTM2NDgwNmEzZDkzZTY3OWM2M2JlM2Y3ZDIuLmRkOTMxYWJjYThkOWEy
Njc0MTYyYjE4ZTA0Mzg1NzgyMjdjNzM2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTItMDktMDcgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFdlYkltYWdlIHNob3VsZCB1c2UgSW1hZ2VEZWNvZGVy
IGRpcmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyBmb3IgcHJlcGFyYXRpb24gb2YgZGVmZXJyZWQgaW1hZ2UgZGVjb2RpbmcuCisg
ICAgICAgIEltYWdlU291cmNlIHdpbGwgYmUgdXNlZCBhcyBhIHBvcnRhbCB0byBhY2Nlc3MgZGVm
ZXJyZWQgaW1hZ2UgZGVjb2RlcgorICAgICAgICBieSBCaXRtYXBJbWFnZSwgaXQgc2hvdWxkIG5v
dCBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggV2ViS2l0IEFQSXMuCisKKyAgICAgICAgV2ViSW1hZ2Ug
bm93IGNhbGxzIEltYWdlRGVjb2RlciBkaXJlY3RseSB3aGljaCBpcyB0aGUgYWN0dWFsCisgICAg
ICAgIGltcGxlbWVudGF0aW9uIG9mIGFuIGltYWdlIGRlY29kZXIuCisKKyAgICAgICAgVGVzdHM6
IFdlYkltYWdlVGVzdC5QTkdJbWFnZQorICAgICAgICAgICAgICAgV2ViSW1hZ2VUZXN0LklDT0lt
YWdlCisgICAgICAgICAgICAgICBXZWJJbWFnZVRlc3QuQmFkSW1hZ2UKKworICAgICAgICAqIFdl
YktpdC5neXBpOgorICAgICAgICAqIHNyYy9XZWJJbWFnZVNraWEuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJbWFnZTo6ZnJvbURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbWFnZTo6ZnJh
bWVzRnJvbURhdGEpOgorICAgICAgICAqIHRlc3RzL1dlYkltYWdlVGVzdC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6cmVhZEZpbGUpOgorICAgICAgICAo
V2ViS2l0OjpURVNUKToKKyAgICAgICAgKiB0ZXN0cy9kYXRhL2JsYWNrLWFuZC13aGl0ZS5pY286
IEFkZGVkLgorICAgICAgICAqIHRlc3RzL2RhdGEvd2hpdGUtMXgxLnBuZzogQWRkZWQuCisKIDIw
MTItMDktMTkgIFJvYmVydCBGbGFjayAgPGZsYWNrckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBTdXBwb3J0IGhpZ2ggRFBJIHNjcm9sbCBiYXIgb24gdG9wIGxldmVsIHdlYiBm
cmFtZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4IGVkZWJmMWIzYzg1NTNhY2Q0
MWY5YTJkZWQ1ZDUwNjVlZGM2YTA2YTQuLmIxNmE2MDE4YWYyOWVjMjBiNThhZmEyYmJlZTU1MmY4
NDY0NDVhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtMTAzLDYgKzEwMyw3
IEBACiAgICAgICAgICAgICAndGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0
LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViRnJhbWVUZXN0LmNwcCcsCiAgICAgICAgICAg
ICAndGVzdHMvV2ViSW5wdXRFdmVudENvbnZlcnNpb25UZXN0LmNwcCcsCisgICAgICAgICAgICAn
dGVzdHMvV2ViSW1hZ2VUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VOZXdTZXJp
YWxpemVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlBhZ2VTZXJpYWxpemVyVGVz
dC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW1hZ2VT
a2lhLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkltYWdlU2tpYS5jcHAKaW5k
ZXggZTFhOTI2MDUwNjI4MWQ4OWEyOGZhMGNkMjQwMzNkMDM5NzE4MDVjNy4uMDE5OGE2ODA2MmRh
Zjg4MTU5NzdjYWI5OTJkNTdhZWI4ZWZmZjAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW1hZ2VTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJbWFnZVNraWEuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCisjaW5j
bHVkZSAiSW1hZ2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCiAjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKQEAgLTUxLDE5ICs1MSwyMyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogV2ViSW1hZ2UgV2ViSW1hZ2U6OmZyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEs
IGNvbnN0IFdlYlNpemUmIGRlc2lyZWRTaXplKQogewotICAgIEltYWdlU291cmNlIHNvdXJjZTsK
LSAgICBzb3VyY2Uuc2V0RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4oZGF0YSkuZ2V0KCks
IHRydWUpOwotICAgIGlmICghc291cmNlLmlzU2l6ZUF2YWlsYWJsZSgpKQorICAgIFJlZlB0cjxT
aGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPihkYXRhKTsKKyAg
ICBPd25QdHI8SW1hZ2VEZWNvZGVyPiBkZWNvZGVyKGFkb3B0UHRyKEltYWdlRGVjb2Rlcjo6Y3Jl
YXRlKCpidWZmZXIuZ2V0KCksIEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQsIEltYWdl
U291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpKSk7CisgICAgaWYgKCFkZWNvZGVy
KQorICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsKKworICAgIGRlY29kZXItPnNldERhdGEoYnVm
ZmVyLmdldCgpLCB0cnVlKTsKKyAgICBpZiAoIWRlY29kZXItPmlzU2l6ZUF2YWlsYWJsZSgpKQog
ICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsKIAogICAgIC8vIEZyYW1lcyBhcmUgYXJyYW5nZWQg
YnkgZGVjcmVhc2luZyBzaXplLCB0aGVuIGRlY3JlYXNpbmcgYml0IGRlcHRoLgogICAgIC8vIFBp
Y2sgdGhlIGZyYW1lIGNsb3Nlc3QgdG8gfGRlc2lyZWRTaXplfCdzIGFyZWEgd2l0aG91dCBiZWlu
ZyBzbWFsbGVyLAogICAgIC8vIHdoaWNoIGhhcyB0aGUgaGlnaGVzdCBiaXQgZGVwdGguCi0gICAg
Y29uc3Qgc2l6ZV90IGZyYW1lQ291bnQgPSBzb3VyY2UuZnJhbWVDb3VudCgpOworICAgIGNvbnN0
IHNpemVfdCBmcmFtZUNvdW50ID0gZGVjb2Rlci0+ZnJhbWVDb3VudCgpOwogICAgIHNpemVfdCBp
bmRleCA9IDA7ICAvLyBEZWZhdWx0IHRvIGZpcnN0IGZyYW1lIGlmIG5vbmUgYXJlIGxhcmdlIGVu
b3VnaC4KICAgICBpbnQgZnJhbWVBcmVhQXRJbmRleCA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBmcmFtZUNvdW50OyArK2kpIHsKLSAgICAgICAgY29uc3QgSW50U2l6ZSBmcmFtZVNp
emUgPSBzb3VyY2UuZnJhbWVTaXplQXRJbmRleChpKTsKKyAgICAgICAgY29uc3QgSW50U2l6ZSBm
cmFtZVNpemUgPSBkZWNvZGVyLT5mcmFtZVNpemVBdEluZGV4KGkpOwogICAgICAgICBpZiAoV2Vi
U2l6ZShmcmFtZVNpemUpID09IGRlc2lyZWRTaXplKSB7CiAgICAgICAgICAgICBpbmRleCA9IGk7
CiAgICAgICAgICAgICBicmVhazsgIC8vIFBlcmZlY3QgbWF0Y2guCkBAIC03OSwxMSArODMsMTUg
QEAgV2ViSW1hZ2UgV2ViSW1hZ2U6OmZyb21EYXRhKGNvbnN0IFdlYkRhdGEmIGRhdGEsIGNvbnN0
IFdlYlNpemUmIGRlc2lyZWRTaXplKQogICAgICAgICB9CiAgICAgfQogCi0gICAgT3duUHRyPE5h
dGl2ZUltYWdlU2tpYT4gZnJhbWUgPSBhZG9wdFB0cihzb3VyY2UuY3JlYXRlRnJhbWVBdEluZGV4
KGluZGV4KSk7CisgICAgSW1hZ2VGcmFtZSogZnJhbWUgPSBkZWNvZGVyLT5mcmFtZUJ1ZmZlckF0
SW5kZXgoaW5kZXgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBXZWJJbWFnZSgp
OwogCi0gICAgcmV0dXJuIFdlYkltYWdlKGZyYW1lLT5iaXRtYXAoKSk7CisgICAgT3duUHRyPE5h
dGl2ZUltYWdlU2tpYT4gaW1hZ2UgPSBhZG9wdFB0cihmcmFtZS0+YXNOZXdOYXRpdmVJbWFnZSgp
KTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm4gV2ViSW1hZ2UoKTsKKworICAgIHJl
dHVybiBXZWJJbWFnZShpbWFnZS0+Yml0bWFwKCkpOwogfQogCiBXZWJWZWN0b3I8V2ViSW1hZ2U+
IFdlYkltYWdlOjpmcmFtZXNGcm9tRGF0YShjb25zdCBXZWJEYXRhJiBkYXRhKQpAQCAtOTEsMjYg
Kzk5LDM0IEBAIFdlYlZlY3RvcjxXZWJJbWFnZT4gV2ViSW1hZ2U6OmZyYW1lc0Zyb21EYXRhKGNv
bnN0IFdlYkRhdGEmIGRhdGEpCiAgICAgLy8gVGhpcyBpcyB0byBwcm90ZWN0IGZyb20gbWFsaWNp
b3VzIGltYWdlcy4gSXQgc2hvdWxkIGJlIGJpZyBlbm91Z2ggdGhhdCBpdCdzIG5ldmVyIGhpdCBp
biBwcmFjaWNlLgogICAgIGNvbnN0IHNpemVfdCBtYXhGcmFtZUNvdW50ID0gODsKIAotICAgIElt
YWdlU291cmNlIHNvdXJjZTsKLSAgICBzb3VyY2Uuc2V0RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4oZGF0YSkuZ2V0KCksIHRydWUpOwotICAgIGlmICghc291cmNlLmlzU2l6ZUF2YWlsYWJs
ZSgpKQorICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPihkYXRhKTsKKyAgICBPd25QdHI8SW1hZ2VEZWNvZGVyPiBkZWNvZGVyKGFkb3B0UHRy
KEltYWdlRGVjb2Rlcjo6Y3JlYXRlKCpidWZmZXIuZ2V0KCksIEltYWdlU291cmNlOjpBbHBoYVBy
ZW11bHRpcGxpZWQsIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZUFwcGxpZWQpKSk7
CisgICAgaWYgKCFkZWNvZGVyKQorICAgICAgICByZXR1cm4gV2ViVmVjdG9yPFdlYkltYWdlPigp
OworCisgICAgZGVjb2Rlci0+c2V0RGF0YShidWZmZXIuZ2V0KCksIHRydWUpOworICAgIGlmICgh
ZGVjb2Rlci0+aXNTaXplQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBXZWJWZWN0b3I8V2Vi
SW1hZ2U+KCk7CiAKICAgICAvLyBGcmFtZXMgYXJlIGFycmFuZ2VkIGJ5IGRlY3JlYXNpbmcgc2l6
ZSwgdGhlbiBkZWNyZWFzaW5nIGJpdCBkZXB0aC4KICAgICAvLyBLZWVwIHRoZSBmaXJzdCBmcmFt
ZSBhdCBldmVyeSBzaXplLCBoYXMgdGhlIGhpZ2hlc3QgYml0IGRlcHRoLgotICAgIGNvbnN0IHNp
emVfdCBmcmFtZUNvdW50ID0gc291cmNlLmZyYW1lQ291bnQoKTsKKyAgICBjb25zdCBzaXplX3Qg
ZnJhbWVDb3VudCA9IGRlY29kZXItPmZyYW1lQ291bnQoKTsKICAgICBJbnRTaXplIGxhc3RTaXpl
OwogCiAgICAgVmVjdG9yPFdlYkltYWdlPiBmcmFtZXM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBzdGQ6Om1pbihmcmFtZUNvdW50LCBtYXhGcmFtZUNvdW50KTsgKytpKSB7Ci0gICAgICAg
IGNvbnN0IEludFNpemUgZnJhbWVTaXplID0gc291cmNlLmZyYW1lU2l6ZUF0SW5kZXgoaSk7Cisg
ICAgICAgIGNvbnN0IEludFNpemUgZnJhbWVTaXplID0gZGVjb2Rlci0+ZnJhbWVTaXplQXRJbmRl
eChpKTsKICAgICAgICAgaWYgKGZyYW1lU2l6ZSA9PSBsYXN0U2l6ZSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICBsYXN0U2l6ZSA9IGZyYW1lU2l6ZTsKIAotICAgICAgICBPd25QdHI8
TmF0aXZlSW1hZ2VTa2lhPiBmcmFtZSA9IGFkb3B0UHRyKHNvdXJjZS5jcmVhdGVGcmFtZUF0SW5k
ZXgoaSkpOwotICAgICAgICBpZiAoZnJhbWUpCi0gICAgICAgICAgICBmcmFtZXMuYXBwZW5kKFdl
YkltYWdlKGZyYW1lLT5iaXRtYXAoKSkpOworICAgICAgICBJbWFnZUZyYW1lKiBmcmFtZSA9IGRl
Y29kZXItPmZyYW1lQnVmZmVyQXRJbmRleChpKTsKKyAgICAgICAgaWYgKCFmcmFtZSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIE93blB0cjxOYXRpdmVJbWFnZVNraWE+IGltYWdl
ID0gYWRvcHRQdHIoZnJhbWUtPmFzTmV3TmF0aXZlSW1hZ2UoKSk7CisgICAgICAgIGlmIChpbWFn
ZS5nZXQoKSkKKyAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoV2ViSW1hZ2UoaW1hZ2UtPmJpdG1h
cCgpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZyYW1lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViSW1hZ2VUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvV2ViSW1hZ2VUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTY4MTc2Y2Y2OTY3YzNh
NzI1NjM3ZTkzNjhiOTgxNDRlNTI3NzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9XZWJJbWFnZVRlc3QuY3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8cHVibGljL1dlYkltYWdlLmg+CisKKyNpbmNsdWRl
ICJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSA8Z3Rl
c3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViRGF0YS5oPgorI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJTaXplLmg+CisjaW5jbHVkZSA8d2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitu
YW1lc3BhY2UgeworCitzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHJlYWRGaWxlKGNv
bnN0IGNoYXIqIGZpbGVOYW1lKQoreworICAgIFN0cmluZyBmaWxlUGF0aCA9IHdlYmtpdF9zdXBw
b3J0OjpHZXRXZWJLaXRSb290RGlyKCk7CisgICAgZmlsZVBhdGguYXBwZW5kKCIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhLyIpOworICAgIGZpbGVQYXRoLmFwcGVuZChmaWxlTmFt
ZSk7CisKKyAgICBsb25nIGxvbmcgZmlsZVNpemU7CisgICAgaWYgKCFnZXRGaWxlU2l6ZShmaWxl
UGF0aCwgZmlsZVNpemUpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFBsYXRmb3JtRmlsZUhh
bmRsZSBoYW5kbGUgPSBvcGVuRmlsZShmaWxlUGF0aCwgT3BlbkZvclJlYWQpOworICAgIGludCBm
aWxlTGVuZ3RoID0gc3RhdGljX2Nhc3Q8aW50PihmaWxlU2l6ZSk7CisgICAgVmVjdG9yPGNoYXI+
IGJ1ZmZlcihmaWxlTGVuZ3RoKTsKKyAgICByZWFkRnJvbUZpbGUoaGFuZGxlLCBidWZmZXIuZGF0
YSgpLCBmaWxlTGVuZ3RoKTsKKyAgICBjbG9zZUZpbGUoaGFuZGxlKTsKKyAgICByZXR1cm4gU2hh
cmVkQnVmZmVyOjphZG9wdFZlY3RvcihidWZmZXIpOworfQorCitURVNUKFdlYkltYWdlVGVzdCwg
UE5HSW1hZ2UpCit7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSA9IHJlYWRGaWxlKCJ3
aGl0ZS0xeDEucG5nIik7CisgICAgQVNTRVJUX1RSVUUoZGF0YS5nZXQoKSk7CisKKyAgICBXZWJJ
bWFnZSBpbWFnZSA9IFdlYkltYWdlOjpmcm9tRGF0YShXZWJEYXRhKGRhdGEpLCBXZWJTaXplKCkp
OworICAgIEVYUEVDVF9UUlVFKGltYWdlLnNpemUoKSA9PSBXZWJTaXplKDEsIDEpKTsKKyAgICBT
a0F1dG9Mb2NrUGl4ZWxzIGF1dG9Mb2NrKGltYWdlLmdldFNrQml0bWFwKCkpOworICAgIEVYUEVD
VF9FUShTa0NvbG9yU2V0QVJHQigyNTUsIDI1NSwgMjU1LCAyNTUpLCBpbWFnZS5nZXRTa0JpdG1h
cCgpLmdldENvbG9yKDAsIDApKTsKK30KKworVEVTVChXZWJJbWFnZVRlc3QsIElDT0ltYWdlKQor
eworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEgPSByZWFkRmlsZSgiYmxhY2stYW5kLXdo
aXRlLmljbyIpOworICAgIEFTU0VSVF9UUlVFKGRhdGEuZ2V0KCkpOworCisgICAgV2ViVmVjdG9y
PFdlYkltYWdlPiBpbWFnZXMgPSBXZWJJbWFnZTo6ZnJhbWVzRnJvbURhdGEoV2ViRGF0YShkYXRh
KSk7CisgICAgQVNTRVJUX0VRKDJ1LCBpbWFnZXMuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRShp
bWFnZXNbMF0uc2l6ZSgpID09IFdlYlNpemUoMiwgMikpOworICAgIEVYUEVDVF9UUlVFKGltYWdl
c1sxXS5zaXplKCkgPT0gV2ViU2l6ZSgxLCAxKSk7CisgICAgU2tBdXRvTG9ja1BpeGVscyBhdXRv
TG9jazEoaW1hZ2VzWzBdLmdldFNrQml0bWFwKCkpOworICAgIEVYUEVDVF9FUShTa0NvbG9yU2V0
QVJHQigyNTUsIDI1NSwgMjU1LCAyNTUpLCBpbWFnZXNbMF0uZ2V0U2tCaXRtYXAoKS5nZXRDb2xv
cigwLCAwKSk7CisgICAgU2tBdXRvTG9ja1BpeGVscyBhdXRvTG9jazIoaW1hZ2VzWzFdLmdldFNr
Qml0bWFwKCkpOworICAgIEVYUEVDVF9FUShTa0NvbG9yU2V0QVJHQigyNTUsIDAsIDAsIDApLCBp
bWFnZXNbMV0uZ2V0U2tCaXRtYXAoKS5nZXRDb2xvcigwLCAwKSk7Cit9CisKK1RFU1QoV2ViSW1h
Z2VUZXN0LCBCYWRJbWFnZSkKK3sKKyAgICBjb25zdCBjaGFyIGJhZEltYWdlW10gPSAiaGVsbG8g
d29ybGQiOworICAgIFdlYlZlY3RvcjxXZWJJbWFnZT4gaW1hZ2VzID0gV2ViSW1hZ2U6OmZyYW1l
c0Zyb21EYXRhKFdlYkRhdGEoYmFkSW1hZ2UpKTsKKyAgICBBU1NFUlRfRVEoMHUsIGltYWdlcy5z
aXplKCkpOworCisgICAgV2ViSW1hZ2UgaW1hZ2UgPSBXZWJJbWFnZTo6ZnJvbURhdGEoV2ViRGF0
YShiYWRJbWFnZSksIFdlYlNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUoaW1hZ2UuZ2V0U2tCaXRt
YXAoKS5lbXB0eSgpKTsKKyAgICBFWFBFQ1RfVFJVRShpbWFnZS5nZXRTa0JpdG1hcCgpLmlzTnVs
bCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvZGF0YS9ibGFjay1hbmQtd2hpdGUuaWNvIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9kYXRhL2JsYWNrLWFuZC13aGl0ZS5pY28KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJkZjljYTRm
ODk2ZWZjYTg3MzVkNDdlZTU5M2QxYzJmODM3ZjVlYQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTU4CnpjbVp7YyEzfV5nMzxJNXJNPHNwP2ZmI3tqQ3QrNEwzdWh2cHhWcU1Ibm48QmsxYU1BQ0o3
amh9QGZSRXJrbmR8SgpiRXdIVlBiN05JaTgqYX16X2gwWH4ySz4kNF52dElSe1JqemQKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvZGF0YS93aGl0ZS0xeDEucG5nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRh
L3doaXRlLTF4MS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NmN2E2Y2EwNWJmZmM5MzA1YzhkZWJjYmMyOWVm
MGQxYTVjN2I3NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTAzCnpjbWVBU0BOPyhvbEh5YHVW
QnEhaWEwdnBeajNDVXgxU0JWdjJqMnM2aWk2eXA3fWxNV2M/c2xqN0k7SiFHY2ElcQp1Z0RAayp0
VF9AdUteeypSI31KT3wkdl4pOHdgWEFlJE1vO2NuYUpscmFSeUlVS2JMaCoyfjdZU2g4Y19pCgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>