<?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>46950</bug_id>
          
          <creation_ts>2010-09-30 18:18:56 -0700</creation_ts>
          <short_desc>Some bugs of search cancel button and spin button about state change in an event handler</short_desc>
          <delta_ts>2011-01-24 20:36:46 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://crbug.com/56897</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>287983</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-30 18:18:56 -0700</bug_when>
    <thetext>Search field cancel button keeps event capturing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288008</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-30 19:14:20 -0700</bug_when>
    <thetext>SearchFieldCancelButtonElement::defaultEventHandler and SpinButtonElement::defaultEventHandler calls focus(), which can change the element type, value, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288030</commentid>
    <comment_count>2</comment_count>
      <attachid>69417</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-30 20:18:03 -0700</bug_when>
    <thetext>Created attachment 69417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304811</commentid>
    <comment_count>3</comment_count>
      <attachid>69417</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-04 12:56:57 -0700</bug_when>
    <thetext>Comment on attachment 69417
Patch

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

I’m going to say review+, but I think this can be improved and I’d be willing to review again if you post an improved version.

&gt; WebCore/rendering/TextControlInnerElements.cpp:222
&gt; +        RefPtr&lt;HTMLInputElement&gt; protector(input);

Why not just make the local variable “input” be a RefPtr in the first place? The protector idiom should only be used when there’s no better option, and I think making the pointer be a RefPtr from the beginning is better.

&gt; WebCore/rendering/TextControlInnerElements.cpp:227
&gt; +        // By an event handler, the input element might be removed or hidden,
&gt; +        // the cancel button might be hidden, or the input type might be changed.

The grammar here is not great.

You could say: “An event handler might remove or hide the input element, hide the cancel button, or change the input type.”

But it would be even better to make it clearer what you mean by event handler. You are alluding to the fact that focus and select calls can invoke JavaScript, but this may not be clear to the person reading the code.

So you could say: “Focusing and selecting the field may run JavaScript in response to the event. That code might remove or hide the input element, hide the cancel button, or change the input type.”

But I’m not sure that list of specific the code can do is all that helpful, nor is the comment pointing clearly enough to the part of this function that was written to deal with those possibilities. I think the point here is that we protect “this” so that we can call renderer() and get access to m_capturing, and protect “input” so that we can call the select function even after calling the focus function.

&gt; WebCore/rendering/TextControlInnerElements.cpp:276
&gt; +void SpinButtonElement::detach()

Does the test case cover this? To be specific: Does the test fail if you remove this code?

&gt; WebCore/rendering/TextControlInnerElements.cpp:314
&gt;              RefPtr&lt;Node&gt; protector(input);

Why not just make the local variable “input” be a RefPtr in the first place? The protector idiom should only be used when there’s no better option, and I think making the pointer be a RefPtr from the beginning is better.

&gt; WebCore/rendering/TextControlInnerElements.cpp:318
&gt; +            // Input type might be changed by an event handler. This shadow node might be detached.

Again, I think a much better comment can be written.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305166</commentid>
    <comment_count>4</comment_count>
      <attachid>73039</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-05 00:38:58 -0700</bug_when>
    <thetext>Created attachment 73039
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305168</commentid>
    <comment_count>5</comment_count>
      <attachid>69417</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-05 00:48:41 -0700</bug_when>
    <thetext>Comment on attachment 69417
Patch

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

&gt;&gt; WebCore/rendering/TextControlInnerElements.cpp:222
&gt;&gt; +        RefPtr&lt;HTMLInputElement&gt; protector(input);
&gt; 
&gt; Why not just make the local variable “input” be a RefPtr in the first place? The protector idiom should only be used when there’s no better option, and I think making the pointer be a RefPtr from the beginning is better.

Oh, right.  &quot;input&apos; should be a RefPtr.  It&apos;s simpler.

&gt;&gt; WebCore/rendering/TextControlInnerElements.cpp:227
&gt;&gt; +        // the cancel button might be hidden, or the input type might be changed.
&gt; 
&gt; The grammar here is not great.
&gt; 
&gt; You could say: “An event handler might remove or hide the input element, hide the cancel button, or change the input type.”
&gt; 
&gt; But it would be even better to make it clearer what you mean by event handler. You are alluding to the fact that focus and select calls can invoke JavaScript, but this may not be clear to the person reading the code.
&gt; 
&gt; So you could say: “Focusing and selecting the field may run JavaScript in response to the event. That code might remove or hide the input element, hide the cancel button, or change the input type.”
&gt; 
&gt; But I’m not sure that list of specific the code can do is all that helpful, nor is the comment pointing clearly enough to the part of this function that was written to deal with those possibilities. I think the point here is that we protect “this” so that we can call renderer() and get access to m_capturing, and protect “input” so that we can call the select function even after calling the focus function.

I changed a way to fix the issue.
I moved focus() and select() because I wanted to make sure the cancel button was visible before starting event capturing.
The updated patch removes the visibility check in mouseup event, and doesn&apos;t change the mousedown event handling.  It is much simpler.
I removed the comment.

&gt;&gt; WebCore/rendering/TextControlInnerElements.cpp:276
&gt;&gt; +void SpinButtonElement::detach()
&gt; 
&gt; Does the test case cover this? To be specific: Does the test fail if you remove this code?

Ah, no.  I have added a test case for this.

&gt;&gt; WebCore/rendering/TextControlInnerElements.cpp:318
&gt;&gt; +            // Input type might be changed by an event handler. This shadow node might be detached.
&gt; 
&gt; Again, I think a much better comment can be written.

I have improved the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305169</commentid>
    <comment_count>6</comment_count>
      <attachid>73041</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-05 00:54:42 -0700</bug_when>
    <thetext>Created attachment 73041
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321668</commentid>
    <comment_count>7</comment_count>
      <attachid>76495</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-13 21:31:01 -0800</bug_when>
    <thetext>Created attachment 76495
Patch 4 (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338901</commentid>
    <comment_count>8</comment_count>
      <attachid>79903</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-24 02:03:22 -0800</bug_when>
    <thetext>Created attachment 79903
Patch 5

rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339022</commentid>
    <comment_count>9</comment_count>
      <attachid>79903</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-24 08:23:08 -0800</bug_when>
    <thetext>Comment on attachment 79903
Patch 5

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339460</commentid>
    <comment_count>10</comment_count>
      <attachid>79903</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-24 20:36:37 -0800</bug_when>
    <thetext>Comment on attachment 79903
Patch 5

Clearing flags on attachment: 79903

Committed r76566: &lt;http://trac.webkit.org/changeset/76566&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339461</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-24 20:36:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69417</attachid>
            <date>2010-09-30 20:18:03 -0700</date>
            <delta_ts>2010-11-05 00:48:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46950-20101001121801.patch</filename>
            <type>text/plain</type>
            <size>10362</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTY3YmI4N2E0NTBhZjNlZjE5ZTVkNTk0YzU3NzU4ZDU3MGFjYWNiLi5kZTY5Nzcy
ZDNiMThkNGM1M2QzNzgwMjM0OTEyZGIxYzIwNjQ5MDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDktMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgYnVncyBvZiBzZWFy
Y2ggY2FuY2VsIGJ1dHRvbiBhbmQgc3BpbiBidXR0b24gYWJvdXQgc3RhdGUgY2hhbmdlIGluCisg
ICAgICAgIGFuIGV2ZW50IGhhbmRsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00Njk1MAorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1udW1i
ZXItY2hhbmdlLXR5cGUtb24tZm9jdXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1v
bi1jYW5jZWwuaHRtbDogQWRkZWQuCisKIDIwMTAtMDktMjkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBTa2lwcGluZyBjcmFzaGluZyB0ZXN0
IHRvIGdyZWVuIHRoZSB0cmVlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC1udW1iZXItY2hhbmdlLXR5cGUtb24tZm9jdXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItY2hhbmdlLXR5cGUtb24tZm9jdXMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVjZDQwYzI1ZTZkYjlmMjk4MmI3YzE1OGI5MGNmNmQxMDQ1NzhhYmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1j
aGFuZ2UtdHlwZS1vbi1mb2N1cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQnVnIDQ2
OTUwOiBBc3NlcnRpb24gZmFpbHVyZSBieSBjaGFuZ2luZyB0eXBlIGZyb20gdHlwZT1udW1iZXIg
aW4gZm9jdXMgZXZlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK1BBU1Mg
Tm90IGNyYXNoZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXIt
Y2hhbmdlLXR5cGUtb24tZm9jdXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
bnVtYmVyLWNoYW5nZS10eXBlLW9uLWZvY3VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEwMzFhN2M2Mzdl
N2RhYTRkYzU4NzNhOWRmZTcwYjFhMTg3MjE1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWNoYW5nZS10eXBlLW9uLWZvY3VzLmh0bWwKQEAg
LTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisKKzxpbnB1dCBpZD1udW1iZXIgdHlwZT1u
dW1iZXIgdmFsdWU9MD4KKworPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oJ0J1ZyA0Njk1MDogQXNzZXJ0aW9uIGZhaWx1cmUgYnkgY2hhbmdpbmcgdHlwZSBm
cm9tIHR5cGU9bnVtYmVyIGluIGZvY3VzIGV2ZW50LicpOworCit2YXIgaW5wdXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbnVtYmVyJyk7Cit2YXIgY2FuY2VsWCA9IGlucHV0Lm9mZnNldExl
ZnQgKyBpbnB1dC5vZmZzZXRXaWR0aCAtIDY7Cit2YXIgbWlkZGxlWSA9IGlucHV0Lm9mZnNldFRv
cCArIGlucHV0Lm9mZnNldEhlaWdodCAvIDQ7CisKK2Z1bmN0aW9uIGNoYW5nZVR5cGUoZXZlbnQp
IHsKKyAgICB0aGlzLnR5cGUgPSAndGV4dCc7Cit9CitpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdm
b2N1cycsIGNoYW5nZVR5cGUsIGZhbHNlKTsKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAg
ICAvLyBDbGljayB0aGUgc3BpbiBidXR0b24uCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
Y2FuY2VsWCwgbWlkZGxlWSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7IC8vIFRoaXMg
bWFkZSBhbiBhc3NlcnRpb24gZmFpbC4KKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9IGVs
c2UgeworICAgIGRlYnVnKCdNYW51YWwgdGVzdGluZzogQ2xpY2sgdGhlIHNwaW4gYnV0dG9uLCBh
bmQgc2VlIGlmIHRoZSBicm93c2VyIGNyYXNoZXMgb3Igbm90LicpOworfQordGVzdFBhc3NlZCgn
Tm90IGNyYXNoZWQuJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ4ZGU5NTFjOWFkMzhiYzdjNGU1YjY2YTY2NjdiMzQ3YzNmZWZkMGQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNh
bmNlbC1vbi1jYW5jZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0J1ZyA0Njk1MDog
U2VhcmNoIGZpZWxkIGNhbmNlbCBidXR0b24ga2VlcHMgZXZlbnQgY2FwdHVyaW5nIGlmIHRoZSB2
YWx1ZSBpcyBjbGVhcmVkIGluIGEgZm9jdXMgZXZlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCisKK1BBU1MgbW91c2VEb3duQ291bnQgaXMgMgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zZWFyY2gtaGlkZS1jYW5jZWwtb24tY2FuY2VsLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmI3Y2JiOWI2NjYzOTc0ZDFiMWQyNDQyMGRlNWMxZjM2MjgxNTA1NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNl
bC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorCis8aW5wdXQgaWQ9c2Vh
cmNoIHR5cGU9c2VhcmNoIHZhbHVlPXF1ZXJ5PgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+CitkZXNjcmlwdGlvbignQnVnIDQ2OTUwOiBTZWFyY2ggZmllbGQgY2FuY2VsIGJ1
dHRvbiBrZWVwcyBldmVudCBjYXB0dXJpbmcgaWYgdGhlIHZhbHVlIGlzIGNsZWFyZWQgaW4gYSBm
b2N1cyBldmVudC4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nl
YXJjaCcpOwordmFyIGNhbmNlbFggPSBpbnB1dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zmc2V0V2lk
dGggLSA2OwordmFyIG1pZGRsZVggPSBpbnB1dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zmc2V0V2lk
dGggLyAyCit2YXIgbWlkZGxlWSA9IGlucHV0Lm9mZnNldFRvcCArIGlucHV0Lm9mZnNldEhlaWdo
dCAvIDI7Cit2YXIgbW91c2VEb3duQ291bnQgPSAwOworaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcign
bW91c2Vkb3duJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBtb3VzZURvd25Db3VudCsrOworfSwg
ZmFsc2UpOworCitmdW5jdGlvbiBjbGVhclZhbHVlKGV2ZW50KSB7CisgICAgdGhpcy52YWx1ZSA9
ICcnOworfQoraW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjbGVhclZhbHVlLCBmYWxz
ZSk7CisvLyBDbGljayB0aGUgY2FuY2VsIGJ1dHRvbi4KK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KGNhbmNlbFgsIG1pZGRsZVkpOworZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CitldmVudFNlbmRl
ci5tb3VzZVVwKCk7CisvLyBDbGljayB0aGUgaW5wdXQgZWxlbWVudC4gVGhlIGV2ZW50IHNob3Vs
ZCBub3QgYmUgY2FwdHVyZWQgYnkgdGhlIGNhbmNlbCBidXR0b24uCitldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyhtaWRkbGVYLCBtaWRkbGVZKTsKK2V2ZW50U2VuZGVyLm1vdXNlRG93bigpOworZXZl
bnRTZW5kZXIubW91c2VVcCgpOworCitzaG91bGRCZSgnbW91c2VEb3duQ291bnQnLCAnMicpOwor
aW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjbGVhclZhbHVlLCBmYWxzZSk7CisK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYjdhNTk5ZGU3MTQ3OWE2NjMwNGE5ZTcxY2VmNmRkOTFlNGI3ZGY2My4uOGMx
OWMxYjVjZDBlMDkyZTRhZTdiNDNmNDZlNTkxN2Y3ZTUxNGQ2NyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAx
MC0wOS0zMCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBidWdzIG9mIHNlYXJjaCBj
YW5jZWwgYnV0dG9uIGFuZCBzcGluIGJ1dHRvbiBhYm91dCBzdGF0ZSBjaGFuZ2UgaW4KKyAgICAg
ICAgYW4gZXZlbnQgaGFuZGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ2OTUwCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvaW5wdXQtbnVt
YmVyLWNoYW5nZS10eXBlLW9uLWZvY3VzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMv
c2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICBD
YXB0dXJpbmcgbW91c2UgZXZlbnRzIGFmdGVyIEhUTUxJbnB1dEVsZW1lbnQ6OmZvY3VzKCkgYmVj
YXVzZSBhCisgICAgICAgICBmb2N1cyBldmVudCBoYW5kbGVyIGNhbiBjbGVhciB0aGUgdmFsdWUg
YW5kIGhpZGVzIHRoZSBjYW5jZWwgYnV0dG9uLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRv
bkVsZW1lbnQ6OmRldGFjaCk6CisgICAgICAgICBSZWxlYXNlIGV2ZW50IGNhcHR1cmluZyB3aGVu
IHRoZSBub2RlIGlzIGRldGFjaGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAgQ2hlY2sgaWYgdGhlIG5vZGUgaXMg
YXR0YWNoZWQgYmVmb3JlIGNhbGxpbmcgc3RlcFVwRnJvbVJlbmRlcmVyKCkuCisgICAgICAgICog
cmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oOgorCiAyMDEwLTA5LTI5ICBNaWhh
aSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9s
SW5uZXJFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxl
bWVudHMuY3BwCmluZGV4IGU1MjI4ZjA3NzFmZGMzZTAwNDk2ODRkYTIwMThjYTY0ODMyYWY0OWQu
LjIzNzI0YWFiMzMwNGZmM2Q3MmVlMGI4NWIzM2VkOWQwOTc4MTc4NjQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMjE5LDE0ICsyMTks
MTggQEAgdm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIHZpc2libGUsIG9u
IG1vdXNldXAsIGNsZWFyIHRoZSB2YWx1ZSwgYW5kIHNldCBzZWxlY3Rpb24KICAgICBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dB
bmNlc3Rvck5vZGUoKSk7CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3Vz
ZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CisgICAgICAgIFJlZlB0
cjxIVE1MSW5wdXRFbGVtZW50PiBwcm90ZWN0b3IoaW5wdXQpOworICAgICAgICBSZWZQdHI8Tm9k
ZT4gcHJvdGVjdG9yMih0aGlzKTsKKyAgICAgICAgaW5wdXQtPmZvY3VzKCk7CisgICAgICAgIGlu
cHV0LT5zZWxlY3QoKTsKKyAgICAgICAgLy8gQnkgYW4gZXZlbnQgaGFuZGxlciwgdGhlIGlucHV0
IGVsZW1lbnQgbWlnaHQgYmUgcmVtb3ZlZCBvciBoaWRkZW4sCisgICAgICAgIC8vIHRoZSBjYW5j
ZWwgYnV0dG9uIG1pZ2h0IGJlIGhpZGRlbiwgb3IgdGhlIGlucHV0IHR5cGUgbWlnaHQgYmUgY2hh
bmdlZC4KICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+dmlzaWJsZVRvSGl0
VGVzdGluZygpKSB7CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+
ZnJhbWUoKSkgewogICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2V0Q2Fw
dHVyaW5nTW91c2VFdmVudHNOb2RlKHRoaXMpOwogICAgICAgICAgICAgICAgIG1fY2FwdHVyaW5n
ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBpbnB1dC0+Zm9jdXMo
KTsKLSAgICAgICAgaW5wdXQtPnNlbGVjdCgpOwogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhh
bmRsZWQoKTsKICAgICB9CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNldXBFdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgc3RhdGljX2Nhc3Q8TW91c2VF
dmVudCo+KGV2ZW50KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewpAQCAtMjY5LDYgKzI3Mywx
OCBAQCBQYXNzUmVmUHRyPFNwaW5CdXR0b25FbGVtZW50PiBTcGluQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKEhUTUxFbGVtZW50KiBzaGFkb3dQYXJlbgogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3Bp
bkJ1dHRvbkVsZW1lbnQoc2hhZG93UGFyZW50KSk7CiB9CiAKK3ZvaWQgU3BpbkJ1dHRvbkVsZW1l
bnQ6OmRldGFjaCgpCit7CisgICAgc3RvcFJlcGVhdGluZ1RpbWVyKCk7CisgICAgaWYgKG1fY2Fw
dHVyaW5nKSB7CisgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgp
KSB7CisgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNl
RXZlbnRzTm9kZSgwKTsKKyAgICAgICAgICAgIG1fY2FwdHVyaW5nID0gZmFsc2U7CisgICAgICAg
IH0KKyAgICB9CisgICAgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmRldGFjaCgpOworfQorCiB2
b2lkIFNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkK
IHsKICAgICBpZiAoIWV2ZW50LT5pc01vdXNlRXZlbnQoKSkgewpAQCAtMjk2LDExICszMTIsMTYg
QEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZl
bnQpCiAgICAgaWYgKG1vdXNlRXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3du
RXZlbnQgJiYgbW91c2VFdmVudC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewogICAgICAgICBp
ZiAoYm94LT5ib3JkZXJCb3hSZWN0KCkuY29udGFpbnMobG9jYWwpKSB7CiAgICAgICAgICAgICBS
ZWZQdHI8Tm9kZT4gcHJvdGVjdG9yKGlucHV0KTsKKyAgICAgICAgICAgIFJlZlB0cjxOb2RlPiBw
cm90ZWN0b3IyKHRoaXMpOwogICAgICAgICAgICAgaW5wdXQtPmZvY3VzKCk7CiAgICAgICAgICAg
ICBpbnB1dC0+c2VsZWN0KCk7Ci0gICAgICAgICAgICBpbnB1dC0+c3RlcFVwRnJvbVJlbmRlcmVy
KG1fdXBEb3duU3RhdGUgPT0gVXAgPyAxIDogLTEpOworICAgICAgICAgICAgLy8gSW5wdXQgdHlw
ZSBtaWdodCBiZSBjaGFuZ2VkIGJ5IGFuIGV2ZW50IGhhbmRsZXIuIFRoaXMgc2hhZG93IG5vZGUg
bWlnaHQgYmUgZGV0YWNoZWQuCisgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkgeworICAgICAg
ICAgICAgICAgIGlucHV0LT5zdGVwVXBGcm9tUmVuZGVyZXIobV91cERvd25TdGF0ZSA9PSBVcCA/
IDEgOiAtMSk7CisgICAgICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgICAgICAg
ICAgICAgIHN0YXJ0UmVwZWF0aW5nVGltZXIoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgICAgICAgICAgc3RhcnRSZXBlYXRpbmdU
aW1lcigpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChtb3VzZUV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAmJiBtb3VzZUV2ZW50LT5idXR0b24oKSA9PSBMZWZ0
QnV0dG9uKQogICAgICAgICBzdG9wUmVwZWF0aW5nVGltZXIoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIGIvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKaW5kZXggYzE0NmE0MmRjNDM0OWU3N2RkYWJl
ZTMxN2RhNmU3MWVmNTZhN2U1OC4uMzY5MDc2MDhjNjdjNGMxYTlmYjRlYzBiYjJlY2Y0ZWVmMGNi
NDdiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgK
QEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNwaW5CdXR0b25FbGVt
ZW50KEhUTUxFbGVtZW50Kik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAgICAgdmly
dHVhbCBib29sIGlzU3BpbkJ1dHRvbkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAg
ICAgLy8gRklYTUU6IHNoYWRvd0FuY2VzdG9yTm9kZSgpIHNob3VsZCBiZSBjb25zdC4KICAgICB2
aXJ0dWFsIGJvb2wgaXNFbmFibGVkRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxFbGVtZW50Kj4oY29uc3RfY2FzdDxTcGluQnV0dG9uRWxlbWVudCo+KHRoaXMpLT5zaGFk
b3dBbmNlc3Rvck5vZGUoKSktPmlzRW5hYmxlZEZvcm1Db250cm9sKCk7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73039</attachid>
            <date>2010-11-05 00:38:58 -0700</date>
            <delta_ts>2010-11-05 00:54:37 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-46950-20101105163855.patch</filename>
            <type>text/plain</type>
            <size>14895</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjOTljZWQxYzhhMzFmM2Y3MDViZWI3ZTA1N2ZiMTgyYWRhZGRhYmIwLi5jNzU4NGE4
OTBhZGYyOWI2ZmE2MjY5M2E5MTU4YTA3ZDBmOTk2NmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDktMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgYnVncyBvZiBzZWFy
Y2ggY2FuY2VsIGJ1dHRvbiBhbmQgc3BpbiBidXR0b24gYWJvdXQgc3RhdGUgY2hhbmdlIGluCisg
ICAgICAgIGFuIGV2ZW50IGhhbmRsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00Njk1MAorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1udW1i
ZXItY2hhbmdlLXR5cGUtb24tZm9jdXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1v
bi1jYW5jZWwuaHRtbDogQWRkZWQuCisKIDIwMTAtMTEtMDQgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItY2hhbmdlLXR5cGUtb24tZm9j
dXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItY2hh
bmdlLXR5cGUtb24tZm9jdXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiNzQ0NTczZDk0ODAx
Njg0ZTIwNzI1MDc0MDlhNDg0NTBjNjg5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorQnVnIDQ2OTUwOiBBc3NlcnRpb24gZmFpbHVyZSBieSBjaGFu
Z2luZyB0eXBlIGZyb20gdHlwZT1udW1iZXIgaW4gZm9jdXMgZXZlbnQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCisKK1BBU1MgTm90IGNyYXNoZWQuCitQQVNTIG1vdXNlRG93bkNv
dW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFu
Z2UtdHlwZS1vbi1mb2N1cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1i
ZXItY2hhbmdlLXR5cGUtb24tZm9jdXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDE1N2U0OGU2YjdlMzRh
ZGNkYjQwYzRhMTk0MDZmNThmNWNkYmEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItY2hhbmdlLXR5cGUtb24tZm9jdXMuaHRtbApAQCAtMCww
ICsxLDUwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKworPGlucHV0IGlkPW51bWJlciB0eXBlPW51bWJl
ciB2YWx1ZT0wPgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignQnVnIDQ2OTUwOiBBc3NlcnRpb24gZmFpbHVyZSBieSBjaGFuZ2luZyB0eXBlIGZyb20g
dHlwZT1udW1iZXIgaW4gZm9jdXMgZXZlbnQuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdudW1iZXInKTsKK3ZhciBzcGluWCA9IGlucHV0Lm9mZnNldExlZnQgKyBp
bnB1dC5vZmZzZXRXaWR0aCAtIDY7Cit2YXIgbWlkZGxlWCA9IGlucHV0Lm9mZnNldExlZnQgKyBp
bnB1dC5vZmZzZXRXaWR0aCAvIDIKK3ZhciBtaWRkbGVZID0gaW5wdXQub2Zmc2V0VG9wICsgaW5w
dXQub2Zmc2V0SGVpZ2h0IC8gNDsKK3ZhciBtb3VzZURvd25Db3VudCA9IDA7CitpbnB1dC5hZGRF
dmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmdW5jdGlvbihldmVudCkgeworICAgIG1vdXNlRG93
bkNvdW50Kys7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGNoYW5nZVR5cGUoZXZlbnQpIHsKKyAg
ICB0aGlzLnR5cGUgPSAndGV4dCc7Cit9CitpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycs
IGNoYW5nZVR5cGUsIGZhbHNlKTsKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAvLyBD
bGljayB0aGUgc3BpbiBidXR0b24uCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Bpblgs
IG1pZGRsZVkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOyAvLyBUaGlzIG1hZGUgYW4g
YXNzZXJ0aW9uIGZhaWwuCisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfSBlbHNlIHsKKyAg
ICBkZWJ1ZygnTWFudWFsIHRlc3Rpbmc6IENsaWNrIHRoZSBzcGluIGJ1dHRvbiwgYW5kIHNlZSBp
ZiB0aGUgYnJvd3NlciBjcmFzaGVzIG9yIG5vdC4nKTsKK30KK3Rlc3RQYXNzZWQoJ05vdCBjcmFz
aGVkLicpOworCisvLyBDbGljayB0aGUgaW5wdXQgZWxlbWVudC4gVGhlIGV2ZW50IHNob3VsZCBu
b3QgYmUgY2FwdHVyZWQgYnkgdGhlIHNwaW4gYnV0dG9uLgorZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8obWlkZGxlWCwgbWlkZGxlWSk7CitldmVudFNlbmRlci5tb3VzZURvd24oKTsKK2V2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKK3Nob3VsZEJlKCdtb3VzZURvd25Db3VudCcsICcxJyk7CisKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtaGlkZS1j
YW5jZWwtb24tY2FuY2VsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Vh
cmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhkZTk1
MWM5YWQzOGJjN2M0ZTViNjZhNjY2N2IzNDdjM2ZlZmQwZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQnVnIDQ2OTUwOiBTZWFyY2ggZmllbGQgY2FuY2VsIGJ1
dHRvbiBrZWVwcyBldmVudCBjYXB0dXJpbmcgaWYgdGhlIHZhbHVlIGlzIGNsZWFyZWQgaW4gYSBm
b2N1cyBldmVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworUEFTUyBtb3Vz
ZURvd25Db3VudCBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtaGlk
ZS1jYW5jZWwtb24tY2FuY2VsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1o
aWRlLWNhbmNlbC1vbi1jYW5jZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjdjYmI5YjY2NjM5NzRkMWIx
ZDI0NDIwZGU1YzFmMzYyODE1MDU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zZWFyY2gtaGlkZS1jYW5jZWwtb24tY2FuY2VsLmh0bWwKQEAgLTAsMCArMSw0NSBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+CisKKzxpbnB1dCBpZD1zZWFyY2ggdHlwZT1zZWFyY2ggdmFsdWU9
cXVlcnk+CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCdCdWcgNDY5NTA6IFNlYXJjaCBmaWVsZCBjYW5jZWwgYnV0dG9uIGtlZXBzIGV2ZW50IGNhcHR1
cmluZyBpZiB0aGUgdmFsdWUgaXMgY2xlYXJlZCBpbiBhIGZvY3VzIGV2ZW50LicpOworCit2YXIg
aW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VhcmNoJyk7Cit2YXIgY2FuY2VsWCA9
IGlucHV0Lm9mZnNldExlZnQgKyBpbnB1dC5vZmZzZXRXaWR0aCAtIDY7Cit2YXIgbWlkZGxlWCA9
IGlucHV0Lm9mZnNldExlZnQgKyBpbnB1dC5vZmZzZXRXaWR0aCAvIDIKK3ZhciBtaWRkbGVZID0g
aW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKK3ZhciBtb3VzZURvd25D
b3VudCA9IDA7CitpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmdW5jdGlvbihl
dmVudCkgeworICAgIG1vdXNlRG93bkNvdW50Kys7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGNs
ZWFyVmFsdWUoZXZlbnQpIHsKKyAgICB0aGlzLnZhbHVlID0gJyc7Cit9CitpbnB1dC5hZGRFdmVu
dExpc3RlbmVyKCdmb2N1cycsIGNsZWFyVmFsdWUsIGZhbHNlKTsKKy8vIENsaWNrIHRoZSBjYW5j
ZWwgYnV0dG9uLgorZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY2FuY2VsWCwgbWlkZGxlWSk7Citl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKK2V2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKy8vIENsaWNr
IHRoZSBpbnB1dCBlbGVtZW50LiBUaGUgZXZlbnQgc2hvdWxkIG5vdCBiZSBjYXB0dXJlZCBieSB0
aGUgY2FuY2VsIGJ1dHRvbi4KK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZGRsZVgsIG1pZGRs
ZVkpOworZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CitldmVudFNlbmRlci5tb3VzZVVwKCk7CisK
K3Nob3VsZEJlKCdtb3VzZURvd25Db3VudCcsICcyJyk7CitpbnB1dC5yZW1vdmVFdmVudExpc3Rl
bmVyKCdmb2N1cycsIGNsZWFyVmFsdWUsIGZhbHNlKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MGU4OWFlMzNl
ODc0MTg4NWZmYTVlMjhiMjUwNmM3MWM5OTNhYzNlLi4xNGE5MGExZDdjN2VkMGJmYjVmZWFlOTU2
MjcyN2NjM2JjZjM4OWYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEwLTA5LTMwICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTb21lIGJ1Z3Mgb2Ygc2VhcmNoIGNhbmNlbCBidXR0b24gYW5kIHNwaW4g
YnV0dG9uIGFib3V0IHN0YXRlIGNoYW5nZSBpbgorICAgICAgICBhbiBldmVudCBoYW5kbGVyLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY5NTAKKwor
ICAgICAgICBGaXggdGhlIGZvbGxvd2luZyBwcm9ibGVtczoKKyAgICAgICAgICogVHlwZT1zZWFy
Y2ggZmllbGQgZGlkbid0IHJlbGVhc2UgZXZlbnQgY2FwdHVyaW5nCisgICAgICAgICAqIEFzc2Vy
dGlvbiBmYWlsdXJlIHdoZW4gYW4gaW5wdXQgZmllbGQgd2l0aCBzcGluIGJ1dHRvbnMgd2FzIGNo
YW5nZWQKKyAgICAgICAgICAgdG8gYW5vdGhlciB0eXBlIG9uIGZvY3VzIGV2ZW50LgorICAgICAg
ICAgKiBBIGlucHV0IGZpZWxkIHdpdGggc3BpbiBidXR0b24gZGlkbid0IHJlbGVhc2UgZXZlbnQg
Y2FwdHVyaW5nIHdoZW4gaXQKKyAgICAgICAgICAgd2FzIGNoYW5nZWQgdG8gYW5vdGhlciB0eXBl
IG9uIGZvY3VzIGV2ZW50LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2lucHV0LW51bWJl
ci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL3Nl
YXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1Rl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVs
ZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAgLSBN
YWtlIHRoZSB2YXJpYWJsZSAnaW5wdXQnIFJlZlB0ci4gIEl0IG1ha2VzIHRoZSBjb2RlIHNpbXBs
ZXIuCisgICAgICAgICAtIFJlbW92ZSB2aXNpYmlsaXR5IGNoZWNrIG9uIG1vdXNldXAgZXZlbnQu
IFdlIHNob3VsZCByZWxlYXNlIGNhcHR1cmluZworICAgICAgICAgICBhbnl3YXkgYmVjYXVzZSB0
aGUgY2FuY2VsIGJ1dHRvbiBtYXkgYmUgaW52aXNpYmxlIGlmIEphdmFTY3JpcHQgY29kZQorICAg
ICAgICAgICBjYWxsZWQgYnkgdGhlIGZvY3VzIGV2ZW50IHJlbW92ZXMgdGhlIGlucHV0IHZhbHVl
LgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OmRldGFjaCk6CisgICAgICAg
ICAtIFJlbGVhc2UgY2FwdHVyaW5nIG9uIGRldGFjaCBiZWNhdXNlIGl0IGlzIHBvc3NpYmxlIHRo
YXQgYSBzcGluIGJ1dHRvbgorICAgICAgICAgICBub2RlIGlzIGRldGFjaGVkIHdoaWxlIGl0IGlz
IGNhcHR1cmluZyBldmVudHMuCisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSB0byB0aGlz
IGFuZCBjaGVjayByZW5kZXJlcigpIGFmdGVyIHNvbWUgZnVuY3Rpb25zIHdoaWNoCisgICAgICAg
ICAgbWF5IHJ1biBKYXZhU2NyaXB0IGNvZGUuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxk
U3BlZWNoQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICAgTWFr
ZSB0aGUgdmFyaWFibGUgJ2lucHV0JyBSZWZQdHIgdG8gYWxpZ24gb3RoZXIgZnVuY3Rpb25zIGlu
IHRoaXMgZmlsZS4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OjpzZXRSZWNvZ25pdGlvblJlc3VsdCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRldGFjaCk6IGEgc3R5bGUgbml0LgorICAgICAg
ICAqIHJlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaDogRGVjbGFyZSBTcGluQnV0
dG9uRWxlbWVudDo6ZGV0YWNoKCkuCisKIDIwMTAtMTEtMDQgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNjQ5NWQwNDUy
NDEzYTc4ZTgxYmJjYWI1NmQ0ZDNhMzU4NmQ1Y2U1Ni4uOGM5MWZjNDIxOGRhZGY4ODFiZGQ4YmI3
MmNiNGU1ZjM4MTRjYzEyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbkVsZW1lbnQ6OmRldGFjaCgpCiB2b2lkIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gSWYgdGhl
IGVsZW1lbnQgaXMgdmlzaWJsZSwgb24gbW91c2V1cCwgY2xlYXIgdGhlIHZhbHVlLCBhbmQgc2V0
IHNlbGVjdGlvbgotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBSZWZQdHI8SFRNTElu
cHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0Fu
Y2VzdG9yTm9kZSgpKSk7CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3Vz
ZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlmIChy
ZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnZpc2libGVUb0hpdFRlc3RpbmcoKSkgewogICAgICAg
ICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsKQEAgLTIzOSwx
MyArMjM5LDEyIEBAIHZvaWQgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5k
bGVkKCk7CiAgICAgfQogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZXVwRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZl
bnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKLSAgICAgICAgaWYgKG1fY2Fw
dHVyaW5nICYmIHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+dmlzaWJsZVRvSGl0VGVzdGluZygp
KSB7CisgICAgICAgIGlmIChtX2NhcHR1cmluZykgewogICAgICAgICAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZl
bnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZlbnRzTm9kZSgwKTsKICAgICAgICAgICAg
ICAgICBtX2NhcHR1cmluZyA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYg
KGhvdmVyZWQoKSkgewotICAgICAgICAgICAgICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBw
cm90ZWN0b3IoaW5wdXQpOwogICAgICAgICAgICAgICAgIFN0cmluZyBvbGRWYWx1ZSA9IGlucHV0
LT52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGlucHV0LT5zZXRWYWx1ZSgiIik7CiAgICAgICAg
ICAgICAgICAgaWYgKCFvbGRWYWx1ZS5pc0VtcHR5KCkpIHsKQEAgLTI3OCw2ICsyNzcsMTggQEAg
UGFzc1JlZlB0cjxTcGluQnV0dG9uRWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShI
VE1MRWxlbWVudCogc2hhZG93UGFyZW4KICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwaW5CdXR0
b25FbGVtZW50KHNoYWRvd1BhcmVudCkpOwogfQogCit2b2lkIFNwaW5CdXR0b25FbGVtZW50Ojpk
ZXRhY2goKQoreworICAgIHN0b3BSZXBlYXRpbmdUaW1lcigpOworICAgIGlmIChtX2NhcHR1cmlu
ZykgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewor
ICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50
c05vZGUoMCk7CisgICAgICAgICAgICBtX2NhcHR1cmluZyA9IGZhbHNlOworICAgICAgICB9Cisg
ICAgfQorICAgIFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpkZXRhY2goKTsKK30KKwogdm9pZCBT
cGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAg
ICAgaWYgKCFldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKQEAgLTI5Myw3ICszMDQsNyBAQCB2b2lk
IFNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3Rh
dGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBS
ZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKSk7CiAgICAgaWYgKGlucHV0LT5kaXNhYmxlZCgpIHx8
IGlucHV0LT5pc1JlYWRPbmx5Rm9ybUNvbnRyb2woKSkgewogICAgICAgICBpZiAoIWV2ZW50LT5k
ZWZhdWx0SGFuZGxlZCgpKQogICAgICAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoZXZlbnQpOwpAQCAtMzA0LDEyICszMTUsMTYgQEAgdm9pZCBTcGluQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgSW50UG9pbnQgbG9j
YWwgPSByb3VuZGVkSW50UG9pbnQoYm94LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJz
b2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSkpOwogICAgIGlmIChtb3VzZUV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIG1vdXNlRXZlbnQtPmJ1dHRvbigp
ID09IExlZnRCdXR0b24pIHsKICAgICAgICAgaWYgKGJveC0+Ym9yZGVyQm94UmVjdCgpLmNvbnRh
aW5zKGxvY2FsKSkgewotICAgICAgICAgICAgUmVmUHRyPE5vZGU+IHByb3RlY3RvcihpbnB1dCk7
CisgICAgICAgICAgICBSZWZQdHI8Tm9kZT4gcHJvdGVjdG9yKHRoaXMpOwogICAgICAgICAgICAg
aW5wdXQtPmZvY3VzKCk7CiAgICAgICAgICAgICBpbnB1dC0+c2VsZWN0KCk7Ci0gICAgICAgICAg
ICBpbnB1dC0+c3RlcFVwRnJvbVJlbmRlcmVyKG1fdXBEb3duU3RhdGUgPT0gVXAgPyAxIDogLTEp
OworICAgICAgICAgICAgLy8gSW5wdXQgdHlwZSBtaWdodCBiZSBjaGFuZ2VkIGJ5IGFuIGV2ZW50
IGhhbmRsZXIuIFRoaXMgc2hhZG93IG5vZGUgbWlnaHQgYmUgZGV0YWNoZWQuCisgICAgICAgICAg
ICBpZiAocmVuZGVyZXIoKSkgeworICAgICAgICAgICAgICAgIGlucHV0LT5zdGVwVXBGcm9tUmVu
ZGVyZXIobV91cERvd25TdGF0ZSA9PSBVcCA/IDEgOiAtMSk7CisgICAgICAgICAgICAgICAgaWYg
KHJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0UmVwZWF0aW5nVGltZXIoKTsK
KyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwot
ICAgICAgICAgICAgc3RhcnRSZXBlYXRpbmdUaW1lcigpOwogICAgICAgICB9CiAgICAgfSBlbHNl
IGlmIChtb3VzZUV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAmJiBt
b3VzZUV2ZW50LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKQogICAgICAgICBzdG9wUmVwZWF0aW5n
VGltZXIoKTsKQEAgLTQxMCw4ICs0MjUsMTIgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9u
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKKyAgICAvLyBUaGUgY2FsbCB0byBmb2N1cygpIGJlbG93IGRpc3BhdGNoZXMg
YSBmb2N1cyBldmVudCwgYW5kIGFuIGV2ZW50IGhhbmRsZXIgaW4gdGhlIHBhZ2UgbWlnaHQKKyAg
ICAvLyByZW1vdmUgdGhlIGlucHV0IGVsZW1lbnQgZnJvbSBET00uIFRvIG1ha2Ugc3VyZSBpdCBy
ZW1haW5zIHZhbGlkIHVudGlsIHdlIGZpbmlzaCBvdXIgd29yaworICAgIC8vIGhlcmUsIHdlIHRh
a2UgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlLgorICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBp
bnB1dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkp
KTsKKwogICAgIC8vIE9uIG1vdXNlIGRvd24sIHNlbGVjdCB0aGUgdGV4dCBhbmQgc2V0IGZvY3Vz
LgotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHN0
YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsK
ICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+dmlzaWJsZVRvSGl0VGVzdGlu
ZygpKSB7CiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUo
KSkgewpAQCAtNDE5LDEwICs0MzgsNiBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgICAgICAgICBt
X2NhcHR1cmluZyA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgLy8g
VGhlIGNhbGwgdG8gZm9jdXMoKSBiZWxvdyBkaXNwYXRjaGVzIGEgZm9jdXMgZXZlbnQsIGFuZCBh
biBldmVudCBoYW5kbGVyIGluIHRoZSBwYWdlIG1pZ2h0Ci0gICAgICAgIC8vIHJlbW92ZSB0aGUg
aW5wdXQgZWxlbWVudCBmcm9tIERPTS4gVG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgdmFsaWQgdW50
aWwgd2UgZmluaXNoIG91ciB3b3JrCi0gICAgICAgIC8vIGhlcmUsIHdlIHRha2UgYSB0ZW1wb3Jh
cnkgcmVmZXJlbmNlLgotICAgICAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaG9sZFJlZihp
bnB1dCk7CiAgICAgICAgIGlucHV0LT5mb2N1cygpOwogICAgICAgICBpbnB1dC0+c2VsZWN0KCk7
CiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwpAQCAtNDg0LDExICs0OTksMTAg
QEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c2V0UmVjb2duaXRpb25SZXN1
bHQoaW50LCBjb25zdCBTcGVlY2hJbnB1dFIKIHsKICAgICBtX3Jlc3VsdHMgPSByZXN1bHRzOwog
Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpOwogICAgIC8vIFRoZSBjYWxsIHRvIHNldFZhbHVl
KCkgYmVsb3cgZGlzcGF0Y2hlcyBhbiBldmVudCwgYW5kIGFuIGV2ZW50IGhhbmRsZXIgaW4gdGhl
IHBhZ2UgbWlnaHQKICAgICAvLyByZW1vdmUgdGhlIGlucHV0IGVsZW1lbnQgZnJvbSBET00uIFRv
IG1ha2Ugc3VyZSBpdCByZW1haW5zIHZhbGlkIHVudGlsIHdlIGZpbmlzaCBvdXIgd29yawogICAg
IC8vIGhlcmUsIHdlIHRha2UgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlLgotICAgIFJlZlB0cjxIVE1M
SW5wdXRFbGVtZW50PiBob2xkUmVmKGlucHV0KTsKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVu
dD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9k
ZSgpKSk7CiAgICAgaW5wdXQtPnNldFZhbHVlKHJlc3VsdHMuaXNFbXB0eSgpID8gIiIgOiByZXN1
bHRzWzBdLT51dHRlcmFuY2UoKSk7CiAgICAgaW5wdXQtPmRpc3BhdGNoV2Via2l0U3BlZWNoQ2hh
bmdlRXZlbnQoKTsKICAgICByZW5kZXJlcigpLT5yZXBhaW50KCk7CkBAIC01MDIsNyArNTE2LDcg
QEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6ZGV0YWNoKCkKICAgICB9CiAK
ICAgICBpZiAobV9zdGF0ZSAhPSBJZGxlKQotICAgICAgc3BlZWNoSW5wdXQoKS0+Y2FuY2VsUmVj
b2duaXRpb24obV9saXN0ZW5lcklkKTsKKyAgICAgICAgc3BlZWNoSW5wdXQoKS0+Y2FuY2VsUmVj
b2duaXRpb24obV9saXN0ZW5lcklkKTsKIAogICAgIFRleHRDb250cm9sSW5uZXJFbGVtZW50Ojpk
ZXRhY2goKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmgKaW5kZXggNjFjOWRiYWNjY2VhYWY1ZWM3OTQ3M2Q0ODUwMTU0OTUxNzllN2ZhMy4uZDdlNzc1
ZTZlNWI2YTk2NjEwMWFlMDFmZjVmZDU5ZjllZjkyZjI4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKQEAgLTEwNCw2ICsxMDQsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIFNwaW5CdXR0b25FbGVtZW50KEhUTUxFbGVtZW50Kik7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAgICAgdmlydHVhbCBib29sIGlzU3BpbkJ1dHRvbkVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgLy8gRklYTUU6IHNoYWRvd0FuY2VzdG9y
Tm9kZSgpIHNob3VsZCBiZSBjb25zdC4KICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkRm9ybUNv
bnRyb2woKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4oY29uc3RfY2FzdDxT
cGluQnV0dG9uRWxlbWVudCo+KHRoaXMpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKSktPmlzRW5hYmxl
ZEZvcm1Db250cm9sKCk7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73041</attachid>
            <date>2010-11-05 00:54:42 -0700</date>
            <delta_ts>2010-12-13 21:30:55 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-46950-20101105165441.patch</filename>
            <type>text/plain</type>
            <size>15019</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjOTljZWQxYzhhMzFmM2Y3MDViZWI3ZTA1N2ZiMTgyYWRhZGRhYmIwLi5jNzU4NGE4
OTBhZGYyOWI2ZmE2MjY5M2E5MTU4YTA3ZDBmOTk2NmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDktMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgYnVncyBvZiBzZWFy
Y2ggY2FuY2VsIGJ1dHRvbiBhbmQgc3BpbiBidXR0b24gYWJvdXQgc3RhdGUgY2hhbmdlIGluCisg
ICAgICAgIGFuIGV2ZW50IGhhbmRsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00Njk1MAorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1udW1i
ZXItY2hhbmdlLXR5cGUtb24tZm9jdXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1v
bi1jYW5jZWwuaHRtbDogQWRkZWQuCisKIDIwMTAtMTEtMDQgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItY2hhbmdlLXR5cGUtb24tZm9j
dXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItY2hh
bmdlLXR5cGUtb24tZm9jdXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiNzQ0NTczZDk0ODAx
Njg0ZTIwNzI1MDc0MDlhNDg0NTBjNjg5YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorQnVnIDQ2OTUwOiBBc3NlcnRpb24gZmFpbHVyZSBieSBjaGFu
Z2luZyB0eXBlIGZyb20gdHlwZT1udW1iZXIgaW4gZm9jdXMgZXZlbnQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCisKK1BBU1MgTm90IGNyYXNoZWQuCitQQVNTIG1vdXNlRG93bkNv
dW50IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFu
Z2UtdHlwZS1vbi1mb2N1cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1i
ZXItY2hhbmdlLXR5cGUtb24tZm9jdXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDE1N2U0OGU2YjdlMzRh
ZGNkYjQwYzRhMTk0MDZmNThmNWNkYmEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItY2hhbmdlLXR5cGUtb24tZm9jdXMuaHRtbApAQCAtMCww
ICsxLDUwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKworPGlucHV0IGlkPW51bWJlciB0eXBlPW51bWJl
ciB2YWx1ZT0wPgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbignQnVnIDQ2OTUwOiBBc3NlcnRpb24gZmFpbHVyZSBieSBjaGFuZ2luZyB0eXBlIGZyb20g
dHlwZT1udW1iZXIgaW4gZm9jdXMgZXZlbnQuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdudW1iZXInKTsKK3ZhciBzcGluWCA9IGlucHV0Lm9mZnNldExlZnQgKyBp
bnB1dC5vZmZzZXRXaWR0aCAtIDY7Cit2YXIgbWlkZGxlWCA9IGlucHV0Lm9mZnNldExlZnQgKyBp
bnB1dC5vZmZzZXRXaWR0aCAvIDIKK3ZhciBtaWRkbGVZID0gaW5wdXQub2Zmc2V0VG9wICsgaW5w
dXQub2Zmc2V0SGVpZ2h0IC8gNDsKK3ZhciBtb3VzZURvd25Db3VudCA9IDA7CitpbnB1dC5hZGRF
dmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmdW5jdGlvbihldmVudCkgeworICAgIG1vdXNlRG93
bkNvdW50Kys7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGNoYW5nZVR5cGUoZXZlbnQpIHsKKyAg
ICB0aGlzLnR5cGUgPSAndGV4dCc7Cit9CitpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycs
IGNoYW5nZVR5cGUsIGZhbHNlKTsKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAvLyBD
bGljayB0aGUgc3BpbiBidXR0b24uCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3Bpblgs
IG1pZGRsZVkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOyAvLyBUaGlzIG1hZGUgYW4g
YXNzZXJ0aW9uIGZhaWwuCisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfSBlbHNlIHsKKyAg
ICBkZWJ1ZygnTWFudWFsIHRlc3Rpbmc6IENsaWNrIHRoZSBzcGluIGJ1dHRvbiwgYW5kIHNlZSBp
ZiB0aGUgYnJvd3NlciBjcmFzaGVzIG9yIG5vdC4nKTsKK30KK3Rlc3RQYXNzZWQoJ05vdCBjcmFz
aGVkLicpOworCisvLyBDbGljayB0aGUgaW5wdXQgZWxlbWVudC4gVGhlIGV2ZW50IHNob3VsZCBu
b3QgYmUgY2FwdHVyZWQgYnkgdGhlIHNwaW4gYnV0dG9uLgorZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8obWlkZGxlWCwgbWlkZGxlWSk7CitldmVudFNlbmRlci5tb3VzZURvd24oKTsKK2V2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKK3Nob3VsZEJlKCdtb3VzZURvd25Db3VudCcsICcxJyk7CisKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtaGlkZS1j
YW5jZWwtb24tY2FuY2VsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Vh
cmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhkZTk1
MWM5YWQzOGJjN2M0ZTViNjZhNjY2N2IzNDdjM2ZlZmQwZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQnVnIDQ2OTUwOiBTZWFyY2ggZmllbGQgY2FuY2VsIGJ1
dHRvbiBrZWVwcyBldmVudCBjYXB0dXJpbmcgaWYgdGhlIHZhbHVlIGlzIGNsZWFyZWQgaW4gYSBm
b2N1cyBldmVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworUEFTUyBtb3Vz
ZURvd25Db3VudCBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtaGlk
ZS1jYW5jZWwtb24tY2FuY2VsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1o
aWRlLWNhbmNlbC1vbi1jYW5jZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjdjYmI5YjY2NjM5NzRkMWIx
ZDI0NDIwZGU1YzFmMzYyODE1MDU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zZWFyY2gtaGlkZS1jYW5jZWwtb24tY2FuY2VsLmh0bWwKQEAgLTAsMCArMSw0NSBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+CisKKzxpbnB1dCBpZD1zZWFyY2ggdHlwZT1zZWFyY2ggdmFsdWU9
cXVlcnk+CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9u
KCdCdWcgNDY5NTA6IFNlYXJjaCBmaWVsZCBjYW5jZWwgYnV0dG9uIGtlZXBzIGV2ZW50IGNhcHR1
cmluZyBpZiB0aGUgdmFsdWUgaXMgY2xlYXJlZCBpbiBhIGZvY3VzIGV2ZW50LicpOworCit2YXIg
aW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VhcmNoJyk7Cit2YXIgY2FuY2VsWCA9
IGlucHV0Lm9mZnNldExlZnQgKyBpbnB1dC5vZmZzZXRXaWR0aCAtIDY7Cit2YXIgbWlkZGxlWCA9
IGlucHV0Lm9mZnNldExlZnQgKyBpbnB1dC5vZmZzZXRXaWR0aCAvIDIKK3ZhciBtaWRkbGVZID0g
aW5wdXQub2Zmc2V0VG9wICsgaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKK3ZhciBtb3VzZURvd25D
b3VudCA9IDA7CitpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmdW5jdGlvbihl
dmVudCkgeworICAgIG1vdXNlRG93bkNvdW50Kys7Cit9LCBmYWxzZSk7CisKK2Z1bmN0aW9uIGNs
ZWFyVmFsdWUoZXZlbnQpIHsKKyAgICB0aGlzLnZhbHVlID0gJyc7Cit9CitpbnB1dC5hZGRFdmVu
dExpc3RlbmVyKCdmb2N1cycsIGNsZWFyVmFsdWUsIGZhbHNlKTsKKy8vIENsaWNrIHRoZSBjYW5j
ZWwgYnV0dG9uLgorZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY2FuY2VsWCwgbWlkZGxlWSk7Citl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKK2V2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKy8vIENsaWNr
IHRoZSBpbnB1dCBlbGVtZW50LiBUaGUgZXZlbnQgc2hvdWxkIG5vdCBiZSBjYXB0dXJlZCBieSB0
aGUgY2FuY2VsIGJ1dHRvbi4KK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG1pZGRsZVgsIG1pZGRs
ZVkpOworZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CitldmVudFNlbmRlci5tb3VzZVVwKCk7CisK
K3Nob3VsZEJlKCdtb3VzZURvd25Db3VudCcsICcyJyk7CitpbnB1dC5yZW1vdmVFdmVudExpc3Rl
bmVyKCdmb2N1cycsIGNsZWFyVmFsdWUsIGZhbHNlKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MGU4OWFlMzNl
ODc0MTg4NWZmYTVlMjhiMjUwNmM3MWM5OTNhYzNlLi4xNGE5MGExZDdjN2VkMGJmYjVmZWFlOTU2
MjcyN2NjM2JjZjM4OWYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEwLTA5LTMwICBLZW50IFRhbXVyYSAg
PHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTb21lIGJ1Z3Mgb2Ygc2VhcmNoIGNhbmNlbCBidXR0b24gYW5kIHNwaW4g
YnV0dG9uIGFib3V0IHN0YXRlIGNoYW5nZSBpbgorICAgICAgICBhbiBldmVudCBoYW5kbGVyLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY5NTAKKwor
ICAgICAgICBGaXggdGhlIGZvbGxvd2luZyBwcm9ibGVtczoKKyAgICAgICAgICogVHlwZT1zZWFy
Y2ggZmllbGQgZGlkbid0IHJlbGVhc2UgZXZlbnQgY2FwdHVyaW5nCisgICAgICAgICAqIEFzc2Vy
dGlvbiBmYWlsdXJlIHdoZW4gYW4gaW5wdXQgZmllbGQgd2l0aCBzcGluIGJ1dHRvbnMgd2FzIGNo
YW5nZWQKKyAgICAgICAgICAgdG8gYW5vdGhlciB0eXBlIG9uIGZvY3VzIGV2ZW50LgorICAgICAg
ICAgKiBBIGlucHV0IGZpZWxkIHdpdGggc3BpbiBidXR0b24gZGlkbid0IHJlbGVhc2UgZXZlbnQg
Y2FwdHVyaW5nIHdoZW4gaXQKKyAgICAgICAgICAgd2FzIGNoYW5nZWQgdG8gYW5vdGhlciB0eXBl
IG9uIGZvY3VzIGV2ZW50LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2lucHV0LW51bWJl
ci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL3Nl
YXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1Rl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVs
ZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAgLSBN
YWtlIHRoZSB2YXJpYWJsZSAnaW5wdXQnIFJlZlB0ci4gIEl0IG1ha2VzIHRoZSBjb2RlIHNpbXBs
ZXIuCisgICAgICAgICAtIFJlbW92ZSB2aXNpYmlsaXR5IGNoZWNrIG9uIG1vdXNldXAgZXZlbnQu
IFdlIHNob3VsZCByZWxlYXNlIGNhcHR1cmluZworICAgICAgICAgICBhbnl3YXkgYmVjYXVzZSB0
aGUgY2FuY2VsIGJ1dHRvbiBtYXkgYmUgaW52aXNpYmxlIGlmIEphdmFTY3JpcHQgY29kZQorICAg
ICAgICAgICBjYWxsZWQgYnkgdGhlIGZvY3VzIGV2ZW50IHJlbW92ZXMgdGhlIGlucHV0IHZhbHVl
LgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6OmRldGFjaCk6CisgICAgICAg
ICAtIFJlbGVhc2UgY2FwdHVyaW5nIG9uIGRldGFjaCBiZWNhdXNlIGl0IGlzIHBvc3NpYmxlIHRo
YXQgYSBzcGluIGJ1dHRvbgorICAgICAgICAgICBub2RlIGlzIGRldGFjaGVkIHdoaWxlIGl0IGlz
IGNhcHR1cmluZyBldmVudHMuCisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSB0byB0aGlz
IGFuZCBjaGVjayByZW5kZXJlcigpIGFmdGVyIHNvbWUgZnVuY3Rpb25zIHdoaWNoCisgICAgICAg
ICAgbWF5IHJ1biBKYXZhU2NyaXB0IGNvZGUuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxk
U3BlZWNoQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICAgTWFr
ZSB0aGUgdmFyaWFibGUgJ2lucHV0JyBSZWZQdHIgdG8gYWxpZ24gb3RoZXIgZnVuY3Rpb25zIGlu
IHRoaXMgZmlsZS4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OjpzZXRSZWNvZ25pdGlvblJlc3VsdCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRldGFjaCk6IGEgc3R5bGUgbml0LgorICAgICAg
ICAqIHJlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaDogRGVjbGFyZSBTcGluQnV0
dG9uRWxlbWVudDo6ZGV0YWNoKCkuCisKIDIwMTAtMTEtMDQgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggNjQ5NWQwNDUy
NDEzYTc4ZTgxYmJjYWI1NmQ0ZDNhMzU4NmQ1Y2U1Ni4uYWQ3ZTdjZjIzZTg2MTJlMGVkOWVkMWM3
MWI4NzJiY2UzYjkyNmM0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbkVsZW1lbnQ6OmRldGFjaCgpCiB2b2lkIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAgICAgLy8gSWYgdGhl
IGVsZW1lbnQgaXMgdmlzaWJsZSwgb24gbW91c2V1cCwgY2xlYXIgdGhlIHZhbHVlLCBhbmQgc2V0
IHNlbGVjdGlvbgotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBSZWZQdHI8SFRNTElu
cHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0Fu
Y2VzdG9yTm9kZSgpKSk7CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1v
dXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3Vz
ZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlmIChy
ZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnZpc2libGVUb0hpdFRlc3RpbmcoKSkgewogICAgICAg
ICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsKQEAgLTIzOSwx
MyArMjM5LDEyIEBAIHZvaWQgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5k
bGVkKCk7CiAgICAgfQogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZXVwRXZlbnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZl
bnQqPihldmVudCktPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKLSAgICAgICAgaWYgKG1fY2Fw
dHVyaW5nICYmIHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+dmlzaWJsZVRvSGl0VGVzdGluZygp
KSB7CisgICAgICAgIGlmIChtX2NhcHR1cmluZykgewogICAgICAgICAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZl
bnRIYW5kbGVyKCktPnNldENhcHR1cmluZ01vdXNlRXZlbnRzTm9kZSgwKTsKICAgICAgICAgICAg
ICAgICBtX2NhcHR1cmluZyA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYg
KGhvdmVyZWQoKSkgewotICAgICAgICAgICAgICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBw
cm90ZWN0b3IoaW5wdXQpOwogICAgICAgICAgICAgICAgIFN0cmluZyBvbGRWYWx1ZSA9IGlucHV0
LT52YWx1ZSgpOwogICAgICAgICAgICAgICAgIGlucHV0LT5zZXRWYWx1ZSgiIik7CiAgICAgICAg
ICAgICAgICAgaWYgKCFvbGRWYWx1ZS5pc0VtcHR5KCkpIHsKQEAgLTI3OCw2ICsyNzcsMTggQEAg
UGFzc1JlZlB0cjxTcGluQnV0dG9uRWxlbWVudD4gU3BpbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShI
VE1MRWxlbWVudCogc2hhZG93UGFyZW4KICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwaW5CdXR0
b25FbGVtZW50KHNoYWRvd1BhcmVudCkpOwogfQogCit2b2lkIFNwaW5CdXR0b25FbGVtZW50Ojpk
ZXRhY2goKQoreworICAgIHN0b3BSZXBlYXRpbmdUaW1lcigpOworICAgIGlmIChtX2NhcHR1cmlu
ZykgeworICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewor
ICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50
c05vZGUoMCk7CisgICAgICAgICAgICBtX2NhcHR1cmluZyA9IGZhbHNlOworICAgICAgICB9Cisg
ICAgfQorICAgIFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpkZXRhY2goKTsKK30KKwogdm9pZCBT
cGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAg
ICAgaWYgKCFldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKQEAgLTI5Myw3ICszMDQsNyBAQCB2b2lk
IFNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3Rh
dGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKKyAgICBS
ZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKSk7CiAgICAgaWYgKGlucHV0LT5kaXNhYmxlZCgpIHx8
IGlucHV0LT5pc1JlYWRPbmx5Rm9ybUNvbnRyb2woKSkgewogICAgICAgICBpZiAoIWV2ZW50LT5k
ZWZhdWx0SGFuZGxlZCgpKQogICAgICAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoZXZlbnQpOwpAQCAtMzA0LDEyICszMTUsMTggQEAgdm9pZCBTcGluQnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgSW50UG9pbnQgbG9j
YWwgPSByb3VuZGVkSW50UG9pbnQoYm94LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJz
b2x1dGVMb2NhdGlvbigpLCBmYWxzZSwgdHJ1ZSkpOwogICAgIGlmIChtb3VzZUV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIG1vdXNlRXZlbnQtPmJ1dHRvbigp
ID09IExlZnRCdXR0b24pIHsKICAgICAgICAgaWYgKGJveC0+Ym9yZGVyQm94UmVjdCgpLmNvbnRh
aW5zKGxvY2FsKSkgewotICAgICAgICAgICAgUmVmUHRyPE5vZGU+IHByb3RlY3RvcihpbnB1dCk7
CisgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBvZiBIVE1MSW5wdXRFbGVt
ZW50IG1heSBydW4gSmF2YVNjcmlwdAorICAgICAgICAgICAgLy8gY29kZSB3aGljaCBkZXRhY2hl
cyB0aGlzIHNoYWRvdyBub2RlLiBXZSBuZWVkIHRvIHRha2UgYSByZWZlcmVuY2UKKyAgICAgICAg
ICAgIC8vIGFuZCBjaGVjayByZW5kZXJlcigpIGFmdGVyIHN1Y2ggZnVuY3Rpb24gY2FsbHMuCisg
ICAgICAgICAgICBSZWZQdHI8Tm9kZT4gcHJvdGVjdG9yKHRoaXMpOwogICAgICAgICAgICAgaW5w
dXQtPmZvY3VzKCk7CiAgICAgICAgICAgICBpbnB1dC0+c2VsZWN0KCk7Ci0gICAgICAgICAgICBp
bnB1dC0+c3RlcFVwRnJvbVJlbmRlcmVyKG1fdXBEb3duU3RhdGUgPT0gVXAgPyAxIDogLTEpOwor
ICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgICAgICBpbnB1dC0+c3Rl
cFVwRnJvbVJlbmRlcmVyKG1fdXBEb3duU3RhdGUgPT0gVXAgPyAxIDogLTEpOworICAgICAgICAg
ICAgICAgIGlmIChyZW5kZXJlcigpKQorICAgICAgICAgICAgICAgICAgICBzdGFydFJlcGVhdGlu
Z1RpbWVyKCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhh
bmRsZWQoKTsKLSAgICAgICAgICAgIHN0YXJ0UmVwZWF0aW5nVGltZXIoKTsKICAgICAgICAgfQog
ICAgIH0gZWxzZSBpZiAobW91c2VFdmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZXVw
RXZlbnQgJiYgbW91c2VFdmVudC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikKICAgICAgICAgc3Rv
cFJlcGVhdGluZ1RpbWVyKCk7CkBAIC00MTAsOCArNDI3LDEyIEBAIHZvaWQgSW5wdXRGaWVsZFNw
ZWVjaEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgLy8gVGhlIGNhbGwgdG8gZm9jdXMoKSBiZWxvdyBk
aXNwYXRjaGVzIGEgZm9jdXMgZXZlbnQsIGFuZCBhbiBldmVudCBoYW5kbGVyIGluIHRoZSBwYWdl
IG1pZ2h0CisgICAgLy8gcmVtb3ZlIHRoZSBpbnB1dCBlbGVtZW50IGZyb20gRE9NLiBUbyBtYWtl
IHN1cmUgaXQgcmVtYWlucyB2YWxpZCB1bnRpbCB3ZSBmaW5pc2ggb3VyIHdvcmsKKyAgICAvLyBo
ZXJlLCB3ZSB0YWtlIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZS4KKyAgICBSZWZQdHI8SFRNTElucHV0
RWxlbWVudD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2Vz
dG9yTm9kZSgpKSk7CisKICAgICAvLyBPbiBtb3VzZSBkb3duLCBzZWxlY3QgdGhlIHRleHQgYW5k
IHNldCBmb2N1cy4KLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSk7CiAgICAgaWYgKGV2ZW50LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZl
bnQoKSAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0
QnV0dG9uKSB7CiAgICAgICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnZpc2libGVU
b0hpdFRlc3RpbmcoKSkgewogICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50
KCktPmZyYW1lKCkpIHsKQEAgLTQxOSwxMCArNDQwLDYgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNo
QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAg
ICAgICAgICAgbV9jYXB0dXJpbmcgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0g
ICAgICAgIC8vIFRoZSBjYWxsIHRvIGZvY3VzKCkgYmVsb3cgZGlzcGF0Y2hlcyBhIGZvY3VzIGV2
ZW50LCBhbmQgYW4gZXZlbnQgaGFuZGxlciBpbiB0aGUgcGFnZSBtaWdodAotICAgICAgICAvLyBy
ZW1vdmUgdGhlIGlucHV0IGVsZW1lbnQgZnJvbSBET00uIFRvIG1ha2Ugc3VyZSBpdCByZW1haW5z
IHZhbGlkIHVudGlsIHdlIGZpbmlzaCBvdXIgd29yawotICAgICAgICAvLyBoZXJlLCB3ZSB0YWtl
IGEgdGVtcG9yYXJ5IHJlZmVyZW5jZS4KLSAgICAgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+
IGhvbGRSZWYoaW5wdXQpOwogICAgICAgICBpbnB1dC0+Zm9jdXMoKTsKICAgICAgICAgaW5wdXQt
PnNlbGVjdCgpOwogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKQEAgLTQ4NCwx
MSArNTAxLDEwIEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFJlY29n
bml0aW9uUmVzdWx0KGludCwgY29uc3QgU3BlZWNoSW5wdXRSCiB7CiAgICAgbV9yZXN1bHRzID0g
cmVzdWx0czsKIAotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKICAgICAvLyBUaGUgY2FsbCB0
byBzZXRWYWx1ZSgpIGJlbG93IGRpc3BhdGNoZXMgYW4gZXZlbnQsIGFuZCBhbiBldmVudCBoYW5k
bGVyIGluIHRoZSBwYWdlIG1pZ2h0CiAgICAgLy8gcmVtb3ZlIHRoZSBpbnB1dCBlbGVtZW50IGZy
b20gRE9NLiBUbyBtYWtlIHN1cmUgaXQgcmVtYWlucyB2YWxpZCB1bnRpbCB3ZSBmaW5pc2ggb3Vy
IHdvcmsKICAgICAvLyBoZXJlLCB3ZSB0YWtlIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZS4KLSAgICBS
ZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaG9sZFJlZihpbnB1dCk7CisgICAgUmVmUHRyPEhUTUxJ
bnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dB
bmNlc3Rvck5vZGUoKSkpOwogICAgIGlucHV0LT5zZXRWYWx1ZShyZXN1bHRzLmlzRW1wdHkoKSA/
ICIiIDogcmVzdWx0c1swXS0+dXR0ZXJhbmNlKCkpOwogICAgIGlucHV0LT5kaXNwYXRjaFdlYmtp
dFNwZWVjaENoYW5nZUV2ZW50KCk7CiAgICAgcmVuZGVyZXIoKS0+cmVwYWludCgpOwpAQCAtNTAy
LDcgKzUxOCw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRldGFjaCgp
CiAgICAgfQogCiAgICAgaWYgKG1fc3RhdGUgIT0gSWRsZSkKLSAgICAgIHNwZWVjaElucHV0KCkt
PmNhbmNlbFJlY29nbml0aW9uKG1fbGlzdGVuZXJJZCk7CisgICAgICAgIHNwZWVjaElucHV0KCkt
PmNhbmNlbFJlY29nbml0aW9uKG1fbGlzdGVuZXJJZCk7CiAKICAgICBUZXh0Q29udHJvbElubmVy
RWxlbWVudDo6ZGV0YWNoKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oCmluZGV4IDYxYzlkYmFjY2NlYWFmNWVjNzk0NzNkNDg1MDE1NDk1MTc5ZTdm
YTMuLmQ3ZTc3NWU2ZTViNmE5NjYxMDFhZTAxZmY1ZmQ1OWY5ZWY5MmYyODUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCkBAIC0xMDQsNiArMTA0LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTcGluQnV0dG9uRWxlbWVudChIVE1MRWxlbWVudCop
OwogCisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwogICAgIHZpcnR1YWwgYm9vbCBpc1NwaW5C
dXR0b25FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIC8vIEZJWE1FOiBzaGFk
b3dBbmNlc3Rvck5vZGUoKSBzaG91bGQgYmUgY29uc3QuCiAgICAgdmlydHVhbCBib29sIGlzRW5h
YmxlZEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGNv
bnN0X2Nhc3Q8U3BpbkJ1dHRvbkVsZW1lbnQqPih0aGlzKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkp
LT5pc0VuYWJsZWRGb3JtQ29udHJvbCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76495</attachid>
            <date>2010-12-13 21:31:01 -0800</date>
            <delta_ts>2011-01-24 02:03:16 -0800</delta_ts>
            <desc>Patch 4 (rebased)</desc>
            <filename>bug-46950-20101214143059.patch</filename>
            <type>text/plain</type>
            <size>15103</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NWE2MTg5OWNmZWJkMmQyZWQ0MTMwMGM4NjViZDM2NzFhNWJjODg4Li41ZGFlODQ1
ZDJmZmUxZTI1Njk5NDUwODQ2YzVlMWJlMTQyMjcwYzYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDktMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgYnVncyBvZiBzZWFy
Y2ggY2FuY2VsIGJ1dHRvbiBhbmQgc3BpbiBidXR0b24gYWJvdXQgc3RhdGUgY2hhbmdlIGluCisg
ICAgICAgIGFuIGV2ZW50IGhhbmRsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00Njk1MAorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1udW1i
ZXItY2hhbmdlLXR5cGUtb24tZm9jdXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1v
bi1jYW5jZWwuaHRtbDogQWRkZWQuCisKIDIwMTAtMTItMTMgIE1paGFpIFBhcnBhcml0YSAgPG1p
aGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1bSB0ZXN0IGV4
cGVjdGF0aW9ucyB1cGRhdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGI3NDQ1NzNkOTQ4MDE2ODRlMjA3MjUwNzQwOWE0ODQ1MGM2ODlhOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWNo
YW5nZS10eXBlLW9uLWZvY3VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitCdWcgNDY5
NTA6IEFzc2VydGlvbiBmYWlsdXJlIGJ5IGNoYW5naW5nIHR5cGUgZnJvbSB0eXBlPW51bWJlciBp
biBmb2N1cyBldmVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworUEFTUyBO
b3QgY3Jhc2hlZC4KK1BBU1MgbW91c2VEb3duQ291bnQgaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWNoYW5nZS10eXBlLW9uLWZvY3VzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQwMTU3ZTQ4ZTZiN2UzNGFkY2RiNDBjNGExOTQwNmY1OGY1Y2RiYTIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFu
Z2UtdHlwZS1vbi1mb2N1cy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
Cis8aW5wdXQgaWQ9bnVtYmVyIHR5cGU9bnVtYmVyIHZhbHVlPTA+CisKKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdCdWcgNDY5NTA6IEFzc2VydGlvbiBm
YWlsdXJlIGJ5IGNoYW5naW5nIHR5cGUgZnJvbSB0eXBlPW51bWJlciBpbiBmb2N1cyBldmVudC4n
KTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ251bWJlcicpOwordmFy
IHNwaW5YID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdpZHRoIC0gNjsKK3ZhciBt
aWRkbGVYID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdpZHRoIC8gMgordmFyIG1p
ZGRsZVkgPSBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5vZmZzZXRIZWlnaHQgLyA0OwordmFyIG1v
dXNlRG93bkNvdW50ID0gMDsKK2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgbW91c2VEb3duQ291bnQrKzsKK30sIGZhbHNlKTsKKworZnVu
Y3Rpb24gY2hhbmdlVHlwZShldmVudCkgeworICAgIHRoaXMudHlwZSA9ICd0ZXh0JzsKK30KK2lu
cHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgY2hhbmdlVHlwZSwgZmFsc2UpOworaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworICAgIC8vIENsaWNrIHRoZSBzcGluIGJ1dHRvbi4KKyAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhzcGluWCwgbWlkZGxlWSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7IC8vIFRoaXMgbWFkZSBhbiBhc3NlcnRpb24gZmFpbC4KKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7Cit9IGVsc2UgeworICAgIGRlYnVnKCdNYW51YWwgdGVzdGluZzogQ2xp
Y2sgdGhlIHNwaW4gYnV0dG9uLCBhbmQgc2VlIGlmIHRoZSBicm93c2VyIGNyYXNoZXMgb3Igbm90
LicpOworfQordGVzdFBhc3NlZCgnTm90IGNyYXNoZWQuJyk7CisKKy8vIENsaWNrIHRoZSBpbnB1
dCBlbGVtZW50LiBUaGUgZXZlbnQgc2hvdWxkIG5vdCBiZSBjYXB0dXJlZCBieSB0aGUgc3BpbiBi
dXR0b24uCitldmVudFNlbmRlci5tb3VzZU1vdmVUbyhtaWRkbGVYLCBtaWRkbGVZKTsKK2V2ZW50
U2VuZGVyLm1vdXNlRG93bigpOworZXZlbnRTZW5kZXIubW91c2VVcCgpOworc2hvdWxkQmUoJ21v
dXNlRG93bkNvdW50JywgJzEnKTsKKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtaGlkZS1jYW5jZWwtb24tY2FuY2VsLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGRlOTUxYzlhZDM4YmM3YzRlNWI2NmE2NjY3YjM0N2Mz
ZmVmZDBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gt
aGlkZS1jYW5jZWwtb24tY2FuY2VsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitCdWcg
NDY5NTA6IFNlYXJjaCBmaWVsZCBjYW5jZWwgYnV0dG9uIGtlZXBzIGV2ZW50IGNhcHR1cmluZyBp
ZiB0aGUgdmFsdWUgaXMgY2xlYXJlZCBpbiBhIGZvY3VzIGV2ZW50LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworCitQQVNTIG1vdXNlRG93bkNvdW50IGlzIDIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJiN2NiYjliNjY2Mzk3NGQxYjFkMjQ0MjBkZTVjMWYzNjI4MTUwNTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1v
bi1jYW5jZWwuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKworPGlucHV0
IGlkPXNlYXJjaCB0eXBlPXNlYXJjaCB2YWx1ZT1xdWVyeT4KKworPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ0J1ZyA0Njk1MDogU2VhcmNoIGZpZWxkIGNh
bmNlbCBidXR0b24ga2VlcHMgZXZlbnQgY2FwdHVyaW5nIGlmIHRoZSB2YWx1ZSBpcyBjbGVhcmVk
IGluIGEgZm9jdXMgZXZlbnQuJyk7CisKK3ZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdzZWFyY2gnKTsKK3ZhciBjYW5jZWxYID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9m
ZnNldFdpZHRoIC0gNjsKK3ZhciBtaWRkbGVYID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9m
ZnNldFdpZHRoIC8gMgordmFyIG1pZGRsZVkgPSBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5vZmZz
ZXRIZWlnaHQgLyAyOwordmFyIG1vdXNlRG93bkNvdW50ID0gMDsKK2lucHV0LmFkZEV2ZW50TGlz
dGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgbW91c2VEb3duQ291bnQr
KzsKK30sIGZhbHNlKTsKKworZnVuY3Rpb24gY2xlYXJWYWx1ZShldmVudCkgeworICAgIHRoaXMu
dmFsdWUgPSAnJzsKK30KK2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgY2xlYXJWYWx1
ZSwgZmFsc2UpOworLy8gQ2xpY2sgdGhlIGNhbmNlbCBidXR0b24uCitldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyhjYW5jZWxYLCBtaWRkbGVZKTsKK2V2ZW50U2VuZGVyLm1vdXNlRG93bigpOworZXZl
bnRTZW5kZXIubW91c2VVcCgpOworLy8gQ2xpY2sgdGhlIGlucHV0IGVsZW1lbnQuIFRoZSBldmVu
dCBzaG91bGQgbm90IGJlIGNhcHR1cmVkIGJ5IHRoZSBjYW5jZWwgYnV0dG9uLgorZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8obWlkZGxlWCwgbWlkZGxlWSk7CitldmVudFNlbmRlci5tb3VzZURvd24o
KTsKK2V2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworc2hvdWxkQmUoJ21vdXNlRG93bkNvdW50Jywg
JzInKTsKK2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgY2xlYXJWYWx1ZSwgZmFs
c2UpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDk2YmJkZTgzNzlmZGFiNjIyOTQxN2Q1MjIyYzE5YjNkNmM3NWNh
ZmIuLjUwZjFkNGE3ZWVkOGI2ZjEzMTA2NDhlMjkwZWIwNDA0ZGQxNDI5ODMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTAtMDktMzAgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgYnVncyBvZiBz
ZWFyY2ggY2FuY2VsIGJ1dHRvbiBhbmQgc3BpbiBidXR0b24gYWJvdXQgc3RhdGUgY2hhbmdlIGlu
CisgICAgICAgIGFuIGV2ZW50IGhhbmRsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00Njk1MAorCisgICAgICAgIEZpeCB0aGUgZm9sbG93aW5nIHBy
b2JsZW1zOgorICAgICAgICAgKiBUeXBlPXNlYXJjaCBmaWVsZCBkaWRuJ3QgcmVsZWFzZSBldmVu
dCBjYXB0dXJpbmcKKyAgICAgICAgICogQXNzZXJ0aW9uIGZhaWx1cmUgd2hlbiBhbiBpbnB1dCBm
aWVsZCB3aXRoIHNwaW4gYnV0dG9ucyB3YXMgY2hhbmdlZAorICAgICAgICAgICB0byBhbm90aGVy
IHR5cGUgb24gZm9jdXMgZXZlbnQuCisgICAgICAgICAqIEEgaW5wdXQgZmllbGQgd2l0aCBzcGlu
IGJ1dHRvbiBkaWRuJ3QgcmVsZWFzZSBldmVudCBjYXB0dXJpbmcgd2hlbiBpdAorICAgICAgICAg
ICB3YXMgY2hhbmdlZCB0byBhbm90aGVyIHR5cGUgb24gZm9jdXMgZXZlbnQuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWNoYW5nZS10eXBlLW9uLWZvY3VzLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcik6CisgICAgICAgICAtIE1ha2UgdGhlIHZhcmlhYmxlICdpbnB1dCcgUmVm
UHRyLiAgSXQgbWFrZXMgdGhlIGNvZGUgc2ltcGxlci4KKyAgICAgICAgIC0gUmVtb3ZlIHZpc2li
aWxpdHkgY2hlY2sgb24gbW91c2V1cCBldmVudC4gV2Ugc2hvdWxkIHJlbGVhc2UgY2FwdHVyaW5n
CisgICAgICAgICAgIGFueXdheSBiZWNhdXNlIHRoZSBjYW5jZWwgYnV0dG9uIG1heSBiZSBpbnZp
c2libGUgaWYgSmF2YVNjcmlwdCBjb2RlCisgICAgICAgICAgIGNhbGxlZCBieSB0aGUgZm9jdXMg
ZXZlbnQgcmVtb3ZlcyB0aGUgaW5wdXQgdmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0
dG9uRWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgIC0gUmVsZWFzZSBjYXB0dXJpbmcgb24gZGV0
YWNoIGJlY2F1c2UgaXQgaXMgcG9zc2libGUgdGhhdCBhIHNwaW4gYnV0dG9uCisgICAgICAgICAg
IG5vZGUgaXMgZGV0YWNoZWQgd2hpbGUgaXQgaXMgY2FwdHVyaW5nIGV2ZW50cy4KKyAgICAgICAg
KFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAg
ICAgICBUYWtlIGEgcmVmZXJlbmNlIHRvIHRoaXMgYW5kIGNoZWNrIHJlbmRlcmVyKCkgYWZ0ZXIg
c29tZSBmdW5jdGlvbnMgd2hpY2gKKyAgICAgICAgICBtYXkgcnVuIEphdmFTY3JpcHQgY29kZS4K
KyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKToKKyAgICAgICAgICBNYWtlIHRoZSB2YXJpYWJsZSAnaW5wdXQnIFJlZlB0
ciB0byBhbGlnbiBvdGhlciBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFJlY29nbml0aW9uUmVzdWx0KTog
ZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6
ZGV0YWNoKTogYSBzdHlsZSBuaXQuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oOiBEZWNsYXJlIFNwaW5CdXR0b25FbGVtZW50OjpkZXRhY2goKS4KKwogMjAx
MC0xMi0xMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRD
b250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCmluZGV4IDljMjE1NDIwOTEyMzM0ZDcyYzUzYjVkNGZmZjdlMmFlODU4
YzA4M2MuLjY4MGExM2FlZWQ1MTBjYmJiYjc4NTYzN2Q3YzNhOWJiMzQ5MmI5NDggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMjE5LDcg
KzIxOSw3IEBAIHZvaWQgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpkZXRhY2goKQog
dm9pZCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIHZpc2libGUsIG9uIG1v
dXNldXAsIGNsZWFyIHRoZSB2YWx1ZSwgYW5kIHNldCBzZWxlY3Rpb24KLSAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNl
c3Rvck5vZGUoKSk7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSkpOwogICAgIGlmIChl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBldmVudC0+aXNN
b3VzZUV2ZW50KCkgJiYgc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9uKCkg
PT0gTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT52
aXNpYmxlVG9IaXRUZXN0aW5nKCkpIHsKICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBk
b2N1bWVudCgpLT5mcmFtZSgpKSB7CkBAIC0yMzIsMTMgKzIzMiwxMiBAQCB2b2lkIFNlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQp
CiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgIH0KICAgICBpZiAoZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIGV2ZW50LT5pc01vdXNl
RXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBM
ZWZ0QnV0dG9uKSB7Ci0gICAgICAgIGlmIChtX2NhcHR1cmluZyAmJiByZW5kZXJlcigpICYmIHJl
bmRlcmVyKCktPnZpc2libGVUb0hpdFRlc3RpbmcoKSkgeworICAgICAgICBpZiAobV9jYXB0dXJp
bmcpIHsKICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgp
KSB7CiAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdN
b3VzZUV2ZW50c05vZGUoMCk7CiAgICAgICAgICAgICAgICAgbV9jYXB0dXJpbmcgPSBmYWxzZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChob3ZlcmVkKCkpIHsKLSAgICAgICAgICAg
ICAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gcHJvdGVjdG9yKGlucHV0KTsKICAgICAgICAg
ICAgICAgICBTdHJpbmcgb2xkVmFsdWUgPSBpbnB1dC0+dmFsdWUoKTsKICAgICAgICAgICAgICAg
ICBpbnB1dC0+c2V0VmFsdWUoIiIpOwogICAgICAgICAgICAgICAgIGlmICghb2xkVmFsdWUuaXNF
bXB0eSgpKSB7CkBAIC0yNzEsNiArMjcwLDE4IEBAIFBhc3NSZWZQdHI8U3BpbkJ1dHRvbkVsZW1l
bnQ+IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoSFRNTEVsZW1lbnQqIHNoYWRvd1BhcmVuCiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGluQnV0dG9uRWxlbWVudChzaGFkb3dQYXJlbnQpKTsK
IH0KIAordm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGV0YWNoKCkKK3sKKyAgICBzdG9wUmVwZWF0
aW5nVGltZXIoKTsKKyAgICBpZiAobV9jYXB0dXJpbmcpIHsKKyAgICAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICAgICAgICAgIGZyYW1lLT5ldmVudEhh
bmRsZXIoKS0+c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNOb2RlKDApOworICAgICAgICAgICAgbV9j
YXB0dXJpbmcgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBUZXh0Q29udHJvbElubmVy
RWxlbWVudDo6ZGV0YWNoKCk7Cit9CisKIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogewogICAgIGlmICghZXZlbnQtPmlzTW91c2VFdmVu
dCgpKSB7CkBAIC0yODYsNyArMjk3LDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihzaGFkb3dBbmNlc3Rvck5vZGUoKSk7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlu
cHV0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSkp
OwogICAgIGlmIChpbnB1dC0+ZGlzYWJsZWQoKSB8fCBpbnB1dC0+aXNSZWFkT25seUZvcm1Db250
cm9sKCkpIHsKICAgICAgICAgaWYgKCFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKICAgICAgICAg
ICAgIEhUTUxEaXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKQEAgLTI5Nywx
MiArMzA4LDE4IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqIGV2ZW50KQogICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJveC0+
YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRy
dWUpKTsKICAgICBpZiAobW91c2VFdmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRv
d25FdmVudCAmJiBtb3VzZUV2ZW50LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAg
IGlmIChib3gtPmJvcmRlckJveFJlY3QoKS5jb250YWlucyhsb2NhbCkpIHsKLSAgICAgICAgICAg
IFJlZlB0cjxOb2RlPiBwcm90ZWN0b3IoaW5wdXQpOworICAgICAgICAgICAgLy8gVGhlIGZvbGxv
d2luZyBmdW5jdGlvbnMgb2YgSFRNTElucHV0RWxlbWVudCBtYXkgcnVuIEphdmFTY3JpcHQKKyAg
ICAgICAgICAgIC8vIGNvZGUgd2hpY2ggZGV0YWNoZXMgdGhpcyBzaGFkb3cgbm9kZS4gV2UgbmVl
ZCB0byB0YWtlIGEgcmVmZXJlbmNlCisgICAgICAgICAgICAvLyBhbmQgY2hlY2sgcmVuZGVyZXIo
KSBhZnRlciBzdWNoIGZ1bmN0aW9uIGNhbGxzLgorICAgICAgICAgICAgUmVmUHRyPE5vZGU+IHBy
b3RlY3Rvcih0aGlzKTsKICAgICAgICAgICAgIGlucHV0LT5mb2N1cygpOwogICAgICAgICAgICAg
aW5wdXQtPnNlbGVjdCgpOwotICAgICAgICAgICAgaW5wdXQtPnN0ZXBVcEZyb21SZW5kZXJlciht
X3VwRG93blN0YXRlID09IFVwID8gMSA6IC0xKTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlcigp
KSB7CisgICAgICAgICAgICAgICAgaW5wdXQtPnN0ZXBVcEZyb21SZW5kZXJlcihtX3VwRG93blN0
YXRlID09IFVwID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkKKyAg
ICAgICAgICAgICAgICAgICAgc3RhcnRSZXBlYXRpbmdUaW1lcigpOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgICAgICBzdGFy
dFJlcGVhdGluZ1RpbWVyKCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1vdXNlRXZlbnQt
PnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIG1vdXNlRXZlbnQtPmJ1dHRv
bigpID09IExlZnRCdXR0b24pCiAgICAgICAgIHN0b3BSZXBlYXRpbmdUaW1lcigpOwpAQCAtNDAz
LDggKzQyMCwxMiBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IC8vIFRoZSBjYWxsIHRvIGZvY3VzKCkgYmVsb3cgZGlzcGF0Y2hlcyBhIGZvY3VzIGV2ZW50LCBh
bmQgYW4gZXZlbnQgaGFuZGxlciBpbiB0aGUgcGFnZSBtaWdodAorICAgIC8vIHJlbW92ZSB0aGUg
aW5wdXQgZWxlbWVudCBmcm9tIERPTS4gVG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgdmFsaWQgdW50
aWwgd2UgZmluaXNoIG91ciB3b3JrCisgICAgLy8gaGVyZSwgd2UgdGFrZSBhIHRlbXBvcmFyeSBy
ZWZlcmVuY2UuCisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRpY19jYXN0
PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSkpOworCiAgICAgLy8gT24g
bW91c2UgZG93biwgc2VsZWN0IHRoZSB0ZXh0IGFuZCBzZXQgZm9jdXMuCi0gICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5j
ZXN0b3JOb2RlKCkpOwogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZWRvd25FdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgc3RhdGljX2Nhc3Q8TW91c2VF
dmVudCo+KGV2ZW50KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAocmVu
ZGVyZXIoKSAmJiByZW5kZXJlcigpLT52aXNpYmxlVG9IaXRUZXN0aW5nKCkpIHsKICAgICAgICAg
ICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKSB7CkBAIC00MTIsMTAg
KzQzMyw2IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgICAgIG1fY2FwdHVyaW5nID0gdHJ1
ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAvLyBUaGUgY2FsbCB0byBmb2N1
cygpIGJlbG93IGRpc3BhdGNoZXMgYSBmb2N1cyBldmVudCwgYW5kIGFuIGV2ZW50IGhhbmRsZXIg
aW4gdGhlIHBhZ2UgbWlnaHQKLSAgICAgICAgLy8gcmVtb3ZlIHRoZSBpbnB1dCBlbGVtZW50IGZy
b20gRE9NLiBUbyBtYWtlIHN1cmUgaXQgcmVtYWlucyB2YWxpZCB1bnRpbCB3ZSBmaW5pc2ggb3Vy
IHdvcmsKLSAgICAgICAgLy8gaGVyZSwgd2UgdGFrZSBhIHRlbXBvcmFyeSByZWZlcmVuY2UuCi0g
ICAgICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBob2xkUmVmKGlucHV0KTsKICAgICAgICAg
aW5wdXQtPmZvY3VzKCk7CiAgICAgICAgIGlucHV0LT5zZWxlY3QoKTsKICAgICAgICAgZXZlbnQt
PnNldERlZmF1bHRIYW5kbGVkKCk7CkBAIC00NzcsMTEgKzQ5NCwxMCBAQCB2b2lkIElucHV0Rmll
bGRTcGVlY2hCdXR0b25FbGVtZW50OjpzZXRSZWNvZ25pdGlvblJlc3VsdChpbnQsIGNvbnN0IFNw
ZWVjaElucHV0UgogewogICAgIG1fcmVzdWx0cyA9IHJlc3VsdHM7CiAKLSAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNl
c3Rvck5vZGUoKSk7CiAgICAgLy8gVGhlIGNhbGwgdG8gc2V0VmFsdWUoKSBiZWxvdyBkaXNwYXRj
aGVzIGFuIGV2ZW50LCBhbmQgYW4gZXZlbnQgaGFuZGxlciBpbiB0aGUgcGFnZSBtaWdodAogICAg
IC8vIHJlbW92ZSB0aGUgaW5wdXQgZWxlbWVudCBmcm9tIERPTS4gVG8gbWFrZSBzdXJlIGl0IHJl
bWFpbnMgdmFsaWQgdW50aWwgd2UgZmluaXNoIG91ciB3b3JrCiAgICAgLy8gaGVyZSwgd2UgdGFr
ZSBhIHRlbXBvcmFyeSByZWZlcmVuY2UuCi0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGhv
bGRSZWYoaW5wdXQpOworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dChzdGF0aWNf
Y2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpKTsKICAgICBpbnB1
dC0+c2V0VmFsdWUocmVzdWx0cy5pc0VtcHR5KCkgPyAiIiA6IHJlc3VsdHNbMF0tPnV0dGVyYW5j
ZSgpKTsKICAgICBpbnB1dC0+ZGlzcGF0Y2hFdmVudChTcGVlY2hJbnB1dEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLndlYmtpdHNwZWVjaGNoYW5nZUV2ZW50LCByZXN1bHRzKSk7CiAgICAgcmVu
ZGVyZXIoKS0+cmVwYWludCgpOwpAQCAtNDk1LDcgKzUxMSw3IEBAIHZvaWQgSW5wdXRGaWVsZFNw
ZWVjaEJ1dHRvbkVsZW1lbnQ6OmRldGFjaCgpCiAgICAgfQogCiAgICAgaWYgKG1fc3RhdGUgIT0g
SWRsZSkKLSAgICAgIHNwZWVjaElucHV0KCktPmNhbmNlbFJlY29nbml0aW9uKG1fbGlzdGVuZXJJ
ZCk7CisgICAgICAgIHNwZWVjaElucHV0KCktPmNhbmNlbFJlY29nbml0aW9uKG1fbGlzdGVuZXJJ
ZCk7CiAKICAgICBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6ZGV0YWNoKCk7CiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5oCmluZGV4IGJiNzdkY2Q1NGZm
M2VlNTA5YWQ0MTc0MDgxYTEwMGU5ZmZkOTI5ZmQuLmYxYjllMTNiOTNlY2U3OGNjZmY3NTQzYmZm
ZjFhM2RkMzNiZDQ1MGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9s
SW5uZXJFbGVtZW50cy5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTcGlu
QnV0dG9uRWxlbWVudChIVE1MRWxlbWVudCopOwogCisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgp
OwogICAgIHZpcnR1YWwgYm9vbCBpc1NwaW5CdXR0b25FbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIC8vIEZJWE1FOiBzaGFkb3dBbmNlc3Rvck5vZGUoKSBzaG91bGQgYmUgY29u
c3QuCiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGNvbnN0X2Nhc3Q8U3BpbkJ1dHRvbkVsZW1lbnQqPih0
aGlzKS0+c2hhZG93QW5jZXN0b3JOb2RlKCkpLT5pc0VuYWJsZWRGb3JtQ29udHJvbCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79903</attachid>
            <date>2011-01-24 02:03:22 -0800</date>
            <delta_ts>2011-01-24 20:36:37 -0800</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-46950-20110124190320.patch</filename>
            <type>text/plain</type>
            <size>14983</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMDQyZGNhODYzYjE0MzU0NDlmMjU5NjYzNTczZDJlZDA1MTI5Y2FmLi5iOWZlNmFh
MWY5OWViYTQ2Nzg3NzU1MTYzYjJiOTQ4MjA0YzUwOGMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDEtMjQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgYnVncyBvZiBzZWFy
Y2ggY2FuY2VsIGJ1dHRvbiBhbmQgc3BpbiBidXR0b24gYWJvdXQgc3RhdGUgY2hhbmdlIGluCisg
ICAgICAgIGFuIGV2ZW50IGhhbmRsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00Njk1MAorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1udW1i
ZXItY2hhbmdlLXR5cGUtb24tZm9jdXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1v
bi1jYW5jZWwuaHRtbDogQWRkZWQuCisKIDIwMTEtMDEtMjQgIFl1em8gRnVqaXNoaW1hICA8eXV6
b0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gdGVzdCBleHBlY3Rh
dGlvbiBjaGFuZ2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51
bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGI3NDQ1NzNkOTQ4MDE2ODRlMjA3MjUwNzQwOWE0ODQ1MGM2ODlhOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWNoYW5nZS10
eXBlLW9uLWZvY3VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitCdWcgNDY5NTA6IEFz
c2VydGlvbiBmYWlsdXJlIGJ5IGNoYW5naW5nIHR5cGUgZnJvbSB0eXBlPW51bWJlciBpbiBmb2N1
cyBldmVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworUEFTUyBOb3QgY3Jh
c2hlZC4KK1BBU1MgbW91c2VEb3duQ291bnQgaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtbnVtYmVyLWNoYW5nZS10eXBlLW9uLWZvY3VzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlwZS1vbi1mb2N1cy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY1MTU3MzkwZGIyZmQ1YTI1YmYxNjEyMWMwOTRjMGZhOTBiOWE0YzEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1jaGFuZ2UtdHlw
ZS1vbi1mb2N1cy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorCis8aW5w
dXQgaWQ9bnVtYmVyIHR5cGU9bnVtYmVyIHZhbHVlPTA+CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdCdWcgNDY5NTA6IEFzc2VydGlvbiBmYWlsdXJl
IGJ5IGNoYW5naW5nIHR5cGUgZnJvbSB0eXBlPW51bWJlciBpbiBmb2N1cyBldmVudC4nKTsKKwor
dmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ251bWJlcicpOwordmFyIHNwaW5Y
ID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdpZHRoIC0gNjsKK3ZhciBtaWRkbGVY
ID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdpZHRoIC8gMgordmFyIG1pZGRsZVkg
PSBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5vZmZzZXRIZWlnaHQgLyA0OworCitmdW5jdGlvbiBj
aGFuZ2VUeXBlKGV2ZW50KSB7CisgICAgdGhpcy50eXBlID0gJ3RleHQnOworfQoraW5wdXQuYWRk
RXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjaGFuZ2VUeXBlLCBmYWxzZSk7CitpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgLy8gQ2xpY2sgdGhlIHNwaW4gYnV0dG9uLgorICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHNwaW5YLCBtaWRkbGVZKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsgLy8gVGhpcyBtYWRlIGFuIGFzc2VydGlvbiBmYWlsLgorICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKK30gZWxzZSB7CisgICAgZGVidWcoJ01hbnVhbCB0ZXN0aW5nOiBDbGljayB0aGUg
c3BpbiBidXR0b24sIGFuZCBzZWUgaWYgdGhlIGJyb3dzZXIgY3Jhc2hlcyBvciBub3QuJyk7Cit9
Cit0ZXN0UGFzc2VkKCdOb3QgY3Jhc2hlZC4nKTsKKworLy8gQ2xpY2sgdGhlIGlucHV0IGVsZW1l
bnQuIFRoZSBldmVudCBzaG91bGQgbm90IGJlIGNhcHR1cmVkIGJ5IHRoZSBzcGluIGJ1dHRvbi4K
K2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICB2YXIgbW91c2VEb3duQ291bnQgPSAwOwor
ICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIG1vdXNlRG93bkNvdW50Kys7CisgICAgfSwgZmFsc2UpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKG1pZGRsZVgsIG1pZGRsZVkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
RG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBzaG91bGRCZSgnbW91c2VE
b3duQ291bnQnLCAnMScpOworfQorCisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1oaWRlLWNhbmNlbC1vbi1jYW5jZWwtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ZGU5NTFjOWFkMzhiYzdjNGU1YjY2YTY2NjdiMzQ3YzNm
ZWZkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlYXJjaC1o
aWRlLWNhbmNlbC1vbi1jYW5jZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0J1ZyA0
Njk1MDogU2VhcmNoIGZpZWxkIGNhbmNlbCBidXR0b24ga2VlcHMgZXZlbnQgY2FwdHVyaW5nIGlm
IHRoZSB2YWx1ZSBpcyBjbGVhcmVkIGluIGEgZm9jdXMgZXZlbnQuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCisKK1BBU1MgbW91c2VEb3duQ291bnQgaXMgMgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWFyY2gtaGlkZS1jYW5jZWwtb24tY2FuY2VsLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmI3Y2JiOWI2NjYzOTc0ZDFiMWQyNDQyMGRlNWMxZjM2MjgxNTA1NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VhcmNoLWhpZGUtY2FuY2VsLW9u
LWNhbmNlbC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorCis8aW5wdXQg
aWQ9c2VhcmNoIHR5cGU9c2VhcmNoIHZhbHVlPXF1ZXJ5PgorCis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignQnVnIDQ2OTUwOiBTZWFyY2ggZmllbGQgY2Fu
Y2VsIGJ1dHRvbiBrZWVwcyBldmVudCBjYXB0dXJpbmcgaWYgdGhlIHZhbHVlIGlzIGNsZWFyZWQg
aW4gYSBmb2N1cyBldmVudC4nKTsKKwordmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3NlYXJjaCcpOwordmFyIGNhbmNlbFggPSBpbnB1dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zm
c2V0V2lkdGggLSA2OwordmFyIG1pZGRsZVggPSBpbnB1dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zm
c2V0V2lkdGggLyAyCit2YXIgbWlkZGxlWSA9IGlucHV0Lm9mZnNldFRvcCArIGlucHV0Lm9mZnNl
dEhlaWdodCAvIDI7Cit2YXIgbW91c2VEb3duQ291bnQgPSAwOworaW5wdXQuYWRkRXZlbnRMaXN0
ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBtb3VzZURvd25Db3VudCsr
OworfSwgZmFsc2UpOworCitmdW5jdGlvbiBjbGVhclZhbHVlKGV2ZW50KSB7CisgICAgdGhpcy52
YWx1ZSA9ICcnOworfQoraW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjbGVhclZhbHVl
LCBmYWxzZSk7CisvLyBDbGljayB0aGUgY2FuY2VsIGJ1dHRvbi4KK2V2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKGNhbmNlbFgsIG1pZGRsZVkpOworZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CitldmVu
dFNlbmRlci5tb3VzZVVwKCk7CisvLyBDbGljayB0aGUgaW5wdXQgZWxlbWVudC4gVGhlIGV2ZW50
IHNob3VsZCBub3QgYmUgY2FwdHVyZWQgYnkgdGhlIGNhbmNlbCBidXR0b24uCitldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyhtaWRkbGVYLCBtaWRkbGVZKTsKK2V2ZW50U2VuZGVyLm1vdXNlRG93bigp
OworZXZlbnRTZW5kZXIubW91c2VVcCgpOworCitzaG91bGRCZSgnbW91c2VEb3duQ291bnQnLCAn
MicpOworaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjbGVhclZhbHVlLCBmYWxz
ZSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZGJhMjFmYzM5NDc3MWJhZTkyOTVmMjNl
NGIzNTQxMDhlNGIyMTdjLi4wY2NmYjc3OWFkMjgwYWQzZDUwN2JiNWFhOTE2NGVkZmNkZDc5NTJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTEtMDEtMjQgIEtlbnQgVGFtdXJhICA8
dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNvbWUgYnVncyBvZiBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBhbmQgc3BpbiBi
dXR0b24gYWJvdXQgc3RhdGUgY2hhbmdlIGluCisgICAgICAgIGFuIGV2ZW50IGhhbmRsZXIuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk1MAorCisg
ICAgICAgIEZpeCB0aGUgZm9sbG93aW5nIHByb2JsZW1zOgorICAgICAgICAgKiBUeXBlPXNlYXJj
aCBmaWVsZCBkaWRuJ3QgcmVsZWFzZSBldmVudCBjYXB0dXJpbmcKKyAgICAgICAgICogQXNzZXJ0
aW9uIGZhaWx1cmUgd2hlbiBhbiBpbnB1dCBmaWVsZCB3aXRoIHNwaW4gYnV0dG9ucyB3YXMgY2hh
bmdlZAorICAgICAgICAgICB0byBhbm90aGVyIHR5cGUgb24gZm9jdXMgZXZlbnQuCisgICAgICAg
ICAqIEEgaW5wdXQgZmllbGQgd2l0aCBzcGluIGJ1dHRvbiBkaWRuJ3QgcmVsZWFzZSBldmVudCBj
YXB0dXJpbmcgd2hlbiBpdAorICAgICAgICAgICB3YXMgY2hhbmdlZCB0byBhbm90aGVyIHR5cGUg
b24gZm9jdXMgZXZlbnQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvaW5wdXQtbnVtYmVy
LWNoYW5nZS10eXBlLW9uLWZvY3VzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvc2Vh
cmNoLWhpZGUtY2FuY2VsLW9uLWNhbmNlbC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4
dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaEZpZWxk
Q2FuY2VsQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICAtIE1h
a2UgdGhlIHZhcmlhYmxlICdpbnB1dCcgUmVmUHRyLiAgSXQgbWFrZXMgdGhlIGNvZGUgc2ltcGxl
ci4KKyAgICAgICAgIC0gUmVtb3ZlIHZpc2liaWxpdHkgY2hlY2sgb24gbW91c2V1cCBldmVudC4g
V2Ugc2hvdWxkIHJlbGVhc2UgY2FwdHVyaW5nCisgICAgICAgICAgIGFueXdheSBiZWNhdXNlIHRo
ZSBjYW5jZWwgYnV0dG9uIG1heSBiZSBpbnZpc2libGUgaWYgSmF2YVNjcmlwdCBjb2RlCisgICAg
ICAgICAgIGNhbGxlZCBieSB0aGUgZm9jdXMgZXZlbnQgcmVtb3ZlcyB0aGUgaW5wdXQgdmFsdWUu
CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAg
IC0gUmVsZWFzZSBjYXB0dXJpbmcgb24gZGV0YWNoIGJlY2F1c2UgaXQgaXMgcG9zc2libGUgdGhh
dCBhIHNwaW4gYnV0dG9uCisgICAgICAgICAgIG5vZGUgaXMgZGV0YWNoZWQgd2hpbGUgaXQgaXMg
Y2FwdHVyaW5nIGV2ZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgICBUYWtlIGEgcmVmZXJlbmNlIHRvIHRoaXMg
YW5kIGNoZWNrIHJlbmRlcmVyKCkgYWZ0ZXIgc29tZSBmdW5jdGlvbnMgd2hpY2gKKyAgICAgICAg
ICBtYXkgcnVuIEphdmFTY3JpcHQgY29kZS4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgICBNYWtl
IHRoZSB2YXJpYWJsZSAnaW5wdXQnIFJlZlB0ciB0byBhbGlnbiBvdGhlciBmdW5jdGlvbnMgaW4g
dGhpcyBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1l
bnQ6OnNldFJlY29nbml0aW9uUmVzdWx0KTogZGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1Rl
eHRDb250cm9sSW5uZXJFbGVtZW50cy5oOiBEZWNsYXJlIFNwaW5CdXR0b25FbGVtZW50OjpkZXRh
Y2goKS4KKwogMjAxMC0wMS0yNCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCA3YjFiMzZm
MTMzYmQ3MmM3YTY3YTNiZjQ3MDk5MzYyZThhYzIyMmRjLi5jNWI2MGYxMWFhOWFlZDAwYzA4ODBj
NGRiMjc0NTZhZGJlY2NmMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQg
U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpkZXRhY2goKQogdm9pZCBTZWFyY2hGaWVs
ZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQog
ewogICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIHZpc2libGUsIG9uIG1vdXNldXAsIGNsZWFyIHRo
ZSB2YWx1ZSwgYW5kIHNldCBzZWxlY3Rpb24KLSAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSk7Cisg
ICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSkpOwogICAgIGlmIChldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkgJiYg
c3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikg
ewogICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT52aXNpYmxlVG9IaXRUZXN0
aW5nKCkpIHsKICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFt
ZSgpKSB7CkBAIC0yMzMsMTMgKzIzMywxMiBAQCB2b2lkIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9u
RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgIGV2ZW50
LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgIH0KICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0
aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7Ci0g
ICAgICAgIGlmIChtX2NhcHR1cmluZyAmJiByZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPnZpc2li
bGVUb0hpdFRlc3RpbmcoKSkgeworICAgICAgICBpZiAobV9jYXB0dXJpbmcpIHsKICAgICAgICAg
ICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKSB7CiAgICAgICAgICAg
ICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUo
MCk7CiAgICAgICAgICAgICAgICAgbV9jYXB0dXJpbmcgPSBmYWxzZTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGlmIChob3ZlcmVkKCkpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SFRN
TElucHV0RWxlbWVudD4gcHJvdGVjdG9yKGlucHV0KTsKICAgICAgICAgICAgICAgICBTdHJpbmcg
b2xkVmFsdWUgPSBpbnB1dC0+dmFsdWUoKTsKICAgICAgICAgICAgICAgICBpbnB1dC0+c2V0VmFs
dWUoIiIpOwogICAgICAgICAgICAgICAgIGlmICghb2xkVmFsdWUuaXNFbXB0eSgpKSB7CkBAIC0y
NzIsNiArMjcxLDE4IEBAIFBhc3NSZWZQdHI8U3BpbkJ1dHRvbkVsZW1lbnQ+IFNwaW5CdXR0b25F
bGVtZW50OjpjcmVhdGUoSFRNTEVsZW1lbnQqIHNoYWRvd1BhcmVuCiAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTcGluQnV0dG9uRWxlbWVudChzaGFkb3dQYXJlbnQpKTsKIH0KIAordm9pZCBTcGlu
QnV0dG9uRWxlbWVudDo6ZGV0YWNoKCkKK3sKKyAgICBzdG9wUmVwZWF0aW5nVGltZXIoKTsKKyAg
ICBpZiAobV9jYXB0dXJpbmcpIHsKKyAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50
KCktPmZyYW1lKCkpIHsKKyAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2V0Q2Fw
dHVyaW5nTW91c2VFdmVudHNOb2RlKDApOworICAgICAgICAgICAgbV9jYXB0dXJpbmcgPSBmYWxz
ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBUZXh0Q29udHJvbElubmVyRWxlbWVudDo6ZGV0YWNo
KCk7Cit9CisKIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQqIGV2ZW50KQogewogICAgIGlmICghZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7CkBAIC0yODcs
NyArMjk4LDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCogZXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBIVE1MSW5wdXRFbGVt
ZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rv
ck5vZGUoKSk7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRpY19jYXN0
PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSkpOwogICAgIGlmIChpbnB1
dC0+ZGlzYWJsZWQoKSB8fCBpbnB1dC0+aXNSZWFkT25seUZvcm1Db250cm9sKCkpIHsKICAgICAg
ICAgaWYgKCFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKICAgICAgICAgICAgIEhUTUxEaXZFbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKQEAgLTI5OCwxMiArMzA5LDE4IEBAIHZv
aWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQog
ICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJveC0+YWJzb2x1dGVUb0xvY2Fs
KG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpKTsKICAgICBpZiAo
bW91c2VFdmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBtb3Vz
ZUV2ZW50LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGlmIChib3gtPmJvcmRl
ckJveFJlY3QoKS5jb250YWlucyhsb2NhbCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxOb2RlPiBw
cm90ZWN0b3IoaW5wdXQpOworICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMg
b2YgSFRNTElucHV0RWxlbWVudCBtYXkgcnVuIEphdmFTY3JpcHQKKyAgICAgICAgICAgIC8vIGNv
ZGUgd2hpY2ggZGV0YWNoZXMgdGhpcyBzaGFkb3cgbm9kZS4gV2UgbmVlZCB0byB0YWtlIGEgcmVm
ZXJlbmNlCisgICAgICAgICAgICAvLyBhbmQgY2hlY2sgcmVuZGVyZXIoKSBhZnRlciBzdWNoIGZ1
bmN0aW9uIGNhbGxzLgorICAgICAgICAgICAgUmVmUHRyPE5vZGU+IHByb3RlY3Rvcih0aGlzKTsK
ICAgICAgICAgICAgIGlucHV0LT5mb2N1cygpOwogICAgICAgICAgICAgaW5wdXQtPnNlbGVjdCgp
OwotICAgICAgICAgICAgaW5wdXQtPnN0ZXBVcEZyb21SZW5kZXJlcihtX3VwRG93blN0YXRlID09
IFVwID8gMSA6IC0xKTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlcigpKSB7CisgICAgICAgICAg
ICAgICAgaW5wdXQtPnN0ZXBVcEZyb21SZW5kZXJlcihtX3VwRG93blN0YXRlID09IFVwID8gMSA6
IC0xKTsKKyAgICAgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkKKyAgICAgICAgICAgICAgICAg
ICAgc3RhcnRSZXBlYXRpbmdUaW1lcigpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgZXZl
bnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgICAgICAgICBzdGFydFJlcGVhdGluZ1RpbWVy
KCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1vdXNlRXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIG1vdXNlRXZlbnQtPmJ1dHRvbigpID09IExlZnRCdXR0
b24pCiAgICAgICAgIHN0b3BSZXBlYXRpbmdUaW1lcigpOwpAQCAtNDA0LDggKzQyMSwxMiBAQCB2
b2lkIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50KiBldmVudCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIFRoZSBjYWxsIHRv
IGZvY3VzKCkgYmVsb3cgZGlzcGF0Y2hlcyBhIGZvY3VzIGV2ZW50LCBhbmQgYW4gZXZlbnQgaGFu
ZGxlciBpbiB0aGUgcGFnZSBtaWdodAorICAgIC8vIHJlbW92ZSB0aGUgaW5wdXQgZWxlbWVudCBm
cm9tIERPTS4gVG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgdmFsaWQgdW50aWwgd2UgZmluaXNoIG91
ciB3b3JrCisgICAgLy8gaGVyZSwgd2UgdGFrZSBhIHRlbXBvcmFyeSByZWZlcmVuY2UuCisgICAg
UmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1l
bnQqPihzaGFkb3dBbmNlc3Rvck5vZGUoKSkpOworCiAgICAgLy8gT24gbW91c2UgZG93biwgc2Vs
ZWN0IHRoZSB0ZXh0IGFuZCBzZXQgZm9jdXMuCi0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQg
PSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpOwog
ICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBl
dmVudC0+aXNNb3VzZUV2ZW50KCkgJiYgc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KS0+
YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5k
ZXJlcigpLT52aXNpYmxlVG9IaXRUZXN0aW5nKCkpIHsKICAgICAgICAgICAgIGlmIChGcmFtZSog
ZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKSB7CkBAIC00MTMsMTAgKzQzNCw2IEBAIHZvaWQg
SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
IGV2ZW50KQogICAgICAgICAgICAgICAgIG1fY2FwdHVyaW5nID0gdHJ1ZTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQotICAgICAgICAvLyBUaGUgY2FsbCB0byBmb2N1cygpIGJlbG93IGRpc3Bh
dGNoZXMgYSBmb2N1cyBldmVudCwgYW5kIGFuIGV2ZW50IGhhbmRsZXIgaW4gdGhlIHBhZ2UgbWln
aHQKLSAgICAgICAgLy8gcmVtb3ZlIHRoZSBpbnB1dCBlbGVtZW50IGZyb20gRE9NLiBUbyBtYWtl
IHN1cmUgaXQgcmVtYWlucyB2YWxpZCB1bnRpbCB3ZSBmaW5pc2ggb3VyIHdvcmsKLSAgICAgICAg
Ly8gaGVyZSwgd2UgdGFrZSBhIHRlbXBvcmFyeSByZWZlcmVuY2UuCi0gICAgICAgIFJlZlB0cjxI
VE1MSW5wdXRFbGVtZW50PiBob2xkUmVmKGlucHV0KTsKICAgICAgICAgUmVmUHRyPElucHV0Rmll
bGRTcGVlY2hCdXR0b25FbGVtZW50PiBob2xkUmVmQnV0dG9uKHRoaXMpOwogICAgICAgICBpbnB1
dC0+Zm9jdXMoKTsKICAgICAgICAgaW5wdXQtPnNlbGVjdCgpOwpAQCAtNDgzLDExICs1MDAsMTAg
QEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c2V0UmVjb2duaXRpb25SZXN1
bHQoaW50LCBjb25zdCBTcGVlY2hJbnB1dFIKIHsKICAgICBtX3Jlc3VsdHMgPSByZXN1bHRzOwog
Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oc2hhZG93QW5jZXN0b3JOb2RlKCkpOwogICAgIC8vIFRoZSBjYWxsIHRvIHNldFZhbHVl
KCkgYmVsb3cgZGlzcGF0Y2hlcyBhbiBldmVudCwgYW5kIGFuIGV2ZW50IGhhbmRsZXIgaW4gdGhl
IHBhZ2UgbWlnaHQKICAgICAvLyByZW1vdmUgdGhlIGlucHV0IGVsZW1lbnQgZnJvbSBET00uIFRv
IG1ha2Ugc3VyZSBpdCByZW1haW5zIHZhbGlkIHVudGlsIHdlIGZpbmlzaCBvdXIgd29yawogICAg
IC8vIGhlcmUsIHdlIHRha2UgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlLgotICAgIFJlZlB0cjxIVE1M
SW5wdXRFbGVtZW50PiBob2xkUmVmKGlucHV0KTsKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVu
dD4gaW5wdXQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9k
ZSgpKSk7CiAgICAgUmVmUHRyPElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50PiBob2xkUmVm
QnV0dG9uKHRoaXMpOwogICAgIGlucHV0LT5zZXRWYWx1ZShyZXN1bHRzLmlzRW1wdHkoKSA/ICIi
IDogcmVzdWx0c1swXS0+dXR0ZXJhbmNlKCkpOwogICAgIGlucHV0LT5kaXNwYXRjaEV2ZW50KFNw
ZWVjaElucHV0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0c3BlZWNoY2hhbmdlRXZl
bnQsIHJlc3VsdHMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuaAppbmRleCBiYjc3ZGNkNTRmZjNlZTUwOWFkNDE3NDA4MWExMDBl
OWZmZDkyOWZkLi5mMWI5ZTEzYjkzZWNlNzhjY2ZmNzU0M2JmZmYxYTNkZDMzYmQ0NTBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50
cy5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTcGluQnV0dG9u
RWxlbWVudChIVE1MRWxlbWVudCopOwogCisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwogICAg
IHZpcnR1YWwgYm9vbCBpc1NwaW5CdXR0b25FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIC8vIEZJWE1FOiBzaGFkb3dBbmNlc3Rvck5vZGUoKSBzaG91bGQgYmUgY29uc3QuCiAg
ICAgdmlydHVhbCBib29sIGlzRW5hYmxlZEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KGNvbnN0X2Nhc3Q8U3BpbkJ1dHRvbkVsZW1lbnQqPih0aGlzKS0+
c2hhZG93QW5jZXN0b3JOb2RlKCkpLT5pc0VuYWJsZWRGb3JtQ29udHJvbCgpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>