<?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>82586</bug_id>
          
          <creation_ts>2012-03-29 02:05:18 -0700</creation_ts>
          <short_desc>Add a compile assert for the size of RenderBlock</short_desc>
          <delta_ts>2012-03-29 13:20:45 -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>Layout and Rendering</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>590960</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-29 02:05:18 -0700</bug_when>
    <thetext>While it&apos;s not as critical as RenderObject or InlineBox, we still don&apos;t want to increase the size of RenderBlock unintentionally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590974</commentid>
    <comment_count>1</comment_count>
      <attachid>134531</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-29 02:30:03 -0700</bug_when>
    <thetext>Created attachment 134531
Initial attempt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590976</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-29 02:33:31 -0700</bug_when>
    <thetext>For FloatingObject and MarginInfo, we could either define asserts in some methods of RenderBlock or add public methods that return the size of those classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591262</commentid>
    <comment_count>3</comment_count>
      <attachid>134531</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-29 09:51:45 -0700</bug_when>
    <thetext>Comment on attachment 134531
Initial attempt

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        We can&apos;t add asserts for FloatingObject and MarginInfo because they&apos;re private to RenderBlock.

You can put the COMPILE_ASSERT in the constructor.  At least, that&apos;s what we do for RenderStyle::(Non)InheritedFlags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591301</commentid>
    <comment_count>4</comment_count>
      <attachid>134531</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-29 10:46:06 -0700</bug_when>
    <thetext>Comment on attachment 134531
Initial attempt

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:79
&gt; +COMPILE_ASSERT(sizeof(RenderBlock) == sizeof(SameSizeAsRenderBlock), RenderBlock_should_stay_small);

Can we use an absolute number instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591308</commentid>
    <comment_count>5</comment_count>
      <attachid>134531</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-29 10:49:32 -0700</bug_when>
    <thetext>Comment on attachment 134531
Initial attempt

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

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:79
&gt;&gt; +COMPILE_ASSERT(sizeof(RenderBlock) == sizeof(SameSizeAsRenderBlock), RenderBlock_should_stay_small);
&gt; 
&gt; Can we use an absolute number instead?

Pointers are different sizes on 32bit vs 64bit architectures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591311</commentid>
    <comment_count>6</comment_count>
      <attachid>134531</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-29 10:53:09 -0700</bug_when>
    <thetext>Comment on attachment 134531
Initial attempt

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:79
&gt;&gt;&gt; +COMPILE_ASSERT(sizeof(RenderBlock) == sizeof(SameSizeAsRenderBlock), RenderBlock_should_stay_small);
&gt;&gt; 
&gt;&gt; Can we use an absolute number instead?
&gt; 
&gt; Pointers are different sizes on 32bit vs 64bit architectures.

I see.  I&apos;m more worried that the bitfields will be padded differently, but I guess that&apos;s tested by other COMPILE_ASSERTS anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591318</commentid>
    <comment_count>7</comment_count>
      <attachid>134531</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-29 10:58:51 -0700</bug_when>
    <thetext>Comment on attachment 134531
Initial attempt

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:76
&gt; +    uint32_t m_bitfields : 32;

Do you need the : 32 here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591394</commentid>
    <comment_count>8</comment_count>
      <attachid>134531</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-29 11:48:54 -0700</bug_when>
    <thetext>Comment on attachment 134531
Initial attempt

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

&gt;&gt; Source/WebCore/rendering/RenderBlock.cpp:76
&gt;&gt; +    uint32_t m_bitfields : 32;
&gt; 
&gt; Do you need the : 32 here?

Oh yeah, that&apos;s redundant. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591396</commentid>
    <comment_count>9</comment_count>
      <attachid>134631</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-29 11:50:14 -0700</bug_when>
    <thetext>Created attachment 134631
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591404</commentid>
    <comment_count>10</comment_count>
      <attachid>134631</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-29 11:58:30 -0700</bug_when>
    <thetext>Comment on attachment 134631
Patch for landing

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:85
&gt; +    uint32_t bitfields : 8;

I&apos;m not a huge fan of using bitfields in these SameSize* structs. One of the major benefits of these compile asserts is that they ensure we get the same size we expect with visual studio, which we know does weird things with bitfields. Maybe make this uint8_t?

&gt; Source/WebCore/rendering/RenderBlock.cpp:91
&gt; +    uint32_t bitfields : 16;

Ditto, use uint16_t?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591443</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-29 12:28:10 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 134631 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134631&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:85
&gt; &gt; +    uint32_t bitfields : 8;
&gt; 
&gt; I&apos;m not a huge fan of using bitfields in these SameSize* structs. One of the major benefits of these compile asserts is that they ensure we get the same size we expect with visual studio, which we know does weird things with bitfields. Maybe make this uint8_t?

I don&apos;t think that&apos;ll work. Some compilers will always align sequence of bitfields to be one word (4/8 bytes) even though they may not pad other POD types smaller than int. Also, most of compilers pad struct so that the total size of struct is divisible by 4/8 unless the total size is smaller than 4/8 bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591489</commentid>
    <comment_count>12</comment_count>
      <attachid>134631</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-29 13:20:31 -0700</bug_when>
    <thetext>Comment on attachment 134631
Patch for landing

Clearing flags on attachment: 134631

Committed r112566: &lt;http://trac.webkit.org/changeset/112566&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591490</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-29 13:20:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134531</attachid>
            <date>2012-03-29 02:30:03 -0700</date>
            <delta_ts>2012-03-29 11:50:01 -0700</delta_ts>
            <desc>Initial attempt</desc>
            <filename>bug-82586-20120329023002.patch</filename>
            <type>text/plain</type>
            <size>12050</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjUwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTI5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBhIGNvbXBpbGUgYXNzZXJ0
IGZvciB0aGUgc2l6ZSBvZiBSZW5kZXJCbG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI1ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBjb21waWxlIGFzc2VydHMgZm9yIHRoZSBz
aXplIG9mIFJlbmRlckJsb2NrIGFuZCBSZW5kZXJCbG9jazo6TWFyZ2luVmFsdWVzLgorICAgICAg
ICBXZSBjYW4ndCBhZGQgYXNzZXJ0cyBmb3IgRmxvYXRpbmdPYmplY3QgYW5kIE1hcmdpbkluZm8g
YmVjYXVzZSB0aGV5J3JlIHByaXZhdGUgdG8gUmVuZGVyQmxvY2suCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoU2FtZVNpemVBc1JlbmRlckJsb2NrKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZE92
ZXJmbG93RnJvbUZsb2F0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cmVwYWlu
dE92ZXJoYW5naW5nRmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWlu
dEZsb2F0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6aW5zZXJ0RmxvYXRpbmdP
YmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNsZWFyRmxvYXRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGRPdmVyaGFuZ2luZ0Zsb2F0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRkSW50cnVkaW5nRmxvYXRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpoaXRUZXN0RmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjphZGp1c3RGb3JCb3JkZXJGaXQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OkZsb2F0aW5nT2Jq
ZWN0OjpzaG91bGRQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6RmxvYXRp
bmdPYmplY3Q6OnNldFNob3VsZFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpGbG9hdGluZ09iamVjdDo6aXNEZXNjZW5kYW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpGbG9hdGluZ09iamVjdDo6c2V0SXNEZXNjZW5kYW50KToKKyAgICAgICAgKEZsb2F0
aW5nT2JqZWN0KToKKyAgICAgICAgKFJlbmRlckJsb2NrKToKKwogMjAxMi0wMy0yOSAgVmluZWV0
IENoYXVkaGFyeSAgPHJnZjc0OEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGN1c3Rv
bSBiaW5kaW5ncyBmb3JtIEludGVybmFscy5pZGwgb2YgYXR0cmlidXRlIHR5cGUgQXJyYXkuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDEx
MjUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY5LDYgKzY5LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAorc3RydWN0IFNhbWVTaXplQXNSZW5kZXJCbG9jayA6IHB1
YmxpYyBSZW5kZXJCb3ggeworICAgIHZvaWQqIHBvaW50ZXJzWzNdOworICAgIFJlbmRlck9iamVj
dENoaWxkTGlzdCBjaGlsZHJlbjsKKyAgICBSZW5kZXJMaW5lQm94TGlzdCBsaW5lQm94ZXM7Cisg
ICAgdWludDMyX3QgbV9iaXRmaWVsZHMgOiAzMjsKK307CisKK0NPTVBJTEVfQVNTRVJUKHNpemVv
ZihSZW5kZXJCbG9jaykgPT0gc2l6ZW9mKFNhbWVTaXplQXNSZW5kZXJCbG9jayksIFJlbmRlckJs
b2NrX3Nob3VsZF9zdGF5X3NtYWxsKTsKKworLy8gRklYTUU6IEFkZCBhIGNvbXBpbGUgYXNzZXJ0
aW9uIGZvciBGbG9hdGluZ09iamVjdAorCitDT01QSUxFX0FTU0VSVChzaXplb2YoUmVuZGVyQmxv
Y2s6Ok1hcmdpblZhbHVlcykgPT0gc2l6ZW9mKExheW91dFVuaXRbNF0pLCBNYXJnaW5WYWx1ZXNf
c2hvdWxkX3N0YXlfc21hbGwpOworCisvLyBGSVhNRTogQWRkIGEgY29tcGlsZSBhc3NlcnRpb24g
Zm9yIE1hcmdpbkluZm8KKwogdHlwZWRlZiBXVEY6Okhhc2hNYXA8Y29uc3QgUmVuZGVyQm94Kiwg
Q29sdW1uSW5mbyo+IENvbHVtbkluZm9NYXA7CiBzdGF0aWMgQ29sdW1uSW5mb01hcCogZ0NvbHVt
bkluZm9NYXAgPSAwOwogCkBAIC0xNzIxLDcgKzE3MzYsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjph
ZGRPdmVyZmxvd0Zyb21GbG9hdHMoCiAgICAgRmxvYXRpbmdPYmplY3RTZXRJdGVyYXRvciBlbmQg
PSBmbG9hdGluZ09iamVjdFNldC5lbmQoKTsKICAgICBmb3IgKEZsb2F0aW5nT2JqZWN0U2V0SXRl
cmF0b3IgaXQgPSBmbG9hdGluZ09iamVjdFNldC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
ICAgICAgICAgRmxvYXRpbmdPYmplY3QqIHIgPSAqaXQ7Ci0gICAgICAgIGlmIChyLT5tX2lzRGVz
Y2VuZGFudCAmJiAhci0+bV9yZW5kZXJlci0+aXNQb3NpdGlvbmVkKCkpCisgICAgICAgIGlmIChy
LT5pc0Rlc2NlbmRhbnQoKSAmJiAhci0+bV9yZW5kZXJlci0+aXNQb3NpdGlvbmVkKCkpCiAgICAg
ICAgICAgICBhZGRPdmVyZmxvd0Zyb21DaGlsZChyLT5tX3JlbmRlcmVyLCBJbnRTaXplKHhQb3Np
dGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKHIpLCB5UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGlu
Z01hcmdpbihyKSkpOwogICAgIH0KICAgICByZXR1cm47CkBAIC0yNjI4LDcgKzI2NDMsNyBAQCB2
b2lkIFJlbmRlckJsb2NrOjpyZXBhaW50T3ZlcmhhbmdpbmdGbG9hCiAgICAgICAgIC8vIE9ubHkg
cmVwYWludCB0aGUgb2JqZWN0IGlmIGl0IGlzIG92ZXJoYW5naW5nLCBpcyBub3QgaW4gaXRzIG93
biBsYXllciwgYW5kCiAgICAgICAgIC8vIGlzIG91ciByZXNwb25zaWJpbGl0eSB0byBwYWludCAo
bV9zaG91bGRQYWludCBpcyBzZXQpLiBXaGVuIHBhaW50QWxsRGVzY2VuZGFudHMgaXMgdHJ1ZSwg
dGhlIGxhdHRlcgogICAgICAgICAvLyBjb25kaXRpb24gaXMgcmVwbGFjZWQgd2l0aCBiZWluZyBh
IGRlc2NlbmRhbnQgb2YgdXMuCi0gICAgICAgIGlmIChsb2dpY2FsQm90dG9tRm9yRmxvYXQocikg
PiBsb2dpY2FsSGVpZ2h0KCkgJiYgKChwYWludEFsbERlc2NlbmRhbnRzICYmIHItPm1fcmVuZGVy
ZXItPmlzRGVzY2VuZGFudE9mKHRoaXMpKSB8fCByLT5tX3Nob3VsZFBhaW50KSAmJiAhci0+bV9y
ZW5kZXJlci0+aGFzU2VsZlBhaW50aW5nTGF5ZXIoKSkgeworICAgICAgICBpZiAobG9naWNhbEJv
dHRvbUZvckZsb2F0KHIpID4gbG9naWNhbEhlaWdodCgpICYmICgocGFpbnRBbGxEZXNjZW5kYW50
cyAmJiByLT5tX3JlbmRlcmVyLT5pc0Rlc2NlbmRhbnRPZih0aGlzKSkgfHwgci0+c2hvdWxkUGFp
bnQoKSkgJiYgIXItPm1fcmVuZGVyZXItPmhhc1NlbGZQYWludGluZ0xheWVyKCkpIHsKICAgICAg
ICAgICAgIHItPm1fcmVuZGVyZXItPnJlcGFpbnQoKTsKICAgICAgICAgICAgIHItPm1fcmVuZGVy
ZXItPnJlcGFpbnRPdmVyaGFuZ2luZ0Zsb2F0cygpOwogICAgICAgICB9CkBAIC0yOTg3LDcgKzMw
MDIsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludEZsb2F0cyhQYWludEluZm8mCiAgICAgZm9y
IChGbG9hdGluZ09iamVjdFNldEl0ZXJhdG9yIGl0ID0gZmxvYXRpbmdPYmplY3RTZXQuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIEZsb2F0aW5nT2JqZWN0KiByID0gKml0Owog
ICAgICAgICAvLyBPbmx5IHBhaW50IHRoZSBvYmplY3QgaWYgb3VyIG1fc2hvdWxkUGFpbnQgZmxh
ZyBpcyBzZXQuCi0gICAgICAgIGlmIChyLT5tX3Nob3VsZFBhaW50ICYmICFyLT5tX3JlbmRlcmVy
LT5oYXNTZWxmUGFpbnRpbmdMYXllcigpKSB7CisgICAgICAgIGlmIChyLT5zaG91bGRQYWludCgp
ICYmICFyLT5tX3JlbmRlcmVyLT5oYXNTZWxmUGFpbnRpbmdMYXllcigpKSB7CiAgICAgICAgICAg
ICBQYWludEluZm8gY3VycmVudFBhaW50SW5mbyhwYWludEluZm8pOwogICAgICAgICAgICAgY3Vy
cmVudFBhaW50SW5mby5waGFzZSA9IHByZXNlcnZlUGhhc2UgPyBwYWludEluZm8ucGhhc2UgOiBQ
YWludFBoYXNlQmxvY2tCYWNrZ3JvdW5kOwogICAgICAgICAgICAgTGF5b3V0UG9pbnQgY2hpbGRQ
b2ludCA9IGZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQociwgTGF5b3V0UG9pbnQocGFp
bnRPZmZzZXQueCgpICsgeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4ocikgLSByLT5t
X3JlbmRlcmVyLT54KCksIHBhaW50T2Zmc2V0LnkoKSArIHlQb3NpdGlvbkZvckZsb2F0SW5jbHVk
aW5nTWFyZ2luKHIpIC0gci0+bV9yZW5kZXJlci0+eSgpKSk7CkBAIC0zNTgxLDggKzM1OTYsOCBA
QCBSZW5kZXJCbG9jazo6RmxvYXRpbmdPYmplY3QqIFJlbmRlckJsb2NrCiAgICAgfQogICAgIHNl
dExvZ2ljYWxXaWR0aEZvckZsb2F0KG5ld09iaiwgbG9naWNhbFdpZHRoRm9yQ2hpbGQobykgKyBt
YXJnaW5TdGFydEZvckNoaWxkKG8pICsgbWFyZ2luRW5kRm9yQ2hpbGQobykpOwogCi0gICAgbmV3
T2JqLT5tX3Nob3VsZFBhaW50ID0gIW8tPmhhc1NlbGZQYWludGluZ0xheWVyKCk7IC8vIElmIGEg
bGF5ZXIgZXhpc3RzLCB0aGUgZmxvYXQgd2lsbCBwYWludCBpdHNlbGYuICBPdGhlcndpc2Ugc29t
ZW9uZSBlbHNlIHdpbGwuCi0gICAgbmV3T2JqLT5tX2lzRGVzY2VuZGFudCA9IHRydWU7CisgICAg
bmV3T2JqLT5zZXRTaG91bGRQYWludCghby0+aGFzU2VsZlBhaW50aW5nTGF5ZXIoKSk7IC8vIElm
IGEgbGF5ZXIgZXhpc3RzLCB0aGUgZmxvYXQgd2lsbCBwYWludCBpdHNlbGYuIE90aGVyd2lzZSBz
b21lb25lIGVsc2Ugd2lsbC4KKyAgICBuZXdPYmotPnNldElzRGVzY2VuZGFudCh0cnVlKTsKICAg
ICBuZXdPYmotPm1fcmVuZGVyZXIgPSBvOwogCiAgICAgbV9mbG9hdGluZ09iamVjdHMtPmFkZChu
ZXdPYmopOwpAQCAtNDIzOCw3ICs0MjUzLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y2xlYXJGbG9h
dHMoQmxvY2tMYXlvdQogICAgICAgICBSZW5kZXJlclRvRmxvYXRJbmZvTWFwOjppdGVyYXRvciBl
bmQgPSBmbG9hdE1hcC5lbmQoKTsKICAgICAgICAgZm9yIChSZW5kZXJlclRvRmxvYXRJbmZvTWFw
OjppdGVyYXRvciBpdCA9IGZsb2F0TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAg
ICAgICAgICAgRmxvYXRpbmdPYmplY3QqIGZsb2F0aW5nT2JqZWN0ID0gKCppdCkuc2Vjb25kOwot
ICAgICAgICAgICAgaWYgKCFmbG9hdGluZ09iamVjdC0+bV9pc0Rlc2NlbmRhbnQpIHsKKyAgICAg
ICAgICAgIGlmICghZmxvYXRpbmdPYmplY3QtPmlzRGVzY2VuZGFudCgpKSB7CiAgICAgICAgICAg
ICAgICAgY2hhbmdlTG9naWNhbFRvcCA9IDA7CiAgICAgICAgICAgICAgICAgY2hhbmdlTG9naWNh
bEJvdHRvbSA9IG1heChjaGFuZ2VMb2dpY2FsQm90dG9tLCBsb2dpY2FsQm90dG9tRm9yRmxvYXQo
ZmxvYXRpbmdPYmplY3QpKTsKICAgICAgICAgICAgIH0KQEAgLTQyODEsMTEgKzQyOTYsMTEgQEAg
TGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YWRkT3ZlcmhhbmdpbmdGbAogICAgICAgICAgICAgICAg
IC8vIGZhciBvdXQgYXMgd2UgY2FuLCB0byB0aGUgb3V0ZXJtb3N0IGJsb2NrIHRoYXQgb3Zlcmxh
cHMgdGhlIGZsb2F0LCBzdG9wcGluZyBvbmx5CiAgICAgICAgICAgICAgICAgLy8gaWYgd2UgaGl0
IGEgc2VsZi1wYWludGluZyBsYXllciBib3VuZGFyeS4KICAgICAgICAgICAgICAgICBpZiAoci0+
bV9yZW5kZXJlci0+ZW5jbG9zaW5nRmxvYXRQYWludGluZ0xheWVyKCkgPT0gZW5jbG9zaW5nRmxv
YXRQYWludGluZ0xheWVyKCkpCi0gICAgICAgICAgICAgICAgICAgIHItPm1fc2hvdWxkUGFpbnQg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgci0+c2V0U2hvdWxkUGFpbnQoZmFsc2UpOwog
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZmxvYXRpbmdPYmotPm1f
c2hvdWxkUGFpbnQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBm
bG9hdGluZ09iai0+bV9pc0Rlc2NlbmRhbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBm
bG9hdGluZ09iai0+c2V0U2hvdWxkUGFpbnQoZmFsc2UpOworCisgICAgICAgICAgICAgICAgZmxv
YXRpbmdPYmotPnNldElzRGVzY2VuZGFudCh0cnVlKTsKIAogICAgICAgICAgICAgICAgIC8vIFdl
IGNyZWF0ZSB0aGUgZmxvYXRpbmcgb2JqZWN0IGxpc3QgbGF6aWx5LgogICAgICAgICAgICAgICAg
IGlmICghbV9mbG9hdGluZ09iamVjdHMpCkBAIC00Mjk0LDE5ICs0MzA5LDE5IEBAIExheW91dFVu
aXQgUmVuZGVyQmxvY2s6OmFkZE92ZXJoYW5naW5nRmwKICAgICAgICAgICAgICAgICBtX2Zsb2F0
aW5nT2JqZWN0cy0+YWRkKGZsb2F0aW5nT2JqKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIGlmIChtYWtlQ2hpbGRQYWludE90aGVyRmxvYXRzICYmICFyLT5t
X3Nob3VsZFBhaW50ICYmICFyLT5tX3JlbmRlcmVyLT5oYXNTZWxmUGFpbnRpbmdMYXllcigpICYm
Ci0gICAgICAgICAgICAgICAgci0+bV9yZW5kZXJlci0+aXNEZXNjZW5kYW50T2YoY2hpbGQpICYm
IHItPm1fcmVuZGVyZXItPmVuY2xvc2luZ0Zsb2F0UGFpbnRpbmdMYXllcigpID09IGNoaWxkLT5l
bmNsb3NpbmdGbG9hdFBhaW50aW5nTGF5ZXIoKSkgeworICAgICAgICAgICAgaWYgKG1ha2VDaGls
ZFBhaW50T3RoZXJGbG9hdHMgJiYgIXItPnNob3VsZFBhaW50KCkgJiYgIXItPm1fcmVuZGVyZXIt
Pmhhc1NlbGZQYWludGluZ0xheWVyKCkKKyAgICAgICAgICAgICAgICAmJiByLT5tX3JlbmRlcmVy
LT5pc0Rlc2NlbmRhbnRPZihjaGlsZCkgJiYgci0+bV9yZW5kZXJlci0+ZW5jbG9zaW5nRmxvYXRQ
YWludGluZ0xheWVyKCkgPT0gY2hpbGQtPmVuY2xvc2luZ0Zsb2F0UGFpbnRpbmdMYXllcigpKSB7
CiAgICAgICAgICAgICAgICAgLy8gVGhlIGZsb2F0IGlzIG5vdCBvdmVyaGFuZ2luZyBmcm9tIHRo
aXMgYmxvY2ssIHNvIGlmIGl0IGlzIGEgZGVzY2VuZGFudCBvZiB0aGUgY2hpbGQsIHRoZSBjaGls
ZCBzaG91bGQKICAgICAgICAgICAgICAgICAvLyBwYWludCBpdCAodGhlIG90aGVyIGNhc2UgaXMg
dGhhdCBpdCBpcyBpbnRydWRpbmcgaW50byB0aGUgY2hpbGQpLCB1bmxlc3MgaXQgaGFzIGl0cyBv
d24gbGF5ZXIgb3IgZW5jbG9zaW5nCiAgICAgICAgICAgICAgICAgLy8gbGF5ZXIuCiAgICAgICAg
ICAgICAgICAgLy8gSWYgbWFrZUNoaWxkUGFpbnRPdGhlckZsb2F0cyBpcyBmYWxzZSwgaXQgbWVh
bnMgdGhhdCB0aGUgY2hpbGQgbXVzdCBhbHJlYWR5IGtub3cgYWJvdXQgYWxsIHRoZSBmbG9hdHMK
ICAgICAgICAgICAgICAgICAvLyBpdCBzaG91bGQgcGFpbnQuCi0gICAgICAgICAgICAgICAgci0+
bV9zaG91bGRQYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgci0+c2V0U2hvdWxkUGFpbnQo
dHJ1ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFNpbmNl
IHRoZSBmbG9hdCBkb2Vzbid0IG92ZXJoYW5nLCBpdCBkaWRuJ3QgZ2V0IHB1dCBpbnRvIG91ciBs
aXN0LiAgV2UgbmVlZCB0byBnbyBhaGVhZCBhbmQgYWRkIGl0cyBvdmVyZmxvdyBpbiB0byB0aGUK
ICAgICAgICAgICAgIC8vIGNoaWxkIG5vdy4KLSAgICAgICAgICAgIGlmIChyLT5tX2lzRGVzY2Vu
ZGFudCkKKyAgICAgICAgICAgIGlmIChyLT5pc0Rlc2NlbmRhbnQoKSkKICAgICAgICAgICAgICAg
ICBjaGlsZC0+YWRkT3ZlcmZsb3dGcm9tQ2hpbGQoci0+bV9yZW5kZXJlciwgTGF5b3V0U2l6ZSh4
UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihyKSwgeVBvc2l0aW9uRm9yRmxvYXRJbmNs
dWRpbmdNYXJnaW4ocikpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQzNTcsNyArNDM3Miw3IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OmFkZEludHJ1ZGluZ0Zsb2F0cyhSZW4KICAgICAgICAgICAgICAg
ICAgICAgICAgIGZsb2F0aW5nT2JqLT5zZXRZKGZsb2F0aW5nT2JqLT55KCkgKyBwcmV2LT5tYXJn
aW5Ub3AoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgZmxvYXRpbmdPYmotPm1fc2hvdWxkUGFpbnQgPSBmYWxzZTsgIC8vIFdlIGFyZSBub3Qg
aW4gdGhlIGRpcmVjdCBpbmhlcml0YW5jZSBjaGFpbiBmb3IgdGhpcyBmbG9hdC4gV2Ugd2lsbCBu
ZXZlciBwYWludCBpdC4KKyAgICAgICAgICAgICAgICBmbG9hdGluZ09iai0+c2V0U2hvdWxkUGFp
bnQoZmFsc2UpOyAvLyBXZSBhcmUgbm90IGluIHRoZSBkaXJlY3QgaW5oZXJpdGFuY2UgY2hhaW4g
Zm9yIHRoaXMgZmxvYXQuIFdlIHdpbGwgbmV2ZXIgcGFpbnQgaXQuCiAgICAgICAgICAgICAgICAg
ZmxvYXRpbmdPYmotPm1fcmVuZGVyZXIgPSByLT5tX3JlbmRlcmVyOwogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIC8vIFdlIGNyZWF0ZSB0aGUgZmxvYXRpbmcgb2JqZWN0IGxpc3Qg
bGF6aWx5LgpAQCAtNDU3NSw3ICs0NTkwLDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6aGl0VGVzdEZs
b2F0cyhjb25zdCBIaQogICAgIGZvciAoRmxvYXRpbmdPYmplY3RTZXRJdGVyYXRvciBpdCA9IGZs
b2F0aW5nT2JqZWN0U2V0LmVuZCgpOyBpdCAhPSBiZWdpbjspIHsKICAgICAgICAgLS1pdDsKICAg
ICAgICAgRmxvYXRpbmdPYmplY3QqIGZsb2F0aW5nT2JqZWN0ID0gKml0OwotICAgICAgICBpZiAo
ZmxvYXRpbmdPYmplY3QtPm1fc2hvdWxkUGFpbnQgJiYgIWZsb2F0aW5nT2JqZWN0LT5tX3JlbmRl
cmVyLT5oYXNTZWxmUGFpbnRpbmdMYXllcigpKSB7CisgICAgICAgIGlmIChmbG9hdGluZ09iamVj
dC0+c2hvdWxkUGFpbnQoKSAmJiAhZmxvYXRpbmdPYmplY3QtPm1fcmVuZGVyZXItPmhhc1NlbGZQ
YWludGluZ0xheWVyKCkpIHsKICAgICAgICAgICAgIExheW91dFVuaXQgeE9mZnNldCA9IHhQb3Np
dGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGZsb2F0aW5nT2JqZWN0KSAtIGZsb2F0aW5nT2Jq
ZWN0LT5tX3JlbmRlcmVyLT54KCk7CiAgICAgICAgICAgICBMYXlvdXRVbml0IHlPZmZzZXQgPSB5
UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihmbG9hdGluZ09iamVjdCkgLSBmbG9hdGlu
Z09iamVjdC0+bV9yZW5kZXJlci0+eSgpOwogICAgICAgICAgICAgTGF5b3V0UG9pbnQgY2hpbGRQ
b2ludCA9IGZsaXBGbG9hdEZvcldyaXRpbmdNb2RlRm9yQ2hpbGQoZmxvYXRpbmdPYmplY3QsIGFk
anVzdGVkTG9jYXRpb24gKyBMYXlvdXRTaXplKHhPZmZzZXQsIHlPZmZzZXQpKTsKQEAgLTYzMDYs
NyArNjMyMSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkanVzdEZvckJvcmRlckZpdChMYXkKICAg
ICAgICAgICAgIGZvciAoRmxvYXRpbmdPYmplY3RTZXRJdGVyYXRvciBpdCA9IGZsb2F0aW5nT2Jq
ZWN0U2V0LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgICAgIEZsb2F0
aW5nT2JqZWN0KiByID0gKml0OwogICAgICAgICAgICAgICAgIC8vIE9ubHkgZXhhbWluZSB0aGUg
b2JqZWN0IGlmIG91ciBtX3Nob3VsZFBhaW50IGZsYWcgaXMgc2V0LgotICAgICAgICAgICAgICAg
IGlmIChyLT5tX3Nob3VsZFBhaW50KSB7CisgICAgICAgICAgICAgICAgaWYgKHItPnNob3VsZFBh
aW50KCkpIHsKICAgICAgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBmbG9hdExlZnQgPSB4UG9z
aXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdpbihyKSAtIHItPm1fcmVuZGVyZXItPngoKTsKICAg
ICAgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBmbG9hdFJpZ2h0ID0gZmxvYXRMZWZ0ICsgci0+
bV9yZW5kZXJlci0+d2lkdGgoKTsKICAgICAgICAgICAgICAgICAgICAgbGVmdCA9IG1pbihsZWZ0
LCBmbG9hdExlZnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJ
KHJldmlzaW9uIDExMjUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC02MjAsMTYgKzYyMCwyMyBAQCBwcml2YXRlOgogICAgICAg
ICB2b2lkIHNldElzSW5QbGFjZWRUcmVlKGJvb2wgdmFsdWUpIHsgbV9pc0luUGxhY2VkVHJlZSA9
IHZhbHVlOyB9CiAjZW5kaWYKIAorICAgICAgICBib29sIHNob3VsZFBhaW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRQYWludDsgfQorICAgICAgICB2b2lkIHNldFNob3VsZFBhaW50KGJvb2wg
c2hvdWxkUGFpbnQpIHsgbV9zaG91bGRQYWludCA9IHNob3VsZFBhaW50OyB9CisgICAgICAgIGJv
b2wgaXNEZXNjZW5kYW50KCkgY29uc3QgeyByZXR1cm4gbV9pc0Rlc2NlbmRhbnQ7IH0KKyAgICAg
ICAgdm9pZCBzZXRJc0Rlc2NlbmRhbnQoYm9vbCBpc0Rlc2NlbmRhbnQpIHsgbV9pc0Rlc2NlbmRh
bnQgPSBpc0Rlc2NlbmRhbnQ7IH0KKwogICAgICAgICBSZW5kZXJCb3gqIG1fcmVuZGVyZXI7CiAg
ICAgICAgIFJvb3RJbmxpbmVCb3gqIG1fb3JpZ2luYXRpbmdMaW5lOwogICAgICAgICBMYXlvdXRS
ZWN0IG1fZnJhbWVSZWN0OwogICAgICAgICBpbnQgbV9wYWdpbmF0aW9uU3RydXQ7CisKKyAgICBw
cml2YXRlOgogICAgICAgICB1bnNpZ25lZCBtX3R5cGUgOiAzOyAvLyBUeXBlIChsZWZ0L3JpZ2h0
IGFsaWduZWQgb3IgcG9zaXRpb25lZCkKLSAgICAgICAgYm9vbCBtX3Nob3VsZFBhaW50IDogMTsK
LSAgICAgICAgYm9vbCBtX2lzRGVzY2VuZGFudCA6IDE7Ci0gICAgICAgIGJvb2wgbV9pc1BsYWNl
ZCA6IDE7CisgICAgICAgIHVuc2lnbmVkIG1fc2hvdWxkUGFpbnQgOiAxOworICAgICAgICB1bnNp
Z25lZCBtX2lzRGVzY2VuZGFudCA6IDE7CisgICAgICAgIHVuc2lnbmVkIG1faXNQbGFjZWQgOiAx
OwogI2lmbmRlZiBOREVCVUcKLSAgICAgICAgYm9vbCBtX2lzSW5QbGFjZWRUcmVlIDogMTsKKyAg
ICAgICAgdW5zaWduZWQgbV9pc0luUGxhY2VkVHJlZSA6IDE7CiAjZW5kaWYKICAgICB9OwogCkBA
IC0xMTI3LDkgKzExMzQsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyTGluZUJveExpc3QgbV9s
aW5lQm94ZXM7ICAgLy8gQWxsIG9mIHRoZSByb290IGxpbmUgYm94ZXMgY3JlYXRlZCBmb3IgdGhp
cyBibG9jayBmbG93LiAgRm9yIGV4YW1wbGUsIDxkaXY+SGVsbG88YnI+d29ybGQuPC9kaXY+IHdp
bGwgaGF2ZSB0d28gdG90YWwgbGluZXMgZm9yIHRoZSA8ZGl2Pi4KIAogICAgIG11dGFibGUgc2ln
bmVkIG1fbGluZUhlaWdodCA6IDI5OwotICAgIGJvb2wgbV9iZWluZ0Rlc3Ryb3llZCA6IDE7Ci0g
ICAgYm9vbCBtX2hhc1Bvc2l0aW9uZWRGbG9hdHMgOiAxOwotICAgIGJvb2wgbV9oYXNNYXJrdXBU
cnVuY2F0aW9uIDogMTsKKyAgICB1bnNpZ25lZCBtX2JlaW5nRGVzdHJveWVkIDogMTsKKyAgICB1
bnNpZ25lZCBtX2hhc1Bvc2l0aW9uZWRGbG9hdHMgOiAxOworICAgIHVuc2lnbmVkIG1faGFzTWFy
a3VwVHJ1bmNhdGlvbiA6IDE7CiAKICAgICAvLyBSZW5kZXJSdWJ5QmFzZSBvYmplY3RzIG5lZWQg
dG8gYmUgYWJsZSB0byBzcGxpdCBhbmQgbWVyZ2UsIG1vdmluZyB0aGVpciBjaGlsZHJlbiBhcm91
bmQKICAgICAvLyAoY2FsbGluZyBtb3ZlQ2hpbGRUbywgbW92ZUFsbENoaWxkcmVuVG8sIGFuZCBt
YWtlQ2hpbGRyZW5Ob25JbmxpbmUpLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134631</attachid>
            <date>2012-03-29 11:50:14 -0700</date>
            <delta_ts>2012-03-29 13:20:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-82586-20120329115013.patch</filename>
            <type>text/plain</type>
            <size>12574</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjUwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAzLTI5ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBhIGNvbXBpbGUgYXNzZXJ0
IGZvciB0aGUgc2l6ZSBvZiBSZW5kZXJCbG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI1ODYKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENo
YW5nLgorICAgICAgICAKKyAgICAgICAgQWRkIGNvbXBpbGUgYXNzZXJ0cyBmb3IgdGhlIHNpemUg
b2YgUmVuZGVyQmxvY2sgYW5kIFJlbmRlckJsb2NrOjpNYXJnaW5WYWx1ZXMuCisgICAgICAgIFdl
IGNhbid0IGFkZCBhc3NlcnRzIGZvciBGbG9hdGluZ09iamVjdCBhbmQgTWFyZ2luSW5mbyBiZWNh
dXNlIHRoZXkncmUgcHJpdmF0ZSB0byBSZW5kZXJCbG9jay4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChTYW1lU2l6ZUFzUmVuZGVyQmxvY2spOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRkT3ZlcmZs
b3dGcm9tRmxvYXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZXBhaW50T3Zl
cmhhbmdpbmdGbG9hdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50Rmxv
YXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbnNlcnRGbG9hdGluZ09iamVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y2xlYXJGbG9hdHMpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZE92ZXJoYW5naW5nRmxvYXRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGRJbnRydWRpbmdGbG9hdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmhpdFRlc3RGbG9hdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmFkanVzdEZvckJvcmRlckZpdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6RmxvYXRpbmdPYmplY3Q6
OnNob3VsZFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpGbG9hdGluZ09i
amVjdDo6c2V0U2hvdWxkUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OkZs
b2F0aW5nT2JqZWN0Ojppc0Rlc2NlbmRhbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OkZsb2F0aW5nT2JqZWN0OjpzZXRJc0Rlc2NlbmRhbnQpOgorICAgICAgICAoRmxvYXRpbmdP
YmplY3QpOgorICAgICAgICAoUmVuZGVyQmxvY2spOgorCiAyMDEyLTAzLTI5ICBWaW5lZXQgQ2hh
dWRoYXJ5ICA8cmdmNzQ4QG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBSZW1vdmUgY3VzdG9tIGJp
bmRpbmdzIGZvcm0gSW50ZXJuYWxzLmlkbCBvZiBhdHRyaWJ1dGUgdHlwZSBBcnJheS4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTEyNTA1
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjksNiArNjksMjkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCitzdHJ1Y3QgU2FtZVNpemVBc1JlbmRlckJsb2NrIDogcHVibGlj
IFJlbmRlckJveCB7CisgICAgdm9pZCogcG9pbnRlcnNbM107CisgICAgUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0IGNoaWxkcmVuOworICAgIFJlbmRlckxpbmVCb3hMaXN0IGxpbmVCb3hlczsKKyAgICB1
aW50MzJfdCBiaXRmaWVsZHM7Cit9OworCitDT01QSUxFX0FTU0VSVChzaXplb2YoUmVuZGVyQmxv
Y2spID09IHNpemVvZihTYW1lU2l6ZUFzUmVuZGVyQmxvY2spLCBSZW5kZXJCbG9ja19zaG91bGRf
c3RheV9zbWFsbCk7CisKK3N0cnVjdCBTYW1lU2l6ZUFzRmxvYXRpbmdPYmplY3QgeworICAgIHZv
aWQqIHBvaW50ZXJzWzJdOworICAgIExheW91dFJlY3QgcmVjdDsKKyAgICBpbnQgcGFnaW5hdGlv
blN0cnV0OworICAgIHVpbnQzMl90IGJpdGZpZWxkcyA6IDg7Cit9OworCitDT01QSUxFX0FTU0VS
VChzaXplb2YoUmVuZGVyQmxvY2s6Ok1hcmdpblZhbHVlcykgPT0gc2l6ZW9mKExheW91dFVuaXRb
NF0pLCBNYXJnaW5WYWx1ZXNfc2hvdWxkX3N0YXlfc21hbGwpOworCitzdHJ1Y3QgU2FtZVNpemVB
c01hcmdpbkluZm8geworICAgIHVpbnQzMl90IGJpdGZpZWxkcyA6IDE2OworICAgIExheW91dFVu
aXQgbWFyZ2luc1syXTsKK307CisKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPGNvbnN0IFJlbmRlckJv
eCosIENvbHVtbkluZm8qPiBDb2x1bW5JbmZvTWFwOwogc3RhdGljIENvbHVtbkluZm9NYXAqIGdD
b2x1bW5JbmZvTWFwID0gMDsKIApAQCAtMTgxLDYgKzIwNCw4IEBAIFJlbmRlckJsb2NrOjpSZW5k
ZXJCbG9jayhOb2RlKiBub2RlKQogICAgICAgLCBtX2hhc01hcmt1cFRydW5jYXRpb24oZmFsc2Up
CiB7CiAgICAgc2V0Q2hpbGRyZW5JbmxpbmUodHJ1ZSk7CisgICAgQ09NUElMRV9BU1NFUlQoc2l6
ZW9mKFJlbmRlckJsb2NrOjpGbG9hdGluZ09iamVjdCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNGbG9h
dGluZ09iamVjdCksIEZsb2F0aW5nT2JqZWN0X3Nob3VsZF9zdGF5X3NtYWxsKTsKKyAgICBDT01Q
SUxFX0FTU0VSVChzaXplb2YoUmVuZGVyQmxvY2s6Ok1hcmdpbkluZm8pID09IHNpemVvZihTYW1l
U2l6ZUFzTWFyZ2luSW5mbyksIE1hcmdpbkluZm9fc2hvdWxkX3N0YXlfc21hbGwpOwogfQogCiBS
ZW5kZXJCbG9jazo6flJlbmRlckJsb2NrKCkKQEAgLTE3MjEsNyArMTc0Niw3IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OmFkZE92ZXJmbG93RnJvbUZsb2F0cygKICAgICBGbG9hdGluZ09iamVjdFNldEl0
ZXJhdG9yIGVuZCA9IGZsb2F0aW5nT2JqZWN0U2V0LmVuZCgpOwogICAgIGZvciAoRmxvYXRpbmdP
YmplY3RTZXRJdGVyYXRvciBpdCA9IGZsb2F0aW5nT2JqZWN0U2V0LmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkgewogICAgICAgICBGbG9hdGluZ09iamVjdCogciA9ICppdDsKLSAgICAgICAgaWYg
KHItPm1faXNEZXNjZW5kYW50ICYmICFyLT5tX3JlbmRlcmVyLT5pc1Bvc2l0aW9uZWQoKSkKKyAg
ICAgICAgaWYgKHItPmlzRGVzY2VuZGFudCgpICYmICFyLT5tX3JlbmRlcmVyLT5pc1Bvc2l0aW9u
ZWQoKSkKICAgICAgICAgICAgIGFkZE92ZXJmbG93RnJvbUNoaWxkKHItPm1fcmVuZGVyZXIsIElu
dFNpemUoeFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4ociksIHlQb3NpdGlvbkZvckZs
b2F0SW5jbHVkaW5nTWFyZ2luKHIpKSk7CiAgICAgfQogICAgIHJldHVybjsKQEAgLTI2MjgsNyAr
MjY1Myw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnJlcGFpbnRPdmVyaGFuZ2luZ0Zsb2EKICAgICAg
ICAgLy8gT25seSByZXBhaW50IHRoZSBvYmplY3QgaWYgaXQgaXMgb3ZlcmhhbmdpbmcsIGlzIG5v
dCBpbiBpdHMgb3duIGxheWVyLCBhbmQKICAgICAgICAgLy8gaXMgb3VyIHJlc3BvbnNpYmlsaXR5
IHRvIHBhaW50IChtX3Nob3VsZFBhaW50IGlzIHNldCkuIFdoZW4gcGFpbnRBbGxEZXNjZW5kYW50
cyBpcyB0cnVlLCB0aGUgbGF0dGVyCiAgICAgICAgIC8vIGNvbmRpdGlvbiBpcyByZXBsYWNlZCB3
aXRoIGJlaW5nIGEgZGVzY2VuZGFudCBvZiB1cy4KLSAgICAgICAgaWYgKGxvZ2ljYWxCb3R0b21G
b3JGbG9hdChyKSA+IGxvZ2ljYWxIZWlnaHQoKSAmJiAoKHBhaW50QWxsRGVzY2VuZGFudHMgJiYg
ci0+bV9yZW5kZXJlci0+aXNEZXNjZW5kYW50T2YodGhpcykpIHx8IHItPm1fc2hvdWxkUGFpbnQp
ICYmICFyLT5tX3JlbmRlcmVyLT5oYXNTZWxmUGFpbnRpbmdMYXllcigpKSB7CisgICAgICAgIGlm
IChsb2dpY2FsQm90dG9tRm9yRmxvYXQocikgPiBsb2dpY2FsSGVpZ2h0KCkgJiYgKChwYWludEFs
bERlc2NlbmRhbnRzICYmIHItPm1fcmVuZGVyZXItPmlzRGVzY2VuZGFudE9mKHRoaXMpKSB8fCBy
LT5zaG91bGRQYWludCgpKSAmJiAhci0+bV9yZW5kZXJlci0+aGFzU2VsZlBhaW50aW5nTGF5ZXIo
KSkgewogICAgICAgICAgICAgci0+bV9yZW5kZXJlci0+cmVwYWludCgpOwogICAgICAgICAgICAg
ci0+bV9yZW5kZXJlci0+cmVwYWludE92ZXJoYW5naW5nRmxvYXRzKCk7CiAgICAgICAgIH0KQEAg
LTI5ODcsNyArMzAxMiw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50RmxvYXRzKFBhaW50SW5m
byYKICAgICBmb3IgKEZsb2F0aW5nT2JqZWN0U2V0SXRlcmF0b3IgaXQgPSBmbG9hdGluZ09iamVj
dFNldC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgRmxvYXRpbmdPYmplY3Qq
IHIgPSAqaXQ7CiAgICAgICAgIC8vIE9ubHkgcGFpbnQgdGhlIG9iamVjdCBpZiBvdXIgbV9zaG91
bGRQYWludCBmbGFnIGlzIHNldC4KLSAgICAgICAgaWYgKHItPm1fc2hvdWxkUGFpbnQgJiYgIXIt
Pm1fcmVuZGVyZXItPmhhc1NlbGZQYWludGluZ0xheWVyKCkpIHsKKyAgICAgICAgaWYgKHItPnNo
b3VsZFBhaW50KCkgJiYgIXItPm1fcmVuZGVyZXItPmhhc1NlbGZQYWludGluZ0xheWVyKCkpIHsK
ICAgICAgICAgICAgIFBhaW50SW5mbyBjdXJyZW50UGFpbnRJbmZvKHBhaW50SW5mbyk7CiAgICAg
ICAgICAgICBjdXJyZW50UGFpbnRJbmZvLnBoYXNlID0gcHJlc2VydmVQaGFzZSA/IHBhaW50SW5m
by5waGFzZSA6IFBhaW50UGhhc2VCbG9ja0JhY2tncm91bmQ7CiAgICAgICAgICAgICBMYXlvdXRQ
b2ludCBjaGlsZFBvaW50ID0gZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChyLCBMYXlv
dXRQb2ludChwYWludE9mZnNldC54KCkgKyB4UG9zaXRpb25Gb3JGbG9hdEluY2x1ZGluZ01hcmdp
bihyKSAtIHItPm1fcmVuZGVyZXItPngoKSwgcGFpbnRPZmZzZXQueSgpICsgeVBvc2l0aW9uRm9y
RmxvYXRJbmNsdWRpbmdNYXJnaW4ocikgLSByLT5tX3JlbmRlcmVyLT55KCkpKTsKQEAgLTM1ODEs
OCArMzYwNiw4IEBAIFJlbmRlckJsb2NrOjpGbG9hdGluZ09iamVjdCogUmVuZGVyQmxvY2sKICAg
ICB9CiAgICAgc2V0TG9naWNhbFdpZHRoRm9yRmxvYXQobmV3T2JqLCBsb2dpY2FsV2lkdGhGb3JD
aGlsZChvKSArIG1hcmdpblN0YXJ0Rm9yQ2hpbGQobykgKyBtYXJnaW5FbmRGb3JDaGlsZChvKSk7
CiAKLSAgICBuZXdPYmotPm1fc2hvdWxkUGFpbnQgPSAhby0+aGFzU2VsZlBhaW50aW5nTGF5ZXIo
KTsgLy8gSWYgYSBsYXllciBleGlzdHMsIHRoZSBmbG9hdCB3aWxsIHBhaW50IGl0c2VsZi4gIE90
aGVyd2lzZSBzb21lb25lIGVsc2Ugd2lsbC4KLSAgICBuZXdPYmotPm1faXNEZXNjZW5kYW50ID0g
dHJ1ZTsKKyAgICBuZXdPYmotPnNldFNob3VsZFBhaW50KCFvLT5oYXNTZWxmUGFpbnRpbmdMYXll
cigpKTsgLy8gSWYgYSBsYXllciBleGlzdHMsIHRoZSBmbG9hdCB3aWxsIHBhaW50IGl0c2VsZi4g
T3RoZXJ3aXNlIHNvbWVvbmUgZWxzZSB3aWxsLgorICAgIG5ld09iai0+c2V0SXNEZXNjZW5kYW50
KHRydWUpOwogICAgIG5ld09iai0+bV9yZW5kZXJlciA9IG87CiAKICAgICBtX2Zsb2F0aW5nT2Jq
ZWN0cy0+YWRkKG5ld09iaik7CkBAIC00MjM4LDcgKzQyNjMsNyBAQCB2b2lkIFJlbmRlckJsb2Nr
OjpjbGVhckZsb2F0cyhCbG9ja0xheW91CiAgICAgICAgIFJlbmRlcmVyVG9GbG9hdEluZm9NYXA6
Oml0ZXJhdG9yIGVuZCA9IGZsb2F0TWFwLmVuZCgpOwogICAgICAgICBmb3IgKFJlbmRlcmVyVG9G
bG9hdEluZm9NYXA6Oml0ZXJhdG9yIGl0ID0gZmxvYXRNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CiAgICAgICAgICAgICBGbG9hdGluZ09iamVjdCogZmxvYXRpbmdPYmplY3QgPSAoKml0
KS5zZWNvbmQ7Ci0gICAgICAgICAgICBpZiAoIWZsb2F0aW5nT2JqZWN0LT5tX2lzRGVzY2VuZGFu
dCkgeworICAgICAgICAgICAgaWYgKCFmbG9hdGluZ09iamVjdC0+aXNEZXNjZW5kYW50KCkpIHsK
ICAgICAgICAgICAgICAgICBjaGFuZ2VMb2dpY2FsVG9wID0gMDsKICAgICAgICAgICAgICAgICBj
aGFuZ2VMb2dpY2FsQm90dG9tID0gbWF4KGNoYW5nZUxvZ2ljYWxCb3R0b20sIGxvZ2ljYWxCb3R0
b21Gb3JGbG9hdChmbG9hdGluZ09iamVjdCkpOwogICAgICAgICAgICAgfQpAQCAtNDI4MSwxMSAr
NDMwNiwxMSBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjphZGRPdmVyaGFuZ2luZ0ZsCiAgICAg
ICAgICAgICAgICAgLy8gZmFyIG91dCBhcyB3ZSBjYW4sIHRvIHRoZSBvdXRlcm1vc3QgYmxvY2sg
dGhhdCBvdmVybGFwcyB0aGUgZmxvYXQsIHN0b3BwaW5nIG9ubHkKICAgICAgICAgICAgICAgICAv
LyBpZiB3ZSBoaXQgYSBzZWxmLXBhaW50aW5nIGxheWVyIGJvdW5kYXJ5LgogICAgICAgICAgICAg
ICAgIGlmIChyLT5tX3JlbmRlcmVyLT5lbmNsb3NpbmdGbG9hdFBhaW50aW5nTGF5ZXIoKSA9PSBl
bmNsb3NpbmdGbG9hdFBhaW50aW5nTGF5ZXIoKSkKLSAgICAgICAgICAgICAgICAgICAgci0+bV9z
aG91bGRQYWludCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICByLT5zZXRTaG91bGRQYWlu
dChmYWxzZSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBmbG9h
dGluZ09iai0+bV9zaG91bGRQYWludCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIGZsb2F0aW5nT2JqLT5tX2lzRGVzY2VuZGFudCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgICAgIGZsb2F0aW5nT2JqLT5zZXRTaG91bGRQYWludChmYWxzZSk7CisKKyAgICAgICAg
ICAgICAgICBmbG9hdGluZ09iai0+c2V0SXNEZXNjZW5kYW50KHRydWUpOwogCiAgICAgICAgICAg
ICAgICAgLy8gV2UgY3JlYXRlIHRoZSBmbG9hdGluZyBvYmplY3QgbGlzdCBsYXppbHkuCiAgICAg
ICAgICAgICAgICAgaWYgKCFtX2Zsb2F0aW5nT2JqZWN0cykKQEAgLTQyOTQsMTkgKzQzMTksMTkg
QEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6YWRkT3ZlcmhhbmdpbmdGbAogICAgICAgICAgICAg
ICAgIG1fZmxvYXRpbmdPYmplY3RzLT5hZGQoZmxvYXRpbmdPYmopOwogICAgICAgICAgICAgfQog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1ha2VDaGlsZFBhaW50T3RoZXJGbG9h
dHMgJiYgIXItPm1fc2hvdWxkUGFpbnQgJiYgIXItPm1fcmVuZGVyZXItPmhhc1NlbGZQYWludGlu
Z0xheWVyKCkgJiYKLSAgICAgICAgICAgICAgICByLT5tX3JlbmRlcmVyLT5pc0Rlc2NlbmRhbnRP
ZihjaGlsZCkgJiYgci0+bV9yZW5kZXJlci0+ZW5jbG9zaW5nRmxvYXRQYWludGluZ0xheWVyKCkg
PT0gY2hpbGQtPmVuY2xvc2luZ0Zsb2F0UGFpbnRpbmdMYXllcigpKSB7CisgICAgICAgICAgICBp
ZiAobWFrZUNoaWxkUGFpbnRPdGhlckZsb2F0cyAmJiAhci0+c2hvdWxkUGFpbnQoKSAmJiAhci0+
bV9yZW5kZXJlci0+aGFzU2VsZlBhaW50aW5nTGF5ZXIoKQorICAgICAgICAgICAgICAgICYmIHIt
Pm1fcmVuZGVyZXItPmlzRGVzY2VuZGFudE9mKGNoaWxkKSAmJiByLT5tX3JlbmRlcmVyLT5lbmNs
b3NpbmdGbG9hdFBhaW50aW5nTGF5ZXIoKSA9PSBjaGlsZC0+ZW5jbG9zaW5nRmxvYXRQYWludGlu
Z0xheWVyKCkpIHsKICAgICAgICAgICAgICAgICAvLyBUaGUgZmxvYXQgaXMgbm90IG92ZXJoYW5n
aW5nIGZyb20gdGhpcyBibG9jaywgc28gaWYgaXQgaXMgYSBkZXNjZW5kYW50IG9mIHRoZSBjaGls
ZCwgdGhlIGNoaWxkIHNob3VsZAogICAgICAgICAgICAgICAgIC8vIHBhaW50IGl0ICh0aGUgb3Ro
ZXIgY2FzZSBpcyB0aGF0IGl0IGlzIGludHJ1ZGluZyBpbnRvIHRoZSBjaGlsZCksIHVubGVzcyBp
dCBoYXMgaXRzIG93biBsYXllciBvciBlbmNsb3NpbmcKICAgICAgICAgICAgICAgICAvLyBsYXll
ci4KICAgICAgICAgICAgICAgICAvLyBJZiBtYWtlQ2hpbGRQYWludE90aGVyRmxvYXRzIGlzIGZh
bHNlLCBpdCBtZWFucyB0aGF0IHRoZSBjaGlsZCBtdXN0IGFscmVhZHkga25vdyBhYm91dCBhbGwg
dGhlIGZsb2F0cwogICAgICAgICAgICAgICAgIC8vIGl0IHNob3VsZCBwYWludC4KLSAgICAgICAg
ICAgICAgICByLT5tX3Nob3VsZFBhaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByLT5zZXRT
aG91bGRQYWludCh0cnVlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgLy8gU2luY2UgdGhlIGZsb2F0IGRvZXNuJ3Qgb3ZlcmhhbmcsIGl0IGRpZG4ndCBnZXQgcHV0
IGludG8gb3VyIGxpc3QuICBXZSBuZWVkIHRvIGdvIGFoZWFkIGFuZCBhZGQgaXRzIG92ZXJmbG93
IGluIHRvIHRoZQogICAgICAgICAgICAgLy8gY2hpbGQgbm93LgotICAgICAgICAgICAgaWYgKHIt
Pm1faXNEZXNjZW5kYW50KQorICAgICAgICAgICAgaWYgKHItPmlzRGVzY2VuZGFudCgpKQogICAg
ICAgICAgICAgICAgIGNoaWxkLT5hZGRPdmVyZmxvd0Zyb21DaGlsZChyLT5tX3JlbmRlcmVyLCBM
YXlvdXRTaXplKHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKHIpLCB5UG9zaXRpb25G
b3JGbG9hdEluY2x1ZGluZ01hcmdpbihyKSkpOwogICAgICAgICB9CiAgICAgfQpAQCAtNDM1Nyw3
ICs0MzgyLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRkSW50cnVkaW5nRmxvYXRzKFJlbgogICAg
ICAgICAgICAgICAgICAgICAgICAgZmxvYXRpbmdPYmotPnNldFkoZmxvYXRpbmdPYmotPnkoKSAr
IHByZXYtPm1hcmdpblRvcCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBmbG9hdGluZ09iai0+bV9zaG91bGRQYWludCA9IGZhbHNlOyAgLy8g
V2UgYXJlIG5vdCBpbiB0aGUgZGlyZWN0IGluaGVyaXRhbmNlIGNoYWluIGZvciB0aGlzIGZsb2F0
LiBXZSB3aWxsIG5ldmVyIHBhaW50IGl0LgorICAgICAgICAgICAgICAgIGZsb2F0aW5nT2JqLT5z
ZXRTaG91bGRQYWludChmYWxzZSk7IC8vIFdlIGFyZSBub3QgaW4gdGhlIGRpcmVjdCBpbmhlcml0
YW5jZSBjaGFpbiBmb3IgdGhpcyBmbG9hdC4gV2Ugd2lsbCBuZXZlciBwYWludCBpdC4KICAgICAg
ICAgICAgICAgICBmbG9hdGluZ09iai0+bV9yZW5kZXJlciA9IHItPm1fcmVuZGVyZXI7CiAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgLy8gV2UgY3JlYXRlIHRoZSBmbG9hdGluZyBv
YmplY3QgbGlzdCBsYXppbHkuCkBAIC00NTc1LDcgKzQ2MDAsNyBAQCBib29sIFJlbmRlckJsb2Nr
OjpoaXRUZXN0RmxvYXRzKGNvbnN0IEhpCiAgICAgZm9yIChGbG9hdGluZ09iamVjdFNldEl0ZXJh
dG9yIGl0ID0gZmxvYXRpbmdPYmplY3RTZXQuZW5kKCk7IGl0ICE9IGJlZ2luOykgewogICAgICAg
ICAtLWl0OwogICAgICAgICBGbG9hdGluZ09iamVjdCogZmxvYXRpbmdPYmplY3QgPSAqaXQ7Ci0g
ICAgICAgIGlmIChmbG9hdGluZ09iamVjdC0+bV9zaG91bGRQYWludCAmJiAhZmxvYXRpbmdPYmpl
Y3QtPm1fcmVuZGVyZXItPmhhc1NlbGZQYWludGluZ0xheWVyKCkpIHsKKyAgICAgICAgaWYgKGZs
b2F0aW5nT2JqZWN0LT5zaG91bGRQYWludCgpICYmICFmbG9hdGluZ09iamVjdC0+bV9yZW5kZXJl
ci0+aGFzU2VsZlBhaW50aW5nTGF5ZXIoKSkgewogICAgICAgICAgICAgTGF5b3V0VW5pdCB4T2Zm
c2V0ID0geFBvc2l0aW9uRm9yRmxvYXRJbmNsdWRpbmdNYXJnaW4oZmxvYXRpbmdPYmplY3QpIC0g
ZmxvYXRpbmdPYmplY3QtPm1fcmVuZGVyZXItPngoKTsKICAgICAgICAgICAgIExheW91dFVuaXQg
eU9mZnNldCA9IHlQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKGZsb2F0aW5nT2JqZWN0
KSAtIGZsb2F0aW5nT2JqZWN0LT5tX3JlbmRlcmVyLT55KCk7CiAgICAgICAgICAgICBMYXlvdXRQ
b2ludCBjaGlsZFBvaW50ID0gZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChmbG9hdGlu
Z09iamVjdCwgYWRqdXN0ZWRMb2NhdGlvbiArIExheW91dFNpemUoeE9mZnNldCwgeU9mZnNldCkp
OwpAQCAtNjMwNiw3ICs2MzMxLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQm9yZGVy
Rml0KExheQogICAgICAgICAgICAgZm9yIChGbG9hdGluZ09iamVjdFNldEl0ZXJhdG9yIGl0ID0g
ZmxvYXRpbmdPYmplY3RTZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAg
ICAgICAgRmxvYXRpbmdPYmplY3QqIHIgPSAqaXQ7CiAgICAgICAgICAgICAgICAgLy8gT25seSBl
eGFtaW5lIHRoZSBvYmplY3QgaWYgb3VyIG1fc2hvdWxkUGFpbnQgZmxhZyBpcyBzZXQuCi0gICAg
ICAgICAgICAgICAgaWYgKHItPm1fc2hvdWxkUGFpbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ci0+c2hvdWxkUGFpbnQoKSkgewogICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGZsb2F0
TGVmdCA9IHhQb3NpdGlvbkZvckZsb2F0SW5jbHVkaW5nTWFyZ2luKHIpIC0gci0+bV9yZW5kZXJl
ci0+eCgpOwogICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGZsb2F0UmlnaHQgPSBmbG9h
dExlZnQgKyByLT5tX3JlbmRlcmVyLT53aWR0aCgpOwogICAgICAgICAgICAgICAgICAgICBsZWZ0
ID0gbWluKGxlZnQsIGZsb2F0TGVmdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suaAkocmV2aXNpb24gMTEyNTA1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyMCwxNiArNjIwLDIzIEBAIHByaXZh
dGU6CiAgICAgICAgIHZvaWQgc2V0SXNJblBsYWNlZFRyZWUoYm9vbCB2YWx1ZSkgeyBtX2lzSW5Q
bGFjZWRUcmVlID0gdmFsdWU7IH0KICNlbmRpZgogCisgICAgICAgIGJvb2wgc2hvdWxkUGFpbnQo
KSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFBhaW50OyB9CisgICAgICAgIHZvaWQgc2V0U2hvdWxk
UGFpbnQoYm9vbCBzaG91bGRQYWludCkgeyBtX3Nob3VsZFBhaW50ID0gc2hvdWxkUGFpbnQ7IH0K
KyAgICAgICAgYm9vbCBpc0Rlc2NlbmRhbnQoKSBjb25zdCB7IHJldHVybiBtX2lzRGVzY2VuZGFu
dDsgfQorICAgICAgICB2b2lkIHNldElzRGVzY2VuZGFudChib29sIGlzRGVzY2VuZGFudCkgeyBt
X2lzRGVzY2VuZGFudCA9IGlzRGVzY2VuZGFudDsgfQorCiAgICAgICAgIFJlbmRlckJveCogbV9y
ZW5kZXJlcjsKICAgICAgICAgUm9vdElubGluZUJveCogbV9vcmlnaW5hdGluZ0xpbmU7CiAgICAg
ICAgIExheW91dFJlY3QgbV9mcmFtZVJlY3Q7CiAgICAgICAgIGludCBtX3BhZ2luYXRpb25TdHJ1
dDsKKworICAgIHByaXZhdGU6CiAgICAgICAgIHVuc2lnbmVkIG1fdHlwZSA6IDM7IC8vIFR5cGUg
KGxlZnQvcmlnaHQgYWxpZ25lZCBvciBwb3NpdGlvbmVkKQotICAgICAgICBib29sIG1fc2hvdWxk
UGFpbnQgOiAxOwotICAgICAgICBib29sIG1faXNEZXNjZW5kYW50IDogMTsKLSAgICAgICAgYm9v
bCBtX2lzUGxhY2VkIDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9zaG91bGRQYWludCA6IDE7Cisg
ICAgICAgIHVuc2lnbmVkIG1faXNEZXNjZW5kYW50IDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9p
c1BsYWNlZCA6IDE7CiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBib29sIG1faXNJblBsYWNlZFRy
ZWUgOiAxOworICAgICAgICB1bnNpZ25lZCBtX2lzSW5QbGFjZWRUcmVlIDogMTsKICNlbmRpZgog
ICAgIH07CiAKQEAgLTExMjcsOSArMTEzNCw5IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJMaW5l
Qm94TGlzdCBtX2xpbmVCb3hlczsgICAvLyBBbGwgb2YgdGhlIHJvb3QgbGluZSBib3hlcyBjcmVh
dGVkIGZvciB0aGlzIGJsb2NrIGZsb3cuICBGb3IgZXhhbXBsZSwgPGRpdj5IZWxsbzxicj53b3Js
ZC48L2Rpdj4gd2lsbCBoYXZlIHR3byB0b3RhbCBsaW5lcyBmb3IgdGhlIDxkaXY+LgogCiAgICAg
bXV0YWJsZSBzaWduZWQgbV9saW5lSGVpZ2h0IDogMjk7Ci0gICAgYm9vbCBtX2JlaW5nRGVzdHJv
eWVkIDogMTsKLSAgICBib29sIG1faGFzUG9zaXRpb25lZEZsb2F0cyA6IDE7Ci0gICAgYm9vbCBt
X2hhc01hcmt1cFRydW5jYXRpb24gOiAxOworICAgIHVuc2lnbmVkIG1fYmVpbmdEZXN0cm95ZWQg
OiAxOworICAgIHVuc2lnbmVkIG1faGFzUG9zaXRpb25lZEZsb2F0cyA6IDE7CisgICAgdW5zaWdu
ZWQgbV9oYXNNYXJrdXBUcnVuY2F0aW9uIDogMTsKIAogICAgIC8vIFJlbmRlclJ1YnlCYXNlIG9i
amVjdHMgbmVlZCB0byBiZSBhYmxlIHRvIHNwbGl0IGFuZCBtZXJnZSwgbW92aW5nIHRoZWlyIGNo
aWxkcmVuIGFyb3VuZAogICAgIC8vIChjYWxsaW5nIG1vdmVDaGlsZFRvLCBtb3ZlQWxsQ2hpbGRy
ZW5UbywgYW5kIG1ha2VDaGlsZHJlbk5vbklubGluZSkuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>