<?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>84122</bug_id>
          
          <creation_ts>2012-04-16 19:43:03 -0700</creation_ts>
          <short_desc>[Chromium] Clean up texture ids on the impl side when losing the context</short_desc>
          <delta_ts>2012-04-17 17:53:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Labour">piman</reporter>
          <assigned_to name="Antoine Labour">piman</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>603712</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-04-16 19:43:03 -0700</bug_when>
    <thetext>[Chromium] Clean up texture ids on the impl side when losing the context</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603716</commentid>
    <comment_count>1</comment_count>
      <attachid>137466</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-04-16 19:46:54 -0700</bug_when>
    <thetext>Created attachment 137466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603723</commentid>
    <comment_count>2</comment_count>
      <attachid>137466</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-16 19:52:20 -0700</bug_when>
    <thetext>Comment on attachment 137466
Patch

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

Looks like the correct code but needs tests to prevent regressions

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

this won&apos;t fly (will fail an SVN presubmit check). Seems like it shouldn&apos;t be too hard to construct a unit test for this - just magick up a CCLayerTreeHostImpl, stick an instance of each CCLayerImpl type touched here into the tree, synthesize a lost context, then recreate with a mock context that explodes if you try to bind a non-zero texture and do a draw pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603730</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-04-16 19:59:25 -0700</bug_when>
    <thetext>Yep, sounds good - I was starting to look into how to best add a test, your suggestion sounds excellent.

Enne: could you give a look at the CCTiledLayerImpl to make sure I&apos;m not doing anything incredibly stupid. In particular, my understanding is that we&apos;re ensured that m_tiler is != NULL when we get a lost context, but wanted to double-check on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603733</commentid>
    <comment_count>4</comment_count>
      <attachid>137466</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-16 20:09:45 -0700</bug_when>
    <thetext>Comment on attachment 137466
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:240
&gt; +    m_tiler-&gt;reset();

I think if you lose the context prior to the first commit, m_tiler would be null.  We should probably just always create a tiler to not need these sorts of checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603734</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-16 20:12:14 -0700</bug_when>
    <thetext>The CCTiledLayerImpl wouldn&apos;t exist in the impl tree until the first commit, and after the commit we always do a pushPropertiesTo() before trying to draw it. So I think it&apos;ll always be there by the time we can notice a lost context (although perhaps this is a fragile assumption)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603739</commentid>
    <comment_count>6</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-16 20:14:01 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; The CCTiledLayerImpl wouldn&apos;t exist in the impl tree until the first commit, and after the commit we always do a pushPropertiesTo() before trying to draw it. So I think it&apos;ll always be there by the time we can notice a lost context (although perhaps this is a fragile assumption)

Hmm, I&apos;ll buy that argument.  It still seems a little sketchy in general, but should be ok here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603783</commentid>
    <comment_count>7</comment_count>
      <attachid>137476</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-04-16 21:59:41 -0700</bug_when>
    <thetext>Created attachment 137476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603785</commentid>
    <comment_count>8</comment_count>
      <attachid>137476</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-16 22:02:08 -0700</bug_when>
    <thetext>Comment on attachment 137476
Patch

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

R=me

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp:1157
&gt; +// ressource that wasn&apos;t created by it (resources created by

typo ressource -&gt; resource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603787</commentid>
    <comment_count>9</comment_count>
      <attachid>137478</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-04-16 22:06:43 -0700</bug_when>
    <thetext>Created attachment 137478
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603803</commentid>
    <comment_count>10</comment_count>
      <attachid>137478</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-16 22:34:55 -0700</bug_when>
    <thetext>Comment on attachment 137478
Patch for landing

Attachment 137478 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12419363</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604125</commentid>
    <comment_count>11</comment_count>
      <attachid>137478</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-17 10:28:56 -0700</bug_when>
    <thetext>Comment on attachment 137478
Patch for landing

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

&gt; Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp:1265
&gt; +class FakeVideoFrameProvider: public VideoFrameProvider {

Looks like you collided with http://trac.webkit.org/changeset/114335 - you want to implement WebKit::WebVideoFrameProvider</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604489</commentid>
    <comment_count>12</comment_count>
      <attachid>137639</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-04-17 16:58:16 -0700</bug_when>
    <thetext>Created attachment 137639
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604530</commentid>
    <comment_count>13</comment_count>
      <attachid>137639</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 17:53:00 -0700</bug_when>
    <thetext>Comment on attachment 137639
Patch for landing

Clearing flags on attachment: 137639

Committed r114473: &lt;http://trac.webkit.org/changeset/114473&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604531</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 17:53:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137466</attachid>
            <date>2012-04-16 19:46:54 -0700</date>
            <delta_ts>2012-04-16 21:59:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84122-20120416194653.patch</filename>
            <type>text/plain</type>
            <size>4701</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcwNTA4NzY5OGZkNTE1
ZTUxMTRjNzE5ODI5NmZhZjgyZDlkYmE2Yi4uNjRkYjllMTlmNjI2YzY1YWIzMDg5NDUzZmQ0ZmEz
ZTQ1MjJhYWMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA0LTE2ICBBbnRv
aW5lIExhYm91ciAgPHBpbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIENs
ZWFuIHVwIHRleHR1cmUgaWRzIG9uIHRoZSBpbXBsIHNpZGUgd2hlbiBsb3NpbmcgdGhlIGNvbnRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MTIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RleHR1cmVMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlTGF5
ZXJJbXBsOjpkaWRMb3NlQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RpbGVk
TGF5ZXJJbXBsOjpkaWRMb3NlQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmg6CisgICAg
ICAgIChDQ1RpbGVkTGF5ZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVmlkZW9M
YXllckltcGw6OmRpZExvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuaDoKKyAgICAg
ICAgKENDVmlkZW9MYXllckltcGwpOgorCiAyMDEyLTA0LTE2ICBTaGVyaWZmIEJvdCAgPHdlYmtp
dC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTE0Mjg1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAKaW5kZXggMTJj
YmFiNjI1NzA2NjdjODhkYzg3NzA5NjY4ODMyMzg4YzI0Zjk0Zi4uODUzNGE4Yzg1ZmRkZGJmMTBk
ODNlNzI4M2QwMmY1NTRmOGU1OGYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllcklt
cGwuY3BwCkBAIC0xMDUsNiArMTA1LDcgQEAgdm9pZCBDQ1RleHR1cmVMYXllckltcGw6OmR1bXBM
YXllclByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQpIGNvbnN0CiAKIHZvaWQg
Q0NUZXh0dXJlTGF5ZXJJbXBsOjpkaWRMb3NlQ29udGV4dCgpCiB7CisgICAgbV90ZXh0dXJlSWQg
PSAwOwogICAgIGlmIChtX2lvU3VyZmFjZUlkKSB7CiAgICAgICAgIC8vIFdlIGRvbid0IGhhdmUg
YSB2YWxpZCB0ZXh0dXJlIElEIGluIHRoZSBuZXcgY29udGV4dDsgaG93ZXZlciwKICAgICAgICAg
Ly8gdGhlIElPU3VyZmFjZSBpcyBzdGlsbCB2YWxpZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVy
SW1wbC5jcHAKaW5kZXggYzVkMmE0NTkzOWU0OTBjY2JiM2RkMDlhYmQ3ZWFhM2NjMGU0YjdkZi4u
ZWMyMmE5ZmQ2NzZiOTA4MmY3MDg1YzlhMjlhNTBhNGNkYWUyMTlhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaWxlZExheWVySW1wbC5jcHAKQEAgLTIzNSw2ICsyMzUsMTEgQEAgUmVnaW9uIENDVGlsZWRM
YXllckltcGw6OnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCkgY29uc3QKICAgICByZXR1cm4g
bV90aWxlci0+b3BhcXVlUmVnaW9uSW5MYXllclJlY3QodmlzaWJsZUxheWVyUmVjdCgpKTsKIH0K
IAordm9pZCBDQ1RpbGVkTGF5ZXJJbXBsOjpkaWRMb3NlQ29udGV4dCgpCit7CisgICAgbV90aWxl
ci0+cmVzZXQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oCmlu
ZGV4IGNlM2NkNjJmODQ2ZWUyYzVlN2FiYmU5N2EwN2VjZWRhMTY4ZDk4NjkuLjZmYzVjOWU0OWRm
NmFlZDIyMTA1OTBkNWQ2NDExNDM4MmMwNTY0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJ
bXBsLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIGJvb2wgY29udGVudHNTd2l6emxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNTd2l6emxlZDsgfQogCiAgICAgdmlydHVhbCBS
ZWdpb24gdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkTG9zZUNvbnRleHQoKSBPVkVSUklERTsKIAogICAgIHR5cGVkZWYgUHJv
Z3JhbUJpbmRpbmc8VmVydGV4U2hhZGVyVGlsZSwgRnJhZ21lbnRTaGFkZXJSR0JBVGV4QWxwaGE+
IFByb2dyYW07CiAgICAgLy8gU2hhZGVyIHByb2dyYW0gdGhhdCBzd2FwcyByZWQgYW5kIGJsdWUg
Y29tcG9uZW50cyBvZiB0ZXh0dXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcApp
bmRleCBjNzFlMGUwY2U0OTBiNDkzM2Y5Njk5NWRhNTU2ZTczMmVkOGIyNDNhLi5lYTU2YjM5Y2Y4
YjY0MDI0NzQyNDI4ZjhiOGZjOWE2NjExZmJlNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5
ZXJJbXBsLmNwcApAQCAtMjUzLDYgKzI1MywxMiBAQCB2b2lkIENDVmlkZW9MYXllckltcGw6OmRp
ZFVwZGF0ZU1hdHJpeChjb25zdCBmbG9hdCBtYXRyaXhbMTZdKQogICAgIHNldE5lZWRzUmVkcmF3
KCk7CiB9CiAKK3ZvaWQgQ0NWaWRlb0xheWVySW1wbDo6ZGlkTG9zZUNvbnRleHQoKQoreworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBNYXhQbGFuZXM7ICsraSkKKyAgICAgICAgbV90ZXh0
dXJlc1tpXS5tX3RleHR1cmUuY2xlYXIoKTsKK30KKwogdm9pZCBDQ1ZpZGVvTGF5ZXJJbXBsOjpz
ZXROZWVkc1JlZHJhdygpCiB7CiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdEltcGwpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVv
TGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1ZpZGVvTGF5ZXJJbXBsLmgKaW5kZXggZTExOTIzMDZmNDY3M2UyYjBkYjIwZmVkYmFhZDFm
NDQ2Mzk2ZjM5Ny4uMDdmN2RiNmE4MmQ2ZTg5NGRhMmNhNjM0ODcyNWU5MzVhMDExZjNhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NW
aWRlb0xheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuaApAQCAtNzEsNiArNzEsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVGcmFtZSgpOyAvLyBDYWxsYWJsZSBvbiBpbXBsIHRo
cmVhZC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlTWF0cml4KGNvbnN0IGZsb2F0Kik7IC8v
IENhbGxhYmxlIG9uIGltcGwgdGhyZWFkLgogCisgICAgdmlydHVhbCB2b2lkIGRpZExvc2VDb250
ZXh0KCkgT1ZFUlJJREU7CisKICAgICB2b2lkIHNldE5lZWRzUmVkcmF3KCk7CiAKICAgICBzdGF0
aWMgY29uc3QgZmxvYXQgeXV2MlJHQls5XTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137476</attachid>
            <date>2012-04-16 21:59:41 -0700</date>
            <delta_ts>2012-04-16 22:06:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84122-20120416215940.patch</filename>
            <type>text/plain</type>
            <size>11578</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcwNTA4NzY5OGZkNTE1
ZTUxMTRjNzE5ODI5NmZhZjgyZDlkYmE2Yi4uYWJlZGZiYmI5MGVhNTBmOTNkNjZmNThiMjA2NWY4
NWJmNzExOTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA0LTE2ICBBbnRv
aW5lIExhYm91ciAgPHBpbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIENs
ZWFuIHVwIHRleHR1cmUgaWRzIG9uIHRoZSBpbXBsIHNpZGUgd2hlbiBsb3NpbmcgdGhlIGNvbnRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MTIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGVk
IGJ5IENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmRvbnRVc2VPbGRSZXNvdXJjZXNBZnRlckxvc3RD
b250ZXh0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZUxheWVySW1wbDo6
ZGlkTG9zZUNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGlsZWRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaWxlZExheWVySW1w
bDo6ZGlkTG9zZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oOgorICAgICAgICAoQ0NU
aWxlZExheWVySW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NWaWRlb0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJbXBs
OjpkaWRMb3NlQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmg6CisgICAgICAgIChDQ1Zp
ZGVvTGF5ZXJJbXBsKToKKwogMjAxMi0wNC0xNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExNDI4
NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwuY3BwCmluZGV4IDEyY2JhYjYyNTcw
NjY3Yzg4ZGM4NzcwOTY2ODgzMjM4OGMyNGY5NGYuLjg1MzRhOGM4NWZkZGRiZjEwZDgzZTcyODNk
MDJmNTU0ZjhlNThmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmNwcApA
QCAtMTA1LDYgKzEwNSw3IEBAIHZvaWQgQ0NUZXh0dXJlTGF5ZXJJbXBsOjpkdW1wTGF5ZXJQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25zdAogCiB2b2lkIENDVGV4dHVy
ZUxheWVySW1wbDo6ZGlkTG9zZUNvbnRleHQoKQogeworICAgIG1fdGV4dHVyZUlkID0gMDsKICAg
ICBpZiAobV9pb1N1cmZhY2VJZCkgewogICAgICAgICAvLyBXZSBkb24ndCBoYXZlIGEgdmFsaWQg
dGV4dHVyZSBJRCBpbiB0aGUgbmV3IGNvbnRleHQ7IGhvd2V2ZXIsCiAgICAgICAgIC8vIHRoZSBJ
T1N1cmZhY2UgaXMgc3RpbGwgdmFsaWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3Bw
CmluZGV4IGM1ZDJhNDU5MzllNDkwY2NiYjNkZDA5YWJkN2VhYTNjYzBlNGI3ZGYuLmVjMjJhOWZk
Njc2YjkwODJmNzA4NWM5YTI5YTUwYTRjZGFlMjE5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRM
YXllckltcGwuY3BwCkBAIC0yMzUsNiArMjM1LDExIEBAIFJlZ2lvbiBDQ1RpbGVkTGF5ZXJJbXBs
Ojp2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fdGlsZXIt
Pm9wYXF1ZVJlZ2lvbkluTGF5ZXJSZWN0KHZpc2libGVMYXllclJlY3QoKSk7CiB9CiAKK3ZvaWQg
Q0NUaWxlZExheWVySW1wbDo6ZGlkTG9zZUNvbnRleHQoKQoreworICAgIG1fdGlsZXItPnJlc2V0
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaAppbmRleCBjZTNj
ZDYyZjg0NmVlMmM1ZTdhYmJlOTdhMDdlY2VkYTE2OGQ5ODY5Li42ZmM1YzllNDlkZjZhZWQyMjEw
NTkwZDVkNjQxMTQzODJjMDU2NDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oCkBA
IC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRlbnRzU3dpenpsZWQoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRlbnRzU3dpenpsZWQ7IH0KIAogICAgIHZpcnR1YWwgUmVnaW9uIHZp
c2libGVDb250ZW50T3BhcXVlUmVnaW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZExvc2VDb250ZXh0KCkgT1ZFUlJJREU7CiAKICAgICB0eXBlZGVmIFByb2dyYW1CaW5k
aW5nPFZlcnRleFNoYWRlclRpbGUsIEZyYWdtZW50U2hhZGVyUkdCQVRleEFscGhhPiBQcm9ncmFt
OwogICAgIC8vIFNoYWRlciBwcm9ncmFtIHRoYXQgc3dhcHMgcmVkIGFuZCBibHVlIGNvbXBvbmVu
dHMgb2YgdGV4dHVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKaW5kZXggYzcx
ZTBlMGNlNDkwYjQ5MzNmOTY5OTVkYTU1NmU3MzJlZDhiMjQzYS4uZWE1NmIzOWNmOGI2NDAyNDc0
MjQyOGY4YjhmYzlhNjYxMWZiZTc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5j
cHAKQEAgLTI1Myw2ICsyNTMsMTIgQEAgdm9pZCBDQ1ZpZGVvTGF5ZXJJbXBsOjpkaWRVcGRhdGVN
YXRyaXgoY29uc3QgZmxvYXQgbWF0cml4WzE2XSkKICAgICBzZXROZWVkc1JlZHJhdygpOwogfQog
Cit2b2lkIENDVmlkZW9MYXllckltcGw6OmRpZExvc2VDb250ZXh0KCkKK3sKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgTWF4UGxhbmVzOyArK2kpCisgICAgICAgIG1fdGV4dHVyZXNbaV0u
bV90ZXh0dXJlLmNsZWFyKCk7Cit9CisKIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6c2V0TmVlZHNS
ZWRyYXcoKQogewogICAgIGlmIChtX2xheWVyVHJlZUhvc3RJbXBsKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1w
bC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRl
b0xheWVySW1wbC5oCmluZGV4IGUxMTkyMzA2ZjQ2NzNlMmIwZGIyMGZlZGJhYWQxZjQ0NjM5NmYz
OTcuLjA3ZjdkYjZhODJkNmU4OTRkYTJjYTYzNDg3MjVlOTM1YTAxMWYzYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXll
ckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1ZpZGVvTGF5ZXJJbXBsLmgKQEAgLTcxLDYgKzcxLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRnJhbWUoKTsgLy8gQ2FsbGFibGUgb24gaW1wbCB0aHJlYWQuCiAg
ICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZU1hdHJpeChjb25zdCBmbG9hdCopOyAvLyBDYWxsYWJs
ZSBvbiBpbXBsIHRocmVhZC4KIAorICAgIHZpcnR1YWwgdm9pZCBkaWRMb3NlQ29udGV4dCgpIE9W
RVJSSURFOworCiAgICAgdm9pZCBzZXROZWVkc1JlZHJhdygpOwogCiAgICAgc3RhdGljIGNvbnN0
IGZsb2F0IHl1djJSR0JbOV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCmluZGV4IDRkYjJkYmNkMWEyNjcxYjc0
YzEwOWNiMGM1MGRlYzU4NmUxN2U2MDQuLjc4MjE3MmEzZWE2MWU2NzA1NTY3OGI5MTJlZjlkODIw
OTAxZjY1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCkBAIC0xMTUzLDQgKzExNTMsMTgzIEBAIFRFU1Rf
RihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsYmFyTGF5ZXJMb3N0Q29udGV4dCkKICAg
ICB9CiB9CiAKKy8vIEZha2UgV2ViR3JhcGhpY3NDb250ZXh0M0QgdGhhdCB3aWxsIGNhdXNlIGEg
ZmFpbHVyZSBpZiB0cnlpbmcgdG8gdXNlIGEKKy8vIHJlc3NvdXJjZSB0aGF0IHdhc24ndCBjcmVh
dGVkIGJ5IGl0IChyZXNvdXJjZXMgY3JlYXRlZCBieQorLy8gRmFrZVdlYkdyYXBoaWNzQ29udGV4
dDNEIGhhdmUgYW4gaWQgb2YgMSkuCitjbGFzcyBTdHJpY3RXZWJHcmFwaGljc0NvbnRleHQzRCA6
IHB1YmxpYyBGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QgeworcHVibGljOgorICAgIHZpcnR1YWwg
V2ViR0xJZCBjcmVhdGVCdWZmZXIoKSB7IHJldHVybiAyOyB9CisgICAgdmlydHVhbCBXZWJHTElk
IGNyZWF0ZUZyYW1lYnVmZmVyKCkgeyByZXR1cm4gMzsgfQorICAgIHZpcnR1YWwgV2ViR0xJZCBj
cmVhdGVQcm9ncmFtKCkgeyByZXR1cm4gNDsgfQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVS
ZW5kZXJidWZmZXIoKSB7IHJldHVybiA1OyB9CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVNo
YWRlcihXR0MzRGVudW0pIHsgcmV0dXJuIDY7IH0KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRl
VGV4dHVyZSgpIHsgcmV0dXJuIDc7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVCdWZmZXIo
V2ViR0xJZCBpZCkKKyAgICB7CisgICAgICAgIGlmIChpZCAhPSAyKQorICAgICAgICAgICAgQURE
X0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGRlbGV0ZSBidWZmZXIgaWQgIiA8PCBpZDsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xJZCBpZCkKKyAgICB7
CisgICAgICAgIGlmIChpZCAhPSAzKQorICAgICAgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5
aW5nIHRvIGRlbGV0ZSBmcmFtZWJ1ZmZlciBpZCAiIDw8IGlkOworICAgIH0KKworICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVQcm9ncmFtKFdlYkdMSWQgaWQpCisgICAgeworICAgICAgICBpZiAoaWQg
IT0gNCkKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIlRyeWluZyB0byBkZWxldGUgcHJv
Z3JhbSBpZCAiIDw8IGlkOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVSZW5kZXJi
dWZmZXIoV2ViR0xJZCBpZCkKKyAgICB7CisgICAgICAgIGlmIChpZCAhPSA1KQorICAgICAgICAg
ICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGRlbGV0ZSByZW5kZXJidWZmZXIgaWQgIiA8
PCBpZDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlU2hhZGVyKFdlYkdMSWQgaWQp
CisgICAgeworICAgICAgICBpZiAoaWQgIT0gNikKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkg
PDwgIlRyeWluZyB0byBkZWxldGUgc2hhZGVyIGlkICIgPDwgaWQ7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIGRlbGV0ZVRleHR1cmUoV2ViR0xJZCBpZCkKKyAgICB7CisgICAgICAgIGlmIChp
ZCAhPSA3KQorICAgICAgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGRlbGV0ZSB0
ZXh0dXJlIGlkICIgPDwgaWQ7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGJpbmRCdWZmZXIo
V0dDM0RlbnVtLCBXZWJHTElkIGlkKQorICAgIHsKKyAgICAgICAgaWYgKGlkICE9IDIgJiYgaWQp
CisgICAgICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJUcnlpbmcgdG8gYmluZCBidWZmZXIgaWQg
IiA8PCBpZDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEZyYW1lYnVmZmVyKFdHQzNE
ZW51bSwgV2ViR0xJZCBpZCkKKyAgICB7CisgICAgICAgIGlmIChpZCAhPSAzICYmIGlkKQorICAg
ICAgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGJpbmQgZnJhbWVidWZmZXIgaWQg
IiA8PCBpZDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgdXNlUHJvZ3JhbShXZWJHTElkIGlk
KQorICAgIHsKKyAgICAgICAgaWYgKGlkICE9IDQpCisgICAgICAgICAgICBBRERfRkFJTFVSRSgp
IDw8ICJUcnlpbmcgdG8gdXNlIHByb2dyYW0gaWQgIiA8PCBpZDsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihXR0MzRGVudW0sIFdlYkdMSWQgaWQpCisgICAgewor
ICAgICAgICBpZiAoaWQgIT0gNSAmJiBpZCkKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkgPDwg
IlRyeWluZyB0byBiaW5kIHJlbmRlcmJ1ZmZlciBpZCAiIDw8IGlkOworICAgIH0KKworICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hTaGFkZXIoV2ViR0xJZCBwcm9ncmFtLCBXZWJHTElkIHNoYWRlcikK
KyAgICB7CisgICAgICAgIGlmICgocHJvZ3JhbSAhPSA0KSB8fCAoc2hhZGVyICE9IDYpKQorICAg
ICAgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGF0dGFjaCBzaGFkZXIgaWQgIiA8
PCBzaGFkZXIgPDwgIiB0byBwcm9ncmFtIGlkICIgPDwgcHJvZ3JhbTsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgYmluZFRleHR1cmUoV0dDM0RlbnVtLCBXZWJHTElkIGlkKQorICAgIHsKKyAg
ICAgICAgaWYgKGlkICE9IDcgJiYgaWQpCisgICAgICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJU
cnlpbmcgdG8gYmluZCB0ZXh0dXJlIGlkICIgPDwgaWQ7CisgICAgfQorCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpCisgICAg
eworICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGlj
c0NvbnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgU3RyaWN0V2ViR3JhcGhpY3NDb250
ZXh0M0QoKSksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7
CisgICAgfQorfTsKKworLy8gRmFrZSB2aWRlbyBmcmFtZSB0aGF0IHJlcHJlc2VudHMgYSA0eDQg
WVVWIHZpZGVvIGZyYW1lLgorY2xhc3MgRmFrZVZpZGVvRnJhbWU6IHB1YmxpYyBXZWJWaWRlb0Zy
YW1lIHsKK3B1YmxpYzoKKyAgICBGYWtlVmlkZW9GcmFtZSgpIHsgbWVtc2V0KG1fZGF0YSwgMHg4
MCwgc2l6ZW9mKG1fZGF0YSkpOyB9CisgICAgdmlydHVhbCB+RmFrZVZpZGVvRnJhbWUoKSB7IH0K
KyAgICB2aXJ0dWFsIEZvcm1hdCBmb3JtYXQoKSBjb25zdCB7IHJldHVybiBGb3JtYXRZVjEyOyB9
CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIDQ7IH0KKyAgICB2
aXJ0dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIDQ7IH0KKyAgICB2aXJ0dWFs
IHVuc2lnbmVkIHBsYW5lcygpIGNvbnN0IHsgcmV0dXJuIDM7IH0KKyAgICB2aXJ0dWFsIGludCBz
dHJpZGUodW5zaWduZWQgcGxhbmUpIGNvbnN0IHsgcmV0dXJuIDQ7IH0KKyAgICB2aXJ0dWFsIGNv
bnN0IHZvaWQqIGRhdGEodW5zaWduZWQgcGxhbmUpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQor
ICAgIHZpcnR1YWwgdW5zaWduZWQgdGV4dHVyZUlkKCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgdW5zaWduZWQgdGV4dHVyZVRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKwor
cHJpdmF0ZToKKyAgICBjaGFyIG1fZGF0YVsxNl07Cit9OworCisvLyBGYWtlIHZpZGVvIGZyYW1l
IHByb3ZpZGVyIHRoYXQgYWx3YXlzIHByb3ZpZGVzIHRoZSBzYW1lIEZha2VWaWRlb0ZyYW1lLgor
Y2xhc3MgRmFrZVZpZGVvRnJhbWVQcm92aWRlcjogcHVibGljIFZpZGVvRnJhbWVQcm92aWRlciB7
CitwdWJsaWM6CisgICAgRmFrZVZpZGVvRnJhbWVQcm92aWRlcigpIDogbV9jbGllbnQoMCkgeyB9
CisgICAgdmlydHVhbCB+RmFrZVZpZGVvRnJhbWVQcm92aWRlcigpCisgICAgeworICAgICAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+c3RvcFVzaW5nUHJvdmlkZXIoKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KENs
aWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CisgICAgdmlydHVhbCBXZWJWaWRl
b0ZyYW1lKiBnZXRDdXJyZW50RnJhbWUoKSB7IHJldHVybiAmbV9mcmFtZTsgfQorICAgIHZpcnR1
YWwgdm9pZCBwdXRDdXJyZW50RnJhbWUoV2ViVmlkZW9GcmFtZSopIHsgfQorCitwcml2YXRlOgor
ICAgIEZha2VWaWRlb0ZyYW1lIG1fZnJhbWU7CisgICAgQ2xpZW50KiBtX2NsaWVudDsKK307CisK
K1RFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgZG9udFVzZU9sZFJlc291cmNlc0FmdGVy
TG9zdENvbnRleHQpCit7CisgICAgbV9ob3N0SW1wbC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIo
Y3JlYXRlQ29udGV4dCgpKTsKKyAgICBtX2hvc3RJbXBsLT5zZXRWaWV3cG9ydFNpemUoSW50U2l6
ZSgxMCwgMTApKTsKKworICAgIE93blB0cjxDQ0xheWVySW1wbD4gcm9vdExheWVyKENDTGF5ZXJJ
bXBsOjpjcmVhdGUoMCkpOworICAgIHJvb3RMYXllci0+c2V0Qm91bmRzKEludFNpemUoMTAsIDEw
KSk7CisgICAgcm9vdExheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDAsIDApKTsKKwor
ICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiB0aWxlTGF5ZXIgPSBDQ1RpbGVkTGF5ZXJJbXBs
OjpjcmVhdGUoMSk7CisgICAgdGlsZUxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTApKTsK
KyAgICB0aWxlTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoMCwgMCkpOworICAgIHRp
bGVMYXllci0+c2V0Q29udGVudEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworICAgIHRpbGVMYXll
ci0+c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgIHRpbGVMYXllci0+c2V0U2tpcHNEcmF3KGZh
bHNlKTsKKyAgICBPd25QdHI8Q0NMYXllclRpbGluZ0RhdGE+IHRpbGluZ0RhdGEoQ0NMYXllclRp
bGluZ0RhdGE6OmNyZWF0ZShJbnRTaXplKDEwLCAxMCksIENDTGF5ZXJUaWxpbmdEYXRhOjpOb0Jv
cmRlclRleGVscykpOworICAgIHRpbGluZ0RhdGEtPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkp
OworICAgIHRpbGVMYXllci0+c2V0VGlsaW5nRGF0YSgqdGlsaW5nRGF0YSk7CisgICAgdGlsZUxh
eWVyLT5wdXNoVGlsZVByb3BlcnRpZXMoMCwgMCwgMSwgSW50UmVjdCgwLCAwLCAxMCwgMTApKTsK
KyAgICByb290TGF5ZXItPmFkZENoaWxkKHRpbGVMYXllci5yZWxlYXNlKCkpOworCisgICAgT3du
UHRyPENDVGV4dHVyZUxheWVySW1wbD4gdGV4dHVyZUxheWVyID0gQ0NUZXh0dXJlTGF5ZXJJbXBs
OjpjcmVhdGUoMik7CisgICAgdGV4dHVyZUxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTAp
KTsKKyAgICB0ZXh0dXJlTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoMCwgMCkpOwor
ICAgIHRleHR1cmVMYXllci0+c2V0Q29udGVudEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworICAg
IHRleHR1cmVMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgIHRleHR1cmVMYXllci0+
c2V0VGV4dHVyZUlkKDEpOworICAgIHJvb3RMYXllci0+YWRkQ2hpbGQodGV4dHVyZUxheWVyLnJl
bGVhc2UoKSk7CisKKyAgICBGYWtlVmlkZW9GcmFtZVByb3ZpZGVyIHByb3ZpZGVyOworICAgIE93
blB0cjxDQ1ZpZGVvTGF5ZXJJbXBsPiB2aWRlb0xheWVyID0gQ0NWaWRlb0xheWVySW1wbDo6Y3Jl
YXRlKDMsICZwcm92aWRlcik7CisgICAgdmlkZW9MYXllci0+c2V0Qm91bmRzKEludFNpemUoMTAs
IDEwKSk7CisgICAgdmlkZW9MYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgwLCAwKSk7
CisgICAgdmlkZW9MYXllci0+c2V0Q29udGVudEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworICAg
IHZpZGVvTGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICByb290TGF5ZXItPmFkZENo
aWxkKHZpZGVvTGF5ZXIucmVsZWFzZSgpKTsKKworICAgIG1faG9zdEltcGwtPnNldFJvb3RMYXll
cihyb290TGF5ZXIucmVsZWFzZSgpKTsKKworICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6OkZyYW1l
RGF0YSBmcmFtZTsKKyAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZy
YW1lKSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1w
bC0+c3dhcEJ1ZmZlcnMoKTsKKworICAgIC8vIExvc2UgdGhlIGNvbnRleHQsIHJlcGxhY2luZyBp
dCB3aXRoIGEgU3RyaWN0V2ViR3JhcGhpY3NDb250ZXh0M0QsIHRoYXQKKyAgICAvLyB3aWxsIHdh
cm4gaWYgYW55IHJlc291cmNlIGZyb20gdGhlIHByZXZpb3VzIGNvbnRleHQgZ2V0cyB1c2VkLgor
ICAgIG1faG9zdEltcGwtPmluaXRpYWxpemVMYXllclJlbmRlcmVyKFN0cmljdFdlYkdyYXBoaWNz
Q29udGV4dDNEOjpjcmVhdGVHcmFwaGljc0NvbnRleHQoKSk7CisgICAgRVhQRUNUX1RSVUUobV9o
b3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOworICAgIG1faG9zdEltcGwtPmRyYXdMYXll
cnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPnN3YXBCdWZmZXJzKCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137478</attachid>
            <date>2012-04-16 22:06:43 -0700</date>
            <delta_ts>2012-04-17 16:58:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-84122-20120416220642.patch</filename>
            <type>text/plain</type>
            <size>11577</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcwNTA4NzY5OGZkNTE1
ZTUxMTRjNzE5ODI5NmZhZjgyZDlkYmE2Yi4uNjEyMGRkZWU5ZjBkNTllNDI3MDY0NTUxMDU3NDcx
YWRhOTNhODQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA0LTE2ICBBbnRv
aW5lIExhYm91ciAgPHBpbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIENs
ZWFuIHVwIHRleHR1cmUgaWRzIG9uIHRoZSBpbXBsIHNpZGUgd2hlbiBsb3NpbmcgdGhlIGNvbnRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MTIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgVGVzdGVk
IGJ5IENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmRvbnRVc2VPbGRSZXNvdXJjZXNBZnRlckxvc3RD
b250ZXh0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZUxheWVySW1wbDo6
ZGlkTG9zZUNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGlsZWRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaWxlZExheWVySW1w
bDo6ZGlkTG9zZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oOgorICAgICAgICAoQ0NU
aWxlZExheWVySW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NWaWRlb0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJbXBs
OjpkaWRMb3NlQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmg6CisgICAgICAgIChDQ1Zp
ZGVvTGF5ZXJJbXBsKToKKwogMjAxMi0wNC0xNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExNDI4
NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwuY3BwCmluZGV4IDEyY2JhYjYyNTcw
NjY3Yzg4ZGM4NzcwOTY2ODgzMjM4OGMyNGY5NGYuLjg1MzRhOGM4NWZkZGRiZjEwZDgzZTcyODNk
MDJmNTU0ZjhlNThmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmNwcApA
QCAtMTA1LDYgKzEwNSw3IEBAIHZvaWQgQ0NUZXh0dXJlTGF5ZXJJbXBsOjpkdW1wTGF5ZXJQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25zdAogCiB2b2lkIENDVGV4dHVy
ZUxheWVySW1wbDo6ZGlkTG9zZUNvbnRleHQoKQogeworICAgIG1fdGV4dHVyZUlkID0gMDsKICAg
ICBpZiAobV9pb1N1cmZhY2VJZCkgewogICAgICAgICAvLyBXZSBkb24ndCBoYXZlIGEgdmFsaWQg
dGV4dHVyZSBJRCBpbiB0aGUgbmV3IGNvbnRleHQ7IGhvd2V2ZXIsCiAgICAgICAgIC8vIHRoZSBJ
T1N1cmZhY2UgaXMgc3RpbGwgdmFsaWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3Bw
CmluZGV4IGM1ZDJhNDU5MzllNDkwY2NiYjNkZDA5YWJkN2VhYTNjYzBlNGI3ZGYuLmVjMjJhOWZk
Njc2YjkwODJmNzA4NWM5YTI5YTUwYTRjZGFlMjE5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRM
YXllckltcGwuY3BwCkBAIC0yMzUsNiArMjM1LDExIEBAIFJlZ2lvbiBDQ1RpbGVkTGF5ZXJJbXBs
Ojp2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fdGlsZXIt
Pm9wYXF1ZVJlZ2lvbkluTGF5ZXJSZWN0KHZpc2libGVMYXllclJlY3QoKSk7CiB9CiAKK3ZvaWQg
Q0NUaWxlZExheWVySW1wbDo6ZGlkTG9zZUNvbnRleHQoKQoreworICAgIG1fdGlsZXItPnJlc2V0
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaAppbmRleCBjZTNj
ZDYyZjg0NmVlMmM1ZTdhYmJlOTdhMDdlY2VkYTE2OGQ5ODY5Li42ZmM1YzllNDlkZjZhZWQyMjEw
NTkwZDVkNjQxMTQzODJjMDU2NDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oCkBA
IC01Nyw2ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRlbnRzU3dpenpsZWQoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRlbnRzU3dpenpsZWQ7IH0KIAogICAgIHZpcnR1YWwgUmVnaW9uIHZp
c2libGVDb250ZW50T3BhcXVlUmVnaW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZExvc2VDb250ZXh0KCkgT1ZFUlJJREU7CiAKICAgICB0eXBlZGVmIFByb2dyYW1CaW5k
aW5nPFZlcnRleFNoYWRlclRpbGUsIEZyYWdtZW50U2hhZGVyUkdCQVRleEFscGhhPiBQcm9ncmFt
OwogICAgIC8vIFNoYWRlciBwcm9ncmFtIHRoYXQgc3dhcHMgcmVkIGFuZCBibHVlIGNvbXBvbmVu
dHMgb2YgdGV4dHVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKaW5kZXggYzcx
ZTBlMGNlNDkwYjQ5MzNmOTY5OTVkYTU1NmU3MzJlZDhiMjQzYS4uZWE1NmIzOWNmOGI2NDAyNDc0
MjQyOGY4YjhmYzlhNjYxMWZiZTc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5j
cHAKQEAgLTI1Myw2ICsyNTMsMTIgQEAgdm9pZCBDQ1ZpZGVvTGF5ZXJJbXBsOjpkaWRVcGRhdGVN
YXRyaXgoY29uc3QgZmxvYXQgbWF0cml4WzE2XSkKICAgICBzZXROZWVkc1JlZHJhdygpOwogfQog
Cit2b2lkIENDVmlkZW9MYXllckltcGw6OmRpZExvc2VDb250ZXh0KCkKK3sKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgTWF4UGxhbmVzOyArK2kpCisgICAgICAgIG1fdGV4dHVyZXNbaV0u
bV90ZXh0dXJlLmNsZWFyKCk7Cit9CisKIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6c2V0TmVlZHNS
ZWRyYXcoKQogewogICAgIGlmIChtX2xheWVyVHJlZUhvc3RJbXBsKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1w
bC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRl
b0xheWVySW1wbC5oCmluZGV4IGUxMTkyMzA2ZjQ2NzNlMmIwZGIyMGZlZGJhYWQxZjQ0NjM5NmYz
OTcuLjA3ZjdkYjZhODJkNmU4OTRkYTJjYTYzNDg3MjVlOTM1YTAxMWYzYTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXll
ckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1ZpZGVvTGF5ZXJJbXBsLmgKQEAgLTcxLDYgKzcxLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRnJhbWUoKTsgLy8gQ2FsbGFibGUgb24gaW1wbCB0aHJlYWQuCiAg
ICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZU1hdHJpeChjb25zdCBmbG9hdCopOyAvLyBDYWxsYWJs
ZSBvbiBpbXBsIHRocmVhZC4KIAorICAgIHZpcnR1YWwgdm9pZCBkaWRMb3NlQ29udGV4dCgpIE9W
RVJSSURFOworCiAgICAgdm9pZCBzZXROZWVkc1JlZHJhdygpOwogCiAgICAgc3RhdGljIGNvbnN0
IGZsb2F0IHl1djJSR0JbOV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCmluZGV4IDRkYjJkYmNkMWEyNjcxYjc0
YzEwOWNiMGM1MGRlYzU4NmUxN2U2MDQuLjdhM2JhMDlkYTc4OWU2ZTkyMjk0MzY4YmY4OGYxYzc5
NTMwZGVjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCkBAIC0xMTUzLDQgKzExNTMsMTgzIEBAIFRFU1Rf
RihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsYmFyTGF5ZXJMb3N0Q29udGV4dCkKICAg
ICB9CiB9CiAKKy8vIEZha2UgV2ViR3JhcGhpY3NDb250ZXh0M0QgdGhhdCB3aWxsIGNhdXNlIGEg
ZmFpbHVyZSBpZiB0cnlpbmcgdG8gdXNlIGEKKy8vIHJlc291cmNlIHRoYXQgd2Fzbid0IGNyZWF0
ZWQgYnkgaXQgKHJlc291cmNlcyBjcmVhdGVkIGJ5CisvLyBGYWtlV2ViR3JhcGhpY3NDb250ZXh0
M0QgaGF2ZSBhbiBpZCBvZiAxKS4KK2NsYXNzIFN0cmljdFdlYkdyYXBoaWNzQ29udGV4dDNEIDog
cHVibGljIEZha2VXZWJHcmFwaGljc0NvbnRleHQzRCB7CitwdWJsaWM6CisgICAgdmlydHVhbCBX
ZWJHTElkIGNyZWF0ZUJ1ZmZlcigpIHsgcmV0dXJuIDI7IH0KKyAgICB2aXJ0dWFsIFdlYkdMSWQg
Y3JlYXRlRnJhbWVidWZmZXIoKSB7IHJldHVybiAzOyB9CisgICAgdmlydHVhbCBXZWJHTElkIGNy
ZWF0ZVByb2dyYW0oKSB7IHJldHVybiA0OyB9CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIHsgcmV0dXJuIDU7IH0KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlU2hh
ZGVyKFdHQzNEZW51bSkgeyByZXR1cm4gNjsgfQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVU
ZXh0dXJlKCkgeyByZXR1cm4gNzsgfQorCisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUJ1ZmZlcihX
ZWJHTElkIGlkKQorICAgIHsKKyAgICAgICAgaWYgKGlkICE9IDIpCisgICAgICAgICAgICBBRERf
RkFJTFVSRSgpIDw8ICJUcnlpbmcgdG8gZGVsZXRlIGJ1ZmZlciBpZCAiIDw8IGlkOworICAgIH0K
KworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTElkIGlkKQorICAgIHsK
KyAgICAgICAgaWYgKGlkICE9IDMpCisgICAgICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJUcnlp
bmcgdG8gZGVsZXRlIGZyYW1lYnVmZmVyIGlkICIgPDwgaWQ7CisgICAgfQorCisgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZVByb2dyYW0oV2ViR0xJZCBpZCkKKyAgICB7CisgICAgICAgIGlmIChpZCAh
PSA0KQorICAgICAgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGRlbGV0ZSBwcm9n
cmFtIGlkICIgPDwgaWQ7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJlbmRlcmJ1
ZmZlcihXZWJHTElkIGlkKQorICAgIHsKKyAgICAgICAgaWYgKGlkICE9IDUpCisgICAgICAgICAg
ICBBRERfRkFJTFVSRSgpIDw8ICJUcnlpbmcgdG8gZGVsZXRlIHJlbmRlcmJ1ZmZlciBpZCAiIDw8
IGlkOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVTaGFkZXIoV2ViR0xJZCBpZCkK
KyAgICB7CisgICAgICAgIGlmIChpZCAhPSA2KQorICAgICAgICAgICAgQUREX0ZBSUxVUkUoKSA8
PCAiVHJ5aW5nIHRvIGRlbGV0ZSBzaGFkZXIgaWQgIiA8PCBpZDsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlVGV4dHVyZShXZWJHTElkIGlkKQorICAgIHsKKyAgICAgICAgaWYgKGlk
ICE9IDcpCisgICAgICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJUcnlpbmcgdG8gZGVsZXRlIHRl
eHR1cmUgaWQgIiA8PCBpZDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEJ1ZmZlcihX
R0MzRGVudW0sIFdlYkdMSWQgaWQpCisgICAgeworICAgICAgICBpZiAoaWQgIT0gMiAmJiBpZCkK
KyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIlRyeWluZyB0byBiaW5kIGJ1ZmZlciBpZCAi
IDw8IGlkOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBiaW5kRnJhbWVidWZmZXIoV0dDM0Rl
bnVtLCBXZWJHTElkIGlkKQorICAgIHsKKyAgICAgICAgaWYgKGlkICE9IDMgJiYgaWQpCisgICAg
ICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJUcnlpbmcgdG8gYmluZCBmcmFtZWJ1ZmZlciBpZCAi
IDw8IGlkOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCB1c2VQcm9ncmFtKFdlYkdMSWQgaWQp
CisgICAgeworICAgICAgICBpZiAoaWQgIT0gNCkKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkg
PDwgIlRyeWluZyB0byB1c2UgcHJvZ3JhbSBpZCAiIDw8IGlkOworICAgIH0KKworICAgIHZpcnR1
YWwgdm9pZCBiaW5kUmVuZGVyYnVmZmVyKFdHQzNEZW51bSwgV2ViR0xJZCBpZCkKKyAgICB7Cisg
ICAgICAgIGlmIChpZCAhPSA1ICYmIGlkKQorICAgICAgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAi
VHJ5aW5nIHRvIGJpbmQgcmVuZGVyYnVmZmVyIGlkICIgPDwgaWQ7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIGF0dGFjaFNoYWRlcihXZWJHTElkIHByb2dyYW0sIFdlYkdMSWQgc2hhZGVyKQor
ICAgIHsKKyAgICAgICAgaWYgKChwcm9ncmFtICE9IDQpIHx8IChzaGFkZXIgIT0gNikpCisgICAg
ICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJUcnlpbmcgdG8gYXR0YWNoIHNoYWRlciBpZCAiIDw8
IHNoYWRlciA8PCAiIHRvIHByb2dyYW0gaWQgIiA8PCBwcm9ncmFtOworICAgIH0KKworICAgIHZp
cnR1YWwgdm9pZCBiaW5kVGV4dHVyZShXR0MzRGVudW0sIFdlYkdMSWQgaWQpCisgICAgeworICAg
ICAgICBpZiAoaWQgIT0gNyAmJiBpZCkKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIlRy
eWluZyB0byBiaW5kIHRleHR1cmUgaWQgIiA8PCBpZDsKKyAgICB9CisKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlR3JhcGhpY3NDb250ZXh0KCkKKyAgICB7
CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNz
Q29udGV4dEZyb21XZWJDb250ZXh0KGFkb3B0UHRyKG5ldyBTdHJpY3RXZWJHcmFwaGljc0NvbnRl
eHQzRCgpKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KTsK
KyAgICB9Cit9OworCisvLyBGYWtlIHZpZGVvIGZyYW1lIHRoYXQgcmVwcmVzZW50cyBhIDR4NCBZ
VVYgdmlkZW8gZnJhbWUuCitjbGFzcyBGYWtlVmlkZW9GcmFtZTogcHVibGljIFdlYlZpZGVvRnJh
bWUgeworcHVibGljOgorICAgIEZha2VWaWRlb0ZyYW1lKCkgeyBtZW1zZXQobV9kYXRhLCAweDgw
LCBzaXplb2YobV9kYXRhKSk7IH0KKyAgICB2aXJ0dWFsIH5GYWtlVmlkZW9GcmFtZSgpIHsgfQor
ICAgIHZpcnR1YWwgRm9ybWF0IGZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIEZvcm1hdFlWMTI7IH0K
KyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgeyByZXR1cm4gNDsgfQorICAgIHZp
cnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gNDsgfQorICAgIHZpcnR1YWwg
dW5zaWduZWQgcGxhbmVzKCkgY29uc3QgeyByZXR1cm4gMzsgfQorICAgIHZpcnR1YWwgaW50IHN0
cmlkZSh1bnNpZ25lZCBwbGFuZSkgY29uc3QgeyByZXR1cm4gNDsgfQorICAgIHZpcnR1YWwgY29u
c3Qgdm9pZCogZGF0YSh1bnNpZ25lZCBwbGFuZSkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9Cisg
ICAgdmlydHVhbCB1bnNpZ25lZCB0ZXh0dXJlSWQoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAg
dmlydHVhbCB1bnNpZ25lZCB0ZXh0dXJlVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gMDsgfQorCitw
cml2YXRlOgorICAgIGNoYXIgbV9kYXRhWzE2XTsKK307CisKKy8vIEZha2UgdmlkZW8gZnJhbWUg
cHJvdmlkZXIgdGhhdCBhbHdheXMgcHJvdmlkZXMgdGhlIHNhbWUgRmFrZVZpZGVvRnJhbWUuCitj
bGFzcyBGYWtlVmlkZW9GcmFtZVByb3ZpZGVyOiBwdWJsaWMgVmlkZW9GcmFtZVByb3ZpZGVyIHsK
K3B1YmxpYzoKKyAgICBGYWtlVmlkZW9GcmFtZVByb3ZpZGVyKCkgOiBtX2NsaWVudCgwKSB7IH0K
KyAgICB2aXJ0dWFsIH5GYWtlVmlkZW9GcmFtZVByb3ZpZGVyKCkKKyAgICB7CisgICAgICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5zdG9wVXNpbmdQcm92aWRlcigpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0ZyYW1lUHJvdmlkZXJDbGllbnQoQ2xp
ZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKyAgICB2aXJ0dWFsIFdlYlZpZGVv
RnJhbWUqIGdldEN1cnJlbnRGcmFtZSgpIHsgcmV0dXJuICZtX2ZyYW1lOyB9CisgICAgdmlydHVh
bCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJWaWRlb0ZyYW1lKikgeyB9CisKK3ByaXZhdGU6Cisg
ICAgRmFrZVZpZGVvRnJhbWUgbV9mcmFtZTsKKyAgICBDbGllbnQqIG1fY2xpZW50OworfTsKKwor
VEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBkb250VXNlT2xkUmVzb3VyY2VzQWZ0ZXJM
b3N0Q29udGV4dCkKK3sKKyAgICBtX2hvc3RJbXBsLT5pbml0aWFsaXplTGF5ZXJSZW5kZXJlcihj
cmVhdGVDb250ZXh0KCkpOworICAgIG1faG9zdEltcGwtPnNldFZpZXdwb3J0U2l6ZShJbnRTaXpl
KDEwLCAxMCkpOworCisgICAgT3duUHRyPENDTGF5ZXJJbXBsPiByb290TGF5ZXIoQ0NMYXllcklt
cGw6OmNyZWF0ZSgwKSk7CisgICAgcm9vdExheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTAp
KTsKKyAgICByb290TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoMCwgMCkpOworCisg
ICAgT3duUHRyPENDVGlsZWRMYXllckltcGw+IHRpbGVMYXllciA9IENDVGlsZWRMYXllckltcGw6
OmNyZWF0ZSgxKTsKKyAgICB0aWxlTGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOwor
ICAgIHRpbGVMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgwLCAwKSk7CisgICAgdGls
ZUxheWVyLT5zZXRDb250ZW50Qm91bmRzKEludFNpemUoMTAsIDEwKSk7CisgICAgdGlsZUxheWVy
LT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgdGlsZUxheWVyLT5zZXRTa2lwc0RyYXcoZmFs
c2UpOworICAgIE93blB0cjxDQ0xheWVyVGlsaW5nRGF0YT4gdGlsaW5nRGF0YShDQ0xheWVyVGls
aW5nRGF0YTo6Y3JlYXRlKEludFNpemUoMTAsIDEwKSwgQ0NMYXllclRpbGluZ0RhdGE6Ok5vQm9y
ZGVyVGV4ZWxzKSk7CisgICAgdGlsaW5nRGF0YS0+c2V0Qm91bmRzKEludFNpemUoMTAsIDEwKSk7
CisgICAgdGlsZUxheWVyLT5zZXRUaWxpbmdEYXRhKCp0aWxpbmdEYXRhKTsKKyAgICB0aWxlTGF5
ZXItPnB1c2hUaWxlUHJvcGVydGllcygwLCAwLCAxLCBJbnRSZWN0KDAsIDAsIDEwLCAxMCkpOwor
ICAgIHJvb3RMYXllci0+YWRkQ2hpbGQodGlsZUxheWVyLnJlbGVhc2UoKSk7CisKKyAgICBPd25Q
dHI8Q0NUZXh0dXJlTGF5ZXJJbXBsPiB0ZXh0dXJlTGF5ZXIgPSBDQ1RleHR1cmVMYXllckltcGw6
OmNyZWF0ZSgyKTsKKyAgICB0ZXh0dXJlTGF5ZXItPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkp
OworICAgIHRleHR1cmVMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgwLCAwKSk7Cisg
ICAgdGV4dHVyZUxheWVyLT5zZXRDb250ZW50Qm91bmRzKEludFNpemUoMTAsIDEwKSk7CisgICAg
dGV4dHVyZUxheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgdGV4dHVyZUxheWVyLT5z
ZXRUZXh0dXJlSWQoMSk7CisgICAgcm9vdExheWVyLT5hZGRDaGlsZCh0ZXh0dXJlTGF5ZXIucmVs
ZWFzZSgpKTsKKworICAgIEZha2VWaWRlb0ZyYW1lUHJvdmlkZXIgcHJvdmlkZXI7CisgICAgT3du
UHRyPENDVmlkZW9MYXllckltcGw+IHZpZGVvTGF5ZXIgPSBDQ1ZpZGVvTGF5ZXJJbXBsOjpjcmVh
dGUoMywgJnByb3ZpZGVyKTsKKyAgICB2aWRlb0xheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwg
MTApKTsKKyAgICB2aWRlb0xheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDAsIDApKTsK
KyAgICB2aWRlb0xheWVyLT5zZXRDb250ZW50Qm91bmRzKEludFNpemUoMTAsIDEwKSk7CisgICAg
dmlkZW9MYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgIHJvb3RMYXllci0+YWRkQ2hp
bGQodmlkZW9MYXllci5yZWxlYXNlKCkpOworCisgICAgbV9ob3N0SW1wbC0+c2V0Um9vdExheWVy
KHJvb3RMYXllci5yZWxlYXNlKCkpOworCisgICAgQ0NMYXllclRyZWVIb3N0SW1wbDo6RnJhbWVE
YXRhIGZyYW1lOworICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJh
bWUpKTsKKyAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKKyAgICBtX2hvc3RJbXBs
LT5zd2FwQnVmZmVycygpOworCisgICAgLy8gTG9zZSB0aGUgY29udGV4dCwgcmVwbGFjaW5nIGl0
IHdpdGggYSBTdHJpY3RXZWJHcmFwaGljc0NvbnRleHQzRCwgdGhhdAorICAgIC8vIHdpbGwgd2Fy
biBpZiBhbnkgcmVzb3VyY2UgZnJvbSB0aGUgcHJldmlvdXMgY29udGV4dCBnZXRzIHVzZWQuCisg
ICAgbV9ob3N0SW1wbC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoU3RyaWN0V2ViR3JhcGhpY3ND
b250ZXh0M0Q6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpKTsKKyAgICBFWFBFQ1RfVFJVRShtX2hv
c3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVy
cyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+c3dhcEJ1ZmZlcnMoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137639</attachid>
            <date>2012-04-17 16:58:16 -0700</date>
            <delta_ts>2012-04-17 17:53:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-84122-20120417165815.patch</filename>
            <type>text/plain</type>
            <size>11578</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjliOTMxMWUxMzQ4MmEw
NjhmZTMxNjQyNDZlZTNiNzRlZjEzYzFmNS4uM2ZmMzU4MDk4ZTJlMmYwMDA3YWRiNTA4NTkyNmZl
NjM2NDY1ZWU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA0LTE2ICBBbnRv
aW5lIExhYm91ciAgPHBpbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIENs
ZWFuIHVwIHRleHR1cmUgaWRzIG9uIHRoZSBpbXBsIHNpZGUgd2hlbiBsb3NpbmcgdGhlIGNvbnRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0MTIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgVGVzdGVk
IGJ5IENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmRvbnRVc2VPbGRSZXNvdXJjZXNBZnRlckxvc3RD
b250ZXh0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZUxheWVySW1wbDo6
ZGlkTG9zZUNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGlsZWRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaWxlZExheWVySW1w
bDo6ZGlkTG9zZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oOgorICAgICAgICAoQ0NU
aWxlZExheWVySW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NWaWRlb0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJbXBs
OjpkaWRMb3NlQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmg6CisgICAgICAgIChDQ1Zp
ZGVvTGF5ZXJJbXBsKToKKwogMjAxMi0wNC0xNyAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBGcmFtZXNuaWZmaW5nIGRlZmVuc2UgaXMgdG9vIGFnZ3Jlc3NpdmUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RleHR1cmVMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmNwcAppbmRleCAxMmNiYWI2MjU3MDY2
N2M4OGRjODc3MDk2Njg4MzIzODhjMjRmOTRmLi44NTM0YThjODVmZGRkYmYxMGQ4M2U3MjgzZDAy
ZjU1NGY4ZTU4ZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAKQEAg
LTEwNSw2ICsxMDUsNyBAQCB2b2lkIENDVGV4dHVyZUxheWVySW1wbDo6ZHVtcExheWVyUHJvcGVy
dGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVudCkgY29uc3QKIAogdm9pZCBDQ1RleHR1cmVM
YXllckltcGw6OmRpZExvc2VDb250ZXh0KCkKIHsKKyAgICBtX3RleHR1cmVJZCA9IDA7CiAgICAg
aWYgKG1faW9TdXJmYWNlSWQpIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIHZhbGlkIHRl
eHR1cmUgSUQgaW4gdGhlIG5ldyBjb250ZXh0OyBob3dldmVyLAogICAgICAgICAvLyB0aGUgSU9T
dXJmYWNlIGlzIHN0aWxsIHZhbGlkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcApp
bmRleCBjNWQyYTQ1OTM5ZTQ5MGNjYmIzZGQwOWFiZDdlYWEzY2MwZTRiN2RmLi5lYzIyYTlmZDY3
NmI5MDgyZjcwODVjOWEyOWE1MGE0Y2RhZTIxOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5
ZXJJbXBsLmNwcApAQCAtMjM1LDYgKzIzNSwxMSBAQCBSZWdpb24gQ0NUaWxlZExheWVySW1wbDo6
dmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24oKSBjb25zdAogICAgIHJldHVybiBtX3RpbGVyLT5v
cGFxdWVSZWdpb25JbkxheWVyUmVjdCh2aXNpYmxlTGF5ZXJSZWN0KCkpOwogfQogCit2b2lkIEND
VGlsZWRMYXllckltcGw6OmRpZExvc2VDb250ZXh0KCkKK3sKKyAgICBtX3RpbGVyLT5yZXNldCgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgKaW5kZXggY2UzY2Q2
MmY4NDZlZTJjNWU3YWJiZTk3YTA3ZWNlZGExNjhkOTg2OS4uNmZjNWM5ZTQ5ZGY2YWVkMjIxMDU5
MGQ1ZDY0MTE0MzgyYzA1NjQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaApAQCAt
NTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjb250ZW50c1N3aXp6bGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZW50c1N3aXp6bGVkOyB9CiAKICAgICB2aXJ0dWFsIFJlZ2lvbiB2aXNp
YmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRMb3NlQ29udGV4dCgpIE9WRVJSSURFOwogCiAgICAgdHlwZWRlZiBQcm9ncmFtQmluZGlu
ZzxWZXJ0ZXhTaGFkZXJUaWxlLCBGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYT4gUHJvZ3JhbTsK
ICAgICAvLyBTaGFkZXIgcHJvZ3JhbSB0aGF0IHN3YXBzIHJlZCBhbmQgYmx1ZSBjb21wb25lbnRz
IG9mIHRleHR1cmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCmluZGV4IGExZGFj
MzVlOTE0NTM4MGVhOWRhMzBhZDgxMDYyNjY5ZDI2NmNjZWYuLjgzZDI2MmYxMTA5NzI3YTYyZDAx
ODljMWIzOWMwMzUxNjJjYzM2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3Bw
CkBAIC0yNTMsNiArMjUzLDEyIEBAIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6ZGlkVXBkYXRlTWF0
cml4KGNvbnN0IGZsb2F0IG1hdHJpeFsxNl0pCiAgICAgc2V0TmVlZHNSZWRyYXcoKTsKIH0KIAor
dm9pZCBDQ1ZpZGVvTGF5ZXJJbXBsOjpkaWRMb3NlQ29udGV4dCgpCit7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IE1heFBsYW5lczsgKytpKQorICAgICAgICBtX3RleHR1cmVzW2ldLm1f
dGV4dHVyZS5jbGVhcigpOworfQorCiB2b2lkIENDVmlkZW9MYXllckltcGw6OnNldE5lZWRzUmVk
cmF3KCkKIHsKICAgICBpZiAobV9sYXllclRyZWVIb3N0SW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9M
YXllckltcGwuaAppbmRleCBjYWNmZWY4MjYwZTNjMGE4NTIzMTQ1MzlmZjY3N2U0NDM2YTIxYTA1
Li45YTk5Mjg1ZGRkZDM1MjBjZDIzMDlhMDA0ZjMxZmM3OGVmZmM1OWY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NWaWRlb0xheWVySW1wbC5oCkBAIC03MCw2ICs3MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUZyYW1lKCk7IC8vIENhbGxhYmxlIG9uIGltcGwgdGhyZWFkLgogICAg
IHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVNYXRyaXgoY29uc3QgZmxvYXQqKTsgLy8gQ2FsbGFibGUg
b24gaW1wbCB0aHJlYWQuCiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZUNvbnRleHQoKSBPVkVS
UklERTsKKwogICAgIHZvaWQgc2V0TmVlZHNSZWRyYXcoKTsKIAogICAgIHN0YXRpYyBjb25zdCBm
bG9hdCB5dXYyUkdCWzldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAppbmRleCA0ZGIyZGJjZDFhMjY3MWI3NGMx
MDljYjBjNTBkZWM1ODZlMTdlNjA0Li4wNzdlNGMyMzliZDM1Mzc4OWE5NzIxNWYxMmFlOTgwOTMw
NzgwODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJU
cmVlSG9zdEltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcApAQCAtMTE1Myw0ICsxMTUzLDE4MyBAQCBURVNUX0Yo
Q0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHNjcm9sbGJhckxheWVyTG9zdENvbnRleHQpCiAgICAg
fQogfQogCisvLyBGYWtlIFdlYkdyYXBoaWNzQ29udGV4dDNEIHRoYXQgd2lsbCBjYXVzZSBhIGZh
aWx1cmUgaWYgdHJ5aW5nIHRvIHVzZSBhCisvLyByZXNvdXJjZSB0aGF0IHdhc24ndCBjcmVhdGVk
IGJ5IGl0IChyZXNvdXJjZXMgY3JlYXRlZCBieQorLy8gRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNE
IGhhdmUgYW4gaWQgb2YgMSkuCitjbGFzcyBTdHJpY3RXZWJHcmFwaGljc0NvbnRleHQzRCA6IHB1
YmxpYyBGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QgeworcHVibGljOgorICAgIHZpcnR1YWwgV2Vi
R0xJZCBjcmVhdGVCdWZmZXIoKSB7IHJldHVybiAyOyB9CisgICAgdmlydHVhbCBXZWJHTElkIGNy
ZWF0ZUZyYW1lYnVmZmVyKCkgeyByZXR1cm4gMzsgfQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVh
dGVQcm9ncmFtKCkgeyByZXR1cm4gNDsgfQorICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVSZW5k
ZXJidWZmZXIoKSB7IHJldHVybiA1OyB9CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVNoYWRl
cihXR0MzRGVudW0pIHsgcmV0dXJuIDY7IH0KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlVGV4
dHVyZSgpIHsgcmV0dXJuIDc7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVCdWZmZXIoV2Vi
R0xJZCBpZCkKKyAgICB7CisgICAgICAgIGlmIChpZCAhPSAyKQorICAgICAgICAgICAgQUREX0ZB
SUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGRlbGV0ZSBidWZmZXIgaWQgIiA8PCBpZDsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xJZCBpZCkKKyAgICB7Cisg
ICAgICAgIGlmIChpZCAhPSAzKQorICAgICAgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5n
IHRvIGRlbGV0ZSBmcmFtZWJ1ZmZlciBpZCAiIDw8IGlkOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVQcm9ncmFtKFdlYkdMSWQgaWQpCisgICAgeworICAgICAgICBpZiAoaWQgIT0g
NCkKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIlRyeWluZyB0byBkZWxldGUgcHJvZ3Jh
bSBpZCAiIDw8IGlkOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVSZW5kZXJidWZm
ZXIoV2ViR0xJZCBpZCkKKyAgICB7CisgICAgICAgIGlmIChpZCAhPSA1KQorICAgICAgICAgICAg
QUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGRlbGV0ZSByZW5kZXJidWZmZXIgaWQgIiA8PCBp
ZDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlU2hhZGVyKFdlYkdMSWQgaWQpCisg
ICAgeworICAgICAgICBpZiAoaWQgIT0gNikKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkgPDwg
IlRyeWluZyB0byBkZWxldGUgc2hhZGVyIGlkICIgPDwgaWQ7CisgICAgfQorCisgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZVRleHR1cmUoV2ViR0xJZCBpZCkKKyAgICB7CisgICAgICAgIGlmIChpZCAh
PSA3KQorICAgICAgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGRlbGV0ZSB0ZXh0
dXJlIGlkICIgPDwgaWQ7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGJpbmRCdWZmZXIoV0dD
M0RlbnVtLCBXZWJHTElkIGlkKQorICAgIHsKKyAgICAgICAgaWYgKGlkICE9IDIgJiYgaWQpCisg
ICAgICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJUcnlpbmcgdG8gYmluZCBidWZmZXIgaWQgIiA8
PCBpZDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEZyYW1lYnVmZmVyKFdHQzNEZW51
bSwgV2ViR0xJZCBpZCkKKyAgICB7CisgICAgICAgIGlmIChpZCAhPSAzICYmIGlkKQorICAgICAg
ICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGJpbmQgZnJhbWVidWZmZXIgaWQgIiA8
PCBpZDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgdXNlUHJvZ3JhbShXZWJHTElkIGlkKQor
ICAgIHsKKyAgICAgICAgaWYgKGlkICE9IDQpCisgICAgICAgICAgICBBRERfRkFJTFVSRSgpIDw8
ICJUcnlpbmcgdG8gdXNlIHByb2dyYW0gaWQgIiA8PCBpZDsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihXR0MzRGVudW0sIFdlYkdMSWQgaWQpCisgICAgeworICAg
ICAgICBpZiAoaWQgIT0gNSAmJiBpZCkKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIlRy
eWluZyB0byBiaW5kIHJlbmRlcmJ1ZmZlciBpZCAiIDw8IGlkOworICAgIH0KKworICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2hTaGFkZXIoV2ViR0xJZCBwcm9ncmFtLCBXZWJHTElkIHNoYWRlcikKKyAg
ICB7CisgICAgICAgIGlmICgocHJvZ3JhbSAhPSA0KSB8fCAoc2hhZGVyICE9IDYpKQorICAgICAg
ICAgICAgQUREX0ZBSUxVUkUoKSA8PCAiVHJ5aW5nIHRvIGF0dGFjaCBzaGFkZXIgaWQgIiA8PCBz
aGFkZXIgPDwgIiB0byBwcm9ncmFtIGlkICIgPDwgcHJvZ3JhbTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgYmluZFRleHR1cmUoV0dDM0RlbnVtLCBXZWJHTElkIGlkKQorICAgIHsKKyAgICAg
ICAgaWYgKGlkICE9IDcgJiYgaWQpCisgICAgICAgICAgICBBRERfRkFJTFVSRSgpIDw8ICJUcnlp
bmcgdG8gYmluZCB0ZXh0dXJlIGlkICIgPDwgaWQ7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpCisgICAgewor
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0Nv
bnRleHRGcm9tV2ViQ29udGV4dChhZG9wdFB0cihuZXcgU3RyaWN0V2ViR3JhcGhpY3NDb250ZXh0
M0QoKSksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7Cisg
ICAgfQorfTsKKworLy8gRmFrZSB2aWRlbyBmcmFtZSB0aGF0IHJlcHJlc2VudHMgYSA0eDQgWVVW
IHZpZGVvIGZyYW1lLgorY2xhc3MgRmFrZVZpZGVvRnJhbWU6IHB1YmxpYyBXZWJWaWRlb0ZyYW1l
IHsKK3B1YmxpYzoKKyAgICBGYWtlVmlkZW9GcmFtZSgpIHsgbWVtc2V0KG1fZGF0YSwgMHg4MCwg
c2l6ZW9mKG1fZGF0YSkpOyB9CisgICAgdmlydHVhbCB+RmFrZVZpZGVvRnJhbWUoKSB7IH0KKyAg
ICB2aXJ0dWFsIEZvcm1hdCBmb3JtYXQoKSBjb25zdCB7IHJldHVybiBGb3JtYXRZVjEyOyB9Cisg
ICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIDQ7IH0KKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIDQ7IH0KKyAgICB2aXJ0dWFsIHVu
c2lnbmVkIHBsYW5lcygpIGNvbnN0IHsgcmV0dXJuIDM7IH0KKyAgICB2aXJ0dWFsIGludCBzdHJp
ZGUodW5zaWduZWQgcGxhbmUpIGNvbnN0IHsgcmV0dXJuIDQ7IH0KKyAgICB2aXJ0dWFsIGNvbnN0
IHZvaWQqIGRhdGEodW5zaWduZWQgcGxhbmUpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorICAg
IHZpcnR1YWwgdW5zaWduZWQgdGV4dHVyZUlkKCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZp
cnR1YWwgdW5zaWduZWQgdGV4dHVyZVRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKworcHJp
dmF0ZToKKyAgICBjaGFyIG1fZGF0YVsxNl07Cit9OworCisvLyBGYWtlIHZpZGVvIGZyYW1lIHBy
b3ZpZGVyIHRoYXQgYWx3YXlzIHByb3ZpZGVzIHRoZSBzYW1lIEZha2VWaWRlb0ZyYW1lLgorY2xh
c3MgRmFrZVZpZGVvRnJhbWVQcm92aWRlcjogcHVibGljIFdlYlZpZGVvRnJhbWVQcm92aWRlciB7
CitwdWJsaWM6CisgICAgRmFrZVZpZGVvRnJhbWVQcm92aWRlcigpIDogbV9jbGllbnQoMCkgeyB9
CisgICAgdmlydHVhbCB+RmFrZVZpZGVvRnJhbWVQcm92aWRlcigpCisgICAgeworICAgICAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgICAgICBtX2NsaWVudC0+c3RvcFVzaW5nUHJvdmlkZXIoKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9GcmFtZVByb3ZpZGVyQ2xpZW50KENs
aWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CisgICAgdmlydHVhbCBXZWJWaWRl
b0ZyYW1lKiBnZXRDdXJyZW50RnJhbWUoKSB7IHJldHVybiAmbV9mcmFtZTsgfQorICAgIHZpcnR1
YWwgdm9pZCBwdXRDdXJyZW50RnJhbWUoV2ViVmlkZW9GcmFtZSopIHsgfQorCitwcml2YXRlOgor
ICAgIEZha2VWaWRlb0ZyYW1lIG1fZnJhbWU7CisgICAgQ2xpZW50KiBtX2NsaWVudDsKK307CisK
K1RFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgZG9udFVzZU9sZFJlc291cmNlc0FmdGVy
TG9zdENvbnRleHQpCit7CisgICAgbV9ob3N0SW1wbC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIo
Y3JlYXRlQ29udGV4dCgpKTsKKyAgICBtX2hvc3RJbXBsLT5zZXRWaWV3cG9ydFNpemUoSW50U2l6
ZSgxMCwgMTApKTsKKworICAgIE93blB0cjxDQ0xheWVySW1wbD4gcm9vdExheWVyKENDTGF5ZXJJ
bXBsOjpjcmVhdGUoMCkpOworICAgIHJvb3RMYXllci0+c2V0Qm91bmRzKEludFNpemUoMTAsIDEw
KSk7CisgICAgcm9vdExheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDAsIDApKTsKKwor
ICAgIE93blB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiB0aWxlTGF5ZXIgPSBDQ1RpbGVkTGF5ZXJJbXBs
OjpjcmVhdGUoMSk7CisgICAgdGlsZUxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTApKTsK
KyAgICB0aWxlTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoMCwgMCkpOworICAgIHRp
bGVMYXllci0+c2V0Q29udGVudEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworICAgIHRpbGVMYXll
ci0+c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgIHRpbGVMYXllci0+c2V0U2tpcHNEcmF3KGZh
bHNlKTsKKyAgICBPd25QdHI8Q0NMYXllclRpbGluZ0RhdGE+IHRpbGluZ0RhdGEoQ0NMYXllclRp
bGluZ0RhdGE6OmNyZWF0ZShJbnRTaXplKDEwLCAxMCksIENDTGF5ZXJUaWxpbmdEYXRhOjpOb0Jv
cmRlclRleGVscykpOworICAgIHRpbGluZ0RhdGEtPnNldEJvdW5kcyhJbnRTaXplKDEwLCAxMCkp
OworICAgIHRpbGVMYXllci0+c2V0VGlsaW5nRGF0YSgqdGlsaW5nRGF0YSk7CisgICAgdGlsZUxh
eWVyLT5wdXNoVGlsZVByb3BlcnRpZXMoMCwgMCwgMSwgSW50UmVjdCgwLCAwLCAxMCwgMTApKTsK
KyAgICByb290TGF5ZXItPmFkZENoaWxkKHRpbGVMYXllci5yZWxlYXNlKCkpOworCisgICAgT3du
UHRyPENDVGV4dHVyZUxheWVySW1wbD4gdGV4dHVyZUxheWVyID0gQ0NUZXh0dXJlTGF5ZXJJbXBs
OjpjcmVhdGUoMik7CisgICAgdGV4dHVyZUxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgxMCwgMTAp
KTsKKyAgICB0ZXh0dXJlTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoMCwgMCkpOwor
ICAgIHRleHR1cmVMYXllci0+c2V0Q29udGVudEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworICAg
IHRleHR1cmVMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUpOworICAgIHRleHR1cmVMYXllci0+
c2V0VGV4dHVyZUlkKDEpOworICAgIHJvb3RMYXllci0+YWRkQ2hpbGQodGV4dHVyZUxheWVyLnJl
bGVhc2UoKSk7CisKKyAgICBGYWtlVmlkZW9GcmFtZVByb3ZpZGVyIHByb3ZpZGVyOworICAgIE93
blB0cjxDQ1ZpZGVvTGF5ZXJJbXBsPiB2aWRlb0xheWVyID0gQ0NWaWRlb0xheWVySW1wbDo6Y3Jl
YXRlKDMsICZwcm92aWRlcik7CisgICAgdmlkZW9MYXllci0+c2V0Qm91bmRzKEludFNpemUoMTAs
IDEwKSk7CisgICAgdmlkZW9MYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgwLCAwKSk7
CisgICAgdmlkZW9MYXllci0+c2V0Q29udGVudEJvdW5kcyhJbnRTaXplKDEwLCAxMCkpOworICAg
IHZpZGVvTGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICByb290TGF5ZXItPmFkZENo
aWxkKHZpZGVvTGF5ZXIucmVsZWFzZSgpKTsKKworICAgIG1faG9zdEltcGwtPnNldFJvb3RMYXll
cihyb290TGF5ZXIucmVsZWFzZSgpKTsKKworICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6OkZyYW1l
RGF0YSBmcmFtZTsKKyAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZy
YW1lKSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1w
bC0+c3dhcEJ1ZmZlcnMoKTsKKworICAgIC8vIExvc2UgdGhlIGNvbnRleHQsIHJlcGxhY2luZyBp
dCB3aXRoIGEgU3RyaWN0V2ViR3JhcGhpY3NDb250ZXh0M0QsIHRoYXQKKyAgICAvLyB3aWxsIHdh
cm4gaWYgYW55IHJlc291cmNlIGZyb20gdGhlIHByZXZpb3VzIGNvbnRleHQgZ2V0cyB1c2VkLgor
ICAgIG1faG9zdEltcGwtPmluaXRpYWxpemVMYXllclJlbmRlcmVyKFN0cmljdFdlYkdyYXBoaWNz
Q29udGV4dDNEOjpjcmVhdGVHcmFwaGljc0NvbnRleHQoKSk7CisgICAgRVhQRUNUX1RSVUUobV9o
b3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOworICAgIG1faG9zdEltcGwtPmRyYXdMYXll
cnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPnN3YXBCdWZmZXJzKCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>