<?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>72660</bug_id>
          
          <creation_ts>2011-11-17 14:37:05 -0800</creation_ts>
          <short_desc>Remove notifyChange from the public interface of CSSMutableStyleDeclaration</short_desc>
          <delta_ts>2011-11-23 04:19:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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="Rafael Weinstein">rafaelw</reporter>
          <assigned_to name="Rafael Weinstein">rafaelw</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>hyatt</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>kocienda</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>505230</commentid>
    <comment_count>0</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-17 14:37:05 -0800</bug_when>
    <thetext>This is an implementation detail that is leaking out and should not be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505386</commentid>
    <comment_count>1</comment_count>
      <attachid>115713</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-17 17:33:11 -0800</bug_when>
    <thetext>Created attachment 115713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505390</commentid>
    <comment_count>2</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-17 17:38:26 -0800</bug_when>
    <thetext>Note that the this patch is in anticipation of factoring CSSInlineStyleDeclaration out of CSSMutableStyleDeclaration.

Also note that the two public uses of notifyChanged that were passing false were:

1)  ApplyStyleCommand -- which rniwa assures me is safe to change
2) CSSStyleSelector -- which is safe because the declaration has neither a node nor a parentSelector, so notification would have no side effects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505446</commentid>
    <comment_count>3</comment_count>
      <attachid>115713</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 20:14:06 -0800</bug_when>
    <thetext>Comment on attachment 115713
Patch

Attachment 115713 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10340483

New failing tests:
animations/animation-drt-api.html
animations/3d/transform-origin-vs-functions.html
accessibility/hang-in-isignored.html
accessibility/contenteditable-hidden-div.html
accessibility/removed-continuation-element-causes-crash.html
animations/animation-direction-normal.html
animations/animation-end-event-destroy-renderer.html
animations/animation-drt-api-multiple-keyframes.html
accessibility/crashing-a-tag-in-map.html
animations/animation-controller-drt-api.html
canvas/philip/tests/2d.canvas.readonly.html
animations/animation-add-events-in-handler.html
accessibility/input-image-alt.html
accessibility/inline-continuations.html
accessibility/image-map1.html
animations/3d/replace-filling-transform.html
animations/3d/change-transform-in-end-event.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
canvas/philip/tests/2d.canvas.reference.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506089</commentid>
    <comment_count>4</comment_count>
      <attachid>115879</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-18 15:01:24 -0800</bug_when>
    <thetext>Created attachment 115879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506094</commentid>
    <comment_count>5</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-18 15:02:29 -0800</bug_when>
    <thetext>2nd time&apos;s a charm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507103</commentid>
    <comment_count>6</comment_count>
      <attachid>115879</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-21 11:32:50 -0800</bug_when>
    <thetext>Comment on attachment 115879
Patch

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

&gt; Source/WebCore/css/CSSMutableStyleDeclaration.cpp:64
&gt; +        CSSMutableStyleDeclaration* decl= s_needsNotify ? s_currentDecl : 0;

Nit: need a space before =

&gt; Source/WebCore/css/CSSMutableStyleDeclaration.cpp:909
&gt; +    NotifyChangedScope changedScope(this);

Is this the only time scope can be nested? I&apos;m not sure if it&apos;s a net-win to introduce a counter just for this case. As far as I know, only editing code calls this function directly or indirectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507279</commentid>
    <comment_count>7</comment_count>
      <attachid>116150</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-21 15:33:30 -0800</bug_when>
    <thetext>Created attachment 116150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507398</commentid>
    <comment_count>8</comment_count>
      <attachid>116150</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-21 20:45:52 -0800</bug_when>
    <thetext>Comment on attachment 116150
Patch

Rejecting attachment 116150 from commit-queue.

New failing tests:
inspector/debugger/dom-breakpoints.html
Full output: http://queues.webkit.org/results/10568075</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507407</commentid>
    <comment_count>9</comment_count>
      <attachid>116150</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-21 21:54:43 -0800</bug_when>
    <thetext>Comment on attachment 116150
Patch

Attachment 116150 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10552084

New failing tests:
inspector/debugger/dom-breakpoints.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507856</commentid>
    <comment_count>10</comment_count>
      <attachid>116288</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-22 16:08:15 -0800</bug_when>
    <thetext>Created attachment 116288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507857</commentid>
    <comment_count>11</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-11-22 16:17:39 -0800</bug_when>
    <thetext>Comment in passing - at some point (not this patch) it would be nice to make this code conform with style guide rule 10:

&quot;Prefer enums to bools on function parameters if callers are likely to be passing constants, since named constants are easier to read at the call site.&quot;

I note that you&apos;re removing one of those bools here, so this patch makes it slightly better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507861</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-22 16:32:11 -0800</bug_when>
    <thetext>On my second thought, I&apos;m no longer certain this change is correct. Someone more familiar with css, editing, etc... should review this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507862</commentid>
    <comment_count>13</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2011-11-22 16:36:36 -0800</bug_when>
    <thetext>After some discussion with Ryosuke, I now think that I don&apos;t need this patch in order to make progress on 70137, so I&apos;m tempted to abandon it.

However, it seems to me like it&apos;d be nice, for code hygiene, to land it.

Darin, Ryosuke feels like you&apos;re the only one qualified at this point to r+ it. If you think it&apos;s worth removing notifyChanged from the public interface, let me know and I can push forward. Otherwise, I&apos;ll drop the effort.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507879</commentid>
    <comment_count>14</comment_count>
      <attachid>116288</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-22 17:23:49 -0800</bug_when>
    <thetext>Comment on attachment 116288
Patch

This patch looks safe to me. The only place it changes behavior is in HTMLElement.cpp when setting contentEditable to false, we now notifyChanged where we didn&apos;t used to. I don&apos;t see how this could cause a bug and I think it was probably wrong to pass false here. Looks like it&apos;s been this way since it was first checked in http://trac.webkit.org/changeset/12984.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507966</commentid>
    <comment_count>15</comment_count>
      <attachid>116288</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-23 00:01:37 -0800</bug_when>
    <thetext>Comment on attachment 116288
Patch

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

&gt; Source/WebCore/html/HTMLElement.cpp:728
&gt; -        attr-&gt;decl()-&gt;removeProperty(CSSPropertyWordWrap, false);
&gt; -        attr-&gt;decl()-&gt;removeProperty(CSSPropertyWebkitNbspMode, false);
&gt; -        attr-&gt;decl()-&gt;removeProperty(CSSPropertyWebkitLineBreak, false);
&gt; +        attr-&gt;decl()-&gt;removeProperty(CSSPropertyWordWrap);
&gt; +        attr-&gt;decl()-&gt;removeProperty(CSSPropertyWebkitNbspMode);
&gt; +        attr-&gt;decl()-&gt;removeProperty(CSSPropertyWebkitLineBreak);

Why is it okay to make this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507967</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-23 00:12:04 -0800</bug_when>
    <thetext>Digging up further, this was an optimization from http://trac.webkit.org/changeset/8041 (by darin reviewed by Ken):

(KHTMLPart::removeEditingStyleFromElement): Change code to call setChanged only if removing
the style attributes really was a change, although it&apos;s not an important optimization it&apos;s
good to do it right.

It&apos;s probably okay to remove this optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507971</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-23 00:17:52 -0800</bug_when>
    <thetext>Hm... in fact, this may have been a regression from http://trac.webkit.org/changeset/12984.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508064</commentid>
    <comment_count>18</comment_count>
      <attachid>116288</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-23 04:19:51 -0800</bug_when>
    <thetext>Comment on attachment 116288
Patch

Clearing flags on attachment: 116288

Committed r101066: &lt;http://trac.webkit.org/changeset/101066&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508065</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-23 04:19:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115713</attachid>
            <date>2011-11-17 17:33:11 -0800</date>
            <delta_ts>2011-11-18 15:01:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72660-20111117173310.patch</filename>
            <type>text/plain</type>
            <size>14076</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWMxNjk3NzM2N2ExNThj
MDYwNTI0MWM2ZWE0NmY0YjE2MTMxNDQ4My4uYzc4M2MyNDljNTAyMTdhZDc3M2Q2ZTExNDg1OWNi
ODVjYjE1MmNjOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTExLTE3ICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG5v
dGlmeUNoYW5nZSBmcm9tIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MjY2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluIGFkZGl0aW9uIHRvIHJlbW92aW5nIG5vdGlmeUNoYW5nZWQgZnJvbSB0aGUgcHVibGljIGlu
dGVyZmFjZSwgaXQgcmVpbXBsZW1lbnRzCisgICAgICAgIGNoYW5nZU5vdGlmaWNhdGlvbiB3aXRo
IHRoZSBSQUlBIHBhdHRlcm4gaW5zdGVhZCBvZiBoYW5kaW5nIGFyb3VuZCBib29sZWFucyB0byBt
dWx0aXBsZQorICAgICAgICBtb2RpZmljYXRpb24gZnVuY3Rpb25zLCBzb21lIG9mIHdoaWNoIGFy
ZSBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZiBlYWNoIG90aGVyLgorCisgICAgICAgIE5vIHRlc3Rz
IG5lZWRlZC4gVGhpcyBpcyBhIHJlZmFjdG9yIG9ubHkuCisKKyAgICAgICAgKiBjc3MvQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246Ok5vdGlmeUNoYW5nZWRTY29wZTo6Tm90aWZ5Q2hhbmdlZFNjb3BlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpOb3RpZnlDaGFu
Z2VkU2NvcGU6On5Ob3RpZnlDaGFuZ2VkU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246Ok5vdGlmeUNoYW5nZWRTY29wZTo6c2V0Q2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlU2hvcnRo
YW5kUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246OnJlbW92ZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlUHJvcGVydGllc0luU2V0KToKKyAgICAg
ICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0VG9SaWdodERlY2xhcmF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJpZ2h0VG9MZWZ0RGVjbGFyYXRpb24pOgorICAgICAg
ICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UpOgorCiAyMDExLTEx
LTE3ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdIHBsdWdpbnMvZ2V0LXVybC1ub3RpZnktd2l0aC11cmwtdGhhdC1mYWlscy10by1sb2Fk
Lmh0bWwgb24gYm90cyBhZnRlciByMTAwNDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA4MWY5NmJiMTlkNGZjMzlhNGI3OWFj
OTE1OGVhNzMyZmM0NjlhYTE0Li5iNzJiOGVmNTgxZWI4MGYwNDk4Mjk4NTY4YTAyNzUwMTJiNGZm
YjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbi5jcHAKQEAgLTQxLDYgKzQxLDQ2IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246Ok5vdGlm
eUNoYW5nZWRTY29wZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTm90aWZ5Q2hhbmdlZFNj
b3BlKTsKK3B1YmxpYzoKKyAgICBOb3RpZnlDaGFuZ2VkU2NvcGUoQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qIGRlY2wpCisgICAgeworICAgICAgICBBU1NFUlQoKCFzX3Njb3BlQ291bnQgJiYg
IXNfbmVlZHNOb3RpZnkpIHx8IHNfY3VycmVudERlY2wpOworCisgICAgICAgIGlmICghc19zY29w
ZUNvdW50KQorICAgICAgICAgICAgc19jdXJyZW50RGVjbCA9IGRlY2w7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIEFTU0VSVChkZWxjID09IHNfY3VycmVudERlY2wpOworCisgICAgICAgICsr
c19zY29wZUNvdW50OworICAgIH0KKworICAgIH5Ob3RpZnlDaGFuZ2VkU2NvcGUoKQorICAgIHsK
KyAgICAgICAgaWYgKC0tc19zY29wZUNvdW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGJvb2wgbm90aWZ5ID0gc19uZWVkc05vdGlmeTsKKyAgICAgICAgc19uZWVkc05vdGlmeSA9
IGZhbHNlOworICAgICAgICBzX2N1cnJlbnREZWNsID0gMDsKKworICAgICAgICBpZiAobm90aWZ5
KQorICAgICAgICAgICAgc19jdXJyZW50RGVjbC0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAg
IH0KKworICAgIHZvaWQgc2V0Q2hhbmdlZCgpIHsgc19uZWVkc05vdGlmeSA9IHRydWU7IH0KKwor
cHJpdmF0ZToKKyAgICBzdGF0aWMgdW5zaWduZWQgc19zY29wZUNvdW50OworICAgIHN0YXRpYyBi
b29sIHNfbmVlZHNOb3RpZnk7CisgICAgc3RhdGljIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
KiBzX2N1cnJlbnREZWNsOworfTsKKwordW5zaWduZWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpOb3RpZnlDaGFuZ2VkU2NvcGU6OnNfc2Nv
cGVDb3VudCA9IDA7Citib29sIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbjo6Tm90aWZ5Q2hhbmdlZFNjb3BlOjpzX25lZWRzTm90aWZ5ID0gZmFs
c2U7CitDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246Ok5vdGlmeUNoYW5nZWRTY29wZTo6c19jdXJyZW50RGVjbCA9IDA7CisKIENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpCiAgICAgOiBDU1NT
dHlsZURlY2xhcmF0aW9uKDAsIC8qIGlzTXV0YWJsZSAqLyB0cnVlKQogICAgICwgbV9ub2RlKDAp
CkBAIC01MDEsMjEgKzU0MSwyMiBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShpbnQgcHJvcGVydAogICAgIHJldHVy
biBwcm9wZXJ0eSA/IHByb3BlcnR5LT52YWx1ZSgpIDogMDsKIH0KIAotYm9vbCBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlU2hvcnRoYW5kUHJvcGVydHkoaW50IHByb3BlcnR5SUQs
IGJvb2wgbm90aWZ5Q2hhbmdlZCkKK2Jvb2wgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnJl
bW92ZVNob3J0aGFuZFByb3BlcnR5KGludCBwcm9wZXJ0eUlEKQogewogICAgIENTU1Byb3BlcnR5
TG9uZ2hhbmQgbG9uZ2hhbmQgPSBsb25naGFuZEZvclByb3BlcnR5KHByb3BlcnR5SUQpOwogICAg
IGlmIChsb25naGFuZC5sZW5ndGgoKSkgewotICAgICAgICByZW1vdmVQcm9wZXJ0aWVzSW5TZXQo
bG9uZ2hhbmQucHJvcGVydGllcygpLCBsb25naGFuZC5sZW5ndGgoKSwgbm90aWZ5Q2hhbmdlZCk7
CisgICAgICAgIHJlbW92ZVByb3BlcnRpZXNJblNldChsb25naGFuZC5wcm9wZXJ0aWVzKCksIGxv
bmdoYW5kLmxlbmd0aCgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotU3RyaW5nIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpyZW1vdmVQ
cm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgYm9vbCBub3RpZnlDaGFuZ2VkLCBib29sIHJldHVyblRl
eHQpCitTdHJpbmcgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnJlbW92ZVByb3BlcnR5KGlu
dCBwcm9wZXJ0eUlELCBib29sIHJldHVyblRleHQpCiB7CiAgICAgQVNTRVJUKCFtX2l0ZXJhdG9y
Q291bnQpOworICAgIE5vdGlmeUNoYW5nZWRTY29wZSBjaGFuZ2VkU2NvcGUodGhpcyk7CiAKLSAg
ICBpZiAocmVtb3ZlU2hvcnRoYW5kUHJvcGVydHkocHJvcGVydHlJRCwgbm90aWZ5Q2hhbmdlZCkp
IHsKKyAgICBpZiAocmVtb3ZlU2hvcnRoYW5kUHJvcGVydHkocHJvcGVydHlJRCkpIHsKICAgICAg
ICAgLy8gRklYTUU6IFJldHVybiBhbiBlcXVpdmFsZW50IHNob3J0aGFuZCB3aGVuIHBvc3NpYmxl
LgogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQpAQCAtNTMwLDggKzU3MSw3IEBAIFN0
cmluZyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlUHJvcGVydHkoaW50IHByb3Bl
cnR5SUQsIGJvb2wgbm90aWZ5Q2hhCiAgICAgLy8gYW5kIHN3ZWVwaW5nIHRoZW0gd2hlbiB0aGUg
dmVjdG9yIGdyb3dzIHRvbyBiaWcuCiAgICAgbV9wcm9wZXJ0aWVzLnJlbW92ZShmb3VuZFByb3Bl
cnR5IC0gbV9wcm9wZXJ0aWVzLmRhdGEoKSk7CiAKLSAgICBpZiAobm90aWZ5Q2hhbmdlZCkKLSAg
ICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgIGNoYW5nZWRTY29wZS5zZXRDaGFuZ2Vk
KCk7CiAKICAgICByZXR1cm4gdmFsdWU7CiB9CkBAIC01ODQsMjMgKzYyNCwyNCBAQCBib29sIENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uOjppc1Byb3BlcnR5SW1wbGljaXQoaW50IHByb3BlcnR5
SUQpIGNvbnN0CiB2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eShp
bnQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gMDsKLSAgICBzZXRQcm9wZXJ0eShwcm9wZXJ0eUlE
LCB2YWx1ZSwgaW1wb3J0YW50LCB0cnVlKTsKKyAgICBzZXRQcm9wZXJ0eShwcm9wZXJ0eUlELCB2
YWx1ZSwgaW1wb3J0YW50KTsKIH0KIAogU3RyaW5nIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
OjpyZW1vdmVQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgZWMgPSAwOwotICAgIHJldHVybiByZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eUlELCB0cnVlLCB0
cnVlKTsKKyAgICByZXR1cm4gcmVtb3ZlUHJvcGVydHkocHJvcGVydHlJRCwgdHJ1ZSk7CiB9CiAK
LWJvb2wgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5KGludCBwcm9wZXJ0
eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBub3RpZnlDaGFu
Z2VkKQorYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHkoaW50IHBy
b3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50KQogewogICAgIEFT
U0VSVCghbV9pdGVyYXRvckNvdW50KTsKKyAgICBOb3RpZnlDaGFuZ2VkU2NvcGUgY2hhbmdlZFNj
b3BlKHRoaXMpOwogCiAgICAgLy8gU2V0dGluZyB0aGUgdmFsdWUgdG8gYW4gZW1wdHkgc3RyaW5n
IGp1c3QgcmVtb3ZlcyB0aGUgcHJvcGVydHkgaW4gYm90aCBJRSBhbmQgR2Vja28uCiAgICAgLy8g
U2V0dGluZyBpdCB0byBudWxsIHNlZW1zIHRvIHByb2R1Y2UgbGVzcyBjb25zaXN0ZW50IHJlc3Vs
dHMsIGJ1dCB3ZSB0cmVhdCBpdCBqdXN0IHRoZSBzYW1lLgogICAgIGlmICh2YWx1ZS5pc0VtcHR5
KCkpIHsKLSAgICAgICAgcmVtb3ZlUHJvcGVydHkocHJvcGVydHlJRCwgbm90aWZ5Q2hhbmdlZCwg
ZmFsc2UpOworICAgICAgICByZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eUlELCBmYWxzZSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtNjEwLDggKzY1MSw4IEBAIGJvb2wgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBjb25zdCBT
dHJpbmcmIHZhbHVlCiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIC8vIENTUyBET00gcmVx
dWlyZXMgcmFpc2luZyBTWU5UQVhfRVJSIGhlcmUsIGJ1dCB0aGlzIGlzIHRvbyBkYW5nZXJvdXMg
Zm9yIGNvbXBhdGliaWxpdHksCiAgICAgICAgIC8vIHNlZSA8aHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzI5Nj4uCi0gICAgfSBlbHNlIGlmIChub3RpZnlDaGFuZ2VkKQot
ICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgfSBlbHNlCisgICAgICAgIGNoYW5n
ZWRTY29wZS5zZXRDaGFuZ2VkKCk7CiAKICAgICByZXR1cm4gc3VjY2VzczsKIH0KQEAgLTYyMCw3
ICs2NjEsNyBAQCB2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eUlu
dGVybmFsKGNvbnN0IENTU1Byb3BlcnR5JiBwcm9wZXJ0eQogewogICAgIEFTU0VSVCghbV9pdGVy
YXRvckNvdW50KTsKIAotICAgIGlmICghcmVtb3ZlU2hvcnRoYW5kUHJvcGVydHkocHJvcGVydHku
aWQoKSwgZmFsc2UpKSB7CisgICAgaWYgKCFyZW1vdmVTaG9ydGhhbmRQcm9wZXJ0eShwcm9wZXJ0
eS5pZCgpKSkgewogICAgICAgICBDU1NQcm9wZXJ0eSogdG9SZXBsYWNlID0gc2xvdCA/IHNsb3Qg
OiBmaW5kUHJvcGVydHlXaXRoSWQocHJvcGVydHkuaWQoKSk7CiAgICAgICAgIGlmICh0b1JlcGxh
Y2UpIHsKICAgICAgICAgICAgICp0b1JlcGxhY2UgPSBwcm9wZXJ0eTsKQEAgLTYzMCwyMSArNjcx
LDI1IEBAIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5SW50ZXJu
YWwoY29uc3QgQ1NTUHJvcGVydHkmIHByb3BlcnR5CiAgICAgbV9wcm9wZXJ0aWVzLmFwcGVuZChw
cm9wZXJ0eSk7CiB9CiAKLWJvb2wgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3Bl
cnR5KGludCBwcm9wZXJ0eUlELCBpbnQgdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBib29sIG5vdGlm
eUNoYW5nZWQpCitib29sIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eShp
bnQgcHJvcGVydHlJRCwgaW50IHZhbHVlLCBib29sIGltcG9ydGFudCkKIHsKKyAgICBOb3RpZnlD
aGFuZ2VkU2NvcGUgY2hhbmdlZFNjb3BlKHRoaXMpOworCiAgICAgQ1NTUHJvcGVydHkgcHJvcGVy
dHkocHJvcGVydHlJRCwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUp
LCBpbXBvcnRhbnQpOwogICAgIHNldFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHkpOwotICAgIGlm
IChub3RpZnlDaGFuZ2VkKQotICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CisKKyAgICBj
aGFuZ2VkU2NvcGUuc2V0Q2hhbmdlZCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgZG91
YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzIHVuaXQsIGJvb2wgaW1wb3J0
YW50LCBib29sIG5vdGlmeUNoYW5nZWQpCitib29sIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
OjpzZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzIHVuaXQsIGJvb2wgaW1wb3J0YW50KQogeworICAgIE5vdGlmeUNoYW5n
ZWRTY29wZSBjaGFuZ2VkU2NvcGUodGhpcyk7CisKICAgICBDU1NQcm9wZXJ0eSBwcm9wZXJ0eShw
cm9wZXJ0eUlELCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLCB1bml0KSwgaW1wb3J0
YW50KTsKICAgICBzZXRQcm9wZXJ0eUludGVybmFsKHByb3BlcnR5KTsKLSAgICBpZiAobm90aWZ5
Q2hhbmdlZCkKLSAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOworCisgICAgY2hhbmdlZFNj
b3BlLnNldENoYW5nZWQoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtODU4LDkgKzkwMywx
MCBAQCB2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpyZW1vdmVCbG9ja1Byb3BlcnRp
ZXMoKQogICAgIHJlbW92ZVByb3BlcnRpZXNJblNldChibG9ja1Byb3BlcnRpZXMsIG51bUJsb2Nr
UHJvcGVydGllcyk7CiB9CiAKLXZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnJlbW92
ZVByb3BlcnRpZXNJblNldChjb25zdCBpbnQqIHNldCwgdW5zaWduZWQgbGVuZ3RoLCBib29sIG5v
dGlmeUNoYW5nZWQpCit2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpyZW1vdmVQcm9w
ZXJ0aWVzSW5TZXQoY29uc3QgaW50KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBBU1NF
UlQoIW1faXRlcmF0b3JDb3VudCk7CisgICAgTm90aWZ5Q2hhbmdlZFNjb3BlIGNoYW5nZWRTY29w
ZSh0aGlzKTsKIAogICAgIGlmIChtX3Byb3BlcnRpZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CkBAIC04ODQsMTEgKzkzMCwxMCBAQCB2b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
OjpyZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29uc3QgaW50KiBzZXQsIHVuc2lnbmVkCiAgICAgICAg
IG5ld1Byb3BlcnRpZXMuYXBwZW5kKHByb3BlcnR5KTsKICAgICB9CiAKLSAgICBib29sIGNoYW5n
ZWQgPSBuZXdQcm9wZXJ0aWVzLnNpemUoKSAhPSBtX3Byb3BlcnRpZXMuc2l6ZSgpOwotICAgIG1f
cHJvcGVydGllcyA9IG5ld1Byb3BlcnRpZXM7CisgICAgaWYgKG5ld1Byb3BlcnRpZXMuc2l6ZSgp
ICE9IG1fcHJvcGVydGllcy5zaXplKCkpCisgICAgICAgIGNoYW5nZWRTY29wZS5zZXRDaGFuZ2Vk
KCk7CiAKLSAgICBpZiAoY2hhbmdlZCAmJiBub3RpZnlDaGFuZ2VkKQotICAgICAgICBzZXROZWVk
c1N0eWxlUmVjYWxjKCk7CisgICAgbV9wcm9wZXJ0aWVzID0gbmV3UHJvcGVydGllczsKIH0KIAog
UGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb246Om1ha2VNdXRhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggYjc4NDc4ZjZlZGFjZmZjMDkwMDA0Y2I1MGRiMGRi
NTIxZDZiYmNiYi4uMWU0OTBhNDhiNzFjMjMyZWI5MzNmNDdhMjFlMjY3NTdmODVlZDEzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKQEAg
LTEwNiwxMSArMTA2LDExIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gY29weSgpIGNvbnN0OwogCi0gICAgYm9vbCBzZXRQcm9w
ZXJ0eShpbnQgcHJvcGVydHlJRCwgaW50IHZhbHVlLCBib29sIGltcG9ydGFudCA9IGZhbHNlLCBi
b29sIG5vdGlmeUNoYW5nZWQgPSB0cnVlKTsKLSAgICBib29sIHNldFByb3BlcnR5KGludCBwcm9w
ZXJ0eUlkLCBkb3VibGUgdmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMsIGJvb2wg
aW1wb3J0YW50ID0gZmFsc2UsIGJvb2wgbm90aWZ5Q2hhbmdlZCA9IHRydWUpOwotICAgIGJvb2wg
c2V0UHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1w
b3J0YW50ID0gZmFsc2UsIGJvb2wgbm90aWZ5Q2hhbmdlZCA9IHRydWUpOworICAgIGJvb2wgc2V0
UHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGludCB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQgPSBmYWxz
ZSk7CisgICAgYm9vbCBzZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgZG91YmxlIHZhbHVlLCBD
U1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzLCBib29sIGltcG9ydGFudCA9IGZhbHNlKTsKKyAg
ICBib29sIHNldFByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlLCBi
b29sIGltcG9ydGFudCA9IGZhbHNlKTsKIAotICAgIFN0cmluZyByZW1vdmVQcm9wZXJ0eShpbnQg
cHJvcGVydHlJRCwgYm9vbCBub3RpZnlDaGFuZ2VkID0gdHJ1ZSwgYm9vbCByZXR1cm5UZXh0ID0g
ZmFsc2UpOworICAgIFN0cmluZyByZW1vdmVQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgYm9vbCBy
ZXR1cm5UZXh0ID0gZmFsc2UpOwogCiAgICAgLy8gc2V0TGVuZ3RoUHJvcGVydHkgdHJlYXRzIGlu
dGVnZXJzIGFzIHBpeGVscyEgKE5lZWRlZCBmb3IgY29udmVyc2lvbiBvZiBIVE1MIGF0dHJpYnV0
ZXMuKQogICAgIHZvaWQgc2V0TGVuZ3RoUHJvcGVydHkoaW50IHByb3BlcnR5SWQsIGNvbnN0IFN0
cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBib29sIG11bHRpTGVuZ3RoID0gZmFsc2UpOwpA
QCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24+IGNvcHlCbG9ja1Byb3BlcnRpZXMoKSBjb25zdDsKICAgICB2b2lkIHJl
bW92ZUJsb2NrUHJvcGVydGllcygpOwotICAgIHZvaWQgcmVtb3ZlUHJvcGVydGllc0luU2V0KGNv
bnN0IGludCogc2V0LCB1bnNpZ25lZCBsZW5ndGgsIGJvb2wgbm90aWZ5Q2hhbmdlZCA9IHRydWUp
OworICAgIHZvaWQgcmVtb3ZlUHJvcGVydGllc0luU2V0KGNvbnN0IGludCogc2V0LCB1bnNpZ25l
ZCBsZW5ndGgpOwogCiAgICAgdm9pZCBtZXJnZShjb25zdCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiosIGJvb2wgYXJnT3ZlcnJpZGVzT25Db25mbGljdCA9IHRydWUpOwogCkBAIC0xNDUsNiAr
MTQ1LDggQEAgcHJvdGVjdGVkOgogICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKENTU1J1
bGUqIHBhcmVudFJ1bGUpOwogCiBwcml2YXRlOgorICAgIGNsYXNzIE5vdGlmeUNoYW5nZWRTY29w
ZTsKKwogICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKCk7CiAgICAgQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24oQ1NTUnVsZSogcGFyZW50UnVsZSwgY29uc3QgVmVjdG9yPENTU1Byb3Bl
cnR5PiYpOwogICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKENTU1J1bGUqIHBhcmVudFJ1
bGUsIGNvbnN0IENTU1Byb3BlcnR5KiBjb25zdCAqLCBpbnQgbnVtUHJvcGVydGllcyk7CkBAIC0x
NjYsNyArMTY4LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxzaXplX3Qgc2l6ZT4gU3RyaW5n
IGdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBpbnQgKCZwcm9wZXJ0aWVzKVtzaXplXSkg
Y29uc3QgeyByZXR1cm4gZ2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKHByb3BlcnRpZXMsIHNpemUp
OyB9CiAKICAgICB2b2lkIHNldFByb3BlcnR5SW50ZXJuYWwoY29uc3QgQ1NTUHJvcGVydHkmLCBD
U1NQcm9wZXJ0eSogc2xvdCA9IDApOwotICAgIGJvb2wgcmVtb3ZlU2hvcnRoYW5kUHJvcGVydHko
aW50IHByb3BlcnR5SUQsIGJvb2wgbm90aWZ5Q2hhbmdlZCk7CisgICAgYm9vbCByZW1vdmVTaG9y
dGhhbmRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCk7CiAKICAgICBWZWN0b3I8Q1NTUHJvcGVydHk+
Ojpjb25zdF9pdGVyYXRvciBmaW5kUHJvcGVydHlXaXRoSWQoaW50IHByb3BlcnR5SWQpIGNvbnN0
OwogICAgIFZlY3RvcjxDU1NQcm9wZXJ0eT46Oml0ZXJhdG9yIGZpbmRQcm9wZXJ0eVdpdGhJZChp
bnQgcHJvcGVydHlJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5k
ZXggMDJlZDIyZDFjZmVhNzllNmFiYTQwNTVmYTAyNjM3YzMzY2IzNTFhZS4uNzUxNDg1OTYxOTA5
ZWViZjY4ZWM5YzZiMWI3YTc1MDc1NGQ3YmVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcApAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyBDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbiogbGVmdFRvUmlnaHREZWNsYXJhdGlvbigpCiB7CiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+LCBsZWZ0VG9SaWdodERl
Y2wsIChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCkpKTsKICAgICBpZiAoIWxl
ZnRUb1JpZ2h0RGVjbC0+bGVuZ3RoKCkpIHsKLSAgICAgICAgbGVmdFRvUmlnaHREZWNsLT5zZXRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgImx0ciIsIGZhbHNlLCBmYWxzZSk7CisgICAg
ICAgIGxlZnRUb1JpZ2h0RGVjbC0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sICJs
dHIiLCBmYWxzZSk7CiAgICAgICAgIGxlZnRUb1JpZ2h0RGVjbC0+c2V0U3RyaWN0UGFyc2luZyhm
YWxzZSk7CiAgICAgfQogICAgIHJldHVybiBsZWZ0VG9SaWdodERlY2wuZ2V0KCk7CkBAIC0zMzYs
NyArMzM2LDcgQEAgc3RhdGljIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiByaWdodFRvTGVm
dERlY2xhcmF0aW9uKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbj4sIHJpZ2h0VG9MZWZ0RGVjbCwgKENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uOjpjcmVhdGUoKSkpOwogICAgIGlmICghcmlnaHRUb0xlZnREZWNsLT5sZW5ndGgo
KSkgewotICAgICAgICByaWdodFRvTGVmdERlY2wtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGly
ZWN0aW9uLCAicnRsIiwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgcmlnaHRUb0xlZnREZWNsLT5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgInJ0bCIsIGZhbHNlKTsKICAgICAgICAg
cmlnaHRUb0xlZnREZWNsLT5zZXRTdHJpY3RQYXJzaW5nKGZhbHNlKTsKICAgICB9CiAgICAgcmV0
dXJuIHJpZ2h0VG9MZWZ0RGVjbC5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHAKaW5kZXggNGU5M2I5ZjBlYWEyOGVjMzFjZGZkOWFhMDNhZmFmYjkz
NTQ3ZWMwZS4uY2Q4ZmIzMTY0MDdhY2E3MzU3OTE1NTQ2YzU4NTJjZGExYmM0Zjk2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAKQEAgLTM5NCw3ICsz
OTQsNyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hh
bmdlKEVkaXRpbmdTdHlsZSogc3R5bGUpCiAgICAgICAgICAgICBjdXJyZW50Rm9udFNpemUgPSBj
b21wdXRlZEZvbnRTaXplKG5vZGUpOwogICAgICAgICB9CiAgICAgICAgIGlmIChjdXJyZW50Rm9u
dFNpemUgIT0gZGVzaXJlZEZvbnRTaXplKSB7Ci0gICAgICAgICAgICBpbmxpbmVTdHlsZURlY2wt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIFN0cmluZzo6bnVtYmVyKGRlc2lyZWRG
b250U2l6ZSkgKyAicHgiLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgaW5saW5lU3R5bGVE
ZWNsLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUZvbnRTaXplLCBTdHJpbmc6Om51bWJlcihkZXNp
cmVkRm9udFNpemUpICsgInB4IiwgZmFsc2UpOwogICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0
ZShlbGVtZW50LmdldCgpLCBzdHlsZUF0dHIsIGlubGluZVN0eWxlRGVjbC0+Y3NzVGV4dCgpKTsK
ICAgICAgICAgfQogICAgICAgICBpZiAoaW5saW5lU3R5bGVEZWNsLT5pc0VtcHR5KCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115879</attachid>
            <date>2011-11-18 15:01:24 -0800</date>
            <delta_ts>2011-11-21 15:33:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72660-20111118150123.patch</filename>
            <type>text/plain</type>
            <size>14075</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZiYjBmZGQzNTMzZTkx
MTEyMDcyYzkyZjg3N2ZlOTk2MzBmNjU5YS4uMDdmNmU0OTE3ZmJmODk3ZWI3ZDIwYzU3M2Q4YWVl
NmUxNDFlMjJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDExLTExLTE3ICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG5v
dGlmeUNoYW5nZSBmcm9tIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MjY2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluIGFkZGl0aW9uIHRvIHJlbW92aW5nIG5vdGlmeUNoYW5nZWQgZnJvbSB0aGUgcHVibGljIGlu
dGVyZmFjZSwgaXQgcmVpbXBsZW1lbnRzCisgICAgICAgIGNoYW5nZU5vdGlmaWNhdGlvbiB3aXRo
IHRoZSBSQUlBIHBhdHRlcm4gaW5zdGVhZCBvZiBoYW5kaW5nIGFyb3VuZCBib29sZWFucyB0byBt
dWx0aXBsZQorICAgICAgICBtb2RpZmljYXRpb24gZnVuY3Rpb25zLCBzb21lIG9mIHdoaWNoIGFy
ZSBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZiBlYWNoIG90aGVyLgorCisgICAgICAgIE5vIHRlc3Rz
IG5lZWRlZC4gVGhpcyBpcyBhIHJlZmFjdG9yIG9ubHkuCisKKyAgICAgICAgKiBjc3MvQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246Ok5vdGlmeUNoYW5nZWRTY29wZTo6Tm90aWZ5Q2hhbmdlZFNjb3BlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpOb3RpZnlDaGFu
Z2VkU2NvcGU6On5Ob3RpZnlDaGFuZ2VkU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246Ok5vdGlmeUNoYW5nZWRTY29wZTo6c2V0Q2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlU2hvcnRo
YW5kUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246OnJlbW92ZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlUHJvcGVydGllc0luU2V0KToKKyAgICAg
ICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0VG9SaWdodERlY2xhcmF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJpZ2h0VG9MZWZ0RGVjbGFyYXRpb24pOgorICAgICAg
ICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UpOgorCiAyMDExLTEx
LTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIC13
ZWJraXQtY3Jvc3MtZmFkZSByZW5kZXJlZCBpbmNvcnJlY3RseSBpbiBvdmVyZmxvdyBkaXZzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCA4MWY5NmJiMTlkNGZjMzlhNGI3OWFjOTE1OGVhNzMyZmM0NjlhYTE0Li44OGZlMWE2ZjY4
M2I4M2I0NjViYmY2MmIyMzk2ZTA3ZTUyMzE2NTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTQxLDYgKzQxLDQ2IEBAIHVz
aW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246Ok5vdGlmeUNoYW5nZWRTY29wZSB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoTm90aWZ5Q2hhbmdlZFNjb3BlKTsKK3B1YmxpYzoKKyAgICBOb3RpZnlDaGFu
Z2VkU2NvcGUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGRlY2wpCisgICAgeworICAgICAg
ICBBU1NFUlQoKCFzX3Njb3BlQ291bnQgJiYgIXNfbmVlZHNOb3RpZnkpIHx8IHNfY3VycmVudERl
Y2wpOworCisgICAgICAgIGlmICghc19zY29wZUNvdW50KQorICAgICAgICAgICAgc19jdXJyZW50
RGVjbCA9IGRlY2w7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEFTU0VSVChkZWNsID09IHNf
Y3VycmVudERlY2wpOworCisgICAgICAgICsrc19zY29wZUNvdW50OworICAgIH0KKworICAgIH5O
b3RpZnlDaGFuZ2VkU2NvcGUoKQorICAgIHsKKyAgICAgICAgaWYgKC0tc19zY29wZUNvdW50KQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
KiBkZWNsPSBzX25lZWRzTm90aWZ5ID8gc19jdXJyZW50RGVjbCA6IDA7CisgICAgICAgIHNfbmVl
ZHNOb3RpZnkgPSBmYWxzZTsKKyAgICAgICAgc19jdXJyZW50RGVjbCA9IDA7CisKKyAgICAgICAg
aWYgKGRlY2wpCisgICAgICAgICAgICBkZWNsLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAg
fQorCisgICAgdm9pZCBzZXRDaGFuZ2VkKCkgeyBzX25lZWRzTm90aWZ5ID0gdHJ1ZTsgfQorCitw
cml2YXRlOgorICAgIHN0YXRpYyB1bnNpZ25lZCBzX3Njb3BlQ291bnQ7CisgICAgc3RhdGljIGJv
b2wgc19uZWVkc05vdGlmeTsKKyAgICBzdGF0aWMgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24q
IHNfY3VycmVudERlY2w7Cit9OworCit1bnNpZ25lZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246Ok5vdGlmeUNoYW5nZWRTY29wZTo6c19zY29w
ZUNvdW50ID0gMDsKK2Jvb2wgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OkNTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uOjpOb3RpZnlDaGFuZ2VkU2NvcGU6OnNfbmVlZHNOb3RpZnkgPSBmYWxz
ZTsKK0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6Tm90aWZ5Q2hhbmdlZFNjb3BlOjpzX2N1cnJlbnREZWNsID0gMDsKKwogQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKCkKICAgICA6IENTU1N0
eWxlRGVjbGFyYXRpb24oMCwgLyogaXNNdXRhYmxlICovIHRydWUpCiAgICAgLCBtX25vZGUoMCkK
QEAgLTUwMSwyMSArNTQxLDIyIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXJ0CiAgICAgcmV0dXJu
IHByb3BlcnR5ID8gcHJvcGVydHktPnZhbHVlKCkgOiAwOwogfQogCi1ib29sIENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uOjpyZW1vdmVTaG9ydGhhbmRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwg
Ym9vbCBub3RpZnlDaGFuZ2VkKQorYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVt
b3ZlU2hvcnRoYW5kUHJvcGVydHkoaW50IHByb3BlcnR5SUQpCiB7CiAgICAgQ1NTUHJvcGVydHlM
b25naGFuZCBsb25naGFuZCA9IGxvbmdoYW5kRm9yUHJvcGVydHkocHJvcGVydHlJRCk7CiAgICAg
aWYgKGxvbmdoYW5kLmxlbmd0aCgpKSB7Ci0gICAgICAgIHJlbW92ZVByb3BlcnRpZXNJblNldChs
b25naGFuZC5wcm9wZXJ0aWVzKCksIGxvbmdoYW5kLmxlbmd0aCgpLCBub3RpZnlDaGFuZ2VkKTsK
KyAgICAgICAgcmVtb3ZlUHJvcGVydGllc0luU2V0KGxvbmdoYW5kLnByb3BlcnRpZXMoKSwgbG9u
Z2hhbmQubGVuZ3RoKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1TdHJpbmcgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnJlbW92ZVBy
b3BlcnR5KGludCBwcm9wZXJ0eUlELCBib29sIG5vdGlmeUNoYW5nZWQsIGJvb2wgcmV0dXJuVGV4
dCkKK1N0cmluZyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlUHJvcGVydHkoaW50
IHByb3BlcnR5SUQsIGJvb2wgcmV0dXJuVGV4dCkKIHsKICAgICBBU1NFUlQoIW1faXRlcmF0b3JD
b3VudCk7CisgICAgTm90aWZ5Q2hhbmdlZFNjb3BlIGNoYW5nZWRTY29wZSh0aGlzKTsKIAotICAg
IGlmIChyZW1vdmVTaG9ydGhhbmRQcm9wZXJ0eShwcm9wZXJ0eUlELCBub3RpZnlDaGFuZ2VkKSkg
eworICAgIGlmIChyZW1vdmVTaG9ydGhhbmRQcm9wZXJ0eShwcm9wZXJ0eUlEKSkgewogICAgICAg
ICAvLyBGSVhNRTogUmV0dXJuIGFuIGVxdWl2YWxlbnQgc2hvcnRoYW5kIHdoZW4gcG9zc2libGUu
CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CkBAIC01MzAsOCArNTcxLDcgQEAgU3Ry
aW5nIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpyZW1vdmVQcm9wZXJ0eShpbnQgcHJvcGVy
dHlJRCwgYm9vbCBub3RpZnlDaGEKICAgICAvLyBhbmQgc3dlZXBpbmcgdGhlbSB3aGVuIHRoZSB2
ZWN0b3IgZ3Jvd3MgdG9vIGJpZy4KICAgICBtX3Byb3BlcnRpZXMucmVtb3ZlKGZvdW5kUHJvcGVy
dHkgLSBtX3Byb3BlcnRpZXMuZGF0YSgpKTsKIAotICAgIGlmIChub3RpZnlDaGFuZ2VkKQotICAg
ICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgY2hhbmdlZFNjb3BlLnNldENoYW5nZWQo
KTsKIAogICAgIHJldHVybiB2YWx1ZTsKIH0KQEAgLTU4NCwyMyArNjI0LDI0IEBAIGJvb2wgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmlzUHJvcGVydHlJbXBsaWNpdChpbnQgcHJvcGVydHlJ
RCkgY29uc3QKIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5KGlu
dCBwcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSAwOwotICAgIHNldFByb3BlcnR5KHByb3BlcnR5SUQs
IHZhbHVlLCBpbXBvcnRhbnQsIHRydWUpOworICAgIHNldFByb3BlcnR5KHByb3BlcnR5SUQsIHZh
bHVlLCBpbXBvcnRhbnQpOwogfQogCiBTdHJpbmcgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
OnJlbW92ZVByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBlYyA9IDA7Ci0gICAgcmV0dXJuIHJlbW92ZVByb3BlcnR5KHByb3BlcnR5SUQsIHRydWUsIHRy
dWUpOworICAgIHJldHVybiByZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eUlELCB0cnVlKTsKIH0KIAot
Ym9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHkoaW50IHByb3BlcnR5
SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBib29sIG5vdGlmeUNoYW5n
ZWQpCitib29sIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eShpbnQgcHJv
cGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgQVNT
RVJUKCFtX2l0ZXJhdG9yQ291bnQpOworICAgIE5vdGlmeUNoYW5nZWRTY29wZSBjaGFuZ2VkU2Nv
cGUodGhpcyk7CiAKICAgICAvLyBTZXR0aW5nIHRoZSB2YWx1ZSB0byBhbiBlbXB0eSBzdHJpbmcg
anVzdCByZW1vdmVzIHRoZSBwcm9wZXJ0eSBpbiBib3RoIElFIGFuZCBHZWNrby4KICAgICAvLyBT
ZXR0aW5nIGl0IHRvIG51bGwgc2VlbXMgdG8gcHJvZHVjZSBsZXNzIGNvbnNpc3RlbnQgcmVzdWx0
cywgYnV0IHdlIHRyZWF0IGl0IGp1c3QgdGhlIHNhbWUuCiAgICAgaWYgKHZhbHVlLmlzRW1wdHko
KSkgewotICAgICAgICByZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eUlELCBub3RpZnlDaGFuZ2VkLCBm
YWxzZSk7CisgICAgICAgIHJlbW92ZVByb3BlcnR5KHByb3BlcnR5SUQsIGZhbHNlKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC02MTAsOCArNjUxLDggQEAgYm9vbCBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGNvbnN0IFN0
cmluZyYgdmFsdWUKICAgICBpZiAoIXN1Y2Nlc3MpIHsKICAgICAgICAgLy8gQ1NTIERPTSByZXF1
aXJlcyByYWlzaW5nIFNZTlRBWF9FUlIgaGVyZSwgYnV0IHRoaXMgaXMgdG9vIGRhbmdlcm91cyBm
b3IgY29tcGF0aWJpbGl0eSwKICAgICAgICAgLy8gc2VlIDxodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03Mjk2Pi4KLSAgICB9IGVsc2UgaWYgKG5vdGlmeUNoYW5nZWQpCi0g
ICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgY2hhbmdl
ZFNjb3BlLnNldENoYW5nZWQoKTsKIAogICAgIHJldHVybiBzdWNjZXNzOwogfQpAQCAtNjIwLDcg
KzY2MSw3IEBAIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5SW50
ZXJuYWwoY29uc3QgQ1NTUHJvcGVydHkmIHByb3BlcnR5CiB7CiAgICAgQVNTRVJUKCFtX2l0ZXJh
dG9yQ291bnQpOwogCi0gICAgaWYgKCFyZW1vdmVTaG9ydGhhbmRQcm9wZXJ0eShwcm9wZXJ0eS5p
ZCgpLCBmYWxzZSkpIHsKKyAgICBpZiAoIXJlbW92ZVNob3J0aGFuZFByb3BlcnR5KHByb3BlcnR5
LmlkKCkpKSB7CiAgICAgICAgIENTU1Byb3BlcnR5KiB0b1JlcGxhY2UgPSBzbG90ID8gc2xvdCA6
IGZpbmRQcm9wZXJ0eVdpdGhJZChwcm9wZXJ0eS5pZCgpKTsKICAgICAgICAgaWYgKHRvUmVwbGFj
ZSkgewogICAgICAgICAgICAgKnRvUmVwbGFjZSA9IHByb3BlcnR5OwpAQCAtNjMwLDIxICs2NzEs
MjUgQEAgdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlJbnRlcm5h
bChjb25zdCBDU1NQcm9wZXJ0eSYgcHJvcGVydHkKICAgICBtX3Byb3BlcnRpZXMuYXBwZW5kKHBy
b3BlcnR5KTsKIH0KIAotYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVy
dHkoaW50IHByb3BlcnR5SUQsIGludCB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgbm90aWZ5
Q2hhbmdlZCkKK2Jvb2wgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5KGlu
dCBwcm9wZXJ0eUlELCBpbnQgdmFsdWUsIGJvb2wgaW1wb3J0YW50KQogeworICAgIE5vdGlmeUNo
YW5nZWRTY29wZSBjaGFuZ2VkU2NvcGUodGhpcyk7CisKICAgICBDU1NQcm9wZXJ0eSBwcm9wZXJ0
eShwcm9wZXJ0eUlELCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZSks
IGltcG9ydGFudCk7CiAgICAgc2V0UHJvcGVydHlJbnRlcm5hbChwcm9wZXJ0eSk7Ci0gICAgaWYg
KG5vdGlmeUNoYW5nZWQpCi0gICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKworICAgIGNo
YW5nZWRTY29wZS5zZXRDaGFuZ2VkKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBkb3Vi
bGUgdmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgdW5pdCwgYm9vbCBpbXBvcnRh
bnQsIGJvb2wgbm90aWZ5Q2hhbmdlZCkKK2Jvb2wgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
OnNldFByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBkb3VibGUgdmFsdWUsIENTU1ByaW1pdGl2ZVZh
bHVlOjpVbml0VHlwZXMgdW5pdCwgYm9vbCBpbXBvcnRhbnQpCiB7CisgICAgTm90aWZ5Q2hhbmdl
ZFNjb3BlIGNoYW5nZWRTY29wZSh0aGlzKTsKKwogICAgIENTU1Byb3BlcnR5IHByb3BlcnR5KHBy
b3BlcnR5SUQsIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUsIHVuaXQpLCBpbXBvcnRh
bnQpOwogICAgIHNldFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHkpOwotICAgIGlmIChub3RpZnlD
aGFuZ2VkKQotICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CisKKyAgICBjaGFuZ2VkU2Nv
cGUuc2V0Q2hhbmdlZCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC04NTgsOSArOTAzLDEw
IEBAIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnJlbW92ZUJsb2NrUHJvcGVydGll
cygpCiAgICAgcmVtb3ZlUHJvcGVydGllc0luU2V0KGJsb2NrUHJvcGVydGllcywgbnVtQmxvY2tQ
cm9wZXJ0aWVzKTsKIH0KIAotdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3Zl
UHJvcGVydGllc0luU2V0KGNvbnN0IGludCogc2V0LCB1bnNpZ25lZCBsZW5ndGgsIGJvb2wgbm90
aWZ5Q2hhbmdlZCkKK3ZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnJlbW92ZVByb3Bl
cnRpZXNJblNldChjb25zdCBpbnQqIHNldCwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIEFTU0VS
VCghbV9pdGVyYXRvckNvdW50KTsKKyAgICBOb3RpZnlDaGFuZ2VkU2NvcGUgY2hhbmdlZFNjb3Bl
KHRoaXMpOwogCiAgICAgaWYgKG1fcHJvcGVydGllcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTg4NCwxMSArOTMwLDEwIEBAIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
OnJlbW92ZVByb3BlcnRpZXNJblNldChjb25zdCBpbnQqIHNldCwgdW5zaWduZWQKICAgICAgICAg
bmV3UHJvcGVydGllcy5hcHBlbmQocHJvcGVydHkpOwogICAgIH0KIAotICAgIGJvb2wgY2hhbmdl
ZCA9IG5ld1Byb3BlcnRpZXMuc2l6ZSgpICE9IG1fcHJvcGVydGllcy5zaXplKCk7Ci0gICAgbV9w
cm9wZXJ0aWVzID0gbmV3UHJvcGVydGllczsKKyAgICBpZiAobmV3UHJvcGVydGllcy5zaXplKCkg
IT0gbV9wcm9wZXJ0aWVzLnNpemUoKSkKKyAgICAgICAgY2hhbmdlZFNjb3BlLnNldENoYW5nZWQo
KTsKIAotICAgIGlmIChjaGFuZ2VkICYmIG5vdGlmeUNoYW5nZWQpCi0gICAgICAgIHNldE5lZWRz
U3R5bGVSZWNhbGMoKTsKKyAgICBtX3Byb3BlcnRpZXMgPSBuZXdQcm9wZXJ0aWVzOwogfQogCiBQ
YXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbjo6bWFrZU11dGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24uaAppbmRleCBiNzg0NzhmNmVkYWNmZmMwOTAwMDRjYjUwZGIwZGI1
MjFkNmJiY2JiLi4xZTQ5MGE0OGI3MWMyMzJlYjkzM2Y0N2EyMWUyNjc1N2Y4NWVkMTNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaApAQCAt
MTA2LDExICsxMDYsMTEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uPiBjb3B5KCkgY29uc3Q7CiAKLSAgICBib29sIHNldFByb3Bl
cnR5KGludCBwcm9wZXJ0eUlELCBpbnQgdmFsdWUsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UsIGJv
b2wgbm90aWZ5Q2hhbmdlZCA9IHRydWUpOwotICAgIGJvb2wgc2V0UHJvcGVydHkoaW50IHByb3Bl
cnR5SWQsIGRvdWJsZSB2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcywgYm9vbCBp
bXBvcnRhbnQgPSBmYWxzZSwgYm9vbCBub3RpZnlDaGFuZ2VkID0gdHJ1ZSk7Ci0gICAgYm9vbCBz
ZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBv
cnRhbnQgPSBmYWxzZSwgYm9vbCBub3RpZnlDaGFuZ2VkID0gdHJ1ZSk7CisgICAgYm9vbCBzZXRQ
cm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgaW50IHZhbHVlLCBib29sIGltcG9ydGFudCA9IGZhbHNl
KTsKKyAgICBib29sIHNldFByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBkb3VibGUgdmFsdWUsIENT
U1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpOworICAg
IGJvb2wgc2V0UHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJv
b2wgaW1wb3J0YW50ID0gZmFsc2UpOwogCi0gICAgU3RyaW5nIHJlbW92ZVByb3BlcnR5KGludCBw
cm9wZXJ0eUlELCBib29sIG5vdGlmeUNoYW5nZWQgPSB0cnVlLCBib29sIHJldHVyblRleHQgPSBm
YWxzZSk7CisgICAgU3RyaW5nIHJlbW92ZVByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBib29sIHJl
dHVyblRleHQgPSBmYWxzZSk7CiAKICAgICAvLyBzZXRMZW5ndGhQcm9wZXJ0eSB0cmVhdHMgaW50
ZWdlcnMgYXMgcGl4ZWxzISAoTmVlZGVkIGZvciBjb252ZXJzaW9uIG9mIEhUTUwgYXR0cmlidXRl
cy4pCiAgICAgdm9pZCBzZXRMZW5ndGhQcm9wZXJ0eShpbnQgcHJvcGVydHlJZCwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgbXVsdGlMZW5ndGggPSBmYWxzZSk7CkBA
IC0xMjgsNyArMTI4LDcgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbj4gY29weUJsb2NrUHJvcGVydGllcygpIGNvbnN0OwogICAgIHZvaWQgcmVt
b3ZlQmxvY2tQcm9wZXJ0aWVzKCk7Ci0gICAgdm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29u
c3QgaW50KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBub3RpZnlDaGFuZ2VkID0gdHJ1ZSk7
CisgICAgdm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29uc3QgaW50KiBzZXQsIHVuc2lnbmVk
IGxlbmd0aCk7CiAKICAgICB2b2lkIG1lcmdlKGNvbnN0IENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uKiwgYm9vbCBhcmdPdmVycmlkZXNPbkNvbmZsaWN0ID0gdHJ1ZSk7CiAKQEAgLTE0NSw2ICsx
NDUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oQ1NTUnVs
ZSogcGFyZW50UnVsZSk7CiAKIHByaXZhdGU6CisgICAgY2xhc3MgTm90aWZ5Q2hhbmdlZFNjb3Bl
OworCiAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKTsKICAgICBDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbihDU1NSdWxlKiBwYXJlbnRSdWxlLCBjb25zdCBWZWN0b3I8Q1NTUHJvcGVy
dHk+Jik7CiAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oQ1NTUnVsZSogcGFyZW50UnVs
ZSwgY29uc3QgQ1NTUHJvcGVydHkqIGNvbnN0ICosIGludCBudW1Qcm9wZXJ0aWVzKTsKQEAgLTE2
Niw3ICsxNjgsNyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHNpemVfdCBzaXplPiBTdHJpbmcg
Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IGludCAoJnByb3BlcnRpZXMpW3NpemVdKSBj
b25zdCB7IHJldHVybiBnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUocHJvcGVydGllcywgc2l6ZSk7
IH0KIAogICAgIHZvaWQgc2V0UHJvcGVydHlJbnRlcm5hbChjb25zdCBDU1NQcm9wZXJ0eSYsIENT
U1Byb3BlcnR5KiBzbG90ID0gMCk7Ci0gICAgYm9vbCByZW1vdmVTaG9ydGhhbmRQcm9wZXJ0eShp
bnQgcHJvcGVydHlJRCwgYm9vbCBub3RpZnlDaGFuZ2VkKTsKKyAgICBib29sIHJlbW92ZVNob3J0
aGFuZFByb3BlcnR5KGludCBwcm9wZXJ0eUlEKTsKIAogICAgIFZlY3RvcjxDU1NQcm9wZXJ0eT46
OmNvbnN0X2l0ZXJhdG9yIGZpbmRQcm9wZXJ0eVdpdGhJZChpbnQgcHJvcGVydHlJZCkgY29uc3Q7
CiAgICAgVmVjdG9yPENTU1Byb3BlcnR5Pjo6aXRlcmF0b3IgZmluZFByb3BlcnR5V2l0aElkKGlu
dCBwcm9wZXJ0eUlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRl
eCA4YWNlZDA3YmM4NGQwMDBlNWZiYTYwNTYwYWIzNmM5OWQxYjlmNTI5Li5kNTc4MWM4NThkNDU0
ZmVmOTY5N2IyMmQxYzEwYzBjOTEwZDA0MTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2VsZWN0b3IuY3BwCkBAIC0zMjYsNyArMzI2LDcgQEAgc3RhdGljIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uKiBsZWZ0VG9SaWdodERlY2xhcmF0aW9uKCkKIHsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4sIGxlZnRUb1JpZ2h0RGVj
bCwgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoKSkpOwogICAgIGlmICghbGVm
dFRvUmlnaHREZWNsLT5sZW5ndGgoKSkgewotICAgICAgICBsZWZ0VG9SaWdodERlY2wtPnNldFBy
b3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCAibHRyIiwgZmFsc2UsIGZhbHNlKTsKKyAgICAg
ICAgbGVmdFRvUmlnaHREZWNsLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgImx0
ciIsIGZhbHNlKTsKICAgICAgICAgbGVmdFRvUmlnaHREZWNsLT5zZXRTdHJpY3RQYXJzaW5nKGZh
bHNlKTsKICAgICB9CiAgICAgcmV0dXJuIGxlZnRUb1JpZ2h0RGVjbC5nZXQoKTsKQEAgLTMzNiw3
ICszMzYsNyBAQCBzdGF0aWMgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHJpZ2h0VG9MZWZ0
RGVjbGFyYXRpb24oKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uPiwgcmlnaHRUb0xlZnREZWNsLCAoQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb246OmNyZWF0ZSgpKSk7CiAgICAgaWYgKCFyaWdodFRvTGVmdERlY2wtPmxlbmd0aCgp
KSB7Ci0gICAgICAgIHJpZ2h0VG9MZWZ0RGVjbC0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJl
Y3Rpb24sICJydGwiLCBmYWxzZSwgZmFsc2UpOworICAgICAgICByaWdodFRvTGVmdERlY2wtPnNl
dFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCAicnRsIiwgZmFsc2UpOwogICAgICAgICBy
aWdodFRvTGVmdERlY2wtPnNldFN0cmljdFBhcnNpbmcoZmFsc2UpOwogICAgIH0KICAgICByZXR1
cm4gcmlnaHRUb0xlZnREZWNsLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcAppbmRleCA0ZTkzYjlmMGVhYTI4ZWMzMWNkZmQ5YWEwM2FmYWZiOTM1
NDdlYzBlLi5jZDhmYjMxNjQwN2FjYTczNTc5MTU1NDZjNTg1MmNkYTFiYzRmOTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtMzk0LDcgKzM5
NCw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFu
Z2UoRWRpdGluZ1N0eWxlKiBzdHlsZSkKICAgICAgICAgICAgIGN1cnJlbnRGb250U2l6ZSA9IGNv
bXB1dGVkRm9udFNpemUobm9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGN1cnJlbnRGb250
U2l6ZSAhPSBkZXNpcmVkRm9udFNpemUpIHsKLSAgICAgICAgICAgIGlubGluZVN0eWxlRGVjbC0+
c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgU3RyaW5nOjpudW1iZXIoZGVzaXJlZEZv
bnRTaXplKSArICJweCIsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICBpbmxpbmVTdHlsZURl
Y2wtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIFN0cmluZzo6bnVtYmVyKGRlc2ly
ZWRGb250U2l6ZSkgKyAicHgiLCBmYWxzZSk7CiAgICAgICAgICAgICBzZXROb2RlQXR0cmlidXRl
KGVsZW1lbnQuZ2V0KCksIHN0eWxlQXR0ciwgaW5saW5lU3R5bGVEZWNsLT5jc3NUZXh0KCkpOwog
ICAgICAgICB9CiAgICAgICAgIGlmIChpbmxpbmVTdHlsZURlY2wtPmlzRW1wdHkoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116150</attachid>
            <date>2011-11-21 15:33:30 -0800</date>
            <delta_ts>2011-11-22 16:08:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72660-20111121153329.patch</filename>
            <type>text/plain</type>
            <size>6908</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk5Mzk4Yzk2YjZmZmRj
YzMwMmYxMDdlMmY0YjVkMjhlZjRmZDU0ZC4uNjRhMjg5Zjc3NzE0NmE4NmNlZGEyZWVhYTVjMzhj
MmFiMTcwMzFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTExLTE3ICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG5v
dGlmeUNoYW5nZSBmcm9tIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MjY2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIHRlc3RzIG5lZWRlZC4gVGhpcyBpcyBhIHJlZmFjdG9yIG9ubHkuCisKKyAgICAgICAgKiBj
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246Ok5vdGlmeUNoYW5nZWRTY29wZTo6Tm90aWZ5Q2hhbmdl
ZFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpO
b3RpZnlDaGFuZ2VkU2NvcGU6On5Ob3RpZnlDaGFuZ2VkU2NvcGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246Ok5vdGlmeUNoYW5nZWRTY29wZTo6c2V0Q2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVt
b3ZlU2hvcnRoYW5kUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246OnJlbW92ZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlJbnRlcm5hbCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlUHJvcGVydGllc0luU2V0
KToKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAg
KiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0VG9SaWdo
dERlY2xhcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJpZ2h0VG9MZWZ0RGVjbGFyYXRpb24p
OgorICAgICAgICAqIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UpOgor
CiAyMDExLTExLTIxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBBdm9pZCBwdXNoaW5nIGRpcnR5IHRpbGVzIHRvIHRoZSBpbXBsIGxh
eWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5o
CmluZGV4IGI3ODQ3OGY2ZWRhY2ZmYzA5MDAwNGNiNTBkYjBkYjUyMWQ2YmJjYmIuLjg0MjQ3MmY2
MmJiODhkYmI2ZmQyZmFmYzUwMTMzYTZjYjQ3ZGJjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCkBAIC0xMDYsMTEgKzEwNiwxMSBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24+IGNvcHkoKSBjb25zdDsKIAotICAgIGJvb2wgc2V0UHJvcGVydHkoaW50IHByb3BlcnR5SUQs
IGludCB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQgPSBmYWxzZSwgYm9vbCBub3RpZnlDaGFuZ2VkID0g
dHJ1ZSk7Ci0gICAgYm9vbCBzZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJZCwgZG91YmxlIHZhbHVl
LCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzLCBib29sIGltcG9ydGFudCA9IGZhbHNlLCBi
b29sIG5vdGlmeUNoYW5nZWQgPSB0cnVlKTsKLSAgICBib29sIHNldFByb3BlcnR5KGludCBwcm9w
ZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCA9IGZhbHNlLCBib29s
IG5vdGlmeUNoYW5nZWQgPSB0cnVlKTsKKyAgICBib29sIHNldFByb3BlcnR5KGludCBwcm9wZXJ0
eUlELCBpbnQgdmFsdWUsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpIHsgcmV0dXJuIHNldFByb3Bl
cnR5KHByb3BlcnR5SUQsIHZhbHVlLCBpbXBvcnRhbnQsIHRydWUpOyB9CisgICAgYm9vbCBzZXRQ
cm9wZXJ0eShpbnQgcHJvcGVydHlJZCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGVzIHVuaXQsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpIHsgcmV0dXJuIHNldFByb3Bl
cnR5KHByb3BlcnR5SWQsIHZhbHVlLCB1bml0LCBpbXBvcnRhbnQsIHRydWUpOyB9CisgICAgYm9v
bCBzZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBp
bXBvcnRhbnQgPSBmYWxzZSkgeyByZXR1cm4gc2V0UHJvcGVydHkocHJvcGVydHlJRCwgdmFsdWUs
IGltcG9ydGFudCwgdHJ1ZSk7IH0KIAotICAgIFN0cmluZyByZW1vdmVQcm9wZXJ0eShpbnQgcHJv
cGVydHlJRCwgYm9vbCBub3RpZnlDaGFuZ2VkID0gdHJ1ZSwgYm9vbCByZXR1cm5UZXh0ID0gZmFs
c2UpOworICAgIFN0cmluZyByZW1vdmVQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgYm9vbCByZXR1
cm5UZXh0ID0gZmFsc2UpIHsgcmV0dXJuIHJlbW92ZVByb3BlcnR5KHByb3BlcnR5SUQsIHRydWUs
IHJldHVyblRleHQpOyB9CiAKICAgICAvLyBzZXRMZW5ndGhQcm9wZXJ0eSB0cmVhdHMgaW50ZWdl
cnMgYXMgcGl4ZWxzISAoTmVlZGVkIGZvciBjb252ZXJzaW9uIG9mIEhUTUwgYXR0cmlidXRlcy4p
CiAgICAgdm9pZCBzZXRMZW5ndGhQcm9wZXJ0eShpbnQgcHJvcGVydHlJZCwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgbXVsdGlMZW5ndGggPSBmYWxzZSk7CkBAIC0x
MjgsNyArMTI4LDcgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbj4gY29weUJsb2NrUHJvcGVydGllcygpIGNvbnN0OwogICAgIHZvaWQgcmVtb3Zl
QmxvY2tQcm9wZXJ0aWVzKCk7Ci0gICAgdm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29uc3Qg
aW50KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBub3RpZnlDaGFuZ2VkID0gdHJ1ZSk7Cisg
ICAgdm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29uc3QgaW50KiBzZXQsIHVuc2lnbmVkIGxl
bmd0aCkgeyByZW1vdmVQcm9wZXJ0aWVzSW5TZXQoc2V0LCBsZW5ndGgsIHRydWUpOyB9CiAKICAg
ICB2b2lkIG1lcmdlKGNvbnN0IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgYm9vbCBhcmdP
dmVycmlkZXNPbkNvbmZsaWN0ID0gdHJ1ZSk7CiAKQEAgLTE2NSw4ICsxNjUsMTMgQEAgcHJpdmF0
ZToKICAgICB0ZW1wbGF0ZTxzaXplX3Qgc2l6ZT4gU3RyaW5nIGdldENvbW1vblZhbHVlKGNvbnN0
IGludCAoJnByb3BlcnRpZXMpW3NpemVdKSBjb25zdCB7IHJldHVybiBnZXRDb21tb25WYWx1ZShw
cm9wZXJ0aWVzLCBzaXplKTsgfQogICAgIHRlbXBsYXRlPHNpemVfdCBzaXplPiBTdHJpbmcgZ2V0
TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IGludCAoJnByb3BlcnRpZXMpW3NpemVdKSBjb25z
dCB7IHJldHVybiBnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUocHJvcGVydGllcywgc2l6ZSk7IH0K
IAorICAgIGJvb2wgc2V0UHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGludCB2YWx1ZSwgYm9vbCBp
bXBvcnRhbnQsIGJvb2wgbm90aWZ5Q2hhbmdlZCk7CisgICAgYm9vbCBzZXRQcm9wZXJ0eShpbnQg
cHJvcGVydHlJZCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzLCBi
b29sIGltcG9ydGFudCwgYm9vbCBub3RpZnlDaGFuZ2VkKTsKKyAgICBib29sIHNldFByb3BlcnR5
KGludCBwcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9v
bCBub3RpZnlDaGFuZ2VkKTsKICAgICB2b2lkIHNldFByb3BlcnR5SW50ZXJuYWwoY29uc3QgQ1NT
UHJvcGVydHkmLCBDU1NQcm9wZXJ0eSogc2xvdCA9IDApOworICAgIFN0cmluZyByZW1vdmVQcm9w
ZXJ0eShpbnQgcHJvcGVydHlJRCwgYm9vbCBub3RpZnlDaGFuZ2VkLCBib29sIHJldHVyblRleHQp
OwogICAgIGJvb2wgcmVtb3ZlU2hvcnRoYW5kUHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGJvb2wg
bm90aWZ5Q2hhbmdlZCk7CisgICAgdm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29uc3QgaW50
KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBub3RpZnlDaGFuZ2VkKTsKIAogICAgIFZlY3Rv
cjxDU1NQcm9wZXJ0eT46OmNvbnN0X2l0ZXJhdG9yIGZpbmRQcm9wZXJ0eVdpdGhJZChpbnQgcHJv
cGVydHlJZCkgY29uc3Q7CiAgICAgVmVjdG9yPENTU1Byb3BlcnR5Pjo6aXRlcmF0b3IgZmluZFBy
b3BlcnR5V2l0aElkKGludCBwcm9wZXJ0eUlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcAppbmRleCA4ZTQ5ZTIzMjlmNjQzODM1YTEzNGQ0ZWJmM2M5ZmViYjhhOGRlOTky
Li4wN2U1YWYwMjQzOWI3OTQ0MDVhYjRmOGZlOGM3MDljMmFiMzc4MWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0zMjYsNyArMzI2LDcgQEAgc3RhdGljIENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBsZWZ0VG9SaWdodERlY2xhcmF0aW9uKCkKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4s
IGxlZnRUb1JpZ2h0RGVjbCwgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoKSkp
OwogICAgIGlmICghbGVmdFRvUmlnaHREZWNsLT5sZW5ndGgoKSkgewotICAgICAgICBsZWZ0VG9S
aWdodERlY2wtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCAibHRyIiwgZmFsc2Us
IGZhbHNlKTsKKyAgICAgICAgbGVmdFRvUmlnaHREZWNsLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eURpcmVjdGlvbiwgImx0ciIsIGZhbHNlKTsKICAgICAgICAgbGVmdFRvUmlnaHREZWNsLT5zZXRT
dHJpY3RQYXJzaW5nKGZhbHNlKTsKICAgICB9CiAgICAgcmV0dXJuIGxlZnRUb1JpZ2h0RGVjbC5n
ZXQoKTsKQEAgLTMzNiw3ICszMzYsNyBAQCBzdGF0aWMgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24qIHJpZ2h0VG9MZWZ0RGVjbGFyYXRpb24oKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
UmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiwgcmlnaHRUb0xlZnREZWNsLCAoQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgpKSk7CiAgICAgaWYgKCFyaWdodFRvTGVm
dERlY2wtPmxlbmd0aCgpKSB7Ci0gICAgICAgIHJpZ2h0VG9MZWZ0RGVjbC0+c2V0UHJvcGVydHko
Q1NTUHJvcGVydHlEaXJlY3Rpb24sICJydGwiLCBmYWxzZSwgZmFsc2UpOworICAgICAgICByaWdo
dFRvTGVmdERlY2wtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCAicnRsIiwgZmFs
c2UpOwogICAgICAgICByaWdodFRvTGVmdERlY2wtPnNldFN0cmljdFBhcnNpbmcoZmFsc2UpOwog
ICAgIH0KICAgICByZXR1cm4gcmlnaHRUb0xlZnREZWNsLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA0ZTkzYjlmMGVhYTI4ZWMzMWNk
ZmQ5YWEwM2FmYWZiOTM1NDdlYzBlLi5jZDhmYjMxNjQwN2FjYTczNTc5MTU1NDZjNTg1MmNkYTFi
YzRmOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNw
cApAQCAtMzk0LDcgKzM5NCw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRp
dmVGb250U3R5bGVDaGFuZ2UoRWRpdGluZ1N0eWxlKiBzdHlsZSkKICAgICAgICAgICAgIGN1cnJl
bnRGb250U2l6ZSA9IGNvbXB1dGVkRm9udFNpemUobm9kZSk7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKGN1cnJlbnRGb250U2l6ZSAhPSBkZXNpcmVkRm9udFNpemUpIHsKLSAgICAgICAgICAgIGlu
bGluZVN0eWxlRGVjbC0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgU3RyaW5nOjpu
dW1iZXIoZGVzaXJlZEZvbnRTaXplKSArICJweCIsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAg
ICBpbmxpbmVTdHlsZURlY2wtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIFN0cmlu
Zzo6bnVtYmVyKGRlc2lyZWRGb250U2l6ZSkgKyAicHgiLCBmYWxzZSk7CiAgICAgICAgICAgICBz
ZXROb2RlQXR0cmlidXRlKGVsZW1lbnQuZ2V0KCksIHN0eWxlQXR0ciwgaW5saW5lU3R5bGVEZWNs
LT5jc3NUZXh0KCkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChpbmxpbmVTdHlsZURlY2wtPmlz
RW1wdHkoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116288</attachid>
            <date>2011-11-22 16:08:15 -0800</date>
            <delta_ts>2011-11-23 04:19:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72660-20111122160814.patch</filename>
            <type>text/plain</type>
            <size>9450</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhiY2RmYzY1Y2QzNTUz
MWE4YWUxYTFmZDNmMGZhYWZhYjY0ZmY3YS4uMWJhODdmMmVhNjY1YTU4YjkxYWU4ZDdmMDVkMTZm
NDkyZDg0Njc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTExLTIyICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG5v
dGlmeUNoYW5nZSBmcm9tIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MjY2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIHRlc3RzIG5lZWRlZC4gVGhpcyBpcyBvbmx5IGEgcmVmYWN0b3IuCisKKyAgICAgICAgKiBj
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjphZGRQYXJzZWRQcm9w
ZXJ0eSk6CisgICAgICAgICogY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnJlbW92ZVByb3Bl
cnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpyZW1v
dmVQcm9wZXJ0aWVzSW5TZXQpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmxlZnRUb1JpZ2h0RGVjbGFyYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6cmlnaHRUb0xlZnREZWNsYXJhdGlvbik6CisgICAgICAgICogZWRpdGluZy9BcHBseVN0
eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBw
bHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6c2V0Q29udGVudEVkaXRhYmxlKToK
KwogMjAxMS0xMS0yMiAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIExheW91dCBUZXN0IGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZlbnRz
Lmh0bWwgaXMgdGltaW5nIG91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggODFmOTZiYjE5ZDRmYzM5YTRiNzlhYzkxNThlYTcz
MmZjNDY5YWExNC4uYTBjMzk4M2MzMDhlZTdmZDQ2NjI5YjM0Y2QyOTk5MDk4ZmQ4MTVmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3Bw
CkBAIC03Nyw3ICs3Nyw3IEBAIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbihDU1NSdWxlKiBwYXJlbnQsIGNvbnN0IENTCiAgICAgICAgIGlmIChj
YW5kaWRhdGVzLmNvbnRhaW5zKHByb3BlcnR5LT5pZCgpKSkgewogICAgICAgICAgICAgaWYgKCFp
bXBvcnRhbnQgJiYgY2FuZGlkYXRlcy5nZXQocHJvcGVydHktPmlkKCkpKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmVtb3ZlUHJvcGVydHkocHJvcGVydHktPmlkKCks
IGZhbHNlKTsKKyAgICAgICAgICAgIHJlbW92ZVByb3BlcnR5KHByb3BlcnR5LT5pZCgpLCBmYWxz
ZSwgZmFsc2UpOwogICAgICAgICB9CiAgICAgICAgIG1fcHJvcGVydGllcy5hcHBlbmQoKnByb3Bl
cnR5KTsKICAgICAgICAgY2FuZGlkYXRlcy5zZXQocHJvcGVydHktPmlkKCksIGltcG9ydGFudCk7
CkBAIC02OTIsNyArNjkyLDcgQEAgdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6YWRk
UGFyc2VkUHJvcGVydHkoY29uc3QgQ1NTUHJvcGVydHkmIHByb3BlcnR5KQogCiAgICAgLy8gT25s
eSBhZGQgcHJvcGVydGllcyB0aGF0IGhhdmUgbm8gIWltcG9ydGFudCBjb3VudGVycGFydCBwcmVz
ZW50CiAgICAgaWYgKCFnZXRQcm9wZXJ0eVByaW9yaXR5KHByb3BlcnR5LmlkKCkpIHx8IHByb3Bl
cnR5LmlzSW1wb3J0YW50KCkpIHsKLSAgICAgICAgcmVtb3ZlUHJvcGVydHkocHJvcGVydHkuaWQo
KSwgZmFsc2UpOworICAgICAgICByZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eS5pZCgpLCBmYWxzZSwg
ZmFsc2UpOwogICAgICAgICBtX3Byb3BlcnRpZXMuYXBwZW5kKHByb3BlcnR5KTsKICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCmlu
ZGV4IGI3ODQ3OGY2ZWRhY2ZmYzA5MDAwNGNiNTBkYjBkYjUyMWQ2YmJjYmIuLjgyODk1YTRkOTFh
ZTk3ZTNkNWI1Mjg0MzIzYTliMTg2MjI0YTBmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCkBAIC0xMDYsMTEgKzEwNiwxMSBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+
IGNvcHkoKSBjb25zdDsKIAotICAgIGJvb2wgc2V0UHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGlu
dCB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQgPSBmYWxzZSwgYm9vbCBub3RpZnlDaGFuZ2VkID0gdHJ1
ZSk7Ci0gICAgYm9vbCBzZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJZCwgZG91YmxlIHZhbHVlLCBD
U1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzLCBib29sIGltcG9ydGFudCA9IGZhbHNlLCBib29s
IG5vdGlmeUNoYW5nZWQgPSB0cnVlKTsKLSAgICBib29sIHNldFByb3BlcnR5KGludCBwcm9wZXJ0
eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCA9IGZhbHNlLCBib29sIG5v
dGlmeUNoYW5nZWQgPSB0cnVlKTsKKyAgICBib29sIHNldFByb3BlcnR5KGludCBwcm9wZXJ0eUlE
LCBpbnQgdmFsdWUsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpIHsgcmV0dXJuIHNldFByb3BlcnR5
KHByb3BlcnR5SUQsIHZhbHVlLCBpbXBvcnRhbnQsIHRydWUpOyB9CisgICAgYm9vbCBzZXRQcm9w
ZXJ0eShpbnQgcHJvcGVydHlJZCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dFR5cGVzIHVuaXQsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpIHsgcmV0dXJuIHNldFByb3BlcnR5
KHByb3BlcnR5SWQsIHZhbHVlLCB1bml0LCBpbXBvcnRhbnQsIHRydWUpOyB9CisgICAgYm9vbCBz
ZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBv
cnRhbnQgPSBmYWxzZSkgeyByZXR1cm4gc2V0UHJvcGVydHkocHJvcGVydHlJRCwgdmFsdWUsIGlt
cG9ydGFudCwgdHJ1ZSk7IH0KIAotICAgIFN0cmluZyByZW1vdmVQcm9wZXJ0eShpbnQgcHJvcGVy
dHlJRCwgYm9vbCBub3RpZnlDaGFuZ2VkID0gdHJ1ZSwgYm9vbCByZXR1cm5UZXh0ID0gZmFsc2Up
OworICAgIHZvaWQgcmVtb3ZlUHJvcGVydHkoaW50IHByb3BlcnR5SUQpIHsgcmVtb3ZlUHJvcGVy
dHkocHJvcGVydHlJRCwgdHJ1ZSwgZmFsc2UpOyB9CiAKICAgICAvLyBzZXRMZW5ndGhQcm9wZXJ0
eSB0cmVhdHMgaW50ZWdlcnMgYXMgcGl4ZWxzISAoTmVlZGVkIGZvciBjb252ZXJzaW9uIG9mIEhU
TUwgYXR0cmlidXRlcy4pCiAgICAgdm9pZCBzZXRMZW5ndGhQcm9wZXJ0eShpbnQgcHJvcGVydHlJ
ZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgbXVsdGlMZW5ndGgg
PSBmYWxzZSk7CkBAIC0xMjgsNyArMTI4LDcgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gY29weUJsb2NrUHJvcGVydGllcygpIGNvbnN0Owog
ICAgIHZvaWQgcmVtb3ZlQmxvY2tQcm9wZXJ0aWVzKCk7Ci0gICAgdm9pZCByZW1vdmVQcm9wZXJ0
aWVzSW5TZXQoY29uc3QgaW50KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBub3RpZnlDaGFu
Z2VkID0gdHJ1ZSk7CisgICAgdm9pZCByZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29uc3QgaW50KiBz
ZXQsIHVuc2lnbmVkIGxlbmd0aCkgeyByZW1vdmVQcm9wZXJ0aWVzSW5TZXQoc2V0LCBsZW5ndGgs
IHRydWUpOyB9CiAKICAgICB2b2lkIG1lcmdlKGNvbnN0IENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uKiwgYm9vbCBhcmdPdmVycmlkZXNPbkNvbmZsaWN0ID0gdHJ1ZSk7CiAKQEAgLTE2NSw4ICsx
NjUsMTMgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZTxzaXplX3Qgc2l6ZT4gU3RyaW5nIGdldENv
bW1vblZhbHVlKGNvbnN0IGludCAoJnByb3BlcnRpZXMpW3NpemVdKSBjb25zdCB7IHJldHVybiBn
ZXRDb21tb25WYWx1ZShwcm9wZXJ0aWVzLCBzaXplKTsgfQogICAgIHRlbXBsYXRlPHNpemVfdCBz
aXplPiBTdHJpbmcgZ2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IGludCAoJnByb3BlcnRp
ZXMpW3NpemVdKSBjb25zdCB7IHJldHVybiBnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUocHJvcGVy
dGllcywgc2l6ZSk7IH0KIAorICAgIGJvb2wgc2V0UHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGlu
dCB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgbm90aWZ5Q2hhbmdlZCk7CisgICAgYm9vbCBz
ZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJZCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1
ZTo6VW5pdFR5cGVzLCBib29sIGltcG9ydGFudCwgYm9vbCBub3RpZnlDaGFuZ2VkKTsKKyAgICBi
b29sIHNldFByb3BlcnR5KGludCBwcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29s
IGltcG9ydGFudCwgYm9vbCBub3RpZnlDaGFuZ2VkKTsKICAgICB2b2lkIHNldFByb3BlcnR5SW50
ZXJuYWwoY29uc3QgQ1NTUHJvcGVydHkmLCBDU1NQcm9wZXJ0eSogc2xvdCA9IDApOworICAgIFN0
cmluZyByZW1vdmVQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgYm9vbCBub3RpZnlDaGFuZ2VkLCBi
b29sIHJldHVyblRleHQpOwogICAgIGJvb2wgcmVtb3ZlU2hvcnRoYW5kUHJvcGVydHkoaW50IHBy
b3BlcnR5SUQsIGJvb2wgbm90aWZ5Q2hhbmdlZCk7CisgICAgdm9pZCByZW1vdmVQcm9wZXJ0aWVz
SW5TZXQoY29uc3QgaW50KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBub3RpZnlDaGFuZ2Vk
KTsKIAogICAgIFZlY3RvcjxDU1NQcm9wZXJ0eT46OmNvbnN0X2l0ZXJhdG9yIGZpbmRQcm9wZXJ0
eVdpdGhJZChpbnQgcHJvcGVydHlJZCkgY29uc3Q7CiAgICAgVmVjdG9yPENTU1Byb3BlcnR5Pjo6
aXRlcmF0b3IgZmluZFByb3BlcnR5V2l0aElkKGludCBwcm9wZXJ0eUlkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAxNjI5NGZiNzNhMDc2OWYwZWVhZGZlNjIz
MTJlZGY0MzRlM2FmMGRiLi42YzkzYzY4ZjQxNWE2Y2M0Y2FhMjNmMjY2MzI4MjFiN2ZkNmM2NDA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0zMjYsNyArMzI2
LDcgQEAgc3RhdGljIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBsZWZ0VG9SaWdodERlY2xh
cmF0aW9uKCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbj4sIGxlZnRUb1JpZ2h0RGVjbCwgKENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uOjpjcmVhdGUoKSkpOwogICAgIGlmICghbGVmdFRvUmlnaHREZWNsLT5sZW5ndGgoKSkgewot
ICAgICAgICBsZWZ0VG9SaWdodERlY2wtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9u
LCAibHRyIiwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgbGVmdFRvUmlnaHREZWNsLT5zZXRQcm9w
ZXJ0eShDU1NQcm9wZXJ0eURpcmVjdGlvbiwgImx0ciIsIGZhbHNlKTsKICAgICAgICAgbGVmdFRv
UmlnaHREZWNsLT5zZXRTdHJpY3RQYXJzaW5nKGZhbHNlKTsKICAgICB9CiAgICAgcmV0dXJuIGxl
ZnRUb1JpZ2h0RGVjbC5nZXQoKTsKQEAgLTMzNiw3ICszMzYsNyBAQCBzdGF0aWMgQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24qIHJpZ2h0VG9MZWZ0RGVjbGFyYXRpb24oKQogewogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiwgcmlnaHRU
b0xlZnREZWNsLCAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgpKSk7CiAgICAg
aWYgKCFyaWdodFRvTGVmdERlY2wtPmxlbmd0aCgpKSB7Ci0gICAgICAgIHJpZ2h0VG9MZWZ0RGVj
bC0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24sICJydGwiLCBmYWxzZSwgZmFsc2Up
OworICAgICAgICByaWdodFRvTGVmdERlY2wtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0
aW9uLCAicnRsIiwgZmFsc2UpOwogICAgICAgICByaWdodFRvTGVmdERlY2wtPnNldFN0cmljdFBh
cnNpbmcoZmFsc2UpOwogICAgIH0KICAgICByZXR1cm4gcmlnaHRUb0xlZnREZWNsLmdldCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA0ZTkz
YjlmMGVhYTI4ZWMzMWNkZmQ5YWEwM2FmYWZiOTM1NDdlYzBlLi5kMDA0N2VkNTUxNmVjOTg1YTE2
ZGQ0MmYxZWRmNGE5YzMzM2M3OTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcApAQCAtMzkwLDExICszOTAsMTEgQEAgdm9pZCBBcHBseVN0eWxlQ29t
bWFuZDo6YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShFZGl0aW5nU3R5bGUqIHN0eWxlKQog
ICAgICAgICBmbG9hdCBkZXNpcmVkRm9udFNpemUgPSBtYXgoTWluaW11bUZvbnRTaXplLCBzdGFy
dGluZ0ZvbnRTaXplcy5nZXQobm9kZSkgKyBzdHlsZS0+Zm9udFNpemVEZWx0YSgpKTsKICAgICAg
ICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGlubGluZVN0eWxlRGVjbC0+Z2V0UHJvcGVydHlD
U1NWYWx1ZShDU1NQcm9wZXJ0eUZvbnRTaXplKTsKICAgICAgICAgaWYgKHZhbHVlKSB7Ci0gICAg
ICAgICAgICBpbmxpbmVTdHlsZURlY2wtPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNp
emUsIHRydWUpOworICAgICAgICAgICAgaW5saW5lU3R5bGVEZWNsLT5yZW1vdmVQcm9wZXJ0eShD
U1NQcm9wZXJ0eUZvbnRTaXplKTsKICAgICAgICAgICAgIGN1cnJlbnRGb250U2l6ZSA9IGNvbXB1
dGVkRm9udFNpemUobm9kZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGN1cnJlbnRGb250U2l6
ZSAhPSBkZXNpcmVkRm9udFNpemUpIHsKLSAgICAgICAgICAgIGlubGluZVN0eWxlRGVjbC0+c2V0
UHJvcGVydHkoQ1NTUHJvcGVydHlGb250U2l6ZSwgU3RyaW5nOjpudW1iZXIoZGVzaXJlZEZvbnRT
aXplKSArICJweCIsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICBpbmxpbmVTdHlsZURlY2wt
PnNldFByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIFN0cmluZzo6bnVtYmVyKGRlc2lyZWRG
b250U2l6ZSkgKyAicHgiLCBmYWxzZSk7CiAgICAgICAgICAgICBzZXROb2RlQXR0cmlidXRlKGVs
ZW1lbnQuZ2V0KCksIHN0eWxlQXR0ciwgaW5saW5lU3R5bGVEZWNsLT5jc3NUZXh0KCkpOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChpbmxpbmVTdHlsZURlY2wtPmlzRW1wdHkoKSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBmMzJkNmQzYzgyNjFkOGE3M2I4YzM4OWIyNDZm
YzQ0NTM0YTdkZjg1Li40MTU1MmFkY2MwMWQ5NWFjNzc0M2EwYmQyOWY3M2ViYjZiNzg5N2EwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNzIzLDkgKzcyMyw5IEBAIHZvaWQg
SFRNTEVsZW1lbnQ6OnNldENvbnRlbnRFZGl0YWJsZShBdHRyaWJ1dGUqIGF0dHIpCiAgICAgICAg
IGFkZENTU1Byb3BlcnR5KGF0dHIsIENTU1Byb3BlcnR5V2Via2l0TGluZUJyZWFrLCBDU1NWYWx1
ZUFmdGVyV2hpdGVTcGFjZSk7CiAgICAgfSBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShlbmFi
bGVkLCAiZmFsc2UiKSkgewogICAgICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0
eVdlYmtpdFVzZXJNb2RpZnksIENTU1ZhbHVlUmVhZE9ubHkpOwotICAgICAgICBhdHRyLT5kZWNs
KCktPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5V29yZFdyYXAsIGZhbHNlKTsKLSAgICAgICAg
YXR0ci0+ZGVjbCgpLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlLCBm
YWxzZSk7Ci0gICAgICAgIGF0dHItPmRlY2woKS0+cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlX
ZWJraXRMaW5lQnJlYWssIGZhbHNlKTsKKyAgICAgICAgYXR0ci0+ZGVjbCgpLT5yZW1vdmVQcm9w
ZXJ0eShDU1NQcm9wZXJ0eVdvcmRXcmFwKTsKKyAgICAgICAgYXR0ci0+ZGVjbCgpLT5yZW1vdmVQ
cm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdE5ic3BNb2RlKTsKKyAgICAgICAgYXR0ci0+ZGVjbCgp
LT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdExpbmVCcmVhayk7CiAgICAgfSBlbHNl
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShlbmFibGVkLCAicGxhaW50ZXh0LW9ubHkiKSkgewogICAg
ICAgICBhZGRDU1NQcm9wZXJ0eShhdHRyLCBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnksIENT
U1ZhbHVlUmVhZFdyaXRlUGxhaW50ZXh0T25seSk7CiAgICAgICAgIGFkZENTU1Byb3BlcnR5KGF0
dHIsIENTU1Byb3BlcnR5V29yZFdyYXAsIENTU1ZhbHVlQnJlYWtXb3JkKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>