<?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>61986</bug_id>
          
          <creation_ts>2011-06-02 19:57:28 -0700</creation_ts>
          <short_desc>Verify cloning &lt;meter&gt; and &lt;progress&gt; work</short_desc>
          <delta_ts>2011-06-06 02:30:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>61983</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dominic Cooney">dominicc</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>morrita</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>414617</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-06-02 19:57:28 -0700</bug_when>
    <thetext>This is suspected of being broken by the same cause as bug 61909.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414673</commentid>
    <comment_count>1</comment_count>
      <attachid>95859</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-02 23:46:39 -0700</bug_when>
    <thetext>Created attachment 95859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414679</commentid>
    <comment_count>2</comment_count>
      <attachid>95859</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-02 23:55:34 -0700</bug_when>
    <thetext>Comment on attachment 95859
Patch

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

&gt; LayoutTests/ChangeLog:5
&gt; +        REGRESSION: Cloned text &lt;progress&gt; and &lt;meter&gt; doesn&apos;t work well

* It would be helpful if you write a specific revision made the regression.
* &quot;text &lt;progress&gt;&quot;?
* I know this bug makes various problems.  However, we had better explain what problems are solved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414684</commentid>
    <comment_count>3</comment_count>
      <attachid>95859</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-06-03 00:05:23 -0700</bug_when>
    <thetext>Comment on attachment 95859
Patch

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

&gt; Source/WebCore/html/shadow/ProgressShadowElement.h:81
&gt; +    virtual PassRefPtr&lt;Element&gt; cloneElementWithoutAttributesAndChildren() const;

Isn’t this protected in Element? Why publicize it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414686</commentid>
    <comment_count>4</comment_count>
      <attachid>95859</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-06-03 00:23:11 -0700</bug_when>
    <thetext>Comment on attachment 95859
Patch

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

&gt; LayoutTests/fast/dom/HTMLMeterElement/meter-clone.html:1
&gt; +&lt;!html&gt;

This test will need to be skipped on win DRT because it does not have layoutTestController.shadowRoot yet IIRC.

&gt; LayoutTests/fast/dom/HTMLMeterElement/meter-clone.html:16
&gt; +targetShadowRoot = layoutTestController.shadowRoot(target);

Shouldn’t these be guarded by if (window.layoutTestController)?

You could make a test that works in the browser by inspecting the cloned element’s actual size. (And also query the shadow root when in DRT.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414687</commentid>
    <comment_count>5</comment_count>
      <attachid>95859</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-03 00:25:31 -0700</bug_when>
    <thetext>Comment on attachment 95859
Patch

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

r- because of various feedbacks.

&gt; LayoutTests/fast/dom/HTMLProgressElement/progress-clone.html:1
&gt; +&lt;!html&gt;

!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414690</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-03 00:33:23 -0700</bug_when>
    <thetext>I think a cloned &lt;meter&gt; can cause a crash because of m_value is initialized in createShadowSubtree().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414691</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-03 00:33:47 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think a cloned &lt;meter&gt; can cause a crash because of m_value is initialized in createShadowSubtree().

&lt;progress&gt; too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414693</commentid>
    <comment_count>8</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-06-03 00:34:24 -0700</bug_when>
    <thetext>*** Bug 61987 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414697</commentid>
    <comment_count>9</comment_count>
      <attachid>95864</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-03 00:44:42 -0700</bug_when>
    <thetext>Created attachment 95864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414700</commentid>
    <comment_count>10</comment_count>
      <attachid>95864</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-03 00:47:57 -0700</bug_when>
    <thetext>Comment on attachment 95864
Patch

Found this isn&apos;t ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414708</commentid>
    <comment_count>11</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-06-03 01:01:39 -0700</bug_when>
    <thetext>I don’t think m_value will cause a crash. As long as createShadowSubtree is called, m_value will be initialized. But it may be removed from the tree when the shadow is clobbered. So it will cause wonky behavior but I don’t think it will cause a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414712</commentid>
    <comment_count>12</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-03 01:08:25 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I don’t think m_value will cause a crash. As long as createShadowSubtree is called, m_value will be initialized. But it may be removed from the tree when the shadow is clobbered. So it will cause wonky behavior but I don’t think it will cause a crash.

Oh, you&apos;re right. m_value keeps to refere an incorrect node.
Fortunately m_value is RefPtr&lt;&gt;.  So it would not be a security issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414752</commentid>
    <comment_count>13</comment_count>
      <attachid>95881</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-03 03:06:13 -0700</bug_when>
    <thetext>Created attachment 95881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414754</commentid>
    <comment_count>14</comment_count>
      <attachid>95881</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-03 03:14:50 -0700</bug_when>
    <thetext>Comment on attachment 95881
Patch

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

&gt; LayoutTests/fast/dom/HTMLMeterElement/meter-clone.html:17
&gt; +
&gt; +targetShadowRoot = layoutTestController.shadowRoot(target);
&gt; +clonedShadowRoot = layoutTestController.shadowRoot(cloned);

Please show something if there is no layoutTestController.

&gt; LayoutTests/fast/dom/HTMLProgressElement/progress-clone.html:16
&gt; +targetShadowRoot = layoutTestController.shadowRoot(target);

ditto.

&gt; Source/WebCore/dom/ShadowRoot.cpp:136
&gt; +Element* ShadowRoot::getElementByIdSearchingUnindexed(const AtomicString&amp; id) const

Is it necessary for &lt;progress&gt; and &lt;meter&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414756</commentid>
    <comment_count>15</comment_count>
      <attachid>95882</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-03 03:16:13 -0700</bug_when>
    <thetext>Created attachment 95882
Added missed fix on test htmls</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414757</commentid>
    <comment_count>16</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-03 03:17:44 -0700</bug_when>
    <thetext>Kent-san, Dominic, thank you for taking a look!
I updated the patch.

(In reply to comment #2
&gt; (From update of attachment 95859 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95859&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:5
&gt; &gt; +        REGRESSION: Cloned text &lt;progress&gt; and &lt;meter&gt; doesn&apos;t work well
&gt; 
&gt; * It would be helpful if you write a specific revision made the regression.
I added suspicious revisions for this regression.

&gt; * &quot;text &lt;progress&gt;&quot;?
Oops. Removed &quot;text&quot;.

&gt; * I know this bug makes various problems.  However, we had better explain what problems are solved.
Clarified the fix in detail.


(In reply to comment #3)
&gt; (From update of attachment 95859 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95859&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/shadow/ProgressShadowElement.h:81
&gt; &gt; +    virtual PassRefPtr&lt;Element&gt; cloneElementWithoutAttributesAndChildren() const;
&gt; 
&gt; Isn’t this protected in Element? Why publicize it?
Moved them to private.


(In reply to comment #5)
&gt; (From update of attachment 95859 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95859&amp;action=review
&gt; 
&gt; r- because of various feedbacks.
&gt; 
&gt; &gt; LayoutTests/fast/dom/HTMLProgressElement/progress-clone.html:1
&gt; &gt; +&lt;!html&gt;
&gt; 
&gt; !!!
Oopps. Removed...

(In reply to comment #6)
&gt; I think a cloned &lt;meter&gt; can cause a crash because of m_value is initialized in createShadowSubtree().
I removed m_value fields and replaced it with on-demand lookups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415685</commentid>
    <comment_count>17</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-05 20:43:13 -0700</bug_when>
    <thetext>Ping?

(In reply to comment #16)
&gt; Kent-san, Dominic, thank you for taking a look!
&gt; I updated the patch.
&gt; 
&gt; (In reply to comment #2
&gt; &gt; (From update of attachment 95859 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95859&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/ChangeLog:5
&gt; &gt; &gt; +        REGRESSION: Cloned text &lt;progress&gt; and &lt;meter&gt; doesn&apos;t work well
&gt; &gt; 
&gt; &gt; * It would be helpful if you write a specific revision made the regression.
&gt; I added suspicious revisions for this regression.
&gt; 
&gt; &gt; * &quot;text &lt;progress&gt;&quot;?
&gt; Oops. Removed &quot;text&quot;.
&gt; 
&gt; &gt; * I know this bug makes various problems.  However, we had better explain what problems are solved.
&gt; Clarified the fix in detail.
&gt; 
&gt; 
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 95859 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95859&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/shadow/ProgressShadowElement.h:81
&gt; &gt; &gt; +    virtual PassRefPtr&lt;Element&gt; cloneElementWithoutAttributesAndChildren() const;
&gt; &gt; 
&gt; &gt; Isn’t this protected in Element? Why publicize it?
&gt; Moved them to private.
&gt; 
&gt; 
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 95859 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95859&amp;action=review
&gt; &gt; 
&gt; &gt; r- because of various feedbacks.
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/fast/dom/HTMLProgressElement/progress-clone.html:1
&gt; &gt; &gt; +&lt;!html&gt;
&gt; &gt; 
&gt; &gt; !!!
&gt; Oopps. Removed...
&gt; 
&gt; (In reply to comment #6)
&gt; &gt; I think a cloned &lt;meter&gt; can cause a crash because of m_value is initialized in createShadowSubtree().
&gt; I removed m_value fields and replaced it with on-demand lookups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415687</commentid>
    <comment_count>18</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-05 20:49:21 -0700</bug_when>
    <thetext>
(In reply to comment #17)
&gt; Ping?

Did you read Comment #14 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415688</commentid>
    <comment_count>19</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-05 20:55:56 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; Ping?
&gt; 
&gt; Did you read Comment #14 ?
Oops, no. I&apos;ll take care of them. Thank you for pointing that out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415689</commentid>
    <comment_count>20</comment_count>
      <attachid>95882</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-05 20:57:56 -0700</bug_when>
    <thetext>Comment on attachment 95882
Added missed fix on test htmls

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

&gt; Source/WebCore/html/shadow/MeterShadowElement.h:61
&gt; +    virtual PassRefPtr&lt;Element&gt; cloneElementWithoutAttributesAndChildren() const;

We don&apos;t need such change any more.

&gt; Source/WebCore/html/shadow/MeterShadowElement.h:88
&gt; +    virtual PassRefPtr&lt;Element&gt; cloneElementWithoutAttributesAndChildren() const;

ditto.

&gt; Source/WebCore/html/shadow/ProgressShadowElement.h:62
&gt; +    virtual PassRefPtr&lt;Element&gt; cloneElementWithoutAttributesAndChildren() const;

ditto.

&gt; Source/WebCore/html/shadow/ProgressShadowElement.h:87
&gt; +    virtual PassRefPtr&lt;Element&gt; cloneElementWithoutAttributesAndChildren() const;

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415691</commentid>
    <comment_count>21</comment_count>
      <attachid>96062</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-05 21:13:38 -0700</bug_when>
    <thetext>Created attachment 96062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415692</commentid>
    <comment_count>22</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-05 21:18:50 -0700</bug_when>
    <thetext>So I updated the patch to address following issues...
(In reply to comment #14)
&gt; (From update of attachment 95881 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95881&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/dom/HTMLMeterElement/meter-clone.html:17
&gt; &gt; +
&gt; &gt; +targetShadowRoot = layoutTestController.shadowRoot(target);
&gt; &gt; +clonedShadowRoot = layoutTestController.shadowRoot(cloned);
&gt; 
&gt; Please show something if there is no layoutTestController.
Done.

&gt; 
&gt; &gt; LayoutTests/fast/dom/HTMLProgressElement/progress-clone.html:16
&gt; &gt; +targetShadowRoot = layoutTestController.shadowRoot(target);
&gt; 
&gt; ditto.
Fixed too.

&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRoot.cpp:136
&gt; &gt; +Element* ShadowRoot::getElementByIdSearchingUnindexed(const AtomicString&amp; id) const
&gt; 
&gt; Is it necessary for &lt;progress&gt; and &lt;meter&gt;?
Yes. And I guess we need this also for &lt;details&gt; and &lt;summary&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415693</commentid>
    <comment_count>23</comment_count>
      <attachid>95881</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-05 21:23:13 -0700</bug_when>
    <thetext>Comment on attachment 95881
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/ShadowRoot.cpp:136
&gt;&gt;&gt; +Element* ShadowRoot::getElementByIdSearchingUnindexed(const AtomicString&amp; id) const
&gt;&gt; 
&gt;&gt; Is it necessary for &lt;progress&gt; and &lt;meter&gt;?
&gt; 
&gt; Yes. And I guess we need this also for &lt;details&gt; and &lt;summary&gt;.

Could you explain why is is possible that an element is not indexed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415694</commentid>
    <comment_count>24</comment_count>
      <attachid>96062</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-05 21:23:44 -0700</bug_when>
    <thetext>Comment on attachment 96062
Patch

r- because of Comment #20</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415697</commentid>
    <comment_count>25</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-05 21:36:36 -0700</bug_when>
    <thetext>Hmm. I need to run these tests against Tot....

Anyway,
&gt; Could you explain why is is possible that an element is not indexed?
That&apos;s because HTMLConsructionSite calls setAttributeMap() before the element is attached to the tree,
But setAttributeMap() triggers parseMappedAttribute(), which requires the shadow node lookup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415702</commentid>
    <comment_count>26</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-05 22:01:09 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Hmm. I need to run these tests against Tot....
&gt; 
&gt; Anyway,
&gt; &gt; Could you explain why is is possible that an element is not indexed?
&gt; That&apos;s because HTMLConsructionSite calls setAttributeMap() before the element is attached to the tree,
&gt; But setAttributeMap() triggers parseMappedAttribute(), which requires the shadow node lookup.

Oh, I understand.  Element::insertedIntoDocument() for shadow nodes is not called until the host element is inserted into the document...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415719</commentid>
    <comment_count>27</comment_count>
      <attachid>96067</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-06 00:25:02 -0700</bug_when>
    <thetext>Created attachment 96067
Changed to have test cases only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415747</commentid>
    <comment_count>28</comment_count>
      <attachid>96067</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-06 02:02:53 -0700</bug_when>
    <thetext>Comment on attachment 96067
Changed to have test cases only.

Yeah, this is enough for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415753</commentid>
    <comment_count>29</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-06-06 02:30:10 -0700</bug_when>
    <thetext>Committed r88149: &lt;http://trac.webkit.org/changeset/88149&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95859</attachid>
            <date>2011-06-02 23:46:39 -0700</date>
            <delta_ts>2011-06-03 00:44:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61986-20110603154637.patch</filename>
            <type>text/plain</type>
            <size>9592</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc5OTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YWNmZDU5ZDcwYjc4MDYwOGViNGY4
OWVlYTgwZTc4NWM3MTVlZmJiLi41MGJmOWI3NGRkMzhiNDE5YjkyY2VjODkyOGRkMWM4ZDI4ODBj
MmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMDIgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUkVHUkVTU0lPTjogQ2xvbmVkIHRleHQgPHByb2dyZXNzPiBhbmQgPG1ldGVy
PiBkb2Vzbid0IHdvcmsgd2VsbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjE5ODYKKyAgICAgICAgCisgICAgICAgIENoZWNrZWQgcHNldWRvIGNsYXNz
cyBpZHMgd2hpY2ggYXJlIG9ubHkgYXZhaWxhYmxlIGZvciBjb3JyZWN0IHNoYWRvdyBlbGVtZW50
cy4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21l
dGVyLWNsb25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQvcHJvZ3Jlc3MtY2xvbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLmh0bWw6IEFkZGVkLgorCiAy
MDExLTA2LTAyICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWNsb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc4NzQ1ZmY0OTg3OGJhYTQwMWMyOGExYjY0NmI0NjEyN2QxM2FlZDIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVy
LWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1BBU1MgY2xvbmVkLnZhbHVlIGlz
IHRhcmdldC52YWx1ZQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChj
bG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQpIGlzIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRv
d1BzZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2xvbmVkU2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0
Q2hpbGQpIGlzIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdldFNoYWRv
d1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkKQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzEzMjlmZWUz
Njk2YjNlNGZjZjU1YTk4OTFhZmJlOTA4YTU2NTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sCkBAIC0wLDAg
KzEsMjcgQEAKKzwhaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxtZXRlciBpZD0idGFyZ2V0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiIHN0eWxl
PSItd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IiAvPgorPHNjcmlwdD4KK3RhcmdldCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKK2Nsb25lZCA9IHRhcmdldC5jbG9uZU5vZGUo
KTsKK2RvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGNsb25lZCwgdGFyZ2V0Lm5leHRTaWJsaW5n
KTsKKwordGFyZ2V0U2hhZG93Um9vdCA9IGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qo
dGFyZ2V0KTsKK2Nsb25lZFNoYWRvd1Jvb3QgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dS
b290KGNsb25lZCk7CisKK3Nob3VsZEJlKCJjbG9uZWQudmFsdWUiLCAidGFyZ2V0LnZhbHVlIik7
CitzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2xvbmVkU2hh
ZG93Um9vdC5maXJzdENoaWxkKSIsICJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9J
ZCh0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQpIik7CitzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2xvbmVkU2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0
Q2hpbGQpIiwgImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdldFNoYWRv
d1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkKSIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1jbG9uZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dy
ZXNzLWNsb25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODc0NWZmNDk4NzhiYWE0MDFjMjhh
MWI2NDZiNDYxMjdkMTNhZWQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw3IEBACitQQVNTIGNsb25lZC52YWx1ZSBpcyB0YXJnZXQudmFsdWUKK1BBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2xvbmVkU2hhZG93Um9vdC5maXJzdENoaWxk
KSBpcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZCh0YXJnZXRTaGFkb3dSb290
LmZpcnN0Q2hpbGQpCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNs
b25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkKSBpcyBsYXlvdXRUZXN0Q29udHJv
bGxlci5zaGFkb3dQc2V1ZG9JZCh0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGls
ZCkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dy
ZXNzLWNsb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50
L3Byb2dyZXNzLWNsb25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDYxMmY0NTg4MTlmZDM2NTY0MTY1NmIz
NTE0YTViOGY5ODc5OTAxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbApAQCAtMCwwICsxLDI3IEBA
Cis8IWh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8cHJv
Z3Jlc3MgaWQ9InRhcmdldCIgbWluPSIwIiBtYXg9IjEwMCIgdmFsdWU9IjUwIiBzdHlsZT0iLXdl
YmtpdC1hcHBlYXJhbmNlOiBub25lOyIgPjwvcHJvZ3Jlc3M+Cis8c2NyaXB0PgordGFyZ2V0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworY2xvbmVkID0gdGFyZ2V0LmNsb25l
Tm9kZSgpOworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoY2xvbmVkLCB0YXJnZXQubmV4dFNp
YmxpbmcpOworCit0YXJnZXRTaGFkb3dSb290ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93
Um9vdCh0YXJnZXQpOworY2xvbmVkU2hhZG93Um9vdCA9IGxheW91dFRlc3RDb250cm9sbGVyLnNo
YWRvd1Jvb3QoY2xvbmVkKTsKKworc2hvdWxkQmUoImNsb25lZC52YWx1ZSIsICJ0YXJnZXQudmFs
dWUiKTsKK3Nob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9u
ZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQpIiwgImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Bz
ZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkiKTsKK3Nob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQu
Zmlyc3RDaGlsZCkiLCAibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0
U2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYmE5OTM5ZjJlYmU2MmYwNjNmOTQxMjgyNzk5MjlkNzg5NjgyZjg1OC4uYjZmOWI3YTg5NDZk
MTNhZTMwOWY0Nzg0MTc5NjgyZjMyNzJhZTFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDExLTA2LTAyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT046IENs
b25lZCB0ZXh0IDxwcm9ncmVzcz4gYW5kIDxtZXRlcj4gZG9lc24ndCB3b3JrIHdlbGwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxOTg2CisKKyAgICAg
ICAgSW1wbGVtZW1lbnRlZCBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVu
KCkgZm9yIHNoYWRvd3MuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxNZXRlckVsZW1l
bnQvbWV0ZXItY2xvbmUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vSFRNTFByb2dyZXNz
RWxlbWVudC9wcm9ncmVzcy1jbG9uZS5odG1sCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZXRl
clNoYWRvd0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1ldGVyQmFyRWxlbWVudDo6Y2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3Jl
OjpNZXRlclZhbHVlRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGls
ZHJlbik6CisgICAgICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0JhckVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NWYWx1ZUVs
ZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4pOgorCiAyMDEx
LTA2LTAyICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBSeW9zdWtlIE5pd2EuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
dGVyU2hhZG93RWxlbWVudC5oCmluZGV4IGMzNmIwMWIyNDNkYjlkZjZmYTA3NWJjMWJiNmU0ZDVi
NjQyNzA2M2IuLjdhYWNlZjc0NWM5YzUxOWU2YmY3MTlhZTk5NWU0ZDUzOWVkOWZmZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCkBAIC01
Niw2ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1ldGVyQmFyRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+
IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdDsKIH07CiAK
IGlubGluZSBQYXNzUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gTWV0ZXJCYXJFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtNjMsNiArNjQsMTEgQEAgaW5saW5lIFBhc3NSZWZQ
dHI8TWV0ZXJCYXJFbGVtZW50PiBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXRlckJhckVsZW1lbnQoZG9jdW1lbnQp
KTsKIH0KIAoraW5saW5lIFBhc3NSZWZQdHI8RWxlbWVudD4gTWV0ZXJCYXJFbGVtZW50OjpjbG9u
ZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gY3JlYXRlKGRvY3VtZW50KCkpOworfQorCiAKIGNsYXNzIE1ldGVyVmFsdWVFbGVtZW50IDog
cHVibGljIE1ldGVyU2hhZG93RWxlbWVudCB7CiBwdWJsaWM6CkBAIC03Miw2ICs3OCw4IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVt
ZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIGNvbnN0OworCiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHZvaWQg
c2V0V2lkdGhQZXJjZW50YWdlKGRvdWJsZSk7CiB9OwpAQCAtODEsNiArODksMTEgQEAgaW5saW5l
IFBhc3NSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1ldGVyVmFsdWVFbGVt
ZW50KGRvY3VtZW50KSk7CiB9CiAKK2lubGluZSBQYXNzUmVmUHRyPEVsZW1lbnQ+IE1ldGVyVmFs
dWVFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50KCkpOworfQorCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQu
aAppbmRleCBlMTM1YzcxZGFhNDFmOWU2ZWYzYjM2NGVmOTE4OGEzMWNkNTE3YWFmLi4xYTQ1Mzc1
YjRlY2YyOGEzMDZjY2I1MzMwMTAwNDU3ZTg5NjBkMjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaApAQCAtNTcsNiArNTcsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCopOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQ
c2V1ZG9JZCgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVs
ZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgY29uc3Q7CiB9OwogCiBpbmxpbmUg
UGFzc1JlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTY0LDYgKzY1LDEwIEBAIGlubGluZSBQYXNzUmVmUHRy
PFByb2dyZXNzQmFyRWxlbWVudD4gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9ncmVzc0JhckVsZW1lbnQoZG9jdW1l
bnQpKTsKIH0KIAoraW5saW5lIFBhc3NSZWZQdHI8RWxlbWVudD4gUHJvZ3Jlc3NCYXJFbGVtZW50
OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gY3JlYXRlKGRvY3VtZW50KCkpOworfQogCiBjbGFzcyBQcm9ncmVzc1ZhbHVlRWxl
bWVudCA6IHB1YmxpYyBQcm9ncmVzc1NoYWRvd0VsZW1lbnQgewogcHVibGljOgpAQCAtNzMsNiAr
NzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+
IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdDsKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7
CiAgICAgdm9pZCBzZXRXaWR0aFBlcmNlbnRhZ2UoZG91YmxlKTsKIH07CkBAIC04Miw2ICs4OCwx
MSBAQCBpbmxpbmUgUGFzc1JlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gUHJvZ3Jlc3NWYWx1
ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJv
Z3Jlc3NWYWx1ZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAoraW5saW5lIFBhc3NSZWZQdHI8RWxl
bWVudD4gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVz
QW5kQ2hpbGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnQoKSk7Cit9
CisKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95864</attachid>
            <date>2011-06-03 00:44:42 -0700</date>
            <delta_ts>2011-06-03 00:47:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61986-20110603164440.patch</filename>
            <type>text/plain</type>
            <size>10166</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc5OTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YWNmZDU5ZDcwYjc4MDYwOGViNGY4
OWVlYTgwZTc4NWM3MTVlZmJiLi5mNzAyNDYzZDA3NjkyMmI1ZDg3NDZjYWZlMjE0NjcyNDgwMzlh
NGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMDIgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUkVHUkVTU0lPTjogQ2xvbmVkIDxwcm9ncmVzcz4gYW5kIDxtZXRlcj4gZG9u
J3Qgd29yayB3ZWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk4NgorICAgICAgICAKKyAgICAgICAgQ2hlY2tlZCBwc2V1ZG8gY2xhc3NzIGlkcyB3
aGljaCBhcmUgb25seSBhdmFpbGFibGUgZm9yIGNvcnJlY3Qgc2hhZG93IGVsZW1lbnRzLgorCisg
ICAgICAgICogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xv
bmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9w
cm9ncmVzcy1jbG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYt
MDIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzg3NDVmZjQ5ODc4YmFhNDAxYzI4YTFiNjQ2YjQ2MTI3ZDEzYWVkMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorUEFTUyBjbG9uZWQudmFsdWUgaXMgdGFyZ2V0
LnZhbHVlCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNo
YWRvd1Jvb3QuZmlyc3RDaGlsZCkgaXMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRv
SWQodGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkg
aXMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5m
aXJzdENoaWxkLmZpcnN0Q2hpbGQpCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1l
dGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1l
dGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjMTMyOWZlZTM2OTZiM2U0
ZmNmNTVhOTg5MWFmYmU5MDhhNTY1NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWNsb25lLmh0bWwKQEAgLTAsMCArMSwyNyBA
QAorPCFodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPG1l
dGVyIGlkPSJ0YXJnZXQiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCIgc3R5bGU9Ii13ZWJr
aXQtYXBwZWFyYW5jZTogbm9uZTsiIC8+Cis8c2NyaXB0PgordGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOworY2xvbmVkID0gdGFyZ2V0LmNsb25lTm9kZSgpOworZG9j
dW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoY2xvbmVkLCB0YXJnZXQubmV4dFNpYmxpbmcpOworCit0
YXJnZXRTaGFkb3dSb290ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdCh0YXJnZXQp
OworY2xvbmVkU2hhZG93Um9vdCA9IGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3QoY2xv
bmVkKTsKKworc2hvdWxkQmUoImNsb25lZC52YWx1ZSIsICJ0YXJnZXQudmFsdWUiKTsKK3Nob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290
LmZpcnN0Q2hpbGQpIiwgImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdl
dFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkiKTsKK3Nob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCki
LCAibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5m
aXJzdENoaWxkLmZpcnN0Q2hpbGQpIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xv
bmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NzQ1ZmY0OTg3OGJhYTQwMWMyOGExYjY0NmI0
NjEyN2QxM2FlZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
UHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcg
QEAKK1BBU1MgY2xvbmVkLnZhbHVlIGlzIHRhcmdldC52YWx1ZQorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQpIGlzIGxh
eW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RD
aGlsZCkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2xvbmVkU2hh
ZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpIGlzIGxheW91dFRlc3RDb250cm9sbGVyLnNo
YWRvd1BzZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkKQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xv
bmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jl
c3MtY2xvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjEyZjQ1ODgxOWZkMzY1NjQxNjU2YjM1MTRhNWI4
Zjk4Nzk5MDFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFBy
b2dyZXNzRWxlbWVudC9wcm9ncmVzcy1jbG9uZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzwhaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxwcm9ncmVzcyBp
ZD0idGFyZ2V0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiIHN0eWxlPSItd2Via2l0LWFw
cGVhcmFuY2U6IG5vbmU7IiA+PC9wcm9ncmVzcz4KKzxzY3JpcHQ+Cit0YXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CitjbG9uZWQgPSB0YXJnZXQuY2xvbmVOb2RlKCk7
Citkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShjbG9uZWQsIHRhcmdldC5uZXh0U2libGluZyk7
CisKK3RhcmdldFNoYWRvd1Jvb3QgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHRh
cmdldCk7CitjbG9uZWRTaGFkb3dSb290ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9v
dChjbG9uZWQpOworCitzaG91bGRCZSgiY2xvbmVkLnZhbHVlIiwgInRhcmdldC52YWx1ZSIpOwor
c2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNoYWRv
d1Jvb3QuZmlyc3RDaGlsZCkiLCAibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQo
dGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkKSIpOworc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENo
aWxkKSIsICJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZCh0YXJnZXRTaGFkb3dS
b290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYTk5
MzlmMmViZTYyZjA2M2Y5NDEyODI3OTkyOWQ3ODk2ODJmODU4Li5mODQ0YWZjZmNjMDJkOGRlMDBm
M2NlZDg0YjJlNGQ0MWRiZWViYzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEt
MDYtMDIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTjogQ2xvbmVkIDxw
cm9ncmVzcz4gYW5kIDxtZXRlcj4gZG9uJ3Qgd29yayB3ZWxsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTk4NgorCisgICAgICAgIFNoYWRvdyB0cmVl
IGZvciA8cHJvZ3Jlc3M+IGFuZCA8bWV0ZXI+IGFyZSBjbG9uZWQgdXNpbmcKKyAgICAgICAgRG9j
dW1lbnQ6OmNyZWF0ZUVsZW1lbnQoKSB3aGljaCBjcmVhdGVzIHBsYWluIDxkaXY+IGVsZW1lbnRz
CisgICAgICAgIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIHNoYWRvdyBlbGVlbnRzLiAgVGhpcyBj
aGFnbmUgaW1wbGVtZW1lbnRlZAorICAgICAgICBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRl
c0FuZENoaWxkcmVuKCkgZm9yIHNoYWRvd3MgdG8gcHJldmVudAorICAgICAgICB0aGUgY3JlYXRp
b24gb2YgcGxhaW4gPGRpdj5zLgorCisgICAgICAgIE5vdGUgdGhhdCA8cHJvZ3Jlc3M+IHNoYWRv
dyB3YXMgaW50cm9kdWNlZCByNzcyMTEsIGFuZCA8bWV0ZXI+CisgICAgICAgIHNoYWRvdyB3YXMg
aW50cm9kdWNlZCBhdCByODI4OTkuCisgICAgICAgIAorICAgICAgICBUZXN0czogZmFzdC9kb20v
SFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLmh0bWwKKworICAgICAgICAqIGh0
bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJC
YXJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1ldGVyVmFsdWVFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0
cmlidXRlc0FuZENoaWxkcmVuKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRv
d0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzQmFyRWxlbWVudDo6Y2xvbmVF
bGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9ncmVzc1ZhbHVlRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGls
ZHJlbik6CisKIDIwMTEtMDYtMDIgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKaW5kZXggYzM2YjAxYjI0M2RiOWRmNmZh
MDc1YmMxYmI2ZTRkNWI2NDI3MDYzYi4uNThkNmQ5ZDFhYTlmZGE1YWVmZWMxNjk1NjJiODUyZGIw
YjJiYzdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFk
b3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dF
bGVtZW50LmgKQEAgLTU2LDYgKzU2LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWV0ZXJCYXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbigpIGNvbnN0OwogfTsKIAogaW5saW5lIFBhc3NSZWZQdHI8TWV0ZXJCYXJFbGVt
ZW50PiBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCkBAIC02Myw2
ICs2NiwxMSBAQCBpbmxpbmUgUGFzc1JlZlB0cjxNZXRlckJhckVsZW1lbnQ+IE1ldGVyQmFyRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IE1ldGVyQmFyRWxlbWVudChkb2N1bWVudCkpOwogfQogCitpbmxpbmUgUGFzc1JlZlB0cjxFbGVt
ZW50PiBNZXRlckJhckVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnQoKSk7Cit9CisKIAog
Y2xhc3MgTWV0ZXJWYWx1ZUVsZW1lbnQgOiBwdWJsaWMgTWV0ZXJTaGFkb3dFbGVtZW50IHsKIHB1
YmxpYzoKQEAgLTcyLDggKzgwLDEyIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKwogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1ldGVyVmFsdWVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKICAgICB2b2lk
IHNldFdpZHRoUGVyY2VudGFnZShkb3VibGUpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVu
KCkgY29uc3Q7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxNZXRlclZhbHVlRWxlbWVudD4gTWV0
ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCkBAIC04MSw2ICs5Mywx
MSBAQCBpbmxpbmUgUGFzc1JlZlB0cjxNZXRlclZhbHVlRWxlbWVudD4gTWV0ZXJWYWx1ZUVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbgogICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWV0
ZXJWYWx1ZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAoraW5saW5lIFBhc3NSZWZQdHI8RWxlbWVu
dD4gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnQoKSk7Cit9CisKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVz
c1NoYWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hh
ZG93RWxlbWVudC5oCmluZGV4IGUxMzVjNzFkYWE0MWY5ZTZlZjNiMzY0ZWY5MTg4YTMxY2Q1MTdh
YWYuLjkwNzI2ZjJlNmU5YTVmOWY2MTBjYTAxOTEyMWJkMDhhMmNhMDAwYzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5oCkBAIC01
Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNzQmFy
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4o
KSBjb25zdDsKIH07CiAKIGlubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gUHJv
Z3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtNjQsNiArNjcs
MTAgQEAgaW5saW5lIFBhc3NSZWZQdHI8UHJvZ3Jlc3NCYXJFbGVtZW50PiBQcm9ncmVzc0JhckVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW0KICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBy
b2dyZXNzQmFyRWxlbWVudChkb2N1bWVudCkpOwogfQogCitpbmxpbmUgUGFzc1JlZlB0cjxFbGVt
ZW50PiBQcm9ncmVzc0JhckVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiBjcmVhdGUoZG9jdW1lbnQoKSk7Cit9CiAK
IGNsYXNzIFByb2dyZXNzVmFsdWVFbGVtZW50IDogcHVibGljIFByb2dyZXNzU2hhZG93RWxlbWVu
dCB7CiBwdWJsaWM6CkBAIC03NSw2ICs4Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgdm9pZCBz
ZXRXaWR0aFBlcmNlbnRhZ2UoZG91YmxlKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigp
IGNvbnN0OwogfTsKIAogaW5saW5lIFBhc3NSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IFBy
b2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtODIsNiAr
OTIsMTEgQEAgaW5saW5lIFBhc3NSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IFByb2dyZXNz
VmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGQKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFByb2dyZXNzVmFsdWVFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKK2lubGluZSBQYXNzUmVmUHRy
PEVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50KCkp
OworfQorCiB9CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95881</attachid>
            <date>2011-06-03 03:06:13 -0700</date>
            <delta_ts>2011-06-05 21:23:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61986-20110603190611.patch</filename>
            <type>text/plain</type>
            <size>16845</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc5OTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YWNmZDU5ZDcwYjc4MDYwOGViNGY4
OWVlYTgwZTc4NWM3MTVlZmJiLi5mNzAyNDYzZDA3NjkyMmI1ZDg3NDZjYWZlMjE0NjcyNDgwMzlh
NGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMDIgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUkVHUkVTU0lPTjogQ2xvbmVkIDxwcm9ncmVzcz4gYW5kIDxtZXRlcj4gZG9u
J3Qgd29yayB3ZWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk4NgorICAgICAgICAKKyAgICAgICAgQ2hlY2tlZCBwc2V1ZG8gY2xhc3NzIGlkcyB3
aGljaCBhcmUgb25seSBhdmFpbGFibGUgZm9yIGNvcnJlY3Qgc2hhZG93IGVsZW1lbnRzLgorCisg
ICAgICAgICogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xv
bmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9w
cm9ncmVzcy1jbG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYt
MDIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTk4MTAyNGNmNzNhZjc4ZWIyZmQxYzk4MDA5ZWI4Njg5YzFjNzc0MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBjbG9uZWQudmFsdWUgaXMgdGFyZ2V0
LnZhbHVlCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNo
YWRvd1Jvb3QuZmlyc3RDaGlsZCkgaXMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRv
SWQodGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkg
aXMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5m
aXJzdENoaWxkLmZpcnN0Q2hpbGQpCitQQVNTIGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5m
aXJzdENoaWxkLnN0eWxlLndpZHRoIGlzICI3MCUiCitQQVNTIHRhcmdldFNoYWRvd1Jvb3QuZmly
c3RDaGlsZC5maXJzdENoaWxkLnN0eWxlLndpZHRoIGlzICI1MCUiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMxZWJjMjYwNjQ0ZTQzM2JmMGQ0MjAxMjAxZDA2MGUzZGE2MTA5MGIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWNsb25lLmh0
bWwKQEAgLTAsMCArMSwzMCBAQAorPCFodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPG1ldGVyIGlkPSJ0YXJnZXQiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVl
PSI1MCIgc3R5bGU9Ii13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsiIC8+Cis8c2NyaXB0PgordGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworY2xvbmVkID0gdGFyZ2V0
LmNsb25lTm9kZSgpOworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoY2xvbmVkLCB0YXJnZXQu
bmV4dFNpYmxpbmcpOworCit0YXJnZXRTaGFkb3dSb290ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2hhZG93Um9vdCh0YXJnZXQpOworY2xvbmVkU2hhZG93Um9vdCA9IGxheW91dFRlc3RDb250cm9s
bGVyLnNoYWRvd1Jvb3QoY2xvbmVkKTsKKworc2hvdWxkQmUoImNsb25lZC52YWx1ZSIsICJ0YXJn
ZXQudmFsdWUiKTsKK3Nob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9J
ZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQpIiwgImxheW91dFRlc3RDb250cm9sbGVyLnNo
YWRvd1BzZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkiKTsKK3Nob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0
Q2hpbGQuZmlyc3RDaGlsZCkiLCAibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQo
dGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpIik7CitjbG9uZWQudmFsdWUg
PSA3MDsKK3Nob3VsZEJlKCJjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5z
dHlsZS53aWR0aCIsICciNzAlIicpOworc2hvdWxkQmUoInRhcmdldFNoYWRvd1Jvb3QuZmlyc3RD
aGlsZC5maXJzdENoaWxkLnN0eWxlLndpZHRoIiwgJyI1MCUiJyk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNs
b25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1l
bnQvcHJvZ3Jlc3MtY2xvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ODEwMjRjZjczYWY3
OGViMmZkMWM5ODAwOWViODY4OWMxYzc3NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDkgQEAKK1BBU1MgY2xvbmVkLnZhbHVlIGlzIHRhcmdldC52YWx1ZQorUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZp
cnN0Q2hpbGQpIGlzIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdldFNo
YWRvd1Jvb3QuZmlyc3RDaGlsZCkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNl
dWRvSWQoY2xvbmVkU2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpIGlzIGxheW91dFRl
c3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5m
aXJzdENoaWxkKQorUEFTUyBjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5z
dHlsZS53aWR0aCBpcyAiNzAlIgorUEFTUyB0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmly
c3RDaGlsZC5zdHlsZS53aWR0aCBpcyAiNTAlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNzY0ZjE0NzFkYTcwZDFhNWNiOWQzNzZmNDlmOGQxMTJhNDdkZDA0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1j
bG9uZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxwcm9ncmVzcyBpZD0idGFyZ2V0IiBtaW49IjAiIG1heD0i
MTAwIiB2YWx1ZT0iNTAiIHN0eWxlPSItd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IiA+PC9wcm9n
cmVzcz4KKzxzY3JpcHQ+Cit0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0
Iik7CitjbG9uZWQgPSB0YXJnZXQuY2xvbmVOb2RlKCk7Citkb2N1bWVudC5ib2R5Lmluc2VydEJl
Zm9yZShjbG9uZWQsIHRhcmdldC5uZXh0U2libGluZyk7CisKK3RhcmdldFNoYWRvd1Jvb3QgPSBs
YXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHRhcmdldCk7CitjbG9uZWRTaGFkb3dSb290
ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChjbG9uZWQpOworCitzaG91bGRCZSgi
Y2xvbmVkLnZhbHVlIiwgInRhcmdldC52YWx1ZSIpOworc2hvdWxkQmUoImxheW91dFRlc3RDb250
cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkiLCAibGF5
b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5maXJzdENo
aWxkKSIpOworc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNs
b25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkKSIsICJsYXlvdXRUZXN0Q29udHJv
bGxlci5zaGFkb3dQc2V1ZG9JZCh0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGls
ZCkiKTsKKworY2xvbmVkLnZhbHVlID0gNzA7CitzaG91bGRCZSgiY2xvbmVkU2hhZG93Um9vdC5m
aXJzdENoaWxkLmZpcnN0Q2hpbGQuc3R5bGUud2lkdGgiLCAnIjcwJSInKTsKK3Nob3VsZEJlKCJ0
YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5zdHlsZS53aWR0aCIsICciNTAl
IicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE5OTM5ZjJlYmU2MmYwNjNmOTQxMjgyNzk5
MjlkNzg5NjgyZjg1OC4uNTVkMDM1MTI4YjBiZWFhZDcxNzM1ZDhkMDBiNzhlYWMyMzRiY2M1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTA2LTAzICBNT1JJVEEgSGFqaW1lICA8
bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJFR1JFU1NJT046IENsb25lZCA8cHJvZ3Jlc3M+IGFuZCA8bWV0ZXI+IGRv
bid0IHdvcmsgd2VsbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjE5ODYKKworICAgICAgICBTaGFkb3cgdHJlZSBmb3IgPHByb2dyZXNzPiBhbmQgPG1l
dGVyPiBhcmUgY2xvbmVkIHVzaW5nCisgICAgICAgIERvY3VtZW50OjpjcmVhdGVFbGVtZW50KCkg
d2hpY2ggY3JlYXRlcyBwbGFpbiA8ZGl2PiBlbGVtZW50cworICAgICAgICBpbnN0ZWFkIG9mIHRo
ZSBvcmlnaW5hbCBzaGFkb3cgZWxlZW50cy4gIFRoaXMgY2hhZ25lCisgICAgICAgIAorICAgICAg
ICAtIGltcGxlbWVudGVkIGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4o
KSBmb3IKKyAgICAgICAgICBzaGFkb3dzIHRvIHByZXZlbnQgdGhlIGNyZWF0aW9uIG9mIHBsYWlu
IDxkaXY+cy4KKyAgICAgICAgLSBlbGltaW5hdGUgSFRNTE1ldGVyRWxlbWVudDo6bV92YWx1ZSBh
bmQgSFRNTFByb2dyZXNzRWxlbWVudDo6bV92YWx1ZQorICAgICAgICAgIHRvIGF2b2lkIGhvbGRp
bmcgb3V0ZGF0ZWQgb2JqZWN0cy4KKyAgICAgICAgCisgICAgICAgIE5vdGUgdGhhdCA8cHJvZ3Jl
c3M+IHNoYWRvdyB3YXMgaW50cm9kdWNlZCByNzcyMTEsIGFuZCA8bWV0ZXI+CisgICAgICAgIHNo
YWRvdyB3YXMgaW50cm9kdWNlZCBhdCByODI4OTkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9t
L0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9k
b20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1jbG9uZS5odG1sCisKKyAgICAgICAgKiBk
b20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpnZXRFbGVt
ZW50QnlJZFNlYXJjaGluZ1VuaW5kZXhlZCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dmFsdWVJZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50Ojp2YWx1ZUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGVyRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRl
Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUlk
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnZhbHVlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVD
aGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZXRlckJhckVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4pOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJWYWx1ZUVsZW1lbnQ6OmNsb25lRWxlbWVudFdp
dGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4pOgorICAgICAgICAqIGh0bWwvc2hhZG93L1Byb2dy
ZXNzU2hhZG93RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NCYXJFbGVtZW50
OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKToKKyAgICAgICAgKFdl
YkNvcmU6OlByb2dyZXNzVmFsdWVFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRl
c0FuZENoaWxkcmVuKToKKwogMjAxMS0wNi0wMiAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuY3BwCmluZGV4IDA2MDg4Yzc2MmM4ZTlmYzA0Mzg1M2Q5NjllNmM0ODUyNjgyMmE5
Y2MuLjJiNWMzOGVkY2UxODU2NmFkY2ViNDFlOTNkYzI1ZjdlMDhhZTNhM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKQEAgLTEzMyw0ICsxMzMsMjAgQEAgdm9pZCBTaGFkb3dSb290Ojph
dHRhY2goKQogICAgIFRyZWVTY29wZTo6YXR0YWNoKCk7CiB9CiAKK0VsZW1lbnQqIFNoYWRvd1Jv
b3Q6OmdldEVsZW1lbnRCeUlkU2VhcmNoaW5nVW5pbmRleGVkKGNvbnN0IEF0b21pY1N0cmluZyYg
aWQpIGNvbnN0Cit7CisgICAgRWxlbWVudCogZm91bmQgPSBnZXRFbGVtZW50QnlJZChpZCk7Cisg
ICAgaWYgKGZvdW5kKQorICAgICAgICByZXR1cm4gZm91bmQ7CisgICAgLy8gT24gc2hhZG93IHN1
YnRyZWUgY29uc3RydWN0aW9uLCB0aGUgZWxlbWVudCBwb3NzaWJseSBvdXQgb2YgdGhlCisgICAg
Ly8gZG9jdW1lbnQgYW5kIG5vdCBpbmRleGVkIGJ5IHNjb3BlJ3MgaWQgbWFwLiBGb3IgdGhhdCBj
YXNlLCB0aGlzCisgICAgLy8gbWV0aG9kIHRyYXZlcnNlcyBhbGwgZGVzY2VuZGFudHMgZm9yIG1h
dGNoZWQgZWxlbWVudC4KKyAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzLT5maXJzdENoaWxkKCk7
IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHRoaXMpKSB7CisgICAgICAgIGlm
IChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgaWQgPT0gdG9FbGVtZW50KG5vZGUpLT5nZXRJZEF0
dHJpYnV0ZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRvRWxlbWVudChub2RlKTsKKyAgICB9CisK
KyAgICByZXR1cm4gMDsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggY2U4ZWIw
ZjFhNTliODFmZTdiMDY4OTg5ZTViZDE2NTZkYTdjNTRhMy4uOWU4ZDdiMjgwNDBiMzQ4YjJiM2Y2
ODM2ZjRkNDE3MGU2MmM1MTAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC00MSw2ICs0
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dCb3VuZGFyeSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFu
Z2UgPSBOb0NoYW5nZSk7CiAKKyAgICBFbGVtZW50KiBnZXRFbGVtZW50QnlJZFNlYXJjaGluZ1Vu
aW5kZXhlZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKICAgICBDb250YWluZXJOb2RlKiBh
Y3RpdmVDb250ZW50Q29udGFpbmVyKCk7CiAgICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDEzZTAyZWQ0
NDU4OTVjMDIwYjRmZTgxOGI1NjM4N2M5MDU5ZTMxNTMuLmNkODRiYmJiZjM0NTZmYTkwZjY5MzMz
OWYxZDk3MGY0MzEyMGIzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
dGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50
LmNwcApAQCAtMjI1LDE3ICsyMjUsMjkgQEAgZG91YmxlIEhUTUxNZXRlckVsZW1lbnQ6OnZhbHVl
UmF0aW8oKSBjb25zdAogICAgIHJldHVybiAodmFsdWUgLSBtaW4pIC8gKG1heCAtIG1pbik7CiB9
CiAKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlSWQoKQoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCJ2YWx1ZSIpKTsKKyAgICByZXR1cm4gaWQ7
Cit9CisKK01ldGVyVmFsdWVFbGVtZW50KiBIVE1MTWV0ZXJFbGVtZW50Ojp2YWx1ZUVsZW1lbnQo
KSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxNZXRlclZhbHVlRWxlbWVudCo+KHNo
YWRvd1Jvb3QoKS0+Z2V0RWxlbWVudEJ5SWRTZWFyY2hpbmdVbmluZGV4ZWQodmFsdWVJZCgpKSk7
Cit9CisKIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCkKIHsK
LSAgICBtX3ZhbHVlLT5zZXRXaWR0aFBlcmNlbnRhZ2UodmFsdWVSYXRpbygpKjEwMCk7CisgICAg
dmFsdWVFbGVtZW50KCktPnNldFdpZHRoUGVyY2VudGFnZSh2YWx1ZVJhdGlvKCkqMTAwKTsKIH0K
IAogdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBS
ZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBiYXIgPSBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKTsKLSAgICBtX3ZhbHVlID0gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpKTsKKyAgICBSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IHZhbHVlID0gTWV0ZXJWYWx1ZUVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICB2YWx1ZS0+c2V0QXR0cmlidXRlKGlkQXR0
ciwgdmFsdWVJZCgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBiYXItPmFwcGVu
ZENoaWxkKG1fdmFsdWUsIGVjKTsKKyAgICBiYXItPmFwcGVuZENoaWxkKHZhbHVlLCBlYyk7CiAg
ICAgZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChiYXIsIGVjKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAppbmRleCBjMWMwMmNkNDk0OTkwYTY4NjA2NTNm
ODdlOGI5Njc3M2EyOTBiYTVjLi4zNWRmMDU5YWY0NWM2OWYyNTljZmM5ODFiOTJkZmEyOGQwYmMz
ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaApAQCAtNzYsNyArNzYs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgdm9p
ZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAKLSAgICBSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+
IG1fdmFsdWU7CisgICAgTWV0ZXJWYWx1ZUVsZW1lbnQqIHZhbHVlRWxlbWVudCgpIGNvbnN0Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwCmluZGV4IDk0ZjgyMGFmZThhODA2MzJjMTdjYTgzYzQzMThkODU0OTQyNDkyNjEu
LjA3OWMyMTY0MjU5NzQyNTJiNTM0ZTYxNzFjMzMwZjkyYTM5ZDgxYjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcApAQCAtMTM1LDkgKzEzNSwyMCBAQCBk
b3VibGUgSFRNTFByb2dyZXNzRWxlbWVudDo6cG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiB2
YWx1ZSgpIC8gbWF4KCk7CiB9CiAKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlSWQo
KQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCJ2YWx1ZSIp
KTsKKyAgICByZXR1cm4gaWQ7Cit9CisKK1Byb2dyZXNzVmFsdWVFbGVtZW50KiBIVE1MUHJvZ3Jl
c3NFbGVtZW50Ojp2YWx1ZUVsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxQcm9ncmVzc1ZhbHVlRWxlbWVudCo+KHNoYWRvd1Jvb3QoKS0+Z2V0RWxlbWVudEJ5SWRTZWFy
Y2hpbmdVbmluZGV4ZWQodmFsdWVJZCgpKSk7Cit9CisKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVu
dDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCkKIHsKLSAgICBtX3ZhbHVlLT5zZXRXaWR0aFBlcmNl
bnRhZ2UocG9zaXRpb24oKSoxMDApOworICAgIHZhbHVlRWxlbWVudCgpLT5zZXRXaWR0aFBlcmNl
bnRhZ2UocG9zaXRpb24oKSoxMDApOwogICAgIGlmIChyZW5kZXJlcigpKQogICAgICAgICByZW5k
ZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQpAQCAtMTQ1LDkgKzE1NiwxMCBAQCB2b2lk
IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpCiB2b2lkIEhUTUxQ
cm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewogICAgIFJlZlB0cjxQcm9n
cmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KCkpOwotICAgIG1fdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KCkpOworICAgIFJlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gdmFsdWUgPSBQcm9ncmVzc1Zh
bHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIHZhbHVlLT5zZXRBdHRyaWJ1dGUo
aWRBdHRyLCB2YWx1ZUlkKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJhci0+
YXBwZW5kQ2hpbGQobV92YWx1ZSwgZWMpOworICAgIGJhci0+YXBwZW5kQ2hpbGQodmFsdWUsIGVj
KTsKICAgICBlbnN1cmVTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGJhciwgZWMpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCmluZGV4IDRlNGE0ZTBlOTIx
OTc3NmZhMjhjNDA4NDRhZTVjMDFhOTQ5NjVmODYuLjRkYzUxYTA2NjkwNmRhNjY1NmM5Y2I5ZjA2
Mzk1YjhiNjA0NWQ3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5oCkBAIC02Myw4ICs2Myw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEVsZW1lbnRTdGF0
ZUNoYW5nZSgpOwogICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpOwotCi0gICAgUmVmUHRy
PFByb2dyZXNzVmFsdWVFbGVtZW50PiBtX3ZhbHVlOworICAgIFByb2dyZXNzVmFsdWVFbGVtZW50
KiB2YWx1ZUVsZW1lbnQoKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCmluZGV4IGMzNmIwMWIy
NDNkYjlkZjZmYTA3NWJjMWJiNmU0ZDViNjQyNzA2M2IuLjU4ZDZkOWQxYWE5ZmRhNWFlZmVjMTY5
NTYyYjg1MmRiMGIyYmM3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01ldGVyU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
dGVyU2hhZG93RWxlbWVudC5oCkBAIC01Niw2ICs1Niw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRB
dHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdDsKIH07CiAKIGlubGluZSBQYXNzUmVmUHRyPE1l
dGVyQmFyRWxlbWVudD4gTWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KQpAQCAtNjMsNiArNjYsMTEgQEAgaW5saW5lIFBhc3NSZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBN
ZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBNZXRlckJhckVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAoraW5saW5lIFBhc3NS
ZWZQdHI8RWxlbWVudD4gTWV0ZXJCYXJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50KCkp
OworfQorCiAKIGNsYXNzIE1ldGVyVmFsdWVFbGVtZW50IDogcHVibGljIE1ldGVyU2hhZG93RWxl
bWVudCB7CiBwdWJsaWM6CkBAIC03Miw4ICs4MCwxMiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZXRlclZhbHVlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7
CiAgICAgdm9pZCBzZXRXaWR0aFBlcmNlbnRhZ2UoZG91YmxlKTsKKworcHJpdmF0ZToKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbigpIGNvbnN0OwogfTsKIAogaW5saW5lIFBhc3NSZWZQdHI8TWV0ZXJWYWx1ZUVs
ZW1lbnQ+IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAt
ODEsNiArOTMsMTEgQEAgaW5saW5lIFBhc3NSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IE1ldGVy
VmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW4KICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE1ldGVyVmFsdWVFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKK2lubGluZSBQYXNzUmVm
UHRyPEVsZW1lbnQ+IE1ldGVyVmFsdWVFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50KCkp
OworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Q
cm9ncmVzc1NoYWRvd0VsZW1lbnQuaAppbmRleCBlMTM1YzcxZGFhNDFmOWU2ZWYzYjM2NGVmOTE4
OGEzMWNkNTE3YWFmLi45MDcyNmYyZTZlOWE1ZjlmNjEwY2EwMTkxMjFiZDA4YTJjYTAwMGMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQ
cm9ncmVzc0JhckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0Fu
ZENoaWxkcmVuKCkgY29uc3Q7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxQcm9ncmVzc0JhckVs
ZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKQEAg
LTY0LDYgKzY3LDEwIEBAIGlubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gUHJv
Z3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtCiAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBQcm9ncmVzc0JhckVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAoraW5saW5lIFBhc3NS
ZWZQdHI8RWxlbWVudD4gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0
cmlidXRlc0FuZENoaWxkcmVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50
KCkpOworfQogCiBjbGFzcyBQcm9ncmVzc1ZhbHVlRWxlbWVudCA6IHB1YmxpYyBQcm9ncmVzc1No
YWRvd0VsZW1lbnQgewogcHVibGljOgpAQCAtNzUsNiArODIsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwog
ICAgIHZvaWQgc2V0V2lkdGhQZXJjZW50YWdlKGRvdWJsZSk7CisKK3ByaXZhdGU6CisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oKSBjb25zdDsKIH07CiAKIGlubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzVmFsdWVF
bGVtZW50PiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkK
QEAgLTgyLDYgKzkyLDExIEBAIGlubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50
PiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkCiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQcm9ncmVzc1ZhbHVlRWxlbWVudChkb2N1bWVudCkpOwogfQogCitpbmxpbmUg
UGFzc1JlZlB0cjxFbGVtZW50PiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0
aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNyZWF0ZShk
b2N1bWVudCgpKTsKK30KKwogfQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95882</attachid>
            <date>2011-06-03 03:16:13 -0700</date>
            <delta_ts>2011-06-05 21:13:31 -0700</delta_ts>
            <desc>Added missed fix on test htmls</desc>
            <filename>bug-61986-20110603191611.patch</filename>
            <type>text/plain</type>
            <size>16827</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc5OTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YWNmZDU5ZDcwYjc4MDYwOGViNGY4
OWVlYTgwZTc4NWM3MTVlZmJiLi5mNzAyNDYzZDA3NjkyMmI1ZDg3NDZjYWZlMjE0NjcyNDgwMzlh
NGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMDIgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUkVHUkVTU0lPTjogQ2xvbmVkIDxwcm9ncmVzcz4gYW5kIDxtZXRlcj4gZG9u
J3Qgd29yayB3ZWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk4NgorICAgICAgICAKKyAgICAgICAgQ2hlY2tlZCBwc2V1ZG8gY2xhc3NzIGlkcyB3
aGljaCBhcmUgb25seSBhdmFpbGFibGUgZm9yIGNvcnJlY3Qgc2hhZG93IGVsZW1lbnRzLgorCisg
ICAgICAgICogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xv
bmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9w
cm9ncmVzcy1jbG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYt
MDIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTk4MTAyNGNmNzNhZjc4ZWIyZmQxYzk4MDA5ZWI4Njg5YzFjNzc0MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBjbG9uZWQudmFsdWUgaXMgdGFyZ2V0
LnZhbHVlCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNo
YWRvd1Jvb3QuZmlyc3RDaGlsZCkgaXMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRv
SWQodGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkg
aXMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5m
aXJzdENoaWxkLmZpcnN0Q2hpbGQpCitQQVNTIGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5m
aXJzdENoaWxkLnN0eWxlLndpZHRoIGlzICI3MCUiCitQQVNTIHRhcmdldFNoYWRvd1Jvb3QuZmly
c3RDaGlsZC5maXJzdENoaWxkLnN0eWxlLndpZHRoIGlzICI1MCUiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM3ZmE3OWJiNjZiZjM3MTI4YjFhYWZjZjk4YzRkMTkzNmViOGUyNDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWNsb25lLmh0
bWwKQEAgLTAsMCArMSwyOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPG1ldGVyIGlkPSJ0YXJnZXQiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCIgc3R5
bGU9Ii13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsiIC8+Cis8c2NyaXB0PgordGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworY2xvbmVkID0gdGFyZ2V0LmNsb25lTm9k
ZSgpOworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoY2xvbmVkLCB0YXJnZXQubmV4dFNpYmxp
bmcpOworCit0YXJnZXRTaGFkb3dSb290ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9v
dCh0YXJnZXQpOworY2xvbmVkU2hhZG93Um9vdCA9IGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRv
d1Jvb3QoY2xvbmVkKTsKKworc2hvdWxkQmUoImNsb25lZC52YWx1ZSIsICJ0YXJnZXQudmFsdWUi
KTsKK3Nob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRT
aGFkb3dSb290LmZpcnN0Q2hpbGQpIiwgImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVk
b0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkiKTsKK3Nob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmly
c3RDaGlsZCkiLCAibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hh
ZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpIik7CitjbG9uZWQudmFsdWUgPSA3MDsKK3No
b3VsZEJlKCJjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5zdHlsZS53aWR0
aCIsICciNzAlIicpOworc2hvdWxkQmUoInRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJz
dENoaWxkLnN0eWxlLndpZHRoIiwgJyI1MCUiJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jl
c3MtY2xvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ODEwMjRjZjczYWY3OGViMmZkMWM5
ODAwOWViODY4OWMxYzc3NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKK1BBU1MgY2xvbmVkLnZhbHVlIGlzIHRhcmdldC52YWx1ZQorUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQp
IGlzIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3Qu
Zmlyc3RDaGlsZCkKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2xv
bmVkU2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpIGlzIGxheW91dFRlc3RDb250cm9s
bGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxk
KQorUEFTUyBjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5zdHlsZS53aWR0
aCBpcyAiNzAlIgorUEFTUyB0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5z
dHlsZS53aWR0aCBpcyAiNTAlIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9n
cmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWY0N2Jj
NDYyZjQwNzdkMDhkODQ4NTdkODFhZWJkMWY1ZWY5YjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1jbG9uZS5odG1s
CkBAIC0wLDAgKzEsMzEgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxwcm9ncmVzcyBpZD0idGFyZ2V0IiBtaW49IjAiIG1heD0iMTAwIiB2YWx1ZT0iNTAiIHN0
eWxlPSItd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IiA+PC9wcm9ncmVzcz4KKzxzY3JpcHQ+Cit0
YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CitjbG9uZWQgPSB0YXJn
ZXQuY2xvbmVOb2RlKCk7Citkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShjbG9uZWQsIHRhcmdl
dC5uZXh0U2libGluZyk7CisKK3RhcmdldFNoYWRvd1Jvb3QgPSBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zaGFkb3dSb290KHRhcmdldCk7CitjbG9uZWRTaGFkb3dSb290ID0gbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2hhZG93Um9vdChjbG9uZWQpOworCitzaG91bGRCZSgiY2xvbmVkLnZhbHVlIiwgInRh
cmdldC52YWx1ZSIpOworc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVk
b0lkKGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkiLCAibGF5b3V0VGVzdENvbnRyb2xsZXIu
c2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkKSIpOworc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNoYWRvd1Jvb3QuZmly
c3RDaGlsZC5maXJzdENoaWxkKSIsICJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9J
ZCh0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkiKTsKKworY2xvbmVkLnZh
bHVlID0gNzA7CitzaG91bGRCZSgiY2xvbmVkU2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hp
bGQuc3R5bGUud2lkdGgiLCAnIjcwJSInKTsKK3Nob3VsZEJlKCJ0YXJnZXRTaGFkb3dSb290LmZp
cnN0Q2hpbGQuZmlyc3RDaGlsZC5zdHlsZS53aWR0aCIsICciNTAlIicpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYmE5OTM5ZjJlYmU2MmYwNjNmOTQxMjgyNzk5MjlkNzg5NjgyZjg1OC4uNTVk
MDM1MTI4YjBiZWFhZDcxNzM1ZDhkMDBiNzhlYWMyMzRiY2M1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ3IEBACisyMDExLTA2LTAzICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JF
U1NJT046IENsb25lZCA8cHJvZ3Jlc3M+IGFuZCA8bWV0ZXI+IGRvbid0IHdvcmsgd2VsbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE5ODYKKworICAg
ICAgICBTaGFkb3cgdHJlZSBmb3IgPHByb2dyZXNzPiBhbmQgPG1ldGVyPiBhcmUgY2xvbmVkIHVz
aW5nCisgICAgICAgIERvY3VtZW50OjpjcmVhdGVFbGVtZW50KCkgd2hpY2ggY3JlYXRlcyBwbGFp
biA8ZGl2PiBlbGVtZW50cworICAgICAgICBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5hbCBzaGFkb3cg
ZWxlZW50cy4gIFRoaXMgY2hhZ25lCisgICAgICAgIAorICAgICAgICAtIGltcGxlbWVudGVkIGNs
b25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBmb3IKKyAgICAgICAgICBz
aGFkb3dzIHRvIHByZXZlbnQgdGhlIGNyZWF0aW9uIG9mIHBsYWluIDxkaXY+cy4KKyAgICAgICAg
LSBlbGltaW5hdGUgSFRNTE1ldGVyRWxlbWVudDo6bV92YWx1ZSBhbmQgSFRNTFByb2dyZXNzRWxl
bWVudDo6bV92YWx1ZQorICAgICAgICAgIHRvIGF2b2lkIGhvbGRpbmcgb3V0ZGF0ZWQgb2JqZWN0
cy4KKyAgICAgICAgCisgICAgICAgIE5vdGUgdGhhdCA8cHJvZ3Jlc3M+IHNoYWRvdyB3YXMgaW50
cm9kdWNlZCByNzcyMTEsIGFuZCA8bWV0ZXI+CisgICAgICAgIHNoYWRvdyB3YXMgaW50cm9kdWNl
ZCBhdCByODI4OTkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQv
bWV0ZXItY2xvbmUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vSFRNTFByb2dyZXNzRWxl
bWVudC9wcm9ncmVzcy1jbG9uZS5odG1sCisKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpnZXRFbGVtZW50QnlJZFNlYXJjaGluZ1Vu
aW5kZXhlZCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxNZXRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVJZCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50Ojp2YWx1ZUVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1ldGVyRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUlkKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OnZhbHVlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAg
ICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cv
TWV0ZXJTaGFkb3dFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZXRlckJhckVsZW1lbnQ6
OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4pOgorICAgICAgICAoV2Vi
Q29yZTo6TWV0ZXJWYWx1ZUVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4pOgorICAgICAgICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NCYXJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyZXNzVmFs
dWVFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKToKKwog
MjAxMS0wNi0wMiAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4
IDA2MDg4Yzc2MmM4ZTlmYzA0Mzg1M2Q5NjllNmM0ODUyNjgyMmE5Y2MuLjJiNWMzOGVkY2UxODU2
NmFkY2ViNDFlOTNkYzI1ZjdlMDhhZTNhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAK
QEAgLTEzMyw0ICsxMzMsMjAgQEAgdm9pZCBTaGFkb3dSb290OjphdHRhY2goKQogICAgIFRyZWVT
Y29wZTo6YXR0YWNoKCk7CiB9CiAKK0VsZW1lbnQqIFNoYWRvd1Jvb3Q6OmdldEVsZW1lbnRCeUlk
U2VhcmNoaW5nVW5pbmRleGVkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpIGNvbnN0Cit7CisgICAg
RWxlbWVudCogZm91bmQgPSBnZXRFbGVtZW50QnlJZChpZCk7CisgICAgaWYgKGZvdW5kKQorICAg
ICAgICByZXR1cm4gZm91bmQ7CisgICAgLy8gT24gc2hhZG93IHN1YnRyZWUgY29uc3RydWN0aW9u
LCB0aGUgZWxlbWVudCBwb3NzaWJseSBvdXQgb2YgdGhlCisgICAgLy8gZG9jdW1lbnQgYW5kIG5v
dCBpbmRleGVkIGJ5IHNjb3BlJ3MgaWQgbWFwLiBGb3IgdGhhdCBjYXNlLCB0aGlzCisgICAgLy8g
bWV0aG9kIHRyYXZlcnNlcyBhbGwgZGVzY2VuZGFudHMgZm9yIG1hdGNoZWQgZWxlbWVudC4KKyAg
ICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzLT5maXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2Rl
LT50cmF2ZXJzZU5leHROb2RlKHRoaXMpKSB7CisgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnRO
b2RlKCkgJiYgaWQgPT0gdG9FbGVtZW50KG5vZGUpLT5nZXRJZEF0dHJpYnV0ZSgpKQorICAgICAg
ICAgICAgcmV0dXJuIHRvRWxlbWVudChub2RlKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggY2U4ZWIwZjFhNTliODFmZTdiMDY4OTg5
ZTViZDE2NTZkYTdjNTRhMy4uOWU4ZDdiMjgwNDBiMzQ4YjJiM2Y2ODM2ZjRkNDE3MGU2MmM1MTAy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAK
KyAgICBFbGVtZW50KiBnZXRFbGVtZW50QnlJZFNlYXJjaGluZ1VuaW5kZXhlZChjb25zdCBBdG9t
aWNTdHJpbmcmKSBjb25zdDsKICAgICBDb250YWluZXJOb2RlKiBhY3RpdmVDb250ZW50Q29udGFp
bmVyKCk7CiAgICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDEzZTAyZWQ0NDU4OTVjMDIwYjRmZTgxOGI1
NjM4N2M5MDU5ZTMxNTMuLmNkODRiYmJiZjM0NTZmYTkwZjY5MzMzOWYxZDk3MGY0MzEyMGIzYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApAQCAtMjI1LDE3ICsy
MjUsMjkgQEAgZG91YmxlIEhUTUxNZXRlckVsZW1lbnQ6OnZhbHVlUmF0aW8oKSBjb25zdAogICAg
IHJldHVybiAodmFsdWUgLSBtaW4pIC8gKG1heCAtIG1pbik7CiB9CiAKK3N0YXRpYyBjb25zdCBB
dG9taWNTdHJpbmcmIHZhbHVlSWQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCJ2YWx1ZSIpKTsKKyAgICByZXR1cm4gaWQ7Cit9CisKK01ldGVyVmFsdWVF
bGVtZW50KiBIVE1MTWV0ZXJFbGVtZW50Ojp2YWx1ZUVsZW1lbnQoKSBjb25zdAoreworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxNZXRlclZhbHVlRWxlbWVudCo+KHNoYWRvd1Jvb3QoKS0+Z2V0RWxl
bWVudEJ5SWRTZWFyY2hpbmdVbmluZGV4ZWQodmFsdWVJZCgpKSk7Cit9CisKIHZvaWQgSFRNTE1l
dGVyRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCkKIHsKLSAgICBtX3ZhbHVlLT5zZXRX
aWR0aFBlcmNlbnRhZ2UodmFsdWVSYXRpbygpKjEwMCk7CisgICAgdmFsdWVFbGVtZW50KCktPnNl
dFdpZHRoUGVyY2VudGFnZSh2YWx1ZVJhdGlvKCkqMTAwKTsKIH0KIAogdm9pZCBIVE1MTWV0ZXJF
bGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBSZWZQdHI8TWV0ZXJCYXJFbGVt
ZW50PiBiYXIgPSBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBtX3Zh
bHVlID0gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8
TWV0ZXJWYWx1ZUVsZW1lbnQ+IHZhbHVlID0gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKTsKKyAgICB2YWx1ZS0+c2V0QXR0cmlidXRlKGlkQXR0ciwgdmFsdWVJZCgpKTsKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBiYXItPmFwcGVuZENoaWxkKG1fdmFsdWUsIGVj
KTsKKyAgICBiYXItPmFwcGVuZENoaWxkKHZhbHVlLCBlYyk7CiAgICAgZW5zdXJlU2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZChiYXIsIGVjKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRl
ckVsZW1lbnQuaAppbmRleCBjMWMwMmNkNDk0OTkwYTY4NjA2NTNmODdlOGI5Njc3M2EyOTBiYTVj
Li4zNWRmMDU5YWY0NWM2OWYyNTljZmM5ODFiOTJkZmEyOGQwYmMzODcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0
cmVlKCk7CiAKLSAgICBSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IG1fdmFsdWU7CisgICAgTWV0
ZXJWYWx1ZUVsZW1lbnQqIHZhbHVlRWxlbWVudCgpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCmluZGV4IDk0
ZjgyMGFmZThhODA2MzJjMTdjYTgzYzQzMThkODU0OTQyNDkyNjEuLjA3OWMyMTY0MjU5NzQyNTJi
NTM0ZTYxNzFjMzMwZjkyYTM5ZDgxYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmNwcApAQCAtMTM1LDkgKzEzNSwyMCBAQCBkb3VibGUgSFRNTFByb2dyZXNz
RWxlbWVudDo6cG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiB2YWx1ZSgpIC8gbWF4KCk7CiB9
CiAKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlSWQoKQoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCJ2YWx1ZSIpKTsKKyAgICByZXR1cm4gaWQ7
Cit9CisKK1Byb2dyZXNzVmFsdWVFbGVtZW50KiBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojp2YWx1ZUVs
ZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9ncmVzc1ZhbHVlRWxl
bWVudCo+KHNoYWRvd1Jvb3QoKS0+Z2V0RWxlbWVudEJ5SWRTZWFyY2hpbmdVbmluZGV4ZWQodmFs
dWVJZCgpKSk7Cit9CisKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRl
Q2hhbmdlKCkKIHsKLSAgICBtX3ZhbHVlLT5zZXRXaWR0aFBlcmNlbnRhZ2UocG9zaXRpb24oKSox
MDApOworICAgIHZhbHVlRWxlbWVudCgpLT5zZXRXaWR0aFBlcmNlbnRhZ2UocG9zaXRpb24oKSox
MDApOwogICAgIGlmIChyZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9t
RWxlbWVudCgpOwogfQpAQCAtMTQ1LDkgKzE1NiwxMCBAQCB2b2lkIEhUTUxQcm9ncmVzc0VsZW1l
bnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpCiB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKQogewogICAgIFJlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJh
ciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIG1fdmFsdWUg
PSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIFJlZlB0cjxQ
cm9ncmVzc1ZhbHVlRWxlbWVudD4gdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpOworICAgIHZhbHVlLT5zZXRBdHRyaWJ1dGUoaWRBdHRyLCB2YWx1ZUlkKCkp
OwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1
ZSwgZWMpOworICAgIGJhci0+YXBwZW5kQ2hpbGQodmFsdWUsIGVjKTsKICAgICBlbnN1cmVTaGFk
b3dSb290KCktPmFwcGVuZENoaWxkKGJhciwgZWMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5oCmluZGV4IDRlNGE0ZTBlOTIxOTc3NmZhMjhjNDA4NDRhZTVj
MDFhOTQ5NjVmODYuLjRkYzUxYTA2NjkwNmRhNjY1NmM5Y2I5ZjA2Mzk1YjhiNjA0NWQ3ZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCkBAIC02Myw4ICs2Myw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpOwogICAgIHZv
aWQgY3JlYXRlU2hhZG93U3VidHJlZSgpOwotCi0gICAgUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVt
ZW50PiBtX3ZhbHVlOworICAgIFByb2dyZXNzVmFsdWVFbGVtZW50KiB2YWx1ZUVsZW1lbnQoKSBj
b25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01ldGVyU2hhZG93RWxlbWVudC5oCmluZGV4IGMzNmIwMWIyNDNkYjlkZjZmYTA3NWJjMWJi
NmU0ZDViNjQyNzA2M2IuLjU4ZDZkOWQxYWE5ZmRhNWFlZmVjMTY5NTYyYjg1MmRiMGIyYmM3YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5o
CkBAIC01Niw2ICs1Niw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1ldGVy
QmFyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRy
ZW4oKSBjb25zdDsKIH07CiAKIGlubGluZSBQYXNzUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gTWV0
ZXJCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtNjMsNiArNjYsMTEg
QEAgaW5saW5lIFBhc3NSZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBNZXRlckJhckVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXRlckJh
ckVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAoraW5saW5lIFBhc3NSZWZQdHI8RWxlbWVudD4gTWV0
ZXJCYXJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50KCkpOworfQorCiAKIGNsYXNzIE1l
dGVyVmFsdWVFbGVtZW50IDogcHVibGljIE1ldGVyU2hhZG93RWxlbWVudCB7CiBwdWJsaWM6CkBA
IC03Miw4ICs4MCwxMiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZXRlclZhbHVlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAgdm9pZCBzZXRXaWR0
aFBlcmNlbnRhZ2UoZG91YmxlKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIGNvbnN0
OwogfTsKIAogaW5saW5lIFBhc3NSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IE1ldGVyVmFsdWVF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtODEsNiArOTMsMTEgQEAgaW5s
aW5lIFBhc3NSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1ldGVyVmFsdWVF
bGVtZW50KGRvY3VtZW50KSk7CiB9CiAKK2lubGluZSBQYXNzUmVmUHRyPEVsZW1lbnQ+IE1ldGVy
VmFsdWVFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50KCkpOworfQorCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuaAppbmRleCBlMTM1YzcxZGFhNDFmOWU2ZWYzYjM2NGVmOTE4OGEzMWNkNTE3YWFmLi45MDcy
NmYyZTZlOWE1ZjlmNjEwY2EwMTkxMjFiZDA4YTJjYTAwMGMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaApAQCAtNTcsNiArNTcs
OSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxF
bGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgY29uc3Q7
CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFy
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTY0LDYgKzY3LDEwIEBAIGlu
bGluZSBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gUHJvZ3Jlc3NCYXJFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9ncmVzc0Jh
ckVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAoraW5saW5lIFBhc3NSZWZQdHI8RWxlbWVudD4gUHJv
Z3Jlc3NCYXJFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVu
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3JlYXRlKGRvY3VtZW50KCkpOworfQogCiBjbGFzcyBQ
cm9ncmVzc1ZhbHVlRWxlbWVudCA6IHB1YmxpYyBQcm9ncmVzc1NoYWRvd0VsZW1lbnQgewogcHVi
bGljOgpAQCAtNzUsNiArODIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJv
Z3Jlc3NWYWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHZvaWQgc2V0V2lkdGhQ
ZXJjZW50YWdlKGRvdWJsZSk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVs
ZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdDsK
IH07CiAKIGlubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiBQcm9ncmVzc1Zh
bHVlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTgyLDYgKzkyLDExIEBA
IGlubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiBQcm9ncmVzc1ZhbHVlRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9ncmVz
c1ZhbHVlRWxlbWVudChkb2N1bWVudCkpOwogfQogCitpbmxpbmUgUGFzc1JlZlB0cjxFbGVtZW50
PiBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRD
aGlsZHJlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNyZWF0ZShkb2N1bWVudCgpKTsKK30KKwog
fQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96062</attachid>
            <date>2011-06-05 21:13:38 -0700</date>
            <delta_ts>2011-06-06 00:24:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61986-20110606131336.patch</filename>
            <type>text/plain</type>
            <size>17258</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgxMzcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZTNhYWM1ODI5MzA4N2M1OWE1OGMx
YWU3YzRjNzYxZDgxNTBiYjcwLi5lZTgwZjQ5MjZiZTRlZTNkZjI1NTgyNmI4OTRhMTBiNDkyMzVj
MTAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMDIgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUkVHUkVTU0lPTjogQ2xvbmVkIDxwcm9ncmVzcz4gYW5kIDxtZXRlcj4gZG9u
J3Qgd29yayB3ZWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk4NgorICAgICAgICAKKyAgICAgICAgQ2hlY2tlZCBwc2V1ZG8gY2xhc3NzIGlkcyB3
aGljaCBhcmUgb25seSBhdmFpbGFibGUgZm9yIGNvcnJlY3Qgc2hhZG93IGVsZW1lbnRzLgorCisg
ICAgICAgICogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xv
bmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9w
cm9ncmVzcy1jbG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYt
MDUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTk4MTAyNGNmNzNhZjc4ZWIyZmQxYzk4MDA5ZWI4Njg5YzFjNzc0MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorUEFTUyBjbG9uZWQudmFsdWUgaXMgdGFyZ2V0
LnZhbHVlCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNo
YWRvd1Jvb3QuZmlyc3RDaGlsZCkgaXMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRv
SWQodGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkg
aXMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5m
aXJzdENoaWxkLmZpcnN0Q2hpbGQpCitQQVNTIGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5m
aXJzdENoaWxkLnN0eWxlLndpZHRoIGlzICI3MCUiCitQQVNTIHRhcmdldFNoYWRvd1Jvb3QuZmly
c3RDaGlsZC5maXJzdENoaWxkLnN0eWxlLndpZHRoIGlzICI1MCUiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEzMzYwOTU3ZDRjNzEyMGM5NzNiYzk1YjJiOTBkY2Q1NmUyYWJjZjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWNsb25lLmh0
bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPG1ldGVyIGlkPSJ0YXJnZXQiIG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCIgc3R5
bGU9Ii13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsiIC8+Cis8c2NyaXB0PgorKGZ1bmN0aW9uKCkg
eworICAgIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICBj
bG9uZWQgPSB0YXJnZXQuY2xvbmVOb2RlKCk7CisgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZv
cmUoY2xvbmVkLCB0YXJnZXQubmV4dFNpYmxpbmcpOworICAgIAorICAgIGlmICghd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGRlYnVnKCJZb3UgbmVlZCBsYXlvdXRUZXN0
Q29udHJvbGxlciB0byBydW4gdGhpcyB0ZXN0LiIpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIAorICAgIHRhcmdldFNoYWRvd1Jvb3QgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dS
b290KHRhcmdldCk7CisgICAgY2xvbmVkU2hhZG93Um9vdCA9IGxheW91dFRlc3RDb250cm9sbGVy
LnNoYWRvd1Jvb3QoY2xvbmVkKTsKKyAgICAKKyAgICBzaG91bGRCZSgiY2xvbmVkLnZhbHVlIiwg
InRhcmdldC52YWx1ZSIpOworICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFk
b3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQpIiwgImxheW91dFRlc3RDb250
cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkiKTsKKyAg
ICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2xvbmVkU2hh
ZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpIiwgImxheW91dFRlc3RDb250cm9sbGVyLnNo
YWRvd1BzZXVkb0lkKHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkKSIpOwor
ICAgIGNsb25lZC52YWx1ZSA9IDcwOworICAgIHNob3VsZEJlKCJjbG9uZWRTaGFkb3dSb290LmZp
cnN0Q2hpbGQuZmlyc3RDaGlsZC5zdHlsZS53aWR0aCIsICciNzAlIicpOworICAgIHNob3VsZEJl
KCJ0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5zdHlsZS53aWR0aCIsICci
NTAlIicpOworfSkoKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOyAgICAKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41OTgxMDI0Y2Y3M2FmNzhlYjJmZDFjOTgwMDllYjg2ODljMWM3
NzQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNz
RWxlbWVudC9wcm9ncmVzcy1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitQQVNT
IGNsb25lZC52YWx1ZSBpcyB0YXJnZXQudmFsdWUKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2hhZG93UHNldWRvSWQoY2xvbmVkU2hhZG93Um9vdC5maXJzdENoaWxkKSBpcyBsYXlvdXRUZXN0
Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZCh0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQpCitQ
QVNTIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNoYWRvd1Jvb3Qu
Zmlyc3RDaGlsZC5maXJzdENoaWxkKSBpcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1
ZG9JZCh0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkKK1BBU1MgY2xvbmVk
U2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQuc3R5bGUud2lkdGggaXMgIjcwJSIKK1BB
U1MgdGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQuc3R5bGUud2lkdGggaXMg
IjUwJSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3By
b2dyZXNzLWNsb25lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVt
ZW50L3Byb2dyZXNzLWNsb25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIwYWQzYzYxODIzOTc2NDRiMjVm
NTVkM2M5MDE1MTk1ZDE0ZDdmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtY2xvbmUuaHRtbApAQCAtMCwwICsxLDM3
IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8cHJvZ3Jlc3Mg
aWQ9InRhcmdldCIgbWluPSIwIiBtYXg9IjEwMCIgdmFsdWU9IjUwIiBzdHlsZT0iLXdlYmtpdC1h
cHBlYXJhbmNlOiBub25lOyIgPjwvcHJvZ3Jlc3M+Cis8c2NyaXB0PgorKGZ1bmN0aW9uKCkgewor
ICAgIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICBjbG9u
ZWQgPSB0YXJnZXQuY2xvbmVOb2RlKCk7CisgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUo
Y2xvbmVkLCB0YXJnZXQubmV4dFNpYmxpbmcpOworICAgIAorICAgIGlmICghd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGRlYnVnKCJZb3UgbmVlZCBsYXlvdXRUZXN0Q29u
dHJvbGxlciB0byBydW4gdGhpcyB0ZXN0LiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgdGFyZ2V0U2hhZG93Um9vdCA9IGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3QodGFy
Z2V0KTsKKyAgICBjbG9uZWRTaGFkb3dSb290ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93
Um9vdChjbG9uZWQpOworICAgIAorICAgIHNob3VsZEJlKCJjbG9uZWQudmFsdWUiLCAidGFyZ2V0
LnZhbHVlIik7CisgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVk
b0lkKGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkiLCAibGF5b3V0VGVzdENvbnRyb2xsZXIu
c2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkKSIpOworICAgIHNob3Vs
ZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290
LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkiLCAibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNl
dWRvSWQodGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpIik7CisgICAgCisg
ICAgY2xvbmVkLnZhbHVlID0gNzA7CisgICAgc2hvdWxkQmUoImNsb25lZFNoYWRvd1Jvb3QuZmly
c3RDaGlsZC5maXJzdENoaWxkLnN0eWxlLndpZHRoIiwgJyI3MCUiJyk7CisgICAgc2hvdWxkQmUo
InRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkLnN0eWxlLndpZHRoIiwgJyI1
MCUiJyk7CisgICAgCit9KSgpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMzM5OTZiMTc2MGViM2Fm
NzVjMzY4YzNiOTU1YzNkNWNiYWI2NDg5Li43Yjk4NTMwNzI1MWY1N2Y1NjhkODYxNmVmZmY1MDcx
NTU5NWZhNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDYtMDMgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTjogQ2xvbmVkIDxwcm9ncmVzcz4gYW5k
IDxtZXRlcj4gZG9uJ3Qgd29yayB3ZWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MTk4NgorCisgICAgICAgIFNoYWRvdyB0cmVlIGZvciA8cHJvZ3Jl
c3M+IGFuZCA8bWV0ZXI+IGFyZSBjbG9uZWQgdXNpbmcKKyAgICAgICAgRG9jdW1lbnQ6OmNyZWF0
ZUVsZW1lbnQoKSB3aGljaCBjcmVhdGVzIHBsYWluIDxkaXY+IGVsZW1lbnRzCisgICAgICAgIGlu
c3RlYWQgb2YgdGhlIG9yaWdpbmFsIHNoYWRvdyBlbGVlbnRzLiAgVGhpcyBjaGFnbmUKKyAgICAg
ICAgCisgICAgICAgIC0gaW1wbGVtZW50ZWQgY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbigpIGZvcgorICAgICAgICAgIHNoYWRvd3MgdG8gcHJldmVudCB0aGUgY3JlYXRp
b24gb2YgcGxhaW4gPGRpdj5zLgorICAgICAgICAtIGVsaW1pbmF0ZSBIVE1MTWV0ZXJFbGVtZW50
OjptX3ZhbHVlIGFuZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjptX3ZhbHVlCisgICAgICAgICAgdG8g
YXZvaWQgaG9sZGluZyBvdXRkYXRlZCBvYmplY3RzLgorICAgICAgICAKKyAgICAgICAgTm90ZSB0
aGF0IDxwcm9ncmVzcz4gc2hhZG93IHdhcyBpbnRyb2R1Y2VkIHI3NzIxMSwgYW5kIDxtZXRlcj4K
KyAgICAgICAgc2hhZG93IHdhcyBpbnRyb2R1Y2VkIGF0IHI4Mjg5OS4KKworICAgICAgICBUZXN0
czogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1jbG9uZS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLmh0bWwKKwor
ICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jv
b3Q6OmdldEVsZW1lbnRCeUlkU2VhcmNoaW5nVW5pbmRleGVkKToKKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2YWx1ZUlkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6
OnZhbHVlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50OjpkaWRF
bGVtZW50U3RhdGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGVyRWxlbWVudDo6
Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MTWV0ZXJFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnZhbHVlSWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6dmFs
dWVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRpZEVs
ZW1lbnRTdGF0ZUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50
OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1ldGVyQmFyRWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpNZXRlclZhbHVlRWxlbWVudDo6Y2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbik6CisgICAgICAgICogaHRtbC9z
aGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVz
c0JhckVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4pOgorCiAyMDExLTA2LTA1ICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3Yu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggMDYwODhjNzYyYzhlOWZjMDQzODUzZDk2
OWU2YzQ4NTI2ODIyYTljYy4uMmI1YzM4ZWRjZTE4NTY2YWRjZWI0MWU5M2RjMjVmN2UwOGFlM2Ez
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMTMzLDQgKzEzMywyMCBAQCB2b2lk
IFNoYWRvd1Jvb3Q6OmF0dGFjaCgpCiAgICAgVHJlZVNjb3BlOjphdHRhY2goKTsKIH0KIAorRWxl
bWVudCogU2hhZG93Um9vdDo6Z2V0RWxlbWVudEJ5SWRTZWFyY2hpbmdVbmluZGV4ZWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCkgY29uc3QKK3sKKyAgICBFbGVtZW50KiBmb3VuZCA9IGdldEVsZW1l
bnRCeUlkKGlkKTsKKyAgICBpZiAoZm91bmQpCisgICAgICAgIHJldHVybiBmb3VuZDsKKyAgICAv
LyBPbiBzaGFkb3cgc3VidHJlZSBjb25zdHJ1Y3Rpb24sIHRoZSBlbGVtZW50IHBvc3NpYmx5IG91
dCBvZiB0aGUKKyAgICAvLyBkb2N1bWVudCBhbmQgbm90IGluZGV4ZWQgYnkgc2NvcGUncyBpZCBt
YXAuIEZvciB0aGF0IGNhc2UsIHRoaXMKKyAgICAvLyBtZXRob2QgdHJhdmVyc2VzIGFsbCBkZXNj
ZW5kYW50cyBmb3IgbWF0Y2hlZCBlbGVtZW50LgorICAgIGZvciAoTm9kZSogbm9kZSA9IHRoaXMt
PmZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUodGhpcykp
IHsKKyAgICAgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiBpZCA9PSB0b0VsZW1lbnQo
bm9kZSktPmdldElkQXR0cmlidXRlKCkpCisgICAgICAgICAgICByZXR1cm4gdG9FbGVtZW50KG5v
ZGUpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aAppbmRleCBjZThlYjBmMWE1OWI4MWZlN2IwNjg5ODllNWJkMTY1NmRhN2M1NGEzLi45ZThkN2Iy
ODA0MGIzNDhiMmIzZjY4MzZmNGQ0MTcwZTYyYzUxMDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NoYWRvd0Jv
dW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCByZWNhbGNT
dHlsZShTdHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAorICAgIEVsZW1lbnQqIGdldEVsZW1lbnRC
eUlkU2VhcmNoaW5nVW5pbmRleGVkKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OwogICAgIENv
bnRhaW5lck5vZGUqIGFjdGl2ZUNvbnRlbnRDb250YWluZXIoKTsKICAgICB2b2lkIGhvc3RDaGls
ZHJlbkNoYW5nZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAK
aW5kZXggMTNlMDJlZDQ0NTg5NWMwMjBiNGZlODE4YjU2Mzg3YzkwNTllMzE1My4uY2Q4NGJiYmJm
MzQ1NmZhOTBmNjkzMzM5ZjFkOTcwZjQzMTIwYjNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRlckVsZW1lbnQuY3BwCkBAIC0yMjUsMTcgKzIyNSwyOSBAQCBkb3VibGUgSFRNTE1ldGVy
RWxlbWVudDo6dmFsdWVSYXRpbygpIGNvbnN0CiAgICAgcmV0dXJuICh2YWx1ZSAtIG1pbikgLyAo
bWF4IC0gbWluKTsKIH0KIAorc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWVJZCgpCit7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoInZhbHVlIikpOwor
ICAgIHJldHVybiBpZDsKK30KKworTWV0ZXJWYWx1ZUVsZW1lbnQqIEhUTUxNZXRlckVsZW1lbnQ6
OnZhbHVlRWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PE1ldGVyVmFs
dWVFbGVtZW50Kj4oc2hhZG93Um9vdCgpLT5nZXRFbGVtZW50QnlJZFNlYXJjaGluZ1VuaW5kZXhl
ZCh2YWx1ZUlkKCkpKTsKK30KKwogdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpkaWRFbGVtZW50U3Rh
dGVDaGFuZ2UoKQogewotICAgIG1fdmFsdWUtPnNldFdpZHRoUGVyY2VudGFnZSh2YWx1ZVJhdGlv
KCkqMTAwKTsKKyAgICB2YWx1ZUVsZW1lbnQoKS0+c2V0V2lkdGhQZXJjZW50YWdlKHZhbHVlUmF0
aW8oKSoxMDApOwogfQogCiB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQogewogICAgIFJlZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIFJlZlB0cjxNZXRlclZhbHVlRWxlbWVudD4gdmFsdWUg
PSBNZXRlclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIHZhbHVlLT5zZXRB
dHRyaWJ1dGUoaWRBdHRyLCB2YWx1ZUlkKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgZWMpOworICAgIGJhci0+YXBwZW5kQ2hpbGQo
dmFsdWUsIGVjKTsKICAgICBlbnN1cmVTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKGJhciwgZWMp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IGMxYzAyY2Q0
OTQ5OTBhNjg2MDY1M2Y4N2U4Yjk2NzczYTI5MGJhNWMuLjM1ZGYwNTlhZjQ1YzY5ZjI1OWNmYzk4
MWI5MmRmYTI4ZDBiYzM4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
dGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5o
CkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRFbGVtZW50U3RhdGVDaGFu
Z2UoKTsKICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKIAotICAgIFJlZlB0cjxNZXRl
clZhbHVlRWxlbWVudD4gbV92YWx1ZTsKKyAgICBNZXRlclZhbHVlRWxlbWVudCogdmFsdWVFbGVt
ZW50KCkgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5kZXggOTRmODIwYWZlOGE4MDYzMmMxN2NhODNjNDMx
OGQ4NTQ5NDI0OTI2MS4uMDc5YzIxNjQyNTk3NDI1MmI1MzRlNjE3MWMzMzBmOTJhMzlkODFiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC0xMzUs
OSArMTM1LDIwIEBAIGRvdWJsZSBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpwb3NpdGlvbigpIGNvbnN0
CiAgICAgcmV0dXJuIHZhbHVlKCkgLyBtYXgoKTsKIH0KIAorc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYgdmFsdWVJZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IGlkLCAoInZhbHVlIikpOworICAgIHJldHVybiBpZDsKK30KKworUHJvZ3Jlc3NWYWx1ZUVsZW1l
bnQqIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnZhbHVlRWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFByb2dyZXNzVmFsdWVFbGVtZW50Kj4oc2hhZG93Um9vdCgpLT5nZXRF
bGVtZW50QnlJZFNlYXJjaGluZ1VuaW5kZXhlZCh2YWx1ZUlkKCkpKTsKK30KKwogdm9pZCBIVE1M
UHJvZ3Jlc3NFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKQogewotICAgIG1fdmFsdWUt
PnNldFdpZHRoUGVyY2VudGFnZShwb3NpdGlvbigpKjEwMCk7CisgICAgdmFsdWVFbGVtZW50KCkt
PnNldFdpZHRoUGVyY2VudGFnZShwb3NpdGlvbigpKjEwMCk7CiAgICAgaWYgKHJlbmRlcmVyKCkp
CiAgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CkBAIC0xNDUsOSAr
MTU2LDEwIEBAIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6ZGlkRWxlbWVudFN0YXRlQ2hhbmdl
KCkKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CiAg
ICAgUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7Ci0gICAgbV92YWx1ZSA9IFByb2dyZXNzVmFsdWVFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiB2YWx1
ZSA9IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgdmFsdWUt
PnNldEF0dHJpYnV0ZShpZEF0dHIsIHZhbHVlSWQoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgYmFyLT5hcHBlbmRDaGlsZChtX3ZhbHVlLCBlYyk7CisgICAgYmFyLT5hcHBlbmRD
aGlsZCh2YWx1ZSwgZWMpOwogICAgIGVuc3VyZVNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoYmFy
LCBlYyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKaW5k
ZXggNGU0YTRlMGU5MjE5Nzc2ZmEyOGM0MDg0NGFlNWMwMWE5NDk2NWY4Ni4uNGRjNTFhMDY2OTA2
ZGE2NjU2YzljYjlmMDYzOTViOGI2MDQ1ZDdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmgKQEAgLTYzLDggKzYzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
ZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7
Ci0KLSAgICBSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IG1fdmFsdWU7CisgICAgUHJvZ3Jl
c3NWYWx1ZUVsZW1lbnQqIHZhbHVlRWxlbWVudCgpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgK
aW5kZXggYzM2YjAxYjI0M2RiOWRmNmZhMDc1YmMxYmI2ZTRkNWI2NDI3MDYzYi4uNThkNmQ5ZDFh
YTlmZGE1YWVmZWMxNjk1NjJiODUyZGIwYjJiYzdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKQEAgLTU2LDYgKzU2LDkgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQqKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdDsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVF
bGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIGNvbnN0OwogfTsKIAogaW5saW5l
IFBhc3NSZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQpCkBAIC02Myw2ICs2NiwxMSBAQCBpbmxpbmUgUGFzc1JlZlB0cjxNZXRl
ckJhckVsZW1lbnQ+IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkK
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1ldGVyQmFyRWxlbWVudChkb2N1bWVudCkpOwogfQog
CitpbmxpbmUgUGFzc1JlZlB0cjxFbGVtZW50PiBNZXRlckJhckVsZW1lbnQ6OmNsb25lRWxlbWVu
dFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiBjcmVh
dGUoZG9jdW1lbnQoKSk7Cit9CisKIAogY2xhc3MgTWV0ZXJWYWx1ZUVsZW1lbnQgOiBwdWJsaWMg
TWV0ZXJTaGFkb3dFbGVtZW50IHsKIHB1YmxpYzoKQEAgLTcyLDggKzgwLDEyIEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdDsKKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1ldGVyVmFsdWVFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQqKTsKICAgICB2b2lkIHNldFdpZHRoUGVyY2VudGFnZShkb3VibGUpOworCitw
cml2YXRlOgorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRo
b3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgY29uc3Q7CiB9OwogCiBpbmxpbmUgUGFzc1JlZlB0
cjxNZXRlclZhbHVlRWxlbWVudD4gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCkBAIC04MSw2ICs5MywxMSBAQCBpbmxpbmUgUGFzc1JlZlB0cjxNZXRlclZhbHVl
RWxlbWVudD4gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbgogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgTWV0ZXJWYWx1ZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAor
aW5saW5lIFBhc3NSZWZQdHI8RWxlbWVudD4gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNsb25lRWxlbWVu
dFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiBjcmVh
dGUoZG9jdW1lbnQoKSk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5oCmluZGV4IGUxMzVjNzFkYWE0MWY5
ZTZlZjNiMzY0ZWY5MTg4YTMxY2Q1MTdhYWYuLjkwNzI2ZjJlNmU5YTVmOWY2MTBjYTAxOTEyMWJk
MDhhMmNhMDAwYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dy
ZXNzU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dy
ZXNzU2hhZG93RWxlbWVudC5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdDsKIH07CiAKIGlubGluZSBQYXNzUmVmUHRy
PFByb2dyZXNzQmFyRWxlbWVudD4gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQpAQCAtNjQsNiArNjcsMTAgQEAgaW5saW5lIFBhc3NSZWZQdHI8UHJvZ3Jlc3NC
YXJFbGVtZW50PiBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW0KICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2dyZXNzQmFyRWxlbWVudChkb2N1bWVudCkpOwogfQog
CitpbmxpbmUgUGFzc1JlZlB0cjxFbGVtZW50PiBQcm9ncmVzc0JhckVsZW1lbnQ6OmNsb25lRWxl
bWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdAoreworICAgIHJldHVybiBj
cmVhdGUoZG9jdW1lbnQoKSk7Cit9CiAKIGNsYXNzIFByb2dyZXNzVmFsdWVFbGVtZW50IDogcHVi
bGljIFByb2dyZXNzU2hhZG93RWxlbWVudCB7CiBwdWJsaWM6CkBAIC03NSw2ICs4Miw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdDsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gY3JlYXRl
KERvY3VtZW50Kik7CiAgICAgdm9pZCBzZXRXaWR0aFBlcmNlbnRhZ2UoZG91YmxlKTsKKworcHJp
dmF0ZToKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91
dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIGNvbnN0OwogfTsKIAogaW5saW5lIFBhc3NSZWZQdHI8
UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQqIGRvY3VtZW50KQpAQCAtODIsNiArOTIsMTEgQEAgaW5saW5lIFBhc3NSZWZQdHI8UHJvZ3Jl
c3NWYWx1ZUVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGQK
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2dyZXNzVmFsdWVFbGVtZW50KGRvY3VtZW50KSk7
CiB9CiAKK2lubGluZSBQYXNzUmVmUHRyPEVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50Ojpj
bG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gY3JlYXRlKGRvY3VtZW50KCkpOworfQorCiB9CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96067</attachid>
            <date>2011-06-06 00:25:02 -0700</date>
            <delta_ts>2011-06-06 02:02:53 -0700</delta_ts>
            <desc>Changed to have test cases only.</desc>
            <filename>bug-61986-20110606162500.patch</filename>
            <type>text/plain</type>
            <size>6159</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgxMzcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZTNhYWM1ODI5MzA4N2M1OWE1OGMx
YWU3YzRjNzYxZDgxNTBiYjcwLi5hMjQ1MjRiNmZlNzg5Y2U2ZTExZWVlNzk0N2Q1ODFmMGIyMWY0
ZmE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMDIgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgVmVyaWZ5IGNsb25pbmcgPG1ldGVyPiBhbmQg
PHByb2dyZXNzPiB3b3JrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjE5ODYKKyAgICAgICAgCisgICAgICAgIEFkZGVkIHRlc3QgY2FzZXMgZm9yIGNs
b25pbmcgPG1ldGVyPiBhbmQgPHByb2dyZXNzPgorCisgICAgICAgICogZmFzdC9kb20vSFRNTE1l
dGVyRWxlbWVudC9tZXRlci1jbG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1jbG9uZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jl
c3MtY2xvbmUuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMDUgIEtlbnQgVGFtdXJhICA8dGtlbnRA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xv
bmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9t
ZXRlci1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk4MTAyNGNmNzNhZjc4ZWIyZmQx
Yzk4MDA5ZWI4Njg5YzFjNzc0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItY2xvbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OSBAQAorUEFTUyBjbG9uZWQudmFsdWUgaXMgdGFyZ2V0LnZhbHVlCitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkgaXMg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5maXJz
dENoaWxkKQorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRT
aGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCkgaXMgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQpCitQ
QVNTIGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkLnN0eWxlLndpZHRoIGlz
ICI3MCUiCitQQVNTIHRhcmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkLnN0eWxl
LndpZHRoIGlzICI1MCUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxl
bWVudC9tZXRlci1jbG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE1ldGVyRWxl
bWVudC9tZXRlci1jbG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzMzYwOTU3ZDRjNzEyMGM5NzNiYzk1
YjJiOTBkY2Q1NmUyYWJjZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWNsb25lLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPG1ldGVyIGlkPSJ0YXJnZXQi
IG1pbj0iMCIgbWF4PSIxMDAiIHZhbHVlPSI1MCIgc3R5bGU9Ii13ZWJraXQtYXBwZWFyYW5jZTog
bm9uZTsiIC8+Cis8c2NyaXB0PgorKGZ1bmN0aW9uKCkgeworICAgIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICBjbG9uZWQgPSB0YXJnZXQuY2xvbmVOb2Rl
KCk7CisgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoY2xvbmVkLCB0YXJnZXQubmV4dFNp
YmxpbmcpOworICAgIAorICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgIGRlYnVnKCJZb3UgbmVlZCBsYXlvdXRUZXN0Q29udHJvbGxlciB0byBydW4gdGhpcyB0
ZXN0LiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIHRhcmdldFNoYWRvd1Jv
b3QgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHRhcmdldCk7CisgICAgY2xvbmVk
U2hhZG93Um9vdCA9IGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3QoY2xvbmVkKTsKKyAg
ICAKKyAgICBzaG91bGRCZSgiY2xvbmVkLnZhbHVlIiwgInRhcmdldC52YWx1ZSIpOworICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dS
b290LmZpcnN0Q2hpbGQpIiwgImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRh
cmdldFNoYWRvd1Jvb3QuZmlyc3RDaGlsZCkiKTsKKyAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2xvbmVkU2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0
Q2hpbGQpIiwgImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKHRhcmdldFNoYWRv
d1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkKSIpOworICAgIGNsb25lZC52YWx1ZSA9IDcwOwor
ICAgIHNob3VsZEJlKCJjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5zdHls
ZS53aWR0aCIsICciNzAlIicpOworICAgIHNob3VsZEJlKCJ0YXJnZXRTaGFkb3dSb290LmZpcnN0
Q2hpbGQuZmlyc3RDaGlsZC5zdHlsZS53aWR0aCIsICciNTAlIicpOworfSkoKTsKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOyAgICAKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9w
cm9ncmVzcy1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJv
Z3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTgx
MDI0Y2Y3M2FmNzhlYjJmZDFjOTgwMDllYjg2ODljMWM3NzQyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1jbG9uZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitQQVNTIGNsb25lZC52YWx1ZSBpcyB0YXJnZXQu
dmFsdWUKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQoY2xvbmVkU2hh
ZG93Um9vdC5maXJzdENoaWxkKSBpcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9J
ZCh0YXJnZXRTaGFkb3dSb290LmZpcnN0Q2hpbGQpCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LnNoYWRvd1BzZXVkb0lkKGNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkKSBp
cyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dQc2V1ZG9JZCh0YXJnZXRTaGFkb3dSb290LmZp
cnN0Q2hpbGQuZmlyc3RDaGlsZCkKK1BBU1MgY2xvbmVkU2hhZG93Um9vdC5maXJzdENoaWxkLmZp
cnN0Q2hpbGQuc3R5bGUud2lkdGggaXMgIjcwJSIKK1BBU1MgdGFyZ2V0U2hhZG93Um9vdC5maXJz
dENoaWxkLmZpcnN0Q2hpbGQuc3R5bGUud2lkdGggaXMgIjUwJSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNzLWNsb25lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjIwYWQzYzYxODIzOTc2NDRiMjVmNTVkM2M5MDE1MTk1ZDE0ZDdmMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQv
cHJvZ3Jlc3MtY2xvbmUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8cHJvZ3Jlc3MgaWQ9InRhcmdldCIgbWluPSIwIiBtYXg9
IjEwMCIgdmFsdWU9IjUwIiBzdHlsZT0iLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyIgPjwvcHJv
Z3Jlc3M+Cis8c2NyaXB0PgorKGZ1bmN0aW9uKCkgeworICAgIHRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICBjbG9uZWQgPSB0YXJnZXQuY2xvbmVOb2RlKCk7
CisgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoY2xvbmVkLCB0YXJnZXQubmV4dFNpYmxp
bmcpOworICAgIAorICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgIGRlYnVnKCJZb3UgbmVlZCBsYXlvdXRUZXN0Q29udHJvbGxlciB0byBydW4gdGhpcyB0ZXN0
LiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGFyZ2V0U2hhZG93Um9vdCA9IGxh
eW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3QodGFyZ2V0KTsKKyAgICBjbG9uZWRTaGFkb3dS
b290ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChjbG9uZWQpOworICAgIAorICAg
IHNob3VsZEJlKCJjbG9uZWQudmFsdWUiLCAidGFyZ2V0LnZhbHVlIik7CisgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1BzZXVkb0lkKGNsb25lZFNoYWRvd1Jvb3QuZmly
c3RDaGlsZCkiLCAibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hh
ZG93Um9vdC5maXJzdENoaWxkKSIpOworICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5zaGFkb3dQc2V1ZG9JZChjbG9uZWRTaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCki
LCAibGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93UHNldWRvSWQodGFyZ2V0U2hhZG93Um9vdC5m
aXJzdENoaWxkLmZpcnN0Q2hpbGQpIik7CisgICAgCisgICAgY2xvbmVkLnZhbHVlID0gNzA7Cisg
ICAgc2hvdWxkQmUoImNsb25lZFNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkLnN0eWxl
LndpZHRoIiwgJyI3MCUiJyk7CisgICAgc2hvdWxkQmUoInRhcmdldFNoYWRvd1Jvb3QuZmlyc3RD
aGlsZC5maXJzdENoaWxkLnN0eWxlLndpZHRoIiwgJyI1MCUiJyk7CisgICAgCit9KSgpOwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>
<flag name="review"
          id="89679"
          type_id="1"
          status="+"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>