<?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>48037</bug_id>
          
          <creation_ts>2010-10-20 20:35:29 -0700</creation_ts>
          <short_desc>Triple click does not select whole line for mixed contenteditable regions</short_desc>
          <delta_ts>2017-07-18 08:29:37 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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>
          <dependson>48112</dependson>
    
    <dependson>48658</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin (Ben) Kalman">kalman</reporter>
          <assigned_to name="Benjamin (Ben) Kalman">kalman</assigned_to>
          <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>syoichi</cc>
    
    <cc>tony</cc>
    
    <cc>xji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>297215</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-20 20:35:29 -0700</bug_when>
    <thetext>Triple click does not select whole line for mixed contenteditable regions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297218</commentid>
    <comment_count>1</comment_count>
      <attachid>71385</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-20 20:58:44 -0700</bug_when>
    <thetext>Created attachment 71385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297558</commentid>
    <comment_count>2</comment_count>
      <attachid>71385</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-21 12:22:42 -0700</bug_when>
    <thetext>Comment on attachment 71385
Patch

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

&gt; LayoutTests/ChangeLog:13
&gt; +        * editing/pasteboard/copy-backslash-with-euc-expected.txt:

Please explain what&apos;s happening in this test.

&gt; LayoutTests/ChangeLog:25
&gt; +        * platform/chromium-win/editing/deleting/5390681-expected.txt:
&gt; +        * platform/chromium-win/editing/deleting/delete-mixed-editable-content-001-expected.txt:
&gt; +        * platform/gtk/editing/deleting/5390681-expected.txt:
&gt; +        * platform/mac/editing/deleting/5390681-expected.txt:
&gt; +        * platform/mac/editing/deleting/delete-mixed-editable-content-001-expected.txt:
&gt; +        * platform/qt/editing/deleting/5390681-expected.txt:
&gt; +        * platform/qt/editing/deleting/delete-mixed-editable-content-001-expected.txt:

Please consider converting these two tests to dump-as-markup or dump-as-text tests first because I don&apos;t think these two tests need to test the rendering results.  We&apos;re more interested in the correctness of the resultant DOM, which can be verified more easily in dump-as-markup / dump-as-text format.  You can also reduce the size of this patch once the conversion is done.  Note you should file a separate bug if you&apos;re doing the conversion.

&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:30
&gt; +    editingTest();

Why do you need to add editingTest()?  editingTest is a special function called by runEditingTest() in the tests that use editing.js.  It&apos;s confusing that you&apos;re using the same name even though you&apos;re not using editing.js at all.  Moreover, I don&apos;t think you need to create a function at all.  You can just do all the tests inside of this if statement.

&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:36
&gt; +    var elemIds = [&quot;elem1&quot;, &quot;elem2&quot;, &quot;elem3&quot;];
&gt; +    for (var i in elemIds) {
&gt; +        var elem = document.getElementById(elemIds[i]);

Please don&apos;t abbreviate element as elem.  And it&apos;ll be nice if elem1, elem2, and elem3 had more descriptive names.

&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:70
&gt; +    var console = document.getElementById(&quot;console&quot;);
&gt; +    var text = document.createTextNode(message);
&gt; +    console.appendChild(text);

You can do all of this in one line:
document.getElementById(&quot;console&quot;).appendChild(document.createTextNode(message));
You can do it in two lines where you define console in a separate line.

&gt; WebCore/editing/visible_units.cpp:-801
&gt; -        if (n-&gt;isContentEditable() != startNode-&gt;isContentEditable())
&gt; -            break;

Could you elaborate on why it is okay to remove this check?  It&apos;s not too obvious to me that editable boundaries are respected without this check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297826</commentid>
    <comment_count>3</comment_count>
      <attachid>71526</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-21 22:27:43 -0700</bug_when>
    <thetext>Created attachment 71526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297834</commentid>
    <comment_count>4</comment_count>
      <attachid>71385</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-21 22:44:41 -0700</bug_when>
    <thetext>Comment on attachment 71385
Patch

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

&gt;&gt; LayoutTests/ChangeLog:13
&gt;&gt; +        * editing/pasteboard/copy-backslash-with-euc-expected.txt:
&gt; 
&gt; Please explain what&apos;s happening in this test.

There is a bug in webkit where copy-pasting some text into the entire of a contenteditable span inserts an extra &lt;br&gt; character at the end.  Easy repro is
&quot;foo &lt;span contenteditable&gt;bar&lt;/span&gt; baz&quot;
Double click on foo, ctrl+c, double click on bar, ctrl+v.
The bug was being triggered by the copy-backslash-with-euc test, and for some reason this patch fixes it.

&gt;&gt; LayoutTests/ChangeLog:25
&gt;&gt; +        * platform/qt/editing/deleting/delete-mixed-editable-content-001-expected.txt:
&gt; 
&gt; Please consider converting these two tests to dump-as-markup or dump-as-text tests first because I don&apos;t think these two tests need to test the rendering results.  We&apos;re more interested in the correctness of the resultant DOM, which can be verified more easily in dump-as-markup / dump-as-text format.  You can also reduce the size of this patch once the conversion is done.  Note you should file a separate bug if you&apos;re doing the conversion.

Sounds good.  Are you suggesting I do this in a different patch, submit it, then come back to this one?

&gt;&gt; WebCore/editing/visible_units.cpp:-801
&gt;&gt; -            break;
&gt; 
&gt; Could you elaborate on why it is okay to remove this check?  It&apos;s not too obvious to me that editable boundaries are respected without this check.

I&apos;m not sure what you mean.  In what way should editable boundaries be respected?
Elaboration: it&apos;s this check that incorrectly stops the selection when a non-contenteditable region is encountered inside a contenteditable one.  I say &quot;incorrectly&quot; because both IE and FF select across them.  From what I can tell there is sanity checking elsewhere (VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297976</commentid>
    <comment_count>5</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-10-22 08:05:15 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Sounds good.  Are you suggesting I do this in a different patch, submit it, then come back to this one?

Correct. The standard way to do code cleanup in webkit (including converting tests to dump-as-markup) is to do the cleanup patch first then do your actual change. The overhead ends up being worth it because it makes each patch much more clear and easy to verify correctness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298136</commentid>
    <comment_count>6</comment_count>
      <attachid>71385</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-22 13:11:24 -0700</bug_when>
    <thetext>Comment on attachment 71385
Patch

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

&gt;&gt;&gt; WebCore/editing/visible_units.cpp:-801
&gt;&gt;&gt; -            break;
&gt;&gt; 
&gt;&gt; Could you elaborate on why it is okay to remove this check?  It&apos;s not too obvious to me that editable boundaries are respected without this check.
&gt; 
&gt; I&apos;m not sure what you mean.  In what way should editable boundaries be respected?
&gt; Elaboration: it&apos;s this check that incorrectly stops the selection when a non-contenteditable region is encountered inside a contenteditable one.  I say &quot;incorrectly&quot; because both IE and FF select across them.  From what I can tell there is sanity checking elsewhere (VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries).

startOfParagraph is used everywhere in editing and removing this check would allow editing commands to operate across editing boundaries.  e.g. Suppose we have &lt;div&gt;hello &lt;span contenteditable&gt;world&lt;/span&gt;&lt;/div&gt;, and &quot;world&quot; is selected.  When we indent, we shouldn&apos;t be indenting &quot;hello&quot;.

You&apos;re probably trying to fix the behavior of startOfParagraph when called in VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity.  That&apos;s very specific use of startOfParagraph and even for that we need to verify that it won&apos;t break other things.  Now, setStartAndEndFromBaseAndExtentRespectingGranularity is called by validate with granularity != CharacterGranularity in expandUsingGranularity.  There are 4 calls to expandUsingGranularity, and all of them seem to be user-initiated so they&apos;re fine.  The call from expandSelectionToGranularity seems fine as well because they&apos;re executing commands to extend selection.

So we can probably modify the behavior of setStartAndEndFromBaseAndExtentRespectingGranularity(ParagraphGranularity) without breaking anything. And if we&apos;re changing the behavior of startOfParagraph and endOfParagraph for these two functions, then we probably want to add an argument to these functions to ignore editing boundaries.  See Position::CanCrossEditingBoundary.

&gt; WebCore/editing/visible_units.cpp:816
&gt; +        // FIXME: We avoid returning a position where the renderer can&apos;t accept the caret.
&gt; +        // We also do this in endOfParagraph, and might want to do it in other cases too.
&gt; +        if (r-&gt;isText() &amp;&amp; r-&gt;caretMaxRenderedOffset() &gt; 0) {

Are you sure this won&apos;t skip unicode-bidi control characters, zero-width space, etc... ?  I need Xiaomei&apos;s or Dan&apos;s confirmation on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298785</commentid>
    <comment_count>7</comment_count>
      <attachid>71730</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-25 04:30:23 -0700</bug_when>
    <thetext>Created attachment 71730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298789</commentid>
    <comment_count>8</comment_count>
      <attachid>71385</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-25 04:43:44 -0700</bug_when>
    <thetext>Comment on attachment 71385
Patch

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

&gt;&gt;&gt;&gt; WebCore/editing/visible_units.cpp:-801
&gt;&gt;&gt;&gt; -            break;
&gt;&gt;&gt; 
&gt;&gt;&gt; Could you elaborate on why it is okay to remove this check?  It&apos;s not too obvious to me that editable boundaries are respected without this check.
&gt;&gt; 
&gt;&gt; I&apos;m not sure what you mean.  In what way should editable boundaries be respected?
&gt;&gt; Elaboration: it&apos;s this check that incorrectly stops the selection when a non-contenteditable region is encountered inside a contenteditable one.  I say &quot;incorrectly&quot; because both IE and FF select across them.  From what I can tell there is sanity checking elsewhere (VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries).
&gt; 
&gt; startOfParagraph is used everywhere in editing and removing this check would allow editing commands to operate across editing boundaries.  e.g. Suppose we have &lt;div&gt;hello &lt;span contenteditable&gt;world&lt;/span&gt;&lt;/div&gt;, and &quot;world&quot; is selected.  When we indent, we shouldn&apos;t be indenting &quot;hello&quot;.
&gt; 
&gt; You&apos;re probably trying to fix the behavior of startOfParagraph when called in VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity.  That&apos;s very specific use of startOfParagraph and even for that we need to verify that it won&apos;t break other things.  Now, setStartAndEndFromBaseAndExtentRespectingGranularity is called by validate with granularity != CharacterGranularity in expandUsingGranularity.  There are 4 calls to expandUsingGranularity, and all of them seem to be user-initiated so they&apos;re fine.  The call from expandSelectionToGranularity seems fine as well because they&apos;re executing commands to extend selection.
&gt; 
&gt; So we can probably modify the behavior of setStartAndEndFromBaseAndExtentRespectingGranularity(ParagraphGranularity) without breaking anything. And if we&apos;re changing the behavior of startOfParagraph and endOfParagraph for these two functions, then we probably want to add an argument to these functions to ignore editing boundaries.  See Position::CanCrossEditingBoundary.

Ah, thank you.

I&apos;ve added the argument to start/endOfParagraph, and a token test (for the indentation) which did indeed crash after removing the check.  It seems a little... messy... but perhaps that&apos;s inevitable.

&gt;&gt; WebCore/editing/visible_units.cpp:816
&gt;&gt; +        if (r-&gt;isText() &amp;&amp; r-&gt;caretMaxRenderedOffset() &gt; 0) {
&gt; 
&gt; Are you sure this won&apos;t skip unicode-bidi control characters, zero-width space, etc... ?  I need Xiaomei&apos;s or Dan&apos;s confirmation on this.

No idea -- would this case be different to the same check in endOfParagraph?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299245</commentid>
    <comment_count>9</comment_count>
      <attachid>71730</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-25 19:41:06 -0700</bug_when>
    <thetext>Comment on attachment 71730
Patch

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

On second thought, I&apos;m not even sure if this bug is valid.  We normally disallow selections that cross editing boundaries.  Why should be allow selection be extended across editing boundaries?  This patch seems to introduce a serious inconsistency into the editing code.

&gt; LayoutTests/platform/chromium-linux/editing/deleting/5390681-expected.txt:16
&gt; +layer at (0,0) size 800x600
&gt; +  RenderView at (0,0) size 800x600
&gt; +layer at (0,0) size 800x600
&gt; +  RenderBlock {HTML} at (0,0) size 800x600
&gt; +    RenderBody {BODY} at (8,8) size 784x584
&gt; +      RenderBlock {P} at (0,0) size 784x40
&gt; +        RenderText {#text} at (0,0) size 768x39
&gt; +          text run at (0,0) width 565: &quot;This tests for a bug where expansion for smart delete would not consider editable boundaries. &quot;
&gt; +          text run at (565,0) width 177: &quot;Only &apos;foo&apos; should be deleted. &quot;
&gt; +          text run at (742,0) width 26: &quot;You&quot;
&gt; +          text run at (0,20) width 101: &quot;should see &apos; bar&apos;.&quot;
&gt; +      RenderBlock {DIV} at (0,56) size 784x20
&gt; +        RenderInline {SPAN} at (0,0) size 20x19
&gt; +          RenderText {#text} at (0,0) size 20x19
&gt; +            text run at (0,0) width 20: &quot;bar&quot;
&gt; +caret: position 0 of child 2 {DIV} of body

Wait, why are you adding this?

&gt; LayoutTests/platform/chromium-linux/editing/deleting/delete-mixed-editable-content-001-expected.txt:27
&gt; +EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document to 1 of SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document
&gt; +EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification
&gt; +EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
&gt; +EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document to 0 of SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document toDOMRange:range from 0 of #text &gt; SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document to 5 of #text &gt; SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
&gt; +EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
&gt; +EDITING DELEGATE: shouldDeleteDOMRange:range from 0 of #text &gt; SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document to 5 of #text &gt; SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document
&gt; +EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
&gt; +EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document to 0 of SPAN &gt; SPAN &gt; DIV &gt; BODY &gt; HTML &gt; #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
&gt; +EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
&gt; +EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
&gt; +layer at (0,0) size 800x600
&gt; +  RenderView at (0,0) size 800x600
&gt; +layer at (0,0) size 800x600
&gt; +  RenderBlock {HTML} at (0,0) size 800x600
&gt; +    RenderBody {BODY} at (8,8) size 784x584
&gt; +      RenderBlock {DIV} at (0,0) size 204x24 [border: (2px solid #FF0000)]
&gt; +        RenderInline {SPAN} at (0,0) size 40x19
&gt; +          RenderText {#text} at (0,0) size 0x0
&gt; +          RenderInline {SPAN} at (0,0) size 40x19
&gt; +            RenderInline {SPAN} at (0,0) size 40x19
&gt; +              RenderText {#text} at (2,2) size 40x19
&gt; +                text run at (2,2) width 40: &quot;12345&quot;
&gt; +          RenderText {#text} at (0,0) size 0x0
&gt; +          RenderInline {SPAN} at (0,0) size 0x0
&gt; +          RenderText {#text} at (0,0) size 0x0
&gt; +        RenderText {#text} at (0,0) size 0x0
&gt; +caret: position 0 of child 3 {SPAN} of child 1 {SPAN} of child 0 {DIV} of body

Same comment for this one.  Perhaps, you&apos;ve forgot to remove these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299255</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-25 19:54:54 -0700</bug_when>
    <thetext>Why not?  Arguably in

&lt;div contenteditable&gt;foo &lt;span contenteditable=&quot;false&quot;&gt;bar&lt;/span&gt; baz&lt;/div&gt;

the &quot;bar&quot; is just some uneditable inline entity within an editable block, so I don&apos;t see why the shouldn&apos;t cross it.  Another way of saying the same thing, I suppose, is &quot;are foo/bar/baz in the same paragraph&quot;, the answer to which I assumed was yes.

As some possibly interesting trivia:
 - IE (9 -- haven&apos;t tested the others) selects everything, and even allows you to move the &quot;bar&quot; around inside the containing div.
 - Firefox selects everything.
 - Opera selects everything.

i.e. WebKit is the exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299256</commentid>
    <comment_count>11</comment_count>
      <attachid>71730</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-25 19:56:02 -0700</bug_when>
    <thetext>Comment on attachment 71730
Patch

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

&gt;&gt; LayoutTests/platform/chromium-linux/editing/deleting/5390681-expected.txt:16
&gt;&gt; +caret: position 0 of child 2 {DIV} of body
&gt; 
&gt; Wait, why are you adding this?

Nah just haven&apos;t merged yet :-)

&gt;&gt; LayoutTests/platform/chromium-linux/editing/deleting/delete-mixed-editable-content-001-expected.txt:27
&gt;&gt; +caret: position 0 of child 3 {SPAN} of child 1 {SPAN} of child 0 {DIV} of body
&gt; 
&gt; Same comment for this one.  Perhaps, you&apos;ve forgot to remove these?

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299259</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-25 20:16:39 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &lt;div contenteditable&gt;foo &lt;span contenteditable=&quot;false&quot;&gt;bar&lt;/span&gt; baz&lt;/div&gt;
&gt; 
&gt; the &quot;bar&quot; is just some uneditable inline entity within an editable block, so I don&apos;t see why the shouldn&apos;t cross it.  Another way of saying the same thing, I suppose, is &quot;are foo/bar/baz in the same paragraph&quot;, the answer to which I assumed was yes.

In this case, new behavior seems to be desirable.  But how about
foo &lt;div contenteditable&gt;bar&lt;/div&gt; baz
or
&lt;div contenteditable&gt;foo&lt;/div&gt; bar &lt;div contenteditable&gt;baz&lt;/div&gt;
With your patch, we extend the selection to foo &amp; baz in these case as well.  I&apos;m not sure if we should allow such weird selections.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299261</commentid>
    <comment_count>13</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-25 20:32:51 -0700</bug_when>
    <thetext>I don&apos;t think so?  end/startOfParagraph still don&apos;t select outside their containing block elements so the editibility wouldn&apos;t really play a part.  Something that perhaps would be surprising is triple clicking on &quot;bar&quot; where

&lt;div&gt;foo &lt;span contenteditable&gt;bar&lt;/span&gt; baz&lt;/div&gt;

but I believe that the selection is restricted to just &quot;baz&quot; in VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries

(Note that Firefox does select outside &quot;bar&quot; but its handling of contenteditable spans seems to be rather buggy; IE9 only selects &quot;bar&quot;, the same as WebKit both before and after the patch).

More trivia: I also tried this all on Opera, and it behaves very similarly to Firefox (but so far not buggy).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299268</commentid>
    <comment_count>14</comment_count>
      <attachid>71839</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-25 21:28:28 -0700</bug_when>
    <thetext>Created attachment 71839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299269</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-25 21:30:27 -0700</bug_when>
    <thetext>Turns out the enum change means that I don&apos;t need to update the other tests after all...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299270</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-25 21:37:06 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I don&apos;t think so?  end/startOfParagraph still don&apos;t select outside their containing block elements so the editibility wouldn&apos;t really play a part.  Something that perhaps would be surprising is triple clicking on &quot;bar&quot; where

oops, I meant

foo &lt;span contenteditable&gt;bar&lt;/span&gt; baz

and

&lt;span contenteditable&gt;foo&lt;/span&gt; bar &lt;span contenteditable&gt;baz&lt;/span&gt;

&gt; &lt;div&gt;foo &lt;span contenteditable&gt;bar&lt;/span&gt; baz&lt;/div&gt;
&gt; 
&gt; but I believe that the selection is restricted to just &quot;baz&quot; in VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries

I see.  That makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299274</commentid>
    <comment_count>17</comment_count>
      <attachid>71839</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-25 21:50:07 -0700</bug_when>
    <thetext>Comment on attachment 71839
Patch

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

&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:37
&gt; +    layoutTestController.dumpAsText();
&gt; +    var testElementIds = [&quot;test1Element&quot;, &quot;test2Element&quot;, &quot;test3Element&quot;];
&gt; +    for (var i in testElementIds) {
&gt; +        var element = document.getElementById(testElementIds[i]);
&gt; +        log(&quot;Results for &quot; + element.id + &quot;:\n&quot;);
&gt; +        tripleClickAndLog(element, &quot;left&quot;);
&gt; +        tripleClickAndLog(element, &quot;middle&quot;);
&gt; +        tripleClickAndLog(element, &quot;right&quot;);
&gt; +    }

You probably want to rewrite this as a script-test.  See http://trac.webkit.org/changeset/68670 for an example.

&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:58
&gt; +    eventSender.mouseDown();
&gt; +    eventSender.mouseUp();
&gt; +    eventSender.mouseDown();
&gt; +    eventSender.mouseUp();
&gt; +    eventSender.mouseDown();
&gt; +    eventSender.mouseUp();

This might be too fast.  You may need to add some delays between each downs &amp; ups.

&gt; WebCore/editing/visible_units.cpp:817
&gt; +        // FIXME: We avoid returning a position where the renderer can&apos;t accept the caret.
&gt; +        // We also do this in endOfParagraph, and might want to do it in other cases too.

Why FIXME?  Isn&apos;t new code correct?  I don&apos;t think we should add FIXME to indicate that we should fix other places.  And I note that there are other places in editing where we skip empty text nodes.  If you&apos;ve found other code that may require skipping empty text nodes, then you should add FIXME to those places and not here.

&gt; WebCore/editing/visible_units.cpp:-877
&gt;          // FIXME: We avoid returning a position where the renderer can&apos;t accept the caret.
&gt; -        // We should probably do this in other cases such as startOfParagraph.

You should get rid of this FIXME entirely since we now do the same in startOfParagraph.

&gt; WebCore/editing/visible_units.h:37
&gt; +enum EditingBoundaryCrossingRule { CanCrossEditingBoundary, CannotCrossEditingBoundary };

Mn... you probably don&apos;t want to redefine enum here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299276</commentid>
    <comment_count>18</comment_count>
      <attachid>71839</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-25 21:55:49 -0700</bug_when>
    <thetext>Comment on attachment 71839
Patch

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

&gt; LayoutTests/editing/execCommand/indent-mixed-editability.html:1
&gt; +&lt;script src=&quot;../../resources/dump-as-markup.js&quot;&gt;&lt;/script&gt;

Please add &lt;!DOCTYPE html&gt; to force the standard mode.

&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:1
&gt; +&lt;html&gt;

Please add &lt;!DOCTYPE html&gt; to force the standard mode.  But this isn&apos;t relevant once you convert this test to a script test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299288</commentid>
    <comment_count>19</comment_count>
      <attachid>71839</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-25 22:38:21 -0700</bug_when>
    <thetext>Comment on attachment 71839
Patch

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

&gt;&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:58
&gt;&gt; +    eventSender.mouseUp();
&gt; 
&gt; This might be too fast.  You may need to add some delays between each downs &amp; ups.

Yeah I copied it from the other triple click test, seems to work?

&gt;&gt; WebCore/editing/visible_units.cpp:817
&gt;&gt; +        // We also do this in endOfParagraph, and might want to do it in other cases too.
&gt; 
&gt; Why FIXME?  Isn&apos;t new code correct?  I don&apos;t think we should add FIXME to indicate that we should fix other places.  And I note that there are other places in editing where we skip empty text nodes.  If you&apos;ve found other code that may require skipping empty text nodes, then you should add FIXME to those places and not here.

Just copied the existing FIXME -- I don&apos;t know why that FIXME was added (http://trac.webkit.org/changeset/8786).
I took the &quot;such as startOfParagraph&quot; to mean that there might be other cases too besides startOfParagraph, but I will delete it if you want.  I&apos;ll definitely delete the one here though.

&gt;&gt; WebCore/editing/visible_units.h:37
&gt;&gt; +enum EditingBoundaryCrossingRule { CanCrossEditingBoundary, CannotCrossEditingBoundary };
&gt; 
&gt; Mn... you probably don&apos;t want to redefine enum here.

Yeah I was wondering about that.  So Position::EditingBoundaryCrossingRule etc everywhere?  Or define a new similarly-named enum?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299307</commentid>
    <comment_count>20</comment_count>
      <attachid>71839</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-26 00:01:42 -0700</bug_when>
    <thetext>Comment on attachment 71839
Patch

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

The patch looks much better now.  We probably want some reviewers come in &amp; take a look at your patch once the problems I have addressed here have been fixed.

&gt;&gt;&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:58
&gt;&gt;&gt; +    eventSender.mouseUp();
&gt;&gt; 
&gt;&gt; This might be too fast.  You may need to add some delays between each downs &amp; ups.
&gt; 
&gt; Yeah I copied it from the other triple click test, seems to work?

Mn... could you verify that the other test hasn&apos;t been flaky?

&gt;&gt;&gt; WebCore/editing/visible_units.cpp:817
&gt;&gt;&gt; +        // We also do this in endOfParagraph, and might want to do it in other cases too.
&gt;&gt; 
&gt;&gt; Why FIXME?  Isn&apos;t new code correct?  I don&apos;t think we should add FIXME to indicate that we should fix other places.  And I note that there are other places in editing where we skip empty text nodes.  If you&apos;ve found other code that may require skipping empty text nodes, then you should add FIXME to those places and not here.
&gt; 
&gt; Just copied the existing FIXME -- I don&apos;t know why that FIXME was added (http://trac.webkit.org/changeset/8786).
&gt; I took the &quot;such as startOfParagraph&quot; to mean that there might be other cases too besides startOfParagraph, but I will delete it if you want.  I&apos;ll definitely delete the one here though.

That&apos;s very mysterious.  Darin might be able to elaborate on this issue since he reviewed the patch (r8786).

&gt;&gt;&gt; WebCore/editing/visible_units.h:37
&gt;&gt;&gt; +enum EditingBoundaryCrossingRule { CanCrossEditingBoundary, CannotCrossEditingBoundary };
&gt;&gt; 
&gt;&gt; Mn... you probably don&apos;t want to redefine enum here.
&gt; 
&gt; Yeah I was wondering about that.  So Position::EditingBoundaryCrossingRule etc everywhere?  Or define a new similarly-named enum?

You probably want to do Positon::EditingBoundaryCrossingRule everywhere or promote EditingBoundaryCrossingRule into WebCore namespace in Position.h.  Regardless, We shouldn&apos;t be defining two identical enums in Position and VisiblePosition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299344</commentid>
    <comment_count>21</comment_count>
      <attachid>71850</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-26 01:46:12 -0700</bug_when>
    <thetext>Created attachment 71850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299345</commentid>
    <comment_count>22</comment_count>
      <attachid>71839</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-26 01:48:04 -0700</bug_when>
    <thetext>Comment on attachment 71839
Patch

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

&gt;&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:37
&gt;&gt; +    }
&gt; 
&gt; You probably want to rewrite this as a script-test.  See http://trac.webkit.org/changeset/68670 for an example.

Ok done.  It&apos;s longer though... maybe I&apos;m doing something wrong...

&gt;&gt;&gt;&gt; LayoutTests/editing/selection/triple-click-across-editability-boundaries.html:58
&gt;&gt;&gt;&gt; +    eventSender.mouseUp();
&gt;&gt;&gt; 
&gt;&gt;&gt; This might be too fast.  You may need to add some delays between each downs &amp; ups.
&gt;&gt; 
&gt;&gt; Yeah I copied it from the other triple click test, seems to work?
&gt; 
&gt; Mn... could you verify that the other test hasn&apos;t been flaky?

You&apos;re right; it actually doesn&apos;t work without a delay (speaking of which, is there a more standard way to do a delay in tests?).
The other test has been disabled in a few places; I can have a look at this in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299346</commentid>
    <comment_count>23</comment_count>
      <attachid>71850</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-26 01:49:23 -0700</bug_when>
    <thetext>Comment on attachment 71850
Patch

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

&gt; LayoutTests/editing/selection/script-tests/triple-click-across-editability-boundaries.js:70
&gt; +    //testTripleClick(&quot;bar baz rab&quot;, &quot;middle&quot;, test3);

This is interesting, possibly a bug in VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299526</commentid>
    <comment_count>24</comment_count>
      <attachid>71850</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-10-26 09:43:25 -0700</bug_when>
    <thetext>Comment on attachment 71850
Patch

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

don&apos;t have time for a full review now, will look again in a few hours

&gt; LayoutTests/editing/selection/script-tests/triple-click-across-editability-boundaries.js:45
&gt; +function pause(millis) {
&gt; +    var startDate = new Date();
&gt; +    while ((new Date()) - startDate &lt; millis) {}

You should use eventSender.leapForward so the test isn&apos;t slow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299546</commentid>
    <comment_count>25</comment_count>
      <attachid>71850</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-26 10:07:50 -0700</bug_when>
    <thetext>Comment on attachment 71850
Patch

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

&gt; LayoutTests/editing/selection/script-tests/triple-click-across-editability-boundaries.js:51
&gt; +    var test1 = createElementWithInnerHTML(&quot;span&quot;,
&gt; +        &quot;foo &lt;span contenteditable&gt;bar&lt;/span&gt; baz&quot;);

You can fit all of this in one line.  In WebKit, we don&apos;t limit ourselves to 80 columns.

&gt;&gt; LayoutTests/editing/selection/script-tests/triple-click-across-editability-boundaries.js:70
&gt;&gt; +    //testTripleClick(&quot;bar baz rab&quot;, &quot;middle&quot;, test3);
&gt; 
&gt; This is interesting, possibly a bug in VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries ?

This is a quite serious bug.  We should fix this bug before checking in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299592</commentid>
    <comment_count>26</comment_count>
      <attachid>71850</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-10-26 10:57:18 -0700</bug_when>
    <thetext>Comment on attachment 71850
Patch

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

I agree that we should be able to select non-editable regions inside an editable region using these APIs. The user can do it using the mouse. The important thing is to be careful to make sure we don&apos;t select part of a non-editable region. It needs to be atomic. Can you add to your test the cases where the non-editable span is at the beginning/end of the paragraph?

r- for the test case

FWIW, I agree that script-tests are unfortunate. Feel free to fix https://bugs.webkit.org/show_bug.cgi?id=48344. :)

&gt;&gt;&gt; LayoutTests/editing/selection/script-tests/triple-click-across-editability-boundaries.js:70
&gt;&gt;&gt; +    //testTripleClick(&quot;bar baz rab&quot;, &quot;middle&quot;, test3);
&gt;&gt; 
&gt;&gt; This is interesting, possibly a bug in VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries ?
&gt; 
&gt; This is a quite serious bug.  We should fix this bug before checking in this patch.

It&apos;s not clear to me what the actual result here is. The standard behavior here is to put a FIXME, have it spit out the FAIL line and check in the expectations with the FAIL line. That&apos;s better that commented out code because it keeps the codepath tested (e.g. if someone ends up changing this in the future).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299686</commentid>
    <comment_count>27</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-26 12:08:18 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; &gt;&gt;&gt; LayoutTests/editing/selection/script-tests/triple-click-across-editability-boundaries.js:70
&gt; &gt;&gt;&gt; +    //testTripleClick(&quot;bar baz rab&quot;, &quot;middle&quot;, test3);
&gt; &gt;&gt; 
&gt; &gt;&gt; This is interesting, possibly a bug in VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries ?
&gt; &gt; 
&gt; &gt; This is a quite serious bug.  We should fix this bug before checking in this patch.
&gt; 
&gt; It&apos;s not clear to me what the actual result here is. The standard behavior here is to put a FIXME, have it spit out the FAIL line and check in the expectations with the FAIL line. That&apos;s better that commented out code because it keeps the codepath tested (e.g. if someone ends up changing this in the future).

Right, that&apos;s the general approach. But we shouldn&apos;t check-in this particular patch unless the bug in adjustSelectionToAvoidCrossingEditingBoundaries is fixed because we&apos;re generating a selection across an editing boundary. The bug is exposed precisely because startOfParagraph crosses editing boundary with this change.  Before this patch, the problem never showed up because startOfParagraph didn&apos;t cross any editing boundaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300919</commentid>
    <comment_count>28</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-28 00:19:12 -0700</bug_when>
    <thetext>Kalman,

Can I assign this bug to you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301139</commentid>
    <comment_count>29</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-28 10:16:25 -0700</bug_when>
    <thetext>yep</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301355</commentid>
    <comment_count>30</comment_count>
      <attachid>72238</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-28 14:56:11 -0700</bug_when>
    <thetext>Created attachment 72238
changes to visible_units &amp; DeleteSelectionCommand</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301914</commentid>
    <comment_count>31</comment_count>
      <attachid>72357</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-10-29 11:42:37 -0700</bug_when>
    <thetext>Created attachment 72357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301918</commentid>
    <comment_count>32</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-29 11:48:37 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=72357&amp;action=review

What happened to the change in DeleteSelectionCommand?

&gt; LayoutTests/editing/selection/script-tests/triple-click-across-editability-boundaries.js:58
&gt; +    // FIXME: currently this is [bar].
&gt; +    testTripleClick(&quot;foo bar baz&quot;, &quot;middle&quot;, test2);
&gt; +    testTripleClick(&quot;foo bar baz&quot;, &quot;right&quot;, test2);

Are you planning to fix this before landing this patch?

&gt; WebCore/WebCore.exp.in:420
&gt; -__ZN7WebCore16isEndOfParagraphERKNS_15VisiblePositionE
&gt; +__ZN7WebCore16isEndOfParagraphERKNS_15VisiblePositionENS_8Position27EditingBoundaryCrossingRuleE

You need to do the same in WebCore.order.  I&apos;m actually surprised that isEndOfParagraph / isStartOfParagraph are exported.  Are they really used in WebKit layer?  If not, we can get rid of these declarations entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301950</commentid>
    <comment_count>33</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-29 12:20:13 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; You need to do the same in WebCore.order.

The order files do *not* need to be updated. Those are generated by engineers at Apple who run some special tools to do so; there is no practical way to keep them up to date as we add functions and change what calls what. So there is no need to make changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319103</commentid>
    <comment_count>34</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-08 16:08:52 -0800</bug_when>
    <thetext>Could someone review kalman&apos;s patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319108</commentid>
    <comment_count>35</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-12-08 16:14:30 -0800</bug_when>
    <thetext>I have a new version of the patch that I&apos;ll upload soon.  Will ping the bug when it&apos;s done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319898</commentid>
    <comment_count>36</comment_count>
      <attachid>76159</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-12-09 20:32:48 -0800</bug_when>
    <thetext>Created attachment 76159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319900</commentid>
    <comment_count>37</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2010-12-09 20:37:01 -0800</bug_when>
    <thetext>This patch needed to change quite a lot to pass most of the cases I put in the layout test.  As such, it&apos;s a pretty invasive change so I don&apos;t really expect to get it submitted as-is any time soon.

(There are also a few tests that will need to be rebaselined, and another test that currently fails an assertion -- long story about that one).

So this is kind of... just for the record, while I go off and get some more experience with webkit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71385</attachid>
            <date>2010-10-20 20:58:44 -0700</date>
            <delta_ts>2010-10-25 04:43:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48037-20101021145840.patch</filename>
            <type>text/plain</type>
            <size>28085</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MjlmYmQ0ZWI5ZDhjZjUyYTMxZDkxZDIyNTA5ZTJiMWZmNmRkM2ZjLi5mM2VkZmM0
NGZkZTUzNTE5NWNkZmM5Y2NjZGM3MzA4YTNmODBhM2I2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMTAtMjAgIEJlbmphbWluIEthbG1hbiAgPGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJpcGxlIGNsaWNr
IGRvZXMgbm90IHNlbGVjdCB3aG9sZSBsaW5lIGZvciBtaXhlZCBjb250ZW50ZWRpdGFibGUgcmVn
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgw
MzcKKworICAgICAgICBUZXN0IHRoYXQgdHJpcGxlIGNsaWNrIG5vdyBzZWxlY3RzIHRoZSB3aG9s
ZSBsaW5lIGZvciBtaXhlZAorICAgICAgICBjb250ZW50ZWRpdGFibGUgcmVnaW9ucywgYW5kIGZp
eCBzb21lIGV4aXN0aW5nIHRlc3RzIGFmZmVjdGVkIGJ5IHRoZQorICAgICAgICBjaGFuZ2UuCisK
KyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvY29weS1iYWNrc2xhc2gtd2l0aC1ldWMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHkt
Ym91bmRhcmllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0
aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUz
OTA2ODEtZXhwZWN0ZWQuY2hlY2tzdW06CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbWl4ZWQt
ZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS13aW4vZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vZWRpdGluZy9kZWxldGluZy9kZWxldGUt
bWl4ZWQtZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJs
ZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvZWRpdGlu
Zy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9l
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3Rl
ZC50eHQ6CisKIDIwMTAtMTAtMTcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVh
dXJvcmEub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEuaHRtbCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS5odG1sCmluZGV4IDNjODU0ODk1NmNkN2RjODQy
NTU2YTA4YWZmZGEzOTI4NjllMTY0YzMuLjRlOWQ4OTk3YjYyYTUyNWUwYzFkMzZhYzFlNWFiYjBh
YzJjZWYyMjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4
MS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPHA+VGhpcyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgZXhwYW5zaW9uIGZv
ciBzbWFydCBkZWxldGUgd291bGQgbm90IGNvbnNpZGVyIGVkaXRhYmxlIGJvdW5kYXJpZXMuICBP
bmx5ICdmb28nIHNob3VsZCBiZSBkZWxldGVkLiAgWW91IHNob3VsZCBzZWUgJyBiYXInLiA8Yj5U
aGVyZSBpcyBhIGJ1Zzogd2hpbGUgdGhlIG5vbi1lZGl0YWJsZSBzcGFjZSBpc24ndCBkZWxldGVk
LCBkZWxldGlvbiBpbnNlcnRzIGEgcGxhY2Vob2xkZXIgd2hlbiBpdCBzaG91bGRuJ3QuPC9iPjwv
cD4KKzxwPlRoaXMgdGVzdHMgZm9yIGEgYnVnIHdoZXJlIGV4cGFuc2lvbiBmb3Igc21hcnQgZGVs
ZXRlIHdvdWxkIG5vdCBjb25zaWRlciBlZGl0YWJsZSBib3VuZGFyaWVzLiAgT25seSAnZm9vJyBz
aG91bGQgYmUgZGVsZXRlZC4gIFlvdSBzaG91bGQgc2VlICcgYmFyJy48L3A+CiA8ZGl2IGNvbnRl
bnRlZGl0YWJsZT0idHJ1ZSIgaWQ9ImRpdiI+Zm9vPHNwYW4gY29udGVudGVkaXRhYmxlPSJmYWxz
ZSI+IGJhcjwvc3Bhbj48L2Rpdj4KIAogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LWJhY2tzbGFzaC13aXRoLWV1Yy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1iYWNrc2xhc2gtd2l0aC1ldWMt
ZXhwZWN0ZWQudHh0CmluZGV4IDhjMDFjOTRiYWUzZjYxZGNjMDdmMjg5YThmMzBiZmFiOTI0Mjc0
MTIuLjBmMmU3YTgxYzYwN2VlNzI2ODBmZmZiOGJiNjk4ODIzZjdhMzI0ZmUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5LWJhY2tzbGFzaC13aXRoLWV1Yy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktYmFj
a3NsYXNoLXdpdGgtZXVjLWV4cGVjdGVkLnR4dApAQCAtOSwxMyArOSwxMCBAQCBUZXh0cyBpbiB0
aGUgRVVDIGZyYW1lIHdpbGwgYmUgcGFzdGVkIGhlcmUKIAogZnJvbSBFVUMgZGl2IHRvIFVURjgg
dGV4dC1jb250cm9sOiAKIGZyb20gRVVDIGRpdiB0byBVVEY4IGNvbnRlbnQtZWRpdGFibGU6IFwg
ZnJvbSBFVUMgcGFnZQotCiBmcm9tIEVVQyB0cmFuc2Zvcm0gdG8gVVRGOCB0ZXh0LWNvbnRyb2w6
IAogZnJvbSBFVUMgdHJhbnNmb3JtIHRvIFVURjggY29udGVudC1lZGl0YWJsZTogXCBGUk9NIEVV
QyBQQUdFIChUUkFOU0ZPUk1FRCkKLQogZnJvbSBFVUMgc2VjdXJlIHRvIFVURjggdGV4dC1jb250
cm9sOiAKIGZyb20gRVVDIHNlY3VyZSB0byBVVEY4IGNvbnRlbnQtZWRpdGFibGU6IOKAouKAouKA
ouKAouKAouKAouKAouKAouKAouKAouKAouKAouKAouKAouKAouKAouKAouKAouKAouKAouKAouKA
ouKAouKAogotCiBmcm9tIEVVQyBjb250cm9sIHRvIFVURjggdGV4dC1jb250cm9sOiAKIGZyb20g
RVVDIGNvbnRyb2wgdG8gVVRGOCBjb250ZW50LWVkaXRhYmxlOiBcIGZyb20gRVVDIHRleHQgY29u
dHJvbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUt
Y2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1i
b3VuZGFyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjQwNzg0NjU0MDMwYjg0NDFiYjVm
MGVkOWQ1MWRiNTAzMGY3NTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACitUZXN0cyB0aGF0IHRyaXBsZSBjbGlja2luZyBp
bnNpZGUgYSBjb250ZW50ZWRpdGFibGUgcmVnaW9uIHdoaWNoIGNvbnRhaW5zIGEgbm9uLWNvbnRl
bnRlZGl0YWJsZSByZWdpb24gc3RpbGwgaGlnaGxpZ2h0cyB0aGUgd2hvbGUgbGluZS4KKworVGhp
cyB0ZXN0IGRvZXMgbm90IHJ1biBpbnRlcmFjdGl2ZWx5LiBJdCB1c2VzIHRoZSBsYXlvdXRUZXN0
Q29udHJvbGxlcnMgZXZlbnRTZW5kZXIgdG8gZG8gbW91c2UgY2xpY2tzLgorCisKK1Rlc3QgMTog
bm9uLWNvbnRlbnRlZGl0YWJsZSBpbnNpZGUgYSBjb250ZW50ZWRpdGFibGUuIFRvIHJ1biBtYW51
YWxseSwgdHJpcGxlIGNsaWNrIG9uIGVpdGhlciAiZm9vIiwgImJheiIsIG9yICJvb2YiOyB0aGUg
d2hvbGUgbGluZSBzaG91bGQgYmUgc2VsZWN0ZWQuCisKK2ZvbyBiYXIgYmF6IHJhYiBvb2YKKwor
VGVzdCAyOiBjb250ZW50ZWRpdGFibGUgaW5zaWRlIGEgbm9uLWNvbnRlbnRlZGl0YWJsZS4gVG8g
cnVuIG1hbnVhbGx5LCB0cmlwbGUgY2xpY2sgb24gZWl0aGVyICJmb28iLCAiYmFyIiwgb3IgImJh
eiI7IHRoZSB3aG9sZSBsaW5lIHNob3VsZCBiZSBzZWxlY3RlZC4gTm90ZTogaW4gSUUsIHRyaXBs
ZS1jbGlja2luZyBvbiAiYmFyIiBvbmx5IHNlbGVjdHMgImJhciIuCisKK2ZvbyBiYXIgYmF6CisK
K1Rlc3QgMzogbmVzdGVkIGNvbnRlbnRlZGl0YWJsZS9ub24tY29udGVudGVkaXRhYmxlIHJlZ2lv
bnMuIFRvIHJ1biBtYW51YWxseSwgdHJpcGxlIGNsaWNrIG9uIGVpdGhlciAiZm9vIiwgImJheiIs
IG9yICJvb2YiOyB0aGUgd2hvbGUgbGluZSBzaG91bGQgYmUgc2VsZWN0ZWQuIE5vdGU6IGluIElF
LCB0cmlwbGUtY2xpY2tpbmcgb24gImJheiIgb25seSBzZWxlY3RzICJiYXoiLgorCitmb28gYmFy
IGJheiByYWIgb29mCisKK1Jlc3VsdHMgZm9yIGVsZW0xOgorU2VsZWN0ZWQgdGV4dCBvZiBlbGVt
MSBmcm9tIHRoZSBsZWZ0OiBbZm9vIGJhciBiYXogcmFiIG9vZl0KK1NlbGVjdGVkIHRleHQgb2Yg
ZWxlbTEgZnJvbSB0aGUgbWlkZGxlOiBbZm9vIGJhciBiYXogcmFiIG9vZl0KK1NlbGVjdGVkIHRl
eHQgb2YgZWxlbTEgZnJvbSB0aGUgcmlnaHQ6IFtmb28gYmFyIGJheiByYWIgb29mXQorUmVzdWx0
cyBmb3IgZWxlbTI6CitTZWxlY3RlZCB0ZXh0IG9mIGVsZW0yIGZyb20gdGhlIGxlZnQ6IFtmb28g
YmFyIGJhegorXQorU2VsZWN0ZWQgdGV4dCBvZiBlbGVtMiBmcm9tIHRoZSBtaWRkbGU6IFtmb28g
YmFyIGJhegorXQorU2VsZWN0ZWQgdGV4dCBvZiBlbGVtMiBmcm9tIHRoZSByaWdodDogW2ZvbyBi
YXIgYmF6CitdCitSZXN1bHRzIGZvciBlbGVtMzoKK1NlbGVjdGVkIHRleHQgb2YgZWxlbTMgZnJv
bSB0aGUgbGVmdDogW2ZvbyBiYXIgYmF6IHJhYiBvb2ZdCitTZWxlY3RlZCB0ZXh0IG9mIGVsZW0z
IGZyb20gdGhlIG1pZGRsZTogW2ZvbyBiYXIgYmF6IHJhYiBvb2ZdCitTZWxlY3RlZCB0ZXh0IG9m
IGVsZW0zIGZyb20gdGhlIHJpZ2h0OiBbZm9vIGJhciBiYXogcmFiIG9vZl0KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0
YWJpbGl0eS1ib3VuZGFyaWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90
cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mNTQ2YjkwYzcxMDM4YTEwNTNlZTFkYzI4OGVlZmRjOTU4YWQzNzYzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1l
ZGl0YWJpbGl0eS1ib3VuZGFyaWVzLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPGh0bWw+Cis8Ym9k
eT4KKzxwPlRlc3RzIHRoYXQgdHJpcGxlIGNsaWNraW5nIGluc2lkZSBhIGNvbnRlbnRlZGl0YWJs
ZSByZWdpb24gd2hpY2ggY29udGFpbnMgYSBub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbiBzdGls
bCBoaWdobGlnaHRzIHRoZSB3aG9sZSBsaW5lLjwvcD4KKzxwIHN0eWxlPSJjb2xvcjpncmVlbiI+
VGhpcyB0ZXN0IGRvZXMgbm90IHJ1biBpbnRlcmFjdGl2ZWx5LiAgSXQgdXNlcyB0aGUgbGF5b3V0
VGVzdENvbnRyb2xsZXJzIGV2ZW50U2VuZGVyIHRvIGRvIG1vdXNlIGNsaWNrcy48L3A+CisKKzxi
ciAvPgorPHA+VGVzdCAxOiBub24tY29udGVudGVkaXRhYmxlIGluc2lkZSBhIGNvbnRlbnRlZGl0
YWJsZS4gVG8gcnVuIG1hbnVhbGx5LCB0cmlwbGUgY2xpY2sgb24gZWl0aGVyICJmb28iLCAiYmF6
Iiwgb3IgIm9vZiI7IHRoZSB3aG9sZSBsaW5lIHNob3VsZCBiZSBzZWxlY3RlZC48L3A+Cis8ZGl2
IGNvbnRlbnRlZGl0YWJsZSBpZD0iZWxlbTEiPgorZm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT0i
ZmFsc2UiPmJhcjwvc3Bhbj4gYmF6IDxzcGFuIGNvbnRlbmVkaXRhYmxlPSJmYWxzZSI+cmFiPC9z
cGFuPiBvb2YKKzwvZGl2PgorCis8YnIgLz4KKzxwPlRlc3QgMjogY29udGVudGVkaXRhYmxlIGlu
c2lkZSBhIG5vbi1jb250ZW50ZWRpdGFibGUuIFRvIHJ1biBtYW51YWxseSwgdHJpcGxlIGNsaWNr
IG9uIGVpdGhlciAiZm9vIiwgImJhciIsIG9yICJiYXoiOyB0aGUgd2hvbGUgbGluZSBzaG91bGQg
YmUgc2VsZWN0ZWQuIDxlbT5Ob3RlOiBpbiBJRSwgdHJpcGxlLWNsaWNraW5nIG9uICJiYXIiIG9u
bHkgc2VsZWN0cyAiYmFyIi48L2VtPjwvcD4KKzxkaXYgaWQ9ImVsZW0yIj4KK2ZvbyA8c3BhbiBj
b250ZW50ZWRpdGFibGU+YmFyPC9zcGFuPiBiYXoKKzwvZGl2PgorCis8YnIgLz4KKzxwPlRlc3Qg
MzogbmVzdGVkIGNvbnRlbnRlZGl0YWJsZS9ub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbnMuIFRv
IHJ1biBtYW51YWxseSwgdHJpcGxlIGNsaWNrIG9uIGVpdGhlciAiZm9vIiwgImJheiIsIG9yICJv
b2YiOyB0aGUgd2hvbGUgbGluZSBzaG91bGQgYmUgc2VsZWN0ZWQuIDxlbT5Ob3RlOiBpbiBJRSwg
dHJpcGxlLWNsaWNraW5nIG9uICJiYXoiIG9ubHkgc2VsZWN0cyAiYmF6Ii48L2VtPjwvcD4KKzxk
aXYgY29udGVudGVkaXRhYmxlIGlkPSJlbGVtMyI+Citmb28gPHNwYW4gY29udGVudGVkaXRhYmxl
PSJmYWxzZSI+YmFyIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXo8L3NwYW4+IHJhYjwvc3Bhbj4g
b29mCis8L2Rpdj4KKworPGJyIC8+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPHNjcmlw
dD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgZWRpdGluZ1Rlc3QoKTsKK30KKworZnVuY3Rpb24g
ZWRpdGluZ1Rlc3QoKSB7CisgICAgdmFyIGVsZW1JZHMgPSBbImVsZW0xIiwgImVsZW0yIiwgImVs
ZW0zIl07CisgICAgZm9yICh2YXIgaSBpbiBlbGVtSWRzKSB7CisgICAgICAgIHZhciBlbGVtID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbUlkc1tpXSk7CisgICAgICAgIGxvZygiUmVzdWx0
cyBmb3IgIiArIGVsZW0uaWQgKyAiOlxuIik7CisgICAgICAgIHRyaXBsZUNsaWNrQW5kTG9nKGVs
ZW0sICJsZWZ0Iik7CisgICAgICAgIHRyaXBsZUNsaWNrQW5kTG9nKGVsZW0sICJtaWRkbGUiKTsK
KyAgICAgICAgdHJpcGxlQ2xpY2tBbmRMb2coZWxlbSwgInJpZ2h0Iik7CisgICAgfQorfQorCitm
dW5jdGlvbiB0cmlwbGVDbGlja0FuZExvZyhwYXJlbnQsIHNpZGUpIHsKKyAgICAvLyBQb3NpdGlv
biAoeCwgeSkgd2l0aGluIHRoZSBwYXJlbnQgb24gdGhlIGNvcnJlY3Qgc2lkZS4KKyAgICB2YXIg
eCA9IDA7CisgICAgaWYgKHNpZGUgPT09ICJsZWZ0IikKKyAgICAgIHggPSBwYXJlbnQub2Zmc2V0
TGVmdCArIDg7CisgICAgZWxzZSBpZiAoc2lkZSA9PT0gInJpZ2h0IikKKyAgICAgIHggPSBwYXJl
bnQub2Zmc2V0TGVmdCArIHBhcmVudC5vZmZzZXRXaWR0aCAtIDg7CisgICAgZWxzZSBpZiAoc2lk
ZSA9PT0gIm1pZGRsZSIpCisgICAgICB4ID0gcGFyZW50Lm9mZnNldExlZnQgKyAocGFyZW50Lm9m
ZnNldFdpZHRoIC8gMik7CisgICAgdmFyIHkgPSBwYXJlbnQub2Zmc2V0VG9wICsgNDsKKyAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKworICAgIC8vIFRyaXBsZSBjbGljay4KKyAg
ICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
KworICAgIGxvZygiU2VsZWN0ZWQgdGV4dCBvZiAiICsgcGFyZW50LmlkICsgIiBmcm9tIHRoZSAi
ICsgc2lkZSArICI6IFsiICsgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkgKyAiXVxuIik7Cit9CisK
K2Z1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpOworICAgIHZhciB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUobWVzc2FnZSk7CisgICAgY29uc29sZS5hcHBlbmRDaGlsZCh0ZXh0KTsKK30KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy81
MzkwNjgxLWV4cGVjdGVkLmNoZWNrc3VtCmluZGV4IDI0NzUwYTcwZjBlMzRlMTkzOGYxYTJjN2I1
Mjc5NzZkM2Y4NGM4MjAuLjU2YmZiOWMwODJiYjdlOTZhYTgxZGE1MWExN2JiMWQxYWE1OWI2OTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2VkaXRpbmcv
ZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC5jaGVja3N1bQorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQuY2hl
Y2tzdW0KQEAgLTEgKzEgQEAKLWQ2MzExMmE2Y2Y4OWFiMGIzN2Q1YjE4MjcyNTBhMjZkClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZjNiNDE1MzdkZDc4MTEzYjdmMzRjZTFiYjAxMzIwMjMK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy81
MzkwNjgxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGNmZjkwMmNlNmZjOTk4YjQyZTAzZTNk
MDNhMmIzYWVhYmUzOGFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkg
c2l6ZSA3ODR4NDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzY4
eDM5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTY1OiAiVGhpcyB0ZXN0cyBm
b3IgYSBidWcgd2hlcmUgZXhwYW5zaW9uIGZvciBzbWFydCBkZWxldGUgd291bGQgbm90IGNvbnNp
ZGVyIGVkaXRhYmxlIGJvdW5kYXJpZXMuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTY1LDAp
IHdpZHRoIDE3NzogIk9ubHkgJ2Zvbycgc2hvdWxkIGJlIGRlbGV0ZWQuICIKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNzQyLDApIHdpZHRoIDI2OiAiWW91IgorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDIwKSB3aWR0aCAxMDE6ICJzaG91bGQgc2VlICcgYmFyJy4iCisgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCw1Nikgc2l6ZSA3ODR4MjAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFO
fSBhdCAoMCwwKSBzaXplIDIweDE5CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMjB4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIwOiAi
YmFyIgorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhl
ZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM4ZjkzYTNi
NWRhNmM1NGJlZDczYWE4ZTk5MjgyMGQxOWMwOGY3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1p
eGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitF
RElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOnJhbmdlIGZyb20g
MCBvZiBTUEFOID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEgb2Yg
U1BBTiA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxF
R0FURTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIFNQQU4gPiBTUEFOID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMCBvZiBTUEFOID4gU1BBTiA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4g
U1BBTiA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0
ID4gU1BBTiA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpO
U1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElO
RyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5n
ZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBTUEFOID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBTUEFOID4gU1BBTiA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAwIG9mIFNQQU4gPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8g
MCBvZiBTUEFOID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5
Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElU
SU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6
V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDR4MjQgW2JvcmRlcjogKDJweCBzb2xpZCAjRkYwMDAw
KV0KKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CisgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgICAgUmVu
ZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CisgICAgICAgICAgICBSZW5kZXJJ
bmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTkKKyAgICAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgNDB4MTkKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMiwyKSB3aWR0aCA0MDogIjEyMzQ1IgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDB4MAorICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkg
c2l6ZSAweDAKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitjYXJldDogcG9z
aXRpb24gMCBvZiBjaGlsZCAzIHtTUEFOfSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtE
SVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQK
aW5kZXggY2UyNzNiNGIxZGY4NTE0OWJmN2MzNmRhZTZhZTdlYTk0ZDhkNDhmMC4uNTgxYTcyODgz
ZmQ2ZGY3NTNhMTIwYjVlZGY5NGI0YmQ2ZDUzZDY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2VkaXRpbmcvZGVsZXRp
bmcvNTM5MDY4MS1leHBlY3RlZC50eHQKQEAgLTMsMTkgKzMsMTQgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0
eDYwCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4NDAKICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzY4eDM5CiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNTY1OiAiVGhpcyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgZXhwYW5z
aW9uIGZvciBzbWFydCBkZWxldGUgd291bGQgbm90IGNvbnNpZGVyIGVkaXRhYmxlIGJvdW5kYXJp
ZXMuICIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTY1LDApIHdpZHRoIDE3NzogIk9ubHkgJ2Zv
bycgc2hvdWxkIGJlIGRlbGV0ZWQuICIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzQyLDApIHdp
ZHRoIDI2OiAiWW91IgogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDIwKSB3aWR0aCAxMDU6ICJz
aG91bGQgc2VlICcgYmFyJy4gIgotICAgICAgICBSZW5kZXJJbmxpbmUge0J9IGF0ICgwLDApIHNp
emUgNzM1eDM5Ci0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMDUsMjApIHNpemUg
NzM1eDM5Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTA1LDIwKSB3aWR0aCA2MzA6ICJUaGVy
ZSBpcyBhIGJ1Zzogd2hpbGUgdGhlIG5vbi1lZGl0YWJsZSBzcGFjZSBpc24ndCBkZWxldGVkLCBk
ZWxldGlvbiBpbnNlcnRzIGEgcGxhY2Vob2xkZXIgd2hlbiBpdCIKLSAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDQwKSB3aWR0aCA2NDogInNob3VsZG4ndC4iCi0gICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCw3Nikgc2l6ZSA3ODR4NDAKLSAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCww
KSBzaXplIDB4MTkKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU2KSBzaXplIDc4NHgy
MAogICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjB4MTkKLSAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjB4MTkKLSAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDIwKSB3aWR0aCAyMDogImJhciIKLWNhcmV0OiBwb3NpdGlvbiAwIG9m
IGNoaWxkIDAge0JSfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGJvZHkKKyAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMHgxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMjA6ICJiYXIiCitjYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAyIHtESVZ9
IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9l
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZWRpdGluZy9kZWxldGlu
Zy9kZWxldGUtbWl4ZWQtZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IDM1
YjcxYWZhYjg2ZTg1MTZhZTA5N2E3MTQxZDQ2NWExYmI0NjE1YTguLjFjOGY5M2EzYjVkYTZjNTRi
ZWQ3M2FhOGU5OTI4MjBkMTljMDhmNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250
ZW50LTAwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4
cGVjdGVkLnR4dApAQCAtMTQsMTYgKzE0LDE0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CiAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwwKSBzaXplIDIwNHgyNCBbYm9yZGVyOiAoMnB4IHNvbGlkICNGRjAwMDApXQotICAg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDR4MTkKKyAgICAgICAgUmVu
ZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CiAgICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFO
fSBhdCAoMCwwKSBzaXplIDQweDE5CiAgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0
ICgwLDApIHNpemUgNDB4MTkKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgy
LDIpIHNpemUgNDB4MTkKICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCA0
MDogIjEyMzQ1IgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDIsMikgc2l6ZSA0
eDE5Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDIsMikgd2lkdGggNDogIiAiCisgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAgUmVuZGVyQlIge0JS
fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
LWNhcmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAge0JSfSBvZiBjaGlsZCAzIHtTUEFOfSBvZiBj
aGlsZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGJvZHkKK2NhcmV0OiBwb3NpdGlvbiAw
IG9mIGNoaWxkIDMge1NQQU59IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDAge0RJVn0gb2Yg
Ym9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVsZXRp
bmcvNTM5MDY4MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGlu
Zy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dAppbmRleCA4NTRiMWQ1M2ZhMTE5NWVjYWU4
ZjBkMzcwNTNkM2ZkZTAxNTRjMTlhLi5mZTgwMDI1MDI2NDM4Yjc1OGU1ODcxMTZlZTZmODc5MzA2
MDhkNDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9kZWxl
dGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
ZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dApAQCAtMywxOSArMywxNCBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQg
KDAsMCkgc2l6ZSA3ODR4NTcKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4
NHgzOAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3Njh4MzgKICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NjU6ICJUaGlzIHRlc3RzIGZvciBhIGJ1
ZyB3aGVyZSBleHBhbnNpb24gZm9yIHNtYXJ0IGRlbGV0ZSB3b3VsZCBub3QgY29uc2lkZXIgZWRp
dGFibGUgYm91bmRhcmllcy4gIgogICAgICAgICAgIHRleHQgcnVuIGF0ICg1NjUsMCkgd2lkdGgg
MTc3OiAiT25seSAnZm9vJyBzaG91bGQgYmUgZGVsZXRlZC4gIgogICAgICAgICAgIHRleHQgcnVu
IGF0ICg3NDIsMCkgd2lkdGggMjY6ICJZb3UiCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTkp
IHdpZHRoIDEwNTogInNob3VsZCBzZWUgJyBiYXInLiAiCi0gICAgICAgIFJlbmRlcklubGluZSB7
Qn0gYXQgKDAsMCkgc2l6ZSA3MzV4MzgKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDEwNSwxOSkgc2l6ZSA3MzV4MzgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMDUsMTkpIHdp
ZHRoIDYzMDogIlRoZXJlIGlzIGEgYnVnOiB3aGlsZSB0aGUgbm9uLWVkaXRhYmxlIHNwYWNlIGlz
bid0IGRlbGV0ZWQsIGRlbGV0aW9uIGluc2VydHMgYSBwbGFjZWhvbGRlciB3aGVuIGl0IgotICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzgpIHdpZHRoIDY0OiAic2hvdWxkbid0LiIKLSAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDczKSBzaXplIDc4NHgzOAotICAgICAgICBSZW5kZXJC
UiB7QlJ9IGF0ICgwLDApIHNpemUgMHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE5KSB3
aWR0aCAxMDE6ICJzaG91bGQgc2VlICcgYmFyJy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw1NCkgc2l6ZSA3ODR4MTkKICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCww
KSBzaXplIDIweDE5Ci0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE5KSBzaXpl
IDIweDE5Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOSkgd2lkdGggMjA6ICJiYXIiCi1j
YXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHtCUn0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5
CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjB4MTkKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIwOiAiYmFyIgorY2FyZXQ6IHBvc2l0aW9u
IDAgb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDY2YWViYzdlNmEwMjc0YWYyMTlmMjczNzgyNjJmMDlmOWQ2MDBlYmQuLjQwYjY5NjU2OWVk
ZjZiYzA5NDViZWQ2ZDY3ZDQxYjJmMDRlMmYzNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQu
dHh0CkBAIC0zLDE4ICszLDEzIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAg
ICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHg1NAorICAgICAgUmVuZGVyQmxv
Y2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDM2CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDc3MngzNgogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5
MTogIlRoaXMgdGVzdHMgZm9yIGEgYnVnIHdoZXJlIGV4cGFuc2lvbiBmb3Igc21hcnQgZGVsZXRl
IHdvdWxkIG5vdCBjb25zaWRlciBlZGl0YWJsZSBib3VuZGFyaWVzLiAiCiAgICAgICAgICAgdGV4
dCBydW4gYXQgKDU5MSwwKSB3aWR0aCAxODE6ICJPbmx5ICdmb28nIHNob3VsZCBiZSBkZWxldGVk
LiIKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMTQwOiAiWW91IHNob3VsZCBz
ZWUgJyBiYXInLiAiCi0gICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA3Nzh4
MzYKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE0MCwxOCkgc2l6ZSA3Nzh4MzYK
LSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNDAsMTgpIHdpZHRoIDYzODogIlRoZXJlIGlzIGEg
YnVnOiB3aGlsZSB0aGUgbm9uLWVkaXRhYmxlIHNwYWNlIGlzbid0IGRlbGV0ZWQsIGRlbGV0aW9u
IGluc2VydHMgYSBwbGFjZWhvbGRlciB3aGVuIGl0IgotICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMzYpIHdpZHRoIDY3OiAic2hvdWxkbid0LiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDcwKSBzaXplIDc4NHgzNgotICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUg
MHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAxMzY6ICJZb3Ugc2hvdWxk
IHNlZSAnIGJhcicuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgNzg0
eDE4CiAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgxOAotICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAyMHgxOAotICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDIwOiAiYmFyIgotY2FyZXQ6IHBvc2l0aW9uIDAg
b2YgY2hpbGQgMCB7QlJ9IG9mIGNoaWxkIDIge0RJVn0gb2YgYm9keQorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIweDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCAyMDogImJhciIKK2NhcmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDIge0RJ
Vn0gb2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcv
ZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1l
ZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQKaW5kZXggMzUyYmRmNjc1ZTA5OTA3MTEy
MDBhYWI2OWNkOTNhZTVjODViOGQxOS4uMDEzYWNlYThkMGJkNGM5ODdkZjEzNWE5YjE2ZTc3MjY5
NzgxMTdiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbWl4ZWQt
ZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xNCwxNiArMTQsMTQgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQK
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjA0eDIyIFtib3JkZXI6ICgy
cHggc29saWQgI0ZGMDAwMCldCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkg
c2l6ZSA0NHgxOAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4
MTgKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTgKICAgICAgICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgxOAogICAgICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIsMikgc2l6ZSA0MHgxOAogICAgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgyLDIpIHdpZHRoIDQwOiAiMTIzNDUiCi0gICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg0MiwyKSBzaXplIDR4MTgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICg0Miwy
KSB3aWR0aCA0OiAiICIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAweDAKICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMHgwCi0g
ICAgICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7QlJ9
IG9mIGNoaWxkIDMge1NQQU59IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDAge0RJVn0gb2Yg
Ym9keQorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMyB7U1BBTn0gb2YgY2hpbGQgMSB7U1BB
Tn0gb2YgY2hpbGQgMCB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dAppbmRl
eCA4MmMwY2JhMDkxOTZlM2E2ODQ3ZjkyMGMxNTNjYWIwYjUyZWU4MTgwLi5kZWY0MDljMjkzMDVm
ODZmNDI2MGZiNzJkN2U5MDM4OTI4NjhlMDcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQK
QEAgLTMsMTggKzMsMTMgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAg
UmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDU5CisgICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MzgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNzc4eDM4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTk4OiAi
VGhpcyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgZXhwYW5zaW9uIGZvciBzbWFydCBkZWxldGUgd291
bGQgbm90IGNvbnNpZGVyIGVkaXRhYmxlIGJvdW5kYXJpZXMuICIKICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNTk4LDApIHdpZHRoIDE4MDogIk9ubHkgJ2Zvbycgc2hvdWxkIGJlIGRlbGV0ZWQuIgot
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE5KSB3aWR0aCAxNDE6ICJZb3Ugc2hvdWxkIHNlZSAn
IGJhcicuICIKLSAgICAgICAgUmVuZGVySW5saW5lIHtCfSBhdCAoMCwwKSBzaXplIDc0Nng0MAot
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQxLDE5KSBzaXplIDc0Nng0MAotICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDE0MSwxOSkgd2lkdGggNjA1OiAiVGhlcmUgaXMgYSBidWc6
IHdoaWxlIHRoZSBub24tZWRpdGFibGUgc3BhY2UgaXNuJ3QgZGVsZXRlZCwgZGVsZXRpb24gaW5z
ZXJ0cyBhIHBsYWNlaG9sZGVyIgotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzkpIHdpZHRo
IDEyMzogIndoZW4gaXQgc2hvdWxkbid0LiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDczKSBzaXplIDc4NHgzOAotICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE5KSB3aWR0aCAxMzc6ICJZb3Ugc2hvdWxkIHNl
ZSAnIGJhcicuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgNzg0eDE5
CiAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMXgxOQotICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOSkgc2l6ZSAyMXgxOQotICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMTkpIHdpZHRoIDIxOiAiYmFyIgotY2FyZXQ6IHBvc2l0aW9uIDAgb2Yg
Y2hpbGQgMCB7QlJ9IG9mIGNoaWxkIDIge0RJVn0gb2YgYm9keQorICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxeDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAyMTogImJhciIKK2NhcmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDIge0RJVn0g
b2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZWRpdGluZy9kZWxl
dGluZy9kZWxldGUtbWl4ZWQtZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbWl4ZWQtZWRpdGFi
bGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IDEwNjY5MWI5NzE4MmI1NzY2MjNlY2Jl
OWIzNTEyNzA2NDFlNWRmOTguLmZiZTUwODU0ZDM2OWFkY2ZhNDhlZmI1NWZjYTA4MTI4NzJkM2Ez
ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2VkaXRpbmcvZGVsZXRpbmcv
ZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJs
ZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQKQEAgLTE0LDE2ICsxNCwxNCBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAogICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDR4MjMgW2JvcmRlcjogKDJweCBzb2xp
ZCAjRkYwMDAwKV0KLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ0
eDE5CisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgxOQogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgxOQogICAgICAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CiAgICAgICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDQweDE5CiAgICAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDIsMikgd2lkdGggNDA6ICIxMjM0NSIKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDQyLDIpIHNpemUgNHgxOQotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQyLDIpIHdpZHRo
IDQ6ICIgIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAog
ICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAg
ICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMHgwCi1jYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHtCUn0gb2YgY2hp
bGQgMyB7U1BBTn0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMCB7RElWfSBvZiBib2R5Citj
YXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAzIHtTUEFOfSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBj
aGlsZCAwIHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMGQxOWU0MDczMWY4YjdmMDM4OTBkMTljMjYyNzRkMTJkZjAw
NzZjNC4uNWRlOTIzNGY0YWJjODkwNjZlMzVhNGI0OGJmOGYxNTkxYzcyZGRmNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxMC0xMC0yMCAgQmVuamFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmlwbGUg
Y2xpY2sgZG9lcyBub3Qgc2VsZWN0IHdob2xlIGxpbmUgZm9yIG1peGVkIGNvbnRlbnRlZGl0YWJs
ZSByZWdpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00ODAzNworCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1h
Y3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL3Zp
c2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRPZlBhcmFncmFwaCk6IFJl
bW92ZSBleHBsaWNpdCBjb250ZW50ZWRpdGFibGUgYm91bmRhcnkKKyAgICAgICAgc2VsZWN0aW9u
IGNoZWNrLiAgRG9uJ3QgZXh0ZW5kIGludG8gbm9kZXMgd2hlcmUgdGhlIGNhcmV0IGNhbid0IGJl
CisgICAgICAgIHJlbmRlcmVkLCBsaWtlIGVuZE9mUGFyYWdyYXBoLgorICAgICAgICAoV2ViQ29y
ZTo6ZW5kT2ZQYXJhZ3JhcGgpOiBSZW1vdmUgZXhwbGljaXQgY29udGVudGVkaXRhYmxlIGJvdW5k
YXJ5CisgICAgICAgIHNlbGVjdGlvbiBjaGVjay4KKwogMjAxMC0xMC0xNyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtv
di4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcCBiL1dlYkNv
cmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAppbmRleCBkOWNhMjIzMzg2MDk5MGEwNzBiZjI1
NjRiMzMyYTg0YTljOTk4YzM3Li44OTFlN2M0OTgwNjRhY2E4N2YxNTliYzczM2NhNjMzY2ZjOGYz
NjQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKKysrIGIv
V2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCkBAIC03OTcsOCArNzk3LDYgQEAgVmlz
aWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjKQog
CiAgICAgTm9kZSAqbiA9IHN0YXJ0Tm9kZTsKICAgICB3aGlsZSAobikgewotICAgICAgICBpZiAo
bi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFydE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkp
Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgUmVuZGVyT2JqZWN0ICpyID0gbi0+cmVuZGVy
ZXIoKTsKICAgICAgICAgaWYgKCFyKSB7CiAgICAgICAgICAgICBuID0gbi0+dHJhdmVyc2VQcmV2
aW91c05vZGVQb3N0T3JkZXIoc3RhcnRCbG9jayk7CkBAIC04MTIsOCArODEwLDEwIEBAIFZpc2li
bGVQb3NpdGlvbiBzdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYykKICAg
ICAgICAgCiAgICAgICAgIGlmIChyLT5pc0JSKCkgfHwgaXNCbG9jayhuKSkKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgIGlmIChyLT5pc1RleHQoKSkgeworCisgICAg
ICAgIC8vIEZJWE1FOiBXZSBhdm9pZCByZXR1cm5pbmcgYSBwb3NpdGlvbiB3aGVyZSB0aGUgcmVu
ZGVyZXIgY2FuJ3QgYWNjZXB0IHRoZSBjYXJldC4KKyAgICAgICAgLy8gV2UgYWxzbyBkbyB0aGlz
IGluIGVuZE9mUGFyYWdyYXBoLCBhbmQgbWlnaHQgd2FudCB0byBkbyBpdCBpbiBvdGhlciBjYXNl
cyB0b28uCisgICAgICAgIGlmIChyLT5pc1RleHQoKSAmJiByLT5jYXJldE1heFJlbmRlcmVkT2Zm
c2V0KCkgPiAwKSB7CiAgICAgICAgICAgICBpZiAoc3R5bGUtPnByZXNlcnZlTmV3bGluZSgpKSB7
CiAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqIGNoYXJzID0gdG9SZW5kZXJUZXh0KHIpLT5j
aGFyYWN0ZXJzKCk7CiAgICAgICAgICAgICAgICAgaW50IGkgPSB0b1JlbmRlclRleHQociktPnRl
eHRMZW5ndGgoKTsKQEAgLTg1Nyw4ICs4NTcsNiBAQCBWaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJh
Z3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZjKQogCiAgICAgTm9kZSAqbiA9IHN0YXJ0Tm9k
ZTsKICAgICB3aGlsZSAobikgewotICAgICAgICBpZiAobi0+aXNDb250ZW50RWRpdGFibGUoKSAh
PSBzdGFydE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCi0gICAgICAgICAgICBicmVhazsKICAg
ICAgICAgUmVuZGVyT2JqZWN0ICpyID0gbi0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKCFyKSB7
CiAgICAgICAgICAgICBuID0gbi0+dHJhdmVyc2VOZXh0Tm9kZShzdGF5SW5zaWRlQmxvY2spOwpA
QCAtODcyLDkgKzg3MCw4IEBAIFZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBW
aXNpYmxlUG9zaXRpb24gJmMpCiAgICAgICAgIAogICAgICAgICBpZiAoci0+aXNCUigpIHx8IGlz
QmxvY2sobikpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgIC8v
IEZJWE1FOiBXZSBhdm9pZCByZXR1cm5pbmcgYSBwb3NpdGlvbiB3aGVyZSB0aGUgcmVuZGVyZXIg
Y2FuJ3QgYWNjZXB0IHRoZSBjYXJldC4KLSAgICAgICAgLy8gV2Ugc2hvdWxkIHByb2JhYmx5IGRv
IHRoaXMgaW4gb3RoZXIgY2FzZXMgc3VjaCBhcyBzdGFydE9mUGFyYWdyYXBoLgogICAgICAgICBp
ZiAoci0+aXNUZXh0KCkgJiYgci0+Y2FyZXRNYXhSZW5kZXJlZE9mZnNldCgpID4gMCkgewogICAg
ICAgICAgICAgaW50IGxlbmd0aCA9IHRvUmVuZGVyVGV4dChyKS0+dGV4dExlbmd0aCgpOwogICAg
ICAgICAgICAgaWYgKHN0eWxlLT5wcmVzZXJ2ZU5ld2xpbmUoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71526</attachid>
            <date>2010-10-21 22:27:43 -0700</date>
            <delta_ts>2010-10-25 04:30:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48037-20101022162739.patch</filename>
            <type>text/plain</type>
            <size>28196</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MjlmYmQ0ZWI5ZDhjZjUyYTMxZDkxZDIyNTA5ZTJiMWZmNmRkM2ZjLi4yYzJmNTVk
ZjM3MzA2NmJkZmNjNzgxNGQ5MDkyYWVmMDYwYTU1YTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTAtMTAtMjAgIEJlbmphbWluIEthbG1hbiAgPGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJpcGxlIGNsaWNr
IGRvZXMgbm90IHNlbGVjdCB3aG9sZSBsaW5lIGZvciBtaXhlZCBjb250ZW50ZWRpdGFibGUgcmVn
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgw
MzcKKworICAgICAgICBUZXN0IHRoYXQgdHJpcGxlIGNsaWNrIG5vdyBzZWxlY3RzIHRoZSB3aG9s
ZSBsaW5lIGZvciBtaXhlZAorICAgICAgICBjb250ZW50ZWRpdGFibGUgcmVnaW9ucywgYW5kIGZp
eCBzb21lIGV4aXN0aW5nIHRlc3RzIGFmZmVjdGVkIGJ5IHRoZQorICAgICAgICBjaGFuZ2UuCisK
KyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvY29weS1iYWNrc2xhc2gtd2l0aC1ldWMtZXhwZWN0ZWQudHh0OiBSZS1i
YXNlbGluZQorICAgICAgICBub3cgdGhhdCBwYXN0aW5nIGludG8gYSBmdWxseSBzZWxlY3RlZCBj
b250ZW50ZWRpdGFibGUgc3BhbiBubyBsb25nZXIKKyAgICAgICAgaW5zZXJ0cyBhbiBleHRyYSA8
YnI+IGF0IHRoZSBlbmQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNr
LWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1i
b3VuZGFyaWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC5jaGVja3N1bToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2Rl
bGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9lZGl0aW5nL2RlbGV0aW5nLzUz
OTA2ODEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9lZGl0
aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4
MS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcv
ZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxl
LWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0xMC0xNyAgSnVsaWVuIENoYWZmcmFp
eCAgPGpjaGFmZnJhaXhAY29kZWF1cm9yYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
cmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvNTM5
MDY4MS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLmh0bWwKaW5k
ZXggM2M4NTQ4OTU2Y2Q3ZGM4NDI1NTZhMDhhZmZkYTM5Mjg2OWUxNjRjMy4uNGU5ZDg5OTdiNjJh
NTI1ZTBjMWQzNmFjMWU1YWJiMGFjMmNlZjIyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9kZWxldGluZy81MzkwNjgxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxl
dGluZy81MzkwNjgxLmh0bWwKQEAgLTEsNCArMSw0IEBACi08cD5UaGlzIHRlc3RzIGZvciBhIGJ1
ZyB3aGVyZSBleHBhbnNpb24gZm9yIHNtYXJ0IGRlbGV0ZSB3b3VsZCBub3QgY29uc2lkZXIgZWRp
dGFibGUgYm91bmRhcmllcy4gIE9ubHkgJ2Zvbycgc2hvdWxkIGJlIGRlbGV0ZWQuICBZb3Ugc2hv
dWxkIHNlZSAnIGJhcicuIDxiPlRoZXJlIGlzIGEgYnVnOiB3aGlsZSB0aGUgbm9uLWVkaXRhYmxl
IHNwYWNlIGlzbid0IGRlbGV0ZWQsIGRlbGV0aW9uIGluc2VydHMgYSBwbGFjZWhvbGRlciB3aGVu
IGl0IHNob3VsZG4ndC48L2I+PC9wPgorPHA+VGhpcyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgZXhw
YW5zaW9uIGZvciBzbWFydCBkZWxldGUgd291bGQgbm90IGNvbnNpZGVyIGVkaXRhYmxlIGJvdW5k
YXJpZXMuICBPbmx5ICdmb28nIHNob3VsZCBiZSBkZWxldGVkLiAgWW91IHNob3VsZCBzZWUgJyBi
YXInLjwvcD4KIDxkaXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBpZD0iZGl2Ij5mb288c3BhbiBj
b250ZW50ZWRpdGFibGU9ImZhbHNlIj4gYmFyPC9zcGFuPjwvZGl2PgogCiA8c2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktYmFja3NsYXNoLXdp
dGgtZXVjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jb3B5
LWJhY2tzbGFzaC13aXRoLWV1Yy1leHBlY3RlZC50eHQKaW5kZXggOGMwMWM5NGJhZTNmNjFkY2Mw
N2YyODlhOGYzMGJmYWI5MjQyNzQxMi4uMGYyZTdhODFjNjA3ZWU3MjY4MGZmZmI4YmI2OTg4MjNm
N2EzMjRmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHkt
YmFja3NsYXNoLXdpdGgtZXVjLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvY29weS1iYWNrc2xhc2gtd2l0aC1ldWMtZXhwZWN0ZWQudHh0CkBAIC05LDEz
ICs5LDEwIEBAIFRleHRzIGluIHRoZSBFVUMgZnJhbWUgd2lsbCBiZSBwYXN0ZWQgaGVyZQogCiBm
cm9tIEVVQyBkaXYgdG8gVVRGOCB0ZXh0LWNvbnRyb2w6IAogZnJvbSBFVUMgZGl2IHRvIFVURjgg
Y29udGVudC1lZGl0YWJsZTogXCBmcm9tIEVVQyBwYWdlCi0KIGZyb20gRVVDIHRyYW5zZm9ybSB0
byBVVEY4IHRleHQtY29udHJvbDogCiBmcm9tIEVVQyB0cmFuc2Zvcm0gdG8gVVRGOCBjb250ZW50
LWVkaXRhYmxlOiBcIEZST00gRVVDIFBBR0UgKFRSQU5TRk9STUVEKQotCiBmcm9tIEVVQyBzZWN1
cmUgdG8gVVRGOCB0ZXh0LWNvbnRyb2w6IAogZnJvbSBFVUMgc2VjdXJlIHRvIFVURjggY29udGVu
dC1lZGl0YWJsZTog4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCi
4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCi4oCiCi0KIGZyb20gRVVDIGNvbnRyb2wgdG8gVVRGOCB0
ZXh0LWNvbnRyb2w6IAogZnJvbSBFVUMgY29udHJvbCB0byBVVEY4IGNvbnRlbnQtZWRpdGFibGU6
IFwgZnJvbSBFVUMgdGV4dCBjb250cm9sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2st
YWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFi
NDA3ODQ2NTQwMzBiODQ0MWJiNWYwZWQ5ZDUxZGI1MDMwZjc1MDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRh
YmlsaXR5LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAKK1Rlc3RzIHRo
YXQgdHJpcGxlIGNsaWNraW5nIGluc2lkZSBhIGNvbnRlbnRlZGl0YWJsZSByZWdpb24gd2hpY2gg
Y29udGFpbnMgYSBub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbiBzdGlsbCBoaWdobGlnaHRzIHRo
ZSB3aG9sZSBsaW5lLgorCitUaGlzIHRlc3QgZG9lcyBub3QgcnVuIGludGVyYWN0aXZlbHkuIEl0
IHVzZXMgdGhlIGxheW91dFRlc3RDb250cm9sbGVycyBldmVudFNlbmRlciB0byBkbyBtb3VzZSBj
bGlja3MuCisKKworVGVzdCAxOiBub24tY29udGVudGVkaXRhYmxlIGluc2lkZSBhIGNvbnRlbnRl
ZGl0YWJsZS4gVG8gcnVuIG1hbnVhbGx5LCB0cmlwbGUgY2xpY2sgb24gZWl0aGVyICJmb28iLCAi
YmF6Iiwgb3IgIm9vZiI7IHRoZSB3aG9sZSBsaW5lIHNob3VsZCBiZSBzZWxlY3RlZC4KKworZm9v
IGJhciBiYXogcmFiIG9vZgorCitUZXN0IDI6IGNvbnRlbnRlZGl0YWJsZSBpbnNpZGUgYSBub24t
Y29udGVudGVkaXRhYmxlLiBUbyBydW4gbWFudWFsbHksIHRyaXBsZSBjbGljayBvbiBlaXRoZXIg
ImZvbyIsICJiYXIiLCBvciAiYmF6IjsgdGhlIHdob2xlIGxpbmUgc2hvdWxkIGJlIHNlbGVjdGVk
LiBOb3RlOiBpbiBJRSwgdHJpcGxlLWNsaWNraW5nIG9uICJiYXIiIG9ubHkgc2VsZWN0cyAiYmFy
Ii4KKworZm9vIGJhciBiYXoKKworVGVzdCAzOiBuZXN0ZWQgY29udGVudGVkaXRhYmxlL25vbi1j
b250ZW50ZWRpdGFibGUgcmVnaW9ucy4gVG8gcnVuIG1hbnVhbGx5LCB0cmlwbGUgY2xpY2sgb24g
ZWl0aGVyICJmb28iLCAiYmF6Iiwgb3IgIm9vZiI7IHRoZSB3aG9sZSBsaW5lIHNob3VsZCBiZSBz
ZWxlY3RlZC4gTm90ZTogaW4gSUUsIHRyaXBsZS1jbGlja2luZyBvbiAiYmF6IiBvbmx5IHNlbGVj
dHMgImJheiIuCisKK2ZvbyBiYXIgYmF6IHJhYiBvb2YKKworUmVzdWx0cyBmb3IgZWxlbTE6CitT
ZWxlY3RlZCB0ZXh0IG9mIGVsZW0xIGZyb20gdGhlIGxlZnQ6IFtmb28gYmFyIGJheiByYWIgb29m
XQorU2VsZWN0ZWQgdGV4dCBvZiBlbGVtMSBmcm9tIHRoZSBtaWRkbGU6IFtmb28gYmFyIGJheiBy
YWIgb29mXQorU2VsZWN0ZWQgdGV4dCBvZiBlbGVtMSBmcm9tIHRoZSByaWdodDogW2ZvbyBiYXIg
YmF6IHJhYiBvb2ZdCitSZXN1bHRzIGZvciBlbGVtMjoKK1NlbGVjdGVkIHRleHQgb2YgZWxlbTIg
ZnJvbSB0aGUgbGVmdDogW2ZvbyBiYXIgYmF6CitdCitTZWxlY3RlZCB0ZXh0IG9mIGVsZW0yIGZy
b20gdGhlIG1pZGRsZTogW2ZvbyBiYXIgYmF6CitdCitTZWxlY3RlZCB0ZXh0IG9mIGVsZW0yIGZy
b20gdGhlIHJpZ2h0OiBbZm9vIGJhciBiYXoKK10KK1Jlc3VsdHMgZm9yIGVsZW0zOgorU2VsZWN0
ZWQgdGV4dCBvZiBlbGVtMyBmcm9tIHRoZSBsZWZ0OiBbZm9vIGJhciBiYXogcmFiIG9vZl0KK1Nl
bGVjdGVkIHRleHQgb2YgZWxlbTMgZnJvbSB0aGUgbWlkZGxlOiBbZm9vIGJhciBiYXogcmFiIG9v
Zl0KK1NlbGVjdGVkIHRleHQgb2YgZWxlbTMgZnJvbSB0aGUgcmlnaHQ6IFtmb28gYmFyIGJheiBy
YWIgb29mXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlw
bGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91bmRh
cmllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMWIxYzVmOGZhNmE5NDAwMTNhYzhhODlmOWE3MjFiNTgz
ZDUwYzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90
cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbApAQCAtMCwwICsx
LDY4IEBACis8aHRtbD4KKzxib2R5PgorPHA+VGVzdHMgdGhhdCB0cmlwbGUgY2xpY2tpbmcgaW5z
aWRlIGEgY29udGVudGVkaXRhYmxlIHJlZ2lvbiB3aGljaCBjb250YWlucyBhIG5vbi1jb250ZW50
ZWRpdGFibGUgcmVnaW9uIHN0aWxsIGhpZ2hsaWdodHMgdGhlIHdob2xlIGxpbmUuPC9wPgorPHAg
c3R5bGU9ImNvbG9yOmdyZWVuIj5UaGlzIHRlc3QgZG9lcyBub3QgcnVuIGludGVyYWN0aXZlbHku
ICBJdCB1c2VzIHRoZSBsYXlvdXRUZXN0Q29udHJvbGxlcnMgZXZlbnRTZW5kZXIgdG8gZG8gbW91
c2UgY2xpY2tzLjwvcD4KKworPGJyIC8+Cis8cD5UZXN0IDE6IG5vbi1jb250ZW50ZWRpdGFibGUg
aW5zaWRlIGEgY29udGVudGVkaXRhYmxlLiBUbyBydW4gbWFudWFsbHksIHRyaXBsZSBjbGljayBv
biBlaXRoZXIgImZvbyIsICJiYXoiLCBvciAib29mIjsgdGhlIHdob2xlIGxpbmUgc2hvdWxkIGJl
IHNlbGVjdGVkLjwvcD4KKzxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJ0ZXN0MUVsZW1lbnQiPgor
Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT0iZmFsc2UiPmJhcjwvc3Bhbj4gYmF6IDxzcGFuIGNv
bnRlbmVkaXRhYmxlPSJmYWxzZSI+cmFiPC9zcGFuPiBvb2YKKzwvZGl2PgorCis8YnIgLz4KKzxw
PlRlc3QgMjogY29udGVudGVkaXRhYmxlIGluc2lkZSBhIG5vbi1jb250ZW50ZWRpdGFibGUuIFRv
IHJ1biBtYW51YWxseSwgdHJpcGxlIGNsaWNrIG9uIGVpdGhlciAiZm9vIiwgImJhciIsIG9yICJi
YXoiOyB0aGUgd2hvbGUgbGluZSBzaG91bGQgYmUgc2VsZWN0ZWQuIDxlbT5Ob3RlOiBpbiBJRSwg
dHJpcGxlLWNsaWNraW5nIG9uICJiYXIiIG9ubHkgc2VsZWN0cyAiYmFyIi48L2VtPjwvcD4KKzxk
aXYgaWQ9InRlc3QyRWxlbWVudCI+Citmb28gPHNwYW4gY29udGVudGVkaXRhYmxlPmJhcjwvc3Bh
bj4gYmF6Cis8L2Rpdj4KKworPGJyIC8+Cis8cD5UZXN0IDM6IG5lc3RlZCBjb250ZW50ZWRpdGFi
bGUvbm9uLWNvbnRlbnRlZGl0YWJsZSByZWdpb25zLiBUbyBydW4gbWFudWFsbHksIHRyaXBsZSBj
bGljayBvbiBlaXRoZXIgImZvbyIsICJiYXoiLCBvciAib29mIjsgdGhlIHdob2xlIGxpbmUgc2hv
dWxkIGJlIHNlbGVjdGVkLiA8ZW0+Tm90ZTogaW4gSUUsIHRyaXBsZS1jbGlja2luZyBvbiAiYmF6
IiBvbmx5IHNlbGVjdHMgImJheiIuPC9lbT48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBpZD0i
dGVzdDNFbGVtZW50Ij4KK2ZvbyA8c3BhbiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj5iYXIgPHNw
YW4gY29udGVudGVkaXRhYmxlPmJhejwvc3Bhbj4gcmFiPC9zcGFuPiBvb2YKKzwvZGl2PgorCis8
YnIgLz4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB2YXIgdGVzdEVsZW1lbnRJZHMgPSBbInRlc3QxRWxlbWVudCIsICJ0ZXN0MkVs
ZW1lbnQiLCAidGVzdDNFbGVtZW50Il07CisgICAgZm9yICh2YXIgaSBpbiB0ZXN0RWxlbWVudElk
cykgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRlc3RF
bGVtZW50SWRzW2ldKTsKKyAgICAgICAgbG9nKCJSZXN1bHRzIGZvciAiICsgZWxlbWVudC5pZCAr
ICI6XG4iKTsKKyAgICAgICAgdHJpcGxlQ2xpY2tBbmRMb2coZWxlbWVudCwgImxlZnQiKTsKKyAg
ICAgICAgdHJpcGxlQ2xpY2tBbmRMb2coZWxlbWVudCwgIm1pZGRsZSIpOworICAgICAgICB0cmlw
bGVDbGlja0FuZExvZyhlbGVtZW50LCAicmlnaHQiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRy
aXBsZUNsaWNrQW5kTG9nKHBhcmVudCwgc2lkZSkgeworICAgIC8vIFBvc2l0aW9uICh4LCB5KSB3
aXRoaW4gdGhlIHBhcmVudCBvbiB0aGUgY29ycmVjdCBzaWRlLgorICAgIHZhciB4ID0gMDsKKyAg
ICBpZiAoc2lkZSA9PT0gImxlZnQiKQorICAgICAgeCA9IHBhcmVudC5vZmZzZXRMZWZ0ICsgODsK
KyAgICBlbHNlIGlmIChzaWRlID09PSAicmlnaHQiKQorICAgICAgeCA9IHBhcmVudC5vZmZzZXRM
ZWZ0ICsgcGFyZW50Lm9mZnNldFdpZHRoIC0gODsKKyAgICBlbHNlIGlmIChzaWRlID09PSAibWlk
ZGxlIikKKyAgICAgIHggPSBwYXJlbnQub2Zmc2V0TGVmdCArIChwYXJlbnQub2Zmc2V0V2lkdGgg
LyAyKTsKKyAgICB2YXIgeSA9IHBhcmVudC5vZmZzZXRUb3AgKyA0OworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOworCisgICAgLy8gVHJpcGxlIGNsaWNrLgorICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworCisgICAgbG9n
KCJTZWxlY3RlZCB0ZXh0IG9mICIgKyBwYXJlbnQuaWQgKyAiIGZyb20gdGhlICIgKyBzaWRlICsg
IjogWyIgKyBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKSArICJdXG4iKTsKK30KKworZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKK30KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy81Mzkw
NjgxLWV4cGVjdGVkLmNoZWNrc3VtCmluZGV4IDI0NzUwYTcwZjBlMzRlMTkzOGYxYTJjN2I1Mjc5
NzZkM2Y4NGM4MjAuLjU2YmZiOWMwODJiYjdlOTZhYTgxZGE1MWExN2JiMWQxYWE1OWI2OTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2VkaXRpbmcvZGVs
ZXRpbmcvNTM5MDY4MS1leHBlY3RlZC5jaGVja3N1bQorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQuY2hlY2tz
dW0KQEAgLTEgKzEgQEAKLWQ2MzExMmE2Y2Y4OWFiMGIzN2Q1YjE4MjcyNTBhMjZkClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQorZjNiNDE1MzdkZDc4MTEzYjdmMzRjZTFiYjAxMzIwMjMKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy81Mzkw
NjgxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGNmZjkwMmNlNmZjOTk4YjQyZTAzZTNkMDNh
MmIzYWVhYmUzOGFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6
ZSA3ODR4NDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzY4eDM5
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTY1OiAiVGhpcyB0ZXN0cyBmb3Ig
YSBidWcgd2hlcmUgZXhwYW5zaW9uIGZvciBzbWFydCBkZWxldGUgd291bGQgbm90IGNvbnNpZGVy
IGVkaXRhYmxlIGJvdW5kYXJpZXMuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTY1LDApIHdp
ZHRoIDE3NzogIk9ubHkgJ2Zvbycgc2hvdWxkIGJlIGRlbGV0ZWQuICIKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNzQyLDApIHdpZHRoIDI2OiAiWW91IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDIwKSB3aWR0aCAxMDE6ICJzaG91bGQgc2VlICcgYmFyJy4iCisgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCw1Nikgc2l6ZSA3ODR4MjAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDIweDE5CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMjB4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIwOiAiYmFy
IgorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nL2Rl
bGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1l
ZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM4ZjkzYTNiNWRh
NmM1NGJlZDczYWE4ZTk5MjgyMGQxOWMwOGY3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1peGVk
LWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOnJhbmdlIGZyb20gMCBv
ZiBTUEFOID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEgb2YgU1BB
TiA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIFNQQU4gPiBTUEFOID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMCBvZiBTUEFOID4gU1BBTiA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gU1BB
TiA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4g
U1BBTiA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1Nl
bGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpy
YW5nZSBmcm9tIDAgb2YgI3RleHQgPiBTUEFOID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBTUEFOID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAwIG9mIFNQQU4gPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMCBv
ZiBTUEFOID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5T
U2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2Vi
Vmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDR4MjQgW2JvcmRlcjogKDJweCBzb2xpZCAjRkYwMDAwKV0K
KyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CisgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CisgICAgICAgICAgICBSZW5kZXJJbmxp
bmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTkKKyAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgyLDIpIHNpemUgNDB4MTkKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MiwyKSB3aWR0aCA0MDogIjEyMzQ1IgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDB4MAorICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6
ZSAweDAKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitjYXJldDogcG9zaXRp
b24gMCBvZiBjaGlsZCAzIHtTUEFOfSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtESVZ9
IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9l
ZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQKaW5k
ZXggY2UyNzNiNGIxZGY4NTE0OWJmN2MzNmRhZTZhZTdlYTk0ZDhkNDhmMC4uNTgxYTcyODgzZmQ2
ZGY3NTNhMTIwYjVlZGY5NGI0YmQ2ZDUzZDY4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2VkaXRpbmcvZGVsZXRpbmcv
NTM5MDY4MS1leHBlY3RlZC50eHQKQEAgLTMsMTkgKzMsMTQgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgNzg0eDU4NAotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDYw
CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4NDAKICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzY4eDM5CiAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNTY1OiAiVGhpcyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgZXhwYW5zaW9u
IGZvciBzbWFydCBkZWxldGUgd291bGQgbm90IGNvbnNpZGVyIGVkaXRhYmxlIGJvdW5kYXJpZXMu
ICIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTY1LDApIHdpZHRoIDE3NzogIk9ubHkgJ2Zvbycg
c2hvdWxkIGJlIGRlbGV0ZWQuICIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzQyLDApIHdpZHRo
IDI2OiAiWW91IgogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDIwKSB3aWR0aCAxMDU6ICJzaG91
bGQgc2VlICcgYmFyJy4gIgotICAgICAgICBSZW5kZXJJbmxpbmUge0J9IGF0ICgwLDApIHNpemUg
NzM1eDM5Ci0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMDUsMjApIHNpemUgNzM1
eDM5Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTA1LDIwKSB3aWR0aCA2MzA6ICJUaGVyZSBp
cyBhIGJ1Zzogd2hpbGUgdGhlIG5vbi1lZGl0YWJsZSBzcGFjZSBpc24ndCBkZWxldGVkLCBkZWxl
dGlvbiBpbnNlcnRzIGEgcGxhY2Vob2xkZXIgd2hlbiBpdCIKLSAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDQwKSB3aWR0aCA2NDogInNob3VsZG4ndC4iCi0gICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCw3Nikgc2l6ZSA3ODR4NDAKLSAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMCwwKSBz
aXplIDB4MTkKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU2KSBzaXplIDc4NHgyMAog
ICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMjB4MTkKLSAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjApIHNpemUgMjB4MTkKLSAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDIwKSB3aWR0aCAyMDogImJhciIKLWNhcmV0OiBwb3NpdGlvbiAwIG9mIGNo
aWxkIDAge0JSfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGJvZHkKKyAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMHgxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMjA6ICJiYXIiCitjYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAyIHtESVZ9IG9m
IGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9lZGl0
aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZWRpdGluZy9kZWxldGluZy9k
ZWxldGUtbWl4ZWQtZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IDM1Yjcx
YWZhYjg2ZTg1MTZhZTA5N2E3MTQxZDQ2NWExYmI0NjE1YTguLjFjOGY5M2EzYjVkYTZjNTRiZWQ3
M2FhOGU5OTI4MjBkMTljMDhmNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50
LTAwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVj
dGVkLnR4dApAQCAtMTQsMTYgKzE0LDE0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDIwNHgyNCBbYm9yZGVyOiAoMnB4IHNvbGlkICNGRjAwMDApXQotICAgICAg
ICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDR4MTkKKyAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CiAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDQweDE5CiAgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgw
LDApIHNpemUgNDB4MTkKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIp
IHNpemUgNDB4MTkKICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwyKSB3aWR0aCA0MDog
IjEyMzQ1IgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDIsMikgc2l6ZSA0eDE5
Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDIsMikgd2lkdGggNDogIiAiCisgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAgUmVuZGVyQlIge0JSfSBh
dCAoMCwwKSBzaXplIDB4MAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDB4MAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLWNh
cmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAge0JSfSBvZiBjaGlsZCAzIHtTUEFOfSBvZiBjaGls
ZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGJvZHkKK2NhcmV0OiBwb3NpdGlvbiAwIG9m
IGNoaWxkIDMge1NQQU59IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDAge0RJVn0gb2YgYm9k
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVsZXRpbmcv
NTM5MDY4MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9k
ZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dAppbmRleCA4NTRiMWQ1M2ZhMTE5NWVjYWU4ZjBk
MzcwNTNkM2ZkZTAxNTRjMTlhLi5mZTgwMDI1MDI2NDM4Yjc1OGU1ODcxMTZlZTZmODc5MzA2MDhk
NDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9kZWxldGlu
Zy81MzkwNjgxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRp
dGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dApAQCAtMywxOSArMywxNCBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAs
MCkgc2l6ZSA3ODR4NTcKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgz
OAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3Njh4MzgKICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NjU6ICJUaGlzIHRlc3RzIGZvciBhIGJ1ZyB3
aGVyZSBleHBhbnNpb24gZm9yIHNtYXJ0IGRlbGV0ZSB3b3VsZCBub3QgY29uc2lkZXIgZWRpdGFi
bGUgYm91bmRhcmllcy4gIgogICAgICAgICAgIHRleHQgcnVuIGF0ICg1NjUsMCkgd2lkdGggMTc3
OiAiT25seSAnZm9vJyBzaG91bGQgYmUgZGVsZXRlZC4gIgogICAgICAgICAgIHRleHQgcnVuIGF0
ICg3NDIsMCkgd2lkdGggMjY6ICJZb3UiCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTkpIHdp
ZHRoIDEwNTogInNob3VsZCBzZWUgJyBiYXInLiAiCi0gICAgICAgIFJlbmRlcklubGluZSB7Qn0g
YXQgKDAsMCkgc2l6ZSA3MzV4MzgKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEw
NSwxOSkgc2l6ZSA3MzV4MzgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMDUsMTkpIHdpZHRo
IDYzMDogIlRoZXJlIGlzIGEgYnVnOiB3aGlsZSB0aGUgbm9uLWVkaXRhYmxlIHNwYWNlIGlzbid0
IGRlbGV0ZWQsIGRlbGV0aW9uIGluc2VydHMgYSBwbGFjZWhvbGRlciB3aGVuIGl0IgotICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMzgpIHdpZHRoIDY0OiAic2hvdWxkbid0LiIKLSAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDczKSBzaXplIDc4NHgzOAotICAgICAgICBSZW5kZXJCUiB7
QlJ9IGF0ICgwLDApIHNpemUgMHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE5KSB3aWR0
aCAxMDE6ICJzaG91bGQgc2VlICcgYmFyJy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCw1NCkgc2l6ZSA3ODR4MTkKICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBz
aXplIDIweDE5Ci0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE5KSBzaXplIDIw
eDE5Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOSkgd2lkdGggMjA6ICJiYXIiCi1jYXJl
dDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHtCUn0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5Cisg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjB4MTkKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIwOiAiYmFyIgorY2FyZXQ6IHBvc2l0aW9uIDAg
b2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0CmluZGV4
IDY2YWViYzdlNmEwMjc0YWYyMTlmMjczNzgyNjJmMDlmOWQ2MDBlYmQuLjQwYjY5NjU2OWVkZjZi
YzA5NDViZWQ2ZDY3ZDQxYjJmMDRlMmYzNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0
CkBAIC0zLDE4ICszLDEzIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAg
IFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHg1NAorICAgICAgUmVuZGVyQmxvY2sg
e1B9IGF0ICgwLDApIHNpemUgNzg0eDM2CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDc3MngzNgogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU5MTog
IlRoaXMgdGVzdHMgZm9yIGEgYnVnIHdoZXJlIGV4cGFuc2lvbiBmb3Igc21hcnQgZGVsZXRlIHdv
dWxkIG5vdCBjb25zaWRlciBlZGl0YWJsZSBib3VuZGFyaWVzLiAiCiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDU5MSwwKSB3aWR0aCAxODE6ICJPbmx5ICdmb28nIHNob3VsZCBiZSBkZWxldGVkLiIK
LSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMTQwOiAiWW91IHNob3VsZCBzZWUg
JyBiYXInLiAiCi0gICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA3Nzh4MzYK
LSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE0MCwxOCkgc2l6ZSA3Nzh4MzYKLSAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxNDAsMTgpIHdpZHRoIDYzODogIlRoZXJlIGlzIGEgYnVn
OiB3aGlsZSB0aGUgbm9uLWVkaXRhYmxlIHNwYWNlIGlzbid0IGRlbGV0ZWQsIGRlbGV0aW9uIGlu
c2VydHMgYSBwbGFjZWhvbGRlciB3aGVuIGl0IgotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MzYpIHdpZHRoIDY3OiAic2hvdWxkbid0LiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDcwKSBzaXplIDc4NHgzNgotICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgx
OAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAxMzY6ICJZb3Ugc2hvdWxkIHNl
ZSAnIGJhcicuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgNzg0eDE4
CiAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgxOAotICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAyMHgxOAotICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDIwOiAiYmFyIgotY2FyZXQ6IHBvc2l0aW9uIDAgb2Yg
Y2hpbGQgMCB7QlJ9IG9mIGNoaWxkIDIge0RJVn0gb2YgYm9keQorICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIweDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAyMDogImJhciIKK2NhcmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDIge0RJVn0g
b2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0
YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQKaW5kZXggMzUyYmRmNjc1ZTA5OTA3MTEyMDBh
YWI2OWNkOTNhZTVjODViOGQxOS4uMDEzYWNlYThkMGJkNGM5ODdkZjEzNWE5YjE2ZTc3MjY5Nzgx
MTdiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRp
bmcvZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbWl4ZWQtZWRp
dGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xNCwxNiArMTQsMTQgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjA0eDIyIFtib3JkZXI6ICgycHgg
c29saWQgI0ZGMDAwMCldCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6
ZSA0NHgxOAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTgK
ICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAg
ICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTgKICAgICAgICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgxOAogICAgICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDIsMikgc2l6ZSA0MHgxOAogICAgICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgyLDIpIHdpZHRoIDQwOiAiMTIzNDUiCi0gICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICg0MiwyKSBzaXplIDR4MTgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICg0MiwyKSB3
aWR0aCA0OiAiICIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAotY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7QlJ9IG9m
IGNoaWxkIDMge1NQQU59IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDAge0RJVn0gb2YgYm9k
eQorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMyB7U1BBTn0gb2YgY2hpbGQgMSB7U1BBTn0g
b2YgY2hpbGQgMCB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dAppbmRleCA4
MmMwY2JhMDkxOTZlM2E2ODQ3ZjkyMGMxNTNjYWIwYjUyZWU4MTgwLi5kZWY0MDljMjkzMDVmODZm
NDI2MGZiNzJkN2U5MDM4OTI4NjhlMDcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQKQEAg
LTMsMTggKzMsMTMgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDU5CisgICAgICBSZW5kZXJCbG9jayB7UH0g
YXQgKDAsMCkgc2l6ZSA3ODR4MzgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNzc4eDM4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTk4OiAiVGhp
cyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgZXhwYW5zaW9uIGZvciBzbWFydCBkZWxldGUgd291bGQg
bm90IGNvbnNpZGVyIGVkaXRhYmxlIGJvdW5kYXJpZXMuICIKICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNTk4LDApIHdpZHRoIDE4MDogIk9ubHkgJ2Zvbycgc2hvdWxkIGJlIGRlbGV0ZWQuIgotICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDE5KSB3aWR0aCAxNDE6ICJZb3Ugc2hvdWxkIHNlZSAnIGJh
cicuICIKLSAgICAgICAgUmVuZGVySW5saW5lIHtCfSBhdCAoMCwwKSBzaXplIDc0Nng0MAotICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQxLDE5KSBzaXplIDc0Nng0MAotICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDE0MSwxOSkgd2lkdGggNjA1OiAiVGhlcmUgaXMgYSBidWc6IHdo
aWxlIHRoZSBub24tZWRpdGFibGUgc3BhY2UgaXNuJ3QgZGVsZXRlZCwgZGVsZXRpb24gaW5zZXJ0
cyBhIHBsYWNlaG9sZGVyIgotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzkpIHdpZHRoIDEy
MzogIndoZW4gaXQgc2hvdWxkbid0LiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDcz
KSBzaXplIDc4NHgzOAotICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUgMHgxOQor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE5KSB3aWR0aCAxMzc6ICJZb3Ugc2hvdWxkIHNlZSAn
IGJhcicuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgNzg0eDE5CiAg
ICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMXgxOQotICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOSkgc2l6ZSAyMXgxOQotICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMTkpIHdpZHRoIDIxOiAiYmFyIgotY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hp
bGQgMCB7QlJ9IG9mIGNoaWxkIDIge0RJVn0gb2YgYm9keQorICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxeDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAyMTogImJhciIKK2NhcmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDIge0RJVn0gb2Yg
Ym9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZWRpdGluZy9kZWxldGlu
Zy9kZWxldGUtbWl4ZWQtZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbWl4ZWQtZWRpdGFibGUt
Y29udGVudC0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IDEwNjY5MWI5NzE4MmI1NzY2MjNlY2JlOWIz
NTEyNzA2NDFlNWRmOTguLmZiZTUwODU0ZDM2OWFkY2ZhNDhlZmI1NWZjYTA4MTI4NzJkM2EzZTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2VkaXRpbmcvZGVsZXRpbmcvZGVs
ZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1j
b250ZW50LTAwMS1leHBlY3RlZC50eHQKQEAgLTE0LDE2ICsxNCwxNCBAQCBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAogICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDR4MjMgW2JvcmRlcjogKDJweCBzb2xpZCAj
RkYwMDAwKV0KLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ0eDE5
CisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgxOQogICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICAgIFJlbmRl
cklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgxOQogICAgICAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CiAgICAgICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMiwyKSBzaXplIDQweDE5CiAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDIsMikgd2lkdGggNDA6ICIxMjM0NSIKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDQyLDIpIHNpemUgNHgxOQotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQyLDIpIHdpZHRoIDQ6
ICIgIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAg
ICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAgICAg
IFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMHgwCi1jYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHtCUn0gb2YgY2hpbGQg
MyB7U1BBTn0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMCB7RElWfSBvZiBib2R5CitjYXJl
dDogcG9zaXRpb24gMCBvZiBjaGlsZCAzIHtTUEFOfSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGls
ZCAwIHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMGQxOWU0MDczMWY4YjdmMDM4OTBkMTljMjYyNzRkMTJkZjAwNzZj
NC4uNWRlOTIzNGY0YWJjODkwNjZlMzVhNGI0OGJmOGYxNTkxYzcyZGRmNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxMC0xMC0yMCAgQmVuamFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmlwbGUgY2xp
Y2sgZG9lcyBub3Qgc2VsZWN0IHdob2xlIGxpbmUgZm9yIG1peGVkIGNvbnRlbnRlZGl0YWJsZSBy
ZWdpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
ODAzNworCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jv
c3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2li
bGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRPZlBhcmFncmFwaCk6IFJlbW92
ZSBleHBsaWNpdCBjb250ZW50ZWRpdGFibGUgYm91bmRhcnkKKyAgICAgICAgc2VsZWN0aW9uIGNo
ZWNrLiAgRG9uJ3QgZXh0ZW5kIGludG8gbm9kZXMgd2hlcmUgdGhlIGNhcmV0IGNhbid0IGJlCisg
ICAgICAgIHJlbmRlcmVkLCBsaWtlIGVuZE9mUGFyYWdyYXBoLgorICAgICAgICAoV2ViQ29yZTo6
ZW5kT2ZQYXJhZ3JhcGgpOiBSZW1vdmUgZXhwbGljaXQgY29udGVudGVkaXRhYmxlIGJvdW5kYXJ5
CisgICAgICAgIHNlbGVjdGlvbiBjaGVjay4KKwogMjAxMC0xMC0xNyAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcCBiL1dlYkNvcmUv
ZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAppbmRleCBkOWNhMjIzMzg2MDk5MGEwNzBiZjI1NjRi
MzMyYTg0YTljOTk4YzM3Li44OTFlN2M0OTgwNjRhY2E4N2YxNTliYzczM2NhNjMzY2ZjOGYzNjQ4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKKysrIGIvV2Vi
Q29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCkBAIC03OTcsOCArNzk3LDYgQEAgVmlzaWJs
ZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjKQogCiAg
ICAgTm9kZSAqbiA9IHN0YXJ0Tm9kZTsKICAgICB3aGlsZSAobikgewotICAgICAgICBpZiAobi0+
aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFydE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCi0g
ICAgICAgICAgICBicmVhazsKICAgICAgICAgUmVuZGVyT2JqZWN0ICpyID0gbi0+cmVuZGVyZXIo
KTsKICAgICAgICAgaWYgKCFyKSB7CiAgICAgICAgICAgICBuID0gbi0+dHJhdmVyc2VQcmV2aW91
c05vZGVQb3N0T3JkZXIoc3RhcnRCbG9jayk7CkBAIC04MTIsOCArODEwLDEwIEBAIFZpc2libGVQ
b3NpdGlvbiBzdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYykKICAgICAg
ICAgCiAgICAgICAgIGlmIChyLT5pc0JSKCkgfHwgaXNCbG9jayhuKSkKICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgCi0gICAgICAgIGlmIChyLT5pc1RleHQoKSkgeworCisgICAgICAg
IC8vIEZJWE1FOiBXZSBhdm9pZCByZXR1cm5pbmcgYSBwb3NpdGlvbiB3aGVyZSB0aGUgcmVuZGVy
ZXIgY2FuJ3QgYWNjZXB0IHRoZSBjYXJldC4KKyAgICAgICAgLy8gV2UgYWxzbyBkbyB0aGlzIGlu
IGVuZE9mUGFyYWdyYXBoLCBhbmQgbWlnaHQgd2FudCB0byBkbyBpdCBpbiBvdGhlciBjYXNlcyB0
b28uCisgICAgICAgIGlmIChyLT5pc1RleHQoKSAmJiByLT5jYXJldE1heFJlbmRlcmVkT2Zmc2V0
KCkgPiAwKSB7CiAgICAgICAgICAgICBpZiAoc3R5bGUtPnByZXNlcnZlTmV3bGluZSgpKSB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqIGNoYXJzID0gdG9SZW5kZXJUZXh0KHIpLT5jaGFy
YWN0ZXJzKCk7CiAgICAgICAgICAgICAgICAgaW50IGkgPSB0b1JlbmRlclRleHQociktPnRleHRM
ZW5ndGgoKTsKQEAgLTg1Nyw4ICs4NTcsNiBAQCBWaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3Jh
cGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZjKQogCiAgICAgTm9kZSAqbiA9IHN0YXJ0Tm9kZTsK
ICAgICB3aGlsZSAobikgewotICAgICAgICBpZiAobi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBz
dGFydE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCi0gICAgICAgICAgICBicmVhazsKICAgICAg
ICAgUmVuZGVyT2JqZWN0ICpyID0gbi0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKCFyKSB7CiAg
ICAgICAgICAgICBuID0gbi0+dHJhdmVyc2VOZXh0Tm9kZShzdGF5SW5zaWRlQmxvY2spOwpAQCAt
ODcyLDkgKzg3MCw4IEBAIFZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNp
YmxlUG9zaXRpb24gJmMpCiAgICAgICAgIAogICAgICAgICBpZiAoci0+aXNCUigpIHx8IGlzQmxv
Y2sobikpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgIC8vIEZJ
WE1FOiBXZSBhdm9pZCByZXR1cm5pbmcgYSBwb3NpdGlvbiB3aGVyZSB0aGUgcmVuZGVyZXIgY2Fu
J3QgYWNjZXB0IHRoZSBjYXJldC4KLSAgICAgICAgLy8gV2Ugc2hvdWxkIHByb2JhYmx5IGRvIHRo
aXMgaW4gb3RoZXIgY2FzZXMgc3VjaCBhcyBzdGFydE9mUGFyYWdyYXBoLgogICAgICAgICBpZiAo
ci0+aXNUZXh0KCkgJiYgci0+Y2FyZXRNYXhSZW5kZXJlZE9mZnNldCgpID4gMCkgewogICAgICAg
ICAgICAgaW50IGxlbmd0aCA9IHRvUmVuZGVyVGV4dChyKS0+dGV4dExlbmd0aCgpOwogICAgICAg
ICAgICAgaWYgKHN0eWxlLT5wcmVzZXJ2ZU5ld2xpbmUoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71730</attachid>
            <date>2010-10-25 04:30:23 -0700</date>
            <delta_ts>2010-10-25 21:28:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48037-20101025223019.patch</filename>
            <type>text/plain</type>
            <size>33025</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MjlmYmQ0ZWI5ZDhjZjUyYTMxZDkxZDIyNTA5ZTJiMWZmNmRkM2ZjLi4yYzJmNTVk
ZjM3MzA2NmJkZmNjNzgxNGQ5MDkyYWVmMDYwYTU1YTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTAtMTAtMjAgIEJlbmphbWluIEthbG1hbiAgPGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJpcGxlIGNsaWNr
IGRvZXMgbm90IHNlbGVjdCB3aG9sZSBsaW5lIGZvciBtaXhlZCBjb250ZW50ZWRpdGFibGUgcmVn
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgw
MzcKKworICAgICAgICBUZXN0IHRoYXQgdHJpcGxlIGNsaWNrIG5vdyBzZWxlY3RzIHRoZSB3aG9s
ZSBsaW5lIGZvciBtaXhlZAorICAgICAgICBjb250ZW50ZWRpdGFibGUgcmVnaW9ucywgYW5kIGZp
eCBzb21lIGV4aXN0aW5nIHRlc3RzIGFmZmVjdGVkIGJ5IHRoZQorICAgICAgICBjaGFuZ2UuCisK
KyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEuaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvY29weS1iYWNrc2xhc2gtd2l0aC1ldWMtZXhwZWN0ZWQudHh0OiBSZS1i
YXNlbGluZQorICAgICAgICBub3cgdGhhdCBwYXN0aW5nIGludG8gYSBmdWxseSBzZWxlY3RlZCBj
b250ZW50ZWRpdGFibGUgc3BhbiBubyBsb25nZXIKKyAgICAgICAgaW5zZXJ0cyBhbiBleHRyYSA8
YnI+IGF0IHRoZSBlbmQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNr
LWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1i
b3VuZGFyaWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC5jaGVja3N1bToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2Rl
bGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9lZGl0aW5nL2RlbGV0aW5nLzUz
OTA2ODEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9lZGl0
aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4
MS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcv
ZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxl
LWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0xMC0xNyAgSnVsaWVuIENoYWZmcmFp
eCAgPGpjaGFmZnJhaXhAY29kZWF1cm9yYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
cmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvNTM5
MDY4MS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLmh0bWwKaW5k
ZXggM2M4NTQ4OTU2Y2Q3ZGM4NDI1NTZhMDhhZmZkYTM5Mjg2OWUxNjRjMy4uNGU5ZDg5OTdiNjJh
NTI1ZTBjMWQzNmFjMWU1YWJiMGFjMmNlZjIyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9kZWxldGluZy81MzkwNjgxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxl
dGluZy81MzkwNjgxLmh0bWwKQEAgLTEsNCArMSw0IEBACi08cD5UaGlzIHRlc3RzIGZvciBhIGJ1
ZyB3aGVyZSBleHBhbnNpb24gZm9yIHNtYXJ0IGRlbGV0ZSB3b3VsZCBub3QgY29uc2lkZXIgZWRp
dGFibGUgYm91bmRhcmllcy4gIE9ubHkgJ2Zvbycgc2hvdWxkIGJlIGRlbGV0ZWQuICBZb3Ugc2hv
dWxkIHNlZSAnIGJhcicuIDxiPlRoZXJlIGlzIGEgYnVnOiB3aGlsZSB0aGUgbm9uLWVkaXRhYmxl
IHNwYWNlIGlzbid0IGRlbGV0ZWQsIGRlbGV0aW9uIGluc2VydHMgYSBwbGFjZWhvbGRlciB3aGVu
IGl0IHNob3VsZG4ndC48L2I+PC9wPgorPHA+VGhpcyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgZXhw
YW5zaW9uIGZvciBzbWFydCBkZWxldGUgd291bGQgbm90IGNvbnNpZGVyIGVkaXRhYmxlIGJvdW5k
YXJpZXMuICBPbmx5ICdmb28nIHNob3VsZCBiZSBkZWxldGVkLiAgWW91IHNob3VsZCBzZWUgJyBi
YXInLjwvcD4KIDxkaXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBpZD0iZGl2Ij5mb288c3BhbiBj
b250ZW50ZWRpdGFibGU9ImZhbHNlIj4gYmFyPC9zcGFuPjwvZGl2PgogCiA8c2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbWl4ZWQtZWRp
dGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5ODllNWU4
MzRmMjU5MGQzMjhiZWM2MzViNDA3ZWU2NGYxOTQ5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJpbGl0eS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0cyB0aGF0IGluZGVudGluZyBhIGNvbnRlbnRl
ZGl0YWJsZSBzcGFuIGluc2lkZSBhIG5vbi1jb250ZW50ZWRpdGFibGUgZGl2IGRvZXMgbm90IGNy
YXNoLgorfCAiaGVsbG8gIgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIKK3wgICBp
ZD0iY29udGVudCIKK3wgICA8YmxvY2txdW90ZT4KK3wgICAgIGNsYXNzPSJ3ZWJraXQtaW5kZW50
LWJsb2NrcXVvdGUiCit8ICAgICBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5v
bmU7IHBhZGRpbmc6IDBweDsiCit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPndvcmxkPCNzZWxl
Y3Rpb24tZm9jdXM+IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9pbmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvaW5kZW50LW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzAxNDc4
MmIyODZjZGJiNThiZDlhNTNmNTdhZTkwODQ3NGNlMWM4OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW1peGVkLWVkaXRhYmlsaXR5Lmh0
bWwKQEAgLTAsMCArMSw4IEBACis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMt
bWFya3VwLmpzIj48L3NjcmlwdD4KKzxkaXY+aGVsbG8gPHNwYW4gaWQ9ImNvbnRlbnQiIGNvbnRl
bnRlZGl0YWJsZT53b3JsZDwvc3Bhbj48L2Rpdj4KKzxzY3JpcHQ+Cit3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQi
KSk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiaW5kZW50Iik7CitNYXJrdXAuZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgaW5kZW50aW5nIGEgY29udGVudGVkaXRhYmxlIHNwYW4gaW5zaWRlIGEgbm9u
LWNvbnRlbnRlZGl0YWJsZSBkaXYgZG9lcyBub3QgY3Jhc2guIik7CitNYXJrdXAuZHVtcChkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2IilbMF0pOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1iYWNrc2xhc2gtd2l0aC1l
dWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktYmFj
a3NsYXNoLXdpdGgtZXVjLWV4cGVjdGVkLnR4dAppbmRleCA4YzAxYzk0YmFlM2Y2MWRjYzA3ZjI4
OWE4ZjMwYmZhYjkyNDI3NDEyLi4wZjJlN2E4MWM2MDdlZTcyNjgwZmZmYjhiYjY5ODgyM2Y3YTMy
NGZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1iYWNr
c2xhc2gtd2l0aC1ldWMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9jb3B5LWJhY2tzbGFzaC13aXRoLWV1Yy1leHBlY3RlZC50eHQKQEAgLTksMTMgKzks
MTAgQEAgVGV4dHMgaW4gdGhlIEVVQyBmcmFtZSB3aWxsIGJlIHBhc3RlZCBoZXJlCiAKIGZyb20g
RVVDIGRpdiB0byBVVEY4IHRleHQtY29udHJvbDogCiBmcm9tIEVVQyBkaXYgdG8gVVRGOCBjb250
ZW50LWVkaXRhYmxlOiBcIGZyb20gRVVDIHBhZ2UKLQogZnJvbSBFVUMgdHJhbnNmb3JtIHRvIFVU
RjggdGV4dC1jb250cm9sOiAKIGZyb20gRVVDIHRyYW5zZm9ybSB0byBVVEY4IGNvbnRlbnQtZWRp
dGFibGU6IFwgRlJPTSBFVUMgUEFHRSAoVFJBTlNGT1JNRUQpCi0KIGZyb20gRVVDIHNlY3VyZSB0
byBVVEY4IHRleHQtY29udHJvbDogCiBmcm9tIEVVQyBzZWN1cmUgdG8gVVRGOCBjb250ZW50LWVk
aXRhYmxlOiDigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLigKLi
gKLigKLigKLigKLigKLigKLigKLigKIKLQogZnJvbSBFVUMgY29udHJvbCB0byBVVEY4IHRleHQt
Y29udHJvbDogCiBmcm9tIEVVQyBjb250cm9sIHRvIFVURjggY29udGVudC1lZGl0YWJsZTogXCBm
cm9tIEVVQyB0ZXh0IGNvbnRyb2wKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jv
c3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI0MDc4
NDY1NDAzMGI4NDQxYmI1ZjBlZDlkNTFkYjUwMzBmNzUwMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxp
dHktYm91bmRhcmllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMyBAQAorVGVzdHMgdGhhdCB0
cmlwbGUgY2xpY2tpbmcgaW5zaWRlIGEgY29udGVudGVkaXRhYmxlIHJlZ2lvbiB3aGljaCBjb250
YWlucyBhIG5vbi1jb250ZW50ZWRpdGFibGUgcmVnaW9uIHN0aWxsIGhpZ2hsaWdodHMgdGhlIHdo
b2xlIGxpbmUuCisKK1RoaXMgdGVzdCBkb2VzIG5vdCBydW4gaW50ZXJhY3RpdmVseS4gSXQgdXNl
cyB0aGUgbGF5b3V0VGVzdENvbnRyb2xsZXJzIGV2ZW50U2VuZGVyIHRvIGRvIG1vdXNlIGNsaWNr
cy4KKworCitUZXN0IDE6IG5vbi1jb250ZW50ZWRpdGFibGUgaW5zaWRlIGEgY29udGVudGVkaXRh
YmxlLiBUbyBydW4gbWFudWFsbHksIHRyaXBsZSBjbGljayBvbiBlaXRoZXIgImZvbyIsICJiYXoi
LCBvciAib29mIjsgdGhlIHdob2xlIGxpbmUgc2hvdWxkIGJlIHNlbGVjdGVkLgorCitmb28gYmFy
IGJheiByYWIgb29mCisKK1Rlc3QgMjogY29udGVudGVkaXRhYmxlIGluc2lkZSBhIG5vbi1jb250
ZW50ZWRpdGFibGUuIFRvIHJ1biBtYW51YWxseSwgdHJpcGxlIGNsaWNrIG9uIGVpdGhlciAiZm9v
IiwgImJhciIsIG9yICJiYXoiOyB0aGUgd2hvbGUgbGluZSBzaG91bGQgYmUgc2VsZWN0ZWQuIE5v
dGU6IGluIElFLCB0cmlwbGUtY2xpY2tpbmcgb24gImJhciIgb25seSBzZWxlY3RzICJiYXIiLgor
Citmb28gYmFyIGJhegorCitUZXN0IDM6IG5lc3RlZCBjb250ZW50ZWRpdGFibGUvbm9uLWNvbnRl
bnRlZGl0YWJsZSByZWdpb25zLiBUbyBydW4gbWFudWFsbHksIHRyaXBsZSBjbGljayBvbiBlaXRo
ZXIgImZvbyIsICJiYXoiLCBvciAib29mIjsgdGhlIHdob2xlIGxpbmUgc2hvdWxkIGJlIHNlbGVj
dGVkLiBOb3RlOiBpbiBJRSwgdHJpcGxlLWNsaWNraW5nIG9uICJiYXoiIG9ubHkgc2VsZWN0cyAi
YmF6Ii4KKworZm9vIGJhciBiYXogcmFiIG9vZgorCitSZXN1bHRzIGZvciBlbGVtMToKK1NlbGVj
dGVkIHRleHQgb2YgZWxlbTEgZnJvbSB0aGUgbGVmdDogW2ZvbyBiYXIgYmF6IHJhYiBvb2ZdCitT
ZWxlY3RlZCB0ZXh0IG9mIGVsZW0xIGZyb20gdGhlIG1pZGRsZTogW2ZvbyBiYXIgYmF6IHJhYiBv
b2ZdCitTZWxlY3RlZCB0ZXh0IG9mIGVsZW0xIGZyb20gdGhlIHJpZ2h0OiBbZm9vIGJhciBiYXog
cmFiIG9vZl0KK1Jlc3VsdHMgZm9yIGVsZW0yOgorU2VsZWN0ZWQgdGV4dCBvZiBlbGVtMiBmcm9t
IHRoZSBsZWZ0OiBbZm9vIGJhciBiYXoKK10KK1NlbGVjdGVkIHRleHQgb2YgZWxlbTIgZnJvbSB0
aGUgbWlkZGxlOiBbZm9vIGJhciBiYXoKK10KK1NlbGVjdGVkIHRleHQgb2YgZWxlbTIgZnJvbSB0
aGUgcmlnaHQ6IFtmb28gYmFyIGJhegorXQorUmVzdWx0cyBmb3IgZWxlbTM6CitTZWxlY3RlZCB0
ZXh0IG9mIGVsZW0zIGZyb20gdGhlIGxlZnQ6IFtmb28gYmFyIGJheiByYWIgb29mXQorU2VsZWN0
ZWQgdGV4dCBvZiBlbGVtMyBmcm9tIHRoZSBtaWRkbGU6IFtmb28gYmFyIGJheiByYWIgb29mXQor
U2VsZWN0ZWQgdGV4dCBvZiBlbGVtMyBmcm9tIHRoZSByaWdodDogW2ZvbyBiYXIgYmF6IHJhYiBv
b2ZdCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1j
bGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2MxYjFjNWY4ZmE2YTk0MDAxM2FjOGE4OWY5YTcyMWI1ODNkNTBj
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3RyaXBs
ZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5odG1sCkBAIC0wLDAgKzEsNjgg
QEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0cyB0aGF0IHRyaXBsZSBjbGlja2luZyBpbnNpZGUg
YSBjb250ZW50ZWRpdGFibGUgcmVnaW9uIHdoaWNoIGNvbnRhaW5zIGEgbm9uLWNvbnRlbnRlZGl0
YWJsZSByZWdpb24gc3RpbGwgaGlnaGxpZ2h0cyB0aGUgd2hvbGUgbGluZS48L3A+Cis8cCBzdHls
ZT0iY29sb3I6Z3JlZW4iPlRoaXMgdGVzdCBkb2VzIG5vdCBydW4gaW50ZXJhY3RpdmVseS4gIEl0
IHVzZXMgdGhlIGxheW91dFRlc3RDb250cm9sbGVycyBldmVudFNlbmRlciB0byBkbyBtb3VzZSBj
bGlja3MuPC9wPgorCis8YnIgLz4KKzxwPlRlc3QgMTogbm9uLWNvbnRlbnRlZGl0YWJsZSBpbnNp
ZGUgYSBjb250ZW50ZWRpdGFibGUuIFRvIHJ1biBtYW51YWxseSwgdHJpcGxlIGNsaWNrIG9uIGVp
dGhlciAiZm9vIiwgImJheiIsIG9yICJvb2YiOyB0aGUgd2hvbGUgbGluZSBzaG91bGQgYmUgc2Vs
ZWN0ZWQuPC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InRlc3QxRWxlbWVudCI+Citmb28g
PHNwYW4gY29udGVudGVkaXRhYmxlPSJmYWxzZSI+YmFyPC9zcGFuPiBiYXogPHNwYW4gY29udGVu
ZWRpdGFibGU9ImZhbHNlIj5yYWI8L3NwYW4+IG9vZgorPC9kaXY+CisKKzxiciAvPgorPHA+VGVz
dCAyOiBjb250ZW50ZWRpdGFibGUgaW5zaWRlIGEgbm9uLWNvbnRlbnRlZGl0YWJsZS4gVG8gcnVu
IG1hbnVhbGx5LCB0cmlwbGUgY2xpY2sgb24gZWl0aGVyICJmb28iLCAiYmFyIiwgb3IgImJheiI7
IHRoZSB3aG9sZSBsaW5lIHNob3VsZCBiZSBzZWxlY3RlZC4gPGVtPk5vdGU6IGluIElFLCB0cmlw
bGUtY2xpY2tpbmcgb24gImJhciIgb25seSBzZWxlY3RzICJiYXIiLjwvZW0+PC9wPgorPGRpdiBp
ZD0idGVzdDJFbGVtZW50Ij4KK2ZvbyA8c3BhbiBjb250ZW50ZWRpdGFibGU+YmFyPC9zcGFuPiBi
YXoKKzwvZGl2PgorCis8YnIgLz4KKzxwPlRlc3QgMzogbmVzdGVkIGNvbnRlbnRlZGl0YWJsZS9u
b24tY29udGVudGVkaXRhYmxlIHJlZ2lvbnMuIFRvIHJ1biBtYW51YWxseSwgdHJpcGxlIGNsaWNr
IG9uIGVpdGhlciAiZm9vIiwgImJheiIsIG9yICJvb2YiOyB0aGUgd2hvbGUgbGluZSBzaG91bGQg
YmUgc2VsZWN0ZWQuIDxlbT5Ob3RlOiBpbiBJRSwgdHJpcGxlLWNsaWNraW5nIG9uICJiYXoiIG9u
bHkgc2VsZWN0cyAiYmF6Ii48L2VtPjwvcD4KKzxkaXYgY29udGVudGVkaXRhYmxlIGlkPSJ0ZXN0
M0VsZW1lbnQiPgorZm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT0iZmFsc2UiPmJhciA8c3BhbiBj
b250ZW50ZWRpdGFibGU+YmF6PC9zcGFuPiByYWI8L3NwYW4+IG9vZgorPC9kaXY+CisKKzxiciAv
PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIHZhciB0ZXN0RWxlbWVudElkcyA9IFsidGVzdDFFbGVtZW50IiwgInRlc3QyRWxlbWVu
dCIsICJ0ZXN0M0VsZW1lbnQiXTsKKyAgICBmb3IgKHZhciBpIGluIHRlc3RFbGVtZW50SWRzKSB7
CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGVzdEVsZW1l
bnRJZHNbaV0pOworICAgICAgICBsb2coIlJlc3VsdHMgZm9yICIgKyBlbGVtZW50LmlkICsgIjpc
biIpOworICAgICAgICB0cmlwbGVDbGlja0FuZExvZyhlbGVtZW50LCAibGVmdCIpOworICAgICAg
ICB0cmlwbGVDbGlja0FuZExvZyhlbGVtZW50LCAibWlkZGxlIik7CisgICAgICAgIHRyaXBsZUNs
aWNrQW5kTG9nKGVsZW1lbnQsICJyaWdodCIpOworICAgIH0KK30KKworZnVuY3Rpb24gdHJpcGxl
Q2xpY2tBbmRMb2cocGFyZW50LCBzaWRlKSB7CisgICAgLy8gUG9zaXRpb24gKHgsIHkpIHdpdGhp
biB0aGUgcGFyZW50IG9uIHRoZSBjb3JyZWN0IHNpZGUuCisgICAgdmFyIHggPSAwOworICAgIGlm
IChzaWRlID09PSAibGVmdCIpCisgICAgICB4ID0gcGFyZW50Lm9mZnNldExlZnQgKyA4OworICAg
IGVsc2UgaWYgKHNpZGUgPT09ICJyaWdodCIpCisgICAgICB4ID0gcGFyZW50Lm9mZnNldExlZnQg
KyBwYXJlbnQub2Zmc2V0V2lkdGggLSA4OworICAgIGVsc2UgaWYgKHNpZGUgPT09ICJtaWRkbGUi
KQorICAgICAgeCA9IHBhcmVudC5vZmZzZXRMZWZ0ICsgKHBhcmVudC5vZmZzZXRXaWR0aCAvIDIp
OworICAgIHZhciB5ID0gcGFyZW50Lm9mZnNldFRvcCArIDQ7CisgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oeCwgeSk7CisKKyAgICAvLyBUcmlwbGUgY2xpY2suCisgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICBsb2coIlNl
bGVjdGVkIHRleHQgb2YgIiArIHBhcmVudC5pZCArICIgZnJvbSB0aGUgIiArIHNpZGUgKyAiOiBb
IiArIGRvY3VtZW50LmdldFNlbGVjdGlvbigpICsgIl1cbiIpOworfQorCitmdW5jdGlvbiBsb2co
bWVzc2FnZSkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEt
ZXhwZWN0ZWQuY2hlY2tzdW0KaW5kZXggMjQ3NTBhNzBmMGUzNGUxOTM4ZjFhMmM3YjUyNzk3NmQz
Zjg0YzgyMC4uNTZiZmI5YzA4MmJiN2U5NmFhODFkYTUxYTE3YmIxZDFhYTU5YjY5NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZWRpdGluZy9kZWxldGlu
Zy81MzkwNjgxLWV4cGVjdGVkLmNoZWNrc3VtCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC5jaGVja3N1bQpA
QCAtMSArMSBAQAotZDYzMTEyYTZjZjg5YWIwYjM3ZDViMTgyNzI1MGEyNmQKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCitmM2I0MTUzN2RkNzgxMTNiN2YzNGNlMWJiMDEzMjAyMwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkY2ZmOTAyY2U2ZmM5OThiNDJlMDNlM2QwM2EyYjNh
ZWFiZTM4YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTYgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4
NHg0MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3Njh4MzkKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NjU6ICJUaGlzIHRlc3RzIGZvciBhIGJ1
ZyB3aGVyZSBleHBhbnNpb24gZm9yIHNtYXJ0IGRlbGV0ZSB3b3VsZCBub3QgY29uc2lkZXIgZWRp
dGFibGUgYm91bmRhcmllcy4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICg1NjUsMCkgd2lkdGgg
MTc3OiAiT25seSAnZm9vJyBzaG91bGQgYmUgZGVsZXRlZC4gIgorICAgICAgICAgIHRleHQgcnVu
IGF0ICg3NDIsMCkgd2lkdGggMjY6ICJZb3UiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjAp
IHdpZHRoIDEwMTogInNob3VsZCBzZWUgJyBiYXInLiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDU2KSBzaXplIDc4NHgyMAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgw
LDApIHNpemUgMjB4MTkKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyMHgxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjA6ICJiYXIiCitj
YXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAyIHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRl
LW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRh
YmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzhmOTNhM2I1ZGE2YzU0
YmVkNzNhYThlOTkyODIwZDE5YzA4ZjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbWl4ZWQtZWRp
dGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIFNQ
QU4gPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBvZiBTUEFOID4g
U1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3RpZmljYXRpb24K
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgU1BBTiA+IFNQQU4gPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIFNQQU4gPiBTUEFOID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBTUEFOID4g
U1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBTUEFO
ID4gU1BBTiA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0
aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdl
IGZyb20gMCBvZiAjdGV4dCA+IFNQQU4gPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gNSBvZiAjdGV4dCA+IFNQQU4gPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAg
b2YgU1BBTiA+IFNQQU4gPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIFNQ
QU4gPiBTUEFOID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxl
Y3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3
RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwwKSBzaXplIDIwNHgyNCBbYm9yZGVyOiAoMnB4IHNvbGlkICNGRjAwMDApXQorICAg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTkKKyAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgICBSZW5kZXJJbmxp
bmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTkKKyAgICAgICAgICAgIFJlbmRlcklubGluZSB7
U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgxOQorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDIsMikgc2l6ZSA0MHgxOQorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIp
IHdpZHRoIDQwOiAiMTIzNDUiCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4
MAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2NhcmV0OiBwb3NpdGlvbiAw
IG9mIGNoaWxkIDMge1NQQU59IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDAge0RJVn0gb2Yg
Ym9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2VkaXRp
bmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dAppbmRleCBj
ZTI3M2I0YjFkZjg1MTQ5YmY3YzM2ZGFlNmFlN2VhOTRkOGQ0OGYwLi41ODFhNzI4ODNmZDZkZjc1
M2ExMjBiNWVkZjk0YjRiZDZkNTNkNjhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZWRpdGluZy9kZWxldGluZy81Mzkw
NjgxLWV4cGVjdGVkLnR4dApAQCAtMywxOSArMywxNCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4NjAKKyAg
ICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHg0MAogICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3Njh4MzkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA1NjU6ICJUaGlzIHRlc3RzIGZvciBhIGJ1ZyB3aGVyZSBleHBhbnNpb24gZm9y
IHNtYXJ0IGRlbGV0ZSB3b3VsZCBub3QgY29uc2lkZXIgZWRpdGFibGUgYm91bmRhcmllcy4gIgog
ICAgICAgICAgIHRleHQgcnVuIGF0ICg1NjUsMCkgd2lkdGggMTc3OiAiT25seSAnZm9vJyBzaG91
bGQgYmUgZGVsZXRlZC4gIgogICAgICAgICAgIHRleHQgcnVuIGF0ICg3NDIsMCkgd2lkdGggMjY6
ICJZb3UiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDEwNTogInNob3VsZCBz
ZWUgJyBiYXInLiAiCi0gICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA3MzV4
MzkKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwNSwyMCkgc2l6ZSA3MzV4MzkK
LSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMDUsMjApIHdpZHRoIDYzMDogIlRoZXJlIGlzIGEg
YnVnOiB3aGlsZSB0aGUgbm9uLWVkaXRhYmxlIHNwYWNlIGlzbid0IGRlbGV0ZWQsIGRlbGV0aW9u
IGluc2VydHMgYSBwbGFjZWhvbGRlciB3aGVuIGl0IgotICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsNDApIHdpZHRoIDY0OiAic2hvdWxkbid0LiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDc2KSBzaXplIDc4NHg0MAotICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgwLDApIHNpemUg
MHgxOQorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTYpIHNpemUgNzg0eDIwCiAgICAg
ICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAyMHgxOQotICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwyMCkgc2l6ZSAyMHgxOQotICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMjApIHdpZHRoIDIwOiAiYmFyIgotY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQg
MCB7QlJ9IG9mIGNoaWxkIDIge0RJVn0gb2YgYm9keQorICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDIweDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCAyMDogImJhciIKK2NhcmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDIge0RJVn0gb2YgYm9k
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2VkaXRpbmcv
ZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0
ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQKaW5kZXggMzViNzFhZmFi
ODZlODUxNmFlMDk3YTcxNDFkNDY1YTFiYjQ2MTVhOC4uMWM4ZjkzYTNiNWRhNmM1NGJlZDczYWE4
ZTk5MjgyMGQxOWMwOGY3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRlbnQtMDAx
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZWRp
dGluZy9kZWxldGluZy9kZWxldGUtbWl4ZWQtZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQu
dHh0CkBAIC0xNCwxNiArMTQsMTQgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDApIHNpemUgMjA0eDI0IFtib3JkZXI6ICgycHggc29saWQgI0ZGMDAwMCldCi0gICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0NHgxOQorICAgICAgICBSZW5kZXJJbmxp
bmUge1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTkKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgw
LDApIHNpemUgNDB4MTkKICAgICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkg
c2l6ZSA0MHgxOQogICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIsMikgc2l6
ZSA0MHgxOQogICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdpZHRoIDQwOiAiMTIz
NDUiCi0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0MiwyKSBzaXplIDR4MTkKLSAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg0MiwyKSB3aWR0aCA0OiAiICIKKyAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgICBSZW5kZXJJbmxpbmUg
e1NQQU59IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgw
LDApIHNpemUgMHgwCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotY2FyZXQ6
IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7QlJ9IG9mIGNoaWxkIDMge1NQQU59IG9mIGNoaWxkIDEg
e1NQQU59IG9mIGNoaWxkIDAge0RJVn0gb2YgYm9keQorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hp
bGQgMyB7U1BBTn0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMCB7RElWfSBvZiBib2R5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9kZWxldGluZy81Mzkw
NjgxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0
aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0CmluZGV4IDg1NGIxZDUzZmExMTk1ZWNhZThmMGQzNzA1
M2QzZmRlMDE1NGMxOWEuLmZlODAwMjUwMjY0MzhiNzU4ZTU4NzExNmVlNmY4NzkzMDYwOGQ0NTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nLzUz
OTA2ODEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5n
L2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0CkBAIC0zLDE5ICszLDE0IEBAIGxheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBz
aXplIDc4NHg1NworICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDM4CiAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc2OHgzOAogICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDU2NTogIlRoaXMgdGVzdHMgZm9yIGEgYnVnIHdoZXJl
IGV4cGFuc2lvbiBmb3Igc21hcnQgZGVsZXRlIHdvdWxkIG5vdCBjb25zaWRlciBlZGl0YWJsZSBi
b3VuZGFyaWVzLiAiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDU2NSwwKSB3aWR0aCAxNzc6ICJP
bmx5ICdmb28nIHNob3VsZCBiZSBkZWxldGVkLiAiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDc0
MiwwKSB3aWR0aCAyNjogIllvdSIKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOSkgd2lkdGgg
MTA1OiAic2hvdWxkIHNlZSAnIGJhcicuICIKLSAgICAgICAgUmVuZGVySW5saW5lIHtCfSBhdCAo
MCwwKSBzaXplIDczNXgzOAotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTA1LDE5
KSBzaXplIDczNXgzOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEwNSwxOSkgd2lkdGggNjMw
OiAiVGhlcmUgaXMgYSBidWc6IHdoaWxlIHRoZSBub24tZWRpdGFibGUgc3BhY2UgaXNuJ3QgZGVs
ZXRlZCwgZGVsZXRpb24gaW5zZXJ0cyBhIHBsYWNlaG9sZGVyIHdoZW4gaXQiCi0gICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwzOCkgd2lkdGggNjQ6ICJzaG91bGRuJ3QuIgotICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsNzMpIHNpemUgNzg0eDM4Ci0gICAgICAgIFJlbmRlckJSIHtCUn0g
YXQgKDAsMCkgc2l6ZSAweDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTkpIHdpZHRoIDEw
MTogInNob3VsZCBzZWUgJyBiYXInLiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU0
KSBzaXplIDc4NHgxOQogICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
MjB4MTkKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTkpIHNpemUgMjB4MTkK
LSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE5KSB3aWR0aCAyMDogImJhciIKLWNhcmV0OiBw
b3NpdGlvbiAwIG9mIGNoaWxkIDAge0JSfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGJvZHkKKyAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMHgxOQorICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjA6ICJiYXIiCitjYXJldDogcG9zaXRpb24gMCBvZiBj
aGlsZCAyIHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQKaW5kZXggNjZh
ZWJjN2U2YTAyNzRhZjIxOWYyNzM3ODI2MmYwOWY5ZDYwMGViZC4uNDBiNjk2NTY5ZWRmNmJjMDk0
NWJlZDZkNjdkNDFiMmYwNGUyZjM2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQKQEAg
LTMsMTggKzMsMTMgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAotICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDU0CisgICAgICBSZW5kZXJCbG9jayB7UH0g
YXQgKDAsMCkgc2l6ZSA3ODR4MzYKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNzcyeDM2CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTkxOiAiVGhp
cyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgZXhwYW5zaW9uIGZvciBzbWFydCBkZWxldGUgd291bGQg
bm90IGNvbnNpZGVyIGVkaXRhYmxlIGJvdW5kYXJpZXMuICIKICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNTkxLDApIHdpZHRoIDE4MTogIk9ubHkgJ2Zvbycgc2hvdWxkIGJlIGRlbGV0ZWQuIgotICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAxNDA6ICJZb3Ugc2hvdWxkIHNlZSAnIGJh
cicuICIKLSAgICAgICAgUmVuZGVySW5saW5lIHtCfSBhdCAoMCwwKSBzaXplIDc3OHgzNgotICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQwLDE4KSBzaXplIDc3OHgzNgotICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDE0MCwxOCkgd2lkdGggNjM4OiAiVGhlcmUgaXMgYSBidWc6IHdo
aWxlIHRoZSBub24tZWRpdGFibGUgc3BhY2UgaXNuJ3QgZGVsZXRlZCwgZGVsZXRpb24gaW5zZXJ0
cyBhIHBsYWNlaG9sZGVyIHdoZW4gaXQiCi0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNikg
d2lkdGggNjc6ICJzaG91bGRuJ3QuIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNzAp
IHNpemUgNzg0eDM2Ci0gICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDE4Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDEzNjogIllvdSBzaG91bGQgc2VlICcg
YmFyJy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MTgKICAg
ICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDIweDE4Ci0gICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4KSBzaXplIDIweDE4Ci0gICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwxOCkgd2lkdGggMjA6ICJiYXIiCi1jYXJldDogcG9zaXRpb24gMCBvZiBjaGls
ZCAwIHtCUn0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CisgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMjB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDIwOiAiYmFyIgorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMiB7RElWfSBvZiBi
b2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGlu
Zy9kZWxldGUtbWl4ZWQtZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxl
LWNvbnRlbnQtMDAxLWV4cGVjdGVkLnR4dAppbmRleCAzNTJiZGY2NzVlMDk5MDcxMTIwMGFhYjY5
Y2Q5M2FlNWM4NWI4ZDE5Li4wMTNhY2VhOGQwYmQ0Yzk4N2RmMTM1YTliMTZlNzcyNjk3ODExN2I3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9kZWxldGluZy9k
ZWxldGUtbWl4ZWQtZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJs
ZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQKQEAgLTE0LDE2ICsxNCwxNCBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAogICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMDR4MjIgW2JvcmRlcjogKDJweCBzb2xp
ZCAjRkYwMDAwKV0KLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ0
eDE4CisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgxOAogICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0MHgxOAogICAgICAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE4CiAgICAgICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMiwyKSBzaXplIDQweDE4CiAgICAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDIsMikgd2lkdGggNDA6ICIxMjM0NSIKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDQyLDIpIHNpemUgNHgxOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQyLDIpIHdpZHRo
IDQ6ICIgIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAog
ICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgICAg
ICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMHgwCi1jYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHtCUn0gb2YgY2hp
bGQgMyB7U1BBTn0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMCB7RElWfSBvZiBib2R5Citj
YXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAzIHtTUEFOfSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBj
aGlsZCAwIHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9lZGl0aW5nL2RlbGV0aW5nLzUzOTA2ODEtZXhwZWN0ZWQudHh0CmluZGV4IDgyYzBj
YmEwOTE5NmUzYTY4NDdmOTIwYzE1M2NhYjBiNTJlZTgxODAuLmRlZjQwOWMyOTMwNWY4NmY0MjYw
ZmI3MmQ3ZTkwMzg5Mjg2OGUwNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L2VkaXRpbmcvZGVsZXRpbmcvNTM5MDY4MS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvZWRpdGluZy9kZWxldGluZy81MzkwNjgxLWV4cGVjdGVkLnR4dApAQCAtMywx
OCArMywxMyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJC
bG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4NTkKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAo
MCwwKSBzaXplIDc4NHgzOAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA3Nzh4MzgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1OTg6ICJUaGlzIHRl
c3RzIGZvciBhIGJ1ZyB3aGVyZSBleHBhbnNpb24gZm9yIHNtYXJ0IGRlbGV0ZSB3b3VsZCBub3Qg
Y29uc2lkZXIgZWRpdGFibGUgYm91bmRhcmllcy4gIgogICAgICAgICAgIHRleHQgcnVuIGF0ICg1
OTgsMCkgd2lkdGggMTgwOiAiT25seSAnZm9vJyBzaG91bGQgYmUgZGVsZXRlZC4iCi0gICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMTkpIHdpZHRoIDE0MTogIllvdSBzaG91bGQgc2VlICcgYmFyJy4g
IgotICAgICAgICBSZW5kZXJJbmxpbmUge0J9IGF0ICgwLDApIHNpemUgNzQ2eDQwCi0gICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNDEsMTkpIHNpemUgNzQ2eDQwCi0gICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTQxLDE5KSB3aWR0aCA2MDU6ICJUaGVyZSBpcyBhIGJ1Zzogd2hpbGUg
dGhlIG5vbi1lZGl0YWJsZSBzcGFjZSBpc24ndCBkZWxldGVkLCBkZWxldGlvbiBpbnNlcnRzIGEg
cGxhY2Vob2xkZXIiCi0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzOSkgd2lkdGggMTIzOiAi
d2hlbiBpdCBzaG91bGRuJ3QuIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNzMpIHNp
emUgNzg0eDM4Ci0gICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDAsMCkgc2l6ZSAweDE5CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMTkpIHdpZHRoIDEzNzogIllvdSBzaG91bGQgc2VlICcgYmFy
Jy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MTkKICAgICAg
ICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDIxeDE5Ci0gICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE5KSBzaXplIDIxeDE5Ci0gICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwxOSkgd2lkdGggMjE6ICJiYXIiCi1jYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAw
IHtCUn0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMjF4MTkKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDIxOiAiYmFyIgorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9lZGl0aW5nL2RlbGV0aW5nL2Rl
bGV0ZS1taXhlZC1lZGl0YWJsZS1jb250ZW50LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1taXhlZC1lZGl0YWJsZS1jb250
ZW50LTAwMS1leHBlY3RlZC50eHQKaW5kZXggMTA2NjkxYjk3MTgyYjU3NjYyM2VjYmU5YjM1MTI3
MDY0MWU1ZGY5OC4uZmJlNTA4NTRkMzY5YWRjZmE0OGVmYjU1ZmNhMDgxMjg3MmQzYTNlMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZWRpdGluZy9kZWxldGluZy9kZWxldGUt
bWl4ZWQtZWRpdGFibGUtY29udGVudC0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLW1peGVkLWVkaXRhYmxlLWNvbnRl
bnQtMDAxLWV4cGVjdGVkLnR4dApAQCAtMTQsMTYgKzE0LDE0IEBAIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CiAgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIwNHgyMyBbYm9yZGVyOiAoMnB4IHNvbGlkICNGRjAw
MDApXQotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDR4MTkKKyAg
ICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CiAgICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQweDE5CiAgICAgICAgICAgICBSZW5kZXJJbmxpbmUg
e1NQQU59IGF0ICgwLDApIHNpemUgNDB4MTkKICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgyLDIpIHNpemUgNDB4MTkKICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMiwy
KSB3aWR0aCA0MDogIjEyMzQ1IgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDIs
Mikgc2l6ZSA0eDE5Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDIsMikgd2lkdGggNDogIiAi
CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAg
ICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4MAotICAgICAgICAgICAgUmVu
ZGVyQlIge0JSfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKLWNhcmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAge0JSfSBvZiBjaGlsZCAzIHtT
UEFOfSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGJvZHkKK2NhcmV0OiBw
b3NpdGlvbiAwIG9mIGNoaWxkIDMge1NQQU59IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDAg
e0RJVn0gb2YgYm9keQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZDE5ZTQwNzMxZjhiN2YwMzg5MGQxOWMyNjI3NGQxMmRmMDA3NmM0Li4x
M2IxYTI5NTM1ZjI4OWEzMWE5OWJlYjFkM2ZmZmM5ZjA5MTA1NTJiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDEwLTEwLTIwICBCZW5qYW1pbiBLYWxtYW4gIDxrYWxtYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRyaXBsZSBjbGljayBk
b2VzIG5vdCBzZWxlY3Qgd2hvbGUgbGluZSBmb3IgbWl4ZWQgY29udGVudGVkaXRhYmxlIHJlZ2lv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MDM3
CisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1l
ZGl0YWJpbGl0eS1ib3VuZGFyaWVzLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91
bml0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdGFydE9mUGFyYWdyYXBoKTogQWxsb3cgZXhw
bGljaXQgY29udGVudGVkaXRhYmxlIGJvdW5kYXJ5CisgICAgICAgIHNlbGVjdGlvbiBjaGVjayB0
byBiZSBkaXNhYmxlZC4gIERvbid0IGV4dGVuZCBpbnRvIG5vZGVzIHdoZXJlIHRoZQorICAgICAg
ICBjYXJldCBjYW4ndCBiZSByZW5kZXJlZCwgbGlrZSBlbmRPZlBhcmFncmFwaC4KKyAgICAgICAg
KFdlYkNvcmU6OmVuZE9mUGFyYWdyYXBoKTogQWxsb3cgZXhwbGljaXQgY29udGVudGVkaXRhYmxl
IGJvdW5kYXJ5CisgICAgICAgIHNlbGVjdGlvbiBjaGVjayB0byBiZSBkaXNhYmxlZC4KKwogMjAx
MC0xMC0xNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9WaXNp
YmxlU2VsZWN0aW9uLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApp
bmRleCA0MDM3NjcwOWU3ZjUwY2YxMmFlOWI1MGZkMjVhOWU3MjVlOTczOTI1Li45MThkZWY3Mzkx
ZWJkZDc5MmNjY2FkZTc1NjIxN2ExNGE1ZTk5ZTg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRp
bmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxl
Y3Rpb24uY3BwCkBAIC0zNDIsOCArMzQyLDggQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpzZXRT
dGFydEFuZEVuZEZyb21CYXNlQW5kRXh0ZW50UmVzcGVjdGluZ0dyYW51bGFyaXR5KFRleHQKICAg
ICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBwb3MobV9zdGFydCwgbV9hZmZpbml0eSk7CiAgICAg
ICAgICAgICBpZiAoaXNTdGFydE9mTGluZShwb3MpICYmIGlzRW5kT2ZEb2N1bWVudChwb3MpKQog
ICAgICAgICAgICAgICAgIHBvcyA9IHBvcy5wcmV2aW91cygpOwotICAgICAgICAgICAgbV9zdGFy
dCA9IHN0YXJ0T2ZQYXJhZ3JhcGgocG9zKS5kZWVwRXF1aXZhbGVudCgpOwotICAgICAgICAgICAg
VmlzaWJsZVBvc2l0aW9uIHZpc2libGVQYXJhZ3JhcGhFbmQgPSBlbmRPZlBhcmFncmFwaChWaXNp
YmxlUG9zaXRpb24obV9lbmQsIG1fYWZmaW5pdHkpKTsKKyAgICAgICAgICAgIG1fc3RhcnQgPSBz
dGFydE9mUGFyYWdyYXBoKHBvcywgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpLmRlZXBFcXVpdmFs
ZW50KCk7CisgICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBhcmFncmFwaEVuZCA9
IGVuZE9mUGFyYWdyYXBoKFZpc2libGVQb3NpdGlvbihtX2VuZCwgbV9hZmZpbml0eSksIENhbkNy
b3NzRWRpdGluZ0JvdW5kYXJ5KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSW5jbHVk
ZSB0aGUgInBhcmFncmFwaCBicmVhayIgKHRoZSBzcGFjZSBmcm9tIHRoZSBlbmQgb2YgdGhpcyBw
YXJhZ3JhcGggdG8gdGhlIHN0YXJ0CiAgICAgICAgICAgICAvLyBvZiB0aGUgbmV4dCBvbmUpIGlu
IHRoZSBzZWxlY3Rpb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0
cy5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKaW5kZXggZDljYTIyMzM4
NjA5OTBhMDcwYmYyNTY0YjMzMmE4NGE5Yzk5OGMzNy4uMDQ1MjFlZTQ5M2UyOWNhODAyYjEwNDEy
ZmU4NTZlMjQwNzczMTlhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5p
dHMuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcApAQCAtNzc5LDcg
Kzc3OSw3IEBAIFZpc2libGVQb3NpdGlvbiBuZXh0U2VudGVuY2VQb3NpdGlvbihjb25zdCBWaXNp
YmxlUG9zaXRpb24gJmMpCiAgICAgcmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJvdW5kYXJ5QXRPckJl
Zm9yZShuZXh0KTsKIH0KIAotVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3Qg
VmlzaWJsZVBvc2l0aW9uJiBjKQorVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRh
cnlDcm9zc2luZ1J1bGUpCiB7CiAgICAgUG9zaXRpb24gcCA9IGMuZGVlcEVxdWl2YWxlbnQoKTsK
ICAgICBOb2RlICpzdGFydE5vZGUgPSBwLm5vZGUoKTsKQEAgLTc5Nyw3ICs3OTcsNyBAQCBWaXNp
YmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMpCiAK
ICAgICBOb2RlICpuID0gc3RhcnROb2RlOwogICAgIHdoaWxlIChuKSB7Ci0gICAgICAgIGlmIChu
LT5pc0NvbnRlbnRFZGl0YWJsZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkK
KyAgICAgICAgaWYgKGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlID09IENhbm5vdENyb3NzRWRpdGluZ0Jv
dW5kYXJ5ICYmIG4tPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0NvbnRlbnRF
ZGl0YWJsZSgpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFJlbmRlck9iamVjdCAqciA9
IG4tPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICghcikgewpAQCAtODEyLDggKzgxMiwxMCBAQCBW
aXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMp
CiAgICAgICAgIAogICAgICAgICBpZiAoci0+aXNCUigpIHx8IGlzQmxvY2sobikpCiAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAgICAgICBpZiAoci0+aXNUZXh0KCkpIHsKKwor
ICAgICAgICAvLyBGSVhNRTogV2UgYXZvaWQgcmV0dXJuaW5nIGEgcG9zaXRpb24gd2hlcmUgdGhl
IHJlbmRlcmVyIGNhbid0IGFjY2VwdCB0aGUgY2FyZXQuCisgICAgICAgIC8vIFdlIGFsc28gZG8g
dGhpcyBpbiBlbmRPZlBhcmFncmFwaCwgYW5kIG1pZ2h0IHdhbnQgdG8gZG8gaXQgaW4gb3RoZXIg
Y2FzZXMgdG9vLgorICAgICAgICBpZiAoci0+aXNUZXh0KCkgJiYgci0+Y2FyZXRNYXhSZW5kZXJl
ZE9mZnNldCgpID4gMCkgewogICAgICAgICAgICAgaWYgKHN0eWxlLT5wcmVzZXJ2ZU5ld2xpbmUo
KSkgewogICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFycyA9IHRvUmVuZGVyVGV4dChy
KS0+Y2hhcmFjdGVycygpOwogICAgICAgICAgICAgICAgIGludCBpID0gdG9SZW5kZXJUZXh0KHIp
LT50ZXh0TGVuZ3RoKCk7CkBAIC04MzgsNyArODQwLDcgQEAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0
T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjKQogICAgIHJldHVybiBWaXNpYmxl
UG9zaXRpb24obm9kZSwgb2Zmc2V0LCBET1dOU1RSRUFNKTsKIH0KIAotVmlzaWJsZVBvc2l0aW9u
IGVuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYykKK1Zpc2libGVQb3NpdGlv
biBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMsIEVkaXRpbmdCb3VuZGFy
eUNyb3NzaW5nUnVsZSBib3VuZGFyeUNyb3NzaW5nUnVsZSkKIHsgICAgCiAgICAgaWYgKGMuaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKQEAgLTg1Nyw3ICs4NTks
NyBAQCBWaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9u
ICZjKQogCiAgICAgTm9kZSAqbiA9IHN0YXJ0Tm9kZTsKICAgICB3aGlsZSAobikgewotICAgICAg
ICBpZiAobi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFydE5vZGUtPmlzQ29udGVudEVkaXRh
YmxlKCkpCisgICAgICAgIGlmIChib3VuZGFyeUNyb3NzaW5nUnVsZSA9PSBDYW5ub3RDcm9zc0Vk
aXRpbmdCb3VuZGFyeSAmJiBuLT5pc0NvbnRlbnRFZGl0YWJsZSgpICE9IHN0YXJ0Tm9kZS0+aXND
b250ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBSZW5kZXJPYmpl
Y3QgKnIgPSBuLT5yZW5kZXJlcigpOwogICAgICAgICBpZiAoIXIpIHsKQEAgLTg3Miw5ICs4NzQs
OCBAQCBWaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9u
ICZjKQogICAgICAgICAKICAgICAgICAgaWYgKHItPmlzQlIoKSB8fCBpc0Jsb2NrKG4pKQogICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKKwogICAgICAgICAvLyBGSVhNRTogV2UgYXZv
aWQgcmV0dXJuaW5nIGEgcG9zaXRpb24gd2hlcmUgdGhlIHJlbmRlcmVyIGNhbid0IGFjY2VwdCB0
aGUgY2FyZXQuCi0gICAgICAgIC8vIFdlIHNob3VsZCBwcm9iYWJseSBkbyB0aGlzIGluIG90aGVy
IGNhc2VzIHN1Y2ggYXMgc3RhcnRPZlBhcmFncmFwaC4KICAgICAgICAgaWYgKHItPmlzVGV4dCgp
ICYmIHItPmNhcmV0TWF4UmVuZGVyZWRPZmZzZXQoKSA+IDApIHsKICAgICAgICAgICAgIGludCBs
ZW5ndGggPSB0b1JlbmRlclRleHQociktPnRleHRMZW5ndGgoKTsKICAgICAgICAgICAgIGlmIChz
dHlsZS0+cHJlc2VydmVOZXdsaW5lKCkpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy92
aXNpYmxlX3VuaXRzLmggYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCmluZGV4IGEy
MGI1ODg4OTc1ZWY3Y2I1MzkwODJmMGViZGY0OWRiZThkMjljOTMuLmQ4ZjFjNGVjNjhiY2FhODJm
YTdkN2FlNmExY2Y5MmQyNjk1YWY5OGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy92aXNp
YmxlX3VuaXRzLmgKKysrIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaApAQCAtMzQs
NiArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAK
IGVudW0gRVdvcmRTaWRlIHsgUmlnaHRXb3JkSWZPbkJvdW5kYXJ5ID0gZmFsc2UsIExlZnRXb3Jk
SWZPbkJvdW5kYXJ5ID0gdHJ1ZSB9OworZW51bSBFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUg
eyBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSwgQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkgfTsK
IAogLy8gd29yZHMKIFZpc2libGVQb3NpdGlvbiBzdGFydE9mV29yZChjb25zdCBWaXNpYmxlUG9z
aXRpb24gJiwgRVdvcmRTaWRlID0gUmlnaHRXb3JkSWZPbkJvdW5kYXJ5KTsKQEAgLTYwLDggKzYx
LDggQEAgVmlzaWJsZVBvc2l0aW9uIGxvZ2ljYWxTdGFydE9mTGluZShjb25zdCBWaXNpYmxlUG9z
aXRpb24gJik7CiBWaXNpYmxlUG9zaXRpb24gbG9naWNhbEVuZE9mTGluZShjb25zdCBWaXNpYmxl
UG9zaXRpb24gJik7CiAKIC8vIHBhcmFncmFwaHMgKHBlcmhhcHMgYSBtaXNub21lciwgY2FuIGJl
IGRpdmlkZWQgYnkgbGluZSBicmVhayBlbGVtZW50cykKLVZpc2libGVQb3NpdGlvbiBzdGFydE9m
UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwotVmlzaWJsZVBvc2l0aW9uIGVuZE9m
UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOworVmlzaWJsZVBvc2l0aW9uIHN0YXJ0
T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgRWRpdGluZ0JvdW5kYXJ5Q3Jvc3Np
bmdSdWxlID0gQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOworVmlzaWJsZVBvc2l0aW9uIGVu
ZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIEVkaXRpbmdCb3VuZGFyeUNyb3Nz
aW5nUnVsZSA9IENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKIFZpc2libGVQb3NpdGlvbiBz
dGFydE9mTmV4dFBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIFZpc2libGVQb3Np
dGlvbiBwcmV2aW91c1BhcmFncmFwaFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBp
bnQgeCk7CiBWaXNpYmxlUG9zaXRpb24gbmV4dFBhcmFncmFwaFBvc2l0aW9uKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiAmLCBpbnQgeCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71839</attachid>
            <date>2010-10-25 21:28:28 -0700</date>
            <delta_ts>2010-10-26 01:48:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48037-20101026152824.patch</filename>
            <type>text/plain</type>
            <size>14106</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MTM5NTkxNjI1MmZkNjNmODNiODQ4YmQwZGQwNWI1NWEzZmU4MjkyLi44YjI4YWIw
YmMzNmFjNTM4YTY2NmZmMzZmNjE1N2ZkMjBhOGE1ZWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMTAtMjUgIEJlbmphbWluIEthbG1hbiAgPGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJpcGxlIGNsaWNr
IGRvZXMgbm90IHNlbGVjdCB3aG9sZSBsaW5lIGZvciBtaXhlZCBjb250ZW50ZWRpdGFibGUgcmVn
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgw
MzcKKworICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW1peGVkLWVkaXRhYmls
aXR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbDogVGVzdHMgdGhhdAorICAgICAgICBjb250ZW50
ZWRpdGFibGUgaW5kZW50IGRvZXNuJ3QgY3Jvc3MgZWRpdGFiaWxpdHkgYm91bmRhcmllcy4KKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5
LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbDoKKyAg
ICAgICAgVGVzdHMgdGhhdCB0cmlwbGUgY2xpY2sgc2VsZWN0cyBhY3Jvc3MgZWRpdGFiaWxpdHkg
Ym91bmRhcmllcy4KKwogMjAxMC0xMC0yNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbWl4ZWQtZWRp
dGFiaWxpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5ODllNWU4MzRmMjU5MGQzMjhiZWM2
MzViNDA3ZWU2NGYxOTQ5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw5IEBACitUZXN0cyB0aGF0IGluZGVudGluZyBhIGNvbnRlbnRlZGl0YWJsZSBzcGFuIGlu
c2lkZSBhIG5vbi1jb250ZW50ZWRpdGFibGUgZGl2IGRvZXMgbm90IGNyYXNoLgorfCAiaGVsbG8g
IgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIKK3wgICBpZD0iY29udGVudCIKK3wg
ICA8YmxvY2txdW90ZT4KK3wgICAgIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiCit8
ICAgICBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBw
eDsiCit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPndvcmxkPCNzZWxlY3Rpb24tZm9jdXM+Igpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbWl4ZWQt
ZWRpdGFiaWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50
LW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzAxNDc4MmIyODZjZGJiNThiZDlh
NTNmNTdhZTkwODQ3NGNlMWM4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvaW5kZW50LW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwKQEAgLTAsMCArMSw4
IEBACis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3Nj
cmlwdD4KKzxkaXY+aGVsbG8gPHNwYW4gaWQ9ImNvbnRlbnQiIGNvbnRlbnRlZGl0YWJsZT53b3Js
ZDwvc3Bhbj48L2Rpdj4KKzxzY3JpcHQ+Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxs
Q2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKSk7Citkb2N1bWVudC5l
eGVjQ29tbWFuZCgiaW5kZW50Iik7CitNYXJrdXAuZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaW5k
ZW50aW5nIGEgY29udGVudGVkaXRhYmxlIHNwYW4gaW5zaWRlIGEgbm9uLWNvbnRlbnRlZGl0YWJs
ZSBkaXYgZG9lcyBub3QgY3Jhc2guIik7CitNYXJrdXAuZHVtcChkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiZGl2IilbMF0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5k
YXJpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxl
LWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yODAzNGZiYWI0MDRmZjhkNWNlYTU0YTg1OWE5N2NhZTM5ZGI5YTUxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9z
cy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMzIEBACitU
ZXN0cyB0aGF0IHRyaXBsZSBjbGlja2luZyBpbnNpZGUgYSBjb250ZW50ZWRpdGFibGUgcmVnaW9u
IHdoaWNoIGNvbnRhaW5zIGEgbm9uLWNvbnRlbnRlZGl0YWJsZSByZWdpb24gc3RpbGwgaGlnaGxp
Z2h0cyB0aGUgd2hvbGUgbGluZS4KKworVGhpcyB0ZXN0IGRvZXMgbm90IHJ1biBpbnRlcmFjdGl2
ZWx5LiBJdCB1c2VzIHRoZSBsYXlvdXRUZXN0Q29udHJvbGxlcnMgZXZlbnRTZW5kZXIgdG8gZG8g
bW91c2UgY2xpY2tzLgorCisKK1Rlc3QgMTogbm9uLWNvbnRlbnRlZGl0YWJsZSBpbnNpZGUgYSBj
b250ZW50ZWRpdGFibGUuIFRvIHJ1biBtYW51YWxseSwgdHJpcGxlIGNsaWNrIG9uIGVpdGhlciAi
Zm9vIiwgImJheiIsIG9yICJvb2YiOyB0aGUgd2hvbGUgbGluZSBzaG91bGQgYmUgc2VsZWN0ZWQu
CisKK2ZvbyBiYXIgYmF6IHJhYiBvb2YKKworVGVzdCAyOiBjb250ZW50ZWRpdGFibGUgaW5zaWRl
IGEgbm9uLWNvbnRlbnRlZGl0YWJsZS4gVG8gcnVuIG1hbnVhbGx5LCB0cmlwbGUgY2xpY2sgb24g
ZWl0aGVyICJmb28iLCAiYmFyIiwgb3IgImJheiI7IHRoZSB3aG9sZSBsaW5lIHNob3VsZCBiZSBz
ZWxlY3RlZC4gTm90ZTogaW4gSUUsIHRyaXBsZS1jbGlja2luZyBvbiAiYmFyIiBvbmx5IHNlbGVj
dHMgImJhciIuCisKK2ZvbyBiYXIgYmF6CisKK1Rlc3QgMzogbmVzdGVkIGNvbnRlbnRlZGl0YWJs
ZS9ub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbnMuIFRvIHJ1biBtYW51YWxseSwgdHJpcGxlIGNs
aWNrIG9uIGVpdGhlciAiZm9vIiwgImJheiIsIG9yICJvb2YiOyB0aGUgd2hvbGUgbGluZSBzaG91
bGQgYmUgc2VsZWN0ZWQuIE5vdGU6IGluIElFLCB0cmlwbGUtY2xpY2tpbmcgb24gImJheiIgb25s
eSBzZWxlY3RzICJiYXoiLgorCitmb28gYmFyIGJheiByYWIgb29mCisKK1Jlc3VsdHMgZm9yIHRl
c3QxRWxlbWVudDoKK1NlbGVjdGVkIHRleHQgb2YgdGVzdDFFbGVtZW50IGZyb20gdGhlIGxlZnQ6
IFtmb28gYmFyIGJheiByYWIgb29mXQorU2VsZWN0ZWQgdGV4dCBvZiB0ZXN0MUVsZW1lbnQgZnJv
bSB0aGUgbWlkZGxlOiBbZm9vIGJhciBiYXogcmFiIG9vZl0KK1NlbGVjdGVkIHRleHQgb2YgdGVz
dDFFbGVtZW50IGZyb20gdGhlIHJpZ2h0OiBbZm9vIGJhciBiYXogcmFiIG9vZl0KK1Jlc3VsdHMg
Zm9yIHRlc3QyRWxlbWVudDoKK1NlbGVjdGVkIHRleHQgb2YgdGVzdDJFbGVtZW50IGZyb20gdGhl
IGxlZnQ6IFtmb28gYmFyIGJhegorXQorU2VsZWN0ZWQgdGV4dCBvZiB0ZXN0MkVsZW1lbnQgZnJv
bSB0aGUgbWlkZGxlOiBbZm9vIGJhciBiYXoKK10KK1NlbGVjdGVkIHRleHQgb2YgdGVzdDJFbGVt
ZW50IGZyb20gdGhlIHJpZ2h0OiBbZm9vIGJhciBiYXoKK10KK1Jlc3VsdHMgZm9yIHRlc3QzRWxl
bWVudDoKK1NlbGVjdGVkIHRleHQgb2YgdGVzdDNFbGVtZW50IGZyb20gdGhlIGxlZnQ6IFtmb28g
YmFyIGJheiByYWIgb29mXQorU2VsZWN0ZWQgdGV4dCBvZiB0ZXN0M0VsZW1lbnQgZnJvbSB0aGUg
bWlkZGxlOiBbZm9vIGJhciBiYXogcmFiIG9vZl0KK1NlbGVjdGVkIHRleHQgb2YgdGVzdDNFbGVt
ZW50IGZyb20gdGhlIHJpZ2h0OiBbZm9vIGJhciBiYXogcmFiIG9vZl0KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJp
bGl0eS1ib3VuZGFyaWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlw
bGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YzFiMWM1ZjhmYTZhOTQwMDEzYWM4YTg5ZjlhNzIxYjU4M2Q1MGM3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0
YWJpbGl0eS1ib3VuZGFyaWVzLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPGh0bWw+Cis8Ym9keT4K
KzxwPlRlc3RzIHRoYXQgdHJpcGxlIGNsaWNraW5nIGluc2lkZSBhIGNvbnRlbnRlZGl0YWJsZSBy
ZWdpb24gd2hpY2ggY29udGFpbnMgYSBub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbiBzdGlsbCBo
aWdobGlnaHRzIHRoZSB3aG9sZSBsaW5lLjwvcD4KKzxwIHN0eWxlPSJjb2xvcjpncmVlbiI+VGhp
cyB0ZXN0IGRvZXMgbm90IHJ1biBpbnRlcmFjdGl2ZWx5LiAgSXQgdXNlcyB0aGUgbGF5b3V0VGVz
dENvbnRyb2xsZXJzIGV2ZW50U2VuZGVyIHRvIGRvIG1vdXNlIGNsaWNrcy48L3A+CisKKzxiciAv
PgorPHA+VGVzdCAxOiBub24tY29udGVudGVkaXRhYmxlIGluc2lkZSBhIGNvbnRlbnRlZGl0YWJs
ZS4gVG8gcnVuIG1hbnVhbGx5LCB0cmlwbGUgY2xpY2sgb24gZWl0aGVyICJmb28iLCAiYmF6Iiwg
b3IgIm9vZiI7IHRoZSB3aG9sZSBsaW5lIHNob3VsZCBiZSBzZWxlY3RlZC48L3A+Cis8ZGl2IGNv
bnRlbnRlZGl0YWJsZSBpZD0idGVzdDFFbGVtZW50Ij4KK2ZvbyA8c3BhbiBjb250ZW50ZWRpdGFi
bGU9ImZhbHNlIj5iYXI8L3NwYW4+IGJheiA8c3BhbiBjb250ZW5lZGl0YWJsZT0iZmFsc2UiPnJh
Yjwvc3Bhbj4gb29mCis8L2Rpdj4KKworPGJyIC8+Cis8cD5UZXN0IDI6IGNvbnRlbnRlZGl0YWJs
ZSBpbnNpZGUgYSBub24tY29udGVudGVkaXRhYmxlLiBUbyBydW4gbWFudWFsbHksIHRyaXBsZSBj
bGljayBvbiBlaXRoZXIgImZvbyIsICJiYXIiLCBvciAiYmF6IjsgdGhlIHdob2xlIGxpbmUgc2hv
dWxkIGJlIHNlbGVjdGVkLiA8ZW0+Tm90ZTogaW4gSUUsIHRyaXBsZS1jbGlja2luZyBvbiAiYmFy
IiBvbmx5IHNlbGVjdHMgImJhciIuPC9lbT48L3A+Cis8ZGl2IGlkPSJ0ZXN0MkVsZW1lbnQiPgor
Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXI8L3NwYW4+IGJhegorPC9kaXY+CisKKzxiciAv
PgorPHA+VGVzdCAzOiBuZXN0ZWQgY29udGVudGVkaXRhYmxlL25vbi1jb250ZW50ZWRpdGFibGUg
cmVnaW9ucy4gVG8gcnVuIG1hbnVhbGx5LCB0cmlwbGUgY2xpY2sgb24gZWl0aGVyICJmb28iLCAi
YmF6Iiwgb3IgIm9vZiI7IHRoZSB3aG9sZSBsaW5lIHNob3VsZCBiZSBzZWxlY3RlZC4gPGVtPk5v
dGU6IGluIElFLCB0cmlwbGUtY2xpY2tpbmcgb24gImJheiIgb25seSBzZWxlY3RzICJiYXoiLjwv
ZW0+PC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9InRlc3QzRWxlbWVudCI+Citmb28gPHNw
YW4gY29udGVudGVkaXRhYmxlPSJmYWxzZSI+YmFyIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXo8
L3NwYW4+IHJhYjwvc3Bhbj4gb29mCis8L2Rpdj4KKworPGJyIC8+Cis8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgdmFyIHRlc3RFbGVt
ZW50SWRzID0gWyJ0ZXN0MUVsZW1lbnQiLCAidGVzdDJFbGVtZW50IiwgInRlc3QzRWxlbWVudCJd
OworICAgIGZvciAodmFyIGkgaW4gdGVzdEVsZW1lbnRJZHMpIHsKKyAgICAgICAgdmFyIGVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0ZXN0RWxlbWVudElkc1tpXSk7CisgICAgICAg
IGxvZygiUmVzdWx0cyBmb3IgIiArIGVsZW1lbnQuaWQgKyAiOlxuIik7CisgICAgICAgIHRyaXBs
ZUNsaWNrQW5kTG9nKGVsZW1lbnQsICJsZWZ0Iik7CisgICAgICAgIHRyaXBsZUNsaWNrQW5kTG9n
KGVsZW1lbnQsICJtaWRkbGUiKTsKKyAgICAgICAgdHJpcGxlQ2xpY2tBbmRMb2coZWxlbWVudCwg
InJpZ2h0Iik7CisgICAgfQorfQorCitmdW5jdGlvbiB0cmlwbGVDbGlja0FuZExvZyhwYXJlbnQs
IHNpZGUpIHsKKyAgICAvLyBQb3NpdGlvbiAoeCwgeSkgd2l0aGluIHRoZSBwYXJlbnQgb24gdGhl
IGNvcnJlY3Qgc2lkZS4KKyAgICB2YXIgeCA9IDA7CisgICAgaWYgKHNpZGUgPT09ICJsZWZ0IikK
KyAgICAgIHggPSBwYXJlbnQub2Zmc2V0TGVmdCArIDg7CisgICAgZWxzZSBpZiAoc2lkZSA9PT0g
InJpZ2h0IikKKyAgICAgIHggPSBwYXJlbnQub2Zmc2V0TGVmdCArIHBhcmVudC5vZmZzZXRXaWR0
aCAtIDg7CisgICAgZWxzZSBpZiAoc2lkZSA9PT0gIm1pZGRsZSIpCisgICAgICB4ID0gcGFyZW50
Lm9mZnNldExlZnQgKyAocGFyZW50Lm9mZnNldFdpZHRoIC8gMik7CisgICAgdmFyIHkgPSBwYXJl
bnQub2Zmc2V0VG9wICsgNDsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKwor
ICAgIC8vIFRyaXBsZSBjbGljay4KKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgIGxvZygiU2VsZWN0ZWQgdGV4dCBvZiAiICsg
cGFyZW50LmlkICsgIiBmcm9tIHRoZSAiICsgc2lkZSArICI6IFsiICsgZG9jdW1lbnQuZ2V0U2Vs
ZWN0aW9uKCkgKyAiXVxuIik7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShtZXNzYWdlKSk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M2
YTdmOGE1OWVhYjg1ODU5YTE3NjYzY2ExMGNkM2UxMzJhZTQyOC4uMDZmNDFkMjMxYWJlMmE4NDlh
MTU4YzQ2NTg2Mjc0YjkwYmQ3YzE1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0xMC0yNSAgQmVuamFt
aW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmlwbGUgY2xpY2sgZG9lcyBub3Qgc2VsZWN0IHdo
b2xlIGxpbmUgZm9yIG1peGVkIGNvbnRlbnRlZGl0YWJsZSByZWdpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODAzNworCisgICAgICAgIFRlc3Rz
OiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJpbGl0eS5odG1sCisgICAg
ICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmls
aXR5LWJvdW5kYXJpZXMuaHRtbAorCisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9u
LmNwcDogQ3Jvc3MgZWRpdGFiaWxpdHkgYm91bmRhcnkgaW4gY2FsbHMgdG8KKyAgICAgICAgc3Rh
cnRPZlBhcmFncmFwaC9lbmRPZlBhcmFncmFwaC4KKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVT
ZWxlY3Rpb246OnNldFN0YXJ0QW5kRW5kRnJvbUJhc2VBbmRFeHRlbnRSZXNwZWN0aW5nR3JhbnVs
YXJpdHkpOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6IEFsbG93IGVkaXRh
YmlsaXR5IGJvdW5kYXJ5IHRvIGJlIGNyb3NzZWQgaW4KKyAgICAgICAgc3RhcnRPZlBhcmFncmFw
aC9lbmRPZlBhcmFncmFwaC4KKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0T2ZQYXJhZ3JhcGgpOgor
ICAgICAgICAoV2ViQ29yZTo6ZW5kT2ZQYXJhZ3JhcGgpOgorICAgICAgICAqIGVkaXRpbmcvdmlz
aWJsZV91bml0cy5oOiBBZGQgZW51bSBmb3Igb3ZlcnJpZGluZyBlZGl0YWJpbGl0eSBib3VuZGFy
eS4KKwogMjAxMC0xMC0yNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5n
L1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24u
Y3BwCmluZGV4IDQwMzc2NzA5ZTdmNTBjZjEyYWU5YjUwZmQyNWE5ZTcyNWU5NzM5MjUuLjkxOGRl
ZjczOTFlYmRkNzkyY2NjYWRlNzU2MjE3YTE0YTVlOTllODUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVNlbGVjdGlvbi5jcHAKQEAgLTM0Miw4ICszNDIsOCBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246
OnNldFN0YXJ0QW5kRW5kRnJvbUJhc2VBbmRFeHRlbnRSZXNwZWN0aW5nR3JhbnVsYXJpdHkoVGV4
dAogICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyhtX3N0YXJ0LCBtX2FmZmluaXR5KTsK
ICAgICAgICAgICAgIGlmIChpc1N0YXJ0T2ZMaW5lKHBvcykgJiYgaXNFbmRPZkRvY3VtZW50KHBv
cykpCiAgICAgICAgICAgICAgICAgcG9zID0gcG9zLnByZXZpb3VzKCk7Ci0gICAgICAgICAgICBt
X3N0YXJ0ID0gc3RhcnRPZlBhcmFncmFwaChwb3MpLmRlZXBFcXVpdmFsZW50KCk7Ci0gICAgICAg
ICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBhcmFncmFwaEVuZCA9IGVuZE9mUGFyYWdyYXBo
KFZpc2libGVQb3NpdGlvbihtX2VuZCwgbV9hZmZpbml0eSkpOworICAgICAgICAgICAgbV9zdGFy
dCA9IHN0YXJ0T2ZQYXJhZ3JhcGgocG9zLCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkuZGVlcEVx
dWl2YWxlbnQoKTsKKyAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUGFyYWdyYXBo
RW5kID0gZW5kT2ZQYXJhZ3JhcGgoVmlzaWJsZVBvc2l0aW9uKG1fZW5kLCBtX2FmZmluaXR5KSwg
Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBJ
bmNsdWRlIHRoZSAicGFyYWdyYXBoIGJyZWFrIiAodGhlIHNwYWNlIGZyb20gdGhlIGVuZCBvZiB0
aGlzIHBhcmFncmFwaCB0byB0aGUgc3RhcnQKICAgICAgICAgICAgIC8vIG9mIHRoZSBuZXh0IG9u
ZSkgaW4gdGhlIHNlbGVjdGlvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy92aXNpYmxl
X3VuaXRzLmNwcCBiL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAppbmRleCBkOWNh
MjIzMzg2MDk5MGEwNzBiZjI1NjRiMzMyYTg0YTljOTk4YzM3Li4wNDUyMWVlNDkzZTI5Y2E4MDJi
MTA0MTJmZTg1NmUyNDA3NzMxOWE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJs
ZV91bml0cy5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCkBAIC03
NzksNyArNzc5LDcgQEAgVmlzaWJsZVBvc2l0aW9uIG5leHRTZW50ZW5jZVBvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiAmYykKICAgICByZXR1cm4gYy5ob25vckVkaXRhYmxlQm91bmRhcnlB
dE9yQmVmb3JlKG5leHQpOwogfQogCi1WaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChj
b25zdCBWaXNpYmxlUG9zaXRpb24mIGMpCitWaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFw
aChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBi
b3VuZGFyeUNyb3NzaW5nUnVsZSkKIHsKICAgICBQb3NpdGlvbiBwID0gYy5kZWVwRXF1aXZhbGVu
dCgpOwogICAgIE5vZGUgKnN0YXJ0Tm9kZSA9IHAubm9kZSgpOwpAQCAtNzk3LDcgKzc5Nyw3IEBA
IFZpc2libGVQb3NpdGlvbiBzdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYg
YykKIAogICAgIE5vZGUgKm4gPSBzdGFydE5vZGU7CiAgICAgd2hpbGUgKG4pIHsKLSAgICAgICAg
aWYgKG4tPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0NvbnRlbnRFZGl0YWJs
ZSgpKQorICAgICAgICBpZiAoYm91bmRhcnlDcm9zc2luZ1J1bGUgPT0gQ2Fubm90Q3Jvc3NFZGl0
aW5nQm91bmRhcnkgJiYgbi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFydE5vZGUtPmlzQ29u
dGVudEVkaXRhYmxlKCkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgUmVuZGVyT2JqZWN0
ICpyID0gbi0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKCFyKSB7CkBAIC04MTIsOCArODEyLDEw
IEBAIFZpc2libGVQb3NpdGlvbiBzdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlv
biYgYykKICAgICAgICAgCiAgICAgICAgIGlmIChyLT5pc0JSKCkgfHwgaXNCbG9jayhuKSkKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgIGlmIChyLT5pc1RleHQoKSkg
eworCisgICAgICAgIC8vIEZJWE1FOiBXZSBhdm9pZCByZXR1cm5pbmcgYSBwb3NpdGlvbiB3aGVy
ZSB0aGUgcmVuZGVyZXIgY2FuJ3QgYWNjZXB0IHRoZSBjYXJldC4KKyAgICAgICAgLy8gV2UgYWxz
byBkbyB0aGlzIGluIGVuZE9mUGFyYWdyYXBoLCBhbmQgbWlnaHQgd2FudCB0byBkbyBpdCBpbiBv
dGhlciBjYXNlcyB0b28uCisgICAgICAgIGlmIChyLT5pc1RleHQoKSAmJiByLT5jYXJldE1heFJl
bmRlcmVkT2Zmc2V0KCkgPiAwKSB7CiAgICAgICAgICAgICBpZiAoc3R5bGUtPnByZXNlcnZlTmV3
bGluZSgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqIGNoYXJzID0gdG9SZW5kZXJU
ZXh0KHIpLT5jaGFyYWN0ZXJzKCk7CiAgICAgICAgICAgICAgICAgaW50IGkgPSB0b1JlbmRlclRl
eHQociktPnRleHRMZW5ndGgoKTsKQEAgLTgzOCw3ICs4NDAsNyBAQCBWaXNpYmxlUG9zaXRpb24g
c3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMpCiAgICAgcmV0dXJuIFZp
c2libGVQb3NpdGlvbihub2RlLCBvZmZzZXQsIERPV05TVFJFQU0pOwogfQogCi1WaXNpYmxlUG9z
aXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZjKQorVmlzaWJsZVBv
c2l0aW9uIGVuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYywgRWRpdGluZ0Jv
dW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQogeyAgICAKICAgICBpZiAo
Yy5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwpAQCAtODU3LDcg
Kzg1OSw3IEBAIFZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9z
aXRpb24gJmMpCiAKICAgICBOb2RlICpuID0gc3RhcnROb2RlOwogICAgIHdoaWxlIChuKSB7Ci0g
ICAgICAgIGlmIChuLT5pc0NvbnRlbnRFZGl0YWJsZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50
RWRpdGFibGUoKSkKKyAgICAgICAgaWYgKGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlID09IENhbm5vdENy
b3NzRWRpdGluZ0JvdW5kYXJ5ICYmIG4tPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2Rl
LT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFJlbmRl
ck9iamVjdCAqciA9IG4tPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICghcikgewpAQCAtODcyLDkg
Kzg3NCw4IEBAIFZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9z
aXRpb24gJmMpCiAgICAgICAgIAogICAgICAgICBpZiAoci0+aXNCUigpIHx8IGlzQmxvY2sobikp
CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgIC8vIEZJWE1FOiBX
ZSBhdm9pZCByZXR1cm5pbmcgYSBwb3NpdGlvbiB3aGVyZSB0aGUgcmVuZGVyZXIgY2FuJ3QgYWNj
ZXB0IHRoZSBjYXJldC4KLSAgICAgICAgLy8gV2Ugc2hvdWxkIHByb2JhYmx5IGRvIHRoaXMgaW4g
b3RoZXIgY2FzZXMgc3VjaCBhcyBzdGFydE9mUGFyYWdyYXBoLgogICAgICAgICBpZiAoci0+aXNU
ZXh0KCkgJiYgci0+Y2FyZXRNYXhSZW5kZXJlZE9mZnNldCgpID4gMCkgewogICAgICAgICAgICAg
aW50IGxlbmd0aCA9IHRvUmVuZGVyVGV4dChyKS0+dGV4dExlbmd0aCgpOwogICAgICAgICAgICAg
aWYgKHN0eWxlLT5wcmVzZXJ2ZU5ld2xpbmUoKSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0
aW5nL3Zpc2libGVfdW5pdHMuaCBiL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgKaW5k
ZXggYTIwYjU4ODg5NzVlZjdjYjUzOTA4MmYwZWJkZjQ5ZGJlOGQyOWM5My4uZDhmMWM0ZWM2OGJj
YWE4MmZhN2Q3YWU2YTFjZjkyZDI2OTVhZjk4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5n
L3Zpc2libGVfdW5pdHMuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCkBA
IC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFZpc2libGVQb3NpdGlv
bjsKIAogZW51bSBFV29yZFNpZGUgeyBSaWdodFdvcmRJZk9uQm91bmRhcnkgPSBmYWxzZSwgTGVm
dFdvcmRJZk9uQm91bmRhcnkgPSB0cnVlIH07CitlbnVtIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5n
UnVsZSB7IENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5LCBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFy
eSB9OwogCiAvLyB3b3JkcwogVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZXb3JkKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiAmLCBFV29yZFNpZGUgPSBSaWdodFdvcmRJZk9uQm91bmRhcnkpOwpAQCAtNjAs
OCArNjEsOCBAQCBWaXNpYmxlUG9zaXRpb24gbG9naWNhbFN0YXJ0T2ZMaW5lKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiAmKTsKIFZpc2libGVQb3NpdGlvbiBsb2dpY2FsRW5kT2ZMaW5lKGNvbnN0IFZp
c2libGVQb3NpdGlvbiAmKTsKIAogLy8gcGFyYWdyYXBocyAocGVyaGFwcyBhIG1pc25vbWVyLCBj
YW4gYmUgZGl2aWRlZCBieSBsaW5lIGJyZWFrIGVsZW1lbnRzKQotVmlzaWJsZVBvc2l0aW9uIHN0
YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Ci1WaXNpYmxlUG9zaXRpb24g
ZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CitWaXNpYmxlUG9zaXRpb24g
c3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBFZGl0aW5nQm91bmRhcnlD
cm9zc2luZ1J1bGUgPSBDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CitWaXNpYmxlUG9zaXRp
b24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgRWRpdGluZ0JvdW5kYXJ5
Q3Jvc3NpbmdSdWxlID0gQ2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOwogVmlzaWJsZVBvc2l0
aW9uIHN0YXJ0T2ZOZXh0UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogVmlzaWJs
ZVBvc2l0aW9uIHByZXZpb3VzUGFyYWdyYXBoUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9u
ICYsIGludCB4KTsKIFZpc2libGVQb3NpdGlvbiBuZXh0UGFyYWdyYXBoUG9zaXRpb24oY29uc3Qg
VmlzaWJsZVBvc2l0aW9uICYsIGludCB4KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71850</attachid>
            <date>2010-10-26 01:46:12 -0700</date>
            <delta_ts>2010-10-29 11:42:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48037-20101026194608.patch</filename>
            <type>text/plain</type>
            <size>14176</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MTM5NTkxNjI1MmZkNjNmODNiODQ4YmQwZGQwNWI1NWEzZmU4MjkyLi44YjI4YWIw
YmMzNmFjNTM4YTY2NmZmMzZmNjE1N2ZkMjBhOGE1ZWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMTAtMjUgIEJlbmphbWluIEthbG1hbiAgPGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJpcGxlIGNsaWNr
IGRvZXMgbm90IHNlbGVjdCB3aG9sZSBsaW5lIGZvciBtaXhlZCBjb250ZW50ZWRpdGFibGUgcmVn
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgw
MzcKKworICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW1peGVkLWVkaXRhYmls
aXR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbDogVGVzdHMgdGhhdAorICAgICAgICBjb250ZW50
ZWRpdGFibGUgaW5kZW50IGRvZXNuJ3QgY3Jvc3MgZWRpdGFiaWxpdHkgYm91bmRhcmllcy4KKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5
LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbDoKKyAg
ICAgICAgVGVzdHMgdGhhdCB0cmlwbGUgY2xpY2sgc2VsZWN0cyBhY3Jvc3MgZWRpdGFiaWxpdHkg
Ym91bmRhcmllcy4KKwogMjAxMC0xMC0yNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbWl4ZWQtZWRp
dGFiaWxpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5ODllNWU4MzRmMjU5MGQzMjhiZWM2
MzViNDA3ZWU2NGYxOTQ5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJpbGl0eS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw5IEBACitUZXN0cyB0aGF0IGluZGVudGluZyBhIGNvbnRlbnRlZGl0YWJsZSBzcGFuIGlu
c2lkZSBhIG5vbi1jb250ZW50ZWRpdGFibGUgZGl2IGRvZXMgbm90IGNyYXNoLgorfCAiaGVsbG8g
IgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIKK3wgICBpZD0iY29udGVudCIKK3wg
ICA8YmxvY2txdW90ZT4KK3wgICAgIGNsYXNzPSJ3ZWJraXQtaW5kZW50LWJsb2NrcXVvdGUiCit8
ICAgICBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBw
eDsiCit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPndvcmxkPCNzZWxlY3Rpb24tZm9jdXM+Igpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbWl4ZWQt
ZWRpdGFiaWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50
LW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNkYWZhNDI2MTJkZTllZjZkNDVl
YWQxZTE0ZGM4MTVhMGYwY2E1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvaW5kZW50LW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwKQEAgLTAsMCArMSw5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1h
cy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPGRpdj5oZWxsbyA8c3BhbiBpZD0iY29udGVudCIgY29u
dGVudGVkaXRhYmxlPndvcmxkPC9zcGFuPjwvZGl2PgorPHNjcmlwdD4KK3dpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVu
dCIpKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJpbmRlbnQiKTsKK01hcmt1cC5kZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBpbmRlbnRpbmcgYSBjb250ZW50ZWRpdGFibGUgc3BhbiBpbnNpZGUgYSBu
b24tY29udGVudGVkaXRhYmxlIGRpdiBkb2VzIG5vdCBjcmFzaC4iKTsKK01hcmt1cC5kdW1wKGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKVswXSk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy90cmlwbGUt
Y2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuanMgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0
eS1ib3VuZGFyaWVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODM3NDY3MWE3ZTgzYWIyZjQ0ODMwZWE2OWYw
Y2I5ZjU3MmQ1MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9zY3JpcHQtdGVzdHMvdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFy
aWVzLmpzCkBAIC0wLDAgKzEsNzUgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0cmlwbGUgY2xpY2tp
bmcgc2VsZWN0aW9uIGFjcm9zcyBlZGl0YWJpbGl0eSBib3VuZGFyaWVzIik7CisKK2Z1bmN0aW9u
IGNyZWF0ZUVsZW1lbnRXaXRoSW5uZXJIVE1MKHRhZ05hbWUsIGlubmVySFRNTCkgeworICAgIHZh
ciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTsKKyAgICBlbGVtZW50
LmlubmVySFRNTCA9IGlubmVySFRNTDsKKyAgICByZXR1cm4gZWxlbWVudDsKK30KKworZnVuY3Rp
b24gdGVzdFRyaXBsZUNsaWNrKGV4cGVjdGVkLCBzaWRlLCBlbGVtZW50KSB7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKworICAgIC8vIFBvc2l0aW9uICh4LCB5KSB3
aXRoaW4gdGhlIHBhcmVudCBvbiB0aGUgY29ycmVjdCBzaWRlLgorICAgIHZhciB4ID0gMDsKKyAg
ICBpZiAoc2lkZSA9PT0gImxlZnQiKQorICAgICAgeCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIDg7
CisgICAgZWxzZSBpZiAoc2lkZSA9PT0gInJpZ2h0IikKKyAgICAgIHggPSBlbGVtZW50Lm9mZnNl
dExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC0gODsKKyAgICBlbHNlIGlmIChzaWRlID09PSAi
bWlkZGxlIikKKyAgICAgIHggPSBlbGVtZW50Lm9mZnNldExlZnQgKyAoZWxlbWVudC5vZmZzZXRX
aWR0aCAvIDIpOworICAgIHZhciB5ID0gZWxlbWVudC5vZmZzZXRUb3AgKyA0OworICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworCisgICAgLy8gVHJpcGxlIGNsaWNrLgorICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICBw
YXVzZSgxMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlVXAoKTsKKyAgICBwYXVzZSgxMDApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgIHZhciBhY3R1YWwgPSBkb2N1bWVu
dC5nZXRTZWxlY3Rpb24oKTsKKyAgICB2YXIgYWN0aW9uID0gIlRyaXBsZSBjbGljayBvbiAiICsg
c2lkZSArICIgaGFzIGNvbnRlbnQgWyIgKyBhY3R1YWwgKyAiXSI7CisgICAgaWYgKGFjdHVhbCA9
PSBleHBlY3RlZCkKKyAgICAgICAgdGVzdFBhc3NlZChhY3Rpb24pOworICAgIGVsc2UKKyAgICAg
ICAgdGVzdEZhaWxlZChhY3Rpb24gKyAiIGJ1dCBleHBlY3RlZCBbIiArIGV4cGVjdGVkICsgIl0i
KTsKKworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7Cit9CisKK2Z1bmN0
aW9uIHBhdXNlKG1pbGxpcykgeworICAgIHZhciBzdGFydERhdGUgPSBuZXcgRGF0ZSgpOworICAg
IHdoaWxlICgobmV3IERhdGUoKSkgLSBzdGFydERhdGUgPCBtaWxsaXMpIHt9Cit9CisKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBkZWJ1ZygiVGVzdCAxOiBjb250ZW50
ZWRpdGFibGUgcmVnaW9uIGNvbnRhaW5pbmcgbm9uLWNvbnRlbnRlZGl0YWJsZSByZWdpb24uIik7
CisgICAgdmFyIHRlc3QxID0gY3JlYXRlRWxlbWVudFdpdGhJbm5lckhUTUwoInNwYW4iLAorICAg
ICAgICAiZm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXI8L3NwYW4+IGJheiIpOworICAgIHRl
c3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXoiLCAibGVmdCIsIHRlc3QxKTsKKyAgICB0ZXN0VHJp
cGxlQ2xpY2soImJhciIsICJtaWRkbGUiLCB0ZXN0MSk7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJm
b28gYmFyIGJheiIsICJyaWdodCIsIHRlc3QxKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygiVGVzdCAyOiBub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbiBjb250YWluaW5nIGNvbnRlbnRl
ZGl0YWJsZSByZWdpb24uIik7CisgICAgdmFyIHRlc3QyID0gY3JlYXRlRWxlbWVudFdpdGhJbm5l
ckhUTUwoInNwYW4iLAorICAgICAgICAiPHNwYW4gY29udGVudGVkaXRhYmxlPmZvbyA8c3BhbiBj
b250ZW50ZWRpdGFibGU9ZmFsc2U+YmFyPC9zcGFuPiBiYXoiKTsKKyAgICB0ZXN0VHJpcGxlQ2xp
Y2soImZvbyBiYXIgYmF6IiwgImxlZnQiLCB0ZXN0Mik7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJi
YXIiLCAibWlkZGxlIiwgdGVzdDIpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXoi
LCAicmlnaHQiLCB0ZXN0Mik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgMzog
bmVzdGVkIGNvbnRlbnRlZGl0YWJsZS9ub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbnMuIik7Cisg
ICAgdmFyIHRlc3QzID0gY3JlYXRlRWxlbWVudFdpdGhJbm5lckhUTUwoInNwYW4iLAorICAgICAg
ICAiZm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXIgPHNwYW4gY29udGVudGVkaXRhYmxlPWZh
bHNlPmJhejwvc3Bhbj4gcmFiPC9zcGFuPiBvb2YiKTsKKyAgICB0ZXN0VHJpcGxlQ2xpY2soImZv
byBiYXIgYmF6IHJhYiBvb2YiLCAibGVmdCIsIHRlc3QzKTsKKyAgICBkZWJ1ZygiQlVHOiBzaG91
bGQgYmUgW2JhciwgYmF6LCByYWJdIik7CisgICAgLy90ZXN0VHJpcGxlQ2xpY2soImJhciBiYXog
cmFiIiwgIm1pZGRsZSIsIHRlc3QzKTsKKyAgICB0ZXN0VHJpcGxlQ2xpY2soImZvbyBiYXIgYmF6
IHJhYiBvb2YiLCAibWlkZGxlIiwgdGVzdDMpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJh
ciBiYXogcmFiIG9vZiIsICJyaWdodCIsIHRlc3QzKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRp
dGFiaWxpdHktYm91bmRhcmllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MzNjkwZTUzMmQ4
OWQ5YTE1NzJiNzgxZDI0NjYzMDc1MTcyZmI4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91
bmRhcmllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorVGVzdHMgdHJpcGxlIGNsaWNr
aW5nIHNlbGVjdGlvbiBhY3Jvc3MgZWRpdGFiaWxpdHkgYm91bmRhcmllcworCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworVGVzdCAxOiBjb250ZW50ZWRpdGFibGUgcmVnaW9uIGNvbnRh
aW5pbmcgbm9uLWNvbnRlbnRlZGl0YWJsZSByZWdpb24uCitQQVNTIFRyaXBsZSBjbGljayBvbiBs
ZWZ0IGhhcyBjb250ZW50IFtmb28gYmFyIGJhel0KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIG1pZGRs
ZSBoYXMgY29udGVudCBbYmFyXQorUEFTUyBUcmlwbGUgY2xpY2sgb24gcmlnaHQgaGFzIGNvbnRl
bnQgW2ZvbyBiYXIgYmF6XQorCitUZXN0IDI6IG5vbi1jb250ZW50ZWRpdGFibGUgcmVnaW9uIGNv
bnRhaW5pbmcgY29udGVudGVkaXRhYmxlIHJlZ2lvbi4KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIGxl
ZnQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6XQorUEFTUyBUcmlwbGUgY2xpY2sgb24gbWlkZGxl
IGhhcyBjb250ZW50IFtiYXJdCitQQVNTIFRyaXBsZSBjbGljayBvbiByaWdodCBoYXMgY29udGVu
dCBbZm9vIGJhciBiYXpdCisKK1Rlc3QgMzogbmVzdGVkIGNvbnRlbnRlZGl0YWJsZS9ub24tY29u
dGVudGVkaXRhYmxlIHJlZ2lvbnMuCitQQVNTIFRyaXBsZSBjbGljayBvbiBsZWZ0IGhhcyBjb250
ZW50IFtmb28gYmFyIGJheiByYWIgb29mXQorQlVHOiBzaG91bGQgYmUgW2JhciwgYmF6LCByYWJd
CitQQVNTIFRyaXBsZSBjbGljayBvbiBtaWRkbGUgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJh
YiBvb2ZdCitQQVNTIFRyaXBsZSBjbGljayBvbiByaWdodCBoYXMgY29udGVudCBbZm9vIGJhciBi
YXogcmFiIG9vZl0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUt
Y2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmll
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ3NTMzNDhmNGQ1MTQ3OGFiMjdlMzFiNjdmZmRmZGIxYzRjY2Fk
NmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlw
bGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbApAQCAtMCwwICsxLDEz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3RyaXBsZS1jbGljay1h
Y3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggY2M2YTdmOGE1OWVhYjg1ODU5YTE3NjYzY2ExMGNkM2UxMzJhZTQyOC4uMTRi
ODc4MzQwYzgzZTZjY2RhY2RhYjY2ZGNiMjMzYTc5YmM5MDVjYyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
MC0xMC0yNSAgQmVuamFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmlwbGUgY2xpY2sgZG9l
cyBub3Qgc2VsZWN0IHdob2xlIGxpbmUgZm9yIG1peGVkIGNvbnRlbnRlZGl0YWJsZSByZWdpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODAzNwor
CisgICAgICAgIFRlc3RzOiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJp
bGl0eS5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2st
YWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbAorCisgICAgICAgICogZWRpdGluZy9W
aXNpYmxlU2VsZWN0aW9uLmNwcDogQ3Jvc3MgZWRpdGFiaWxpdHkgYm91bmRhcnkgaW4gY2FsbHMg
dG8KKyAgICAgICAgc3RhcnRPZlBhcmFncmFwaC9lbmRPZlBhcmFncmFwaC4KKyAgICAgICAgKFdl
YkNvcmU6OlZpc2libGVTZWxlY3Rpb246OnNldFN0YXJ0QW5kRW5kRnJvbUJhc2VBbmRFeHRlbnRS
ZXNwZWN0aW5nR3JhbnVsYXJpdHkpOgorICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5j
cHA6IEFsbG93IGVkaXRhYmlsaXR5IGJvdW5kYXJ5IHRvIGJlIGNyb3NzZWQgaW4KKyAgICAgICAg
c3RhcnRPZlBhcmFncmFwaC9lbmRPZlBhcmFncmFwaC4KKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0
T2ZQYXJhZ3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6ZW5kT2ZQYXJhZ3JhcGgpOgorCiAyMDEw
LTEwLTI1ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNl
bGVjdGlvbi5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKaW5kZXgg
NDAzNzY3MDllN2Y1MGNmMTJhZTliNTBmZDI1YTllNzI1ZTk3MzkyNS4uNmJmMTQ0YmE1YzkxMzBi
NTIwYjFjNzYwOWVmN2NjZTE4Mzk2NGZhYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL1Zp
c2libGVTZWxlY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9u
LmNwcApAQCAtMzQyLDggKzM0Miw4IEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2V0U3RhcnRB
bmRFbmRGcm9tQmFzZUFuZEV4dGVudFJlc3BlY3RpbmdHcmFudWxhcml0eShUZXh0CiAgICAgICAg
ICAgICBWaXNpYmxlUG9zaXRpb24gcG9zKG1fc3RhcnQsIG1fYWZmaW5pdHkpOwogICAgICAgICAg
ICAgaWYgKGlzU3RhcnRPZkxpbmUocG9zKSAmJiBpc0VuZE9mRG9jdW1lbnQocG9zKSkKICAgICAg
ICAgICAgICAgICBwb3MgPSBwb3MucHJldmlvdXMoKTsKLSAgICAgICAgICAgIG1fc3RhcnQgPSBz
dGFydE9mUGFyYWdyYXBoKHBvcykuZGVlcEVxdWl2YWxlbnQoKTsKLSAgICAgICAgICAgIFZpc2li
bGVQb3NpdGlvbiB2aXNpYmxlUGFyYWdyYXBoRW5kID0gZW5kT2ZQYXJhZ3JhcGgoVmlzaWJsZVBv
c2l0aW9uKG1fZW5kLCBtX2FmZmluaXR5KSk7CisgICAgICAgICAgICBtX3N0YXJ0ID0gc3RhcnRP
ZlBhcmFncmFwaChwb3MsIFBvc2l0aW9uOjpDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkuZGVlcEVx
dWl2YWxlbnQoKTsKKyAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUGFyYWdyYXBo
RW5kID0gZW5kT2ZQYXJhZ3JhcGgoVmlzaWJsZVBvc2l0aW9uKG1fZW5kLCBtX2FmZmluaXR5KSwg
UG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgLy8gSW5jbHVkZSB0aGUgInBhcmFncmFwaCBicmVhayIgKHRoZSBzcGFjZSBmcm9tIHRo
ZSBlbmQgb2YgdGhpcyBwYXJhZ3JhcGggdG8gdGhlIHN0YXJ0CiAgICAgICAgICAgICAvLyBvZiB0
aGUgbmV4dCBvbmUpIGluIHRoZSBzZWxlY3Rpb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRp
bmcvdmlzaWJsZV91bml0cy5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAK
aW5kZXggZDljYTIyMzM4NjA5OTBhMDcwYmYyNTY0YjMzMmE4NGE5Yzk5OGMzNy4uMzlhNjA4Zjk0
NThhYTFhZTZkZWRmZjcwNDI4ODdjYWM1ZjQ2NzJmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0
aW5nL3Zpc2libGVfdW5pdHMuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRz
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlBvc2l0aW9uLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgpAQCAtNzc5LDcgKzc4MCw3IEBAIFZpc2libGVQb3NpdGlv
biBuZXh0U2VudGVuY2VQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMpCiAgICAgcmV0
dXJuIGMuaG9ub3JFZGl0YWJsZUJvdW5kYXJ5QXRPckJlZm9yZShuZXh0KTsKIH0KIAotVmlzaWJs
ZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjKQorVmlz
aWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBQ
b3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxl
KQogewogICAgIFBvc2l0aW9uIHAgPSBjLmRlZXBFcXVpdmFsZW50KCk7CiAgICAgTm9kZSAqc3Rh
cnROb2RlID0gcC5ub2RlKCk7CkBAIC03OTcsNyArNzk4LDcgQEAgVmlzaWJsZVBvc2l0aW9uIHN0
YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjKQogCiAgICAgTm9kZSAqbiA9
IHN0YXJ0Tm9kZTsKICAgICB3aGlsZSAobikgewotICAgICAgICBpZiAobi0+aXNDb250ZW50RWRp
dGFibGUoKSAhPSBzdGFydE5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpCisgICAgICAgIGlmIChi
b3VuZGFyeUNyb3NzaW5nUnVsZSA9PSBQb3NpdGlvbjo6Q2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRh
cnkgJiYgbi0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBzdGFydE5vZGUtPmlzQ29udGVudEVkaXRh
YmxlKCkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgUmVuZGVyT2JqZWN0ICpyID0gbi0+
cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKCFyKSB7CkBAIC04MTIsOCArODEzLDggQEAgVmlzaWJs
ZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjKQogICAg
ICAgICAKICAgICAgICAgaWYgKHItPmlzQlIoKSB8fCBpc0Jsb2NrKG4pKQogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAKLSAgICAgICAgaWYgKHItPmlzVGV4dCgpKSB7CisKKyAgICAg
ICAgaWYgKHItPmlzVGV4dCgpICYmIHItPmNhcmV0TWF4UmVuZGVyZWRPZmZzZXQoKSA+IDApIHsK
ICAgICAgICAgICAgIGlmIChzdHlsZS0+cHJlc2VydmVOZXdsaW5lKCkpIHsKICAgICAgICAgICAg
ICAgICBjb25zdCBVQ2hhciogY2hhcnMgPSB0b1JlbmRlclRleHQociktPmNoYXJhY3RlcnMoKTsK
ICAgICAgICAgICAgICAgICBpbnQgaSA9IHRvUmVuZGVyVGV4dChyKS0+dGV4dExlbmd0aCgpOwpA
QCAtODM4LDcgKzgzOSw3IEBAIFZpc2libGVQb3NpdGlvbiBzdGFydE9mUGFyYWdyYXBoKGNvbnN0
IFZpc2libGVQb3NpdGlvbiYgYykKICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKG5vZGUsIG9m
ZnNldCwgRE9XTlNUUkVBTSk7CiB9CiAKLVZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChj
b25zdCBWaXNpYmxlUG9zaXRpb24gJmMpCitWaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uICZjLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3Np
bmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQogeyAgICAKICAgICBpZiAoYy5pc051bGwoKSkK
ICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwpAQCAtODU3LDcgKzg1OCw3IEBAIFZp
c2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMpCiAK
ICAgICBOb2RlICpuID0gc3RhcnROb2RlOwogICAgIHdoaWxlIChuKSB7Ci0gICAgICAgIGlmIChu
LT5pc0NvbnRlbnRFZGl0YWJsZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkK
KyAgICAgICAgaWYgKGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlID09IFBvc2l0aW9uOjpDYW5ub3RDcm9z
c0VkaXRpbmdCb3VuZGFyeSAmJiBuLT5pc0NvbnRlbnRFZGl0YWJsZSgpICE9IHN0YXJ0Tm9kZS0+
aXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBSZW5kZXJP
YmplY3QgKnIgPSBuLT5yZW5kZXJlcigpOwogICAgICAgICBpZiAoIXIpIHsKQEAgLTg3Miw5ICs4
NzMsOCBAQCBWaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0
aW9uICZjKQogICAgICAgICAKICAgICAgICAgaWYgKHItPmlzQlIoKSB8fCBpc0Jsb2NrKG4pKQog
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKKwogICAgICAgICAvLyBGSVhNRTogV2Ug
YXZvaWQgcmV0dXJuaW5nIGEgcG9zaXRpb24gd2hlcmUgdGhlIHJlbmRlcmVyIGNhbid0IGFjY2Vw
dCB0aGUgY2FyZXQuCi0gICAgICAgIC8vIFdlIHNob3VsZCBwcm9iYWJseSBkbyB0aGlzIGluIG90
aGVyIGNhc2VzIHN1Y2ggYXMgc3RhcnRPZlBhcmFncmFwaC4KICAgICAgICAgaWYgKHItPmlzVGV4
dCgpICYmIHItPmNhcmV0TWF4UmVuZGVyZWRPZmZzZXQoKSA+IDApIHsKICAgICAgICAgICAgIGlu
dCBsZW5ndGggPSB0b1JlbmRlclRleHQociktPnRleHRMZW5ndGgoKTsKICAgICAgICAgICAgIGlm
IChzdHlsZS0+cHJlc2VydmVOZXdsaW5lKCkpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGlu
Zy92aXNpYmxlX3VuaXRzLmggYi9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCmluZGV4
IGEyMGI1ODg4OTc1ZWY3Y2I1MzkwODJmMGViZGY0OWRiZThkMjljOTMuLjM0M2RiM2FjNWQ5YWE5
OGE4MDZlYWMwN2UwOWIxZTExMzFhY2E0ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy92
aXNpYmxlX3VuaXRzLmgKKysrIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaApAQCAt
MjcsNiArMjcsNyBAQAogI2RlZmluZSB2aXNpYmxlX3VuaXRzX2gKIAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNpbmNsdWRlICJUZXh0QWZmaW5pdHkuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsOCArNjEsOCBAQCBWaXNpYmxlUG9zaXRpb24g
bG9naWNhbFN0YXJ0T2ZMaW5lKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIFZpc2libGVQb3Np
dGlvbiBsb2dpY2FsRW5kT2ZMaW5lKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIAogLy8gcGFy
YWdyYXBocyAocGVyaGFwcyBhIG1pc25vbWVyLCBjYW4gYmUgZGl2aWRlZCBieSBsaW5lIGJyZWFr
IGVsZW1lbnRzKQotVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJik7Ci1WaXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJik7CitWaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNp
YmxlUG9zaXRpb24mLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gUG9z
aXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKK1Zpc2libGVQb3NpdGlvbiBlbmRP
ZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5k
YXJ5Q3Jvc3NpbmdSdWxlID0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsK
IFZpc2libGVQb3NpdGlvbiBzdGFydE9mTmV4dFBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRp
b24mKTsKIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c1BhcmFncmFwaFBvc2l0aW9uKGNvbnN0IFZp
c2libGVQb3NpdGlvbiAmLCBpbnQgeCk7CiBWaXNpYmxlUG9zaXRpb24gbmV4dFBhcmFncmFwaFBv
c2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBpbnQgeCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72238</attachid>
            <date>2010-10-28 14:56:11 -0700</date>
            <delta_ts>2010-10-28 14:56:11 -0700</delta_ts>
            <desc>changes to visible_units &amp; DeleteSelectionCommand</desc>
            <filename>fix48037b</filename>
            <type>text/plain</type>
            <size>7586</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuaAkocmV2aXNpb24gNzA3ODgpCisrKyBXZWJDb3Jl
L2VkaXRpbmcvdmlzaWJsZV91bml0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBA
CiAjZGVmaW5lIHZpc2libGVfdW5pdHNfaAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlRleHRBZmZpbml0eS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC02MCwxNCArNjEsMTYgQEAKIFZpc2libGVQb3NpdGlvbiBsb2dpY2FsRW5k
T2ZMaW5lKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIAogLy8gcGFyYWdyYXBocyAocGVyaGFw
cyBhIG1pc25vbWVyLCBjYW4gYmUgZGl2aWRlZCBieSBsaW5lIGJyZWFrIGVsZW1lbnRzKQotVmlz
aWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7Ci1W
aXNpYmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJik7CitW
aXNpYmxlUG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBQ
b3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gUG9zaXRpb246OkNhbm5vdENy
b3NzRWRpdGluZ0JvdW5kYXJ5KTsKK1Zpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25z
dCBWaXNpYmxlUG9zaXRpb24mLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxl
ID0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KTsKIFZpc2libGVQb3NpdGlv
biBzdGFydE9mTmV4dFBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIFZpc2libGVQ
b3NpdGlvbiBwcmV2aW91c1BhcmFncmFwaFBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiAm
LCBpbnQgeCk7CiBWaXNpYmxlUG9zaXRpb24gbmV4dFBhcmFncmFwaFBvc2l0aW9uKGNvbnN0IFZp
c2libGVQb3NpdGlvbiAmLCBpbnQgeCk7Citib29sIGlzU3RhcnRPZlBhcmFncmFwaChjb25zdCBW
aXNpYmxlUG9zaXRpb24gJiwgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSk7
Citib29sIGlzRW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIFBvc2l0aW9u
OjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUpOworaW5saW5lIGJvb2wgaXNTdGFydE9mUGFy
YWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmIHApIHsgcmV0dXJuIGlzU3RhcnRPZlBhcmFn
cmFwaChwLCBQb3NpdGlvbjo6Q2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOyB9CitpbmxpbmUg
Ym9vbCBpc0VuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmIHApIHsgcmV0dXJu
IGlzRW5kT2ZQYXJhZ3JhcGgocCwgUG9zaXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5
KTsgfQogYm9vbCBpblNhbWVQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIGNvbnN0
IFZpc2libGVQb3NpdGlvbiAmKTsKLWJvb2wgaXNTdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiAmKTsKLWJvb2wgaXNFbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRp
b24gJik7CiAKIC8vIGJsb2NrcyAodHJ1ZSBwYXJhZ3JhcGhzOyBsaW5lIGJyZWFrIGVsZW1lbnRz
IGRvbid0IGJyZWFrIGJsb2NrcykKIFZpc2libGVQb3NpdGlvbiBzdGFydE9mQmxvY2soY29uc3Qg
VmlzaWJsZVBvc2l0aW9uICYpOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNw
cAkocmV2aXNpb24gNzA3ODgpCisrKyBXZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw4ICszNDIsOCBAQAogICAgICAgICAgICAgVmlzaWJs
ZVBvc2l0aW9uIHBvcyhtX3N0YXJ0LCBtX2FmZmluaXR5KTsKICAgICAgICAgICAgIGlmIChpc1N0
YXJ0T2ZMaW5lKHBvcykgJiYgaXNFbmRPZkRvY3VtZW50KHBvcykpCiAgICAgICAgICAgICAgICAg
cG9zID0gcG9zLnByZXZpb3VzKCk7Ci0gICAgICAgICAgICBtX3N0YXJ0ID0gc3RhcnRPZlBhcmFn
cmFwaChwb3MpLmRlZXBFcXVpdmFsZW50KCk7Ci0gICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24g
dmlzaWJsZVBhcmFncmFwaEVuZCA9IGVuZE9mUGFyYWdyYXBoKFZpc2libGVQb3NpdGlvbihtX2Vu
ZCwgbV9hZmZpbml0eSkpOworICAgICAgICAgICAgbV9zdGFydCA9IHN0YXJ0T2ZQYXJhZ3JhcGgo
cG9zLCBQb3NpdGlvbjo6Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpLmRlZXBFcXVpdmFsZW50KCk7
CisgICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBhcmFncmFwaEVuZCA9IGVuZE9m
UGFyYWdyYXBoKFZpc2libGVQb3NpdGlvbihtX2VuZCwgbV9hZmZpbml0eSksIFBvc2l0aW9uOjpD
YW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIElu
Y2x1ZGUgdGhlICJwYXJhZ3JhcGggYnJlYWsiICh0aGUgc3BhY2UgZnJvbSB0aGUgZW5kIG9mIHRo
aXMgcGFyYWdyYXBoIHRvIHRoZSBzdGFydAogICAgICAgICAgICAgLy8gb2YgdGhlIG5leHQgb25l
KSBpbiB0aGUgc2VsZWN0aW9uLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rp
b25Db21tYW5kLmNwcAkocmV2aXNpb24gNzA3ODgpCisrKyBXZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1Niw5ICs3NTYsMTQgQEAK
ICAgICBFQWZmaW5pdHkgYWZmaW5pdHkgPSBtX3NlbGVjdGlvblRvRGVsZXRlLmFmZmluaXR5KCk7
CiAgICAgCiAgICAgUG9zaXRpb24gZG93bnN0cmVhbUVuZCA9IG1fc2VsZWN0aW9uVG9EZWxldGUu
ZW5kKCkuZG93bnN0cmVhbSgpOwotICAgIG1fbmVlZFBsYWNlaG9sZGVyID0gaXNTdGFydE9mUGFy
YWdyYXBoKG1fc2VsZWN0aW9uVG9EZWxldGUudmlzaWJsZVN0YXJ0KCkpICYmCi0gICAgICAgICAg
ICAgICAgICAgICAgICBpc0VuZE9mUGFyYWdyYXBoKG1fc2VsZWN0aW9uVG9EZWxldGUudmlzaWJs
ZUVuZCgpKSAmJgorICAgIG1fbmVlZFBsYWNlaG9sZGVyID0gaXNTdGFydE9mUGFyYWdyYXBoKG1f
c2VsZWN0aW9uVG9EZWxldGUudmlzaWJsZVN0YXJ0KCksIFBvc2l0aW9uOjpDYW5Dcm9zc0VkaXRp
bmdCb3VuZGFyeSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzRW5kT2ZQYXJhZ3JhcGgo
bV9zZWxlY3Rpb25Ub0RlbGV0ZS52aXNpYmxlRW5kKCksIFBvc2l0aW9uOjpDYW5Dcm9zc0VkaXRp
bmdCb3VuZGFyeSkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICFsaW5lQnJlYWtFeGlzdHNB
dFZpc2libGVQb3NpdGlvbihtX3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVFbmQoKSk7CisgICAg
Ym9vbCBzdGFydE9mUCA9IGlzU3RhcnRPZlBhcmFncmFwaChtX3NlbGVjdGlvblRvRGVsZXRlLnZp
c2libGVTdGFydCgpKTsKKyAgICBib29sIGVuZE9mUCA9IGlzRW5kT2ZQYXJhZ3JhcGgobV9zZWxl
Y3Rpb25Ub0RlbGV0ZS52aXNpYmxlRW5kKCkpOworICAgIGJvb2wgbGluZUIgPSBsaW5lQnJlYWtF
eGlzdHNBdFZpc2libGVQb3NpdGlvbihtX3NlbGVjdGlvblRvRGVsZXRlLnZpc2libGVFbmQoKSk7
CisgICAgYm9vbCB4ID0gc3RhcnRPZlAgJiYgZW5kT2ZQICYmIGxpbmVCOworICAgIEFTU0VSVCh4
ID09IHgpOwogICAgIGlmIChtX25lZWRQbGFjZWhvbGRlcikgewogICAgICAgICAvLyBEb24ndCBu
ZWVkIGEgcGxhY2Vob2xkZXIgd2hlbiBkZWxldGluZyBhIHNlbGVjdGlvbiB0aGF0IHN0YXJ0cyBq
dXN0IGJlZm9yZSBhIHRhYmxlCiAgICAgICAgIC8vIGFuZCBlbmRzIGluc2lkZSBpdCAod2UgZG8g
bmVlZCBwbGFjZWhvbGRlcnMgdG8gaG9sZCBvcGVuIGVtcHR5IGNlbGxzLCBidXQgdGhhdCdzCklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCShyZXZpc2lvbiA3MDc4OCkKKysrIFdlYkNv
cmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVy
QmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVj
dC5oIgpAQCAtNzc5LDcgKzc4MCw3IEBACiAgICAgcmV0dXJuIGMuaG9ub3JFZGl0YWJsZUJvdW5k
YXJ5QXRPckJlZm9yZShuZXh0KTsKIH0KIAotVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3Jh
cGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjKQorVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJh
Z3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5
Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQogewogICAgIFBvc2l0aW9uIHAgPSBj
LmRlZXBFcXVpdmFsZW50KCk7CiAgICAgTm9kZSAqc3RhcnROb2RlID0gcC5ub2RlKCk7CkBAIC03
OTcsNyArNzk4LDcgQEAKIAogICAgIE5vZGUgKm4gPSBzdGFydE5vZGU7CiAgICAgd2hpbGUgKG4p
IHsKLSAgICAgICAgaWYgKG4tPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0Nv
bnRlbnRFZGl0YWJsZSgpKQorICAgICAgICBpZiAoYm91bmRhcnlDcm9zc2luZ1J1bGUgPT0gUG9z
aXRpb246OkNhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5ICYmIG4tPmlzQ29udGVudEVkaXRhYmxl
KCkgIT0gc3RhcnROb2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIFJlbmRlck9iamVjdCAqciA9IG4tPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICgh
cikgewpAQCAtODEyLDggKzgxMyw4IEBACiAgICAgICAgIAogICAgICAgICBpZiAoci0+aXNCUigp
IHx8IGlzQmxvY2sobikpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAgICAg
ICBpZiAoci0+aXNUZXh0KCkpIHsKKworICAgICAgICBpZiAoci0+aXNUZXh0KCkgJiYgci0+Y2Fy
ZXRNYXhSZW5kZXJlZE9mZnNldCgpID4gMCkgewogICAgICAgICAgICAgaWYgKHN0eWxlLT5wcmVz
ZXJ2ZU5ld2xpbmUoKSkgewogICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFycyA9IHRv
UmVuZGVyVGV4dChyKS0+Y2hhcmFjdGVycygpOwogICAgICAgICAgICAgICAgIGludCBpID0gdG9S
ZW5kZXJUZXh0KHIpLT50ZXh0TGVuZ3RoKCk7CkBAIC04MzgsNyArODM5LDcgQEAKICAgICByZXR1
cm4gVmlzaWJsZVBvc2l0aW9uKG5vZGUsIG9mZnNldCwgRE9XTlNUUkVBTSk7CiB9CiAKLVZpc2li
bGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJmMpCitWaXNp
YmxlUG9zaXRpb24gZW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZjLCBQb3Np
dGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQog
eyAgICAKICAgICBpZiAoYy5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlv
bigpOwpAQCAtODU3LDcgKzg1OCw3IEBACiAKICAgICBOb2RlICpuID0gc3RhcnROb2RlOwogICAg
IHdoaWxlIChuKSB7Ci0gICAgICAgIGlmIChuLT5pc0NvbnRlbnRFZGl0YWJsZSgpICE9IHN0YXJ0
Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKKyAgICAgICAgaWYgKGJvdW5kYXJ5Q3Jvc3NpbmdS
dWxlID09IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSAmJiBuLT5pc0NvbnRl
bnRFZGl0YWJsZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBSZW5kZXJPYmplY3QgKnIgPSBuLT5yZW5kZXJlcigpOwogICAg
ICAgICBpZiAoIXIpIHsKQEAgLTg3Miw5ICs4NzMsOCBAQAogICAgICAgICAKICAgICAgICAgaWYg
KHItPmlzQlIoKSB8fCBpc0Jsb2NrKG4pKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAKKwogICAgICAgICAvLyBGSVhNRTogV2UgYXZvaWQgcmV0dXJuaW5nIGEgcG9zaXRpb24gd2hl
cmUgdGhlIHJlbmRlcmVyIGNhbid0IGFjY2VwdCB0aGUgY2FyZXQuCi0gICAgICAgIC8vIFdlIHNo
b3VsZCBwcm9iYWJseSBkbyB0aGlzIGluIG90aGVyIGNhc2VzIHN1Y2ggYXMgc3RhcnRPZlBhcmFn
cmFwaC4KICAgICAgICAgaWYgKHItPmlzVGV4dCgpICYmIHItPmNhcmV0TWF4UmVuZGVyZWRPZmZz
ZXQoKSA+IDApIHsKICAgICAgICAgICAgIGludCBsZW5ndGggPSB0b1JlbmRlclRleHQociktPnRl
eHRMZW5ndGgoKTsKICAgICAgICAgICAgIGlmIChzdHlsZS0+cHJlc2VydmVOZXdsaW5lKCkpIHsK
QEAgLTkxNCwxNCArOTE0LDE0IEBACiAgICAgcmV0dXJuIGEuaXNOb3ROdWxsKCkgJiYgc3RhcnRP
ZlBhcmFncmFwaChhKSA9PSBzdGFydE9mUGFyYWdyYXBoKGIpOwogfQogCi1ib29sIGlzU3RhcnRP
ZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24gJnBvcykKK2Jvb2wgaXNTdGFydE9mUGFy
YWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5k
YXJ5Q3Jvc3NpbmdSdWxlIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQogewotICAgIHJldHVybiBwb3Mu
aXNOb3ROdWxsKCkgJiYgcG9zID09IHN0YXJ0T2ZQYXJhZ3JhcGgocG9zKTsKKyAgICByZXR1cm4g
cG9zLmlzTm90TnVsbCgpICYmIHBvcyA9PSBzdGFydE9mUGFyYWdyYXBoKHBvcywgYm91bmRhcnlD
cm9zc2luZ1J1bGUpOwogfQogCi1ib29sIGlzRW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBv
c2l0aW9uICZwb3MpCitib29sIGlzRW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9u
ICZwb3MsIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9z
c2luZ1J1bGUpCiB7Ci0gICAgcmV0dXJuIHBvcy5pc05vdE51bGwoKSAmJiBwb3MgPT0gZW5kT2ZQ
YXJhZ3JhcGgocG9zKTsKKyAgICByZXR1cm4gcG9zLmlzTm90TnVsbCgpICYmIHBvcyA9PSBlbmRP
ZlBhcmFncmFwaChwb3MsIGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKTsKIH0KIAogVmlzaWJsZVBvc2l0
aW9uIHByZXZpb3VzUGFyYWdyYXBoUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwLCBp
bnQgeCk=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72357</attachid>
            <date>2010-10-29 11:42:37 -0700</date>
            <delta_ts>2010-12-09 20:32:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48037-20101029114235.patch</filename>
            <type>text/plain</type>
            <size>19540</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMmU4MWM5ZjZhYzcwMDQxYmI1YWUwZDgzMDAzOTNkYTExMTA3MWJmLi5jZGU3Mzdh
MmY5OWMzMDNiOTgxZWM1YmU1Nzg5YjFjZmRlZGM5ODljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTAtMjkgIEJlbmphbWluIEthbG1hbiAgPGthbG1hbkBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRyaXBsZSBjbGljayBk
b2VzIG5vdCBzZWxlY3Qgd2hvbGUgbGluZSBmb3IgbWl4ZWQgY29udGVudGVkaXRhYmxlIHJlZ2lv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MDM3
CisKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJpbGl0
eS1leHBlY3RlZC50eHQ6IEFkZGVkLiAgVGVzdHMgdGhhdCBjb250ZW50ZWRpdGFibGUgaW5kZW50
IGRvZXNuJ3QgY3Jvc3MgZWRpdGFiaWxpdHkgYm91bmRhcmllcy4KKyAgICAgICAgKiBlZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJpbGl0eS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvdHJpcGxlLWNsaWNrLWFjcm9zcy1l
ZGl0YWJpbGl0eS1ib3VuZGFyaWVzLmpzOiBBZGRlZC4gIFRlc3RzIHRoYXQgdHJpcGxlIGNsaWNr
IHNlbGVjdHMgYWNyb3NzIGVkaXRhYmlsaXR5IGJvdW5kYXJpZXMuCisgICAgICAgIChjcmVhdGVF
bGVtZW50V2l0aElubmVySFRNTCk6CisgICAgICAgICh0ZXN0VHJpcGxlQ2xpY2spOgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91
bmRhcmllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
L3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5odG1sOiBBZGRlZC4K
KwogMjAxMC0xMC0yOCAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgZml4IGZvciB0ZXN0X2V4cGVjdGF0aW9ucy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW1peGVkLWVk
aXRhYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
aW5kZW50LW1peGVkLWVkaXRhYmlsaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTg5ZTVl
ODM0ZjI1OTBkMzI4YmVjNjM1YjQwN2VlNjRmMTk0OTk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHktZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdHMgdGhhdCBpbmRlbnRpbmcgYSBjb250ZW50
ZWRpdGFibGUgc3BhbiBpbnNpZGUgYSBub24tY29udGVudGVkaXRhYmxlIGRpdiBkb2VzIG5vdCBj
cmFzaC4KK3wgImhlbGxvICIKK3wgPHNwYW4+Cit8ICAgY29udGVudGVkaXRhYmxlPSIiCit8ICAg
aWQ9ImNvbnRlbnQiCit8ICAgPGJsb2NrcXVvdGU+Cit8ICAgICBjbGFzcz0id2Via2l0LWluZGVu
dC1ibG9ja3F1b3RlIgorfCAgICAgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBweDsgYm9yZGVyOiBu
b25lOyBwYWRkaW5nOiAwcHg7IgorfCAgICAgIjwjc2VsZWN0aW9uLWFuY2hvcj53b3JsZDwjc2Vs
ZWN0aW9uLWZvY3VzPiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvaW5kZW50LW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJpbGl0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzZGFm
YTQyNjEyZGU5ZWY2ZDQ1ZWFkMWUxNGRjODE1YTBmMGNhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJpbGl0eS5o
dG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKzxkaXY+aGVsbG8gPHNwYW4g
aWQ9ImNvbnRlbnQiIGNvbnRlbnRlZGl0YWJsZT53b3JsZDwvc3Bhbj48L2Rpdj4KKzxzY3JpcHQ+
Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnRlbnQiKSk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgiaW5kZW50Iik7CitN
YXJrdXAuZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgaW5kZW50aW5nIGEgY29udGVudGVkaXRhYmxl
IHNwYW4gaW5zaWRlIGEgbm9uLWNvbnRlbnRlZGl0YWJsZSBkaXYgZG9lcyBub3QgY3Jhc2guIik7
CitNYXJrdXAuZHVtcChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2IilbMF0pOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3Jp
cHQtdGVzdHMvdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLmpzIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL3RyaXBsZS1jbGljay1h
Y3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzZmM2U4YThhMmFh
NGE5MDZiZTc0NGNhYzU1ZjdlNmRhZjA0ZjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRp
dGFiaWxpdHktYm91bmRhcmllcy5qcwpAQCAtMCwwICsxLDk1IEBACitkZXNjcmlwdGlvbigiVGVz
dHMgdHJpcGxlIGNsaWNraW5nIHNlbGVjdGlvbiBhY3Jvc3MgZWRpdGFiaWxpdHkgYm91bmRhcmll
cy4iKTsKKworZnVuY3Rpb24gY3JlYXRlRWxlbWVudFdpdGhJbm5lckhUTUwodGFnTmFtZSwgaW5u
ZXJIVE1MKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05h
bWUpOworICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaW5uZXJIVE1MOworICAgIHJldHVybiBlbGVt
ZW50OworfQorCitmdW5jdGlvbiB0ZXN0VHJpcGxlQ2xpY2soZXhwZWN0ZWQsIHNpZGUsIGVsZW1l
bnQpIHsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworCisgICAgLy8g
UG9zaXRpb24gKHgsIHkpIHdpdGhpbiB0aGUgcGFyZW50IG9uIHRoZSBjb3JyZWN0IHNpZGUuCisg
ICAgdmFyIHggPSAwOworICAgIGlmIChzaWRlID09PSAibGVmdCIpCisgICAgICB4ID0gZWxlbWVu
dC5vZmZzZXRMZWZ0ICsgODsKKyAgICBlbHNlIGlmIChzaWRlID09PSAicmlnaHQiKQorICAgICAg
eCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLSA4OworICAgIGVs
c2UgaWYgKHNpZGUgPT09ICJtaWRkbGUiKQorICAgICAgeCA9IGVsZW1lbnQub2Zmc2V0TGVmdCAr
IChlbGVtZW50Lm9mZnNldFdpZHRoIC8gMik7CisgICAgdmFyIHkgPSBlbGVtZW50Lm9mZnNldFRv
cCArIDQ7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisKKyAgICAvLyBUcmlw
bGUgY2xpY2suCisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50
U2VuZGVyLmxlYXBGb3J3YXJkKDIwMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDIw
MCk7CisKKyAgICB2YXIgYWN0dWFsID0gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7CisgICAgdmFy
IGFjdGlvbiA9ICJUcmlwbGUgY2xpY2sgb24gIiArIHNpZGUgKyAiIGhhcyBjb250ZW50IFsiICsg
YWN0dWFsICsgIl0iOworICAgIGlmIChhY3R1YWwgPT0gZXhwZWN0ZWQpCisgICAgICAgIHRlc3RQ
YXNzZWQoYWN0aW9uKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoYWN0aW9uICsgIiBi
dXQgZXhwZWN0ZWQgWyIgKyBleHBlY3RlZCArICJdIik7CisKKyAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGVsZW1lbnQpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgZGVidWcoIlRlc3QgMTogbm9uLWNvbnRlbnRlZGl0YWJsZSByZWdpb24gY29udGFp
bmluZyBjb250ZW50ZWRpdGFibGUgcmVnaW9uLiIpOworICAgIHZhciB0ZXN0MSA9IGNyZWF0ZUVs
ZW1lbnRXaXRoSW5uZXJIVE1MKCJzcGFuIiwgImZvbyA8c3BhbiBjb250ZW50ZWRpdGFibGU+YmFy
PC9zcGFuPiBiYXoiKTsKKyAgICB0ZXN0VHJpcGxlQ2xpY2soImZvbyBiYXIgYmF6IiwgImxlZnQi
LCB0ZXN0MSk7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJiYXIiLCAibWlkZGxlIiwgdGVzdDEpOwor
ICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXoiLCAicmlnaHQiLCB0ZXN0MSk7CisKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgMjogY29udGVudGVkaXRhYmxlIHJlZ2lvbiBj
b250YWluaW5nIG5vbi1jb250ZW50ZWRpdGFibGUgcmVnaW9uLiIpOworICAgIHZhciB0ZXN0MiA9
IGNyZWF0ZUVsZW1lbnRXaXRoSW5uZXJIVE1MKCJzcGFuIiwgImZvbyA8c3BhbiBjb250ZW50ZWRp
dGFibGU9ZmFsc2U+YmFyPC9zcGFuPiBiYXoiKTsKKyAgICB0ZXN0Mi5jb250ZW50RWRpdGFibGUg
PSB0cnVlOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXoiLCAibGVmdCIsIHRlc3Qy
KTsKKyAgICAvLyBGSVhNRTogY3VycmVudGx5IHRoaXMgaXMgW2Jhcl0uCisgICAgdGVzdFRyaXBs
ZUNsaWNrKCJmb28gYmFyIGJheiIsICJtaWRkbGUiLCB0ZXN0Mik7CisgICAgdGVzdFRyaXBsZUNs
aWNrKCJmb28gYmFyIGJheiIsICJyaWdodCIsIHRlc3QyKTsKKworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZygiVGVzdCAzOiBuZXN0ZWQgY29udGVudGVkaXRhYmxlL25vbi1jb250ZW50ZWRpdGFi
bGUgcmVnaW9ucy4iKTsKKyAgICB2YXIgdGVzdDMgPSBjcmVhdGVFbGVtZW50V2l0aElubmVySFRN
TCgic3BhbiIsICJmb28gPHNwYW4gY29udGVudGVkaXRhYmxlPmJhciA8c3BhbiBjb250ZW50ZWRp
dGFibGU9ZmFsc2U+YmF6PC9zcGFuPiByYWI8L3NwYW4+IG9vZiIpOworICAgIHRlc3RUcmlwbGVD
bGljaygiZm9vIGJhciBiYXogcmFiIG9vZiIsICJsZWZ0IiwgdGVzdDMpOworICAgIC8vIEZJWE1F
OiBjdXJyZW50bHkgdGhpcyBpcyBbZm9vIGJhciBiYXogcmFiIG9vZl0uCisgICAgdGVzdFRyaXBs
ZUNsaWNrKCJiYXIgYmF6IHJhYiIsICJtaWRkbGUiLCB0ZXN0Myk7CisgICAgdGVzdFRyaXBsZUNs
aWNrKCJmb28gYmFyIGJheiByYWIgb29mIiwgInJpZ2h0IiwgdGVzdDMpOworCisgICAgZGVidWco
IiIpOworICAgIGRlYnVnKCJUZXN0IDQ6IG5lc3RlZCBjb250ZW50ZWRpdGFibGUvbm9uLWNvbnRl
bnRlZGl0YWJsZSByZWdpb25zIChpbnZlcnRlZCkuIik7CisgICAgdmFyIHRlc3Q0ID0gY3JlYXRl
RWxlbWVudFdpdGhJbm5lckhUTUwoInNwYW4iLCAiZm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1m
YWxzZT5iYXIgPHNwYW4gY29udGVudGVkaXRhYmxlPmJhejwvc3Bhbj4gcmFiPC9zcGFuPiBvb2Yi
KTsKKyAgICB0ZXN0NC5jb250ZW50RWRpdGFibGUgPSB0cnVlOworICAgIHRlc3RUcmlwbGVDbGlj
aygiZm9vIGJhciBiYXogcmFiIG9vZiIsICJsZWZ0IiwgdGVzdDQpOworICAgIC8vIEZJWE1FOiBj
dXJyZW50bHkgdGhpcyBpcyBbZm9vIGJhciBiYXogcmFiIG9vZl0uCisgICAgdGVzdFRyaXBsZUNs
aWNrKCJiYXoiLCAibWlkZGxlIiwgdGVzdDQpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJh
ciBiYXogcmFiIG9vZiIsICJyaWdodCIsIHRlc3Q0KTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBk
ZWJ1ZygiVGVzdCA1OiBub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbnMgYXQgc3RhcnQgYW5kIGVu
ZCBvZiBjb250ZW50ZWRpdGFibGUgcmVnaW9uLiIpOworICAgIHZhciB0ZXN0NSA9IGNyZWF0ZUVs
ZW1lbnRXaXRoSW5uZXJIVE1MKCJzcGFuIiwgIjxzcGFuIGNvbnRlbnRlZGl0YWJsZT1mYWxzZT5m
b288L3NwYW4+IGJhciA8c3BhbiBjb250ZW50ZWRpdGFibGU9ZmFsc2U+YmF6PC9zcGFuPiIpOwor
ICAgIHRlc3Q1LmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJm
b28gYmFyIGJheiIsICJsZWZ0IiwgdGVzdDUpOworICAgIC8vIEZJWE1FOiBjdXJyZW50bHkgdGhp
cyBpcyBbIGJhciBiYXpdLgorICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXoiLCAibWlk
ZGxlIiwgdGVzdDUpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXoiLCAicmlnaHQi
LCB0ZXN0NSk7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgNjogY29udGVudGVk
aXRhYmxlIHJlZ2lvbnMgYXQgc3RhcnQgYW5kIGVuZCBvZiBub24tY29udGVudGVkaXRhYmxlIHJl
Z2lvbi4iKTsKKyAgICB2YXIgdGVzdDYgPSBjcmVhdGVFbGVtZW50V2l0aElubmVySFRNTCgic3Bh
biIsICI8c3BhbiBjb250ZW50ZWRpdGFibGU+Zm9vPC9zcGFuPiBiYXIgPHNwYW4gY29udGVudGVk
aXRhYmxlPmJhejwvc3Bhbj4iKTsKKyAgICB0ZXN0VHJpcGxlQ2xpY2soImZvbyIsICJsZWZ0Iiwg
dGVzdDYpOworICAgIC8vIEZJWE1FOiBjdXJyZW50bHkgdGhpcyBpcyBbIGJhciBdLgorICAgIHRl
c3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXoiLCAibWlkZGxlIiwgdGVzdDYpOworICAgIHRlc3RU
cmlwbGVDbGljaygiYmF6IiwgInJpZ2h0IiwgdGVzdDYpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1l
ZGl0YWJpbGl0eS1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjZmYTgyMDQy
MTUyZTI5OTYyYjAzNTljM2Y5MTkyZjBmY2ZlNzkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1i
b3VuZGFyaWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM4IEBACitUZXN0cyB0cmlwbGUgY2xp
Y2tpbmcgc2VsZWN0aW9uIGFjcm9zcyBlZGl0YWJpbGl0eSBib3VuZGFyaWVzLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCAxOiBub24tY29udGVudGVkaXRhYmxlIHJlZ2lv
biBjb250YWluaW5nIGNvbnRlbnRlZGl0YWJsZSByZWdpb24uCitQQVNTIFRyaXBsZSBjbGljayBv
biBsZWZ0IGhhcyBjb250ZW50IFtmb28gYmFyIGJhel0KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIG1p
ZGRsZSBoYXMgY29udGVudCBbYmFyXQorUEFTUyBUcmlwbGUgY2xpY2sgb24gcmlnaHQgaGFzIGNv
bnRlbnQgW2ZvbyBiYXIgYmF6XQorCitUZXN0IDI6IGNvbnRlbnRlZGl0YWJsZSByZWdpb24gY29u
dGFpbmluZyBub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbi4KK1BBU1MgVHJpcGxlIGNsaWNrIG9u
IGxlZnQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6XQorRkFJTCBUcmlwbGUgY2xpY2sgb24gbWlk
ZGxlIGhhcyBjb250ZW50IFtiYXJdIGJ1dCBleHBlY3RlZCBbZm9vIGJhciBiYXpdCitQQVNTIFRy
aXBsZSBjbGljayBvbiByaWdodCBoYXMgY29udGVudCBbZm9vIGJhciBiYXpdCisKK1Rlc3QgMzog
bmVzdGVkIGNvbnRlbnRlZGl0YWJsZS9ub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbnMuCitQQVNT
IFRyaXBsZSBjbGljayBvbiBsZWZ0IGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIgb29mXQor
RkFJTCBUcmlwbGUgY2xpY2sgb24gbWlkZGxlIGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIg
b29mXSBidXQgZXhwZWN0ZWQgW2JhciBiYXogcmFiXQorUEFTUyBUcmlwbGUgY2xpY2sgb24gcmln
aHQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJhYiBvb2ZdCisKK1Rlc3QgNDogbmVzdGVkIGNv
bnRlbnRlZGl0YWJsZS9ub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbnMgKGludmVydGVkKS4KK1BB
U1MgVHJpcGxlIGNsaWNrIG9uIGxlZnQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJhYiBvb2Zd
CitGQUlMIFRyaXBsZSBjbGljayBvbiBtaWRkbGUgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJh
YiBvb2ZdIGJ1dCBleHBlY3RlZCBbYmF6XQorUEFTUyBUcmlwbGUgY2xpY2sgb24gcmlnaHQgaGFz
IGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJhYiBvb2ZdCisKK1Rlc3QgNTogbm9uLWNvbnRlbnRlZGl0
YWJsZSByZWdpb25zIGF0IHN0YXJ0IGFuZCBlbmQgb2YgY29udGVudGVkaXRhYmxlIHJlZ2lvbi4K
K1BBU1MgVHJpcGxlIGNsaWNrIG9uIGxlZnQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6XQorRkFJ
TCBUcmlwbGUgY2xpY2sgb24gbWlkZGxlIGhhcyBjb250ZW50IFsgYmFyIGJhel0gYnV0IGV4cGVj
dGVkIFtmb28gYmFyIGJhel0KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIHJpZ2h0IGhhcyBjb250ZW50
IFtmb28gYmFyIGJhel0KKworVGVzdCA2OiBjb250ZW50ZWRpdGFibGUgcmVnaW9ucyBhdCBzdGFy
dCBhbmQgZW5kIG9mIG5vbi1jb250ZW50ZWRpdGFibGUgcmVnaW9uLgorUEFTUyBUcmlwbGUgY2xp
Y2sgb24gbGVmdCBoYXMgY29udGVudCBbZm9vXQorRkFJTCBUcmlwbGUgY2xpY2sgb24gbWlkZGxl
IGhhcyBjb250ZW50IFsgYmFyIF0gYnV0IGV4cGVjdGVkIFtmb28gYmFyIGJhel0KK1BBU1MgVHJp
cGxlIGNsaWNrIG9uIHJpZ2h0IGhhcyBjb250ZW50IFtiYXpdCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFy
aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2stYWNy
b3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzUzMzQ4ZjRkNTE0
NzhhYjI3ZTMxYjY3ZmZkZmRiMWM0Y2NhZDZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3Vu
ZGFyaWVzLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQwMjc0MDc2ODYzN2NjOWJmMzdk
YzRhMWNiMjY5NjdiZDA2YTFkZGEuLjU1ZDIzMDhiMWYzNTk3NGI3ZjI1YjZjZmRhMjRhMmFjMWFh
NTFlOWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTAtMjkgIEJlbmphbWluIEthbG1hbiAgPGthbG1h
bkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRyaXBsZSBjbGljayBkb2VzIG5vdCBzZWxlY3Qgd2hvbGUgbGluZSBmb3IgbWl4ZWQg
Y29udGVudGVkaXRhYmxlIHJlZ2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ4MDM3CisKKyAgICAgICAgVGVzdHM6IGVkaXRpbmcvZXhlY0NvbW1h
bmQvaW5kZW50LW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcv
c2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5odG1s
CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogVXBkYXRlIGNoYW5nZWQgaXN7U3RhcnQsRW5k
fU9mUGFyYWdyYXBoIHByb3RvdHlwZXMuCisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0
aW9uLmNwcDogQ3Jvc3MgZWRpdGFiaWxpdHkgYm91bmRhcmllcyBpbiB7c3RhcnQsZW5kfU9mUGFy
YWdyYXBoIGNhbGxzLgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbjo6c2V0U3Rh
cnRBbmRFbmRGcm9tQmFzZUFuZEV4dGVudFJlc3BlY3RpbmdHcmFudWxhcml0eSk6CisgICAgICAg
ICogZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcDogQWxsb3cgZWRpdGFiaWxpdHkgYm91bmRhcnkg
dG8gYmUgY3Jvc3NlZCBpbiB7c3RhcnQsZW5kLGlzU3RhcnQsaXNFbmR9T2ZQYXJhZ3JhcGguCisg
ICAgICAgIChXZWJDb3JlOjpzdGFydE9mUGFyYWdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6OmVu
ZE9mUGFyYWdyYXBoKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3RhcnRPZlBhcmFncmFwaCk6Cisg
ICAgICAgIChXZWJDb3JlOjppc0VuZE9mUGFyYWdyYXBoKToKKyAgICAgICAgKiBlZGl0aW5nL3Zp
c2libGVfdW5pdHMuaDogRGl0dG8uCisKIDIwMTAtMTAtMjggIEppYSBQdSAgPGpwdUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDM5ZTZi
MzY2MjlhOWRkYWEwNzFmNDVhNjM0MDllNGY4NGM3N2RmZmIuLjY2ZGM1OTRjZmU5OGQyMjliZjZl
OTBkNjk2ZDM4YzBkZjhlMmM3OTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNDE3LDcgKzQxNyw3IEBAIF9fWk43V2Vi
Q29yZTE2Y3JlYXRlRnVsbE1hcmt1cEVQS05TXzROb2RlRQogX19aTjdXZWJDb3JlMTZjcmVhdGVG
dWxsTWFya3VwRVBLTlNfNVJhbmdlRQogX19aTjdXZWJDb3JlMTZlbmNsb3NpbmdJbnRSZWN0RVJL
N19OU1JlY3QKIF9fWk43V2ViQ29yZTE2ZW5jbG9zaW5nSW50UmVjdEVSS05TXzlGbG9hdFJlY3RF
Ci1fX1pON1dlYkNvcmUxNmlzRW5kT2ZQYXJhZ3JhcGhFUktOU18xNVZpc2libGVQb3NpdGlvbkUK
K19fWk43V2ViQ29yZTE2aXNFbmRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRU5T
XzhQb3NpdGlvbjI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQogX19aTjdXZWJDb3JlMTZq
c1N0cmluZ1Nsb3dDYXNlRVBOM0pTQzlFeGVjU3RhdGVFUk5TMF85V2Vha0dDTWFwSVBOM1dURjEw
U3RyaW5nSW1wbEVQTlMwXzhKU1N0cmluZ0VFRVM2XwogX19aTjdXZWJDb3JlMTdDcmVkZW50aWFs
U3RvcmFnZTNnZXRFUktOU18xNVByb3RlY3Rpb25TcGFjZUUKIF9fWk43V2ViQ29yZTE3RE9NSW1w
bGVtZW50YXRpb24xM2lzWE1MTUlNRVR5cGVFUktOM1dURjZTdHJpbmdFCkBAIC00MjgsNyArNDI4
LDcgQEAgX19aTjdXZWJDb3JlMTdIaXN0b3J5Q29udHJvbGxlcjI2c2F2ZURvY3VtZW50QW5kU2Ny
b2xsU3RhdGVFdgogX19aTjdXZWJDb3JlMTduYW1lRm9yQ3Vyc29yVHlwZUVOU182Q3Vyc29yNFR5
cGVFCiBfX1pON1dlYkNvcmUxN29wZW5UZW1wb3JhcnlGaWxlRVBLY1JpCiBfX1pON1dlYkNvcmUx
OFNlYXJjaFBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKLV9fWk43V2ViQ29y
ZTE4aXNTdGFydE9mUGFyYWdyYXBoRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FCitfX1pON1dlYkNv
cmUxOGlzU3RhcnRPZlBhcmFncmFwaEVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRU5TXzhQb3NpdGlv
bjI3RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlRQogX19aTjdXZWJDb3JlMThwbHVnaW5TY3Jp
cHRPYmplY3RFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTNKU0hUTUxFbGVtZW50RQogX19aTjdXZWJD
b3JlMThwcm94eVNlcnZlcnNGb3JVUkxFUktOU180S1VSTEVQS05TXzE3TmV0d29ya2luZ0NvbnRl
eHRFCiBfX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxNnJlc3VtZUFuaW1hdGlvbnNF
UE5TXzhEb2N1bWVudEUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0
aW9uLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCA0MDM3
NjcwOWU3ZjUwY2YxMmFlOWI1MGZkMjVhOWU3MjVlOTczOTI1Li42YmYxNDRiYTVjOTEzMGI1MjBi
MWM3NjA5ZWY3Y2NlMTgzOTY0ZmFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVNlbGVjdGlvbi5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3Bw
CkBAIC0zNDIsOCArMzQyLDggQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpzZXRTdGFydEFuZEVu
ZEZyb21CYXNlQW5kRXh0ZW50UmVzcGVjdGluZ0dyYW51bGFyaXR5KFRleHQKICAgICAgICAgICAg
IFZpc2libGVQb3NpdGlvbiBwb3MobV9zdGFydCwgbV9hZmZpbml0eSk7CiAgICAgICAgICAgICBp
ZiAoaXNTdGFydE9mTGluZShwb3MpICYmIGlzRW5kT2ZEb2N1bWVudChwb3MpKQogICAgICAgICAg
ICAgICAgIHBvcyA9IHBvcy5wcmV2aW91cygpOwotICAgICAgICAgICAgbV9zdGFydCA9IHN0YXJ0
T2ZQYXJhZ3JhcGgocG9zKS5kZWVwRXF1aXZhbGVudCgpOwotICAgICAgICAgICAgVmlzaWJsZVBv
c2l0aW9uIHZpc2libGVQYXJhZ3JhcGhFbmQgPSBlbmRPZlBhcmFncmFwaChWaXNpYmxlUG9zaXRp
b24obV9lbmQsIG1fYWZmaW5pdHkpKTsKKyAgICAgICAgICAgIG1fc3RhcnQgPSBzdGFydE9mUGFy
YWdyYXBoKHBvcywgUG9zaXRpb246OkNhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KS5kZWVwRXF1aXZh
bGVudCgpOworICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVQYXJhZ3JhcGhFbmQg
PSBlbmRPZlBhcmFncmFwaChWaXNpYmxlUG9zaXRpb24obV9lbmQsIG1fYWZmaW5pdHkpLCBQb3Np
dGlvbjo6Q2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICAvLyBJbmNsdWRlIHRoZSAicGFyYWdyYXBoIGJyZWFrIiAodGhlIHNwYWNlIGZyb20gdGhlIGVu
ZCBvZiB0aGlzIHBhcmFncmFwaCB0byB0aGUgc3RhcnQKICAgICAgICAgICAgIC8vIG9mIHRoZSBu
ZXh0IG9uZSkgaW4gdGhlIHNlbGVjdGlvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy92
aXNpYmxlX3VuaXRzLmNwcCBiL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAppbmRl
eCBkOWNhMjIzMzg2MDk5MGEwNzBiZjI1NjRiMzMyYTg0YTljOTk4YzM3Li44YjExMDEzN2M0MWU0
ZDYzNzRhYTgxYjRiZTMzZDJhMDAzMmJlZGQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcv
dmlzaWJsZV91bml0cy5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNp
bmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCkBAIC03NzksNyArNzgwLDcgQEAgVmlzaWJsZVBvc2l0aW9uIG5l
eHRTZW50ZW5jZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYykKICAgICByZXR1cm4g
Yy5ob25vckVkaXRhYmxlQm91bmRhcnlBdE9yQmVmb3JlKG5leHQpOwogfQogCi1WaXNpYmxlUG9z
aXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMpCitWaXNpYmxl
UG9zaXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIFBvc2l0
aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7
CiAgICAgUG9zaXRpb24gcCA9IGMuZGVlcEVxdWl2YWxlbnQoKTsKICAgICBOb2RlICpzdGFydE5v
ZGUgPSBwLm5vZGUoKTsKQEAgLTc5Nyw3ICs3OTgsNyBAQCBWaXNpYmxlUG9zaXRpb24gc3RhcnRP
ZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMpCiAKICAgICBOb2RlICpuID0gc3Rh
cnROb2RlOwogICAgIHdoaWxlIChuKSB7Ci0gICAgICAgIGlmIChuLT5pc0NvbnRlbnRFZGl0YWJs
ZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKKyAgICAgICAgaWYgKGJvdW5k
YXJ5Q3Jvc3NpbmdSdWxlID09IFBvc2l0aW9uOjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSAm
JiBuLT5pc0NvbnRlbnRFZGl0YWJsZSgpICE9IHN0YXJ0Tm9kZS0+aXNDb250ZW50RWRpdGFibGUo
KSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBSZW5kZXJPYmplY3QgKnIgPSBuLT5yZW5k
ZXJlcigpOwogICAgICAgICBpZiAoIXIpIHsKQEAgLTgxMiw4ICs4MTMsOCBAQCBWaXNpYmxlUG9z
aXRpb24gc3RhcnRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMpCiAgICAgICAg
IAogICAgICAgICBpZiAoci0+aXNCUigpIHx8IGlzQmxvY2sobikpCiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIAotICAgICAgICBpZiAoci0+aXNUZXh0KCkpIHsKKworICAgICAgICBp
ZiAoci0+aXNUZXh0KCkgJiYgci0+Y2FyZXRNYXhSZW5kZXJlZE9mZnNldCgpID4gMCkgewogICAg
ICAgICAgICAgaWYgKHN0eWxlLT5wcmVzZXJ2ZU5ld2xpbmUoKSkgewogICAgICAgICAgICAgICAg
IGNvbnN0IFVDaGFyKiBjaGFycyA9IHRvUmVuZGVyVGV4dChyKS0+Y2hhcmFjdGVycygpOwogICAg
ICAgICAgICAgICAgIGludCBpID0gdG9SZW5kZXJUZXh0KHIpLT50ZXh0TGVuZ3RoKCk7CkBAIC04
MzgsNyArODM5LDcgQEAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBjKQogICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24obm9kZSwgb2Zmc2V0
LCBET1dOU1RSRUFNKTsKIH0KIAotVmlzaWJsZVBvc2l0aW9uIGVuZE9mUGFyYWdyYXBoKGNvbnN0
IFZpc2libGVQb3NpdGlvbiAmYykKK1Zpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25z
dCBWaXNpYmxlUG9zaXRpb24gJmMsIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1
bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7ICAgIAogICAgIGlmIChjLmlzTnVsbCgpKQogICAg
ICAgICByZXR1cm4gVmlzaWJsZVBvc2l0aW9uKCk7CkBAIC04NTcsNyArODU4LDcgQEAgVmlzaWJs
ZVBvc2l0aW9uIGVuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmYykKIAogICAg
IE5vZGUgKm4gPSBzdGFydE5vZGU7CiAgICAgd2hpbGUgKG4pIHsKLSAgICAgICAgaWYgKG4tPmlz
Q29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQorICAg
ICAgICBpZiAoYm91bmRhcnlDcm9zc2luZ1J1bGUgPT0gUG9zaXRpb246OkNhbm5vdENyb3NzRWRp
dGluZ0JvdW5kYXJ5ICYmIG4tPmlzQ29udGVudEVkaXRhYmxlKCkgIT0gc3RhcnROb2RlLT5pc0Nv
bnRlbnRFZGl0YWJsZSgpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFJlbmRlck9iamVj
dCAqciA9IG4tPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmICghcikgewpAQCAtODcyLDkgKzg3Myw4
IEBAIFZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24g
JmMpCiAgICAgICAgIAogICAgICAgICBpZiAoci0+aXNCUigpIHx8IGlzQmxvY2sobikpCiAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAorCiAgICAgICAgIC8vIEZJWE1FOiBXZSBhdm9p
ZCByZXR1cm5pbmcgYSBwb3NpdGlvbiB3aGVyZSB0aGUgcmVuZGVyZXIgY2FuJ3QgYWNjZXB0IHRo
ZSBjYXJldC4KLSAgICAgICAgLy8gV2Ugc2hvdWxkIHByb2JhYmx5IGRvIHRoaXMgaW4gb3RoZXIg
Y2FzZXMgc3VjaCBhcyBzdGFydE9mUGFyYWdyYXBoLgogICAgICAgICBpZiAoci0+aXNUZXh0KCkg
JiYgci0+Y2FyZXRNYXhSZW5kZXJlZE9mZnNldCgpID4gMCkgewogICAgICAgICAgICAgaW50IGxl
bmd0aCA9IHRvUmVuZGVyVGV4dChyKS0+dGV4dExlbmd0aCgpOwogICAgICAgICAgICAgaWYgKHN0
eWxlLT5wcmVzZXJ2ZU5ld2xpbmUoKSkgewpAQCAtOTE0LDE0ICs5MTQsMTQgQEAgYm9vbCBpblNh
bWVQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZhLCBjb25zdCBWaXNpYmxlUG9zaXRp
b24gJmIpCiAgICAgcmV0dXJuIGEuaXNOb3ROdWxsKCkgJiYgc3RhcnRPZlBhcmFncmFwaChhKSA9
PSBzdGFydE9mUGFyYWdyYXBoKGIpOwogfQogCi1ib29sIGlzU3RhcnRPZlBhcmFncmFwaChjb25z
dCBWaXNpYmxlUG9zaXRpb24gJnBvcykKK2Jvb2wgaXNTdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZp
c2libGVQb3NpdGlvbiAmcG9zLCBQb3NpdGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxl
IGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKQogewotICAgIHJldHVybiBwb3MuaXNOb3ROdWxsKCkgJiYg
cG9zID09IHN0YXJ0T2ZQYXJhZ3JhcGgocG9zKTsKKyAgICByZXR1cm4gcG9zLmlzTm90TnVsbCgp
ICYmIHBvcyA9PSBzdGFydE9mUGFyYWdyYXBoKHBvcywgYm91bmRhcnlDcm9zc2luZ1J1bGUpOwog
fQogCi1ib29sIGlzRW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MpCiti
b29sIGlzRW5kT2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIFBvc2l0aW9u
OjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgYm91bmRhcnlDcm9zc2luZ1J1bGUpCiB7Ci0g
ICAgcmV0dXJuIHBvcy5pc05vdE51bGwoKSAmJiBwb3MgPT0gZW5kT2ZQYXJhZ3JhcGgocG9zKTsK
KyAgICByZXR1cm4gcG9zLmlzTm90TnVsbCgpICYmIHBvcyA9PSBlbmRPZlBhcmFncmFwaChwb3Ms
IGJvdW5kYXJ5Q3Jvc3NpbmdSdWxlKTsKIH0KIAogVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzUGFy
YWdyYXBoUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwLCBpbnQgeCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmggYi9XZWJDb3JlL2VkaXRpbmcvdmlz
aWJsZV91bml0cy5oCmluZGV4IGEyMGI1ODg4OTc1ZWY3Y2I1MzkwODJmMGViZGY0OWRiZThkMjlj
OTMuLmY3OGY5ZDE0OWZlODMxZjg5ODAzNDEzYmU1MWIzMGVkOTU4MjgxYWEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmgKKysrIGIvV2ViQ29yZS9lZGl0aW5nL3Zp
c2libGVfdW5pdHMuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSB2aXNpYmxlX3VuaXRzX2gK
IAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNpbmNsdWRl
ICJUZXh0QWZmaW5pdHkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsMTQgKzYxLDE0
IEBAIFZpc2libGVQb3NpdGlvbiBsb2dpY2FsU3RhcnRPZkxpbmUoY29uc3QgVmlzaWJsZVBvc2l0
aW9uICYpOwogVmlzaWJsZVBvc2l0aW9uIGxvZ2ljYWxFbmRPZkxpbmUoY29uc3QgVmlzaWJsZVBv
c2l0aW9uICYpOwogCiAvLyBwYXJhZ3JhcGhzIChwZXJoYXBzIGEgbWlzbm9tZXIsIGNhbiBiZSBk
aXZpZGVkIGJ5IGxpbmUgYnJlYWsgZWxlbWVudHMpCi1WaXNpYmxlUG9zaXRpb24gc3RhcnRPZlBh
cmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKLVZpc2libGVQb3NpdGlvbiBlbmRPZlBh
cmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKK1Zpc2libGVQb3NpdGlvbiBzdGFydE9m
UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIFBvc2l0aW9uOjpFZGl0aW5nQm91bmRh
cnlDcm9zc2luZ1J1bGUgPSBQb3NpdGlvbjo6Q2Fubm90Q3Jvc3NFZGl0aW5nQm91bmRhcnkpOwor
VmlzaWJsZVBvc2l0aW9uIGVuZE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIFBv
c2l0aW9uOjpFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgPSBQb3NpdGlvbjo6Q2Fubm90Q3Jv
c3NFZGl0aW5nQm91bmRhcnkpOwogVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZOZXh0UGFyYWdyYXBo
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYpOwogVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzUGFyYWdy
YXBoUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIGludCB4KTsKIFZpc2libGVQb3Np
dGlvbiBuZXh0UGFyYWdyYXBoUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uICYsIGludCB4
KTsKK2Jvb2wgaXNTdGFydE9mUGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmLCBQb3Np
dGlvbjo6RWRpdGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlID0gUG9zaXRpb246OkNhbm5vdENyb3Nz
RWRpdGluZ0JvdW5kYXJ5KTsKK2Jvb2wgaXNFbmRPZlBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9z
aXRpb24gJiwgUG9zaXRpb246OkVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSA9IFBvc2l0aW9u
OjpDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiBib29sIGluU2FtZVBhcmFncmFwaChjb25z
dCBWaXNpYmxlUG9zaXRpb24gJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwotYm9vbCBpc1N0
YXJ0T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uICYpOwotYm9vbCBpc0VuZE9mUGFy
YWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiAmKTsKIAogLy8gYmxvY2tzICh0cnVlIHBhcmFn
cmFwaHM7IGxpbmUgYnJlYWsgZWxlbWVudHMgZG9uJ3QgYnJlYWsgYmxvY2tzKQogVmlzaWJsZVBv
c2l0aW9uIHN0YXJ0T2ZCbG9jayhjb25zdCBWaXNpYmxlUG9zaXRpb24gJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76159</attachid>
            <date>2010-12-09 20:32:48 -0800</date>
            <delta_ts>2010-12-10 12:01:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48037-20101210153244.patch</filename>
            <type>text/plain</type>
            <size>29849</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZmMxMmIyMjExYjFiY2MxNjE5NTRmNmI5OGMyZmNkNjlhZmRjZTkxLi43ZTE4NmNh
MDlkNDBmZGEyNDJmN2EwOTZlOGI1Njk3NWQ1NzliMDU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMTItMDkgIEJlbmphbWluIEthbG1hbiAgPGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJpcGxlIGNsaWNr
IGRvZXMgbm90IHNlbGVjdCB3aG9sZSBsaW5lIGZvciBtaXhlZCBjb250ZW50ZWRpdGFibGUgcmVn
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgw
MzcKKworICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW1peGVkLWVkaXRhYmls
aXR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9p
bmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9z
ZWxlY3Rpb24vc2NyaXB0LXRlc3RzL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91
bmRhcmllcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0VHJpcGxlQ2xpY2suY2xpY2spOgorICAg
ICAgICAodGVzdFRyaXBsZUNsaWNrKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAodGVzdFdp
dGhUYWdOYW1lKToKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2stYWNy
b3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5k
YXJpZXMuaHRtbDogQWRkZWQuCisKIDIwMTAtMTItMDkgIEphc21pbiBMYXBhbG1lICA8amxhcGFs
bWVAZHJ1aWRlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtbWl4
ZWQtZWRpdGFiaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29t
bWFuZC9pbmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5
ODllNWU4MzRmMjU5MGQzMjhiZWM2MzViNDA3ZWU2NGYxOTQ5OTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1lZGl0YWJpbGl0
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0cyB0aGF0IGluZGVudGluZyBhIGNv
bnRlbnRlZGl0YWJsZSBzcGFuIGluc2lkZSBhIG5vbi1jb250ZW50ZWRpdGFibGUgZGl2IGRvZXMg
bm90IGNyYXNoLgorfCAiaGVsbG8gIgorfCA8c3Bhbj4KK3wgICBjb250ZW50ZWRpdGFibGU9IiIK
K3wgICBpZD0iY29udGVudCIKK3wgICA8YmxvY2txdW90ZT4KK3wgICAgIGNsYXNzPSJ3ZWJraXQt
aW5kZW50LWJsb2NrcXVvdGUiCit8ICAgICBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3Jk
ZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiCit8ICAgICAiPCNzZWxlY3Rpb24tYW5jaG9yPndvcmxk
PCNzZWxlY3Rpb24tZm9jdXM+IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC9pbmRlbnQtbWl4ZWQtZWRpdGFiaWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvaW5kZW50LW1peGVkLWVkaXRhYmlsaXR5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjNkYWZhNDI2MTJkZTllZjZkNDVlYWQxZTE0ZGM4MTVhMGYwY2E1ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LW1peGVkLWVkaXRhYmls
aXR5Lmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPGRpdj5oZWxsbyA8
c3BhbiBpZD0iY29udGVudCIgY29udGVudGVkaXRhYmxlPndvcmxkPC9zcGFuPjwvZGl2PgorPHNj
cmlwdD4KK3dpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29udGVudCIpKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJpbmRlbnQi
KTsKK01hcmt1cC5kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBpbmRlbnRpbmcgYSBjb250ZW50ZWRp
dGFibGUgc3BhbiBpbnNpZGUgYSBub24tY29udGVudGVkaXRhYmxlIGRpdiBkb2VzIG5vdCBjcmFz
aC4iKTsKK01hcmt1cC5kdW1wKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKVsw
XSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L3NjcmlwdC10ZXN0cy90cmlwbGUtY2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMu
anMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvdHJpcGxlLWNs
aWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzYzlkNWEx
ZTRmNmE1MmZlYmUzOTc5YzBkYmZjYTk1NDk3ZjBmNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvdHJpcGxlLWNsaWNrLWFjcm9z
cy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLmpzCkBAIC0wLDAgKzEsMTQzIEBACitkZXNjcmlwdGlv
bigiVGVzdHMgdHJpcGxlIGNsaWNraW5nIHNlbGVjdGlvbiBhY3Jvc3MgZWRpdGFiaWxpdHkgYm91
bmRhcmllcy4iKTsKKworZnVuY3Rpb24gdGVzdFRyaXBsZUNsaWNrKGV4cGVjdGVkLCBzaWRlLCBl
bGVtZW50KSB7CisgICAgaWYgKCFlbGVtZW50LnBhcmVudEVsZW1lbnQpIHsKKyAgICAgICAgdmFy
IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBjb250
YWluZXIuY2xhc3NOYW1lID0gInRlc3QiOworICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
ZWxlbWVudCk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGVudCIp
LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CisgICAgfQorCisgICAgLy8gUG9zaXRpb24gKHgsIHkp
IHdpdGhpbiB0aGUgZWxlbWVudCBvbiB0aGUgY29ycmVjdCBzaWRlLgorICAgIGlmIChzaWRlID09
PSAibGVmdCIpCisgICAgICB2YXIgeCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIDg7CisgICAgZWxz
ZSBpZiAoc2lkZSA9PT0gInJpZ2h0IikKKyAgICAgIHZhciB4ID0gZWxlbWVudC5vZmZzZXRMZWZ0
ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAtIDg7CisgICAgZWxzZSBpZiAoc2lkZSA9PT0gIm1pZGRs
ZSIpCisgICAgICB2YXIgeCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIChlbGVtZW50Lm9mZnNldFdp
ZHRoIC8gMik7CisgICAgdmFyIHkgPSBlbGVtZW50Lm9mZnNldFRvcCArIChlbGVtZW50Lm9mZnNl
dEhlaWdodCAvIDIpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKworICAgICAgICBmdW5jdGlv
biBjbGljaygpIHsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubGVh
cEZvcndhcmQoNTApOworICAgICAgICB9CisgICAgICAgIGNsaWNrKCk7CisgICAgICAgIGNsaWNr
KCk7CisgICAgICAgIGNsaWNrKCk7CisKKyAgICAgICAgdmFyIGFjdHVhbCA9IGRvY3VtZW50Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CisgICAgICAgIHZhciBhY3Rpb24gPSAiVHJpcGxlIGNs
aWNrIG9uICIgKyBzaWRlICsgIiBoYXMgY29udGVudCBbIiArIGFjdHVhbCArICJdIjsKKyAgICAg
ICAgaWYgKGFjdHVhbCA9PT0gZXhwZWN0ZWQpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKGFjdGlv
bik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoYWN0aW9uICsgIiBidXQg
ZXhwZWN0ZWQgWyIgKyBleHBlY3RlZCArICJdIik7CisgICAgfQorfQorCit2YXIgY3VycmVudFRl
c3QgPSAwOworCitmdW5jdGlvbiB0ZXN0KGRlc2NyaXB0aW9uLCB0YWdOYW1lLCBhdHRyaWJ1dGVz
LCBpbm5lckhUTUwpIHsKKyAgICBjdXJyZW50VGVzdCsrOworCisgICAgLy8gQWx3YXlzIG1ha2Ug
ZGl2cyBpbmxpbmUtYmxvY2sgc28gdGhhdCB0aGVpciBvZmZzZXRXaWR0aCBpcyByZXBvcnRlZCBz
YW5lbHkgaW4gdGVzdFRyaXBsZUNsaWNrLgorICAgIGlmICh0YWdOYW1lID09PSAiZGl2IikKKyAg
ICAgICAgYXR0cmlidXRlcy5wdXNoKCJzdHlsZT1kaXNwbGF5OiBpbmxpbmUtYmxvY2siKTsKKwor
ICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTsKKyAgICBk
ZXNjcmlwdGlvbiArPSAiXG48IiArIHRhZ05hbWU7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGtleVZhbHVlID0gYXR0cmli
dXRlc1tpXS5zcGxpdCgiPSIpOworICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShrZXlWYWx1
ZVswXSwga2V5VmFsdWVbMV0pOworICAgICAgICBkZXNjcmlwdGlvbiArPSAiICIgKyBrZXlWYWx1
ZVswXSArICI9XCIiICsga2V5VmFsdWVbMV0gKyAiXCIiOworICAgIH0KKworICAgIGVsZW1lbnQu
aW5uZXJIVE1MID0gaW5uZXJIVE1MOworICAgIGRlc2NyaXB0aW9uICs9ICI+IiArIGlubmVySFRN
TCArICI8LyIgKyB0YWdOYW1lICsgIj4iOyAKKworICAgIGRlYnVnKCJcblRlc3QgIiArIGN1cnJl
bnRUZXN0ICsgIjogIiArIGRlc2NyaXB0aW9uLnJlcGxhY2UoLzwvZywgIiZsdDsiKS5yZXBsYWNl
KC8+L2csICImZ3Q7IikpOworICAgIHJldHVybiBlbGVtZW50OworfQorCitmdW5jdGlvbiB0ZXN0
V2l0aFRhZ05hbWUodGFnTmFtZSkgeworICAgIGRlYnVnKCJcbiIgKyB0YWdOYW1lICsgIiB0ZXN0
czoiKTsKKyAgICBjdXJyZW50VGVzdCA9IDA7CisKKyAgICB2YXIgdGVzdDEgPSB0ZXN0KCJub24t
Y29udGVudGVkaXRhYmxlIHJlZ2lvbiBjb250YWluaW5nIGNvbnRlbnRlZGl0YWJsZSByZWdpb24i
LAorICAgICAgICB0YWdOYW1lLCBbXSwKKyAgICAgICAgImZvbyA8c3BhbiBjb250ZW50ZWRpdGFi
bGU+YmFyPC9zcGFuPiBiYXoiKTsKKyAgICB0ZXN0VHJpcGxlQ2xpY2soImZvbyBiYXIgYmF6XG4i
LCAibGVmdCIsIHRlc3QxKTsKKyAgICB0ZXN0VHJpcGxlQ2xpY2soImJhciIsICJtaWRkbGUiLCB0
ZXN0MSk7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJmb28gYmFyIGJhelxuIiwgInJpZ2h0IiwgdGVz
dDEpOworCisgICAgdmFyIHRlc3QyID0gdGVzdCgiY29udGVudGVkaXRhYmxlIHJlZ2lvbiBjb250
YWluaW5nIG5vbi1jb250ZW50ZWRpdGFibGUgcmVnaW9uIiwKKyAgICAgICAgdGFnTmFtZSwgWyJj
b250ZW50ZWRpdGFibGU9dHJ1ZSJdLAorICAgICAgICAiZm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJs
ZT1mYWxzZT5iYXI8L3NwYW4+IGJheiIpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBi
YXoiLCAibGVmdCIsIHRlc3QyKTsKKyAgICB0ZXN0VHJpcGxlQ2xpY2soImJhciIsICJtaWRkbGUi
LCB0ZXN0Mik7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJmb28gYmFyIGJheiIsICJyaWdodCIsIHRl
c3QyKTsKKworICAgIHZhciB0ZXN0MyA9IHRlc3QoIm5lc3RlZCBjb250ZW50ZWRpdGFibGUvbm9u
LWNvbnRlbnRlZGl0YWJsZSByZWdpb25zIiwKKyAgICAgICAgdGFnTmFtZSwgW10sCisgICAgICAg
ICJmb28gPHNwYW4gY29udGVudGVkaXRhYmxlPmJhciA8c3BhbiBjb250ZW50ZWRpdGFibGU9ZmFs
c2U+YmF6PC9zcGFuPiByYWI8L3NwYW4+IG9vZiIpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9v
IGJhciBiYXogcmFiIG9vZlxuIiwgImxlZnQiLCB0ZXN0Myk7CisgICAgdGVzdFRyaXBsZUNsaWNr
KCJiYXoiLCAibWlkZGxlIiwgdGVzdDMpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBi
YXogcmFiIG9vZlxuIiwgInJpZ2h0IiwgdGVzdDMpOworCisgICAgdmFyIHRlc3Q0ID0gdGVzdCgi
bmVzdGVkIGNvbnRlbnRlZGl0YWJsZS9ub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbnMgKGludmVy
dGVkKSIsCisgICAgICAgIHRhZ05hbWUsIFsiY29udGVudGVkaXRhYmxlPXRydWUiXSwKKyAgICAg
ICAgImZvbyA8c3BhbiBjb250ZW50ZWRpdGFibGU9ZmFsc2U+YmFyIDxzcGFuIGNvbnRlbnRlZGl0
YWJsZT5iYXo8L3NwYW4+IHJhYjwvc3Bhbj4gb29mIik7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJm
b28gYmFyIGJheiByYWIgb29mIiwgImxlZnQiLCB0ZXN0NCk7CisgICAgdGVzdFRyaXBsZUNsaWNr
KCJiYXoiLCAibWlkZGxlIiwgdGVzdDQpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBi
YXogcmFiIG9vZiIsICJyaWdodCIsIHRlc3Q0KTsKKworICAgIHZhciB0ZXN0NSA9IHRlc3QoIm5v
bi1jb250ZW50ZWRpdGFibGUgcmVnaW9ucyBhdCBzdGFydCBhbmQgZW5kIG9mIGNvbnRlbnRlZGl0
YWJsZSByZWdpb24iLAorICAgICAgICB0YWdOYW1lLCBbImNvbnRlbnRlZGl0YWJsZT10cnVlIl0s
CisgICAgICAgICI8c3BhbiBjb250ZW50ZWRpdGFibGU9ZmFsc2U+Zm9vPC9zcGFuPiBiYXIgPHNw
YW4gY29udGVudGVkaXRhYmxlPWZhbHNlPmJhejwvc3Bhbj4iKTsKKyAgICB0ZXN0VHJpcGxlQ2xp
Y2soImZvbyIsICJsZWZ0IiwgdGVzdDUpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBi
YXoiLCAibWlkZGxlIiwgdGVzdDUpOworICAgIHRlc3RUcmlwbGVDbGljaygiYmF6IiwgInJpZ2h0
IiwgdGVzdDUpOworCisgICAgdmFyIHRlc3Q2ID0gdGVzdCgiY29udGVudGVkaXRhYmxlIHJlZ2lv
bnMgYXQgc3RhcnQgYW5kIGVuZCBvZiBub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbiIsCisgICAg
ICAgIHRhZ05hbWUsIFtdLAorICAgICAgICAiPHNwYW4gY29udGVudGVkaXRhYmxlPmZvbzwvc3Bh
bj4gYmFyIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXo8L3NwYW4+Iik7CisgICAgdGVzdFRyaXBs
ZUNsaWNrKCJmb28iLCAibGVmdCIsIHRlc3Q2KTsKKyAgICB0ZXN0VHJpcGxlQ2xpY2soImZvbyBi
YXIgYmF6IiwgIm1pZGRsZSIsIHRlc3Q2KTsKKyAgICB0ZXN0VHJpcGxlQ2xpY2soImJheiIsICJy
aWdodCIsIHRlc3Q2KTsKKworICAgIHZhciB0ZXN0NyA9IHRlc3QoIm5lc3RlZCBhZGphY2VudCBz
cGFucyBvbiB0aGUgbGVmdCIsCisgICAgICAgIHRhZ05hbWUsIFtdLAorICAgICAgICAiZm9vIDxz
cGFuIGNvbnRlbnRlZGl0YWJsZT48c3BhbiBjb250ZW50ZWRpdGFibGU9ZmFsc2U+PHNwYW4gY29u
dGVudGVkaXRhYmxlPmJhcjwvc3Bhbj4gYmF6PC9zcGFuPiByYWI8L3NwYW4+IG9vZiIpOworICAg
IHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXogcmFiIG9vZlxuIiwgImxlZnQiLCB0ZXN0Nyk7
CisgICAgdGVzdFRyaXBsZUNsaWNrKCJiYXIgYmF6IiwgIm1pZGRsZSIsIHRlc3Q3KTsKKyAgICB0
ZXN0VHJpcGxlQ2xpY2soImZvbyBiYXIgYmF6IHJhYiBvb2ZcbiIsICJyaWdodCIsIHRlc3Q3KTsK
KworICAgIHZhciB0ZXN0OCA9IHRlc3QoIm5lc3RlZCBhZGphY2VudCBzcGFucyBvbiB0aGUgbGVm
dCAoaW52ZXJ0ZWQpIiwKKyAgICAgICAgdGFnTmFtZSwgWyJjb250ZW50ZWRpdGFibGU9dHJ1ZSJd
LAorICAgICAgICAiZm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1mYWxzZT48c3BhbiBjb250ZW50
ZWRpdGFibGU+PHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNlPmJhcjwvc3Bhbj4gYmF6PC9zcGFu
PiByYWI8L3NwYW4+IG9vZiIpOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXogcmFi
IG9vZiIsICJsZWZ0IiwgdGVzdDgpOworICAgIHRlc3RUcmlwbGVDbGljaygiYmFyIGJheiIsICJt
aWRkbGUiLCB0ZXN0OCk7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJmb28gYmFyIGJheiByYWIgb29m
IiwgInJpZ2h0IiwgdGVzdDgpOworCisgICAgdmFyIHRlc3Q5ID0gdGVzdCgibmVzdGVkIGFkamFj
ZW50IHNwYW5zIG9uIHRoZSByaWdodCIsCisgICAgICAgIHRhZ05hbWUsIFtdLAorICAgICAgICAi
Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXIgPHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNl
PmJheiA8c3BhbiBjb250ZW50ZWRpdGFibGU+cmFiPC9zcGFuPjwvc3Bhbj48L3NwYW4+IG9vZiIp
OworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBiYXogcmFiIG9vZlxuIiwgImxlZnQiLCB0
ZXN0OSk7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJiYXogcmFiIiwgIm1pZGRsZSIsIHRlc3Q5KTsK
KyAgICB0ZXN0VHJpcGxlQ2xpY2soImZvbyBiYXIgYmF6IHJhYiBvb2ZcbiIsICJyaWdodCIsIHRl
c3Q5KTsKKworICAgIHZhciB0ZXN0MTAgPSB0ZXN0KCJuZXN0ZWQgYWRqYWNlbnQgc3BhbnMgb24g
dGhlIHJpZ2h0IChpbnZlcnRlZCkiLAorICAgICAgICB0YWdOYW1lLCBbImNvbnRlbnRlZGl0YWJs
ZT10cnVlIl0sCisgICAgICAgICJmb28gPHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNlPmJhciA8
c3BhbiBjb250ZW50ZWRpdGFibGU+YmF6IDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1mYWxzZT5yYWI8
L3NwYW4+PC9zcGFuPjwvc3Bhbj4gb29mIik7CisgICAgdGVzdFRyaXBsZUNsaWNrKCJmb28gYmFy
IGJheiByYWIgb29mIiwgImxlZnQiLCB0ZXN0MTApOworICAgIHRlc3RUcmlwbGVDbGljaygiYmF6
IHJhYiIsICJtaWRkbGUiLCB0ZXN0MTApOworICAgIHRlc3RUcmlwbGVDbGljaygiZm9vIGJhciBi
YXogcmFiIG9vZiIsICJyaWdodCIsIHRlc3QxMCk7Cit9CisKK3Rlc3RXaXRoVGFnTmFtZSgic3Bh
biIpOwordGVzdFdpdGhUYWdOYW1lKCJkaXYiKTsKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2st
YWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFy
aWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODU3ZTc1MDZlZmU3MzM4OTA2MWE4N2U2ZGRm
ZDdhNThmNDVjMDZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vdHJpcGxlLWNsaWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE3MSBAQAorVGVzdHMgdHJpcGxlIGNsaWNraW5nIHNlbGVjdGlvbiBh
Y3Jvc3MgZWRpdGFiaWxpdHkgYm91bmRhcmllcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK2ZvbyBiYXIgYmF6Citmb28gYmFyIGJhegorZm9vIGJhciBiYXogcmFiIG9vZgorZm9v
IGJhciBiYXogcmFiIG9vZgorZm9vIGJhciBiYXoKK2ZvbyBiYXIgYmF6Citmb28gYmFyIGJheiBy
YWIgb29mCitmb28gYmFyIGJheiByYWIgb29mCitmb28gYmFyIGJheiByYWIgb29mCitmb28gYmFy
IGJheiByYWIgb29mCitmb28gYmFyIGJhegorZm9vIGJhciBiYXoKK2ZvbyBiYXIgYmF6IHJhYiBv
b2YKK2ZvbyBiYXIgYmF6IHJhYiBvb2YKK2ZvbyBiYXIgYmF6Citmb28gYmFyIGJhegorZm9vIGJh
ciBiYXogcmFiIG9vZgorZm9vIGJhciBiYXogcmFiIG9vZgorZm9vIGJhciBiYXogcmFiIG9vZgor
Zm9vIGJhciBiYXogcmFiIG9vZgorCitzcGFuIHRlc3RzOgorCitUZXN0IDE6IG5vbi1jb250ZW50
ZWRpdGFibGUgcmVnaW9uIGNvbnRhaW5pbmcgY29udGVudGVkaXRhYmxlIHJlZ2lvbgorPHNwYW4+
Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXI8L3NwYW4+IGJhejwvc3Bhbj4KK1BBU1MgVHJp
cGxlIGNsaWNrIG9uIGxlZnQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6CitdCitQQVNTIFRyaXBs
ZSBjbGljayBvbiBtaWRkbGUgaGFzIGNvbnRlbnQgW2Jhcl0KK1BBU1MgVHJpcGxlIGNsaWNrIG9u
IHJpZ2h0IGhhcyBjb250ZW50IFtmb28gYmFyIGJhegorXQorCitUZXN0IDI6IGNvbnRlbnRlZGl0
YWJsZSByZWdpb24gY29udGFpbmluZyBub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbgorPHNwYW4g
Y29udGVudGVkaXRhYmxlPSJ0cnVlIj5mb28gPHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNlPmJh
cjwvc3Bhbj4gYmF6PC9zcGFuPgorUEFTUyBUcmlwbGUgY2xpY2sgb24gbGVmdCBoYXMgY29udGVu
dCBbZm9vIGJhciBiYXpdCitQQVNTIFRyaXBsZSBjbGljayBvbiBtaWRkbGUgaGFzIGNvbnRlbnQg
W2Jhcl0KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIHJpZ2h0IGhhcyBjb250ZW50IFtmb28gYmFyIGJh
el0KKworVGVzdCAzOiBuZXN0ZWQgY29udGVudGVkaXRhYmxlL25vbi1jb250ZW50ZWRpdGFibGUg
cmVnaW9ucworPHNwYW4+Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXIgPHNwYW4gY29udGVu
dGVkaXRhYmxlPWZhbHNlPmJhejwvc3Bhbj4gcmFiPC9zcGFuPiBvb2Y8L3NwYW4+CitQQVNTIFRy
aXBsZSBjbGljayBvbiBsZWZ0IGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIgb29mCitdCitQ
QVNTIFRyaXBsZSBjbGljayBvbiBtaWRkbGUgaGFzIGNvbnRlbnQgW2Jhel0KK1BBU1MgVHJpcGxl
IGNsaWNrIG9uIHJpZ2h0IGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIgb29mCitdCisKK1Rl
c3QgNDogbmVzdGVkIGNvbnRlbnRlZGl0YWJsZS9ub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbnMg
KGludmVydGVkKQorPHNwYW4gY29udGVudGVkaXRhYmxlPSJ0cnVlIj5mb28gPHNwYW4gY29udGVu
dGVkaXRhYmxlPWZhbHNlPmJhciA8c3BhbiBjb250ZW50ZWRpdGFibGU+YmF6PC9zcGFuPiByYWI8
L3NwYW4+IG9vZjwvc3Bhbj4KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIGxlZnQgaGFzIGNvbnRlbnQg
W2ZvbyBiYXIgYmF6IHJhYiBvb2ZdCitQQVNTIFRyaXBsZSBjbGljayBvbiBtaWRkbGUgaGFzIGNv
bnRlbnQgW2Jhel0KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIHJpZ2h0IGhhcyBjb250ZW50IFtmb28g
YmFyIGJheiByYWIgb29mXQorCitUZXN0IDU6IG5vbi1jb250ZW50ZWRpdGFibGUgcmVnaW9ucyBh
dCBzdGFydCBhbmQgZW5kIG9mIGNvbnRlbnRlZGl0YWJsZSByZWdpb24KKzxzcGFuIGNvbnRlbnRl
ZGl0YWJsZT0idHJ1ZSI+PHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNlPmZvbzwvc3Bhbj4gYmFy
IDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1mYWxzZT5iYXo8L3NwYW4+PC9zcGFuPgorUEFTUyBUcmlw
bGUgY2xpY2sgb24gbGVmdCBoYXMgY29udGVudCBbZm9vXQorRkFJTCBUcmlwbGUgY2xpY2sgb24g
bWlkZGxlIGhhcyBjb250ZW50IFsgYmFyIGJhel0gYnV0IGV4cGVjdGVkIFtmb28gYmFyIGJhel0K
K1BBU1MgVHJpcGxlIGNsaWNrIG9uIHJpZ2h0IGhhcyBjb250ZW50IFtiYXpdCisKK1Rlc3QgNjog
Y29udGVudGVkaXRhYmxlIHJlZ2lvbnMgYXQgc3RhcnQgYW5kIGVuZCBvZiBub24tY29udGVudGVk
aXRhYmxlIHJlZ2lvbgorPHNwYW4+PHNwYW4gY29udGVudGVkaXRhYmxlPmZvbzwvc3Bhbj4gYmFy
IDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXo8L3NwYW4+PC9zcGFuPgorUEFTUyBUcmlwbGUgY2xp
Y2sgb24gbGVmdCBoYXMgY29udGVudCBbZm9vXQorRkFJTCBUcmlwbGUgY2xpY2sgb24gbWlkZGxl
IGhhcyBjb250ZW50IFsgYmFyIGJhegorXSBidXQgZXhwZWN0ZWQgW2ZvbyBiYXIgYmF6XQorUEFT
UyBUcmlwbGUgY2xpY2sgb24gcmlnaHQgaGFzIGNvbnRlbnQgW2Jhel0KKworVGVzdCA3OiBuZXN0
ZWQgYWRqYWNlbnQgc3BhbnMgb24gdGhlIGxlZnQKKzxzcGFuPmZvbyA8c3BhbiBjb250ZW50ZWRp
dGFibGU+PHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNlPjxzcGFuIGNvbnRlbnRlZGl0YWJsZT5i
YXI8L3NwYW4+IGJhejwvc3Bhbj4gcmFiPC9zcGFuPiBvb2Y8L3NwYW4+CitQQVNTIFRyaXBsZSBj
bGljayBvbiBsZWZ0IGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIgb29mCitdCitQQVNTIFRy
aXBsZSBjbGljayBvbiBtaWRkbGUgaGFzIGNvbnRlbnQgW2JhciBiYXpdCitQQVNTIFRyaXBsZSBj
bGljayBvbiByaWdodCBoYXMgY29udGVudCBbZm9vIGJhciBiYXogcmFiIG9vZgorXQorCitUZXN0
IDg6IG5lc3RlZCBhZGphY2VudCBzcGFucyBvbiB0aGUgbGVmdCAoaW52ZXJ0ZWQpCis8c3BhbiBj
b250ZW50ZWRpdGFibGU9InRydWUiPmZvbyA8c3BhbiBjb250ZW50ZWRpdGFibGU9ZmFsc2U+PHNw
YW4gY29udGVudGVkaXRhYmxlPjxzcGFuIGNvbnRlbnRlZGl0YWJsZT1mYWxzZT5iYXI8L3NwYW4+
IGJhejwvc3Bhbj4gcmFiPC9zcGFuPiBvb2Y8L3NwYW4+CitQQVNTIFRyaXBsZSBjbGljayBvbiBs
ZWZ0IGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIgb29mXQorUEFTUyBUcmlwbGUgY2xpY2sg
b24gbWlkZGxlIGhhcyBjb250ZW50IFtiYXIgYmF6XQorUEFTUyBUcmlwbGUgY2xpY2sgb24gcmln
aHQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJhYiBvb2ZdCisKK1Rlc3QgOTogbmVzdGVkIGFk
amFjZW50IHNwYW5zIG9uIHRoZSByaWdodAorPHNwYW4+Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJs
ZT5iYXIgPHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNlPmJheiA8c3BhbiBjb250ZW50ZWRpdGFi
bGU+cmFiPC9zcGFuPjwvc3Bhbj48L3NwYW4+IG9vZjwvc3Bhbj4KK1BBU1MgVHJpcGxlIGNsaWNr
IG9uIGxlZnQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJhYiBvb2YKK10KK1BBU1MgVHJpcGxl
IGNsaWNrIG9uIG1pZGRsZSBoYXMgY29udGVudCBbYmF6IHJhYl0KK1BBU1MgVHJpcGxlIGNsaWNr
IG9uIHJpZ2h0IGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIgb29mCitdCisKK1Rlc3QgMTA6
IG5lc3RlZCBhZGphY2VudCBzcGFucyBvbiB0aGUgcmlnaHQgKGludmVydGVkKQorPHNwYW4gY29u
dGVudGVkaXRhYmxlPSJ0cnVlIj5mb28gPHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNlPmJhciA8
c3BhbiBjb250ZW50ZWRpdGFibGU+YmF6IDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1mYWxzZT5yYWI8
L3NwYW4+PC9zcGFuPjwvc3Bhbj4gb29mPC9zcGFuPgorUEFTUyBUcmlwbGUgY2xpY2sgb24gbGVm
dCBoYXMgY29udGVudCBbZm9vIGJhciBiYXogcmFiIG9vZl0KK1BBU1MgVHJpcGxlIGNsaWNrIG9u
IG1pZGRsZSBoYXMgY29udGVudCBbYmF6IHJhYl0KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIHJpZ2h0
IGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIgb29mXQorCitkaXYgdGVzdHM6CisKK1Rlc3Qg
MTogbm9uLWNvbnRlbnRlZGl0YWJsZSByZWdpb24gY29udGFpbmluZyBjb250ZW50ZWRpdGFibGUg
cmVnaW9uCis8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2siPmZvbyA8c3BhbiBjb250
ZW50ZWRpdGFibGU+YmFyPC9zcGFuPiBiYXo8L2Rpdj4KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIGxl
ZnQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6CitdCitQQVNTIFRyaXBsZSBjbGljayBvbiBtaWRk
bGUgaGFzIGNvbnRlbnQgW2Jhcl0KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIHJpZ2h0IGhhcyBjb250
ZW50IFtmb28gYmFyIGJhegorXQorCitUZXN0IDI6IGNvbnRlbnRlZGl0YWJsZSByZWdpb24gY29u
dGFpbmluZyBub24tY29udGVudGVkaXRhYmxlIHJlZ2lvbgorPGRpdiBjb250ZW50ZWRpdGFibGU9
InRydWUiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2siPmZvbyA8c3BhbiBjb250ZW50ZWRp
dGFibGU9ZmFsc2U+YmFyPC9zcGFuPiBiYXo8L2Rpdj4KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIGxl
ZnQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6XQorUEFTUyBUcmlwbGUgY2xpY2sgb24gbWlkZGxl
IGhhcyBjb250ZW50IFtiYXJdCitQQVNTIFRyaXBsZSBjbGljayBvbiByaWdodCBoYXMgY29udGVu
dCBbZm9vIGJhciBiYXpdCisKK1Rlc3QgMzogbmVzdGVkIGNvbnRlbnRlZGl0YWJsZS9ub24tY29u
dGVudGVkaXRhYmxlIHJlZ2lvbnMKKzxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+
Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXIgPHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNl
PmJhejwvc3Bhbj4gcmFiPC9zcGFuPiBvb2Y8L2Rpdj4KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIGxl
ZnQgaGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJhYiBvb2YKK10KK1BBU1MgVHJpcGxlIGNsaWNr
IG9uIG1pZGRsZSBoYXMgY29udGVudCBbYmF6XQorUEFTUyBUcmlwbGUgY2xpY2sgb24gcmlnaHQg
aGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJhYiBvb2YKK10KKworVGVzdCA0OiBuZXN0ZWQgY29u
dGVudGVkaXRhYmxlL25vbi1jb250ZW50ZWRpdGFibGUgcmVnaW9ucyAoaW52ZXJ0ZWQpCis8ZGl2
IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+Zm9v
IDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1mYWxzZT5iYXIgPHNwYW4gY29udGVudGVkaXRhYmxlPmJh
ejwvc3Bhbj4gcmFiPC9zcGFuPiBvb2Y8L2Rpdj4KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIGxlZnQg
aGFzIGNvbnRlbnQgW2ZvbyBiYXIgYmF6IHJhYiBvb2ZdCitQQVNTIFRyaXBsZSBjbGljayBvbiBt
aWRkbGUgaGFzIGNvbnRlbnQgW2Jhel0KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIHJpZ2h0IGhhcyBj
b250ZW50IFtmb28gYmFyIGJheiByYWIgb29mXQorCitUZXN0IDU6IG5vbi1jb250ZW50ZWRpdGFi
bGUgcmVnaW9ucyBhdCBzdGFydCBhbmQgZW5kIG9mIGNvbnRlbnRlZGl0YWJsZSByZWdpb24KKzxk
aXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrIj48
c3BhbiBjb250ZW50ZWRpdGFibGU9ZmFsc2U+Zm9vPC9zcGFuPiBiYXIgPHNwYW4gY29udGVudGVk
aXRhYmxlPWZhbHNlPmJhejwvc3Bhbj48L2Rpdj4KK1BBU1MgVHJpcGxlIGNsaWNrIG9uIGxlZnQg
aGFzIGNvbnRlbnQgW2Zvb10KK0ZBSUwgVHJpcGxlIGNsaWNrIG9uIG1pZGRsZSBoYXMgY29udGVu
dCBbIGJhciBiYXpdIGJ1dCBleHBlY3RlZCBbZm9vIGJhciBiYXpdCitQQVNTIFRyaXBsZSBjbGlj
ayBvbiByaWdodCBoYXMgY29udGVudCBbYmF6XQorCitUZXN0IDY6IGNvbnRlbnRlZGl0YWJsZSBy
ZWdpb25zIGF0IHN0YXJ0IGFuZCBlbmQgb2Ygbm9uLWNvbnRlbnRlZGl0YWJsZSByZWdpb24KKzxk
aXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+PHNwYW4gY29udGVudGVkaXRhYmxlPmZv
bzwvc3Bhbj4gYmFyIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXo8L3NwYW4+PC9kaXY+CitQQVNT
IFRyaXBsZSBjbGljayBvbiBsZWZ0IGhhcyBjb250ZW50IFtmb29dCitGQUlMIFRyaXBsZSBjbGlj
ayBvbiBtaWRkbGUgaGFzIGNvbnRlbnQgWyBiYXIgYmF6CitdIGJ1dCBleHBlY3RlZCBbZm9vIGJh
ciBiYXpdCitQQVNTIFRyaXBsZSBjbGljayBvbiByaWdodCBoYXMgY29udGVudCBbYmF6XQorCitU
ZXN0IDc6IG5lc3RlZCBhZGphY2VudCBzcGFucyBvbiB0aGUgbGVmdAorPGRpdiBzdHlsZT0iZGlz
cGxheTogaW5saW5lLWJsb2NrIj5mb28gPHNwYW4gY29udGVudGVkaXRhYmxlPjxzcGFuIGNvbnRl
bnRlZGl0YWJsZT1mYWxzZT48c3BhbiBjb250ZW50ZWRpdGFibGU+YmFyPC9zcGFuPiBiYXo8L3Nw
YW4+IHJhYjwvc3Bhbj4gb29mPC9kaXY+CitQQVNTIFRyaXBsZSBjbGljayBvbiBsZWZ0IGhhcyBj
b250ZW50IFtmb28gYmFyIGJheiByYWIgb29mCitdCitQQVNTIFRyaXBsZSBjbGljayBvbiBtaWRk
bGUgaGFzIGNvbnRlbnQgW2JhciBiYXpdCitQQVNTIFRyaXBsZSBjbGljayBvbiByaWdodCBoYXMg
Y29udGVudCBbZm9vIGJhciBiYXogcmFiIG9vZgorXQorCitUZXN0IDg6IG5lc3RlZCBhZGphY2Vu
dCBzcGFucyBvbiB0aGUgbGVmdCAoaW52ZXJ0ZWQpCis8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1
ZSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJs
ZT1mYWxzZT48c3BhbiBjb250ZW50ZWRpdGFibGU+PHNwYW4gY29udGVudGVkaXRhYmxlPWZhbHNl
PmJhcjwvc3Bhbj4gYmF6PC9zcGFuPiByYWI8L3NwYW4+IG9vZjwvZGl2PgorUEFTUyBUcmlwbGUg
Y2xpY2sgb24gbGVmdCBoYXMgY29udGVudCBbZm9vIGJhciBiYXogcmFiIG9vZl0KK1BBU1MgVHJp
cGxlIGNsaWNrIG9uIG1pZGRsZSBoYXMgY29udGVudCBbYmFyIGJhel0KK1BBU1MgVHJpcGxlIGNs
aWNrIG9uIHJpZ2h0IGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIgb29mXQorCitUZXN0IDk6
IG5lc3RlZCBhZGphY2VudCBzcGFucyBvbiB0aGUgcmlnaHQKKzxkaXYgc3R5bGU9ImRpc3BsYXk6
IGlubGluZS1ibG9jayI+Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iYXIgPHNwYW4gY29udGVu
dGVkaXRhYmxlPWZhbHNlPmJheiA8c3BhbiBjb250ZW50ZWRpdGFibGU+cmFiPC9zcGFuPjwvc3Bh
bj48L3NwYW4+IG9vZjwvZGl2PgorUEFTUyBUcmlwbGUgY2xpY2sgb24gbGVmdCBoYXMgY29udGVu
dCBbZm9vIGJhciBiYXogcmFiIG9vZgorXQorUEFTUyBUcmlwbGUgY2xpY2sgb24gbWlkZGxlIGhh
cyBjb250ZW50IFtiYXogcmFiXQorUEFTUyBUcmlwbGUgY2xpY2sgb24gcmlnaHQgaGFzIGNvbnRl
bnQgW2ZvbyBiYXIgYmF6IHJhYiBvb2YKK10KKworVGVzdCAxMDogbmVzdGVkIGFkamFjZW50IHNw
YW5zIG9uIHRoZSByaWdodCAoaW52ZXJ0ZWQpCis8ZGl2IGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIg
c3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jayI+Zm9vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT1m
YWxzZT5iYXIgPHNwYW4gY29udGVudGVkaXRhYmxlPmJheiA8c3BhbiBjb250ZW50ZWRpdGFibGU9
ZmFsc2U+cmFiPC9zcGFuPjwvc3Bhbj48L3NwYW4+IG9vZjwvZGl2PgorUEFTUyBUcmlwbGUgY2xp
Y2sgb24gbGVmdCBoYXMgY29udGVudCBbZm9vIGJhciBiYXogcmFiIG9vZl0KK1BBU1MgVHJpcGxl
IGNsaWNrIG9uIG1pZGRsZSBoYXMgY29udGVudCBbYmF6IHJhYl0KK1BBU1MgVHJpcGxlIGNsaWNr
IG9uIHJpZ2h0IGhhcyBjb250ZW50IFtmb28gYmFyIGJheiByYWIgb29mXQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxpdHkt
Ym91bmRhcmllcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNs
aWNrLWFjcm9zcy1lZGl0YWJpbGl0eS1ib3VuZGFyaWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ5ZDE5
OWU1MjMyMDMyYTUxZWY5MzUwNDUyYWY5ZTVhMGRjNzEyYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1hY3Jvc3MtZWRpdGFiaWxp
dHktYm91bmRhcmllcy5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy50ZXN0IHsKKyAgYm9yZGVyOiAxcHggc29saWQgYmx1ZTsK
K30KKzwvc3R5bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0idGVzdENvbnRlbnQiPjwvZGl2PgorPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3RyaXBsZS1j
bGljay1hY3Jvc3MtZWRpdGFiaWxpdHktYm91bmRhcmllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYTRkYjIxMmM3MDZlYmIxMDYzN2ExMmM3MzQyOTNhOTQ0N2U0Yzdl
MC4uMmM2ZTg0MjlmZTAzZTFlOWFiOWRjZjBhNzY4OTNlNmE1ZmE4N2MxYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAxMC0xMi0wOSAgQmVuamFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUcmlwbGUgY2xp
Y2sgZG9lcyBub3Qgc2VsZWN0IHdob2xlIGxpbmUgZm9yIG1peGVkIGNvbnRlbnRlZGl0YWJsZSBy
ZWdpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
ODAzNworCisgICAgICAgIFRlc3RzOiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1taXhlZC1l
ZGl0YWJpbGl0eS5odG1sCisgICAgICAgICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUt
Y2xpY2stYWNyb3NzLWVkaXRhYmlsaXR5LWJvdW5kYXJpZXMuaHRtbAorCisgICAgICAgICogZWRp
dGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDogUmV3cml0ZSBhZGp1c3RTZWxlY3Rpb25Ub0F2b2lk
Q3Jvc3NpbmdFZGl0aW5nQm91bmRhcmllcyB3aXRoCisgICAgICAgIGEgc3RhY2sgYXBwcm9hY2gg
dG8gZGV0ZWN0aW5nIGVkaXRpbmcgYm91bmRhcmllcywgcmF0aGVyIHRoYW4gYW4gaWYtc3RhdG1l
bnQtb24tZW5kcG9pbnRzCisgICAgICAgIGFwcHJvYWNoLgorICAgICAgICAoV2ViQ29yZTo6Vmlz
aWJsZVNlbGVjdGlvbjo6c2V0U3RhcnRBbmRFbmRGcm9tQmFzZUFuZEV4dGVudFJlc3BlY3RpbmdH
cmFudWxhcml0eSk6CisgICAgICAgIChXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RT
ZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdFZGl0aW5nQm91bmRhcmllcyk6CisgICAgICAgIChXZWJD
b3JlOjpuZXh0T3JTaGFkb3dOZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnByZXZpb3VzT3JTaGFk
b3dQcmV2aW91cyk6CisgICAgICAgIChXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RT
ZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdFZGl0aW5nQm91bmRhcmllc0ZvckxpbWl0KToKKyAgICAg
ICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaDoKKwogMjAxMC0xMi0wOSAgSmFzbWluIExh
cGFsbWUgIDxqbGFwYWxtZUBkcnVpZGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhl
eSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVj
dGlvbi5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKaW5kZXggNDAz
NzY3MDllN2Y1MGNmMTJhZTliNTBmZDI1YTllNzI1ZTk3MzkyNS4uZmViYTUzM2NkN2RiZWIwNjdj
MDRlOTM0NjM3M2ViNTU4ZGM1ZTYwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL1Zpc2li
bGVTZWxlY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNw
cApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ2hhcmFjdGVyTmFtZXMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVkaXRpbmdCb3VuZGFyeS5oIgogI2luY2x1ZGUg
IkVsZW1lbnQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgIlRleHRJdGVy
YXRvci5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJhbmdlLmgiCiAKICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KIApAQCAtMzQyLDggKzM0NCw4
IEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2V0U3RhcnRBbmRFbmRGcm9tQmFzZUFuZEV4dGVu
dFJlc3BlY3RpbmdHcmFudWxhcml0eShUZXh0CiAgICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24g
cG9zKG1fc3RhcnQsIG1fYWZmaW5pdHkpOwogICAgICAgICAgICAgaWYgKGlzU3RhcnRPZkxpbmUo
cG9zKSAmJiBpc0VuZE9mRG9jdW1lbnQocG9zKSkKICAgICAgICAgICAgICAgICBwb3MgPSBwb3Mu
cHJldmlvdXMoKTsKLSAgICAgICAgICAgIG1fc3RhcnQgPSBzdGFydE9mUGFyYWdyYXBoKHBvcyku
ZGVlcEVxdWl2YWxlbnQoKTsKLSAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlUGFy
YWdyYXBoRW5kID0gZW5kT2ZQYXJhZ3JhcGgoVmlzaWJsZVBvc2l0aW9uKG1fZW5kLCBtX2FmZmlu
aXR5KSk7CisgICAgICAgICAgICBtX3N0YXJ0ID0gc3RhcnRPZlBhcmFncmFwaChwb3MsIENhbkNy
b3NzRWRpdGluZ0JvdW5kYXJ5KS5kZWVwRXF1aXZhbGVudCgpOworICAgICAgICAgICAgVmlzaWJs
ZVBvc2l0aW9uIHZpc2libGVQYXJhZ3JhcGhFbmQgPSBlbmRPZlBhcmFncmFwaChWaXNpYmxlUG9z
aXRpb24obV9lbmQsIG1fYWZmaW5pdHkpLCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIC8vIEluY2x1ZGUgdGhlICJwYXJhZ3JhcGggYnJlYWsiICh0
aGUgc3BhY2UgZnJvbSB0aGUgZW5kIG9mIHRoaXMgcGFyYWdyYXBoIHRvIHRoZSBzdGFydAogICAg
ICAgICAgICAgLy8gb2YgdGhlIG5leHQgb25lKSBpbiB0aGUgc2VsZWN0aW9uLgpAQCAtNDUxLDEw
NyArNDUzLDY1IEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0U2VsZWN0aW9uVG9Bdm9p
ZENyb3NzaW5nRWRpdGluZ0JvdW5kYXJpZXMoKQogewogICAgIGlmIChtX2Jhc2UuaXNOdWxsKCkg
fHwgbV9zdGFydC5pc051bGwoKSB8fCBtX2VuZC5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwor
ICAgIGFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0VkaXRpbmdCb3VuZGFyaWVzRm9yTGlt
aXQoU1RBUlQpOworICAgIGFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0VkaXRpbmdCb3Vu
ZGFyaWVzRm9yTGltaXQoRU5EKTsKK30KIAotICAgIE5vZGUqIGJhc2VSb290ID0gaGlnaGVzdEVk
aXRhYmxlUm9vdChtX2Jhc2UpOwotICAgIE5vZGUqIHN0YXJ0Um9vdCA9IGhpZ2hlc3RFZGl0YWJs
ZVJvb3QobV9zdGFydCk7Ci0gICAgTm9kZSogZW5kUm9vdCA9IGhpZ2hlc3RFZGl0YWJsZVJvb3Qo
bV9lbmQpOwotICAgIAotICAgIE5vZGUqIGJhc2VFZGl0YWJsZUFuY2VzdG9yID0gbG93ZXN0RWRp
dGFibGVBbmNlc3RvcihtX2Jhc2Uubm9kZSgpKTsKLSAgICAKLSAgICAvLyBUaGUgYmFzZSwgc3Rh
cnQgYW5kIGVuZCBhcmUgYWxsIGluIHRoZSBzYW1lIHJlZ2lvbi4gIE5vIGFkanVzdG1lbnQgbmVj
ZXNzYXJ5LgotICAgIGlmIChiYXNlUm9vdCA9PSBzdGFydFJvb3QgJiYgYmFzZVJvb3QgPT0gZW5k
Um9vdCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIC8vIFRoZSBzZWxlY3Rpb24gaXMgYmFz
ZWQgaW4gZWRpdGFibGUgY29udGVudC4KLSAgICBpZiAoYmFzZVJvb3QpIHsKLSAgICAgICAgLy8g
SWYgdGhlIHN0YXJ0IGlzIG91dHNpZGUgdGhlIGJhc2UncyBlZGl0YWJsZSByb290LCBjYXAgaXQg
YXQgdGhlIHN0YXJ0IG9mIHRoYXQgcm9vdC4KLSAgICAgICAgLy8gSWYgdGhlIHN0YXJ0IGlzIGlu
IG5vbi1lZGl0YWJsZSBjb250ZW50IHRoYXQgaXMgaW5zaWRlIHRoZSBiYXNlJ3MgZWRpdGFibGUg
cm9vdCwgcHV0IGl0Ci0gICAgICAgIC8vIGF0IHRoZSBmaXJzdCBlZGl0YWJsZSBwb3NpdGlvbiBh
ZnRlciBzdGFydCBpbnNpZGUgdGhlIGJhc2UncyBlZGl0YWJsZSByb290LgotICAgICAgICBpZiAo
c3RhcnRSb290ICE9IGJhc2VSb290KSB7Ci0gICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24gZmly
c3QgPSBmaXJzdEVkaXRhYmxlUG9zaXRpb25BZnRlclBvc2l0aW9uSW5Sb290KG1fc3RhcnQsIGJh
c2VSb290KTsKLSAgICAgICAgICAgIG1fc3RhcnQgPSBmaXJzdC5kZWVwRXF1aXZhbGVudCgpOwot
ICAgICAgICAgICAgaWYgKG1fc3RhcnQuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICBtX3N0YXJ0ID0gbV9lbmQ7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLy8gSWYgdGhlIGVuZCBpcyBvdXRzaWRlIHRo
ZSBiYXNlJ3MgZWRpdGFibGUgcm9vdCwgY2FwIGl0IGF0IHRoZSBlbmQgb2YgdGhhdCByb290Lgot
ICAgICAgICAvLyBJZiB0aGUgZW5kIGlzIGluIG5vbi1lZGl0YWJsZSBjb250ZW50IHRoYXQgaXMg
aW5zaWRlIHRoZSBiYXNlJ3Mgcm9vdCwgcHV0IGl0Ci0gICAgICAgIC8vIGF0IHRoZSBsYXN0IGVk
aXRhYmxlIHBvc2l0aW9uIGJlZm9yZSB0aGUgZW5kIGluc2lkZSB0aGUgYmFzZSdzIHJvb3QuCi0g
ICAgICAgIGlmIChlbmRSb290ICE9IGJhc2VSb290KSB7Ci0gICAgICAgICAgICBWaXNpYmxlUG9z
aXRpb24gbGFzdCA9IGxhc3RFZGl0YWJsZVBvc2l0aW9uQmVmb3JlUG9zaXRpb25JblJvb3QobV9l
bmQsIGJhc2VSb290KTsKLSAgICAgICAgICAgIG1fZW5kID0gbGFzdC5kZWVwRXF1aXZhbGVudCgp
OwotICAgICAgICAgICAgaWYgKG1fZW5kLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgIG1fZW5k
ID0gbV9zdGFydDsKLSAgICAgICAgfQotICAgIC8vIFRoZSBzZWxlY3Rpb24gaXMgYmFzZWQgaW4g
bm9uLWVkaXRhYmxlIGNvbnRlbnQuCi0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gRklYTUU6IE5v
bi1lZGl0YWJsZSBwaWVjZXMgaW5zaWRlIGVkaXRhYmxlIGNvbnRlbnQgc2hvdWxkIGJlIGF0b21p
YywgaW4gdGhlIHNhbWUgd2F5IHRoYXQgZWRpdGFibGUKLSAgICAgICAgLy8gcGllY2VzIGluIG5v
bi1lZGl0YWJsZSBjb250ZW50IGFyZSBhdG9taWMuCi0gICAgCi0gICAgICAgIC8vIFRoZSBzZWxl
Y3Rpb24gZW5kcyBpbiBlZGl0YWJsZSBjb250ZW50IG9yIG5vbi1lZGl0YWJsZSBjb250ZW50IGlu
c2lkZSBhIGRpZmZlcmVudCBlZGl0YWJsZSBhbmNlc3RvciwgCi0gICAgICAgIC8vIG1vdmUgYmFj
a3dhcmQgdW50aWwgbm9uLWVkaXRhYmxlIGNvbnRlbnQgaW5zaWRlIHRoZSBzYW1lIGxvd2VzdCBl
ZGl0YWJsZSBhbmNlc3RvciBpcyByZWFjaGVkLgotICAgICAgICBOb2RlKiBlbmRFZGl0YWJsZUFu
Y2VzdG9yID0gbG93ZXN0RWRpdGFibGVBbmNlc3RvcihtX2VuZC5ub2RlKCkpOwotICAgICAgICBp
ZiAoZW5kUm9vdCB8fCBlbmRFZGl0YWJsZUFuY2VzdG9yICE9IGJhc2VFZGl0YWJsZUFuY2VzdG9y
KSB7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFBvc2l0aW9uIHAgPSBwcmV2aW91c1Zpc3Vh
bGx5RGlzdGluY3RDYW5kaWRhdGUobV9lbmQpOwotICAgICAgICAgICAgTm9kZSogc2hhZG93QW5j
ZXN0b3IgPSBlbmRSb290ID8gZW5kUm9vdC0+c2hhZG93QW5jZXN0b3JOb2RlKCkgOiAwOwotICAg
ICAgICAgICAgaWYgKHAuaXNOdWxsKCkgJiYgZW5kUm9vdCAmJiAoc2hhZG93QW5jZXN0b3IgIT0g
ZW5kUm9vdCkpCi0gICAgICAgICAgICAgICAgcCA9IGxhc3REZWVwRWRpdGluZ1Bvc2l0aW9uRm9y
Tm9kZShzaGFkb3dBbmNlc3Rvcik7Ci0gICAgICAgICAgICB3aGlsZSAocC5pc05vdE51bGwoKSAm
JiAhKGxvd2VzdEVkaXRhYmxlQW5jZXN0b3IocC5ub2RlKCkpID09IGJhc2VFZGl0YWJsZUFuY2Vz
dG9yICYmICFpc0VkaXRhYmxlUG9zaXRpb24ocCkpKSB7Ci0gICAgICAgICAgICAgICAgTm9kZSog
cm9vdCA9IGVkaXRhYmxlUm9vdEZvclBvc2l0aW9uKHApOwotICAgICAgICAgICAgICAgIHNoYWRv
d0FuY2VzdG9yID0gcm9vdCA/IHJvb3QtPnNoYWRvd0FuY2VzdG9yTm9kZSgpIDogMDsKLSAgICAg
ICAgICAgICAgICBwID0gaXNBdG9taWNOb2RlKHAubm9kZSgpKSA/IHBvc2l0aW9uSW5QYXJlbnRC
ZWZvcmVOb2RlKHAubm9kZSgpKSA6IHByZXZpb3VzVmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZShw
KTsKLSAgICAgICAgICAgICAgICBpZiAocC5pc051bGwoKSAmJiAoc2hhZG93QW5jZXN0b3IgIT0g
cm9vdCkpCi0gICAgICAgICAgICAgICAgICAgIHAgPSBsYXN0RGVlcEVkaXRpbmdQb3NpdGlvbkZv
ck5vZGUoc2hhZG93QW5jZXN0b3IpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgVmlzaWJs
ZVBvc2l0aW9uIHByZXZpb3VzKHApOwotCi0gICAgICAgICAgICBpZiAocHJldmlvdXMuaXNOdWxs
KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBUaGUgc2VsZWN0aW9uIGNyb3NzZXMgYW4gRWRpdGlu
ZyBib3VuZGFyeS4gIFRoaXMgaXMgYQotICAgICAgICAgICAgICAgIC8vIHByb2dyYW1tZXIgZXJy
b3IgaW4gdGhlIGVkaXRpbmcgY29kZS4gIEhhcHB5IGRlYnVnZ2luZyEKLSAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICBtX2Jhc2UgPSBQb3NpdGlv
bigpOwotICAgICAgICAgICAgICAgIG1fZXh0ZW50ID0gUG9zaXRpb24oKTsKLSAgICAgICAgICAg
ICAgICB2YWxpZGF0ZSgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIG1fZW5kID0gcHJldmlvdXMuZGVlcEVxdWl2YWxlbnQoKTsKLSAgICAgICAg
fQorc3RhdGljIFBvc2l0aW9uIG5leHRPclNoYWRvd05leHQoUG9zaXRpb24gcCkKK3sKKyAgICBQ
b3NpdGlvbiBuZXh0ID0gcC5uZXh0KCk7CisgICAgaWYgKG5leHQgPT0gcCAmJiBuZXh0Lm5vZGUo
KS0+aXNTaGFkb3dOb2RlKCkpCisgICAgICAgIG5leHQgPSBQb3NpdGlvbihuZXh0Lm5vZGUoKS0+
c2hhZG93UGFyZW50Tm9kZSgpLT5uZXh0U2libGluZygpLCAwKTsKKyAgICByZXR1cm4gbmV4dDsK
K30KIAotICAgICAgICAvLyBUaGUgc2VsZWN0aW9uIHN0YXJ0cyBpbiBlZGl0YWJsZSBjb250ZW50
IG9yIG5vbi1lZGl0YWJsZSBjb250ZW50IGluc2lkZSBhIGRpZmZlcmVudCBlZGl0YWJsZSBhbmNl
c3RvciwgCi0gICAgICAgIC8vIG1vdmUgZm9yd2FyZCB1bnRpbCBub24tZWRpdGFibGUgY29udGVu
dCBpbnNpZGUgdGhlIHNhbWUgbG93ZXN0IGVkaXRhYmxlIGFuY2VzdG9yIGlzIHJlYWNoZWQuCi0g
ICAgICAgIE5vZGUqIHN0YXJ0RWRpdGFibGVBbmNlc3RvciA9IGxvd2VzdEVkaXRhYmxlQW5jZXN0
b3IobV9zdGFydC5ub2RlKCkpOyAgICAgIAotICAgICAgICBpZiAoc3RhcnRSb290IHx8IHN0YXJ0
RWRpdGFibGVBbmNlc3RvciAhPSBiYXNlRWRpdGFibGVBbmNlc3RvcikgewotICAgICAgICAgICAg
UG9zaXRpb24gcCA9IG5leHRWaXN1YWxseURpc3RpbmN0Q2FuZGlkYXRlKG1fc3RhcnQpOwotICAg
ICAgICAgICAgTm9kZSogc2hhZG93QW5jZXN0b3IgPSBzdGFydFJvb3QgPyBzdGFydFJvb3QtPnNo
YWRvd0FuY2VzdG9yTm9kZSgpIDogMDsKLSAgICAgICAgICAgIGlmIChwLmlzTnVsbCgpICYmIHN0
YXJ0Um9vdCAmJiAoc2hhZG93QW5jZXN0b3IgIT0gc3RhcnRSb290KSkKLSAgICAgICAgICAgICAg
ICBwID0gUG9zaXRpb24oc2hhZG93QW5jZXN0b3IsIDApOwotICAgICAgICAgICAgd2hpbGUgKHAu
aXNOb3ROdWxsKCkgJiYgIShsb3dlc3RFZGl0YWJsZUFuY2VzdG9yKHAubm9kZSgpKSA9PSBiYXNl
RWRpdGFibGVBbmNlc3RvciAmJiAhaXNFZGl0YWJsZVBvc2l0aW9uKHApKSkgewotICAgICAgICAg
ICAgICAgIE5vZGUqIHJvb3QgPSBlZGl0YWJsZVJvb3RGb3JQb3NpdGlvbihwKTsKLSAgICAgICAg
ICAgICAgICBzaGFkb3dBbmNlc3RvciA9IHJvb3QgPyByb290LT5zaGFkb3dBbmNlc3Rvck5vZGUo
KSA6IDA7Ci0gICAgICAgICAgICAgICAgcCA9IGlzQXRvbWljTm9kZShwLm5vZGUoKSkgPyBwb3Np
dGlvbkluUGFyZW50QWZ0ZXJOb2RlKHAubm9kZSgpKSA6IG5leHRWaXN1YWxseURpc3RpbmN0Q2Fu
ZGlkYXRlKHApOwotICAgICAgICAgICAgICAgIGlmIChwLmlzTnVsbCgpICYmIChzaGFkb3dBbmNl
c3RvciAhPSByb290KSkKLSAgICAgICAgICAgICAgICAgICAgcCA9IFBvc2l0aW9uKHNoYWRvd0Fu
Y2VzdG9yLCAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBu
ZXh0KHApOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobmV4dC5pc051bGwoKSkgewot
ICAgICAgICAgICAgICAgIC8vIFRoZSBzZWxlY3Rpb24gY3Jvc3NlcyBhbiBFZGl0aW5nIGJvdW5k
YXJ5LiAgVGhpcyBpcyBhCi0gICAgICAgICAgICAgICAgLy8gcHJvZ3JhbW1lciBlcnJvciBpbiB0
aGUgZWRpdGluZyBjb2RlLiAgSGFwcHkgZGVidWdnaW5nIQotICAgICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgICAgIG1fYmFzZSA9IFBvc2l0aW9uKCk7Ci0g
ICAgICAgICAgICAgICAgbV9leHRlbnQgPSBQb3NpdGlvbigpOwotICAgICAgICAgICAgICAgIHZh
bGlkYXRlKCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworc3RhdGljIFBvc2l0aW9uIHByZXZp
b3VzT3JTaGFkb3dQcmV2aW91cyhQb3NpdGlvbiBwKQoreworICAgIFBvc2l0aW9uIHByZXZpb3Vz
ID0gcC5wcmV2aW91cygpOworICAgIGlmIChwcmV2aW91cyA9PSBwICYmIHByZXZpb3VzLm5vZGUo
KS0+aXNTaGFkb3dOb2RlKCkpCisgICAgICAgIHByZXZpb3VzID0gUG9zaXRpb24ocHJldmlvdXMu
bm9kZSgpLT5zaGFkb3dQYXJlbnROb2RlKCksIDApLnByZXZpb3VzKCk7CisgICAgcmV0dXJuIHBy
ZXZpb3VzOworfQorCit2b2lkIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZv
aWRDcm9zc2luZ0VkaXRpbmdCb3VuZGFyaWVzRm9yTGltaXQoU2VsZWN0aW9uTGltaXQgc2VsZWN0
aW9uTGltaXQpCit7CisgICAgVmVjdG9yPFBvc2l0aW9uPiBlZGl0YWJpbGl0eUJvdW5kYXJ5Q3Jv
c3NpbmdTdGFjazsKKyAgICBQb3NpdGlvbiBsaW1pdCA9IHNlbGVjdGlvbkxpbWl0ID09IFNUQVJU
ID8gbV9zdGFydCA6IG1fZW5kOworICAgIFBvc2l0aW9uIGN1cnJlbnQgPSBtX2Jhc2U7CisKKyAg
ICB3aGlsZSAoY3VycmVudCAhPSBsaW1pdCkgeworICAgICAgICBQb3NpdGlvbiBuZXh0ID0gc2Vs
ZWN0aW9uTGltaXQgPT0gU1RBUlQgPyBwcmV2aW91c09yU2hhZG93UHJldmlvdXMoY3VycmVudCkg
OiBuZXh0T3JTaGFkb3dOZXh0KGN1cnJlbnQpOworICAgICAgICBpZiAobmV4dCA9PSBjdXJyZW50
KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmICghY3VycmVudC5lbGVtZW50KCkgfHwg
IW5leHQuZWxlbWVudCgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChuZXh0LmVs
ZW1lbnQoKS0+aXNDb250ZW50RWRpdGFibGUoKSAhPSBjdXJyZW50LmVsZW1lbnQoKS0+aXNDb250
ZW50RWRpdGFibGUoKSkgeworICAgICAgICAgICAgaWYgKG5leHQuZWxlbWVudCgpLT5wYXJlbnRF
bGVtZW50KCkgPT0gY3VycmVudC5lbGVtZW50KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBTZWxl
Y3Rpb24gZW50ZXJlZCBhIHJlZ2lvbiBvZiBkaWZmZXJlbnQgZWRpdGFiaWxpdHkuCisgICAgICAg
ICAgICAgICAgZWRpdGFiaWxpdHlCb3VuZGFyeUNyb3NzaW5nU3RhY2suYXBwZW5kKGN1cnJlbnQp
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTZWxlY3Rpb24gbGVm
dCBhIHJlZ2lvbiBvZiBkaWZmZXJlbnQgZWRpdGFiaWxpdHkuCisgICAgICAgICAgICAgICAgaWYg
KGVkaXRhYmlsaXR5Qm91bmRhcnlDcm9zc2luZ1N0YWNrLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgICAgICAgICAvLyBTZWxlY3Rpb24gZGlkbid0IGVudGVyIGl0IGluIHRoZSBmaXJzdCBwbGFj
ZS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkxpbWl0ID09IFNUQVJUKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbV9zdGFydCA9IGN1cnJlbnQ7CisgICAgICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZW5kID0gY3VycmVudDsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGVkaXRhYmlsaXR5Qm91bmRhcnlDcm9zc2luZ1N0YWNrLnJlbW92ZShlZGl0YWJpbGl0eUJvdW5k
YXJ5Q3Jvc3NpbmdTdGFjay5zaXplKCkgLSAxKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IG1fc3RhcnQgPSBuZXh0LmRlZXBFcXVpdmFsZW50KCk7CiAgICAgICAgIH0KKyAgICAgICAgY3Vy
cmVudCA9IG5leHQ7CisgICAgfQorCisgICAgaWYgKCFlZGl0YWJpbGl0eUJvdW5kYXJ5Q3Jvc3Np
bmdTdGFjay5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gU2VsZWN0aW9uIGVudGVyZWQgYSByZWdp
b24gb2YgZGlmZmVyZW50IGVkaXRhYmlsaXR5IGJ1dCBkaWRuJ3QgbGVhdmUgaXQuCisgICAgICAg
IGlmIChzZWxlY3Rpb25MaW1pdCA9PSBTVEFSVCkKKyAgICAgICAgICAgIG1fc3RhcnQgPSBlZGl0
YWJpbGl0eUJvdW5kYXJ5Q3Jvc3NpbmdTdGFja1swXTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbV9lbmQgPSBlZGl0YWJpbGl0eUJvdW5kYXJ5Q3Jvc3NpbmdTdGFja1swXTsKICAgICB9Ci0g
ICAgCi0gICAgLy8gQ29ycmVjdCB0aGUgZXh0ZW50IGlmIG5lY2Vzc2FyeS4KLSAgICBpZiAoYmFz
ZUVkaXRhYmxlQW5jZXN0b3IgIT0gbG93ZXN0RWRpdGFibGVBbmNlc3RvcihtX2V4dGVudC5ub2Rl
KCkpKQotICAgICAgICBtX2V4dGVudCA9IG1fYmFzZUlzRmlyc3QgPyBtX2VuZCA6IG1fc3RhcnQ7
CiB9CiAKIGJvb2wgVmlzaWJsZVNlbGVjdGlvbjo6aXNDb250ZW50RWRpdGFibGUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaCBiL1dlYkNvcmUv
ZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKaW5kZXggZmZkYjZmOGMxOWM4OThiNzg3YTI1YTJm
YWI1ZjJmNTFhNDI1NDA3Yy4uNzFhNWU3OGYwNGU3NTYyMGJjMmI2NWZmYjZhMTdkMjI2NmNlOGVi
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaAorKysgYi9X
ZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oCkBAIC0xMDcsMTIgKzEwNywxNSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRXaXRob3V0VmFsaWRhdGlvbihjb25zdCBQb3NpdGlvbiYsIGNv
bnN0IFBvc2l0aW9uJik7CiAKIHByaXZhdGU6CisgICAgZW51bSBTZWxlY3Rpb25MaW1pdCB7IFNU
QVJULCBFTkQgfTsKKwogICAgIHZvaWQgdmFsaWRhdGUoVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFj
dGVyR3JhbnVsYXJpdHkpOwogCiAgICAgLy8gU3VwcG9ydCBtZXRob2RzIGZvciB2YWxpZGF0ZSgp
CiAgICAgdm9pZCBzZXRCYXNlQW5kRXh0ZW50VG9EZWVwRXF1aXZhbGVudHMoKTsKICAgICB2b2lk
IHNldFN0YXJ0QW5kRW5kRnJvbUJhc2VBbmRFeHRlbnRSZXNwZWN0aW5nR3JhbnVsYXJpdHkoVGV4
dEdyYW51bGFyaXR5KTsKICAgICB2b2lkIGFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCk7CisgICAgdm9pZCBhZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3Np
bmdFZGl0aW5nQm91bmRhcmllc0ZvckxpbWl0KFNlbGVjdGlvbkxpbWl0KTsKICAgICB2b2lkIHVw
ZGF0ZVNlbGVjdGlvblR5cGUoKTsKIAogICAgIC8vIFdlIG5lZWQgdG8gc3RvcmUgdGhlc2UgYXMg
UG9zaXRpb25zIGJlY2F1c2UgVmlzaWJsZVNlbGVjdGlvbiBpcwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>